summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2017-12-23 13:17:46 -0500
committerGitHub <noreply@github.com>2017-12-23 13:17:46 -0500
commit878092004956418bfd77bfdb9fc9dd7f640f80d2 (patch)
tree3a97e3eb15d5c545977038e67589f92158e5bf23
parenta6656a986bf9dde51561cab090648e0117b173ad (diff)
parent3c37bfc6fa2570a0a77c1230673910257ecf32df (diff)
Merge pull request #419 from roukaour/master
More reorganization and documentation
-rw-r--r--FAQ.md16
-rw-r--r--Makefile36
-rw-r--r--audio.asm4
-rw-r--r--audio/cry_headers.asm258
-rw-r--r--audio/engine.asm22
-rw-r--r--audio/notes.asm (renamed from data/audio/notes.asm)0
-rw-r--r--audio/wave_samples.asm (renamed from data/audio/wave_samples.asm)0
-rw-r--r--battle/core.asm44
-rw-r--r--battle/effect_command_pointers.asm2
-rw-r--r--battle/effect_commands.asm5
-rw-r--r--battle/magikarp_length.asm214
-rw-r--r--battle/moves/move_descriptions.asm3
-rw-r--r--battle/moves/move_effects.asm4
-rw-r--r--battle/moves/move_effects_pointers.asm1
-rw-r--r--battle/moves/moves.asm3
-rwxr-xr-xbattle/objects/data.asm762
-rwxr-xr-xbattle/objects/functions.asm2
-rwxr-xr-xbattle/objects/gfx_headers.asm5
-rw-r--r--constants.asm4
-rwxr-xr-xconstants/audio_constants.asm20
-rwxr-xr-xconstants/battle_tower_constants.asm6
-rwxr-xr-xconstants/cgb_constants.asm2
-rw-r--r--constants/credits_constants.asm115
-rw-r--r--constants/effect_command_constants.asm187
-rw-r--r--constants/gfx_constants.asm3
-rw-r--r--constants/hardware_constants.asm (renamed from gbhw.asm)0
-rw-r--r--constants/item_constants.asm12
-rw-r--r--constants/landmark_constants.asm2
-rw-r--r--constants/map_constants.asm4
-rw-r--r--constants/map_dimension_constants.asm21
-rw-r--r--constants/misc_constants.asm11
-rw-r--r--constants/mobile_constants.asm4
-rw-r--r--constants/pokemon_constants.asm22
-rw-r--r--constants/pokemon_data_constants.asm15
-rw-r--r--constants/std_constants.asm2
-rw-r--r--constants/trainer_constants.asm20
-rw-r--r--constants/wram_constants.asm2
-rw-r--r--data/base_stats.asm252
-rw-r--r--data/base_stats/abra.asm22
-rw-r--r--data/base_stats/aerodactyl.asm22
-rw-r--r--data/base_stats/aipom.asm22
-rw-r--r--data/base_stats/alakazam.asm22
-rw-r--r--data/base_stats/ampharos.asm22
-rw-r--r--data/base_stats/arbok.asm22
-rw-r--r--data/base_stats/arcanine.asm22
-rw-r--r--data/base_stats/ariados.asm22
-rw-r--r--data/base_stats/articuno.asm22
-rw-r--r--data/base_stats/azumarill.asm22
-rw-r--r--data/base_stats/bayleef.asm22
-rw-r--r--data/base_stats/beedrill.asm22
-rw-r--r--data/base_stats/bellossom.asm22
-rw-r--r--data/base_stats/bellsprout.asm22
-rw-r--r--data/base_stats/blastoise.asm22
-rw-r--r--data/base_stats/blissey.asm22
-rw-r--r--data/base_stats/bulbasaur.asm22
-rw-r--r--data/base_stats/butterfree.asm22
-rw-r--r--data/base_stats/caterpie.asm22
-rw-r--r--data/base_stats/celebi.asm22
-rw-r--r--data/base_stats/chansey.asm22
-rw-r--r--data/base_stats/charizard.asm22
-rw-r--r--data/base_stats/charmander.asm22
-rw-r--r--data/base_stats/charmeleon.asm22
-rw-r--r--data/base_stats/chikorita.asm22
-rw-r--r--data/base_stats/chinchou.asm22
-rw-r--r--data/base_stats/clefable.asm22
-rw-r--r--data/base_stats/clefairy.asm22
-rw-r--r--data/base_stats/cleffa.asm22
-rw-r--r--data/base_stats/cloyster.asm22
-rw-r--r--data/base_stats/corsola.asm22
-rw-r--r--data/base_stats/crobat.asm22
-rw-r--r--data/base_stats/croconaw.asm22
-rw-r--r--data/base_stats/cubone.asm22
-rw-r--r--data/base_stats/cyndaquil.asm22
-rw-r--r--data/base_stats/delibird.asm22
-rw-r--r--data/base_stats/dewgong.asm22
-rw-r--r--data/base_stats/diglett.asm22
-rw-r--r--data/base_stats/ditto.asm22
-rw-r--r--data/base_stats/dodrio.asm22
-rw-r--r--data/base_stats/doduo.asm22
-rw-r--r--data/base_stats/donphan.asm22
-rw-r--r--data/base_stats/dragonair.asm22
-rw-r--r--data/base_stats/dragonite.asm22
-rw-r--r--data/base_stats/dratini.asm22
-rw-r--r--data/base_stats/drowzee.asm22
-rw-r--r--data/base_stats/dugtrio.asm22
-rw-r--r--data/base_stats/dunsparce.asm22
-rw-r--r--data/base_stats/eevee.asm22
-rw-r--r--data/base_stats/ekans.asm22
-rw-r--r--data/base_stats/electabuzz.asm22
-rw-r--r--data/base_stats/electrode.asm22
-rw-r--r--data/base_stats/elekid.asm22
-rw-r--r--data/base_stats/entei.asm22
-rw-r--r--data/base_stats/espeon.asm22
-rw-r--r--data/base_stats/exeggcute.asm22
-rw-r--r--data/base_stats/exeggutor.asm22
-rw-r--r--data/base_stats/farfetch_d.asm22
-rw-r--r--data/base_stats/fearow.asm22
-rw-r--r--data/base_stats/feraligatr.asm22
-rw-r--r--data/base_stats/flaaffy.asm22
-rw-r--r--data/base_stats/flareon.asm22
-rw-r--r--data/base_stats/forretress.asm22
-rw-r--r--data/base_stats/furret.asm22
-rw-r--r--data/base_stats/gastly.asm22
-rw-r--r--data/base_stats/gengar.asm22
-rw-r--r--data/base_stats/geodude.asm22
-rw-r--r--data/base_stats/girafarig.asm22
-rw-r--r--data/base_stats/gligar.asm22
-rw-r--r--data/base_stats/gloom.asm22
-rw-r--r--data/base_stats/golbat.asm22
-rw-r--r--data/base_stats/goldeen.asm22
-rw-r--r--data/base_stats/golduck.asm22
-rw-r--r--data/base_stats/golem.asm22
-rw-r--r--data/base_stats/granbull.asm22
-rw-r--r--data/base_stats/graveler.asm22
-rw-r--r--data/base_stats/grimer.asm22
-rw-r--r--data/base_stats/growlithe.asm22
-rw-r--r--data/base_stats/gyarados.asm22
-rw-r--r--data/base_stats/haunter.asm22
-rw-r--r--data/base_stats/heracross.asm22
-rw-r--r--data/base_stats/hitmonchan.asm22
-rw-r--r--data/base_stats/hitmonlee.asm22
-rw-r--r--data/base_stats/hitmontop.asm22
-rw-r--r--data/base_stats/ho_oh.asm22
-rw-r--r--data/base_stats/hoothoot.asm22
-rw-r--r--data/base_stats/hoppip.asm22
-rw-r--r--data/base_stats/horsea.asm22
-rw-r--r--data/base_stats/houndoom.asm22
-rw-r--r--data/base_stats/houndour.asm22
-rw-r--r--data/base_stats/hypno.asm22
-rw-r--r--data/base_stats/igglybuff.asm22
-rw-r--r--data/base_stats/ivysaur.asm22
-rw-r--r--data/base_stats/jigglypuff.asm22
-rw-r--r--data/base_stats/jolteon.asm22
-rw-r--r--data/base_stats/jumpluff.asm22
-rw-r--r--data/base_stats/jynx.asm22
-rw-r--r--data/base_stats/kabuto.asm22
-rw-r--r--data/base_stats/kabutops.asm22
-rw-r--r--data/base_stats/kadabra.asm22
-rw-r--r--data/base_stats/kakuna.asm22
-rw-r--r--data/base_stats/kangaskhan.asm22
-rw-r--r--data/base_stats/kingdra.asm22
-rw-r--r--data/base_stats/kingler.asm22
-rw-r--r--data/base_stats/koffing.asm22
-rw-r--r--data/base_stats/krabby.asm22
-rw-r--r--data/base_stats/lanturn.asm22
-rw-r--r--data/base_stats/lapras.asm22
-rw-r--r--data/base_stats/larvitar.asm22
-rw-r--r--data/base_stats/ledian.asm22
-rw-r--r--data/base_stats/ledyba.asm22
-rw-r--r--data/base_stats/lickitung.asm22
-rw-r--r--data/base_stats/lugia.asm22
-rw-r--r--data/base_stats/machamp.asm22
-rw-r--r--data/base_stats/machoke.asm22
-rw-r--r--data/base_stats/machop.asm22
-rw-r--r--data/base_stats/magby.asm22
-rw-r--r--data/base_stats/magcargo.asm22
-rw-r--r--data/base_stats/magikarp.asm22
-rw-r--r--data/base_stats/magmar.asm22
-rw-r--r--data/base_stats/magnemite.asm22
-rw-r--r--data/base_stats/magneton.asm22
-rw-r--r--data/base_stats/mankey.asm22
-rw-r--r--data/base_stats/mantine.asm22
-rw-r--r--data/base_stats/mareep.asm22
-rw-r--r--data/base_stats/marill.asm22
-rw-r--r--data/base_stats/marowak.asm22
-rw-r--r--data/base_stats/meganium.asm22
-rw-r--r--data/base_stats/meowth.asm22
-rw-r--r--data/base_stats/metapod.asm22
-rw-r--r--data/base_stats/mew.asm22
-rw-r--r--data/base_stats/mewtwo.asm22
-rw-r--r--data/base_stats/miltank.asm22
-rw-r--r--data/base_stats/misdreavus.asm22
-rw-r--r--data/base_stats/moltres.asm22
-rw-r--r--data/base_stats/mr__mime.asm22
-rw-r--r--data/base_stats/muk.asm22
-rw-r--r--data/base_stats/murkrow.asm22
-rw-r--r--data/base_stats/natu.asm22
-rw-r--r--data/base_stats/nidoking.asm22
-rw-r--r--data/base_stats/nidoqueen.asm22
-rw-r--r--data/base_stats/nidoran_f.asm22
-rw-r--r--data/base_stats/nidoran_m.asm22
-rw-r--r--data/base_stats/nidorina.asm22
-rw-r--r--data/base_stats/nidorino.asm22
-rw-r--r--data/base_stats/ninetales.asm22
-rw-r--r--data/base_stats/noctowl.asm22
-rw-r--r--data/base_stats/octillery.asm22
-rw-r--r--data/base_stats/oddish.asm22
-rw-r--r--data/base_stats/omanyte.asm22
-rw-r--r--data/base_stats/omastar.asm22
-rw-r--r--data/base_stats/onix.asm22
-rw-r--r--data/base_stats/paras.asm22
-rw-r--r--data/base_stats/parasect.asm22
-rw-r--r--data/base_stats/persian.asm22
-rw-r--r--data/base_stats/phanpy.asm22
-rw-r--r--data/base_stats/pichu.asm22
-rw-r--r--data/base_stats/pidgeot.asm22
-rw-r--r--data/base_stats/pidgeotto.asm22
-rw-r--r--data/base_stats/pidgey.asm22
-rw-r--r--data/base_stats/pikachu.asm22
-rw-r--r--data/base_stats/piloswine.asm22
-rw-r--r--data/base_stats/pineco.asm22
-rw-r--r--data/base_stats/pinsir.asm22
-rw-r--r--data/base_stats/politoed.asm22
-rw-r--r--data/base_stats/poliwag.asm22
-rw-r--r--data/base_stats/poliwhirl.asm22
-rw-r--r--data/base_stats/poliwrath.asm22
-rw-r--r--data/base_stats/ponyta.asm22
-rw-r--r--data/base_stats/porygon.asm22
-rw-r--r--data/base_stats/porygon2.asm22
-rw-r--r--data/base_stats/primeape.asm22
-rw-r--r--data/base_stats/psyduck.asm22
-rw-r--r--data/base_stats/pupitar.asm22
-rw-r--r--data/base_stats/quagsire.asm22
-rw-r--r--data/base_stats/quilava.asm22
-rw-r--r--data/base_stats/qwilfish.asm22
-rw-r--r--data/base_stats/raichu.asm22
-rw-r--r--data/base_stats/raikou.asm22
-rw-r--r--data/base_stats/rapidash.asm22
-rw-r--r--data/base_stats/raticate.asm22
-rw-r--r--data/base_stats/rattata.asm22
-rw-r--r--data/base_stats/remoraid.asm22
-rw-r--r--data/base_stats/rhydon.asm22
-rw-r--r--data/base_stats/rhyhorn.asm22
-rw-r--r--data/base_stats/sandshrew.asm22
-rw-r--r--data/base_stats/sandslash.asm22
-rw-r--r--data/base_stats/scizor.asm22
-rw-r--r--data/base_stats/scyther.asm22
-rw-r--r--data/base_stats/seadra.asm22
-rw-r--r--data/base_stats/seaking.asm22
-rw-r--r--data/base_stats/seel.asm22
-rw-r--r--data/base_stats/sentret.asm22
-rw-r--r--data/base_stats/shellder.asm22
-rw-r--r--data/base_stats/shuckle.asm22
-rw-r--r--data/base_stats/skarmory.asm22
-rw-r--r--data/base_stats/skiploom.asm22
-rw-r--r--data/base_stats/slowbro.asm22
-rw-r--r--data/base_stats/slowking.asm22
-rw-r--r--data/base_stats/slowpoke.asm22
-rw-r--r--data/base_stats/slugma.asm22
-rw-r--r--data/base_stats/smeargle.asm22
-rw-r--r--data/base_stats/smoochum.asm22
-rw-r--r--data/base_stats/sneasel.asm22
-rw-r--r--data/base_stats/snorlax.asm22
-rw-r--r--data/base_stats/snubbull.asm22
-rw-r--r--data/base_stats/spearow.asm22
-rw-r--r--data/base_stats/spinarak.asm22
-rw-r--r--data/base_stats/squirtle.asm22
-rw-r--r--data/base_stats/stantler.asm22
-rw-r--r--data/base_stats/starmie.asm22
-rw-r--r--data/base_stats/staryu.asm22
-rw-r--r--data/base_stats/steelix.asm22
-rw-r--r--data/base_stats/sudowoodo.asm22
-rw-r--r--data/base_stats/suicune.asm22
-rw-r--r--data/base_stats/sunflora.asm22
-rw-r--r--data/base_stats/sunkern.asm22
-rw-r--r--data/base_stats/swinub.asm22
-rw-r--r--data/base_stats/tangela.asm22
-rw-r--r--data/base_stats/tauros.asm22
-rw-r--r--data/base_stats/teddiursa.asm22
-rw-r--r--data/base_stats/tentacool.asm22
-rw-r--r--data/base_stats/tentacruel.asm22
-rw-r--r--data/base_stats/togepi.asm22
-rw-r--r--data/base_stats/togetic.asm22
-rw-r--r--data/base_stats/totodile.asm22
-rw-r--r--data/base_stats/typhlosion.asm22
-rw-r--r--data/base_stats/tyranitar.asm22
-rw-r--r--data/base_stats/tyrogue.asm22
-rw-r--r--data/base_stats/umbreon.asm22
-rw-r--r--data/base_stats/unown.asm22
-rw-r--r--data/base_stats/ursaring.asm22
-rw-r--r--data/base_stats/vaporeon.asm22
-rw-r--r--data/base_stats/venomoth.asm22
-rw-r--r--data/base_stats/venonat.asm22
-rw-r--r--data/base_stats/venusaur.asm22
-rw-r--r--data/base_stats/victreebel.asm22
-rw-r--r--data/base_stats/vileplume.asm22
-rw-r--r--data/base_stats/voltorb.asm22
-rw-r--r--data/base_stats/vulpix.asm22
-rw-r--r--data/base_stats/wartortle.asm22
-rw-r--r--data/base_stats/weedle.asm22
-rw-r--r--data/base_stats/weepinbell.asm22
-rw-r--r--data/base_stats/weezing.asm22
-rw-r--r--data/base_stats/wigglytuff.asm22
-rw-r--r--data/base_stats/wobbuffet.asm22
-rw-r--r--data/base_stats/wooper.asm22
-rw-r--r--data/base_stats/xatu.asm22
-rw-r--r--data/base_stats/yanma.asm22
-rw-r--r--data/base_stats/zapdos.asm22
-rw-r--r--data/base_stats/zubat.asm22
-rw-r--r--data/battle/ball_colors.asm (renamed from data/ball_colors.asm)0
-rw-r--r--data/battle/flee_mons.asm36
-rw-r--r--data/battle_tower.asm2
-rw-r--r--data/credits_script.asm287
-rw-r--r--data/credits_strings.asm221
-rw-r--r--data/egg_moves.asm870
-rw-r--r--data/evos_attacks.asm3398
-rw-r--r--data/flypoints.asm38
-rw-r--r--data/hm_moves.asm12
-rw-r--r--data/items/bargain_shop.asm9
-rw-r--r--data/items/buena_prizes.asm13
-rw-r--r--data/items/fruit_trees.asm (renamed from data/fruit_tree_items.asm)0
-rw-r--r--data/items/item_attributes.asm (renamed from items/item_attributes.asm)0
-rw-r--r--data/items/item_descriptions.asm (renamed from items/item_descriptions.asm)0
-rw-r--r--data/items/item_names.asm (renamed from items/item_names.asm)0
-rw-r--r--data/items/marts.asm (renamed from items/marts.asm)0
-rw-r--r--data/items/mom_phone.asm (renamed from data/mom_phone_items.asm)0
-rw-r--r--data/items/rooftop_sale.asm18
-rw-r--r--data/maps/landmarks.asm (renamed from data/landmarks.asm)0
-rw-r--r--data/maps/map_triggers.asm (renamed from data/map_triggers.asm)0
-rw-r--r--data/maps/mapgroup_roofs.asm (renamed from data/mapgroup_roofs.asm)0
-rw-r--r--data/maps/outdoor_sprites.asm (renamed from data/outdoor_sprites.asm)0
-rw-r--r--data/maps/spawn_points.asm (renamed from data/spawn_points.asm)0
-rw-r--r--data/palettes/49757.pal39
-rw-r--r--data/palettes/979c.pal29
-rw-r--r--data/palettes/b6f1.pal24
-rw-r--r--data/palettes/b719.pal9
-rw-r--r--data/palettes/b789.pal19
-rw-r--r--data/palettes/card_flip.pal44
-rw-r--r--data/palettes/credits.pal19
-rw-r--r--data/palettes/crystal_intro/fade.pal41
-rw-r--r--data/palettes/crystal_intro/gamefreak_logo.pal23
-rw-r--r--data/palettes/crystal_intro/intro_1.pal79
-rw-r--r--data/palettes/crystal_intro/intro_2.pal79
-rw-r--r--data/palettes/crystal_intro/intro_3.pal79
-rw-r--r--data/palettes/crystal_intro/intro_4.pal79
-rw-r--r--data/palettes/crystal_intro/intro_5.pal79
-rw-r--r--data/palettes/debug/bg.pal43
-rw-r--r--data/palettes/debug/ob.pal42
-rw-r--r--data/palettes/diploma.pal39
-rw-r--r--data/palettes/mail.pal49
-rw-r--r--data/palettes/map_objects.pal (renamed from tilesets/ob.pal)0
-rw-r--r--data/palettes/mg_mobile.pal24
-rw-r--r--data/palettes/pack.pal29
-rw-r--r--data/palettes/pack_f.pal29
-rw-r--r--data/palettes/party_menu.pal69
-rw-r--r--data/palettes/pokegear.pal29
-rw-r--r--data/palettes/pokegear_f.pal29
-rw-r--r--data/palettes/predef.pal394
-rw-r--r--data/palettes/roofs.pal (renamed from tilesets/roof.pal)0
-rw-r--r--data/palettes/sgb_border.pal79
-rw-r--r--data/palettes/slot_machine.pal79
-rw-r--r--data/palettes/tileset_bg.pal (renamed from tilesets/bg.pal)0
-rw-r--r--data/palettes/title.pal81
-rw-r--r--data/palettes/town_map.asm34
-rw-r--r--data/palettes/trade_room.pal29
-rw-r--r--data/palettes/unused_title/bg.pal39
-rw-r--r--data/palettes/unused_title/ob.pal319
-rw-r--r--data/pokedex/entries.asm272
-rw-r--r--data/pokemon/base_stats.asm252
-rw-r--r--data/pokemon/base_stats/abra.asm22
-rw-r--r--data/pokemon/base_stats/aerodactyl.asm22
-rw-r--r--data/pokemon/base_stats/aipom.asm22
-rw-r--r--data/pokemon/base_stats/alakazam.asm22
-rw-r--r--data/pokemon/base_stats/ampharos.asm22
-rw-r--r--data/pokemon/base_stats/arbok.asm22
-rw-r--r--data/pokemon/base_stats/arcanine.asm22
-rw-r--r--data/pokemon/base_stats/ariados.asm22
-rw-r--r--data/pokemon/base_stats/articuno.asm22
-rw-r--r--data/pokemon/base_stats/azumarill.asm22
-rw-r--r--data/pokemon/base_stats/bayleef.asm22
-rw-r--r--data/pokemon/base_stats/beedrill.asm22
-rw-r--r--data/pokemon/base_stats/bellossom.asm22
-rw-r--r--data/pokemon/base_stats/bellsprout.asm22
-rw-r--r--data/pokemon/base_stats/blastoise.asm22
-rw-r--r--data/pokemon/base_stats/blissey.asm22
-rw-r--r--data/pokemon/base_stats/bulbasaur.asm22
-rw-r--r--data/pokemon/base_stats/butterfree.asm22
-rw-r--r--data/pokemon/base_stats/caterpie.asm22
-rw-r--r--data/pokemon/base_stats/celebi.asm22
-rw-r--r--data/pokemon/base_stats/chansey.asm22
-rw-r--r--data/pokemon/base_stats/charizard.asm22
-rw-r--r--data/pokemon/base_stats/charmander.asm22
-rw-r--r--data/pokemon/base_stats/charmeleon.asm22
-rw-r--r--data/pokemon/base_stats/chikorita.asm22
-rw-r--r--data/pokemon/base_stats/chinchou.asm22
-rw-r--r--data/pokemon/base_stats/clefable.asm22
-rw-r--r--data/pokemon/base_stats/clefairy.asm22
-rw-r--r--data/pokemon/base_stats/cleffa.asm22
-rw-r--r--data/pokemon/base_stats/cloyster.asm22
-rw-r--r--data/pokemon/base_stats/corsola.asm22
-rw-r--r--data/pokemon/base_stats/crobat.asm22
-rw-r--r--data/pokemon/base_stats/croconaw.asm22
-rw-r--r--data/pokemon/base_stats/cubone.asm22
-rw-r--r--data/pokemon/base_stats/cyndaquil.asm22
-rw-r--r--data/pokemon/base_stats/delibird.asm22
-rw-r--r--data/pokemon/base_stats/dewgong.asm22
-rw-r--r--data/pokemon/base_stats/diglett.asm22
-rw-r--r--data/pokemon/base_stats/ditto.asm22
-rw-r--r--data/pokemon/base_stats/dodrio.asm22
-rw-r--r--data/pokemon/base_stats/doduo.asm22
-rw-r--r--data/pokemon/base_stats/donphan.asm22
-rw-r--r--data/pokemon/base_stats/dragonair.asm22
-rw-r--r--data/pokemon/base_stats/dragonite.asm22
-rw-r--r--data/pokemon/base_stats/dratini.asm22
-rw-r--r--data/pokemon/base_stats/drowzee.asm22
-rw-r--r--data/pokemon/base_stats/dugtrio.asm22
-rw-r--r--data/pokemon/base_stats/dunsparce.asm22
-rw-r--r--data/pokemon/base_stats/eevee.asm22
-rw-r--r--data/pokemon/base_stats/ekans.asm22
-rw-r--r--data/pokemon/base_stats/electabuzz.asm22
-rw-r--r--data/pokemon/base_stats/electrode.asm22
-rw-r--r--data/pokemon/base_stats/elekid.asm22
-rw-r--r--data/pokemon/base_stats/entei.asm22
-rw-r--r--data/pokemon/base_stats/espeon.asm22
-rw-r--r--data/pokemon/base_stats/exeggcute.asm22
-rw-r--r--data/pokemon/base_stats/exeggutor.asm22
-rw-r--r--data/pokemon/base_stats/farfetch_d.asm22
-rw-r--r--data/pokemon/base_stats/fearow.asm22
-rw-r--r--data/pokemon/base_stats/feraligatr.asm22
-rw-r--r--data/pokemon/base_stats/flaaffy.asm22
-rw-r--r--data/pokemon/base_stats/flareon.asm22
-rw-r--r--data/pokemon/base_stats/forretress.asm22
-rw-r--r--data/pokemon/base_stats/furret.asm22
-rw-r--r--data/pokemon/base_stats/gastly.asm22
-rw-r--r--data/pokemon/base_stats/gengar.asm22
-rw-r--r--data/pokemon/base_stats/geodude.asm22
-rw-r--r--data/pokemon/base_stats/girafarig.asm22
-rw-r--r--data/pokemon/base_stats/gligar.asm22
-rw-r--r--data/pokemon/base_stats/gloom.asm22
-rw-r--r--data/pokemon/base_stats/golbat.asm22
-rw-r--r--data/pokemon/base_stats/goldeen.asm22
-rw-r--r--data/pokemon/base_stats/golduck.asm22
-rw-r--r--data/pokemon/base_stats/golem.asm22
-rw-r--r--data/pokemon/base_stats/granbull.asm22
-rw-r--r--data/pokemon/base_stats/graveler.asm22
-rw-r--r--data/pokemon/base_stats/grimer.asm22
-rw-r--r--data/pokemon/base_stats/growlithe.asm22
-rw-r--r--data/pokemon/base_stats/gyarados.asm22
-rw-r--r--data/pokemon/base_stats/haunter.asm22
-rw-r--r--data/pokemon/base_stats/heracross.asm22
-rw-r--r--data/pokemon/base_stats/hitmonchan.asm22
-rw-r--r--data/pokemon/base_stats/hitmonlee.asm22
-rw-r--r--data/pokemon/base_stats/hitmontop.asm22
-rw-r--r--data/pokemon/base_stats/ho_oh.asm22
-rw-r--r--data/pokemon/base_stats/hoothoot.asm22
-rw-r--r--data/pokemon/base_stats/hoppip.asm22
-rw-r--r--data/pokemon/base_stats/horsea.asm22
-rw-r--r--data/pokemon/base_stats/houndoom.asm22
-rw-r--r--data/pokemon/base_stats/houndour.asm22
-rw-r--r--data/pokemon/base_stats/hypno.asm22
-rw-r--r--data/pokemon/base_stats/igglybuff.asm22
-rw-r--r--data/pokemon/base_stats/ivysaur.asm22
-rw-r--r--data/pokemon/base_stats/jigglypuff.asm22
-rw-r--r--data/pokemon/base_stats/jolteon.asm22
-rw-r--r--data/pokemon/base_stats/jumpluff.asm22
-rw-r--r--data/pokemon/base_stats/jynx.asm22
-rw-r--r--data/pokemon/base_stats/kabuto.asm22
-rw-r--r--data/pokemon/base_stats/kabutops.asm22
-rw-r--r--data/pokemon/base_stats/kadabra.asm22
-rw-r--r--data/pokemon/base_stats/kakuna.asm22
-rw-r--r--data/pokemon/base_stats/kangaskhan.asm22
-rw-r--r--data/pokemon/base_stats/kingdra.asm22
-rw-r--r--data/pokemon/base_stats/kingler.asm22
-rw-r--r--data/pokemon/base_stats/koffing.asm22
-rw-r--r--data/pokemon/base_stats/krabby.asm22
-rw-r--r--data/pokemon/base_stats/lanturn.asm22
-rw-r--r--data/pokemon/base_stats/lapras.asm22
-rw-r--r--data/pokemon/base_stats/larvitar.asm22
-rw-r--r--data/pokemon/base_stats/ledian.asm22
-rw-r--r--data/pokemon/base_stats/ledyba.asm22
-rw-r--r--data/pokemon/base_stats/lickitung.asm22
-rw-r--r--data/pokemon/base_stats/lugia.asm22
-rw-r--r--data/pokemon/base_stats/machamp.asm22
-rw-r--r--data/pokemon/base_stats/machoke.asm22
-rw-r--r--data/pokemon/base_stats/machop.asm22
-rw-r--r--data/pokemon/base_stats/magby.asm22
-rw-r--r--data/pokemon/base_stats/magcargo.asm22
-rw-r--r--data/pokemon/base_stats/magikarp.asm22
-rw-r--r--data/pokemon/base_stats/magmar.asm22
-rw-r--r--data/pokemon/base_stats/magnemite.asm22
-rw-r--r--data/pokemon/base_stats/magneton.asm22
-rw-r--r--data/pokemon/base_stats/mankey.asm22
-rw-r--r--data/pokemon/base_stats/mantine.asm22
-rw-r--r--data/pokemon/base_stats/mareep.asm22
-rw-r--r--data/pokemon/base_stats/marill.asm22
-rw-r--r--data/pokemon/base_stats/marowak.asm22
-rw-r--r--data/pokemon/base_stats/meganium.asm22
-rw-r--r--data/pokemon/base_stats/meowth.asm22
-rw-r--r--data/pokemon/base_stats/metapod.asm22
-rw-r--r--data/pokemon/base_stats/mew.asm22
-rw-r--r--data/pokemon/base_stats/mewtwo.asm22
-rw-r--r--data/pokemon/base_stats/miltank.asm22
-rw-r--r--data/pokemon/base_stats/misdreavus.asm22
-rw-r--r--data/pokemon/base_stats/moltres.asm22
-rw-r--r--data/pokemon/base_stats/mr__mime.asm22
-rw-r--r--data/pokemon/base_stats/muk.asm22
-rw-r--r--data/pokemon/base_stats/murkrow.asm22
-rw-r--r--data/pokemon/base_stats/natu.asm22
-rw-r--r--data/pokemon/base_stats/nidoking.asm22
-rw-r--r--data/pokemon/base_stats/nidoqueen.asm22
-rw-r--r--data/pokemon/base_stats/nidoran_f.asm22
-rw-r--r--data/pokemon/base_stats/nidoran_m.asm22
-rw-r--r--data/pokemon/base_stats/nidorina.asm22
-rw-r--r--data/pokemon/base_stats/nidorino.asm22
-rw-r--r--data/pokemon/base_stats/ninetales.asm22
-rw-r--r--data/pokemon/base_stats/noctowl.asm22
-rw-r--r--data/pokemon/base_stats/octillery.asm22
-rw-r--r--data/pokemon/base_stats/oddish.asm22
-rw-r--r--data/pokemon/base_stats/omanyte.asm22
-rw-r--r--data/pokemon/base_stats/omastar.asm22
-rw-r--r--data/pokemon/base_stats/onix.asm22
-rw-r--r--data/pokemon/base_stats/paras.asm22
-rw-r--r--data/pokemon/base_stats/parasect.asm22
-rw-r--r--data/pokemon/base_stats/persian.asm22
-rw-r--r--data/pokemon/base_stats/phanpy.asm22
-rw-r--r--data/pokemon/base_stats/pichu.asm22
-rw-r--r--data/pokemon/base_stats/pidgeot.asm22
-rw-r--r--data/pokemon/base_stats/pidgeotto.asm22
-rw-r--r--data/pokemon/base_stats/pidgey.asm22
-rw-r--r--data/pokemon/base_stats/pikachu.asm22
-rw-r--r--data/pokemon/base_stats/piloswine.asm22
-rw-r--r--data/pokemon/base_stats/pineco.asm22
-rw-r--r--data/pokemon/base_stats/pinsir.asm22
-rw-r--r--data/pokemon/base_stats/politoed.asm22
-rw-r--r--data/pokemon/base_stats/poliwag.asm22
-rw-r--r--data/pokemon/base_stats/poliwhirl.asm22
-rw-r--r--data/pokemon/base_stats/poliwrath.asm22
-rw-r--r--data/pokemon/base_stats/ponyta.asm22
-rw-r--r--data/pokemon/base_stats/porygon.asm22
-rw-r--r--data/pokemon/base_stats/porygon2.asm22
-rw-r--r--data/pokemon/base_stats/primeape.asm22
-rw-r--r--data/pokemon/base_stats/psyduck.asm22
-rw-r--r--data/pokemon/base_stats/pupitar.asm22
-rw-r--r--data/pokemon/base_stats/quagsire.asm22
-rw-r--r--data/pokemon/base_stats/quilava.asm22
-rw-r--r--data/pokemon/base_stats/qwilfish.asm22
-rw-r--r--data/pokemon/base_stats/raichu.asm22
-rw-r--r--data/pokemon/base_stats/raikou.asm22
-rw-r--r--data/pokemon/base_stats/rapidash.asm22
-rw-r--r--data/pokemon/base_stats/raticate.asm22
-rw-r--r--data/pokemon/base_stats/rattata.asm22
-rw-r--r--data/pokemon/base_stats/remoraid.asm22
-rw-r--r--data/pokemon/base_stats/rhydon.asm22
-rw-r--r--data/pokemon/base_stats/rhyhorn.asm22
-rw-r--r--data/pokemon/base_stats/sandshrew.asm22
-rw-r--r--data/pokemon/base_stats/sandslash.asm22
-rw-r--r--data/pokemon/base_stats/scizor.asm22
-rw-r--r--data/pokemon/base_stats/scyther.asm22
-rw-r--r--data/pokemon/base_stats/seadra.asm22
-rw-r--r--data/pokemon/base_stats/seaking.asm22
-rw-r--r--data/pokemon/base_stats/seel.asm22
-rw-r--r--data/pokemon/base_stats/sentret.asm22
-rw-r--r--data/pokemon/base_stats/shellder.asm22
-rw-r--r--data/pokemon/base_stats/shuckle.asm22
-rw-r--r--data/pokemon/base_stats/skarmory.asm22
-rw-r--r--data/pokemon/base_stats/skiploom.asm22
-rw-r--r--data/pokemon/base_stats/slowbro.asm22
-rw-r--r--data/pokemon/base_stats/slowking.asm22
-rw-r--r--data/pokemon/base_stats/slowpoke.asm22
-rw-r--r--data/pokemon/base_stats/slugma.asm22
-rw-r--r--data/pokemon/base_stats/smeargle.asm22
-rw-r--r--data/pokemon/base_stats/smoochum.asm22
-rw-r--r--data/pokemon/base_stats/sneasel.asm22
-rw-r--r--data/pokemon/base_stats/snorlax.asm22
-rw-r--r--data/pokemon/base_stats/snubbull.asm22
-rw-r--r--data/pokemon/base_stats/spearow.asm22
-rw-r--r--data/pokemon/base_stats/spinarak.asm22
-rw-r--r--data/pokemon/base_stats/squirtle.asm22
-rw-r--r--data/pokemon/base_stats/stantler.asm22
-rw-r--r--data/pokemon/base_stats/starmie.asm22
-rw-r--r--data/pokemon/base_stats/staryu.asm22
-rw-r--r--data/pokemon/base_stats/steelix.asm22
-rw-r--r--data/pokemon/base_stats/sudowoodo.asm22
-rw-r--r--data/pokemon/base_stats/suicune.asm22
-rw-r--r--data/pokemon/base_stats/sunflora.asm22
-rw-r--r--data/pokemon/base_stats/sunkern.asm22
-rw-r--r--data/pokemon/base_stats/swinub.asm22
-rw-r--r--data/pokemon/base_stats/tangela.asm22
-rw-r--r--data/pokemon/base_stats/tauros.asm22
-rw-r--r--data/pokemon/base_stats/teddiursa.asm22
-rw-r--r--data/pokemon/base_stats/tentacool.asm22
-rw-r--r--data/pokemon/base_stats/tentacruel.asm22
-rw-r--r--data/pokemon/base_stats/togepi.asm22
-rw-r--r--data/pokemon/base_stats/togetic.asm22
-rw-r--r--data/pokemon/base_stats/totodile.asm22
-rw-r--r--data/pokemon/base_stats/typhlosion.asm22
-rw-r--r--data/pokemon/base_stats/tyranitar.asm22
-rw-r--r--data/pokemon/base_stats/tyrogue.asm22
-rw-r--r--data/pokemon/base_stats/umbreon.asm22
-rw-r--r--data/pokemon/base_stats/unown.asm22
-rw-r--r--data/pokemon/base_stats/ursaring.asm22
-rw-r--r--data/pokemon/base_stats/vaporeon.asm22
-rw-r--r--data/pokemon/base_stats/venomoth.asm22
-rw-r--r--data/pokemon/base_stats/venonat.asm22
-rw-r--r--data/pokemon/base_stats/venusaur.asm22
-rw-r--r--data/pokemon/base_stats/victreebel.asm22
-rw-r--r--data/pokemon/base_stats/vileplume.asm22
-rw-r--r--data/pokemon/base_stats/voltorb.asm22
-rw-r--r--data/pokemon/base_stats/vulpix.asm22
-rw-r--r--data/pokemon/base_stats/wartortle.asm22
-rw-r--r--data/pokemon/base_stats/weedle.asm22
-rw-r--r--data/pokemon/base_stats/weepinbell.asm22
-rw-r--r--data/pokemon/base_stats/weezing.asm22
-rw-r--r--data/pokemon/base_stats/wigglytuff.asm22
-rw-r--r--data/pokemon/base_stats/wobbuffet.asm22
-rw-r--r--data/pokemon/base_stats/wooper.asm22
-rw-r--r--data/pokemon/base_stats/xatu.asm22
-rw-r--r--data/pokemon/base_stats/yanma.asm22
-rw-r--r--data/pokemon/base_stats/zapdos.asm22
-rw-r--r--data/pokemon/base_stats/zubat.asm22
-rw-r--r--data/pokemon/cry_headers.asm259
-rw-r--r--data/pokemon/dex_entries.asm272
-rw-r--r--data/pokemon/dex_entries/abra.asm (renamed from data/pokedex/entries/abra.asm)0
-rw-r--r--data/pokemon/dex_entries/aerodactyl.asm (renamed from data/pokedex/entries/aerodactyl.asm)0
-rw-r--r--data/pokemon/dex_entries/aipom.asm (renamed from data/pokedex/entries/aipom.asm)0
-rw-r--r--data/pokemon/dex_entries/alakazam.asm (renamed from data/pokedex/entries/alakazam.asm)0
-rw-r--r--data/pokemon/dex_entries/ampharos.asm (renamed from data/pokedex/entries/ampharos.asm)0
-rw-r--r--data/pokemon/dex_entries/arbok.asm (renamed from data/pokedex/entries/arbok.asm)0
-rw-r--r--data/pokemon/dex_entries/arcanine.asm (renamed from data/pokedex/entries/arcanine.asm)0
-rw-r--r--data/pokemon/dex_entries/ariados.asm (renamed from data/pokedex/entries/ariados.asm)0
-rw-r--r--data/pokemon/dex_entries/articuno.asm (renamed from data/pokedex/entries/articuno.asm)0
-rw-r--r--data/pokemon/dex_entries/azumarill.asm (renamed from data/pokedex/entries/azumarill.asm)0
-rw-r--r--data/pokemon/dex_entries/bayleef.asm (renamed from data/pokedex/entries/bayleef.asm)0
-rw-r--r--data/pokemon/dex_entries/beedrill.asm (renamed from data/pokedex/entries/beedrill.asm)0
-rw-r--r--data/pokemon/dex_entries/bellossom.asm (renamed from data/pokedex/entries/bellossom.asm)0
-rw-r--r--data/pokemon/dex_entries/bellsprout.asm (renamed from data/pokedex/entries/bellsprout.asm)0
-rw-r--r--data/pokemon/dex_entries/blastoise.asm (renamed from data/pokedex/entries/blastoise.asm)0
-rw-r--r--data/pokemon/dex_entries/blissey.asm (renamed from data/pokedex/entries/blissey.asm)0
-rw-r--r--data/pokemon/dex_entries/bulbasaur.asm (renamed from data/pokedex/entries/bulbasaur.asm)0
-rw-r--r--data/pokemon/dex_entries/butterfree.asm (renamed from data/pokedex/entries/butterfree.asm)0
-rw-r--r--data/pokemon/dex_entries/caterpie.asm (renamed from data/pokedex/entries/caterpie.asm)0
-rw-r--r--data/pokemon/dex_entries/celebi.asm (renamed from data/pokedex/entries/celebi.asm)0
-rw-r--r--data/pokemon/dex_entries/chansey.asm (renamed from data/pokedex/entries/chansey.asm)0
-rw-r--r--data/pokemon/dex_entries/charizard.asm (renamed from data/pokedex/entries/charizard.asm)0
-rw-r--r--data/pokemon/dex_entries/charmander.asm (renamed from data/pokedex/entries/charmander.asm)0
-rw-r--r--data/pokemon/dex_entries/charmeleon.asm (renamed from data/pokedex/entries/charmeleon.asm)0
-rw-r--r--data/pokemon/dex_entries/chikorita.asm (renamed from data/pokedex/entries/chikorita.asm)0
-rw-r--r--data/pokemon/dex_entries/chinchou.asm (renamed from data/pokedex/entries/chinchou.asm)0
-rw-r--r--data/pokemon/dex_entries/clefable.asm (renamed from data/pokedex/entries/clefable.asm)0
-rw-r--r--data/pokemon/dex_entries/clefairy.asm (renamed from data/pokedex/entries/clefairy.asm)0
-rw-r--r--data/pokemon/dex_entries/cleffa.asm (renamed from data/pokedex/entries/cleffa.asm)0
-rw-r--r--data/pokemon/dex_entries/cloyster.asm (renamed from data/pokedex/entries/cloyster.asm)0
-rw-r--r--data/pokemon/dex_entries/corsola.asm (renamed from data/pokedex/entries/corsola.asm)0
-rw-r--r--data/pokemon/dex_entries/crobat.asm (renamed from data/pokedex/entries/crobat.asm)0
-rw-r--r--data/pokemon/dex_entries/croconaw.asm (renamed from data/pokedex/entries/croconaw.asm)0
-rw-r--r--data/pokemon/dex_entries/cubone.asm (renamed from data/pokedex/entries/cubone.asm)0
-rw-r--r--data/pokemon/dex_entries/cyndaquil.asm (renamed from data/pokedex/entries/cyndaquil.asm)0
-rw-r--r--data/pokemon/dex_entries/delibird.asm (renamed from data/pokedex/entries/delibird.asm)0
-rw-r--r--data/pokemon/dex_entries/dewgong.asm (renamed from data/pokedex/entries/dewgong.asm)0
-rw-r--r--data/pokemon/dex_entries/diglett.asm (renamed from data/pokedex/entries/diglett.asm)0
-rw-r--r--data/pokemon/dex_entries/ditto.asm (renamed from data/pokedex/entries/ditto.asm)0
-rw-r--r--data/pokemon/dex_entries/dodrio.asm (renamed from data/pokedex/entries/dodrio.asm)0
-rw-r--r--data/pokemon/dex_entries/doduo.asm (renamed from data/pokedex/entries/doduo.asm)0
-rw-r--r--data/pokemon/dex_entries/donphan.asm (renamed from data/pokedex/entries/donphan.asm)0
-rw-r--r--data/pokemon/dex_entries/dragonair.asm (renamed from data/pokedex/entries/dragonair.asm)0
-rw-r--r--data/pokemon/dex_entries/dragonite.asm (renamed from data/pokedex/entries/dragonite.asm)0
-rw-r--r--data/pokemon/dex_entries/dratini.asm (renamed from data/pokedex/entries/dratini.asm)0
-rw-r--r--data/pokemon/dex_entries/drowzee.asm (renamed from data/pokedex/entries/drowzee.asm)0
-rw-r--r--data/pokemon/dex_entries/dugtrio.asm (renamed from data/pokedex/entries/dugtrio.asm)0
-rw-r--r--data/pokemon/dex_entries/dunsparce.asm (renamed from data/pokedex/entries/dunsparce.asm)0
-rw-r--r--data/pokemon/dex_entries/eevee.asm (renamed from data/pokedex/entries/eevee.asm)0
-rw-r--r--data/pokemon/dex_entries/ekans.asm (renamed from data/pokedex/entries/ekans.asm)0
-rw-r--r--data/pokemon/dex_entries/electabuzz.asm (renamed from data/pokedex/entries/electabuzz.asm)0
-rw-r--r--data/pokemon/dex_entries/electrode.asm (renamed from data/pokedex/entries/electrode.asm)0
-rw-r--r--data/pokemon/dex_entries/elekid.asm (renamed from data/pokedex/entries/elekid.asm)0
-rw-r--r--data/pokemon/dex_entries/entei.asm (renamed from data/pokedex/entries/entei.asm)0
-rw-r--r--data/pokemon/dex_entries/espeon.asm (renamed from data/pokedex/entries/espeon.asm)0
-rw-r--r--data/pokemon/dex_entries/exeggcute.asm (renamed from data/pokedex/entries/exeggcute.asm)0
-rw-r--r--data/pokemon/dex_entries/exeggutor.asm (renamed from data/pokedex/entries/exeggutor.asm)0
-rw-r--r--data/pokemon/dex_entries/farfetch_d.asm (renamed from data/pokedex/entries/farfetch_d.asm)0
-rw-r--r--data/pokemon/dex_entries/fearow.asm (renamed from data/pokedex/entries/fearow.asm)0
-rw-r--r--data/pokemon/dex_entries/feraligatr.asm (renamed from data/pokedex/entries/feraligatr.asm)0
-rw-r--r--data/pokemon/dex_entries/flaaffy.asm (renamed from data/pokedex/entries/flaaffy.asm)0
-rw-r--r--data/pokemon/dex_entries/flareon.asm (renamed from data/pokedex/entries/flareon.asm)0
-rw-r--r--data/pokemon/dex_entries/forretress.asm (renamed from data/pokedex/entries/forretress.asm)0
-rw-r--r--data/pokemon/dex_entries/furret.asm (renamed from data/pokedex/entries/furret.asm)0
-rw-r--r--data/pokemon/dex_entries/gastly.asm (renamed from data/pokedex/entries/gastly.asm)0
-rw-r--r--data/pokemon/dex_entries/gengar.asm (renamed from data/pokedex/entries/gengar.asm)0
-rw-r--r--data/pokemon/dex_entries/geodude.asm (renamed from data/pokedex/entries/geodude.asm)0
-rw-r--r--data/pokemon/dex_entries/girafarig.asm (renamed from data/pokedex/entries/girafarig.asm)0
-rw-r--r--data/pokemon/dex_entries/gligar.asm (renamed from data/pokedex/entries/gligar.asm)0
-rw-r--r--data/pokemon/dex_entries/gloom.asm (renamed from data/pokedex/entries/gloom.asm)0
-rw-r--r--data/pokemon/dex_entries/golbat.asm (renamed from data/pokedex/entries/golbat.asm)0
-rw-r--r--data/pokemon/dex_entries/goldeen.asm (renamed from data/pokedex/entries/goldeen.asm)0
-rw-r--r--data/pokemon/dex_entries/golduck.asm (renamed from data/pokedex/entries/golduck.asm)0
-rw-r--r--data/pokemon/dex_entries/golem.asm (renamed from data/pokedex/entries/golem.asm)0
-rw-r--r--data/pokemon/dex_entries/granbull.asm (renamed from data/pokedex/entries/granbull.asm)0
-rw-r--r--data/pokemon/dex_entries/graveler.asm (renamed from data/pokedex/entries/graveler.asm)0
-rw-r--r--data/pokemon/dex_entries/grimer.asm (renamed from data/pokedex/entries/grimer.asm)0
-rw-r--r--data/pokemon/dex_entries/growlithe.asm (renamed from data/pokedex/entries/growlithe.asm)0
-rw-r--r--data/pokemon/dex_entries/gyarados.asm (renamed from data/pokedex/entries/gyarados.asm)0
-rw-r--r--data/pokemon/dex_entries/haunter.asm (renamed from data/pokedex/entries/haunter.asm)0
-rw-r--r--data/pokemon/dex_entries/heracross.asm (renamed from data/pokedex/entries/heracross.asm)0
-rw-r--r--data/pokemon/dex_entries/hitmonchan.asm (renamed from data/pokedex/entries/hitmonchan.asm)0
-rw-r--r--data/pokemon/dex_entries/hitmonlee.asm (renamed from data/pokedex/entries/hitmonlee.asm)0
-rw-r--r--data/pokemon/dex_entries/hitmontop.asm (renamed from data/pokedex/entries/hitmontop.asm)0
-rw-r--r--data/pokemon/dex_entries/ho_oh.asm (renamed from data/pokedex/entries/ho_oh.asm)0
-rw-r--r--data/pokemon/dex_entries/hoothoot.asm (renamed from data/pokedex/entries/hoothoot.asm)0
-rw-r--r--data/pokemon/dex_entries/hoppip.asm (renamed from data/pokedex/entries/hoppip.asm)0
-rw-r--r--data/pokemon/dex_entries/horsea.asm (renamed from data/pokedex/entries/horsea.asm)0
-rw-r--r--data/pokemon/dex_entries/houndoom.asm (renamed from data/pokedex/entries/houndoom.asm)0
-rw-r--r--data/pokemon/dex_entries/houndour.asm (renamed from data/pokedex/entries/houndour.asm)0
-rw-r--r--data/pokemon/dex_entries/hypno.asm (renamed from data/pokedex/entries/hypno.asm)0
-rw-r--r--data/pokemon/dex_entries/igglybuff.asm (renamed from data/pokedex/entries/igglybuff.asm)0
-rw-r--r--data/pokemon/dex_entries/ivysaur.asm (renamed from data/pokedex/entries/ivysaur.asm)0
-rw-r--r--data/pokemon/dex_entries/jigglypuff.asm (renamed from data/pokedex/entries/jigglypuff.asm)0
-rw-r--r--data/pokemon/dex_entries/jolteon.asm (renamed from data/pokedex/entries/jolteon.asm)0
-rw-r--r--data/pokemon/dex_entries/jumpluff.asm (renamed from data/pokedex/entries/jumpluff.asm)0
-rw-r--r--data/pokemon/dex_entries/jynx.asm (renamed from data/pokedex/entries/jynx.asm)0
-rw-r--r--data/pokemon/dex_entries/kabuto.asm (renamed from data/pokedex/entries/kabuto.asm)0
-rw-r--r--data/pokemon/dex_entries/kabutops.asm (renamed from data/pokedex/entries/kabutops.asm)0
-rw-r--r--data/pokemon/dex_entries/kadabra.asm (renamed from data/pokedex/entries/kadabra.asm)0
-rw-r--r--data/pokemon/dex_entries/kakuna.asm (renamed from data/pokedex/entries/kakuna.asm)0
-rw-r--r--data/pokemon/dex_entries/kangaskhan.asm (renamed from data/pokedex/entries/kangaskhan.asm)0
-rw-r--r--data/pokemon/dex_entries/kingdra.asm (renamed from data/pokedex/entries/kingdra.asm)0
-rw-r--r--data/pokemon/dex_entries/kingler.asm (renamed from data/pokedex/entries/kingler.asm)0
-rw-r--r--data/pokemon/dex_entries/koffing.asm (renamed from data/pokedex/entries/koffing.asm)0
-rw-r--r--data/pokemon/dex_entries/krabby.asm (renamed from data/pokedex/entries/krabby.asm)0
-rw-r--r--data/pokemon/dex_entries/lanturn.asm (renamed from data/pokedex/entries/lanturn.asm)0
-rw-r--r--data/pokemon/dex_entries/lapras.asm (renamed from data/pokedex/entries/lapras.asm)0
-rw-r--r--data/pokemon/dex_entries/larvitar.asm (renamed from data/pokedex/entries/larvitar.asm)0
-rw-r--r--data/pokemon/dex_entries/ledian.asm (renamed from data/pokedex/entries/ledian.asm)0
-rw-r--r--data/pokemon/dex_entries/ledyba.asm (renamed from data/pokedex/entries/ledyba.asm)0
-rw-r--r--data/pokemon/dex_entries/lickitung.asm (renamed from data/pokedex/entries/lickitung.asm)0
-rw-r--r--data/pokemon/dex_entries/lugia.asm (renamed from data/pokedex/entries/lugia.asm)0
-rw-r--r--data/pokemon/dex_entries/machamp.asm (renamed from data/pokedex/entries/machamp.asm)0
-rw-r--r--data/pokemon/dex_entries/machoke.asm (renamed from data/pokedex/entries/machoke.asm)0
-rw-r--r--data/pokemon/dex_entries/machop.asm (renamed from data/pokedex/entries/machop.asm)0
-rw-r--r--data/pokemon/dex_entries/magby.asm (renamed from data/pokedex/entries/magby.asm)0
-rw-r--r--data/pokemon/dex_entries/magcargo.asm (renamed from data/pokedex/entries/magcargo.asm)0
-rw-r--r--data/pokemon/dex_entries/magikarp.asm (renamed from data/pokedex/entries/magikarp.asm)0
-rw-r--r--data/pokemon/dex_entries/magmar.asm (renamed from data/pokedex/entries/magmar.asm)0
-rw-r--r--data/pokemon/dex_entries/magnemite.asm (renamed from data/pokedex/entries/magnemite.asm)0
-rw-r--r--data/pokemon/dex_entries/magneton.asm (renamed from data/pokedex/entries/magneton.asm)0
-rw-r--r--data/pokemon/dex_entries/mankey.asm (renamed from data/pokedex/entries/mankey.asm)0
-rw-r--r--data/pokemon/dex_entries/mantine.asm (renamed from data/pokedex/entries/mantine.asm)0
-rw-r--r--data/pokemon/dex_entries/mareep.asm (renamed from data/pokedex/entries/mareep.asm)0
-rw-r--r--data/pokemon/dex_entries/marill.asm (renamed from data/pokedex/entries/marill.asm)0
-rw-r--r--data/pokemon/dex_entries/marowak.asm (renamed from data/pokedex/entries/marowak.asm)0
-rw-r--r--data/pokemon/dex_entries/meganium.asm (renamed from data/pokedex/entries/meganium.asm)0
-rw-r--r--data/pokemon/dex_entries/meowth.asm (renamed from data/pokedex/entries/meowth.asm)0
-rw-r--r--data/pokemon/dex_entries/metapod.asm (renamed from data/pokedex/entries/metapod.asm)0
-rw-r--r--data/pokemon/dex_entries/mew.asm (renamed from data/pokedex/entries/mew.asm)0
-rw-r--r--data/pokemon/dex_entries/mewtwo.asm (renamed from data/pokedex/entries/mewtwo.asm)0
-rw-r--r--data/pokemon/dex_entries/miltank.asm (renamed from data/pokedex/entries/miltank.asm)0
-rw-r--r--data/pokemon/dex_entries/misdreavus.asm (renamed from data/pokedex/entries/misdreavus.asm)0
-rw-r--r--data/pokemon/dex_entries/moltres.asm (renamed from data/pokedex/entries/moltres.asm)0
-rw-r--r--data/pokemon/dex_entries/mr__mime.asm (renamed from data/pokedex/entries/mr__mime.asm)0
-rw-r--r--data/pokemon/dex_entries/muk.asm (renamed from data/pokedex/entries/muk.asm)0
-rw-r--r--data/pokemon/dex_entries/murkrow.asm (renamed from data/pokedex/entries/murkrow.asm)0
-rw-r--r--data/pokemon/dex_entries/natu.asm (renamed from data/pokedex/entries/natu.asm)0
-rw-r--r--data/pokemon/dex_entries/nidoking.asm (renamed from data/pokedex/entries/nidoking.asm)0
-rw-r--r--data/pokemon/dex_entries/nidoqueen.asm (renamed from data/pokedex/entries/nidoqueen.asm)0
-rw-r--r--data/pokemon/dex_entries/nidoran_f.asm (renamed from data/pokedex/entries/nidoran_f.asm)0
-rw-r--r--data/pokemon/dex_entries/nidoran_m.asm (renamed from data/pokedex/entries/nidoran_m.asm)0
-rw-r--r--data/pokemon/dex_entries/nidorina.asm (renamed from data/pokedex/entries/nidorina.asm)0
-rw-r--r--data/pokemon/dex_entries/nidorino.asm (renamed from data/pokedex/entries/nidorino.asm)0
-rw-r--r--data/pokemon/dex_entries/ninetales.asm (renamed from data/pokedex/entries/ninetales.asm)0
-rw-r--r--data/pokemon/dex_entries/noctowl.asm (renamed from data/pokedex/entries/noctowl.asm)0
-rw-r--r--data/pokemon/dex_entries/octillery.asm (renamed from data/pokedex/entries/octillery.asm)0
-rw-r--r--data/pokemon/dex_entries/oddish.asm (renamed from data/pokedex/entries/oddish.asm)0
-rw-r--r--data/pokemon/dex_entries/omanyte.asm (renamed from data/pokedex/entries/omanyte.asm)0
-rw-r--r--data/pokemon/dex_entries/omastar.asm (renamed from data/pokedex/entries/omastar.asm)0
-rw-r--r--data/pokemon/dex_entries/onix.asm (renamed from data/pokedex/entries/onix.asm)0
-rw-r--r--data/pokemon/dex_entries/paras.asm (renamed from data/pokedex/entries/paras.asm)0
-rw-r--r--data/pokemon/dex_entries/parasect.asm (renamed from data/pokedex/entries/parasect.asm)0
-rw-r--r--data/pokemon/dex_entries/persian.asm (renamed from data/pokedex/entries/persian.asm)0
-rw-r--r--data/pokemon/dex_entries/phanpy.asm (renamed from data/pokedex/entries/phanpy.asm)0
-rw-r--r--data/pokemon/dex_entries/pichu.asm (renamed from data/pokedex/entries/pichu.asm)0
-rw-r--r--data/pokemon/dex_entries/pidgeot.asm (renamed from data/pokedex/entries/pidgeot.asm)0
-rw-r--r--data/pokemon/dex_entries/pidgeotto.asm (renamed from data/pokedex/entries/pidgeotto.asm)0
-rw-r--r--data/pokemon/dex_entries/pidgey.asm (renamed from data/pokedex/entries/pidgey.asm)0
-rw-r--r--data/pokemon/dex_entries/pikachu.asm (renamed from data/pokedex/entries/pikachu.asm)0
-rw-r--r--data/pokemon/dex_entries/piloswine.asm (renamed from data/pokedex/entries/piloswine.asm)0
-rw-r--r--data/pokemon/dex_entries/pineco.asm (renamed from data/pokedex/entries/pineco.asm)0
-rw-r--r--data/pokemon/dex_entries/pinsir.asm (renamed from data/pokedex/entries/pinsir.asm)0
-rw-r--r--data/pokemon/dex_entries/politoed.asm (renamed from data/pokedex/entries/politoed.asm)0
-rw-r--r--data/pokemon/dex_entries/poliwag.asm (renamed from data/pokedex/entries/poliwag.asm)0
-rw-r--r--data/pokemon/dex_entries/poliwhirl.asm (renamed from data/pokedex/entries/poliwhirl.asm)0
-rw-r--r--data/pokemon/dex_entries/poliwrath.asm (renamed from data/pokedex/entries/poliwrath.asm)0
-rw-r--r--data/pokemon/dex_entries/ponyta.asm (renamed from data/pokedex/entries/ponyta.asm)0
-rw-r--r--data/pokemon/dex_entries/porygon.asm (renamed from data/pokedex/entries/porygon.asm)0
-rw-r--r--data/pokemon/dex_entries/porygon2.asm (renamed from data/pokedex/entries/porygon2.asm)0
-rw-r--r--data/pokemon/dex_entries/primeape.asm (renamed from data/pokedex/entries/primeape.asm)0
-rw-r--r--data/pokemon/dex_entries/psyduck.asm (renamed from data/pokedex/entries/psyduck.asm)0
-rw-r--r--data/pokemon/dex_entries/pupitar.asm (renamed from data/pokedex/entries/pupitar.asm)0
-rw-r--r--data/pokemon/dex_entries/quagsire.asm (renamed from data/pokedex/entries/quagsire.asm)0
-rw-r--r--data/pokemon/dex_entries/quilava.asm (renamed from data/pokedex/entries/quilava.asm)0
-rw-r--r--data/pokemon/dex_entries/qwilfish.asm (renamed from data/pokedex/entries/qwilfish.asm)0
-rw-r--r--data/pokemon/dex_entries/raichu.asm (renamed from data/pokedex/entries/raichu.asm)0
-rw-r--r--data/pokemon/dex_entries/raikou.asm (renamed from data/pokedex/entries/raikou.asm)0
-rw-r--r--data/pokemon/dex_entries/rapidash.asm (renamed from data/pokedex/entries/rapidash.asm)0
-rw-r--r--data/pokemon/dex_entries/raticate.asm (renamed from data/pokedex/entries/raticate.asm)0
-rw-r--r--data/pokemon/dex_entries/rattata.asm (renamed from data/pokedex/entries/rattata.asm)0
-rw-r--r--data/pokemon/dex_entries/remoraid.asm (renamed from data/pokedex/entries/remoraid.asm)0
-rw-r--r--data/pokemon/dex_entries/rhydon.asm (renamed from data/pokedex/entries/rhydon.asm)0
-rw-r--r--data/pokemon/dex_entries/rhyhorn.asm (renamed from data/pokedex/entries/rhyhorn.asm)0
-rw-r--r--data/pokemon/dex_entries/sandshrew.asm (renamed from data/pokedex/entries/sandshrew.asm)0
-rw-r--r--data/pokemon/dex_entries/sandslash.asm (renamed from data/pokedex/entries/sandslash.asm)0
-rw-r--r--data/pokemon/dex_entries/scizor.asm (renamed from data/pokedex/entries/scizor.asm)0
-rw-r--r--data/pokemon/dex_entries/scyther.asm (renamed from data/pokedex/entries/scyther.asm)0
-rw-r--r--data/pokemon/dex_entries/seadra.asm (renamed from data/pokedex/entries/seadra.asm)0
-rw-r--r--data/pokemon/dex_entries/seaking.asm (renamed from data/pokedex/entries/seaking.asm)0
-rw-r--r--data/pokemon/dex_entries/seel.asm (renamed from data/pokedex/entries/seel.asm)0
-rw-r--r--data/pokemon/dex_entries/sentret.asm (renamed from data/pokedex/entries/sentret.asm)0
-rw-r--r--data/pokemon/dex_entries/shellder.asm (renamed from data/pokedex/entries/shellder.asm)0
-rw-r--r--data/pokemon/dex_entries/shuckle.asm (renamed from data/pokedex/entries/shuckle.asm)0
-rw-r--r--data/pokemon/dex_entries/skarmory.asm (renamed from data/pokedex/entries/skarmory.asm)0
-rw-r--r--data/pokemon/dex_entries/skiploom.asm (renamed from data/pokedex/entries/skiploom.asm)0
-rw-r--r--data/pokemon/dex_entries/slowbro.asm (renamed from data/pokedex/entries/slowbro.asm)0
-rw-r--r--data/pokemon/dex_entries/slowking.asm (renamed from data/pokedex/entries/slowking.asm)0
-rw-r--r--data/pokemon/dex_entries/slowpoke.asm (renamed from data/pokedex/entries/slowpoke.asm)0
-rw-r--r--data/pokemon/dex_entries/slugma.asm (renamed from data/pokedex/entries/slugma.asm)0
-rw-r--r--data/pokemon/dex_entries/smeargle.asm (renamed from data/pokedex/entries/smeargle.asm)0
-rw-r--r--data/pokemon/dex_entries/smoochum.asm (renamed from data/pokedex/entries/smoochum.asm)0
-rw-r--r--data/pokemon/dex_entries/sneasel.asm (renamed from data/pokedex/entries/sneasel.asm)0
-rw-r--r--data/pokemon/dex_entries/snorlax.asm (renamed from data/pokedex/entries/snorlax.asm)0
-rw-r--r--data/pokemon/dex_entries/snubbull.asm (renamed from data/pokedex/entries/snubbull.asm)0
-rw-r--r--data/pokemon/dex_entries/spearow.asm (renamed from data/pokedex/entries/spearow.asm)0
-rw-r--r--data/pokemon/dex_entries/spinarak.asm (renamed from data/pokedex/entries/spinarak.asm)0
-rw-r--r--data/pokemon/dex_entries/squirtle.asm (renamed from data/pokedex/entries/squirtle.asm)0
-rw-r--r--data/pokemon/dex_entries/stantler.asm (renamed from data/pokedex/entries/stantler.asm)0
-rw-r--r--data/pokemon/dex_entries/starmie.asm (renamed from data/pokedex/entries/starmie.asm)0
-rw-r--r--data/pokemon/dex_entries/staryu.asm (renamed from data/pokedex/entries/staryu.asm)0
-rw-r--r--data/pokemon/dex_entries/steelix.asm (renamed from data/pokedex/entries/steelix.asm)0
-rw-r--r--data/pokemon/dex_entries/sudowoodo.asm (renamed from data/pokedex/entries/sudowoodo.asm)0
-rw-r--r--data/pokemon/dex_entries/suicune.asm (renamed from data/pokedex/entries/suicune.asm)0
-rw-r--r--data/pokemon/dex_entries/sunflora.asm (renamed from data/pokedex/entries/sunflora.asm)0
-rw-r--r--data/pokemon/dex_entries/sunkern.asm (renamed from data/pokedex/entries/sunkern.asm)0
-rw-r--r--data/pokemon/dex_entries/swinub.asm (renamed from data/pokedex/entries/swinub.asm)0
-rw-r--r--data/pokemon/dex_entries/tangela.asm (renamed from data/pokedex/entries/tangela.asm)0
-rw-r--r--data/pokemon/dex_entries/tauros.asm (renamed from data/pokedex/entries/tauros.asm)0
-rw-r--r--data/pokemon/dex_entries/teddiursa.asm (renamed from data/pokedex/entries/teddiursa.asm)0
-rw-r--r--data/pokemon/dex_entries/tentacool.asm (renamed from data/pokedex/entries/tentacool.asm)0
-rw-r--r--data/pokemon/dex_entries/tentacruel.asm (renamed from data/pokedex/entries/tentacruel.asm)0
-rw-r--r--data/pokemon/dex_entries/togepi.asm (renamed from data/pokedex/entries/togepi.asm)0
-rw-r--r--data/pokemon/dex_entries/togetic.asm (renamed from data/pokedex/entries/togetic.asm)0
-rw-r--r--data/pokemon/dex_entries/totodile.asm (renamed from data/pokedex/entries/totodile.asm)0
-rw-r--r--data/pokemon/dex_entries/typhlosion.asm (renamed from data/pokedex/entries/typhlosion.asm)0
-rw-r--r--data/pokemon/dex_entries/tyranitar.asm (renamed from data/pokedex/entries/tyranitar.asm)0
-rw-r--r--data/pokemon/dex_entries/tyrogue.asm (renamed from data/pokedex/entries/tyrogue.asm)0
-rw-r--r--data/pokemon/dex_entries/umbreon.asm (renamed from data/pokedex/entries/umbreon.asm)0
-rw-r--r--data/pokemon/dex_entries/unown.asm (renamed from data/pokedex/entries/unown.asm)0
-rw-r--r--data/pokemon/dex_entries/ursaring.asm (renamed from data/pokedex/entries/ursaring.asm)0
-rw-r--r--data/pokemon/dex_entries/vaporeon.asm (renamed from data/pokedex/entries/vaporeon.asm)0
-rw-r--r--data/pokemon/dex_entries/venomoth.asm (renamed from data/pokedex/entries/venomoth.asm)0
-rw-r--r--data/pokemon/dex_entries/venonat.asm (renamed from data/pokedex/entries/venonat.asm)0
-rw-r--r--data/pokemon/dex_entries/venusaur.asm (renamed from data/pokedex/entries/venusaur.asm)0
-rw-r--r--data/pokemon/dex_entries/victreebel.asm (renamed from data/pokedex/entries/victreebel.asm)0
-rw-r--r--data/pokemon/dex_entries/vileplume.asm (renamed from data/pokedex/entries/vileplume.asm)0
-rw-r--r--data/pokemon/dex_entries/voltorb.asm (renamed from data/pokedex/entries/voltorb.asm)0
-rw-r--r--data/pokemon/dex_entries/vulpix.asm (renamed from data/pokedex/entries/vulpix.asm)0
-rw-r--r--data/pokemon/dex_entries/wartortle.asm (renamed from data/pokedex/entries/wartortle.asm)0
-rw-r--r--data/pokemon/dex_entries/weedle.asm (renamed from data/pokedex/entries/weedle.asm)0
-rw-r--r--data/pokemon/dex_entries/weepinbell.asm (renamed from data/pokedex/entries/weepinbell.asm)0
-rw-r--r--data/pokemon/dex_entries/weezing.asm (renamed from data/pokedex/entries/weezing.asm)0
-rw-r--r--data/pokemon/dex_entries/wigglytuff.asm (renamed from data/pokedex/entries/wigglytuff.asm)0
-rw-r--r--data/pokemon/dex_entries/wobbuffet.asm (renamed from data/pokedex/entries/wobbuffet.asm)0
-rw-r--r--data/pokemon/dex_entries/wooper.asm (renamed from data/pokedex/entries/wooper.asm)0
-rw-r--r--data/pokemon/dex_entries/xatu.asm (renamed from data/pokedex/entries/xatu.asm)0
-rw-r--r--data/pokemon/dex_entries/yanma.asm (renamed from data/pokedex/entries/yanma.asm)0
-rw-r--r--data/pokemon/dex_entries/zapdos.asm (renamed from data/pokedex/entries/zapdos.asm)0
-rw-r--r--data/pokemon/dex_entries/zubat.asm (renamed from data/pokedex/entries/zubat.asm)0
-rw-r--r--data/pokemon/dex_entry_pointers.asm (renamed from data/pokedex/entry_pointers.asm)0
-rw-r--r--data/pokemon/dex_order_alpha.asm (renamed from data/pokedex/order_alpha.asm)0
-rw-r--r--data/pokemon/dex_order_new.asm (renamed from data/pokedex/order_new.asm)0
-rw-r--r--data/pokemon/egg_move_pointers.asm (renamed from data/egg_move_pointers.asm)0
-rw-r--r--data/pokemon/egg_moves.asm870
-rw-r--r--data/pokemon/evos_attacks.asm3398
-rw-r--r--data/pokemon/evos_attacks_pointers.asm (renamed from data/evos_attacks_pointers.asm)0
-rw-r--r--data/pokemon/menu_icons.asm (renamed from data/mon_menu_icons.asm)0
-rw-r--r--data/pokemon/pokemon_names.asm (renamed from data/pokemon_names.asm)0
-rw-r--r--data/sgb_border_map.asm29
-rw-r--r--data/text_buffers.asm9
-rw-r--r--data/trainers/encounter_music.asm (renamed from trainers/encounter_music.asm)0
-rw-r--r--data/trainers/gendered_trainers.asm (renamed from trainers/gendered_trainers.asm)0
-rw-r--r--data/trainers/parties.asm (renamed from trainers/trainers.asm)0
-rw-r--r--data/trainers/party_pointers.asm (renamed from trainers/trainer_pointers.asm)0
-rw-r--r--data/trainers/trainer_attributes.asm (renamed from trainers/attributes.asm)0
-rwxr-xr-xdata/trainers/trainer_class_names.asm69
-rw-r--r--data/trainers/trainer_dvs.asm (renamed from trainers/dvs.asm)0
-rw-r--r--data/unown_words.asm67
-rw-r--r--docs/bugs_and_glitches.md762
-rw-r--r--docs/effect_commands.md358
-rw-r--r--docs/event_commands.md3
-rw-r--r--docs/images/hp_exp_bar_border.pngbin0 -> 125 bytes
-rw-r--r--docs/images/hp_exp_bar_border_fix.pngbin0 -> 124 bytes
-rw-r--r--docs/images/port.pngbin0 -> 1055 bytes
-rw-r--r--docs/images/port_fix.pngbin0 -> 1056 bytes
-rw-r--r--docs/move_anim_commands.md3
-rw-r--r--docs/movement_commands.md3
-rw-r--r--docs/music_commands.md3
-rw-r--r--docs/pic_animations.md3
-rw-r--r--docs/text_commands.md32
-rw-r--r--engine/battle_start.asm866
-rw-r--r--engine/battle_transition.asm873
-rwxr-xr-xengine/breeding.asm (renamed from engine/breeding/egg.asm)0
-rwxr-xr-xengine/card_flip.asm59
-rw-r--r--engine/caught_data.asm247
-rw-r--r--engine/cgb_layouts.asm1071
-rw-r--r--engine/check_battle_scene.asm47
-rw-r--r--engine/check_nick_errors.asm74
-rw-r--r--engine/check_time.asm19
-rw-r--r--engine/color.asm926
-rw-r--r--engine/consume_held_item.asm80
-rw-r--r--engine/credits.asm704
-rwxr-xr-xengine/crystal_colors.asm336
-rwxr-xr-xengine/crystal_intro.asm513
-rwxr-xr-xengine/debug.asm89
-rwxr-xr-xengine/decorations.asm10
-rwxr-xr-xengine/dma_transfer.asm625
-rw-r--r--engine/empty_sram.asm19
-rw-r--r--engine/european_mail.asm129
-rw-r--r--engine/experience.asm162
-rw-r--r--engine/flag_predef.asm70
-rw-r--r--engine/fruit_trees.asm2
-rw-r--r--engine/gbc_only.asm (renamed from misc/gbc_only.asm)0
-rw-r--r--engine/get_breedmon_growth.asm27
-rwxr-xr-xengine/init_gender.asm2
-rw-r--r--engine/init_hof_credits.asm79
-rw-r--r--engine/init_list.asm54
-rw-r--r--engine/init_map.asm103
-rw-r--r--engine/item_effects.asm3318
-rw-r--r--engine/knows_move.asm25
-rw-r--r--engine/landmarks.asm2
-rwxr-xr-xengine/link.asm17
-rw-r--r--engine/map_objects.asm2
-rw-r--r--engine/map_objects_2.asm70
-rw-r--r--engine/map_palettes.asm86
-rw-r--r--engine/map_setup.asm2
-rwxr-xr-xengine/mart.asm28
-rw-r--r--engine/menu_2.asm263
-rwxr-xr-xengine/mon_icons.asm2
-rw-r--r--engine/mon_stats.asm486
-rwxr-xr-xengine/mystery_gift.asm (renamed from engine/mysterygift.asm)0
-rwxr-xr-xengine/mystery_gift_2.asm (renamed from engine/mysterygift2.asm)0
-rw-r--r--engine/new_pokedex_entry.asm52
-rwxr-xr-xengine/npc_movement.asm3
-rwxr-xr-xengine/overworld.asm8
-rw-r--r--engine/pack.asm8
-rw-r--r--engine/pack_f.asm20
-rw-r--r--engine/place_graphics.asm56
-rw-r--r--engine/play_slow_cry.asm31
-rw-r--r--engine/player_gfx.asm263
-rw-r--r--engine/player_gfx_2.asm5
-rwxr-xr-xengine/player_movement.asm10
-rwxr-xr-xengine/pokeball_wobble.asm (renamed from items/pokeball_wobble.asm)0
-rw-r--r--engine/pokedex.asm4
-rw-r--r--engine/pokedex_3.asm162
-rwxr-xr-xengine/pokegear.asm53
-rw-r--r--engine/pokegear_2.asm25
-rw-r--r--engine/pokerus.asm160
-rw-r--r--engine/pokerus_tick.asm26
-rwxr-xr-xengine/print_party.asm362
-rwxr-xr-xengine/printer.asm2
-rwxr-xr-xengine/printer_serial.asm (renamed from engine/printer/serial.asm)0
-rw-r--r--engine/printhoursmins.asm64
-rwxr-xr-xengine/prof_oaks_pc.asm44
-rw-r--r--engine/radio.asm1
-rw-r--r--engine/read_trainer_attributes.asm (renamed from trainers/read_attributes.asm)0
-rwxr-xr-xengine/read_trainer_party.asm (renamed from trainers/read_party.asm)0
-rw-r--r--engine/save.asm40
-rwxr-xr-xengine/select_menu.asm (renamed from engine/selectmenu.asm)0
-rw-r--r--engine/sgb_layouts.asm636
-rw-r--r--engine/spawn_points.asm2
-rw-r--r--engine/square_root.asm30
-rw-r--r--engine/start_battle.asm197
-rwxr-xr-xengine/start_menu.asm (renamed from engine/startmenu.asm)0
-rw-r--r--engine/switch_party_mons.asm145
-rw-r--r--engine/tempmon.asm127
-rwxr-xr-xengine/time_capsule.asm147
-rwxr-xr-xengine/time_capsule/conversion.asm277
-rw-r--r--engine/time_capsule_2.asm39
-rw-r--r--engine/timeofdaypals.asm24
-rwxr-xr-xengine/timeset.asm2
-rw-r--r--engine/title.asm82
-rwxr-xr-xengine/trade_animation.asm (renamed from engine/trade/animation.asm)0
-rw-r--r--engine/trademon_frontpic.asm38
-rwxr-xr-xengine/trainer_card.asm2
-rw-r--r--engine/trainer_scripts.asm31
-rwxr-xr-xengine/unown_dex.asm51
-rwxr-xr-xengine/unown_puzzle.asm5
-rwxr-xr-xengine/unowndex.asm118
-rw-r--r--engine/unused_correct_party.asm229
-rw-r--r--engine/unused_title.asm201
-rw-r--r--event/buena.asm24
-rw-r--r--event/buena_menu.asm58
-rw-r--r--event/bug_contest/caught_mon.asm38
-rw-r--r--event/bug_contest/contest.asm43
-rwxr-xr-xevent/bug_contest/contest_2.asm (renamed from event/bug_contest_2.asm)0
-rw-r--r--event/bug_contest/display_stats.asm107
-rwxr-xr-xevent/bug_contest/judging.asm (renamed from event/bug_contest_judging.asm)0
-rw-r--r--event/catch_tutorial.asm81
-rw-r--r--event/catch_tutorial_input.asm43
-rwxr-xr-xevent/celebi.asm11
-rwxr-xr-xevent/heal_machine_anim.asm (renamed from engine/healmachineanim.asm)0
-rwxr-xr-xevent/itemball.asm54
-rw-r--r--event/lucky_number.asm226
-rwxr-xr-xevent/misc_scripts.asm62
-rw-r--r--event/misc_scripts_2.asm51
-rwxr-xr-xevent/mom_phone.asm11
-rw-r--r--event/move_tutor.asm103
-rwxr-xr-xevent/photo.asm295
-rw-r--r--event/poisonstep_pals.asm48
-rwxr-xr-xevent/print_photo.asm61
-rw-r--r--event/print_unown.asm233
-rw-r--r--event/print_unown_2.asm111
-rwxr-xr-xevent/special.asm4
-rw-r--r--event/std_collision.asm29
-rw-r--r--event/unown.asm2
-rw-r--r--gfx/card_flip/card_flip.tilemapbin0 -> 132 bytes
-rw-r--r--gfx/credits.asm7
-rw-r--r--gfx/emotes.asm12
-rwxr-xr-xgfx/font.asm10
-rw-r--r--gfx/font/overworld_phone_icon.png (renamed from gfx/mobile/overworld_phone_icon.png)bin82 -> 82 bytes
-rw-r--r--gfx/font/unused_bold_font.png (renamed from gfx/unknown/bold_font.png)bin575 -> 575 bytes
-rw-r--r--gfx/font/unused_weekday_kanji.png (renamed from gfx/font/weekday_kanji.png)bin142 -> 142 bytes
-rw-r--r--gfx/mobile/ascii_font.png (renamed from gfx/unknown/ascii_font.png)bin762 -> 762 bytes
-rw-r--r--gfx/mobile/down_arrow.png (renamed from gfx/unknown/down_arrow.png)bin77 -> 77 bytes
-rw-r--r--gfx/mobile/electro_ball.2bpp.lz.3eaf004f (renamed from gfx/unknown/egg_animated.2bpp.lz.3eaf004f)bin676 -> 676 bytes
-rw-r--r--gfx/mobile/electro_ball.png (renamed from gfx/unknown/egg_animated.png)bin692 -> 692 bytes
-rwxr-xr-xgfx/mobile/electro_ball_nonmatching.png (renamed from gfx/unknown/egg_animated_nonmatching.png)bin1422 -> 1422 bytes
-rw-r--r--gfx/mobile/mobile_splash.attrmap (renamed from gfx/unknown/mobile_splash.attrmap)bin360 -> 360 bytes
-rwxr-xr-xgfx/mobile/mobile_splash.png (renamed from gfx/unknown/mobile_splash.png)bin1681 -> 1681 bytes
-rw-r--r--gfx/mobile/mobile_splash.tilemap (renamed from gfx/unknown/mobile_splash.tilemap)bin360 -> 360 bytes
-rw-r--r--gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4 (renamed from gfx/unknown/pichu_animated.2bpp.lz.5d6d2ad4)bin2190 -> 2190 bytes
-rw-r--r--gfx/mobile/pichu_animated.png (renamed from gfx/unknown/pichu_animated.png)bin1939 -> 1939 bytes
-rw-r--r--gfx/mobile/up_arrow.png (renamed from gfx/unknown/up_arrow.png)bin77 -> 77 bytes
-rw-r--r--gfx/overworld/celebi/1.png (renamed from gfx/special/celebi/1.png)bin148 -> 148 bytes
-rw-r--r--gfx/overworld/celebi/2.png (renamed from gfx/special/celebi/2.png)bin148 -> 148 bytes
-rw-r--r--gfx/overworld/celebi/3.png (renamed from gfx/special/celebi/3.png)bin148 -> 148 bytes
-rw-r--r--gfx/overworld/celebi/4.png (renamed from gfx/special/celebi/4.png)bin148 -> 148 bytes
-rw-r--r--gfx/overworld_font.asm17
-rw-r--r--gfx/pics/animation.asm26
-rw-r--r--gfx/pics/pic_pointers.asm1002
-rw-r--r--gfx/pics/unown_pic_pointers.asm104
-rw-r--r--gfx/printer/bold_a.png (renamed from gfx/unknown/bold_a.png)bin85 -> 85 bytes
-rw-r--r--gfx/printer/bold_b.png (renamed from gfx/unknown/bold_b.png)bin77 -> 77 bytes
-rw-r--r--gfx/printer/hp.png (renamed from gfx/mobile/hp.png)bin84 -> 84 bytes
-rw-r--r--gfx/printer/lv.png (renamed from gfx/mobile/lv.png)bin79 -> 79 bytes
-rw-r--r--gfx/special/celebi/leaf.pngbin134 -> 0 bytes
-rw-r--r--gfx/sprites.asm204
-rw-r--r--gfx/trade/unused_gen_1_border_tiles.png (renamed from gfx/unknown/unused_border.png)bin175 -> 175 bytes
-rw-r--r--gfx/trainer_pic_pointers.asm134
-rw-r--r--home.asm570
-rw-r--r--home/hm_moves.asm27
-rw-r--r--home/names.asm278
-rw-r--r--home/text.asm79
-rw-r--r--home/time.asm3
-rw-r--r--home/trainers.asm263
-rw-r--r--items/item_effects.asm3313
-rw-r--r--lib/mobile/main.asm2
-rw-r--r--macros.asm326
-rw-r--r--macros/base_stats.asm67
-rw-r--r--macros/basestats.asm65
-rw-r--r--macros/charmap.asm403
-rw-r--r--macros/code.asm55
-rw-r--r--macros/color.asm15
-rw-r--r--macros/coords.asm51
-rw-r--r--macros/data.asm121
-rw-r--r--macros/event.asm1069
-rw-r--r--macros/map.asm211
-rw-r--r--macros/mobile.asm2
-rw-r--r--macros/move_anim.asm294
-rw-r--r--macros/movement.asm247
-rw-r--r--macros/pic.asm4
-rw-r--r--macros/rst.asm12
-rw-r--r--macros/scripts/audio.asm265
-rw-r--r--macros/scripts/effect_commands.asm187
-rw-r--r--macros/scripts/event.asm1069
-rw-r--r--macros/scripts/gfx_anim.asm44
-rw-r--r--macros/scripts/maps.asm108
-rw-r--r--macros/scripts/move_anim.asm294
-rw-r--r--macros/scripts/movement.asm246
-rw-r--r--macros/scripts/text.asm133
-rw-r--r--macros/scripts/trade_anim.asm255
-rw-r--r--macros/sound.asm265
-rw-r--r--macros/text.asm133
-rwxr-xr-xmacros/tilesets.asm2
-rwxr-xr-xmacros/trade_anim.asm255
-rw-r--r--macros/trainer.asm11
-rwxr-xr-xmacros/wram.asm280
-rw-r--r--main.asm4909
-rw-r--r--maps.asm2
-rw-r--r--maps/BattleTower1F.asm4
-rw-r--r--maps/BlackthornDragonSpeechHouse.asm18
-rw-r--r--maps/BlackthornGym1F.asm12
-rw-r--r--maps/BlackthornGym2F.asm8
-rw-r--r--maps/BlackthornMart.asm20
-rw-r--r--maps/BlackthornPokecenter1F.asm24
-rw-r--r--maps/BluesHouse.asm58
-rw-r--r--maps/CeladonCity.asm68
-rw-r--r--maps/CeladonDeptStore1F.asm24
-rw-r--r--maps/CeladonDeptStore2F.asm16
-rw-r--r--maps/CeladonDeptStore3F.asm32
-rw-r--r--maps/CeladonDeptStore4F.asm16
-rw-r--r--maps/CeladonDeptStore5F.asm24
-rw-r--r--maps/CeladonDeptStore6F.asm29
-rw-r--r--maps/CeladonDeptStoreElevator.asm18
-rw-r--r--maps/CeladonGameCorner.asm182
-rw-r--r--maps/CeladonGym.asm20
-rw-r--r--maps/CeladonMansion3F.asm16
-rw-r--r--maps/CeladonMansionRoof.asm8
-rw-r--r--maps/CeladonPokecenter1F.asm16
-rw-r--r--maps/CeruleanCity.asm76
-rw-r--r--maps/CeruleanGym.asm12
-rw-r--r--maps/CeruleanGymBadgeSpeechHouse.asm8
-rw-r--r--maps/CeruleanPokecenter1F.asm8
-rw-r--r--maps/CeruleanPoliceStation.asm16
-rw-r--r--maps/CeruleanTradeSpeechHouse.asm16
-rw-r--r--maps/CherrygroveGymSpeechHouse.asm16
-rw-r--r--maps/CherrygroveMart.asm8
-rw-r--r--maps/CherrygrovePokecenter1F.asm16
-rw-r--r--maps/CianwoodCity.asm6
-rw-r--r--maps/CianwoodLugiaSpeechHouse.asm24
-rw-r--r--maps/CianwoodPokecenter1F.asm16
-rw-r--r--maps/CinnabarPokecenter1F.asm16
-rw-r--r--maps/CopycatsHouse1F.asm8
-rw-r--r--maps/DanceTheatre.asm36
-rw-r--r--maps/DarkCaveBlackthornEntrance.asm20
-rw-r--r--maps/DiglettsCave.asm8
-rw-r--r--maps/DragonsDenB1F.asm16
-rw-r--r--maps/EarlsPokemonAcademy.asm32
-rw-r--r--maps/EcruteakCity.asm40
-rw-r--r--maps/EcruteakGym.asm16
-rw-r--r--maps/EcruteakHouse.asm8
-rw-r--r--maps/EcruteakLugiaSpeechHouse.asm16
-rw-r--r--maps/EcruteakMart.asm16
-rw-r--r--maps/FastShip1F.asm8
-rw-r--r--maps/FastShipB1F.asm40
-rw-r--r--maps/FastShipCabins_NNW_NNE_NE.asm24
-rw-r--r--maps/FastShipCabins_SE_SSE_CaptainsCabin.asm28
-rw-r--r--maps/FastShipCabins_SW_SSW_NW.asm16
-rw-r--r--maps/FuchsiaBillSpeechHouse.asm16
-rw-r--r--maps/FuchsiaMart.asm16
-rw-r--r--maps/FuchsiaPokecenter1F.asm16
-rw-r--r--maps/GoldenrodCity.asm104
-rw-r--r--maps/GoldenrodDeptStore1F.asm32
-rw-r--r--maps/GoldenrodDeptStore2F.asm24
-rw-r--r--maps/GoldenrodDeptStore3F.asm16
-rw-r--r--maps/GoldenrodDeptStore4F.asm16
-rw-r--r--maps/GoldenrodDeptStore5F.asm16
-rw-r--r--maps/GoldenrodDeptStore6F.asm16
-rw-r--r--maps/GoldenrodDeptStoreB1F.asm24
-rw-r--r--maps/GoldenrodDeptStoreElevator.asm4
-rw-r--r--maps/GoldenrodDeptStoreRoof.asm40
-rw-r--r--maps/GoldenrodGym.asm16
-rw-r--r--maps/GoldenrodHappinessRater.asm16
-rw-r--r--maps/GoldenrodMagnetTrainStation.asm8
-rw-r--r--maps/GoldenrodNameRater.asm2
-rw-r--r--maps/GoldenrodPPSpeechHouse.asm16
-rw-r--r--maps/GoldenrodPokeComCenter2FMobile.asm24
-rw-r--r--maps/GoldenrodPokecenter1F.asm16
-rw-r--r--maps/IlexForest.asm4
-rw-r--r--maps/IlexForestAzaleaGate.asm16
-rw-r--r--maps/IndigoPlateauPokecenter1F.asm8
-rw-r--r--maps/LakeOfRage.asm32
-rw-r--r--maps/LavRadioTower1F.asm24
-rw-r--r--maps/LavenderMart.asm16
-rw-r--r--maps/LavenderPokecenter1F.asm16
-rw-r--r--maps/LavenderTown.asm32
-rw-r--r--maps/LavenderTownSpeechHouse.asm8
-rw-r--r--maps/MahoganyGym.asm20
-rw-r--r--maps/MahoganyPokecenter1F.asm24
-rw-r--r--maps/MahoganyRedGyaradosSpeechHouse.asm8
-rw-r--r--maps/MahoganyTown.asm16
-rw-r--r--maps/MountMoonGiftShop.asm10
-rw-r--r--maps/MountMortar1FInside.asm8
-rw-r--r--maps/MountMortar2FInside.asm4
-rw-r--r--maps/MrFujisHouse.asm16
-rw-r--r--maps/NationalPark.asm56
-rw-r--r--maps/OlivineCafe.asm16
-rw-r--r--maps/OlivineCity.asm16
-rw-r--r--maps/OlivineHouseBeta.asm8
-rw-r--r--maps/OlivineLighthouse1F.asm16
-rw-r--r--maps/OlivineLighthouse2F.asm8
-rw-r--r--maps/OlivineLighthouse3F.asm12
-rw-r--r--maps/OlivineLighthouse4F.asm8
-rw-r--r--maps/OlivineLighthouse5F.asm8
-rw-r--r--maps/OlivineMart.asm16
-rw-r--r--maps/OlivinePokecenter1F.asm16
-rw-r--r--maps/OlivinePort.asm8
-rw-r--r--maps/OlivinePortPassage.asm8
-rw-r--r--maps/PalletTown.asm16
-rw-r--r--maps/PewterCity.asm16
-rw-r--r--maps/PewterGym.asm4
-rw-r--r--maps/PewterMart.asm16
-rw-r--r--maps/PewterNidoranSpeechHouse.asm8
-rw-r--r--maps/PewterPokecenter1F.asm16
-rw-r--r--maps/PewterSnoozeSpeechHouse.asm8
-rw-r--r--maps/PokemonFanClub.asm16
-rw-r--r--maps/RadioTower1F.asm20
-rw-r--r--maps/RadioTower2F.asm40
-rw-r--r--maps/RadioTower3F.asm24
-rw-r--r--maps/RadioTower4F.asm24
-rw-r--r--maps/RadioTower5F.asm4
-rw-r--r--maps/RedsHouse2F.asm16
-rw-r--r--maps/Route1.asm8
-rw-r--r--maps/Route10Pokecenter1F.asm16
-rw-r--r--maps/Route10South.asm8
-rw-r--r--maps/Route11.asm16
-rw-r--r--maps/Route12.asm16
-rw-r--r--maps/Route13.asm20
-rw-r--r--maps/Route14.asm12
-rw-r--r--maps/Route15.asm24
-rw-r--r--maps/Route15FuchsiaGate.asm8
-rw-r--r--maps/Route16FuchsiaSpeechHouse.asm8
-rw-r--r--maps/Route16Gate.asm8
-rw-r--r--maps/Route17.asm16
-rw-r--r--maps/Route1718Gate.asm8
-rw-r--r--maps/Route18.asm8
-rw-r--r--maps/Route19.asm16
-rw-r--r--maps/Route2.asm12
-rw-r--r--maps/Route20.asm12
-rw-r--r--maps/Route21.asm12
-rw-r--r--maps/Route25.asm28
-rw-r--r--maps/Route26.asm24
-rw-r--r--maps/Route27.asm34
-rw-r--r--maps/Route2946Gate.asm16
-rw-r--r--maps/Route2Gate.asm8
-rw-r--r--maps/Route3.asm16
-rw-r--r--maps/Route31VioletGate.asm16
-rw-r--r--maps/Route32Pokecenter1F.asm8
-rw-r--r--maps/Route32RuinsOfAlphGate.asm24
-rw-r--r--maps/Route34IlexForestGate.asm8
-rw-r--r--maps/Route35.asm32
-rw-r--r--maps/Route35GoldenrodGate.asm8
-rw-r--r--maps/Route35NationalParkGate.asm8
-rw-r--r--maps/Route36.asm4
-rw-r--r--maps/Route36RuinsOfAlphGate.asm16
-rw-r--r--maps/Route37.asm12
-rw-r--r--maps/Route38.asm40
-rw-r--r--maps/Route38EcruteakGate.asm8
-rw-r--r--maps/Route39.asm16
-rw-r--r--maps/Route4.asm12
-rw-r--r--maps/Route40.asm40
-rw-r--r--maps/Route40BattleTowerGate.asm16
-rw-r--r--maps/Route41.asm40
-rw-r--r--maps/Route42.asm12
-rw-r--r--maps/Route42EcruteakGate.asm8
-rw-r--r--maps/Route43.asm24
-rw-r--r--maps/Route44.asm28
-rw-r--r--maps/Route45.asm28
-rw-r--r--maps/Route46.asm12
-rw-r--r--maps/Route5.asm8
-rw-r--r--maps/Route5CleanseTagSpeechHouse.asm8
-rw-r--r--maps/Route5SaffronCityGate.asm8
-rw-r--r--maps/Route5UndergroundEntrance.asm8
-rw-r--r--maps/Route6.asm16
-rw-r--r--maps/Route8.asm20
-rw-r--r--maps/Route8SaffronGate.asm8
-rw-r--r--maps/Route9.asm24
-rw-r--r--maps/RuinsOfAlphKabutoChamber.asm8
-rw-r--r--maps/RuinsOfAlphOutside.asm12
-rw-r--r--maps/SaffronCity.asm40
-rw-r--r--maps/SaffronGym.asm16
-rw-r--r--maps/SaffronMart.asm16
-rw-r--r--maps/SaffronPokecenter1F.asm8
-rw-r--r--maps/SaffronTrainStation.asm16
-rw-r--r--maps/SilverCavePokecenter1F.asm8
-rw-r--r--maps/SlowpokeWellB1F.asm24
-rw-r--r--maps/SoulHouse.asm24
-rw-r--r--maps/SproutTower1F.asm36
-rw-r--r--maps/SproutTower2F.asm8
-rw-r--r--maps/SproutTower3F.asm12
-rw-r--r--maps/TeamRocketBaseB1F.asm8
-rw-r--r--maps/TeamRocketBaseB2F.asm12
-rw-r--r--maps/TeamRocketBaseB3F.asm16
-rw-r--r--maps/TinTower1F.asm80
-rw-r--r--maps/TinTower9F.asm6
-rw-r--r--maps/TrainerHouse1F.asm40
-rw-r--r--maps/UndergroundPathSwitchRoomEntrances.asm24
-rw-r--r--maps/UndergroundWarehouse.asm12
-rw-r--r--maps/UnionCave1F.asm20
-rw-r--r--maps/UnionCaveB1F.asm16
-rw-r--r--maps/UnionCaveB2F.asm12
-rw-r--r--maps/VermilionCity.asm16
-rw-r--r--maps/VermilionGym.asm12
-rw-r--r--maps/VermilionHouseDiglettsCaveSpeechHouse.asm8
-rw-r--r--maps/VermilionMagnetTrainSpeechHouse.asm16
-rw-r--r--maps/VermilionMart.asm16
-rw-r--r--maps/VermilionPokecenter1F.asm16
-rw-r--r--maps/VermilionPortPassage.asm8
-rw-r--r--maps/VioletCity.asm2
-rw-r--r--maps/VioletGym.asm8
-rw-r--r--maps/VioletKylesHouse.asm53
-rw-r--r--maps/VioletMart.asm16
-rw-r--r--maps/VioletNicknameSpeechHouse.asm16
-rw-r--r--maps/VioletOnixTradeHouse.asm53
-rw-r--r--maps/VioletPokecenter1F.asm24
-rw-r--r--maps/ViridianCity.asm8
-rw-r--r--maps/ViridianMart.asm16
-rw-r--r--maps/ViridianNicknameSpeechHouse.asm16
-rw-r--r--maps/ViridianPokecenter1F.asm16
-rw-r--r--maps/WarehouseEntrance.asm16
-rw-r--r--maps/WiseTriosRoom.asm36
-rw-r--r--maps/blockdata.asm2
-rw-r--r--maps/map_headers.asm20
-rw-r--r--maps/second_map_headers.asm89
-rwxr-xr-xmisc/battle_tower_47.asm784
-rwxr-xr-xmisc/battle_tower_5c.asm1772
-rw-r--r--misc/crystal_misc.asm931
-rwxr-xr-xmisc/fixed_words.asm4294
-rwxr-xr-xmisc/gfx_41.asm638
-rwxr-xr-xmisc/mobile_12.asm1845
-rw-r--r--misc/mobile_22.asm4448
-rw-r--r--misc/mobile_40.asm8156
-rwxr-xr-xmisc/mobile_41.asm1115
-rw-r--r--misc/mobile_42.asm2009
-rw-r--r--misc/mobile_45.asm7690
-rwxr-xr-xmisc/mobile_45_sprite_engine.asm922
-rwxr-xr-xmisc/mobile_46.asm7986
-rwxr-xr-xmisc/mobile_5b.asm833
-rwxr-xr-xmisc/mobile_5c.asm944
-rw-r--r--misc/mobile_5f.asm5310
-rwxr-xr-xmisc/mobile_menu.asm879
-rwxr-xr-xmisc/printer_77.asm356
-rw-r--r--misc/unused_title.asm556
-rwxr-xr-xmobile/battle_tower_47.asm784
-rwxr-xr-xmobile/battle_tower_5c.asm1772
-rwxr-xr-xmobile/fixed_words.asm4294
-rw-r--r--mobile/get_trainer_class.asm46
-rwxr-xr-xmobile/mobile_12.asm1845
-rwxr-xr-xmobile/mobile_12_2.asm (renamed from misc/mobile_12_2.asm)0
-rw-r--r--mobile/mobile_22.asm4450
-rw-r--r--mobile/mobile_22_2.asm (renamed from misc/mobile_22_2.asm)0
-rw-r--r--mobile/mobile_40.asm8158
-rwxr-xr-xmobile/mobile_41.asm1113
-rw-r--r--mobile/mobile_42.asm2009
-rw-r--r--mobile/mobile_45.asm7690
-rwxr-xr-xmobile/mobile_45_sprite_engine.asm922
-rwxr-xr-xmobile/mobile_46.asm7987
-rwxr-xr-xmobile/mobile_5b.asm833
-rwxr-xr-xmobile/mobile_5c.asm946
-rw-r--r--mobile/mobile_5e.asm925
-rw-r--r--mobile/mobile_5f.asm5306
-rwxr-xr-xmobile/mobile_menu.asm879
-rw-r--r--mobile/news/news.asm44
-rw-r--r--mobile/news/news_1.bin (renamed from unknown/1f4018.bin)bin3494 -> 3494 bytes
-rw-r--r--mobile/news/news_2.bin (renamed from unknown/1f4dd3.bin)bin4044 -> 4044 bytes
-rw-r--r--mobile/news/news_3.bin (renamed from unknown/1f5db4.bin)bin1462 -> 1462 bytes
-rw-r--r--mobile/print_opp_message.asm30
-rw-r--r--mobile/stadium/stadium2_1.bin (renamed from misc/stadium2_1.bin)bin544 -> 544 bytes
-rw-r--r--mobile/stadium/stadium2_2.bin (renamed from misc/stadium2_2.bin)bin544 -> 544 bytes
-rw-r--r--pokecrystal.link7
-rw-r--r--predef/cgb.asm1127
-rwxr-xr-xpredef/crystal.asm614
-rw-r--r--predef/sgb.asm636
-rw-r--r--sram.asm247
-rw-r--r--text/common_text.asm6
-rwxr-xr-xtext/trainer_class_names.asm67
-rw-r--r--text/unused_gen_1_trainers.asm92
-rw-r--r--text/unused_sweet_honey.asm (renamed from text/sweethoney.asm)0
-rw-r--r--tilesets/house_1.pal (renamed from tilesets/house.pal)0
-rw-r--r--tilesets/palette_maps.asm8
-rw-r--r--tilesets/pokecom_center.pal (renamed from tilesets/pokecom.pal)0
-rw-r--r--tilesets/roofs.asm2
-rw-r--r--tilesets/special_palettes.asm200
-rw-r--r--tilesets/unused_museum_palette_map.asm32
-rw-r--r--tilesets/unused_palette_map_1.binbin112 -> 0 bytes
-rw-r--r--tilesets/unused_palette_map_2.bin1
-rwxr-xr-xtools/compare.sh (renamed from compare.sh)0
-rwxr-xr-xtools/compare2.sh (renamed from compare2.sh)0
-rw-r--r--tools/toc.py89
-rwxr-xr-xunknown/013a47.asm229
-rw-r--r--wram.asm215
1356 files changed, 85408 insertions, 84993 deletions
diff --git a/FAQ.md b/FAQ.md
index a02f22629..1cf0ea139 100644
--- a/FAQ.md
+++ b/FAQ.md
@@ -1,27 +1,43 @@
# FAQ
+
+## Questions
+
+- [What is pokecrystal11.gbc?](#what-is-pokecrystal11gbc)
+- [Can't build ROM; "ERROR: `UNION` already defined"](#cant-build-rom-error-union-already-defined)
+- [Can't build ROM; "Segmentation fault" from `rgbgfx`](#cant-build-rom-segmentation-fault-from-rgbgfx)
+- [Can't build ROM; "Section is too big" or "Unable to place section in bank"](#cant-build-rom-section-is-too-big-or-unable-to-place-section-in-bank)
+- [How do I edit maps?](#how-do-i-edit-maps)
+- [I need more help!](#i-need-more-help)
+
+
## What is pokecrystal11.gbc?
Version 1.1 of Pokémon Crystal, which fixed some issues with the initial international release. `make crystal11` defines `CRYSTAL11` so the assembly builds the changed version.
+
## Can't build ROM; "ERROR: `UNION` already defined"
Download [**rgbds 0.3.3**](rgbds). Earlier versions will not work.
+
## Can't build ROM; "Segmentation fault" from `rgbgfx`
If you are using 64-bit Windows, download [**64-bit Cygwin**](cygwin) and [**64-bit rgbds**](rgbds).
+
## Can't build ROM; "Section is too big" or "Unable to place section in bank"
If you have not changed any of the asm, make sure you have the latest version of pokecrystal and the correct version of rgbds (see [INSTALL.md](INSTALL.md)).
If you added or changed any code, it has to fit in the **memory banks**. The 2MB ROM is divided into 128 banks of 4KB each, numbered $00 to $7F. The linkerscript **pokecrystal.link** lists which **`SECTION`**s go in which banks. Try moving some code into a new section.
+
## How do I edit maps?
For `asm` scripts, read [docs/map_scripts.md](docs/map_scripts.md). For `blk` layouts, try [crowdmap](crowdmap) or [Polished Map](polished-map).
+
## I need more help!
Try asking on IRC or Discord (see [README.md](README.md)).
diff --git a/Makefile b/Makefile
index d3158c341..4a4c640f9 100644
--- a/Makefile
+++ b/Makefile
@@ -17,20 +17,20 @@ RGBLINK := rgblink
crystal_obj := \
-wram.o \
-main.o \
-lib/mobile/main.o \
-home.o \
audio.o \
+home.o \
+main.o \
maps.o \
-engine/events.o \
+wram.o \
+data/pokemon/dex_entries.o \
+data/pokemon/egg_moves.o \
+data/pokemon/evos_attacks.o \
engine/credits.o \
-data/egg_moves.o \
-data/evos_attacks.o \
-data/pokedex/entries.o \
-misc/crystal_misc.o \
-text/common_text.o \
-gfx/pics.o
+engine/events.o \
+gfx/pics.o \
+gfx/sprites.o \
+lib/mobile/main.o \
+text/common_text.o
crystal11_obj := $(crystal_obj:.o=11.o)
@@ -197,15 +197,17 @@ gfx/trainer_card/kris_card.2bpp: rgbgfx += -h
gfx/battle/dude.2bpp: rgbgfx += -h
+gfx/font/unused_bold_font.1bpp: tools/gfx += --trim-whitespace
+
gfx/pokegear/pokegear.2bpp: rgbgfx += -x2
gfx/pokegear/pokegear_sprites.2bpp: tools/gfx += --trim-whitespace
-gfx/unknown/ascii_font.2bpp: tools/gfx += --trim-whitespace
-gfx/unknown/bold_font.1bpp: tools/gfx += --trim-whitespace
-gfx/unknown/egg_animated.2bpp: tools/gfx += --trim-whitespace
-gfx/unknown/egg_animated_nonmatching.2bpp: tools/gfx += --remove-duplicates --remove-xflip
-gfx/unknown/mobile_splash.2bpp: tools/gfx += --remove-duplicates --remove-xflip
-gfx/unknown/pichu_animated.2bpp: tools/gfx += --trim-whitespace
+gfx/mobile/ascii_font.2bpp: tools/gfx += --trim-whitespace
+gfx/mobile/electro_ball.2bpp: tools/gfx += --trim-whitespace
+gfx/mobile/electro_ball_nonmatching.2bpp: tools/gfx += --remove-duplicates --remove-xflip
+gfx/mobile/mobile_splash.2bpp: tools/gfx += --remove-duplicates --remove-xflip
+gfx/mobile/pichu_animated.2bpp: tools/gfx += --trim-whitespace
+
gfx/unknown/unknown_egg.2bpp: rgbgfx += -h
diff --git a/audio.asm b/audio.asm
index 452fed76d..c358e4d9b 100644
--- a/audio.asm
+++ b/audio.asm
@@ -4,7 +4,7 @@ INCLUDE "includes.asm"
SECTION "Audio", ROMX
INCLUDE "audio/engine.asm"
-INCLUDE "trainers/encounter_music.asm"
+INCLUDE "data/trainers/encounter_music.asm"
INCLUDE "audio/music_pointers.asm"
INCLUDE "audio/music/nothing.asm"
INCLUDE "audio/cry_pointers.asm"
@@ -157,6 +157,6 @@ INCLUDE "audio/sfx_crystal.asm"
SECTION "Cries", ROMX
-CryHeaders:: INCLUDE "audio/cry_headers.asm"
+INCLUDE "data/pokemon/cry_headers.asm"
INCLUDE "audio/cries.asm"
diff --git a/audio/cry_headers.asm b/audio/cry_headers.asm
deleted file mode 100644
index 863539dc9..000000000
--- a/audio/cry_headers.asm
+++ /dev/null
@@ -1,258 +0,0 @@
-; f2787
-; index, pitch, length
-BulbasaurCryHeader: cry_header CRY_BULBASAUR, $080, $081
-IvysaurCryHeader: cry_header CRY_BULBASAUR, $020, $100
-VenusaurCryHeader: cry_header CRY_BULBASAUR, $000, $140
-CharmanderCryHeader: cry_header CRY_CHARMANDER, $060, $0c0
-CharmeleonCryHeader: cry_header CRY_CHARMANDER, $020, $0c0
-CharizardCryHeader: cry_header CRY_CHARMANDER, $000, $100
-SquirtleCryHeader: cry_header CRY_SQUIRTLE, $060, $0c0
-WartortleCryHeader: cry_header CRY_SQUIRTLE, $020, $0c0
-BlastoiseCryHeader: cry_header CRY_BLASTOISE, $000, $100
-CaterpieCryHeader: cry_header CRY_CATERPIE, $080, $0a0
-MetapodCryHeader: cry_header CRY_METAPOD, $0cc, $081
-ButterfreeCryHeader: cry_header CRY_CATERPIE, $077, $0c0
-WeedleCryHeader: cry_header CRY_WEEDLE, $0ee, $081
-KakunaCryHeader: cry_header CRY_BLASTOISE, $0ff, $081
-BeedrillCryHeader: cry_header CRY_BLASTOISE, $060, $100
-PidgeyCryHeader: cry_header CRY_PIDGEY, $0df, $084
-PidgeottoCryHeader: cry_header CRY_PIDGEOTTO, $028, $140
-PidgeotCryHeader: cry_header CRY_PIDGEOTTO, $011, $17f
-RattataCryHeader: cry_header CRY_RATTATA, $000, $100
-RaticateCryHeader: cry_header CRY_RATTATA, $020, $17f
-SpearowCryHeader: cry_header CRY_SPEAROW, $000, $100
-FearowCryHeader: cry_header CRY_FEAROW, $040, $120
-EkansCryHeader: cry_header CRY_EKANS, $012, $0c0
-ArbokCryHeader: cry_header CRY_EKANS, $0e0, $090
-PikachuCryHeader: cry_header CRY_BULBASAUR, $0ee, $081
-RaichuCryHeader: cry_header CRY_RAICHU, $0ee, $088
-SandshrewCryHeader: cry_header CRY_NIDORAN_M, $020, $0c0
-SandslashCryHeader: cry_header CRY_NIDORAN_M, $0ff, $17f
-NidoranFCryHeader: cry_header CRY_NIDORAN_F, $000, $100
-NidorinaCryHeader: cry_header CRY_NIDORAN_F, $02c, $160
-NidoqueenCryHeader: cry_header CRY_NIDOQUEEN, $000, $100
-NidoranMCryHeader: cry_header CRY_NIDORAN_M, $000, $100
-NidorinoCryHeader: cry_header CRY_NIDORAN_M, $02c, $140
-NidokingCryHeader: cry_header CRY_RAICHU, $000, $100
-ClefairyCryHeader: cry_header CRY_CLEFAIRY, $0cc, $081
-ClefableCryHeader: cry_header CRY_CLEFAIRY, $0aa, $0a0
-VulpixCryHeader: cry_header CRY_VULPIX, $04f, $090
-NinetalesCryHeader: cry_header CRY_VULPIX, $088, $0e0
-JigglypuffCryHeader: cry_header CRY_PIDGEY, $0ff, $0b5
-WigglytuffCryHeader: cry_header CRY_PIDGEY, $068, $0e0
-ZubatCryHeader: cry_header CRY_SQUIRTLE, $0e0, $100
-GolbatCryHeader: cry_header CRY_SQUIRTLE, $0fa, $100
-OddishCryHeader: cry_header CRY_ODDISH, $0dd, $081
-GloomCryHeader: cry_header CRY_ODDISH, $0aa, $0c0
-VileplumeCryHeader: cry_header CRY_VILEPLUME, $022, $17f
-ParasCryHeader: cry_header CRY_PARAS, $020, $160
-ParasectCryHeader: cry_header CRY_PARAS, $042, $17f
-VenonatCryHeader: cry_header CRY_VENONAT, $044, $0c0
-VenomothCryHeader: cry_header CRY_VENONAT, $029, $100
-DiglettCryHeader: cry_header CRY_DIGLETT, $0aa, $081
-DugtrioCryHeader: cry_header CRY_DIGLETT, $02a, $090
-MeowthCryHeader: cry_header CRY_CLEFAIRY, $077, $090
-PersianCryHeader: cry_header CRY_CLEFAIRY, $099, $17f
-PsyduckCryHeader: cry_header CRY_PSYDUCK, $020, $0e0
-GolduckCryHeader: cry_header CRY_PSYDUCK, $0ff, $0c0
-MankeyCryHeader: cry_header CRY_NIDOQUEEN, $0dd, $0e0
-PrimeapeCryHeader: cry_header CRY_NIDOQUEEN, $0af, $0c0
-GrowlitheCryHeader: cry_header CRY_GROWLITHE, $020, $0c0
-ArcanineCryHeader: cry_header CRY_WEEDLE, $000, $100
-PoliwagCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-PoliwhirlCryHeader: cry_header CRY_PIDGEY, $077, $0e0
-PoliwrathCryHeader: cry_header CRY_PIDGEY, $000, $17f
-AbraCryHeader: cry_header CRY_METAPOD, $0c0, $081
-KadabraCryHeader: cry_header CRY_METAPOD, $0a8, $140
-AlakazamCryHeader: cry_header CRY_METAPOD, $098, $17f
-MachopCryHeader: cry_header CRY_GROWLITHE, $0ee, $081
-MachokeCryHeader: cry_header CRY_GROWLITHE, $048, $0e0
-MachampCryHeader: cry_header CRY_GROWLITHE, $008, $140
-BellsproutCryHeader: cry_header CRY_PSYDUCK, $055, $081
-WeepinbellCryHeader: cry_header CRY_WEEPINBELL, $044, $0a0
-VictreebelCryHeader: cry_header CRY_WEEPINBELL, $066, $14c
-TentacoolCryHeader: cry_header CRY_VENONAT, $000, $100
-TentacruelCryHeader: cry_header CRY_VENONAT, $0ee, $17f
-GeodudeCryHeader: cry_header CRY_VULPIX, $0f0, $090
-GravelerCryHeader: cry_header CRY_VULPIX, $000, $100
-GolemCryHeader: cry_header CRY_GOLEM, $0e0, $0c0
-PonytaCryHeader: cry_header CRY_WEEPINBELL, $000, $100
-RapidashCryHeader: cry_header CRY_WEEPINBELL, $020, $140
-SlowpokeCryHeader: cry_header CRY_SLOWPOKE, $000, $100
-SlowbroCryHeader: cry_header CRY_GROWLITHE, $000, $100
-MagnemiteCryHeader: cry_header CRY_METAPOD, $080, $0e0
-MagnetonCryHeader: cry_header CRY_METAPOD, $020, $140
-FarfetchDCryHeader: cry_header CRY_SPEAROW, $0dd, $081
-DoduoCryHeader: cry_header CRY_DIGLETT, $0bb, $081
-DodrioCryHeader: cry_header CRY_DIGLETT, $099, $0a0
-SeelCryHeader: cry_header CRY_SEEL, $088, $140
-DewgongCryHeader: cry_header CRY_SEEL, $023, $17f
-GrimerCryHeader: cry_header CRY_GRIMER, $000, $100
-MukCryHeader: cry_header CRY_MUK, $0ef, $17f
-ShellderCryHeader: cry_header CRY_FEAROW, $000, $100
-CloysterCryHeader: cry_header CRY_FEAROW, $06f, $160
-GastlyCryHeader: cry_header CRY_METAPOD, $000, $100
-HaunterCryHeader: cry_header CRY_METAPOD, $030, $0c0
-GengarCryHeader: cry_header CRY_MUK, $000, $17f
-OnixCryHeader: cry_header CRY_EKANS, $0ff, $140
-DrowzeeCryHeader: cry_header CRY_DROWZEE, $088, $0a0
-HypnoCryHeader: cry_header CRY_DROWZEE, $0ee, $0c0
-KrabbyCryHeader: cry_header CRY_KRABBY, $020, $160
-KinglerCryHeader: cry_header CRY_KRABBY, $0ee, $160
-VoltorbCryHeader: cry_header CRY_VOLTORB, $0ed, $100
-ElectrodeCryHeader: cry_header CRY_VOLTORB, $0a8, $110
-ExeggcuteCryHeader: cry_header CRY_DIGLETT, $000, $100
-ExeggutorCryHeader: cry_header CRY_DROWZEE, $000, $100
-CuboneCryHeader: cry_header CRY_CLEFAIRY, $000, $100
-MarowakCryHeader: cry_header CRY_ODDISH, $04f, $0e0
-HitmonleeCryHeader: cry_header CRY_GOLEM, $080, $140
-HitmonchanCryHeader: cry_header CRY_SEEL, $0ee, $140
-LickitungCryHeader: cry_header CRY_SEEL, $000, $100
-KoffingCryHeader: cry_header CRY_GOLEM, $0e6, $15d
-WeezingCryHeader: cry_header CRY_GOLEM, $0ff, $17f
-RhyhornCryHeader: cry_header CRY_CHARMANDER, $000, $100
-RhydonCryHeader: cry_header CRY_RHYDON, $000, $100
-ChanseyCryHeader: cry_header CRY_PIDGEOTTO, $00a, $140
-TangelaCryHeader: cry_header CRY_GOLEM, $000, $100
-KangaskhanCryHeader: cry_header CRY_KANGASKHAN, $000, $100
-HorseaCryHeader: cry_header CRY_CLEFAIRY, $099, $090
-SeadraCryHeader: cry_header CRY_CLEFAIRY, $03c, $081
-GoldeenCryHeader: cry_header CRY_CATERPIE, $080, $0c0
-SeakingCryHeader: cry_header CRY_CATERPIE, $010, $17f
-StaryuCryHeader: cry_header CRY_PARAS, $002, $0a0
-StarmieCryHeader: cry_header CRY_PARAS, $000, $100
-MrMimeCryHeader: cry_header CRY_KRABBY, $008, $0c0
-ScytherCryHeader: cry_header CRY_CATERPIE, $000, $100
-JynxCryHeader: cry_header CRY_DROWZEE, $0ff, $17f
-ElectabuzzCryHeader: cry_header CRY_VOLTORB, $08f, $17f
-MagmarCryHeader: cry_header CRY_CHARMANDER, $0ff, $0b0
-PinsirCryHeader: cry_header CRY_PIDGEOTTO, $000, $100
-TaurosCryHeader: cry_header CRY_SQUIRTLE, $011, $0c0
-MagikarpCryHeader: cry_header CRY_EKANS, $080, $080
-GyaradosCryHeader: cry_header CRY_EKANS, $000, $100
-LaprasCryHeader: cry_header CRY_LAPRAS, $000, $100
-DittoCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
-EeveeCryHeader: cry_header CRY_VENONAT, $088, $0e0
-VaporeonCryHeader: cry_header CRY_VENONAT, $0aa, $17f
-JolteonCryHeader: cry_header CRY_VENONAT, $03d, $100
-FlareonCryHeader: cry_header CRY_VENONAT, $010, $0a0
-PorygonCryHeader: cry_header CRY_WEEPINBELL, $0aa, $17f
-OmanyteCryHeader: cry_header CRY_GROWLITHE, $0f0, $081
-OmastarCryHeader: cry_header CRY_GROWLITHE, $0ff, $0c0
-KabutoCryHeader: cry_header CRY_CATERPIE, $0bb, $0c0
-KabutopsCryHeader: cry_header CRY_FEAROW, $0ee, $081
-AerodactylCryHeader: cry_header CRY_VILEPLUME, $020, $170
-SnorlaxCryHeader: cry_header CRY_GRIMER, $055, $081
-ArticunoCryHeader: cry_header CRY_RAICHU, $080, $0c0
-ZapdosCryHeader: cry_header CRY_FEAROW, $0ff, $100
-MoltresCryHeader: cry_header CRY_RAICHU, $0f8, $0c0
-DratiniCryHeader: cry_header CRY_BULBASAUR, $060, $0c0
-DragonairCryHeader: cry_header CRY_BULBASAUR, $040, $100
-DragoniteCryHeader: cry_header CRY_BULBASAUR, $03c, $140
-MewtwoCryHeader: cry_header CRY_PARAS, $099, $17f
-MewCryHeader: cry_header CRY_PARAS, $0ee, $17f
-ChikoritaCryHeader: cry_header CRY_CHIKORITA, -$010, $0b0
-BayleefCryHeader: cry_header CRY_CHIKORITA, -$022, $120
-MeganiumCryHeader: cry_header CRY_CHIKORITA, -$0b7, $200
-CyndaquilCryHeader: cry_header CRY_CYNDAQUIL, $347, $080
-QuilavaCryHeader: cry_header CRY_CYNDAQUIL, $321, $120
-TyphlosionCryHeader: cry_header CRY_TYPHLOSION, $f00, $0d4
-TotodileCryHeader: cry_header CRY_TOTODILE, $46c, $0e8
-CroconawCryHeader: cry_header CRY_TOTODILE, $440, $110
-FeraligatrCryHeader: cry_header CRY_TOTODILE, $3fc, $180
-SentretCryHeader: cry_header CRY_SENTRET, $08a, $0b8
-FurretCryHeader: cry_header CRY_SENTRET, $06b, $102
-HoothootCryHeader: cry_header CRY_HOOTHOOT, $091, $0d8
-NoctowlCryHeader: cry_header CRY_HOOTHOOT, $000, $1a0
-LedybaCryHeader: cry_header CRY_LEDYBA, $000, $0de
-LedianCryHeader: cry_header CRY_LEDYBA, -$096, $138
-SpinarakCryHeader: cry_header CRY_SPINARAK, $011, $200
-AriadosCryHeader: cry_header CRY_SPINARAK, -$0ae, $1e2
-CrobatCryHeader: cry_header CRY_SQUIRTLE, -$010, $140
-ChinchouCryHeader: cry_header CRY_CYNDAQUIL, $3c9, $140
-LanturnCryHeader: cry_header CRY_CYNDAQUIL, $2d0, $110
-PichuCryHeader: cry_header CRY_PICHU, $000, $140
-CleffaCryHeader: cry_header CRY_CLEFFA, $061, $091
-IgglybuffCryHeader: cry_header CRY_CHIKORITA, $0e8, $0e8
-TogepiCryHeader: cry_header CRY_TOGEPI, $010, $100
-TogeticCryHeader: cry_header CRY_TOGETIC, $03b, $038
-NatuCryHeader: cry_header CRY_NATU, -$067, $100
-XatuCryHeader: cry_header CRY_NATU, -$0a7, $168
-MareepCryHeader: cry_header CRY_MAREEP, $022, $0d8
-FlaaffyCryHeader: cry_header CRY_MAREEP, -$007, $180
-AmpharosCryHeader: cry_header CRY_AMPHAROS, -$07c, $0e8
-BellossomCryHeader: cry_header CRY_CLEFFA, $084, $150
-MarillCryHeader: cry_header CRY_MARILL, $11b, $120
-AzumarillCryHeader: cry_header CRY_MARILL, $0b6, $180
-SudowoodoCryHeader: cry_header CRY_CLEFFA, $f40, $180
-PolitoedCryHeader: cry_header CRY_CLEFFA, -$2a3, $1c8
-HoppipCryHeader: cry_header CRY_CLEFFA, $03b, $0c8
-SkiploomCryHeader: cry_header CRY_CLEFFA, $027, $138
-JumpluffCryHeader: cry_header CRY_CLEFFA, $000, $180
-AipomCryHeader: cry_header CRY_AIPOM, -$051, $0e8
-SunkernCryHeader: cry_header CRY_MARILL, $12b, $0b8
-SunfloraCryHeader: cry_header CRY_SUNFLORA, -$020, $180
-YanmaCryHeader: cry_header CRY_TOTODILE, $031, $0c8
-WooperCryHeader: cry_header CRY_WOOPER, $093, $0af
-QuagsireCryHeader: cry_header CRY_WOOPER, -$0c6, $140
-EspeonCryHeader: cry_header CRY_AIPOM, $0a2, $140
-UmbreonCryHeader: cry_header CRY_VENONAT, -$0e9, $0f0
-MurkrowCryHeader: cry_header CRY_MARILL, -$01f, $180
-SlowkingCryHeader: cry_header CRY_SLOWKING, $104, $200
-MisdreavusCryHeader: cry_header CRY_HOOTHOOT, $130, $0e8
-UnownCryHeader: cry_header CRY_HOOTHOOT, $162, $100
-WobbuffetCryHeader: cry_header CRY_AMPHAROS, $27b, $144
-GirafarigCryHeader: cry_header CRY_GIRAFARIG, $041, $200
-PinecoCryHeader: cry_header CRY_SLOWKING, $080, $100
-ForretressCryHeader: cry_header CRY_SLOWKING, $000, $180
-DunsparceCryHeader: cry_header CRY_DUNSPARCE, $1c4, $100
-GligarCryHeader: cry_header CRY_GLIGAR, -$102, $100
-SteelixCryHeader: cry_header CRY_TYPHLOSION, $0ef, $0f7
-SnubbullCryHeader: cry_header CRY_DUNSPARCE, $112, $0e8
-GranbullCryHeader: cry_header CRY_DUNSPARCE, $000, $180
-QwilfishCryHeader: cry_header CRY_SLOWKING, $160, $0e0
-ScizorCryHeader: cry_header CRY_AMPHAROS, $000, $160
-ShuckleCryHeader: cry_header CRY_DUNSPARCE, $290, $0a8
-HeracrossCryHeader: cry_header CRY_AMPHAROS, $035, $0e0
-SneaselCryHeader: cry_header CRY_WOOPER, $053, $0af
-TeddiursaCryHeader: cry_header CRY_TEDDIURSA, $7a2, $06e
-UrsaringCryHeader: cry_header CRY_TEDDIURSA, $640, $0d8
-SlugmaCryHeader: cry_header CRY_SLUGMA, -$1d8, $140
-MagcargoCryHeader: cry_header CRY_MAGCARGO, -$20d, $1c0
-SwinubCryHeader: cry_header CRY_CYNDAQUIL, $1fe, $140
-PiloswineCryHeader: cry_header CRY_MAGCARGO, -$109, $100
-CorsolaCryHeader: cry_header CRY_MAGCARGO, $0a1, $0e8
-RemoraidCryHeader: cry_header CRY_SUNFLORA, $00d, $100
-OctilleryCryHeader: cry_header CRY_TOTODILE, $000, $180
-DelibirdCryHeader: cry_header CRY_TEDDIURSA, $002, $06a
-MantineCryHeader: cry_header CRY_MANTINE, -$0be, $0f0
-SkarmoryCryHeader: cry_header CRY_AMPHAROS, $8a9, $180
-HoundourCryHeader: cry_header CRY_CYNDAQUIL, $039, $140
-HoundoomCryHeader: cry_header CRY_TOTODILE, -$10a, $100
-KingdraCryHeader: cry_header CRY_SLUGMA, $2fb, $100
-PhanpyCryHeader: cry_header CRY_SENTRET, $048, $230
-DonphanCryHeader: cry_header CRY_DONPHAN, $000, $1a0
-Porygon2CryHeader: cry_header CRY_GIRAFARIG, $073, $240
-StantlerCryHeader: cry_header CRY_AIPOM, -$160, $180
-SmeargleCryHeader: cry_header CRY_PICHU, -$21a, $1f0
-TyrogueCryHeader: cry_header CRY_AIPOM, $02c, $108
-HitmontopCryHeader: cry_header CRY_SLUGMA, $000, $100
-SmoochumCryHeader: cry_header CRY_MARILL, $068, $100
-ElekidCryHeader: cry_header CRY_SUNFLORA, -$2d8, $0b4
-MagbyCryHeader: cry_header CRY_TEDDIURSA, $176, $03a
-MiltankCryHeader: cry_header CRY_GLIGAR, -$1cd, $1a0
-BlisseyCryHeader: cry_header CRY_SLOWKING, $293, $140
-RaikouCryHeader: cry_header CRY_RAIKOU, $22e, $120
-EnteiCryHeader: cry_header CRY_ENTEI, $000, $1a0
-SuicuneCryHeader: cry_header CRY_MAGCARGO, $000, $180
-LarvitarCryHeader: cry_header CRY_RAIKOU, $05f, $0d0
-PupitarCryHeader: cry_header CRY_SPINARAK, -$1db, $150
-TyranitarCryHeader: cry_header CRY_RAIKOU, -$100, $180
-LugiaCryHeader: cry_header CRY_TYPHLOSION, $000, $100
-HoOhCryHeader: cry_header CRY_AIPOM, $000, $180
-CelebiCryHeader: cry_header CRY_ENTEI, $14a, $111
-CryHeader252: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader253: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader254: cry_header CRY_NIDORAN_M, 0, 0
-CryHeader255: cry_header CRY_NIDORAN_M, 0, 0
-; f2d81
diff --git a/audio/engine.asm b/audio/engine.asm
index 4fd618940..cd68bc96d 100644
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -245,7 +245,7 @@ UpdateChannels: ; e8125
.Channel1:
ld a, [Danger]
- bit 7, a
+ bit DANGER_ON_F, a
ret nz
.Channel5:
ld hl, Channel1NoteFlags - Channel1
@@ -537,9 +537,9 @@ _CheckSFX: ; e82e7
PlayDanger: ; e8307
ld a, [Danger]
- bit 7, a
+ bit DANGER_ON_F, a
ret z
- and $7f
+ and $ff - (1 << DANGER_ON_F)
ld d, a
call _CheckSFX
jr c, .asm_e8335
@@ -573,7 +573,7 @@ PlayDanger: ; e8307
jr c, .asm_e833c
xor a
.asm_e833c
- or $80
+ or 1 << DANGER_ON_F
ld [Danger], a
; is hw ch1 on?
ld a, [SoundOutput]
@@ -632,9 +632,9 @@ FadeMusic: ; e8358
ld [MusicFadeCount], a
; get SO1 volume
ld a, [Volume]
- and $7
+ and VOLUME_SO1_LEVEL
; which way are we fading?
- bit 7, d
+ bit MUSIC_FADE_IN_F, d
jr nz, .fadein
; fading out
and a
@@ -648,7 +648,7 @@ FadeMusic: ; e8358
ld [Volume], a
; did we just get on a bike?
ld a, [PlayerState]
- cp $1 ; bicycle
+ cp PLAYER_BIKE
jr z, .bicycle
push bc
; restart sound
@@ -688,7 +688,7 @@ FadeMusic: ; e8358
pop bc
; fade in
ld hl, MusicFade
- set 7, [hl]
+ set MUSIC_FADE_IN_F, [hl]
ret
.fadein
@@ -2882,9 +2882,9 @@ LoadMusicByte:: ; e8d76
; e8d80
-INCLUDE "data/audio/notes.asm"
+INCLUDE "audio/notes.asm"
-INCLUDE "data/audio/wave_samples.asm"
+INCLUDE "audio/wave_samples.asm"
INCLUDE "audio/drumkits.asm"
@@ -2976,7 +2976,7 @@ PlayTrainerEncounterMusic:: ; e900a
ld [MusicFade], a
; play nothing for one frame
push de
- ld de, 0 ; id: Music_Nothing
+ ld de, MUSIC_NONE
call PlayMusic
call DelayFrame
; play new song
diff --git a/data/audio/notes.asm b/audio/notes.asm
index 543672a4a..543672a4a 100644
--- a/data/audio/notes.asm
+++ b/audio/notes.asm
diff --git a/data/audio/wave_samples.asm b/audio/wave_samples.asm
index 8c5bafa75..8c5bafa75 100644
--- a/data/audio/wave_samples.asm
+++ b/audio/wave_samples.asm
diff --git a/battle/core.asm b/battle/core.asm
index bc8a37725..438c08f08 100644
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -820,41 +820,7 @@ TryEnemyFlee: ; 3c543
ret
; 3c59a
-FleeMons:
-
-SometimesFleeMons: ; 3c59a
- db MAGNEMITE
- db GRIMER
- db TANGELA
- db MR__MIME
- db EEVEE
- db PORYGON
- db DRATINI
- db DRAGONAIR
- db TOGETIC
- db UMBREON
- db UNOWN
- db SNUBBULL
- db HERACROSS
- db -1
-
-OftenFleeMons: ; 3c5a8
- db CUBONE
- db ARTICUNO
- db ZAPDOS
- db MOLTRES
- db QUAGSIRE
- db DELIBIRD
- db PHANPY
- db TEDDIURSA
- db -1
-
-AlwaysFleeMons: ; 3c5b1
- db RAIKOU
- db ENTEI
-; db SUICUNE
- db -1
-; 3c5b4
+INCLUDE "data/battle/flee_mons.asm"
CompareMovePriority: ; 3c5b4
; Compare the priority of the player and enemy's moves.
@@ -876,7 +842,7 @@ GetMovePriority: ; 3c5c5
ld b, a
- ; Vital throw goes last.
+ ; Vital Throw goes last.
cp VITAL_THROW
ld a, 0
ret z
@@ -4454,7 +4420,7 @@ HandleHealingItems: ; 3dcf9
HandleHPHealingItem: ; 3dd2f
callab GetOpponentItem
ld a, b
- cp $1
+ cp HELD_BERRY
ret nz
ld de, EnemyMonHP + 1
ld hl, EnemyMonMaxHP
@@ -4856,12 +4822,12 @@ CheckDanger: ; 3df9e
.no_danger
ld hl, Danger
- res 7, [hl]
+ res DANGER_ON_F, [hl]
jr .done
.danger
ld hl, Danger
- set 7, [hl]
+ set DANGER_ON_F, [hl]
.done
ret
diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm
index 60c658dfc..bcd666c91 100644
--- a/battle/effect_command_pointers.asm
+++ b/battle/effect_command_pointers.asm
@@ -1,7 +1,7 @@
dw 0 ; padding
BattleCommandPointers: ; 3fd28
-; entries correspond to constants/effect_command_constants.asm
+; entries correspond to macros/scripts/effect_commands.asm
dw BattleCommand_CheckTurn ; 34084
dw BattleCommand_CheckObedience ; 343db
dw BattleCommand_UsedMoveText ; 34541
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index bcebbb6ca..57e4c574f 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -3191,6 +3191,8 @@ BattleCommand_BeatUp: ; 35461
ld a, [wd002]
ld c, a
ld a, [CurBattleMon]
+ ; BUG: this can desynchronize link battles
+ ; Change "cp [hl]" to "cp c" to fix
cp [hl]
ld hl, BattleMonStatus
jr z, .active_mon
@@ -9763,6 +9765,7 @@ BattleCommand_ThunderAccuracy: ; 37d94
CheckHiddenOpponent: ; 37daa
+; BUG: This routine should account for Lock-On and Mind Reader.
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
@@ -9806,7 +9809,7 @@ GetItemHeldEffect: ; 37dd0
ret z
push hl
- ld hl, ItemAttributes + 2
+ ld hl, ItemAttributes + ITEMATTR_EFFECT
dec a
ld c, a
ld b, 0
diff --git a/battle/magikarp_length.asm b/battle/magikarp_length.asm
deleted file mode 100644
index 794823f63..000000000
--- a/battle/magikarp_length.asm
+++ /dev/null
@@ -1,214 +0,0 @@
-CalcMagikarpLength: ; fbbfc
-; Return Magikarp's length (in mm) at wMagikarpLength (big endian).
-;
-; input:
-; de: EnemyMonDVs
-; bc: PlayerID
-
-; This function is poorly commented.
-
-; In short, it generates a value between 190 and 1786 using
-; a Magikarp's DVs and its trainer ID. This value is further
-; filtered in LoadEnemyMon to make longer Magikarp even rarer.
-
-; The value is generated from a lookup table.
-; The index is determined by the dv xored with the player's trainer id.
-
-; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-
-; if bc < 10: [wMagikarpLength] = c + 190
-; if bc >= $ff00: [wMagikarpLength] = c + 1370
-; else: [wMagikarpLength] = z * 100 + (bc - x) / y
-
-; X, Y, and Z depend on the value of b as follows:
-
-; if b = 0: x = 310, y = 2, z = 3
-; if b = 1: x = 710, y = 4, z = 4
-; if b = 2-9: x = 2710, y = 20, z = 5
-; if b = 10-29: x = 7710, y = 50, z = 6
-; if b = 30-68: x = 17710, y = 100, z = 7
-; if b = 69-126: x = 32710, y = 150, z = 8
-; if b = 127-185: x = 47710, y = 150, z = 9
-; if b = 186-224: x = 57710, y = 100, z = 10
-; if b = 225-243: x = 62710, y = 50, z = 11
-; if b = 244-251: x = 64710, y = 20, z = 12
-; if b = 252-253: x = 65210, y = 5, z = 13
-; if b = 254: x = 65410, y = 2, z = 14
-
-
- ; bc = rrc(dv[0]) ++ rrc(dv[1]) ^ rrc(id)
-
- ; id
- ld h, b
- ld l, c
- ld a, [hli]
- ld b, a
- ld c, [hl]
- rrc b
- rrc c
-
- ; dv
- ld a, [de]
- inc de
- rrca
- rrca
- xor b
- ld b, a
-
- ld a, [de]
- rrca
- rrca
- xor c
- ld c, a
-
- ; if bc < 10:
- ; de = bc + 190
- ; break
-
- ld a, b
- and a
- jr nz, .no
- ld a, c
- cp 10
- jr nc, .no
-
- ld hl, 190
- add hl, bc
- ld d, h
- ld e, l
- jr .done
-
-.no
-
- ld hl, .Lengths
- ld a, 2
- ld [wd265], a
-
-.read
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call .BCLessThanDE
- jr nc, .next
-
- ; c = (bc - de) / [hl]
- call .BCMinusDE
- ld a, b
- ld [hDividend + 0], a
- ld a, c
- ld [hDividend + 1], a
- ld a, [hl]
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 2]
- ld c, a
-
- ; de = c + 100 * (2 + i)
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, 100
- ld [hMultiplicand + 2], a
- ld a, [wd265]
- ld [hMultiplier], a
- call Multiply
- ld b, 0
- ld a, [hProduct + 3]
- add c
- ld e, a
- ld a, [hProduct + 2]
- adc b
- ld d, a
- jr .done
-
-.next
- inc hl ; align to next triplet
- ld a, [wd265]
- inc a
- ld [wd265], a
- cp 16
- jr c, .read
-
- call .BCMinusDE
- ld hl, 1600
- add hl, bc
- ld d, h
- ld e, l
-
-.done
- ; hl = de * 10
- ld h, d
- ld l, e
- add hl, hl
- add hl, hl
- add hl, de
- add hl, hl
-
- ; hl = hl / 254
- ld de, -254
- ld a, -1
-.div_254
- inc a
- add hl, de
- jr c, .div_254
-
- ; d, e = hl / 12, hl % 12
- ld d, 0
-.mod_12
- cp 12
- jr c, .ok
- sub 12
- inc d
- jr .mod_12
-.ok
- ld e, a
-
- ld hl, wMagikarpLength
- ld [hl], d
- inc hl
- ld [hl], e
- ret
-; fbc9a
-
-.BCLessThanDE: ; fbc9a
-; Intention: Return bc < de.
-; Reality: Return b < d.
- ld a, b
- cp d
- ret c
- ret nc ; whoops
- ld a, c
- cp e
- ret
-; fbca1
-
-.BCMinusDE: ; fbca1
-; bc -= de
- ld a, c
- sub e
- ld c, a
- ld a, b
- sbc d
- ld b, a
- ret
-; fbca8
-
-.Lengths: ; fbca8
-; ????, divisor
- dwb 110, 1
- dwb 310, 2
- dwb 710, 4
- dwb 2710, 20
- dwb 7710, 50
- dwb 17710, 100
- dwb 32710, 150
- dwb 47710, 150
- dwb 57710, 100
- dwb 62710, 50
- dwb 64710, 20
- dwb 65210, 5
- dwb 65410, 2
- dwb 65510, 1 ; not used
-; fbcd2
diff --git a/battle/moves/move_descriptions.asm b/battle/moves/move_descriptions.asm
index df31fd38a..19659b32a 100644
--- a/battle/moves/move_descriptions.asm
+++ b/battle/moves/move_descriptions.asm
@@ -1,4 +1,5 @@
-; MoveDescriptions: ; 2cb52
+MoveDescriptions:: ; 2cb52
+; entries correspond to move ids (see constants/move_constants.asm)
dw PoundDescription
dw KarateChopDescription
dw DoubleslapDescription
diff --git a/battle/moves/move_effects.asm b/battle/moves/move_effects.asm
index 73bc3cbec..c56ff2560 100644
--- a/battle/moves/move_effects.asm
+++ b/battle/moves/move_effects.asm
@@ -1,3 +1,5 @@
+MoveEffects: ; 2732e
+
NormalHit:
checkobedience
usedmovetext
@@ -571,7 +573,7 @@ DefenseDownHit:
supereffectivetext
checkdestinybond
buildopponentrage
- effectchance
+ effectchance ; bug: duplicate effectchance shouldn't be here
defensedown
statdownmessage
endmove
diff --git a/battle/moves/move_effects_pointers.asm b/battle/moves/move_effects_pointers.asm
index d15beedb7..a12092881 100644
--- a/battle/moves/move_effects_pointers.asm
+++ b/battle/moves/move_effects_pointers.asm
@@ -1,3 +1,4 @@
+MoveEffectsPointers: ; 271f4
; entries correspond to EFFECT_* constants
dw NormalHit
dw DoSleep
diff --git a/battle/moves/moves.asm b/battle/moves/moves.asm
index 43ba6f10d..b576fbaff 100644
--- a/battle/moves/moves.asm
+++ b/battle/moves/moves.asm
@@ -1,4 +1,3 @@
-Moves: ; 41afb
; Characteristics of each move.
move: MACRO
@@ -11,6 +10,8 @@ move: MACRO
db \7 percent ; effect chance
ENDM
+Moves: ; 41afb
+; entries correspond to constants/move_constants.asm
move POUND, EFFECT_NORMAL_HIT, 40, NORMAL, 100, 35, 0
move KARATE_CHOP, EFFECT_NORMAL_HIT, 50, FIGHTING, 100, 25, 0
move DOUBLESLAP, EFFECT_MULTI_HIT, 15, NORMAL, 85, 10, 0
diff --git a/battle/objects/data.asm b/battle/objects/data.asm
index fca986f68..8117d8495 100755
--- a/battle/objects/data.asm
+++ b/battle/objects/data.asm
@@ -1,4 +1,6 @@
-BattleAnimObjects: ; ccb56
+ABSOLUTE_X EQU $00
+RELATIVE_X EQU $01
+
battleanimobj: MACRO
db \1 ; flags
; bit 7: priority
@@ -14,572 +16,194 @@ battleanimobj: MACRO
db \6 ; tile offset
endm
-ABSOLUTE_X EQU $00
-RELATIVE_X EQU $01
-
-
-; ANIM_OBJ_00
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_01
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_02
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_03
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_04
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_05
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_06
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_07
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_08
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_09
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_0A
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_0B
- battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0C
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0D
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0E
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_0F
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_BURNED
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_BLIZZARD
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_12
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_ICE_BEAM
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_RAZOR_LEAF
- battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, $06
-
-; ANIM_OBJ_POKE_BALL
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_OB_RED, $0b
-
-; ANIM_OBJ_POKE_BALL_BLOCKED
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_OB_RED, $0b
-
-; ANIM_OBJ_17
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08
-
-; ANIM_OBJ_18
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08
-
-; ANIM_OBJ_19
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $0c
-
-; ANIM_OBJ_1A
- battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_OB_GRAY, $0c
-
-; ANIM_OBJ_1B
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07
-
-; ANIM_OBJ_BALL_POOF
- battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07
-
-; ANIM_OBJ_1D
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_1E
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_1F
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_20
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BLUE, $21
-
-; ANIM_OBJ_BUBBLE
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_OB_BLUE, $0d
-
-; ANIM_OBJ_22
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_OB_BLUE, $0d
-
-; ANIM_OBJ_23
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_24
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_OB_BLUE, $04
-
-; ANIM_OBJ_25
- battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $04
-
-; ANIM_OBJ_26
- battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GREEN, $0f
-
-; ANIM_OBJ_27
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_28
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_ICE_BUILDUP
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_FROZEN
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a
-
-; ANIM_OBJ_MASTER_BALL_SPARKLE
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_OB_BROWN, $11
-
-; ANIM_OBJ_2C
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_OB_YELLOW, $0d
-
-; ANIM_OBJ_2D
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_2E
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_2F
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_30
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_31
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_LIGHTNING_BOLT
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_33
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_34
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_35
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_36
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_37
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_38
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_39
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_3A
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_3B
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_3C
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_OB_GREEN, $12
-
-; ANIM_OBJ_3D
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GREEN, $12
-
-; ANIM_OBJ_GUST
- battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_OB_GRAY, $13
-
-; ANIM_OBJ_3F
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_40
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_41
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_42
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_43
- battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_44
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_ABSORB
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_OB_GREEN, $12
-
-; ANIM_OBJ_46
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_47
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_48
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16
-
-; ANIM_OBJ_49
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16
-
-; ANIM_OBJ_LEECH_SEED
- battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, $06
-
-; ANIM_OBJ_4B
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_4C
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $17
-
-; ANIM_OBJ_4D
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_4E
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_4F
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10
-
-; ANIM_OBJ_50
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $18
-
-; ANIM_OBJ_51
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18
-
-; ANIM_OBJ_CHICK
- battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_OB_YELLOW, $19
-
-; ANIM_OBJ_53
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_54
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_SKULL
- battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $0c
-
-; ANIM_OBJ_56
- battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BROWN, $1a
-
-; ANIM_OBJ_57
- battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BROWN, $1a
-
-; ANIM_OBJ_58
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $1a
-
-; ANIM_OBJ_PARALYZED
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_OB_YELLOW, $19
-
-; ANIM_OBJ_5A
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_OB_GRAY, $1b
-
-; ANIM_OBJ_HAZE
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_MIST
- battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_SMOG
- battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_POISON_GAS
- battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_HORN
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, $1d
-
-; ANIM_OBJ_60
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_OB_GRAY, $1d
-
-; ANIM_OBJ_61
- battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_OB_RED, $1e
-
-; ANIM_OBJ_62
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_63
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_BROWN, $19
-
-; ANIM_OBJ_64
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_65
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $11
-
-; ANIM_OBJ_66
- battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, $23
-
-; ANIM_OBJ_67
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_68
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_69
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_6A
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_OB_YELLOW, $23
-
-; ANIM_OBJ_6B
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_6C
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_6D
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_SKY_ATTACK_FEAROW
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_OB_GRAY, $20
-
-; ANIM_OBJ_LICK
- battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $04
-
-; ANIM_OBJ_WITHDRAW
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18
-
-; ANIM_OBJ_71
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_BLUE, $0d
-
-; ANIM_OBJ_72
- battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_OB_YELLOW, $12
-
-; ANIM_OBJ_73
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_74
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_OB_GRAY, $1c
-
-; ANIM_OBJ_75
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_76
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_OB_GRAY, $14
-
-; ANIM_OBJ_77
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_OB_GRAY, $11
-
-; ANIM_OBJ_78
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22
-
-; ANIM_OBJ_79
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22
-
-; ANIM_OBJ_7A
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_7B
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_7C
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_7D
- battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_OB_BLUE, $13
-
-; ANIM_OBJ_HEART
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_OB_RED, $23
-
-; ANIM_OBJ_7F
- battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_80
- battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_COTTON_SPORE
- battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_82
- battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_83
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_84
- battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $1f
-
-; ANIM_OBJ_85
- battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_86
- battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_OB_RED, $1f
-
-; ANIM_OBJ_87
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_88
- battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_89
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_8A
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_YELLOW, $23
-
-; ANIM_OBJ_8B
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_8C
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $15
-
-; ANIM_OBJ_8D
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $19
-
-; ANIM_OBJ_SPIKES
- battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_OB_GRAY, $1f
-
-; ANIM_OBJ_8F
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_OB_GRAY, $0a
-
-; ANIM_OBJ_90
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_OB_RED, $03
-
-; ANIM_OBJ_91
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_OB_GRAY, $08
-
-; ANIM_OBJ_92
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1b
-
-; ANIM_OBJ_93
- battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $23
-
-; ANIM_OBJ_94
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_95
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_96
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_97
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $25
-
-; ANIM_OBJ_98
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_GREEN, $23
-
-; ANIM_OBJ_99
- battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $23
-
-; ANIM_OBJ_9A
- battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_OB_YELLOW, $23
-
-; ANIM_OBJ_9B
- battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_9C
- battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_OB_YELLOW, $24
-
-; ANIM_OBJ_9D
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24
-
-; ANIM_OBJ_9E
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $24
-
-; ANIM_OBJ_9F
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_OB_RED, $12
-
-; ANIM_OBJ_A0
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_A1
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02
-
-; ANIM_OBJ_A2
- battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_BROWN, $0f
-
-; ANIM_OBJ_A3
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_OB_YELLOW, $05
-
-; ANIM_OBJ_A4
- battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GRAY, $25
-
-; ANIM_OBJ_A5
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_OB_GRAY, $23
-
-; ANIM_OBJ_PERISH_SONG
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_A7
- battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24
-
-; ANIM_OBJ_A8
- battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_OB_GRAY, $13
-
-; ANIM_OBJ_A9
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_OB_GRAY, $13
-
-; ANIM_OBJ_AA
- battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_AB
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_OB_GRAY, $0e
-
-; ANIM_OBJ_AC
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $17
-
-; ANIM_OBJ_AD
- battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_OB_GRAY, $01
-
-; ANIM_OBJ_AE
- battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_OB_YELLOW, $11
-
-; ANIM_OBJ_AF
- battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_GRAY, $04
-
-; ANIM_OBJ_B0
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_OB_RED, $1c
-
-; ANIM_OBJ_B1
- battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_OB_GRAY, $19
-
-; ANIM_OBJ_B2
- battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_B3
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $27
-
-; ANIM_OBJ_B4
- battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_OB_BLUE, $15
-
-; ANIM_OBJ_B5
- battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, $09
-
-; ANIM_OBJ_FLOWER
- battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $1e
-
-; ANIM_OBJ_COTTON
- battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, $1f
-
-; ANIM_OBJ_PLAYERFEETFOLLOW
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28
-
-; ANIM_OBJ_ENEMYFEETFOLLOW
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29
-
-; ANIM_OBJ_BA
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28
-
-; ANIM_OBJ_BB
- battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29
-
+BattleAnimObjects: ; ccb56
+; entries correspond to ANIM_OBJ_* constants
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_00
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_01
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_02
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_00, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_03
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_01, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_04
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_02, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_05
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_03, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_06
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_04, BATTLEANIMFUNC_1B, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_07
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_08
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_06, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_09
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_07, BATTLEANIMFUNC_09, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_0A
+ battleanimobj RELATIVE_X, $aa, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_10, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0B
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0E, BATTLEANIMFUNC_04, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0C
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0D
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0E
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_0A, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_0F
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_03, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_BURNED
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_12, BATTLEANIMFUNC_08, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_BLIZZARD
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_13, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_12
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_14, BATTLEANIMFUNC_01, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BEAM
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_16, BATTLEANIMFUNC_RAZOR_LEAF, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_RAZOR_LEAF
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_12, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_09, BATTLEANIMFUNC_13, PAL_BATTLE_OB_RED, $0b ; ANIM_OBJ_POKE_BALL_BLOCKED
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_17
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_18, BATTLEANIMFUNC_00, PAL_BATTLE_OB_RED, $08 ; ANIM_OBJ_18
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_1D, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_19
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_1F, BATTLEANIMFUNC_38, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_1A
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_1B
+ battleanimobj RELATIVE_X, $a0, BATTLEANIMFRAMESET_08, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $07 ; ANIM_OBJ_BALL_POOF
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1D
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_1A, BATTLEANIMFUNC_07, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1E
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_1B, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_1F
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_84, BATTLEANIMFUNC_36, PAL_BATTLE_OB_BLUE, $21 ; ANIM_OBJ_20
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_0C, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_BUBBLE
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_23, BATTLEANIMFUNC_0D, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_22
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_0E, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_23
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_27, BATTLEANIMFUNC_0F, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_24
+ battleanimobj RELATIVE_X, $b4, BATTLEANIMFRAMESET_2A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $04 ; ANIM_OBJ_25
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_2B, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GREEN, $0f ; ANIM_OBJ_26
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_27
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_28
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_ICE_BUILDUP
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_2F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $0a ; ANIM_OBJ_FROZEN
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_14, PAL_BATTLE_OB_BROWN, $11 ; ANIM_OBJ_MASTER_BALL_SPARKLE
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_14, PAL_BATTLE_OB_YELLOW, $0d ; ANIM_OBJ_2C
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_31, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2D
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_32, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2E
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_33, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_2F
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_15, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_30
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_36, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_31
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_37, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_LIGHTNING_BOLT
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_38, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_33
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_39, BATTLEANIMFUNC_03, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_34
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_3A, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_35
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_3C, BATTLEANIMFUNC_17, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_36
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_37
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_3F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_38
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_40, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_39
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_41, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3A
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_42, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_3B
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_18, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3C
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_44, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_3D
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_45, BATTLEANIMFUNC_19, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_GUST
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_46, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_3F
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_47, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_40
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_48, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_41
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_49, BATTLEANIMFUNC_1A, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_42
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_43
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_4B, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_44
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_4C, BATTLEANIMFUNC_1C, PAL_BATTLE_OB_GREEN, $12 ; ANIM_OBJ_ABSORB
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_4D, BATTLEANIMFUNC_1D, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_46
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_51, BATTLEANIMFUNC_1E, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_47
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_52, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_48
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_54, BATTLEANIMFUNC_1F, PAL_BATTLE_OB_GREEN, $16 ; ANIM_OBJ_49
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_56, BATTLEANIMFUNC_LEECH_SEED, PAL_BATTLE_OB_GREEN, $06 ; ANIM_OBJ_LEECH_SEED
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_59, BATTLEANIMFUNC_21, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_4B
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_5C, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $17 ; ANIM_OBJ_4C
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_5D, BATTLEANIMFUNC_22, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_4D
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_5F, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4E
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $88, BATTLEANIMFRAMESET_2D, BATTLEANIMFUNC_09, PAL_BATTLE_OB_YELLOW, $10 ; ANIM_OBJ_4F
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $18 ; ANIM_OBJ_50
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_60, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_51
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_61, BATTLEANIMFUNC_23, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_CHICK
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_63, BATTLEANIMFUNC_24, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_53
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_66, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_54
+ battleanimobj RELATIVE_X, $50, BATTLEANIMFRAMESET_1C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $0c ; ANIM_OBJ_SKULL
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_56
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BROWN, $1a ; ANIM_OBJ_57
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_69, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $1a ; ANIM_OBJ_58
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6D, BATTLEANIMFUNC_28, PAL_BATTLE_OB_YELLOW, $19 ; ANIM_OBJ_PARALYZED
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_6A, BATTLEANIMFUNC_27, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_5A
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_HAZE
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_MIST
+ battleanimobj RELATIVE_X | X_FLIP, $48, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_SMOG
+ battleanimobj RELATIVE_X | X_FLIP, $78, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_POISON_GAS
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_71, BATTLEANIMFUNC_HORN, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_HORN
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_72, BATTLEANIMFUNC_2C, PAL_BATTLE_OB_GRAY, $1d ; ANIM_OBJ_60
+ battleanimobj RELATIVE_X, $48, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_2D, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_61
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_06, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_62
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_BROWN, $19 ; ANIM_OBJ_63
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_4A, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_64
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_65
+ battleanimobj RELATIVE_X, $78, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_POISON_GAS, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_66
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_30, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_67
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_68
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_77, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_69
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_08, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_6A
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_79, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_6B
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6C
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_7A, BATTLEANIMFUNC_31, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_6D
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_7B, BATTLEANIMFUNC_32, PAL_BATTLE_OB_GRAY, $20 ; ANIM_OBJ_SKY_ATTACK_FEAROW
+ battleanimobj RELATIVE_X | X_FLIP, $98, BATTLEANIMFRAMESET_7C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_LICK
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_7D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $18 ; ANIM_OBJ_WITHDRAW
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_21, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_BLUE, $0d ; ANIM_OBJ_71
+ battleanimobj RELATIVE_X, $b0, BATTLEANIMFRAMESET_7E, BATTLEANIMFUNC_33, PAL_BATTLE_OB_YELLOW, $12 ; ANIM_OBJ_72
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_2F, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_73
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_6F, BATTLEANIMFUNC_34, PAL_BATTLE_OB_GRAY, $1c ; ANIM_OBJ_74
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_35, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_75
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_80, BATTLEANIMFUNC_33, PAL_BATTLE_OB_GRAY, $14 ; ANIM_OBJ_76
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_81, BATTLEANIMFUNC_37, PAL_BATTLE_OB_GRAY, $11 ; ANIM_OBJ_77
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_85, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_78
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_86, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $22 ; ANIM_OBJ_79
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_87, BATTLEANIMFUNC_39, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_7A
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_30, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_7B
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_34, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_7C
+ battleanimobj RELATIVE_X | X_FLIP | BEHIND_BG, $88, BATTLEANIMFRAMESET_88, BATTLEANIMFUNC_3B, PAL_BATTLE_OB_BLUE, $13 ; ANIM_OBJ_7D
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_76, BATTLEANIMFUNC_25, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_HEART
+ battleanimobj RELATIVE_X, $98, BATTLEANIMFRAMESET_10, BATTLEANIMFUNC_34, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_7F
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_0F, BATTLEANIMFUNC_3C, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_80
+ battleanimobj RELATIVE_X | X_FLIP, $68, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_SPRIAL_DESCENT, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_COTTON_SPORE
+ battleanimobj RELATIVE_X | X_FLIP, $b0, BATTLEANIMFRAMESET_8A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_82
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_8C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_83
+ battleanimobj RELATIVE_X | X_FLIP, $50, BATTLEANIMFRAMESET_8D, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $1f ; ANIM_OBJ_84
+ battleanimobj RELATIVE_X, $40, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_40, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_85
+ battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_8E, BATTLEANIMFUNC_41, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_86
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_8F, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_87
+ battleanimobj RELATIVE_X | X_FLIP, $88, BATTLEANIMFRAMESET_93, BATTLEANIMFUNC_3E, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_88
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_97, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_89
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_3D, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_8A
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_2E, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_8B
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_02, PAL_BATTLE_OB_GRAY, $15 ; ANIM_OBJ_8C
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_99, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $19 ; ANIM_OBJ_8D
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_8B, BATTLEANIMFUNC_3F, PAL_BATTLE_OB_GRAY, $1f ; ANIM_OBJ_SPIKES
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_15, BATTLEANIMFUNC_08, PAL_BATTLE_OB_GRAY, $0a ; ANIM_OBJ_8F
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_11, BATTLEANIMFUNC_02, PAL_BATTLE_OB_RED, $03 ; ANIM_OBJ_90
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_7F, BATTLEANIMFUNC_42, PAL_BATTLE_OB_GRAY, $08 ; ANIM_OBJ_91
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_9A, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $1b ; ANIM_OBJ_92
+ battleanimobj RELATIVE_X | X_FLIP, $a0, BATTLEANIMFRAMESET_9B, BATTLEANIMFUNC_35, PAL_BATTLE_OB_RED, $23 ; ANIM_OBJ_93
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_23, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_94
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9D, BATTLEANIMFUNC_25, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_95
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_96
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_9E, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $25 ; ANIM_OBJ_97
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $80, BATTLEANIMFRAMESET_9F, BATTLEANIMFUNC_3A, PAL_BATTLE_OB_GREEN, $23 ; ANIM_OBJ_98
+ battleanimobj RELATIVE_X | X_FLIP, $80, BATTLEANIMFRAMESET_A0, BATTLEANIMFUNC_16, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_99
+ battleanimobj RELATIVE_X | X_FLIP, $70, BATTLEANIMFRAMESET_78, BATTLEANIMFUNC_43, PAL_BATTLE_OB_YELLOW, $23 ; ANIM_OBJ_9A
+ battleanimobj RELATIVE_X | X_FLIP, $c0, BATTLEANIMFRAMESET_A2, BATTLEANIMFUNC_01, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_9B
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_A3, BATTLEANIMFUNC_44, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9C
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A4, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_9D
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_A5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $24 ; ANIM_OBJ_9E
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_43, BATTLEANIMFUNC_45, PAL_BATTLE_OB_RED, $12 ; ANIM_OBJ_9F
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A0
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_A7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $02 ; ANIM_OBJ_A1
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B4, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_BROWN, $0f ; ANIM_OBJ_A2
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_A8, BATTLEANIMFUNC_02, PAL_BATTLE_OB_YELLOW, $05 ; ANIM_OBJ_A3
+ battleanimobj RELATIVE_X | X_FLIP, $40, BATTLEANIMFRAMESET_9C, BATTLEANIMFUNC_11, PAL_BATTLE_OB_GRAY, $25 ; ANIM_OBJ_A4
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $90, BATTLEANIMFRAMESET_A9, BATTLEANIMFUNC_46, PAL_BATTLE_OB_GRAY, $23 ; ANIM_OBJ_A5
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_47, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_PERISH_SONG
+ battleanimobj RELATIVE_X, $80, BATTLEANIMFRAMESET_AA, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $24 ; ANIM_OBJ_A7
+ battleanimobj RELATIVE_X | X_FLIP, $b8, BATTLEANIMFRAMESET_AB, BATTLEANIMFUNC_48, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A8
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AC, BATTLEANIMFUNC_44, PAL_BATTLE_OB_GRAY, $13 ; ANIM_OBJ_A9
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_05, BATTLEANIMFUNC_00, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AA
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_24, BATTLEANIMFUNC_43, PAL_BATTLE_OB_GRAY, $0e ; ANIM_OBJ_AB
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_AD, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $17 ; ANIM_OBJ_AC
+ battleanimobj RELATIVE_X, $a8, BATTLEANIMFRAMESET_AE, BATTLEANIMFUNC_49, PAL_BATTLE_OB_GRAY, $01 ; ANIM_OBJ_AD
+ battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_AF, BATTLEANIMFUNC_01, PAL_BATTLE_OB_YELLOW, $11 ; ANIM_OBJ_AE
+ battleanimobj RELATIVE_X | X_FLIP, $00, BATTLEANIMFRAMESET_B0, BATTLEANIMFUNC_4A, PAL_BATTLE_OB_GRAY, $04 ; ANIM_OBJ_AF
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_70, BATTLEANIMFUNC_4B, PAL_BATTLE_OB_RED, $1c ; ANIM_OBJ_B0
+ battleanimobj RELATIVE_X, $88, BATTLEANIMFRAMESET_B1, BATTLEANIMFUNC_4C, PAL_BATTLE_OB_GRAY, $19 ; ANIM_OBJ_B1
+ battleanimobj RELATIVE_X, $b8, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4D, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B2
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_B3, BATTLEANIMFUNC_00, PAL_BATTLE_OB_YELLOW, $27 ; ANIM_OBJ_B3
+ battleanimobj RELATIVE_X | X_FLIP | Y_FLIP, $98, BATTLEANIMFRAMESET_74, BATTLEANIMFUNC_04, PAL_BATTLE_OB_BLUE, $15 ; ANIM_OBJ_B4
+ battleanimobj RELATIVE_X | X_FLIP, $ff, BATTLEANIMFRAMESET_19, BATTLEANIMFUNC_4E, PAL_BATTLE_OB_BROWN, $09 ; ANIM_OBJ_B5
+ battleanimobj RELATIVE_X, $90, BATTLEANIMFRAMESET_73, BATTLEANIMFUNC_08, PAL_BATTLE_OB_RED, $1e ; ANIM_OBJ_FLOWER
+ battleanimobj RELATIVE_X, $ff, BATTLEANIMFRAMESET_89, BATTLEANIMFUNC_4F, PAL_BATTLE_OB_RED, $1f ; ANIM_OBJ_COTTON
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B5, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_PLAYERFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B6, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_ENEMYFEETFOLLOW
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B7, BATTLEANIMFUNC_00, PAL_BATTLE_OB_ENEMY, $28 ; ANIM_OBJ_BA
+ battleanimobj ABSOLUTE_X, $00, BATTLEANIMFRAMESET_B8, BATTLEANIMFUNC_00, PAL_BATTLE_OB_PLAYER, $29 ; ANIM_OBJ_BB
; ccfbe
diff --git a/battle/objects/functions.asm b/battle/objects/functions.asm
index 6a0c2ecf8..64c390cbe 100755
--- a/battle/objects/functions.asm
+++ b/battle/objects/functions.asm
@@ -450,7 +450,7 @@ GetBallAnimPal: ; cd249 (33:5249)
ret
; cd26c (33:526c)
-INCLUDE "data/ball_colors.asm"
+INCLUDE "data/battle/ball_colors.asm"
BattleAnimFunction_10: ; cd284 (33:5284)
call BattleAnim_AnonJumptable
diff --git a/battle/objects/gfx_headers.asm b/battle/objects/gfx_headers.asm
index 60164918b..901144ec7 100755
--- a/battle/objects/gfx_headers.asm
+++ b/battle/objects/gfx_headers.asm
@@ -1,12 +1,11 @@
-
-AnimObjGFX: ; cfcf6
-
object_gfx: MACRO
; # tiles, label
db \1
dba \2
ENDM
+AnimObjGFX: ; cfcf6
+; entries correspond to ANIM_GFX_* constants
object_gfx 0, AnimObj00GFX
object_gfx 21, AnimObjHitGFX
object_gfx 6, AnimObjCutGFX
diff --git a/constants.asm b/constants.asm
index 16f50bb02..b8c38cc46 100644
--- a/constants.asm
+++ b/constants.asm
@@ -1,13 +1,12 @@
INCLUDE "macros.asm"
-INCLUDE "gbhw.asm"
INCLUDE "hram.asm"
+INCLUDE "constants/hardware_constants.asm"
INCLUDE "constants/wram_constants.asm"
INCLUDE "constants/pokemon_constants.asm"
INCLUDE "constants/type_constants.asm"
INCLUDE "constants/move_constants.asm"
-INCLUDE "constants/effect_command_constants.asm"
INCLUDE "constants/battle_constants.asm"
INCLUDE "constants/map_dimension_constants.asm"
INCLUDE "constants/map_constants.asm"
@@ -22,6 +21,7 @@ INCLUDE "constants/music_constants.asm"
INCLUDE "constants/sfx_constants.asm"
INCLUDE "constants/animation_constants.asm"
INCLUDE "constants/phone_constants.asm"
+INCLUDE "constants/credits_constants.asm"
INCLUDE "constants/gfx_constants.asm"
INCLUDE "constants/input_constants.asm"
INCLUDE "constants/pokemon_data_constants.asm"
diff --git a/constants/audio_constants.asm b/constants/audio_constants.asm
index dd39df20f..861c35ee0 100755
--- a/constants/audio_constants.asm
+++ b/constants/audio_constants.asm
@@ -1,5 +1,5 @@
; pitch
-; FrequencyTable indexes (see data/audio/notes.asm)
+; FrequencyTable indexes (see audio/notes.asm)
const_def
const __ ; 0
const C_ ; 1
@@ -67,4 +67,22 @@ NUM_CHANNELS EQU const_value
const NOTE_VIBRATO_OVERRIDE ; 6
; Volume:
+VOLUME_SO1_F EQU 3
+VOLUME_SO2_F EQU 7
+VOLUME_SO1_LEVEL EQU %00000111
+VOLUME_SO2_LEVEL EQU %01110000
MAX_VOLUME EQU $77
+
+; SoundInput:
+SOUND_INPUT_CH1_F EQU 0
+SOUND_INPUT_CH2_F EQU 1
+SOUND_INPUT_CH3_F EQU 2
+SOUND_INPUT_CH4_F EQU 3
+SOUND_INPUT_GLOBAL_F EQU 7
+
+; Danger:
+DANGER_PITCH_F EQU 4
+DANGER_ON_F EQU 7
+
+; MusicFade:
+MUSIC_FADE_IN_F EQU 7
diff --git a/constants/battle_tower_constants.asm b/constants/battle_tower_constants.asm
index 5ab69d752..74df3a36a 100755
--- a/constants/battle_tower_constants.asm
+++ b/constants/battle_tower_constants.asm
@@ -1,4 +1,4 @@
-; BattleTowerAction arguments (see misc/battle_tower_5c.asm)
+; BattleTowerAction arguments (see mobile/battle_tower_5c.asm)
const_def
const BATTLETOWERACTION_CHECK_EXPLANATION_READ
const BATTLETOWERACTION_SET_EXPLANATION_READ
@@ -20,8 +20,8 @@
const BATTLETOWERACTION_11 ; store 0 in 5:aa8d
const BATTLETOWERACTION_12 ; store 1 in 5:aa8d
const BATTLETOWERACTION_13 ; check 5:aa8d
- const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [s1_be4f]
- const BATTLETOWERACTION_15 ; set 0, [s1_be4f]
+ const BATTLETOWERACTION_14 ; if save file is yours: bit 0, [sBattleTowerSaveFileFlags]
+ const BATTLETOWERACTION_15 ; set 0, [sBattleTowerSaveFileFlags]
const BATTLETOWERACTION_16 ; update time in SRAM bank 5
const BATTLETOWERACTION_17 ; check time in SRAM bank 5
const BATTLETOWERACTION_LEVEL_CHECK
diff --git a/constants/cgb_constants.asm b/constants/cgb_constants.asm
index c5aef7750..c419cd465 100755
--- a/constants/cgb_constants.asm
+++ b/constants/cgb_constants.asm
@@ -1,4 +1,4 @@
-; GetSGBLayout arguments (see predef/cgb.asm and predef/sgb.asm)
+; GetSGBLayout arguments (see engine/cgb_layouts.asm and engine/sgb_layouts.asm)
const_def
const SCGB_BATTLE_GRAYSCALE
const SCGB_BATTLE_COLORS
diff --git a/constants/credits_constants.asm b/constants/credits_constants.asm
new file mode 100644
index 000000000..8ee0391de
--- /dev/null
+++ b/constants/credits_constants.asm
@@ -0,0 +1,115 @@
+; CreditsStrings indexes (see data/credits_text.asm)
+ const_def
+ const SATOSHI_TAJIRI
+ const JUNICHI_MASUDA
+ const TETSUYA_WATANABE
+ const SHIGEKI_MORIMOTO
+ const SOUSUKE_TAMADA
+ const TAKENORI_OOTA
+ const KEN_SUGIMORI
+ const MOTOFUMI_FUJIWARA
+ const ATSUKO_NISHIDA
+ const MUNEO_SAITO
+ const SATOSHI_OOTA
+ const RENA_YOSHIKAWA
+ const JUN_OKUTANI
+ const HIRONOBU_YOSHIDA
+ const ASUKA_IWASHITA
+ const GO_ICHINOSE
+ const MORIKAZU_AOKI
+ const KOHJI_NISHINO
+ const KENJI_MATSUSHIMA
+ const TOSHINOBU_MATSUMIYA
+ const SATORU_IWATA
+ const NOBUHIRO_SEYA
+ const KAZUHITO_SEKINE
+ const TETSUJI_OOTA
+ const NCL_SUPER_MARIO_CLUB
+ const SARUGAKUCHO
+ const AKITO_MORI
+ const TAKAHIRO_HARADA
+ const TOHRU_HASHIMOTO
+ const NOBORU_MATSUMOTO
+ const TAKEHIRO_IZUSHI
+ const TAKASHI_KAWAGUCHI
+ const TSUNEKAZU_ISHIHARA
+ const HIROSHI_YAMAUCHI
+ const KENJI_SAIKI
+ const ATSUSHI_TADA
+ const NAOKO_KAWAKAMI
+ const HIROYUKI_ZINNAI
+ const KUNIMI_KAWAMURA
+ const HISASHI_SOGABE
+ const KEITA_KAGAYA
+ const YOSHINORI_MATSUDA
+ const HITOMI_SATO
+ const TORU_OSAWA
+ const TAKAO_OHARA
+ const YUICHIRO_ITO
+ const TAKAO_SHIMIZU
+ const PLANNING
+ const KEITA_NAKAMURA
+ const HIROTAKA_UEMURA
+ const HIROAKI_TAMURA
+ const NORIAKI_SAKAGUCHI
+ const MIYUKI_SATO
+ const GAKUZI_NOMOTO
+ const AI_MASHIMA
+ const MIKIHIRO_ISHIKAWA
+ const HIDEYUKI_HASHIMOTO
+ const SATOSHI_YAMATO
+ const SHIGERU_MIYAMOTO
+ const GAIL_TILDEN
+ const NOB_OGASAWARA
+ const SETH_MCMAHILL
+ const HIROTO_ALEXANDER
+ const TERESA_LILLYGREN
+ const THOMAS_HERTZOG
+ const ERIK_JOHNSON
+ const HIRO_NAKAMURA
+ const TERUKI_MURAKAWA
+ const KAZUYOSHI_OSAWA
+ const KIMIKO_NAKAMICHI
+ const CREDIT_END
+ const CREDIT_UNKNOWN
+ const STAFF
+ const DIRECTOR
+ const CODIRECTOR
+ const PROGRAMMERS
+ const GRAPHICS_DIRECTOR
+ const MONSTER_DESIGN
+ const GRAPHICS_DESIGN
+ const CREDIT_MUSIC
+ const CREDIT_SOUND_EFFECTS
+ const GAME_DESIGN
+ const GAME_SCENARIO
+ const TOOL_PROGRAMMING
+ const PARAMETRIC_DESIGN
+ const SCRIPT_DESIGN
+ const MAP_DATA_DESIGN
+ const MAP_DESIGN
+ const PRODUCT_TESTING
+ const SPECIAL_THANKS
+ const PRODUCERS
+ const EXECUTIVE_PRODUCER
+ const POKEMON_ANIMATION
+ const POKEDEX_TEXT
+ const MOBILE_PRJ_LEADER
+ const MOBILE_SYSTEM_AD
+ const MOBILE_STADIUM_DIR
+ const COORDINATION
+ const COPYRIGHT
+ const US_VERSION_STAFF
+ const US_COORDINATION
+ const TEXT_TRANSLATION
+ const PAAD_TESTING
+
+; CreditsScript indexes (see data/credits_script.asm)
+const_value SET -7
+ const CREDITS_THEEND
+ const CREDITS_WAIT2
+ const CREDITS_MUSIC
+ const CREDITS_CLEAR
+ const CREDITS_SCENE
+ const CREDITS_WAIT
+ const CREDITS_END
diff --git a/constants/effect_command_constants.asm b/constants/effect_command_constants.asm
deleted file mode 100644
index 0d86e66a1..000000000
--- a/constants/effect_command_constants.asm
+++ /dev/null
@@ -1,187 +0,0 @@
-; BattleCommandPointers indexes (see battle/effect_commands.asm)
-
-command: macro
- enum \1_command
-\1 equs "db \1_command"
-endm
-
- enum_start 1
- command checkturn ; 01
- command checkobedience ; 02
- command usedmovetext ; 03
- command doturn ; 04
- command critical ; 05
- command damagestats ; 06
- command stab ; 07
- command damagevariation ; 08
- command checkhit ; 09
- command lowersub ; 0a
- command hittargetnosub ; 0b
- command raisesub ; 0c
- command failuretext ; 0d
- command checkfaint ; 0e
- command criticaltext ; 0f
- command supereffectivetext ; 10
- command checkdestinybond ; 11
- command buildopponentrage ; 12
- command poisontarget ; 13
- command sleeptarget ; 14
- command draintarget ; 15
- command eatdream ; 16
- command burntarget ; 17
- command freezetarget ; 18
- command paralyzetarget ; 19
- command selfdestruct ; 1a
- command mirrormove ; 1b
- command statup ; 1c
- command statdown ; 1d
- command payday ; 1e
- command conversion ; 1f
- command resetstats ; 20
- command storeenergy ; 21
- command unleashenergy ; 22
- command forceswitch ; 23
- command endloop ; 24
- command flinchtarget ; 25
- command ohko ; 26
- command recoil ; 27
- command mist ; 28
- command focusenergy ; 29
- command confuse ; 2a
- command confusetarget ; 2b
- command heal ; 2c
- command transform ; 2d
- command screen ; 2e
- command poison ; 2f
- command paralyze ; 30
- command substitute ; 31
- command rechargenextturn ; 32
- command mimic ; 33
- command metronome ; 34
- command leechseed ; 35
- command splash ; 36
- command disable ; 37
- command cleartext ; 38
- command charge ; 39
- command checkcharge ; 3a
- command traptarget ; 3b
- command effect0x3c ; 3c
- command rampage ; 3d
- command checkrampage ; 3e
- command constantdamage ; 3f
- command counter ; 40
- command encore ; 41
- command painsplit ; 42
- command snore ; 43
- command conversion2 ; 44
- command lockon ; 45
- command sketch ; 46
- command defrostopponent ; 47
- command sleeptalk ; 48
- command destinybond ; 49
- command spite ; 4a
- command falseswipe ; 4b
- command healbell ; 4c
- command kingsrock ; 4d
- command triplekick ; 4e
- command kickcounter ; 4f
- command thief ; 50
- command arenatrap ; 51
- command nightmare ; 52
- command defrost ; 53
- command curse ; 54
- command protect ; 55
- command spikes ; 56
- command foresight ; 57
- command perishsong ; 58
- command startsandstorm ; 59
- command endure ; 5a
- command checkcurl ; 5b
- command rolloutpower ; 5c
- command effect0x5d ; 5d
- command furycutter ; 5e
- command attract ; 5f
- command happinesspower ; 60
- command present ; 61
- command damagecalc ; 62
- command frustrationpower ; 63
- command safeguard ; 64
- command checksafeguard ; 65
- command getmagnitude ; 66
- command batonpass ; 67
- command pursuit ; 68
- command clearhazards ; 69
- command healmorn ; 6a
- command healday ; 6b
- command healnite ; 6c
- command hiddenpower ; 6d
- command startrain ; 6e
- command startsun ; 6f
- command attackup ; 70
- command defenseup ; 71
- command speedup ; 72
- command specialattackup ; 73
- command specialdefenseup ; 74
- command accuracyup ; 75
- command evasionup ; 76
- command attackup2 ; 77
- command defenseup2 ; 78
- command speedup2 ; 79
- command specialattackup2 ; 7a
- command specialdefenseup2 ; 7b
- command accuracyup2 ; 7c
- command evasionup2 ; 7d
- command attackdown ; 7e
- command defensedown ; 7f
- command speeddown ; 80
- command specialattackdown ; 81
- command specialdefensedown ; 82
- command accuracydown ; 83
- command evasiondown ; 84
- command attackdown2 ; 85
- command defensedown2 ; 86
- command speeddown2 ; 87
- command specialattackdown2 ; 88
- command specialdefensedown2 ; 89
- command accuracydown2 ; 8a
- command evasiondown2 ; 8b
- command statupmessage ; 8c
- command statdownmessage ; 8d
- command statupfailtext ; 8e
- command statdownfailtext ; 8f
- command effectchance ; 90
- command statdownanim ; 91
- command statupanim ; 92
- command switchturn ; 93
- command fakeout ; 94
- command bellydrum ; 95
- command psychup ; 96
- command rage ; 97
- command doubleflyingdamage ; 98
- command doubleundergrounddamage ; 99
- command mirrorcoat ; 9a
- command checkfuturesight ; 9b
- command futuresight ; 9c
- command doubleminimizedamage ; 9d
- command skipsuncharge ; 9e
- command thunderaccuracy ; 9f
- command teleport ; a0
- command beatup ; a1
- command ragedamage ; a2
- command resettypematchup ; a3
- command allstatsup ; a4
- command effect0xa5 ; a5
- command raisesubnoanim ; a6
- command lowersubnoanim ; a7
- command effect0xa8 ; a8
- command clearmissdamage ; a9
- command movedelay ; aa
- command hittarget ; ab
- command tristatuschance ; ac
- command supereffectivelooptext ; ad
- command startloop ; ae
- command curl ; af
-
- enum_start -1, -1
- command endmove
- command endturn
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 445f0d815..4c3b23fc9 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -19,3 +19,6 @@ HP_BAR_LENGTH EQU 6 ; tiles
HP_BAR_LENGTH_PX EQU HP_BAR_LENGTH * TILE_WIDTH ; pixels
EXP_BAR_LENGTH EQU 8 ; tiles
EXP_BAR_LENGTH_PX EQU EXP_BAR_LENGTH * TILE_WIDTH ; pixels
+
+
+PALPACKET_LENGTH EQU $10
diff --git a/gbhw.asm b/constants/hardware_constants.asm
index ae2e97a6b..ae2e97a6b 100644
--- a/gbhw.asm
+++ b/constants/hardware_constants.asm
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index d9cd99a34..f03cf2735 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -1,9 +1,9 @@
; item ids
; indexes for:
-; - ItemAttributes (see items/item_attributes.asm)
-; - ItemDescriptions (see items/item_descriptions.asm)
-; - ItemEffects (see items/item_effects.asm)
-; - ItemNames (see items/item_names.asm)
+; - ItemAttributes (see data/items/item_attributes.asm)
+; - ItemDescriptions (see data/items/item_descriptions.asm)
+; - ItemEffects (see engine/item_effects.asm)
+; - ItemNames (see data/items/item_names.asm)
const_def
const NO_ITEM ; $00
const MASTER_BALL ; $01
@@ -372,7 +372,7 @@ const_value SET 70
const HELD_78
const HELD_FOCUS_BAND
-; item_attribute struct members (see items/item_attributes.asm)
+; item_attribute struct members (see data/items/item_attributes.asm)
const_def
const ITEMATTR_PRICE
const ITEMATTR_PRICE_HI
@@ -397,7 +397,7 @@ ITEMMENU_CLOSE EQU 6
const MARTTYPE_PHARMACY
const MARTTYPE_ROOFTOP
-; Marts indexes (see items/marts.asm)
+; Marts indexes (see data/items/marts.asm)
const_def
const MART_CHERRYGROVE
const MART_CHERRYGROVE_DEX
diff --git a/constants/landmark_constants.asm b/constants/landmark_constants.asm
index e53d44d04..0b29b8e03 100644
--- a/constants/landmark_constants.asm
+++ b/constants/landmark_constants.asm
@@ -1,4 +1,4 @@
-; Landmarks indexes (see data/landmarks.asm)
+; Landmarks indexes (see data/maps/landmarks.asm)
const_def
; Johto landmarks
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index be73faf9e..22b02f1c1 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -127,7 +127,7 @@ SLIDING EQU 3
EMOTE_OBJECT EQU 7
-; SpawnPoints indexes (see data/spawn_points.asm)
+; SpawnPoints indexes (see data/maps/spawn_points.asm)
const_value = -1
const SPAWN_N_A
const SPAWN_HOME
@@ -203,7 +203,7 @@ NUM_SPAWNS EQU const_value
const EMOTE_GRASS_RUSTLE ; 11
EMOTE_MEM EQU -1
-; FruitTreeItems indexes (see data/fruit_tree_items.asm)
+; FruitTreeItems indexes (see data/items/fruit_trees.asm)
const_value SET 1
const FRUITTREE_ROUTE_29 ; 01
const FRUITTREE_ROUTE_30_1 ; 02
diff --git a/constants/map_dimension_constants.asm b/constants/map_dimension_constants.asm
index d7fead006..714bbe02b 100644
--- a/constants/map_dimension_constants.asm
+++ b/constants/map_dimension_constants.asm
@@ -1,8 +1,23 @@
+newgroup: macro
+const_value = const_value + 1
+ enum_start 1
+endm
+
+mapgroup: macro
+;\1: map id
+;\2: height: in blocks
+;\3: width: in blocks
+GROUP_\1 EQU const_value
+ enum MAP_\1
+\1_HEIGHT EQU \2
+\1_WIDTH EQU \3
+endm
+
; map group ids
; `newgroup` indexes are for:
; - MapGroupPointers (see maps/map_headers.asm)
-; - OutdoorSprites (see data/outdoor_sprites.asm)
-; - MapGroupRoofs (see data/mapgroup_roofs.asm)
+; - OutdoorSprites (see data/maps/outdoor_sprites.asm)
+; - MapGroupRoofs (see data/maps/mapgroup_roofs.asm)
; `mapgroup` indexes are for the sub-tables of MapGroupPointers (see maps/map_headers.asm)
const_def
@@ -214,7 +229,7 @@
mapgroup EARLS_POKEMON_ACADEMY, 8, 4 ; 8
mapgroup VIOLET_NICKNAME_SPEECH_HOUSE, 4, 4 ; 9
mapgroup VIOLET_POKECENTER_1F, 4, 5 ; 10
- mapgroup VIOLET_ONIX_TRADE_HOUSE, 4, 4 ; 11
+ mapgroup VIOLET_KYLES_HOUSE, 4, 4 ; 11
mapgroup ROUTE_32_RUINS_OF_ALPH_GATE, 4, 5 ; 12
mapgroup ROUTE_32_POKECENTER_1F, 4, 5 ; 13
mapgroup ROUTE_35_GOLDENROD_GATE, 4, 5 ; 14
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index 7510fdf50..25032cc10 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -27,7 +27,7 @@ ITEM_NAME_LENGTH EQU 13
TRAINER_CLASS_NAME_LENGTH EQU 13
NAME_LENGTH_JAPANESE EQU 6
-; GetName types (see home.asm)
+; GetName types (see home/names.asm)
PKMN_NAME EQU 1
MOVE_NAME EQU 2
; dummied out EQU 3
@@ -44,12 +44,13 @@ const_value set 5
const PRINTNUM_RIGHTALIGN_F ; 6
const PRINTNUM_LEADINGZEROS_F ; 7
+; PrintNum arguments (see engine/printnum.asm)
PRINTNUM_MONEY EQU 1 << PRINTNUM_MONEY_F
PRINTNUM_RIGHTALIGN EQU 1 << PRINTNUM_RIGHTALIGN_F
PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
-; movement
+; DoPlayerMovement.DoStep arguments (see engine/player_movement.asm)
const_def
const STEP_SLOW ; 0
const STEP_WALK ; 1
@@ -61,10 +62,16 @@ PRINTNUM_LEADINGZEROS EQU 1 << PRINTNUM_LEADINGZEROS_F
const STEP_WALK_IN_PLACE ; 7
+; hMenuReturn
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
+; save file corruption check values
+SAVE_CHECK_VALUE_1 EQU 99
+SAVE_CHECK_VALUE_2 EQU 127
+
+
; time of day boundaries
MORN_HOUR EQU 4 ; 4 AM
DAY_HOUR EQU 10 ; 10 AM
diff --git a/constants/mobile_constants.asm b/constants/mobile_constants.asm
index 0ac28c94b..b5894b8e9 100644
--- a/constants/mobile_constants.asm
+++ b/constants/mobile_constants.asm
@@ -1,4 +1,4 @@
-; MobileEZChatCategoryPointers indexes (see misc/fixed_words.asm)
+; MobileEZChatCategoryPointers indexes (see mobile/fixed_words.asm)
const_def
const EZCHAT_POKEMON
const EZCHAT_TYPES
@@ -16,6 +16,6 @@
const EZCHAT_FAREWELLS
const EZCHAT_THISANDTHAT
-NUM_KANA EQU 45 ; length of SortedPokemon table (see misc/fixed_words.asm)
+NUM_KANA EQU 45 ; length of SortedPokemon table (see mobile/fixed_words.asm)
MOBILE_LOGIN_PASSWORD_LENGTH EQU 17
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index 14635d729..13cb577bb 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -1,22 +1,22 @@
; pokemon ids
; indexes for:
-; - CryHeaders (see audio/cry_headers.asm)
-; - BaseData (see data/base_stats.asm)
-; - EggMovePointers (see data/egg_move_pointers.asm)
-; - EvosAttacksPointers (see data/evos_attacks_pointers.asm)
-; - PokemonNames (see data/pokemon_names.asm)
-; - PokedexDataPointerTable (see data/pokedex/entry_pointers.asm)
+; - CryHeaders (see data/pokemon/cry_headers.asm)
+; - BaseData (see data/pokemon/base_stats.asm)
+; - EggMovePointers (see data/pokemon/egg_move_pointers.asm)
+; - EvosAttacksPointers (see data/pokemon/evos_attacks_pointers.asm)
+; - PokemonNames (see data/pokemon/pokemon_names.asm)
+; - PokedexDataPointerTable (see data/pokemon/dex_entry_pointers.asm)
; - AnimationPointers (see gfx/pics/anim_pointers.asm)
; - BitmasksPointers (see gfx/pics/bitmask_pointers.asm)
; - AnimationExtraPointers (see gfx/pics/extra_pointers.asm)
; - FramesPointers (see gfx/pics/frame_pointers.asm)
; - PokemonPalettes (see gfx/pics/palette_pointers.asm)
; - PicPointers (see gfx/pics/pic_pointers.asm)
-; - AlphabeticalPokedexOrder (see data/pokedex/order_alpha.asm)
-; - NewPokedexOrder (see data/pokedex/order_new.asm)
-; - MonMenuIcons (see data/mon_menu_icons.asm)
-; - Pokered_MonIndices (see engine/time_capsule/conversion.asm)
-; - SortedPokemon (see misc/fixed_words.asm)
+; - AlphabeticalPokedexOrder (see data/pokemon/dex_order_alpha.asm)
+; - NewPokedexOrder (see data/pokemon/dex_order_new.asm)
+; - MonMenuIcons (see data/pokemon/menu_icons.asm)
+; - Pokered_MonIndices (see data/time_capsule/mon_order.asm)
+; - SortedPokemon (see mobile/fixed_words.asm)
const_value set 1
const BULBASAUR ; 01
const IVYSAUR ; 02
diff --git a/constants/pokemon_data_constants.asm b/constants/pokemon_data_constants.asm
index 3c6b77206..4093adfa9 100644
--- a/constants/pokemon_data_constants.asm
+++ b/constants/pokemon_data_constants.asm
@@ -1,4 +1,4 @@
-; base data struct members (see data/base_stats/*.asm)
+; base data struct members (see data/pokemon/base_stats/*.asm)
BASE_DEX_NO EQUS "(BaseDexNo - CurBaseData)"
BASE_STATS EQUS "(BaseStats - CurBaseData)"
BASE_HP EQUS "(BaseHP - CurBaseData)"
@@ -25,8 +25,17 @@ BASE_EGG_GROUPS EQUS "(BaseEggGroups - CurBaseData)"
BASE_TMHM EQUS "(BaseTMHM - CurBaseData)"
BASE_DATA_SIZE EQUS "(CurBaseDataEnd - CurBaseData)"
+; gender ratio constants
+GENDER_F0 EQU 0 percent
+GENDER_F12_5 EQU 31 ; 12.5 percent
+GENDER_F25 EQU 25 percent
+GENDER_F50 EQU 50 percent
+GENDER_F75 EQU 75 percent
+GENDER_F100 EQU 254 ; 100 percent
+GENDERLESS EQU 255
+
; BaseGrowthRate values
-; GrowthRates indexes (see main.asm)
+; GrowthRates indexes (see data/growth_rates.asm)
const_def
const MEDIUM_FAST
const SLIGHTLY_FAST
@@ -136,7 +145,7 @@ PARTY_LENGTH EQU 6
const ICON_BIGMON
-; evolution types (used in data/evos_attacks.asm)
+; evolution types (used in data/pokemon/evos_attacks.asm)
const_value SET 1
const EVOLVE_LEVEL
const EVOLVE_ITEM
diff --git a/constants/std_constants.asm b/constants/std_constants.asm
index 0667f020f..21fb6791f 100644
--- a/constants/std_constants.asm
+++ b/constants/std_constants.asm
@@ -1,5 +1,5 @@
; StdScripts indexes (see engine/std_scripts.asm)
-; also used in CheckFacingTileForStd (see main.asm)
+; also used in TileCollisionStdScripts (see data/collision_stdscripts.asm)
enum_start
enum pokecenternurse
enum difficultbookshelf
diff --git a/constants/trainer_constants.asm b/constants/trainer_constants.asm
index 49a0df454..f2fb72714 100644
--- a/constants/trainer_constants.asm
+++ b/constants/trainer_constants.asm
@@ -1,11 +1,17 @@
+trainerclass: MACRO
+ enum \1
+const_value = 1
+ENDM
+
; trainer class ids
; `trainerclass` indexes are for:
-; - TrainerClassAttributes (see trainers/attributes.asm)
-; - TrainerClassDVs (see trainers/dvs.asm)
-; - TrainerEncounterMusic (see trainers/encounter_music.asm)
-; - TrainerGroups (see trainers/trainer_pointers.asm)
-; - BTTrainerClassGenders (see misc/battle_tower_47.asm)
-; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see trainers/trainers.asm)
+; - TrainerClassAttributes (see data/trainers/trainer_attributes.asm)
+; - TrainerClassDVs (see data/trainers/trainer_dvs.asm)
+; - TrainerClassNames (see data/trainers/trainer_class_names.asm)
+; - TrainerEncounterMusic (see data/trainers/encounter_music.asm)
+; - TrainerGroups (see data/trainers/party_pointers.asm)
+; - BTTrainerClassGenders (see data/trainers/gendered_trainers.asm)
+; trainer constants are Trainers indexes, for the sub-tables of TrainerGroups (see data/trainers/parties.asm)
enum_start
CHRIS EQU __enum__
trainerclass TRAINER_NONE ; 0
@@ -672,7 +678,7 @@ KRIS EQU __enum__
NUM_TRAINER_CLASSES EQU __enum__
-; TrainerClassAttributes fields (see trainers/attributes.asm)
+; TrainerClassAttributes fields (see data/trainers/trainer_attributes.asm)
const_def
const TRNATTR_ITEM1
const TRNATTR_ITEM2
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index 23692fdef..c8c49621e 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -107,7 +107,7 @@ REGISTERED_NUMBER EQU %00111111
; PlayerState: ; d95d
PLAYER_NORMAL EQU 0
PLAYER_BIKE EQU 1
-PLAYER_SLIP EQU 2
+PLAYER_SKATE EQU 2
PLAYER_SURF EQU 4
PLAYER_SURF_PIKA EQU 8
diff --git a/data/base_stats.asm b/data/base_stats.asm
deleted file mode 100644
index 808a996a6..000000000
--- a/data/base_stats.asm
+++ /dev/null
@@ -1,252 +0,0 @@
-BaseData::
-INCLUDE "data/base_stats/bulbasaur.asm"
-INCLUDE "data/base_stats/ivysaur.asm"
-INCLUDE "data/base_stats/venusaur.asm"
-INCLUDE "data/base_stats/charmander.asm"
-INCLUDE "data/base_stats/charmeleon.asm"
-INCLUDE "data/base_stats/charizard.asm"
-INCLUDE "data/base_stats/squirtle.asm"
-INCLUDE "data/base_stats/wartortle.asm"
-INCLUDE "data/base_stats/blastoise.asm"
-INCLUDE "data/base_stats/caterpie.asm"
-INCLUDE "data/base_stats/metapod.asm"
-INCLUDE "data/base_stats/butterfree.asm"
-INCLUDE "data/base_stats/weedle.asm"
-INCLUDE "data/base_stats/kakuna.asm"
-INCLUDE "data/base_stats/beedrill.asm"
-INCLUDE "data/base_stats/pidgey.asm"
-INCLUDE "data/base_stats/pidgeotto.asm"
-INCLUDE "data/base_stats/pidgeot.asm"
-INCLUDE "data/base_stats/rattata.asm"
-INCLUDE "data/base_stats/raticate.asm"
-INCLUDE "data/base_stats/spearow.asm"
-INCLUDE "data/base_stats/fearow.asm"
-INCLUDE "data/base_stats/ekans.asm"
-INCLUDE "data/base_stats/arbok.asm"
-INCLUDE "data/base_stats/pikachu.asm"
-INCLUDE "data/base_stats/raichu.asm"
-INCLUDE "data/base_stats/sandshrew.asm"
-INCLUDE "data/base_stats/sandslash.asm"
-INCLUDE "data/base_stats/nidoran_f.asm"
-INCLUDE "data/base_stats/nidorina.asm"
-INCLUDE "data/base_stats/nidoqueen.asm"
-INCLUDE "data/base_stats/nidoran_m.asm"
-INCLUDE "data/base_stats/nidorino.asm"
-INCLUDE "data/base_stats/nidoking.asm"
-INCLUDE "data/base_stats/clefairy.asm"
-INCLUDE "data/base_stats/clefable.asm"
-INCLUDE "data/base_stats/vulpix.asm"
-INCLUDE "data/base_stats/ninetales.asm"
-INCLUDE "data/base_stats/jigglypuff.asm"
-INCLUDE "data/base_stats/wigglytuff.asm"
-INCLUDE "data/base_stats/zubat.asm"
-INCLUDE "data/base_stats/golbat.asm"
-INCLUDE "data/base_stats/oddish.asm"
-INCLUDE "data/base_stats/gloom.asm"
-INCLUDE "data/base_stats/vileplume.asm"
-INCLUDE "data/base_stats/paras.asm"
-INCLUDE "data/base_stats/parasect.asm"
-INCLUDE "data/base_stats/venonat.asm"
-INCLUDE "data/base_stats/venomoth.asm"
-INCLUDE "data/base_stats/diglett.asm"
-INCLUDE "data/base_stats/dugtrio.asm"
-INCLUDE "data/base_stats/meowth.asm"
-INCLUDE "data/base_stats/persian.asm"
-INCLUDE "data/base_stats/psyduck.asm"
-INCLUDE "data/base_stats/golduck.asm"
-INCLUDE "data/base_stats/mankey.asm"
-INCLUDE "data/base_stats/primeape.asm"
-INCLUDE "data/base_stats/growlithe.asm"
-INCLUDE "data/base_stats/arcanine.asm"
-INCLUDE "data/base_stats/poliwag.asm"
-INCLUDE "data/base_stats/poliwhirl.asm"
-INCLUDE "data/base_stats/poliwrath.asm"
-INCLUDE "data/base_stats/abra.asm"
-INCLUDE "data/base_stats/kadabra.asm"
-INCLUDE "data/base_stats/alakazam.asm"
-INCLUDE "data/base_stats/machop.asm"
-INCLUDE "data/base_stats/machoke.asm"
-INCLUDE "data/base_stats/machamp.asm"
-INCLUDE "data/base_stats/bellsprout.asm"
-INCLUDE "data/base_stats/weepinbell.asm"
-INCLUDE "data/base_stats/victreebel.asm"
-INCLUDE "data/base_stats/tentacool.asm"
-INCLUDE "data/base_stats/tentacruel.asm"
-INCLUDE "data/base_stats/geodude.asm"
-INCLUDE "data/base_stats/graveler.asm"
-INCLUDE "data/base_stats/golem.asm"
-INCLUDE "data/base_stats/ponyta.asm"
-INCLUDE "data/base_stats/rapidash.asm"
-INCLUDE "data/base_stats/slowpoke.asm"
-INCLUDE "data/base_stats/slowbro.asm"
-INCLUDE "data/base_stats/magnemite.asm"
-INCLUDE "data/base_stats/magneton.asm"
-INCLUDE "data/base_stats/farfetch_d.asm"
-INCLUDE "data/base_stats/doduo.asm"
-INCLUDE "data/base_stats/dodrio.asm"
-INCLUDE "data/base_stats/seel.asm"
-INCLUDE "data/base_stats/dewgong.asm"
-INCLUDE "data/base_stats/grimer.asm"
-INCLUDE "data/base_stats/muk.asm"
-INCLUDE "data/base_stats/shellder.asm"
-INCLUDE "data/base_stats/cloyster.asm"
-INCLUDE "data/base_stats/gastly.asm"
-INCLUDE "data/base_stats/haunter.asm"
-INCLUDE "data/base_stats/gengar.asm"
-INCLUDE "data/base_stats/onix.asm"
-INCLUDE "data/base_stats/drowzee.asm"
-INCLUDE "data/base_stats/hypno.asm"
-INCLUDE "data/base_stats/krabby.asm"
-INCLUDE "data/base_stats/kingler.asm"
-INCLUDE "data/base_stats/voltorb.asm"
-INCLUDE "data/base_stats/electrode.asm"
-INCLUDE "data/base_stats/exeggcute.asm"
-INCLUDE "data/base_stats/exeggutor.asm"
-INCLUDE "data/base_stats/cubone.asm"
-INCLUDE "data/base_stats/marowak.asm"
-INCLUDE "data/base_stats/hitmonlee.asm"
-INCLUDE "data/base_stats/hitmonchan.asm"
-INCLUDE "data/base_stats/lickitung.asm"
-INCLUDE "data/base_stats/koffing.asm"
-INCLUDE "data/base_stats/weezing.asm"
-INCLUDE "data/base_stats/rhyhorn.asm"
-INCLUDE "data/base_stats/rhydon.asm"
-INCLUDE "data/base_stats/chansey.asm"
-INCLUDE "data/base_stats/tangela.asm"
-INCLUDE "data/base_stats/kangaskhan.asm"
-INCLUDE "data/base_stats/horsea.asm"
-INCLUDE "data/base_stats/seadra.asm"
-INCLUDE "data/base_stats/goldeen.asm"
-INCLUDE "data/base_stats/seaking.asm"
-INCLUDE "data/base_stats/staryu.asm"
-INCLUDE "data/base_stats/starmie.asm"
-INCLUDE "data/base_stats/mr__mime.asm"
-INCLUDE "data/base_stats/scyther.asm"
-INCLUDE "data/base_stats/jynx.asm"
-INCLUDE "data/base_stats/electabuzz.asm"
-INCLUDE "data/base_stats/magmar.asm"
-INCLUDE "data/base_stats/pinsir.asm"
-INCLUDE "data/base_stats/tauros.asm"
-INCLUDE "data/base_stats/magikarp.asm"
-INCLUDE "data/base_stats/gyarados.asm"
-INCLUDE "data/base_stats/lapras.asm"
-INCLUDE "data/base_stats/ditto.asm"
-INCLUDE "data/base_stats/eevee.asm"
-INCLUDE "data/base_stats/vaporeon.asm"
-INCLUDE "data/base_stats/jolteon.asm"
-INCLUDE "data/base_stats/flareon.asm"
-INCLUDE "data/base_stats/porygon.asm"
-INCLUDE "data/base_stats/omanyte.asm"
-INCLUDE "data/base_stats/omastar.asm"
-INCLUDE "data/base_stats/kabuto.asm"
-INCLUDE "data/base_stats/kabutops.asm"
-INCLUDE "data/base_stats/aerodactyl.asm"
-INCLUDE "data/base_stats/snorlax.asm"
-INCLUDE "data/base_stats/articuno.asm"
-INCLUDE "data/base_stats/zapdos.asm"
-INCLUDE "data/base_stats/moltres.asm"
-INCLUDE "data/base_stats/dratini.asm"
-INCLUDE "data/base_stats/dragonair.asm"
-INCLUDE "data/base_stats/dragonite.asm"
-INCLUDE "data/base_stats/mewtwo.asm"
-INCLUDE "data/base_stats/mew.asm"
-INCLUDE "data/base_stats/chikorita.asm"
-INCLUDE "data/base_stats/bayleef.asm"
-INCLUDE "data/base_stats/meganium.asm"
-INCLUDE "data/base_stats/cyndaquil.asm"
-INCLUDE "data/base_stats/quilava.asm"
-INCLUDE "data/base_stats/typhlosion.asm"
-INCLUDE "data/base_stats/totodile.asm"
-INCLUDE "data/base_stats/croconaw.asm"
-INCLUDE "data/base_stats/feraligatr.asm"
-INCLUDE "data/base_stats/sentret.asm"
-INCLUDE "data/base_stats/furret.asm"
-INCLUDE "data/base_stats/hoothoot.asm"
-INCLUDE "data/base_stats/noctowl.asm"
-INCLUDE "data/base_stats/ledyba.asm"
-INCLUDE "data/base_stats/ledian.asm"
-INCLUDE "data/base_stats/spinarak.asm"
-INCLUDE "data/base_stats/ariados.asm"
-INCLUDE "data/base_stats/crobat.asm"
-INCLUDE "data/base_stats/chinchou.asm"
-INCLUDE "data/base_stats/lanturn.asm"
-INCLUDE "data/base_stats/pichu.asm"
-INCLUDE "data/base_stats/cleffa.asm"
-INCLUDE "data/base_stats/igglybuff.asm"
-INCLUDE "data/base_stats/togepi.asm"
-INCLUDE "data/base_stats/togetic.asm"
-INCLUDE "data/base_stats/natu.asm"
-INCLUDE "data/base_stats/xatu.asm"
-INCLUDE "data/base_stats/mareep.asm"
-INCLUDE "data/base_stats/flaaffy.asm"
-INCLUDE "data/base_stats/ampharos.asm"
-INCLUDE "data/base_stats/bellossom.asm"
-INCLUDE "data/base_stats/marill.asm"
-INCLUDE "data/base_stats/azumarill.asm"
-INCLUDE "data/base_stats/sudowoodo.asm"
-INCLUDE "data/base_stats/politoed.asm"
-INCLUDE "data/base_stats/hoppip.asm"
-INCLUDE "data/base_stats/skiploom.asm"
-INCLUDE "data/base_stats/jumpluff.asm"
-INCLUDE "data/base_stats/aipom.asm"
-INCLUDE "data/base_stats/sunkern.asm"
-INCLUDE "data/base_stats/sunflora.asm"
-INCLUDE "data/base_stats/yanma.asm"
-INCLUDE "data/base_stats/wooper.asm"
-INCLUDE "data/base_stats/quagsire.asm"
-INCLUDE "data/base_stats/espeon.asm"
-INCLUDE "data/base_stats/umbreon.asm"
-INCLUDE "data/base_stats/murkrow.asm"
-INCLUDE "data/base_stats/slowking.asm"
-INCLUDE "data/base_stats/misdreavus.asm"
-INCLUDE "data/base_stats/unown.asm"
-INCLUDE "data/base_stats/wobbuffet.asm"
-INCLUDE "data/base_stats/girafarig.asm"
-INCLUDE "data/base_stats/pineco.asm"
-INCLUDE "data/base_stats/forretress.asm"
-INCLUDE "data/base_stats/dunsparce.asm"
-INCLUDE "data/base_stats/gligar.asm"
-INCLUDE "data/base_stats/steelix.asm"
-INCLUDE "data/base_stats/snubbull.asm"
-INCLUDE "data/base_stats/granbull.asm"
-INCLUDE "data/base_stats/qwilfish.asm"
-INCLUDE "data/base_stats/scizor.asm"
-INCLUDE "data/base_stats/shuckle.asm"
-INCLUDE "data/base_stats/heracross.asm"
-INCLUDE "data/base_stats/sneasel.asm"
-INCLUDE "data/base_stats/teddiursa.asm"
-INCLUDE "data/base_stats/ursaring.asm"
-INCLUDE "data/base_stats/slugma.asm"
-INCLUDE "data/base_stats/magcargo.asm"
-INCLUDE "data/base_stats/swinub.asm"
-INCLUDE "data/base_stats/piloswine.asm"
-INCLUDE "data/base_stats/corsola.asm"
-INCLUDE "data/base_stats/remoraid.asm"
-INCLUDE "data/base_stats/octillery.asm"
-INCLUDE "data/base_stats/delibird.asm"
-INCLUDE "data/base_stats/mantine.asm"
-INCLUDE "data/base_stats/skarmory.asm"
-INCLUDE "data/base_stats/houndour.asm"
-INCLUDE "data/base_stats/houndoom.asm"
-INCLUDE "data/base_stats/kingdra.asm"
-INCLUDE "data/base_stats/phanpy.asm"
-INCLUDE "data/base_stats/donphan.asm"
-INCLUDE "data/base_stats/porygon2.asm"
-INCLUDE "data/base_stats/stantler.asm"
-INCLUDE "data/base_stats/smeargle.asm"
-INCLUDE "data/base_stats/tyrogue.asm"
-INCLUDE "data/base_stats/hitmontop.asm"
-INCLUDE "data/base_stats/smoochum.asm"
-INCLUDE "data/base_stats/elekid.asm"
-INCLUDE "data/base_stats/magby.asm"
-INCLUDE "data/base_stats/miltank.asm"
-INCLUDE "data/base_stats/blissey.asm"
-INCLUDE "data/base_stats/raikou.asm"
-INCLUDE "data/base_stats/entei.asm"
-INCLUDE "data/base_stats/suicune.asm"
-INCLUDE "data/base_stats/larvitar.asm"
-INCLUDE "data/base_stats/pupitar.asm"
-INCLUDE "data/base_stats/tyranitar.asm"
-INCLUDE "data/base_stats/lugia.asm"
-INCLUDE "data/base_stats/ho_oh.asm"
-INCLUDE "data/base_stats/celebi.asm"
diff --git a/data/base_stats/abra.asm b/data/base_stats/abra.asm
deleted file mode 100644
index f3a39edbb..000000000
--- a/data/base_stats/abra.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ABRA ; 063
-
- db 25, 20, 15, 90, 105, 55
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 200 ; catch rate
- db 73 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/abra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/aerodactyl.asm b/data/base_stats/aerodactyl.asm
deleted file mode 100644
index 56530206c..000000000
--- a/data/base_stats/aerodactyl.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db AERODACTYL ; 142
-
- db 80, 105, 65, 130, 60, 75
- ; hp atk def spd sat sdf
-
- db ROCK, FLYING
- db 45 ; catch rate
- db 202 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/aerodactyl/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLAMETHROWER
- ; end
diff --git a/data/base_stats/aipom.asm b/data/base_stats/aipom.asm
deleted file mode 100644
index aa9ca45a1..000000000
--- a/data/base_stats/aipom.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db AIPOM ; 190
-
- db 55, 70, 55, 85, 40, 55
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 94 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/aipom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, STRENGTH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/alakazam.asm b/data/base_stats/alakazam.asm
deleted file mode 100644
index 79e2e99ee..000000000
--- a/data/base_stats/alakazam.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ALAKAZAM ; 065
-
- db 55, 50, 45, 120, 135, 85
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 50 ; catch rate
- db 186 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/alakazam/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/ampharos.asm b/data/base_stats/ampharos.asm
deleted file mode 100644
index a0a2c48f7..000000000
--- a/data/base_stats/ampharos.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db AMPHAROS ; 181
-
- db 90, 75, 75, 55, 115, 90
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 194 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ampharos/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/arbok.asm b/data/base_stats/arbok.asm
deleted file mode 100644
index 48129fc36..000000000
--- a/data/base_stats/arbok.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ARBOK ; 024
-
- db 60, 85, 69, 80, 65, 79
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 90 ; catch rate
- db 147 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/arbok/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
- ; end
diff --git a/data/base_stats/arcanine.asm b/data/base_stats/arcanine.asm
deleted file mode 100644
index 81452dd19..000000000
--- a/data/base_stats/arcanine.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ARCANINE ; 059
-
- db 90, 110, 80, 95, 100, 80
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 75 ; catch rate
- db 213 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/arcanine/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/ariados.asm b/data/base_stats/ariados.asm
deleted file mode 100644
index 244c70d86..000000000
--- a/data/base_stats/ariados.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ARIADOS ; 168
-
- db 70, 90, 70, 40, 60, 60
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 90 ; catch rate
- db 134 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ariados/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
- ; end
diff --git a/data/base_stats/articuno.asm b/data/base_stats/articuno.asm
deleted file mode 100644
index 320e210c6..000000000
--- a/data/base_stats/articuno.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ARTICUNO ; 144
-
- db 90, 85, 100, 85, 95, 125
- ; hp atk def spd sat sdf
-
- db ICE, FLYING
- db 3 ; catch rate
- db 215 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/articuno/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, ICE_BEAM
- ; end
diff --git a/data/base_stats/azumarill.asm b/data/base_stats/azumarill.asm
deleted file mode 100644
index c18e517c4..000000000
--- a/data/base_stats/azumarill.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db AZUMARILL ; 184
-
- db 100, 50, 80, 50, 50, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 153 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/azumarill/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/bayleef.asm b/data/base_stats/bayleef.asm
deleted file mode 100644
index bb439ccd3..000000000
--- a/data/base_stats/bayleef.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BAYLEEF ; 153
-
- db 60, 62, 80, 60, 63, 80
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 141 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bayleef/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
- ; end
diff --git a/data/base_stats/beedrill.asm b/data/base_stats/beedrill.asm
deleted file mode 100644
index 465b076de..000000000
--- a/data/base_stats/beedrill.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BEEDRILL ; 015
-
- db 65, 80, 40, 75, 45, 80
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 45 ; catch rate
- db 159 ; base exp
- db NO_ITEM ; item 1
- db POISON_BARB ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/beedrill/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, FURY_CUTTER, CUT
- ; end
diff --git a/data/base_stats/bellossom.asm b/data/base_stats/bellossom.asm
deleted file mode 100644
index 6489fe50c..000000000
--- a/data/base_stats/bellossom.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BELLOSSOM ; 182
-
- db 75, 80, 85, 50, 90, 100
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 184 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bellossom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/bellsprout.asm b/data/base_stats/bellsprout.asm
deleted file mode 100644
index d8e3160e6..000000000
--- a/data/base_stats/bellsprout.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BELLSPROUT ; 069
-
- db 50, 75, 35, 40, 70, 30
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 255 ; catch rate
- db 84 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bellsprout/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/blastoise.asm b/data/base_stats/blastoise.asm
deleted file mode 100644
index 1a2df93b3..000000000
--- a/data/base_stats/blastoise.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BLASTOISE ; 009
-
- db 79, 83, 100, 78, 85, 105
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 210 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/blastoise/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/blissey.asm b/data/base_stats/blissey.asm
deleted file mode 100644
index d9c870da4..000000000
--- a/data/base_stats/blissey.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BLISSEY ; 242
-
- db 255, 10, 10, 55, 75, 135
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 30 ; catch rate
- db 255 ; base exp
- db NO_ITEM ; item 1
- db LUCKY_EGG ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/blissey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/bulbasaur.asm b/data/base_stats/bulbasaur.asm
deleted file mode 100644
index eb4bec3f6..000000000
--- a/data/base_stats/bulbasaur.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BULBASAUR ; 001
-
- db 45, 49, 49, 45, 65, 65
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/bulbasaur/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
- ; end
diff --git a/data/base_stats/butterfree.asm b/data/base_stats/butterfree.asm
deleted file mode 100644
index ca1609d1e..000000000
--- a/data/base_stats/butterfree.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db BUTTERFREE ; 012
-
- db 60, 45, 50, 70, 80, 80
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 45 ; catch rate
- db 160 ; base exp
- db NO_ITEM ; item 1
- db SILVERPOWDER ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/butterfree/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/caterpie.asm b/data/base_stats/caterpie.asm
deleted file mode 100644
index 47e0b5210..000000000
--- a/data/base_stats/caterpie.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CATERPIE ; 010
-
- db 45, 30, 35, 45, 20, 20
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 255 ; catch rate
- db 53 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/caterpie/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/celebi.asm b/data/base_stats/celebi.asm
deleted file mode 100644
index 2a09691bd..000000000
--- a/data/base_stats/celebi.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CELEBI ; 251
-
- db 100, 100, 100, 100, 100, 100
- ; hp atk def spd sat sdf
-
- db PSYCHIC, GRASS
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db MIRACLEBERRY ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/celebi/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/chansey.asm b/data/base_stats/chansey.asm
deleted file mode 100644
index 2ba6091f9..000000000
--- a/data/base_stats/chansey.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CHANSEY ; 113
-
- db 250, 05, 05, 50, 35, 105
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 30 ; catch rate
- db 255 ; base exp
- db NO_ITEM ; item 1
- db LUCKY_EGG ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/chansey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/charizard.asm b/data/base_stats/charizard.asm
deleted file mode 100644
index d8b1ee769..000000000
--- a/data/base_stats/charizard.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CHARIZARD ; 006
-
- db 78, 84, 78, 100, 109, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FLYING
- db 45 ; catch rate
- db 209 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/charizard/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, CUT, FLY, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/charmander.asm b/data/base_stats/charmander.asm
deleted file mode 100644
index ba6822529..000000000
--- a/data/base_stats/charmander.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CHARMANDER ; 004
-
- db 39, 52, 43, 65, 60, 50
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 65 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/charmander/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/charmeleon.asm b/data/base_stats/charmeleon.asm
deleted file mode 100644
index 0be9be06f..000000000
--- a/data/base_stats/charmeleon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CHARMELEON ; 005
-
- db 58, 64, 58, 80, 80, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 142 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/charmeleon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/chikorita.asm b/data/base_stats/chikorita.asm
deleted file mode 100644
index 74f77ae8f..000000000
--- a/data/base_stats/chikorita.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CHIKORITA ; 152
-
- db 45, 49, 65, 45, 49, 65
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/chikorita/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/chinchou.asm b/data/base_stats/chinchou.asm
deleted file mode 100644
index 13fb43872..000000000
--- a/data/base_stats/chinchou.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CHINCHOU ; 170
-
- db 75, 38, 38, 67, 56, 56
- ; hp atk def spd sat sdf
-
- db WATER, ELECTRIC
- db 190 ; catch rate
- db 90 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/chinchou/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/clefable.asm b/data/base_stats/clefable.asm
deleted file mode 100644
index ffa07d9dc..000000000
--- a/data/base_stats/clefable.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CLEFABLE ; 036
-
- db 95, 70, 73, 60, 85, 90
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 25 ; catch rate
- db 129 ; base exp
- db MYSTERYBERRY ; item 1
- db MOON_STONE ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/clefable/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/clefairy.asm b/data/base_stats/clefairy.asm
deleted file mode 100644
index ee1f38d04..000000000
--- a/data/base_stats/clefairy.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CLEFAIRY ; 035
-
- db 70, 45, 48, 35, 60, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 150 ; catch rate
- db 68 ; base exp
- db MYSTERYBERRY ; item 1
- db MOON_STONE ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/clefairy/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/cleffa.asm b/data/base_stats/cleffa.asm
deleted file mode 100644
index 3afb4c6c6..000000000
--- a/data/base_stats/cleffa.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CLEFFA ; 173
-
- db 50, 25, 28, 15, 45, 55
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 150 ; catch rate
- db 37 ; base exp
- db MYSTERYBERRY ; item 1
- db MOON_STONE ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cleffa/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/cloyster.asm b/data/base_stats/cloyster.asm
deleted file mode 100644
index f7de0467d..000000000
--- a/data/base_stats/cloyster.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CLOYSTER ; 091
-
- db 50, 95, 180, 70, 85, 45
- ; hp atk def spd sat sdf
-
- db WATER, ICE
- db 60 ; catch rate
- db 203 ; base exp
- db PEARL ; item 1
- db BIG_PEARL ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cloyster/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/corsola.asm b/data/base_stats/corsola.asm
deleted file mode 100644
index 5a3adde57..000000000
--- a/data/base_stats/corsola.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CORSOLA ; 222
-
- db 55, 55, 85, 35, 65, 85
- ; hp atk def spd sat sdf
-
- db WATER, ROCK
- db 60 ; catch rate
- db 113 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/corsola/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/crobat.asm b/data/base_stats/crobat.asm
deleted file mode 100644
index 923ca38a9..000000000
--- a/data/base_stats/crobat.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CROBAT ; 169
-
- db 85, 90, 80, 130, 70, 80
- ; hp atk def spd sat sdf
-
- db POISON, FLYING
- db 90 ; catch rate
- db 204 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/crobat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/croconaw.asm b/data/base_stats/croconaw.asm
deleted file mode 100644
index 66fb9f10c..000000000
--- a/data/base_stats/croconaw.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CROCONAW ; 159
-
- db 65, 80, 80, 58, 59, 63
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 143 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/croconaw/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/cubone.asm b/data/base_stats/cubone.asm
deleted file mode 100644
index 7c8d32d82..000000000
--- a/data/base_stats/cubone.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CUBONE ; 104
-
- db 50, 50, 95, 35, 40, 50
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 190 ; catch rate
- db 87 ; base exp
- db NO_ITEM ; item 1
- db THICK_CLUB ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cubone/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
- ; end
diff --git a/data/base_stats/cyndaquil.asm b/data/base_stats/cyndaquil.asm
deleted file mode 100644
index b1f294907..000000000
--- a/data/base_stats/cyndaquil.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db CYNDAQUIL ; 155
-
- db 39, 52, 43, 65, 60, 50
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 65 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/cyndaquil/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/delibird.asm b/data/base_stats/delibird.asm
deleted file mode 100644
index 139bfb66b..000000000
--- a/data/base_stats/delibird.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DELIBIRD ; 225
-
- db 45, 55, 45, 75, 65, 45
- ; hp atk def spd sat sdf
-
- db ICE, FLYING
- db 45 ; catch rate
- db 183 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/delibird/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLY, ICE_BEAM
- ; end
diff --git a/data/base_stats/dewgong.asm b/data/base_stats/dewgong.asm
deleted file mode 100644
index e73de86b3..000000000
--- a/data/base_stats/dewgong.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DEWGONG ; 087
-
- db 90, 70, 80, 70, 70, 95
- ; hp atk def spd sat sdf
-
- db WATER, ICE
- db 75 ; catch rate
- db 176 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dewgong/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/diglett.asm b/data/base_stats/diglett.asm
deleted file mode 100644
index 9e9005114..000000000
--- a/data/base_stats/diglett.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DIGLETT ; 050
-
- db 10, 55, 25, 95, 35, 45
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 255 ; catch rate
- db 81 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/diglett/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
- ; end
diff --git a/data/base_stats/ditto.asm b/data/base_stats/ditto.asm
deleted file mode 100644
index 6cbbe60ca..000000000
--- a/data/base_stats/ditto.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DITTO ; 132
-
- db 48, 48, 48, 48, 48, 48
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 35 ; catch rate
- db 61 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ditto/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn LADIES_MAN, LADIES_MAN ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/dodrio.asm b/data/base_stats/dodrio.asm
deleted file mode 100644
index dd96b10aa..000000000
--- a/data/base_stats/dodrio.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DODRIO ; 085
-
- db 60, 110, 70, 100, 60, 60
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 45 ; catch rate
- db 158 ; base exp
- db NO_ITEM ; item 1
- db SHARP_BEAK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dodrio/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/doduo.asm b/data/base_stats/doduo.asm
deleted file mode 100644
index 02c1e792a..000000000
--- a/data/base_stats/doduo.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DODUO ; 084
-
- db 35, 85, 45, 75, 35, 35
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 190 ; catch rate
- db 96 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/doduo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/donphan.asm b/data/base_stats/donphan.asm
deleted file mode 100644
index 6e66787e1..000000000
--- a/data/base_stats/donphan.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DONPHAN ; 232
-
- db 90, 120, 120, 50, 60, 60
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 60 ; catch rate
- db 189 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/donphan/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
diff --git a/data/base_stats/dragonair.asm b/data/base_stats/dragonair.asm
deleted file mode 100644
index 621b50d51..000000000
--- a/data/base_stats/dragonair.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DRAGONAIR ; 148
-
- db 61, 84, 65, 70, 70, 70
- ; hp atk def spd sat sdf
-
- db DRAGON, DRAGON
- db 45 ; catch rate
- db 144 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dragonair/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/dragonite.asm b/data/base_stats/dragonite.asm
deleted file mode 100644
index 83bbbb3eb..000000000
--- a/data/base_stats/dragonite.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DRAGONITE ; 149
-
- db 91, 134, 95, 80, 100, 100
- ; hp atk def spd sat sdf
-
- db DRAGON, FLYING
- db 45 ; catch rate
- db 218 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dragonite/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/dratini.asm b/data/base_stats/dratini.asm
deleted file mode 100644
index f9cf27faf..000000000
--- a/data/base_stats/dratini.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DRATINI ; 147
-
- db 41, 64, 45, 50, 50, 50
- ; hp atk def spd sat sdf
-
- db DRAGON, DRAGON
- db 45 ; catch rate
- db 67 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dratini/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/drowzee.asm b/data/base_stats/drowzee.asm
deleted file mode 100644
index 04d7780bb..000000000
--- a/data/base_stats/drowzee.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DROWZEE ; 096
-
- db 60, 48, 45, 42, 43, 90
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 190 ; catch rate
- db 102 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/drowzee/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/dugtrio.asm b/data/base_stats/dugtrio.asm
deleted file mode 100644
index 402cc6c03..000000000
--- a/data/base_stats/dugtrio.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DUGTRIO ; 051
-
- db 35, 80, 50, 120, 50, 70
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 50 ; catch rate
- db 153 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dugtrio/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
- ; end
diff --git a/data/base_stats/dunsparce.asm b/data/base_stats/dunsparce.asm
deleted file mode 100644
index e3ed6a9df..000000000
--- a/data/base_stats/dunsparce.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db DUNSPARCE ; 206
-
- db 100, 70, 70, 45, 65, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 190 ; catch rate
- db 75 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/dunsparce/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER, THUNDERBOLT
- ; end
diff --git a/data/base_stats/eevee.asm b/data/base_stats/eevee.asm
deleted file mode 100644
index 44584c15d..000000000
--- a/data/base_stats/eevee.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db EEVEE ; 133
-
- db 55, 55, 50, 55, 45, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 92 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/eevee/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT
- ; end
diff --git a/data/base_stats/ekans.asm b/data/base_stats/ekans.asm
deleted file mode 100644
index 0876d169a..000000000
--- a/data/base_stats/ekans.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db EKANS ; 023
-
- db 35, 60, 44, 55, 40, 54
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 255 ; catch rate
- db 62 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ekans/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
- ; end
diff --git a/data/base_stats/electabuzz.asm b/data/base_stats/electabuzz.asm
deleted file mode 100644
index 7b690eae2..000000000
--- a/data/base_stats/electabuzz.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ELECTABUZZ ; 125
-
- db 65, 83, 57, 105, 95, 85
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 156 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/electabuzz/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/electrode.asm b/data/base_stats/electrode.asm
deleted file mode 100644
index 3c2895384..000000000
--- a/data/base_stats/electrode.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ELECTRODE ; 101
-
- db 60, 50, 70, 140, 80, 80
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 60 ; catch rate
- db 150 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/electrode/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/elekid.asm b/data/base_stats/elekid.asm
deleted file mode 100644
index 9fae865c6..000000000
--- a/data/base_stats/elekid.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ELEKID ; 239
-
- db 45, 63, 37, 95, 65, 55
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 106 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/elekid/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/entei.asm b/data/base_stats/entei.asm
deleted file mode 100644
index c05954720..000000000
--- a/data/base_stats/entei.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ENTEI ; 244
-
- db 115, 115, 85, 100, 90, 75
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 3 ; catch rate
- db 217 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/entei/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/espeon.asm b/data/base_stats/espeon.asm
deleted file mode 100644
index deebb0902..000000000
--- a/data/base_stats/espeon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ESPEON ; 196
-
- db 65, 65, 60, 110, 130, 95
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 197 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/espeon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
- ; end
diff --git a/data/base_stats/exeggcute.asm b/data/base_stats/exeggcute.asm
deleted file mode 100644
index 95daf462b..000000000
--- a/data/base_stats/exeggcute.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db EXEGGCUTE ; 102
-
- db 60, 40, 80, 40, 60, 45
- ; hp atk def spd sat sdf
-
- db GRASS, PSYCHIC
- db 90 ; catch rate
- db 98 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/exeggcute/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
- ; end
diff --git a/data/base_stats/exeggutor.asm b/data/base_stats/exeggutor.asm
deleted file mode 100644
index d7561e6eb..000000000
--- a/data/base_stats/exeggutor.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db EXEGGUTOR ; 103
-
- db 95, 95, 85, 55, 125, 65
- ; hp atk def spd sat sdf
-
- db GRASS, PSYCHIC
- db 45 ; catch rate
- db 212 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/exeggutor/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
- ; end
diff --git a/data/base_stats/farfetch_d.asm b/data/base_stats/farfetch_d.asm
deleted file mode 100644
index 2ab5fb9e8..000000000
--- a/data/base_stats/farfetch_d.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db FARFETCH_D ; 083
-
- db 52, 65, 55, 60, 58, 62
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 45 ; catch rate
- db 94 ; base exp
- db NO_ITEM ; item 1
- db STICK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/farfetch_d/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
- ; end
diff --git a/data/base_stats/fearow.asm b/data/base_stats/fearow.asm
deleted file mode 100644
index 6cb670332..000000000
--- a/data/base_stats/fearow.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db FEAROW ; 022
-
- db 65, 90, 65, 100, 61, 61
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 90 ; catch rate
- db 162 ; base exp
- db NO_ITEM ; item 1
- db SHARP_BEAK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/fearow/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/feraligatr.asm b/data/base_stats/feraligatr.asm
deleted file mode 100644
index 758fdb1da..000000000
--- a/data/base_stats/feraligatr.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db FERALIGATR ; 160
-
- db 85, 105, 100, 78, 79, 83
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 210 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/feraligatr/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/flaaffy.asm b/data/base_stats/flaaffy.asm
deleted file mode 100644
index 936ee3b1d..000000000
--- a/data/base_stats/flaaffy.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db FLAAFFY ; 180
-
- db 70, 55, 55, 45, 80, 60
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 120 ; catch rate
- db 117 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/flaaffy/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/flareon.asm b/data/base_stats/flareon.asm
deleted file mode 100644
index 345b9a385..000000000
--- a/data/base_stats/flareon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db FLAREON ; 136
-
- db 65, 130, 60, 65, 95, 110
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 198 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/flareon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/forretress.asm b/data/base_stats/forretress.asm
deleted file mode 100644
index ab36e1827..000000000
--- a/data/base_stats/forretress.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db FORRETRESS ; 205
-
- db 75, 90, 140, 40, 60, 60
- ; hp atk def spd sat sdf
-
- db BUG, STEEL
- db 75 ; catch rate
- db 118 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/forretress/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
diff --git a/data/base_stats/furret.asm b/data/base_stats/furret.asm
deleted file mode 100644
index 75180036c..000000000
--- a/data/base_stats/furret.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db FURRET ; 162
-
- db 85, 76, 64, 90, 45, 55
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 90 ; catch rate
- db 116 ; base exp
- db BERRY ; item 1
- db GOLD_BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/furret/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF, STRENGTH
- ; end
diff --git a/data/base_stats/gastly.asm b/data/base_stats/gastly.asm
deleted file mode 100644
index dcec2fdca..000000000
--- a/data/base_stats/gastly.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GASTLY ; 092
-
- db 30, 35, 30, 80, 100, 35
- ; hp atk def spd sat sdf
-
- db GHOST, POISON
- db 190 ; catch rate
- db 95 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gastly/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
diff --git a/data/base_stats/gengar.asm b/data/base_stats/gengar.asm
deleted file mode 100644
index 5fe8894ef..000000000
--- a/data/base_stats/gengar.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GENGAR ; 094
-
- db 60, 65, 60, 110, 130, 75
- ; hp atk def spd sat sdf
-
- db GHOST, POISON
- db 45 ; catch rate
- db 190 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gengar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, STRENGTH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/geodude.asm b/data/base_stats/geodude.asm
deleted file mode 100644
index 2b472bafc..000000000
--- a/data/base_stats/geodude.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GEODUDE ; 074
-
- db 40, 80, 100, 20, 30, 30
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 255 ; catch rate
- db 86 ; base exp
- db NO_ITEM ; item 1
- db EVERSTONE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/geodude/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/girafarig.asm b/data/base_stats/girafarig.asm
deleted file mode 100644
index 3180513f7..000000000
--- a/data/base_stats/girafarig.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GIRAFARIG ; 203
-
- db 70, 80, 65, 85, 90, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, PSYCHIC
- db 60 ; catch rate
- db 149 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/girafarig/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/gligar.asm b/data/base_stats/gligar.asm
deleted file mode 100644
index 3197e0203..000000000
--- a/data/base_stats/gligar.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GLIGAR ; 207
-
- db 65, 75, 105, 85, 35, 65
- ; hp atk def spd sat sdf
-
- db GROUND, FLYING
- db 60 ; catch rate
- db 108 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gligar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/gloom.asm b/data/base_stats/gloom.asm
deleted file mode 100644
index d67f73d54..000000000
--- a/data/base_stats/gloom.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GLOOM ; 044
-
- db 60, 65, 70, 40, 85, 75
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 120 ; catch rate
- db 132 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gloom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/golbat.asm b/data/base_stats/golbat.asm
deleted file mode 100644
index be69af4cf..000000000
--- a/data/base_stats/golbat.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GOLBAT ; 042
-
- db 75, 80, 70, 90, 65, 75
- ; hp atk def spd sat sdf
-
- db POISON, FLYING
- db 90 ; catch rate
- db 171 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/golbat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
- ; end
diff --git a/data/base_stats/goldeen.asm b/data/base_stats/goldeen.asm
deleted file mode 100644
index 3769ce1b6..000000000
--- a/data/base_stats/goldeen.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GOLDEEN ; 118
-
- db 45, 67, 60, 63, 35, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 111 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/goldeen/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/golduck.asm b/data/base_stats/golduck.asm
deleted file mode 100644
index b32d538b5..000000000
--- a/data/base_stats/golduck.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GOLDUCK ; 055
-
- db 80, 82, 78, 85, 95, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 174 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/golduck/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, FURY_CUTTER, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/golem.asm b/data/base_stats/golem.asm
deleted file mode 100644
index b8fb85054..000000000
--- a/data/base_stats/golem.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GOLEM ; 076
-
- db 80, 110, 130, 45, 55, 65
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 177 ; base exp
- db NO_ITEM ; item 1
- db EVERSTONE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/golem/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/granbull.asm b/data/base_stats/granbull.asm
deleted file mode 100644
index c2dcda517..000000000
--- a/data/base_stats/granbull.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GRANBULL ; 210
-
- db 90, 120, 75, 45, 60, 60
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 75 ; catch rate
- db 178 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/granbull/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/graveler.asm b/data/base_stats/graveler.asm
deleted file mode 100644
index 17e4e8905..000000000
--- a/data/base_stats/graveler.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GRAVELER ; 075
-
- db 55, 95, 115, 35, 45, 45
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 120 ; catch rate
- db 134 ; base exp
- db NO_ITEM ; item 1
- db EVERSTONE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/graveler/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/grimer.asm b/data/base_stats/grimer.asm
deleted file mode 100644
index 7fb64eb07..000000000
--- a/data/base_stats/grimer.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GRIMER ; 088
-
- db 80, 80, 50, 25, 40, 50
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 190 ; catch rate
- db 90 ; base exp
- db NO_ITEM ; item 1
- db NUGGET ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/grimer/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
- ; end
diff --git a/data/base_stats/growlithe.asm b/data/base_stats/growlithe.asm
deleted file mode 100644
index a5e8676f6..000000000
--- a/data/base_stats/growlithe.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GROWLITHE ; 058
-
- db 55, 70, 45, 60, 70, 50
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 91 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/growlithe/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/gyarados.asm b/data/base_stats/gyarados.asm
deleted file mode 100644
index 9b57391c5..000000000
--- a/data/base_stats/gyarados.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db GYARADOS ; 130
-
- db 95, 125, 79, 81, 60, 100
- ; hp atk def spd sat sdf
-
- db WATER, FLYING
- db 45 ; catch rate
- db 214 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 5 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/gyarados/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/haunter.asm b/data/base_stats/haunter.asm
deleted file mode 100644
index 76f18a739..000000000
--- a/data/base_stats/haunter.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HAUNTER ; 093
-
- db 45, 50, 45, 95, 115, 55
- ; hp atk def spd sat sdf
-
- db GHOST, POISON
- db 90 ; catch rate
- db 126 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/haunter/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
diff --git a/data/base_stats/heracross.asm b/data/base_stats/heracross.asm
deleted file mode 100644
index 5d625bf58..000000000
--- a/data/base_stats/heracross.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HERACROSS ; 214
-
- db 80, 125, 75, 85, 40, 95
- ; hp atk def spd sat sdf
-
- db BUG, FIGHTING
- db 45 ; catch rate
- db 200 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/heracross/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/hitmonchan.asm b/data/base_stats/hitmonchan.asm
deleted file mode 100644
index dbad48c61..000000000
--- a/data/base_stats/hitmonchan.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HITMONCHAN ; 107
-
- db 50, 105, 79, 76, 35, 110
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 140 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hitmonchan/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
- ; end
diff --git a/data/base_stats/hitmonlee.asm b/data/base_stats/hitmonlee.asm
deleted file mode 100644
index 2a7c5a553..000000000
--- a/data/base_stats/hitmonlee.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HITMONLEE ; 106
-
- db 50, 120, 53, 87, 35, 110
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 139 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hitmonlee/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
- ; end
diff --git a/data/base_stats/hitmontop.asm b/data/base_stats/hitmontop.asm
deleted file mode 100644
index b4e33a3ee..000000000
--- a/data/base_stats/hitmontop.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HITMONTOP ; 237
-
- db 50, 95, 95, 70, 35, 110
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 138 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hitmontop/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
- ; end
diff --git a/data/base_stats/ho_oh.asm b/data/base_stats/ho_oh.asm
deleted file mode 100644
index 5e58d46ae..000000000
--- a/data/base_stats/ho_oh.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HO_OH ; 250
-
- db 106, 130, 90, 90, 110, 154
- ; hp atk def spd sat sdf
-
- db FIRE, FLYING
- db 3 ; catch rate
- db 220 ; base exp
- db SACRED_ASH ; item 1
- db SACRED_ASH ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ho_oh/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT
- ; end
diff --git a/data/base_stats/hoothoot.asm b/data/base_stats/hoothoot.asm
deleted file mode 100644
index 1af3a01db..000000000
--- a/data/base_stats/hoothoot.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HOOTHOOT ; 163
-
- db 60, 30, 30, 50, 36, 56
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 255 ; catch rate
- db 58 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hoothoot/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
- ; end
diff --git a/data/base_stats/hoppip.asm b/data/base_stats/hoppip.asm
deleted file mode 100644
index ad2bb7a02..000000000
--- a/data/base_stats/hoppip.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HOPPIP ; 187
-
- db 35, 35, 40, 50, 35, 55
- ; hp atk def spd sat sdf
-
- db GRASS, FLYING
- db 255 ; catch rate
- db 74 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hoppip/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FAIRY, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
- ; end
diff --git a/data/base_stats/horsea.asm b/data/base_stats/horsea.asm
deleted file mode 100644
index 5a4e06b84..000000000
--- a/data/base_stats/horsea.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HORSEA ; 116
-
- db 30, 40, 70, 60, 70, 25
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 83 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/horsea/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/houndoom.asm b/data/base_stats/houndoom.asm
deleted file mode 100644
index 82271238c..000000000
--- a/data/base_stats/houndoom.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HOUNDOOM ; 229
-
- db 75, 90, 50, 95, 110, 80
- ; hp atk def spd sat sdf
-
- db DARK, FIRE
- db 45 ; catch rate
- db 204 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/houndoom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/houndour.asm b/data/base_stats/houndour.asm
deleted file mode 100644
index 6f97bd086..000000000
--- a/data/base_stats/houndour.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HOUNDOUR ; 228
-
- db 45, 60, 30, 65, 80, 50
- ; hp atk def spd sat sdf
-
- db DARK, FIRE
- db 120 ; catch rate
- db 114 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/houndour/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLAMETHROWER
- ; end
diff --git a/data/base_stats/hypno.asm b/data/base_stats/hypno.asm
deleted file mode 100644
index 1bf322d95..000000000
--- a/data/base_stats/hypno.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db HYPNO ; 097
-
- db 85, 73, 70, 67, 73, 115
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 75 ; catch rate
- db 165 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/hypno/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/igglybuff.asm b/data/base_stats/igglybuff.asm
deleted file mode 100644
index 1951f5aa0..000000000
--- a/data/base_stats/igglybuff.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db IGGLYBUFF ; 174
-
- db 90, 30, 15, 15, 40, 20
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 170 ; catch rate
- db 39 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/igglybuff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/ivysaur.asm b/data/base_stats/ivysaur.asm
deleted file mode 100644
index 032c2408c..000000000
--- a/data/base_stats/ivysaur.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db IVYSAUR ; 002
-
- db 60, 62, 63, 60, 80, 80
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 141 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ivysaur/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
- ; end
diff --git a/data/base_stats/jigglypuff.asm b/data/base_stats/jigglypuff.asm
deleted file mode 100644
index 66ab23227..000000000
--- a/data/base_stats/jigglypuff.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db JIGGLYPUFF ; 039
-
- db 115, 45, 20, 20, 45, 25
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 170 ; catch rate
- db 76 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jigglypuff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/jolteon.asm b/data/base_stats/jolteon.asm
deleted file mode 100644
index 3f956946a..000000000
--- a/data/base_stats/jolteon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db JOLTEON ; 135
-
- db 65, 65, 60, 130, 110, 95
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 45 ; catch rate
- db 197 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jolteon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/jumpluff.asm b/data/base_stats/jumpluff.asm
deleted file mode 100644
index 7a857dec4..000000000
--- a/data/base_stats/jumpluff.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db JUMPLUFF ; 189
-
- db 75, 55, 70, 110, 55, 85
- ; hp atk def spd sat sdf
-
- db GRASS, FLYING
- db 45 ; catch rate
- db 176 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jumpluff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FAIRY, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
- ; end
diff --git a/data/base_stats/jynx.asm b/data/base_stats/jynx.asm
deleted file mode 100644
index 054dca9ae..000000000
--- a/data/base_stats/jynx.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db JYNX ; 124
-
- db 65, 50, 35, 95, 115, 95
- ; hp atk def spd sat sdf
-
- db ICE, PSYCHIC
- db 45 ; catch rate
- db 137 ; base exp
- db ICE_BERRY ; item 1
- db ICE_BERRY ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/jynx/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
- ; end
diff --git a/data/base_stats/kabuto.asm b/data/base_stats/kabuto.asm
deleted file mode 100644
index 024f2791d..000000000
--- a/data/base_stats/kabuto.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KABUTO ; 140
-
- db 30, 80, 90, 55, 55, 45
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 119 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kabuto/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, ICE_BEAM
- ; end
diff --git a/data/base_stats/kabutops.asm b/data/base_stats/kabutops.asm
deleted file mode 100644
index 3c5076954..000000000
--- a/data/base_stats/kabutops.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KABUTOPS ; 141
-
- db 60, 115, 105, 80, 65, 70
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 201 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kabutops/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/kadabra.asm b/data/base_stats/kadabra.asm
deleted file mode 100644
index bf5f33638..000000000
--- a/data/base_stats/kadabra.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KADABRA ; 064
-
- db 40, 35, 30, 105, 120, 70
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 100 ; catch rate
- db 145 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kadabra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/kakuna.asm b/data/base_stats/kakuna.asm
deleted file mode 100644
index 827e17262..000000000
--- a/data/base_stats/kakuna.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KAKUNA ; 014
-
- db 45, 25, 50, 35, 25, 25
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 120 ; catch rate
- db 71 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kakuna/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/kangaskhan.asm b/data/base_stats/kangaskhan.asm
deleted file mode 100644
index ca6094ad7..000000000
--- a/data/base_stats/kangaskhan.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KANGASKHAN ; 115
-
- db 105, 95, 80, 90, 40, 80
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 175 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kangaskhan/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/kingdra.asm b/data/base_stats/kingdra.asm
deleted file mode 100644
index ac4dfd659..000000000
--- a/data/base_stats/kingdra.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KINGDRA ; 230
-
- db 75, 95, 95, 85, 95, 95
- ; hp atk def spd sat sdf
-
- db WATER, DRAGON
- db 45 ; catch rate
- db 207 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kingdra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/kingler.asm b/data/base_stats/kingler.asm
deleted file mode 100644
index 65c3344ac..000000000
--- a/data/base_stats/kingler.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KINGLER ; 099
-
- db 55, 130, 115, 75, 50, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 60 ; catch rate
- db 206 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/kingler/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/koffing.asm b/data/base_stats/koffing.asm
deleted file mode 100644
index b46e8241e..000000000
--- a/data/base_stats/koffing.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KOFFING ; 109
-
- db 40, 65, 95, 35, 60, 45
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 190 ; catch rate
- db 114 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/koffing/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
- ; end
diff --git a/data/base_stats/krabby.asm b/data/base_stats/krabby.asm
deleted file mode 100644
index 517d3bd07..000000000
--- a/data/base_stats/krabby.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db KRABBY ; 098
-
- db 30, 105, 90, 50, 25, 25
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 115 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/krabby/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/lanturn.asm b/data/base_stats/lanturn.asm
deleted file mode 100644
index f4dd4cd3a..000000000
--- a/data/base_stats/lanturn.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db LANTURN ; 171
-
- db 125, 58, 58, 67, 76, 76
- ; hp atk def spd sat sdf
-
- db WATER, ELECTRIC
- db 75 ; catch rate
- db 156 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lanturn/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/lapras.asm b/data/base_stats/lapras.asm
deleted file mode 100644
index e57154bc6..000000000
--- a/data/base_stats/lapras.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db LAPRAS ; 131
-
- db 130, 85, 80, 60, 85, 95
- ; hp atk def spd sat sdf
-
- db WATER, ICE
- db 45 ; catch rate
- db 219 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lapras/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, WHIRLPOOL, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/larvitar.asm b/data/base_stats/larvitar.asm
deleted file mode 100644
index 03a9be50f..000000000
--- a/data/base_stats/larvitar.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db LARVITAR ; 246
-
- db 50, 64, 50, 41, 45, 50
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 67 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/larvitar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
- ; end
diff --git a/data/base_stats/ledian.asm b/data/base_stats/ledian.asm
deleted file mode 100644
index a1ca61629..000000000
--- a/data/base_stats/ledian.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db LEDIAN ; 166
-
- db 55, 35, 50, 85, 55, 110
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 90 ; catch rate
- db 134 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ledian/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
- ; end
diff --git a/data/base_stats/ledyba.asm b/data/base_stats/ledyba.asm
deleted file mode 100644
index a01e329b1..000000000
--- a/data/base_stats/ledyba.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db LEDYBA ; 165
-
- db 40, 20, 30, 55, 40, 80
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 255 ; catch rate
- db 54 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ledyba/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
- ; end
diff --git a/data/base_stats/lickitung.asm b/data/base_stats/lickitung.asm
deleted file mode 100644
index 8b915bc59..000000000
--- a/data/base_stats/lickitung.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db LICKITUNG ; 108
-
- db 90, 55, 75, 30, 60, 75
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 127 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lickitung/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/lugia.asm b/data/base_stats/lugia.asm
deleted file mode 100644
index 26f337e2a..000000000
--- a/data/base_stats/lugia.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db LUGIA ; 249
-
- db 106, 90, 130, 110, 90, 154
- ; hp atk def spd sat sdf
-
- db PSYCHIC, FLYING
- db 3 ; catch rate
- db 220 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/lugia/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/machamp.asm b/data/base_stats/machamp.asm
deleted file mode 100644
index 056ce3945..000000000
--- a/data/base_stats/machamp.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MACHAMP ; 068
-
- db 90, 130, 80, 55, 65, 85
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 45 ; catch rate
- db 193 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/machamp/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/machoke.asm b/data/base_stats/machoke.asm
deleted file mode 100644
index 3fdec0eb2..000000000
--- a/data/base_stats/machoke.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MACHOKE ; 067
-
- db 80, 100, 70, 45, 50, 60
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 90 ; catch rate
- db 146 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/machoke/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/machop.asm b/data/base_stats/machop.asm
deleted file mode 100644
index bdde42528..000000000
--- a/data/base_stats/machop.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MACHOP ; 066
-
- db 70, 80, 50, 35, 35, 35
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 180 ; catch rate
- db 88 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/machop/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/magby.asm b/data/base_stats/magby.asm
deleted file mode 100644
index 876bceb3f..000000000
--- a/data/base_stats/magby.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAGBY ; 240
-
- db 45, 75, 37, 83, 70, 55
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 117 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magby/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/magcargo.asm b/data/base_stats/magcargo.asm
deleted file mode 100644
index bdbd0ca97..000000000
--- a/data/base_stats/magcargo.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAGCARGO ; 219
-
- db 50, 50, 120, 30, 80, 80
- ; hp atk def spd sat sdf
-
- db FIRE, ROCK
- db 75 ; catch rate
- db 154 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magcargo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/magikarp.asm b/data/base_stats/magikarp.asm
deleted file mode 100644
index 5d489fbff..000000000
--- a/data/base_stats/magikarp.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAGIKARP ; 129
-
- db 20, 10, 55, 80, 15, 20
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 255 ; catch rate
- db 20 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 5 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magikarp/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FISH, REPTILE ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/magmar.asm b/data/base_stats/magmar.asm
deleted file mode 100644
index 3c27ad670..000000000
--- a/data/base_stats/magmar.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAGMAR ; 126
-
- db 65, 95, 57, 93, 100, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 167 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 63 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magmar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/magnemite.asm b/data/base_stats/magnemite.asm
deleted file mode 100644
index 78a3ddea6..000000000
--- a/data/base_stats/magnemite.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAGNEMITE ; 081
-
- db 25, 35, 70, 45, 95, 55
- ; hp atk def spd sat sdf
-
- db ELECTRIC, STEEL
- db 190 ; catch rate
- db 89 ; base exp
- db NO_ITEM ; item 1
- db METAL_COAT ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magnemite/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/magneton.asm b/data/base_stats/magneton.asm
deleted file mode 100644
index 8b9158bba..000000000
--- a/data/base_stats/magneton.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAGNETON ; 082
-
- db 50, 60, 95, 70, 120, 70
- ; hp atk def spd sat sdf
-
- db ELECTRIC, STEEL
- db 60 ; catch rate
- db 161 ; base exp
- db NO_ITEM ; item 1
- db METAL_COAT ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/magneton/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/mankey.asm b/data/base_stats/mankey.asm
deleted file mode 100644
index 7ee15d3f7..000000000
--- a/data/base_stats/mankey.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MANKEY ; 056
-
- db 40, 80, 35, 70, 35, 45
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 190 ; catch rate
- db 74 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mankey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/mantine.asm b/data/base_stats/mantine.asm
deleted file mode 100644
index e8730d787..000000000
--- a/data/base_stats/mantine.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MANTINE ; 226
-
- db 65, 40, 70, 70, 80, 140
- ; hp atk def spd sat sdf
-
- db WATER, FLYING
- db 25 ; catch rate
- db 168 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mantine/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/mareep.asm b/data/base_stats/mareep.asm
deleted file mode 100644
index 366863245..000000000
--- a/data/base_stats/mareep.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAREEP ; 179
-
- db 55, 40, 40, 35, 65, 45
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 235 ; catch rate
- db 59 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mareep/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/marill.asm b/data/base_stats/marill.asm
deleted file mode 100644
index 7d9f4ce8a..000000000
--- a/data/base_stats/marill.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MARILL ; 183
-
- db 70, 20, 50, 40, 20, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 58 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/marill/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMPHIBIAN, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/marowak.asm b/data/base_stats/marowak.asm
deleted file mode 100644
index 76b7e4870..000000000
--- a/data/base_stats/marowak.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MAROWAK ; 105
-
- db 60, 80, 110, 45, 50, 80
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 75 ; catch rate
- db 124 ; base exp
- db NO_ITEM ; item 1
- db THICK_CLUB ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/marowak/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
- ; end
diff --git a/data/base_stats/meganium.asm b/data/base_stats/meganium.asm
deleted file mode 100644
index 57f228c28..000000000
--- a/data/base_stats/meganium.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MEGANIUM ; 154
-
- db 80, 82, 100, 80, 83, 100
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 208 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/meganium/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
- ; end
diff --git a/data/base_stats/meowth.asm b/data/base_stats/meowth.asm
deleted file mode 100644
index f795aa4c2..000000000
--- a/data/base_stats/meowth.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MEOWTH ; 052
-
- db 40, 45, 35, 90, 40, 40
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 255 ; catch rate
- db 69 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/meowth/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
diff --git a/data/base_stats/metapod.asm b/data/base_stats/metapod.asm
deleted file mode 100644
index deb7bc8e7..000000000
--- a/data/base_stats/metapod.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db METAPOD ; 011
-
- db 50, 20, 55, 30, 25, 25
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 120 ; catch rate
- db 72 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/metapod/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/mew.asm b/data/base_stats/mew.asm
deleted file mode 100644
index 7544467c7..000000000
--- a/data/base_stats/mew.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MEW ; 151
-
- db 100, 100, 100, 100, 100, 100
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 64 ; base exp
- db NO_ITEM ; item 1
- db MIRACLEBERRY ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mew/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, FLY, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/mewtwo.asm b/data/base_stats/mewtwo.asm
deleted file mode 100644
index 61e01c32c..000000000
--- a/data/base_stats/mewtwo.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MEWTWO ; 150
-
- db 106, 110, 90, 130, 154, 90
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 3 ; catch rate
- db 220 ; base exp
- db NO_ITEM ; item 1
- db BERSERK_GENE ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 120 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mewtwo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, THUNDERPUNCH, DREAM_EATER, DETECT, REST, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/miltank.asm b/data/base_stats/miltank.asm
deleted file mode 100644
index 7083c15c7..000000000
--- a/data/base_stats/miltank.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MILTANK ; 241
-
- db 95, 80, 105, 100, 40, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 200 ; base exp
- db MOOMOO_MILK ; item 1
- db MOOMOO_MILK ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/miltank/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/misdreavus.asm b/data/base_stats/misdreavus.asm
deleted file mode 100644
index 5811aa665..000000000
--- a/data/base_stats/misdreavus.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MISDREAVUS ; 200
-
- db 60, 60, 60, 85, 85, 85
- ; hp atk def spd sat sdf
-
- db GHOST, GHOST
- db 45 ; catch rate
- db 147 ; base exp
- db NO_ITEM ; item 1
- db SPELL_TAG ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/misdreavus/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/moltres.asm b/data/base_stats/moltres.asm
deleted file mode 100644
index 13eb7e7af..000000000
--- a/data/base_stats/moltres.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MOLTRES ; 146
-
- db 90, 100, 90, 90, 125, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FLYING
- db 3 ; catch rate
- db 217 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/moltres/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, STEEL_WING, FLY, FLAMETHROWER
- ; end
diff --git a/data/base_stats/mr__mime.asm b/data/base_stats/mr__mime.asm
deleted file mode 100644
index 3a271baf4..000000000
--- a/data/base_stats/mr__mime.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MR__MIME ; 122
-
- db 40, 45, 65, 90, 100, 120
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 136 ; base exp
- db NO_ITEM ; item 1
- db MYSTERYBERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/mr__mime/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn HUMANSHAPE, HUMANSHAPE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/muk.asm b/data/base_stats/muk.asm
deleted file mode 100644
index 7669e59b0..000000000
--- a/data/base_stats/muk.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MUK ; 089
-
- db 105, 105, 75, 50, 65, 100
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 75 ; catch rate
- db 157 ; base exp
- db NO_ITEM ; item 1
- db NUGGET ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/muk/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
- ; end
diff --git a/data/base_stats/murkrow.asm b/data/base_stats/murkrow.asm
deleted file mode 100644
index 08a1d7143..000000000
--- a/data/base_stats/murkrow.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db MURKROW ; 198
-
- db 60, 85, 42, 91, 85, 42
- ; hp atk def spd sat sdf
-
- db DARK, FLYING
- db 30 ; catch rate
- db 107 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/murkrow/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY
- ; end
diff --git a/data/base_stats/natu.asm b/data/base_stats/natu.asm
deleted file mode 100644
index 2f65b73ba..000000000
--- a/data/base_stats/natu.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NATU ; 177
-
- db 40, 50, 45, 70, 70, 45
- ; hp atk def spd sat sdf
-
- db PSYCHIC, FLYING
- db 190 ; catch rate
- db 73 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/natu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/nidoking.asm b/data/base_stats/nidoking.asm
deleted file mode 100644
index a5d6abef0..000000000
--- a/data/base_stats/nidoking.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NIDOKING ; 034
-
- db 81, 92, 77, 85, 85, 75
- ; hp atk def spd sat sdf
-
- db POISON, GROUND
- db 45 ; catch rate
- db 195 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoking/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/nidoqueen.asm b/data/base_stats/nidoqueen.asm
deleted file mode 100644
index cf888b7eb..000000000
--- a/data/base_stats/nidoqueen.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NIDOQUEEN ; 031
-
- db 90, 82, 87, 76, 75, 85
- ; hp atk def spd sat sdf
-
- db POISON, GROUND
- db 45 ; catch rate
- db 194 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoqueen/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/nidoran_f.asm b/data/base_stats/nidoran_f.asm
deleted file mode 100644
index e80b622c9..000000000
--- a/data/base_stats/nidoran_f.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NIDORAN_F ; 029
-
- db 55, 47, 52, 41, 40, 40
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 235 ; catch rate
- db 59 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoran_f/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
- ; end
diff --git a/data/base_stats/nidoran_m.asm b/data/base_stats/nidoran_m.asm
deleted file mode 100644
index 1029a2511..000000000
--- a/data/base_stats/nidoran_m.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NIDORAN_M ; 032
-
- db 46, 57, 40, 50, 40, 40
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 235 ; catch rate
- db 60 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidoran_m/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
- ; end
diff --git a/data/base_stats/nidorina.asm b/data/base_stats/nidorina.asm
deleted file mode 100644
index 3ca843e85..000000000
--- a/data/base_stats/nidorina.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NIDORINA ; 030
-
- db 70, 62, 67, 56, 55, 55
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 120 ; catch rate
- db 117 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidorina/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/nidorino.asm b/data/base_stats/nidorino.asm
deleted file mode 100644
index c853ef943..000000000
--- a/data/base_stats/nidorino.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NIDORINO ; 033
-
- db 61, 72, 57, 65, 55, 55
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 120 ; catch rate
- db 118 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/nidorino/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/ninetales.asm b/data/base_stats/ninetales.asm
deleted file mode 100644
index c651f8c57..000000000
--- a/data/base_stats/ninetales.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NINETALES ; 038
-
- db 73, 76, 75, 100, 81, 100
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 75 ; catch rate
- db 178 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ninetales/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/noctowl.asm b/data/base_stats/noctowl.asm
deleted file mode 100644
index 7c97fd769..000000000
--- a/data/base_stats/noctowl.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db NOCTOWL ; 164
-
- db 100, 50, 50, 70, 76, 96
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 90 ; catch rate
- db 162 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/noctowl/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
- ; end
diff --git a/data/base_stats/octillery.asm b/data/base_stats/octillery.asm
deleted file mode 100644
index 1d64afa82..000000000
--- a/data/base_stats/octillery.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db OCTILLERY ; 224
-
- db 75, 105, 75, 45, 105, 75
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 164 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/octillery/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
- ; end
diff --git a/data/base_stats/oddish.asm b/data/base_stats/oddish.asm
deleted file mode 100644
index dc91485b6..000000000
--- a/data/base_stats/oddish.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ODDISH ; 043
-
- db 45, 50, 55, 30, 75, 65
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 255 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/oddish/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/omanyte.asm b/data/base_stats/omanyte.asm
deleted file mode 100644
index 0e511f244..000000000
--- a/data/base_stats/omanyte.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db OMANYTE ; 138
-
- db 35, 40, 100, 35, 90, 55
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 120 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/omanyte/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/omastar.asm b/data/base_stats/omastar.asm
deleted file mode 100644
index 7e35a8987..000000000
--- a/data/base_stats/omastar.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db OMASTAR ; 139
-
- db 70, 60, 125, 55, 115, 70
- ; hp atk def spd sat sdf
-
- db ROCK, WATER
- db 45 ; catch rate
- db 199 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 30 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/omastar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/onix.asm b/data/base_stats/onix.asm
deleted file mode 100644
index f67c1eb86..000000000
--- a/data/base_stats/onix.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ONIX ; 095
-
- db 35, 45, 160, 70, 30, 45
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 108 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/onix/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, STRENGTH
- ; end
diff --git a/data/base_stats/paras.asm b/data/base_stats/paras.asm
deleted file mode 100644
index 4994aa8dd..000000000
--- a/data/base_stats/paras.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PARAS ; 046
-
- db 35, 70, 55, 25, 45, 55
- ; hp atk def spd sat sdf
-
- db BUG, GRASS
- db 190 ; catch rate
- db 70 ; base exp
- db TINYMUSHROOM ; item 1
- db BIG_MUSHROOM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/paras/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
- ; end
diff --git a/data/base_stats/parasect.asm b/data/base_stats/parasect.asm
deleted file mode 100644
index 310eba07f..000000000
--- a/data/base_stats/parasect.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PARASECT ; 047
-
- db 60, 95, 80, 30, 60, 80
- ; hp atk def spd sat sdf
-
- db BUG, GRASS
- db 75 ; catch rate
- db 128 ; base exp
- db TINYMUSHROOM ; item 1
- db BIG_MUSHROOM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/parasect/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
- ; end
diff --git a/data/base_stats/persian.asm b/data/base_stats/persian.asm
deleted file mode 100644
index f76ecaaae..000000000
--- a/data/base_stats/persian.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PERSIAN ; 053
-
- db 65, 70, 60, 115, 65, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 90 ; catch rate
- db 148 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/persian/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
- ; end
diff --git a/data/base_stats/phanpy.asm b/data/base_stats/phanpy.asm
deleted file mode 100644
index 08ff39595..000000000
--- a/data/base_stats/phanpy.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PHANPY ; 231
-
- db 90, 60, 60, 40, 40, 40
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 120 ; catch rate
- db 124 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/phanpy/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
diff --git a/data/base_stats/pichu.asm b/data/base_stats/pichu.asm
deleted file mode 100644
index dbadc22d3..000000000
--- a/data/base_stats/pichu.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PICHU ; 172
-
- db 20, 40, 15, 60, 35, 35
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 190 ; catch rate
- db 42 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pichu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/pidgeot.asm b/data/base_stats/pidgeot.asm
deleted file mode 100644
index 1024b6624..000000000
--- a/data/base_stats/pidgeot.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PIDGEOT ; 018
-
- db 83, 80, 75, 91, 70, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 45 ; catch rate
- db 172 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pidgeot/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/pidgeotto.asm b/data/base_stats/pidgeotto.asm
deleted file mode 100644
index 8e9d434a3..000000000
--- a/data/base_stats/pidgeotto.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PIDGEOTTO ; 017
-
- db 63, 60, 55, 71, 50, 50
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 120 ; catch rate
- db 113 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pidgeotto/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/pidgey.asm b/data/base_stats/pidgey.asm
deleted file mode 100644
index d5f8fa630..000000000
--- a/data/base_stats/pidgey.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PIDGEY ; 016
-
- db 40, 45, 40, 56, 35, 35
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 255 ; catch rate
- db 55 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pidgey/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/pikachu.asm b/data/base_stats/pikachu.asm
deleted file mode 100644
index 5875b1ea7..000000000
--- a/data/base_stats/pikachu.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PIKACHU ; 025
-
- db 35, 55, 30, 90, 50, 40
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 190 ; catch rate
- db 82 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pikachu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, STRENGTH, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/piloswine.asm b/data/base_stats/piloswine.asm
deleted file mode 100644
index 3da32746b..000000000
--- a/data/base_stats/piloswine.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PILOSWINE ; 221
-
- db 100, 100, 80, 50, 60, 60
- ; hp atk def spd sat sdf
-
- db ICE, GROUND
- db 75 ; catch rate
- db 160 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/piloswine/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
- ; end
diff --git a/data/base_stats/pineco.asm b/data/base_stats/pineco.asm
deleted file mode 100644
index 43289701c..000000000
--- a/data/base_stats/pineco.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PINECO ; 204
-
- db 50, 65, 90, 15, 35, 35
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 190 ; catch rate
- db 60 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pineco/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, STRENGTH
- ; end
diff --git a/data/base_stats/pinsir.asm b/data/base_stats/pinsir.asm
deleted file mode 100644
index cd07cde27..000000000
--- a/data/base_stats/pinsir.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PINSIR ; 127
-
- db 65, 125, 100, 85, 55, 70
- ; hp atk def spd sat sdf
-
- db BUG, BUG
- db 45 ; catch rate
- db 200 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pinsir/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/politoed.asm b/data/base_stats/politoed.asm
deleted file mode 100644
index 8b510fc8f..000000000
--- a/data/base_stats/politoed.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db POLITOED ; 186
-
- db 90, 75, 75, 70, 90, 100
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 185 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/politoed/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/poliwag.asm b/data/base_stats/poliwag.asm
deleted file mode 100644
index abcab97e2..000000000
--- a/data/base_stats/poliwag.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db POLIWAG ; 060
-
- db 40, 50, 40, 90, 40, 40
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 255 ; catch rate
- db 77 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/poliwag/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/poliwhirl.asm b/data/base_stats/poliwhirl.asm
deleted file mode 100644
index c2aac43f7..000000000
--- a/data/base_stats/poliwhirl.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db POLIWHIRL ; 061
-
- db 65, 65, 65, 90, 50, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 120 ; catch rate
- db 131 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/poliwhirl/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/poliwrath.asm b/data/base_stats/poliwrath.asm
deleted file mode 100644
index 1e3130078..000000000
--- a/data/base_stats/poliwrath.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db POLIWRATH ; 062
-
- db 90, 85, 95, 70, 70, 90
- ; hp atk def spd sat sdf
-
- db WATER, FIGHTING
- db 45 ; catch rate
- db 185 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/poliwrath/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn AMPHIBIAN, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/ponyta.asm b/data/base_stats/ponyta.asm
deleted file mode 100644
index 2366b1b12..000000000
--- a/data/base_stats/ponyta.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PONYTA ; 077
-
- db 50, 85, 55, 90, 65, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 152 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ponyta/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/porygon.asm b/data/base_stats/porygon.asm
deleted file mode 100644
index 340c79af1..000000000
--- a/data/base_stats/porygon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PORYGON ; 137
-
- db 65, 60, 70, 40, 85, 75
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 130 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/porygon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/porygon2.asm b/data/base_stats/porygon2.asm
deleted file mode 100644
index 6c5a518a7..000000000
--- a/data/base_stats/porygon2.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PORYGON2 ; 233
-
- db 85, 80, 90, 60, 105, 95
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 180 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/porygon2/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/primeape.asm b/data/base_stats/primeape.asm
deleted file mode 100644
index 4abd0b68f..000000000
--- a/data/base_stats/primeape.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PRIMEAPE ; 057
-
- db 65, 105, 60, 95, 60, 70
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 75 ; catch rate
- db 149 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/primeape/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/psyduck.asm b/data/base_stats/psyduck.asm
deleted file mode 100644
index bbd0e64e3..000000000
--- a/data/base_stats/psyduck.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PSYDUCK ; 054
-
- db 50, 52, 48, 55, 65, 50
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 80 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/psyduck/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/pupitar.asm b/data/base_stats/pupitar.asm
deleted file mode 100644
index 643b88e34..000000000
--- a/data/base_stats/pupitar.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db PUPITAR ; 247
-
- db 70, 84, 70, 51, 65, 70
- ; hp atk def spd sat sdf
-
- db ROCK, GROUND
- db 45 ; catch rate
- db 144 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/pupitar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
- ; end
diff --git a/data/base_stats/quagsire.asm b/data/base_stats/quagsire.asm
deleted file mode 100644
index 3e65ce4a1..000000000
--- a/data/base_stats/quagsire.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db QUAGSIRE ; 195
-
- db 95, 85, 85, 35, 65, 65
- ; hp atk def spd sat sdf
-
- db WATER, GROUND
- db 90 ; catch rate
- db 137 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/quagsire/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/quilava.asm b/data/base_stats/quilava.asm
deleted file mode 100644
index f1d9a8b3c..000000000
--- a/data/base_stats/quilava.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db QUILAVA ; 156
-
- db 58, 64, 58, 80, 80, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 142 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/quilava/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/qwilfish.asm b/data/base_stats/qwilfish.asm
deleted file mode 100644
index 5308e60ef..000000000
--- a/data/base_stats/qwilfish.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db QWILFISH ; 211
-
- db 65, 95, 75, 85, 55, 55
- ; hp atk def spd sat sdf
-
- db WATER, POISON
- db 45 ; catch rate
- db 100 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/qwilfish/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/raichu.asm b/data/base_stats/raichu.asm
deleted file mode 100644
index aefc56713..000000000
--- a/data/base_stats/raichu.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db RAICHU ; 026
-
- db 60, 90, 55, 100, 90, 80
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 75 ; catch rate
- db 122 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/raichu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, STRENGTH, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/raikou.asm b/data/base_stats/raikou.asm
deleted file mode 100644
index 26966258d..000000000
--- a/data/base_stats/raikou.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db RAIKOU ; 243
-
- db 90, 85, 75, 115, 115, 100
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 3 ; catch rate
- db 216 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/raikou/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/rapidash.asm b/data/base_stats/rapidash.asm
deleted file mode 100644
index a55f7cd36..000000000
--- a/data/base_stats/rapidash.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db RAPIDASH ; 078
-
- db 65, 100, 70, 105, 80, 80
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 60 ; catch rate
- db 192 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rapidash/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/raticate.asm b/data/base_stats/raticate.asm
deleted file mode 100644
index 6248cf4ca..000000000
--- a/data/base_stats/raticate.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db RATICATE ; 020
-
- db 55, 81, 60, 97, 50, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 90 ; catch rate
- db 116 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/raticate/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, CUT, STRENGTH, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/rattata.asm b/data/base_stats/rattata.asm
deleted file mode 100644
index 0fb688d58..000000000
--- a/data/base_stats/rattata.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db RATTATA ; 019
-
- db 30, 56, 35, 72, 25, 35
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 255 ; catch rate
- db 57 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rattata/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF
- ; end
diff --git a/data/base_stats/remoraid.asm b/data/base_stats/remoraid.asm
deleted file mode 100644
index 4af024564..000000000
--- a/data/base_stats/remoraid.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db REMORAID ; 223
-
- db 35, 65, 35, 65, 65, 35
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/remoraid/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
- ; end
diff --git a/data/base_stats/rhydon.asm b/data/base_stats/rhydon.asm
deleted file mode 100644
index 8890718a5..000000000
--- a/data/base_stats/rhydon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db RHYDON ; 112
-
- db 105, 130, 120, 40, 45, 45
- ; hp atk def spd sat sdf
-
- db GROUND, ROCK
- db 60 ; catch rate
- db 204 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rhydon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/rhyhorn.asm b/data/base_stats/rhyhorn.asm
deleted file mode 100644
index 33cff8b54..000000000
--- a/data/base_stats/rhyhorn.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db RHYHORN ; 111
-
- db 80, 85, 95, 25, 30, 30
- ; hp atk def spd sat sdf
-
- db GROUND, ROCK
- db 120 ; catch rate
- db 135 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/rhyhorn/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/sandshrew.asm b/data/base_stats/sandshrew.asm
deleted file mode 100644
index f2148f9fa..000000000
--- a/data/base_stats/sandshrew.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SANDSHREW ; 027
-
- db 50, 75, 85, 40, 20, 30
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 255 ; catch rate
- db 93 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sandshrew/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/sandslash.asm b/data/base_stats/sandslash.asm
deleted file mode 100644
index ae4c38df0..000000000
--- a/data/base_stats/sandslash.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SANDSLASH ; 028
-
- db 75, 100, 110, 65, 45, 55
- ; hp atk def spd sat sdf
-
- db GROUND, GROUND
- db 90 ; catch rate
- db 163 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sandslash/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/scizor.asm b/data/base_stats/scizor.asm
deleted file mode 100644
index c05fa7aca..000000000
--- a/data/base_stats/scizor.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SCIZOR ; 212
-
- db 70, 130, 100, 65, 55, 80
- ; hp atk def spd sat sdf
-
- db BUG, STEEL
- db 25 ; catch rate
- db 200 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/scizor/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/scyther.asm b/data/base_stats/scyther.asm
deleted file mode 100644
index e01386c6e..000000000
--- a/data/base_stats/scyther.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SCYTHER ; 123
-
- db 70, 110, 80, 105, 55, 80
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 45 ; catch rate
- db 187 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/scyther/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT
- ; end
diff --git a/data/base_stats/seadra.asm b/data/base_stats/seadra.asm
deleted file mode 100644
index b242641c3..000000000
--- a/data/base_stats/seadra.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SEADRA ; 117
-
- db 55, 65, 95, 85, 95, 45
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 75 ; catch rate
- db 155 ; base exp
- db NO_ITEM ; item 1
- db DRAGON_SCALE ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/seadra/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, REPTILE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/seaking.asm b/data/base_stats/seaking.asm
deleted file mode 100644
index 381c61298..000000000
--- a/data/base_stats/seaking.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SEAKING ; 119
-
- db 80, 92, 65, 68, 65, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 60 ; catch rate
- db 170 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/seaking/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FISH, FISH ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/seel.asm b/data/base_stats/seel.asm
deleted file mode 100644
index 2589fc272..000000000
--- a/data/base_stats/seel.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SEEL ; 086
-
- db 65, 45, 55, 45, 45, 70
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 100 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/seel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/sentret.asm b/data/base_stats/sentret.asm
deleted file mode 100644
index 25c7b779c..000000000
--- a/data/base_stats/sentret.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SENTRET ; 161
-
- db 35, 46, 34, 20, 35, 45
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 255 ; catch rate
- db 57 ; base exp
- db NO_ITEM ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sentret/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF
- ; end
diff --git a/data/base_stats/shellder.asm b/data/base_stats/shellder.asm
deleted file mode 100644
index 7d7f801d7..000000000
--- a/data/base_stats/shellder.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SHELLDER ; 090
-
- db 30, 65, 100, 40, 45, 25
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 190 ; catch rate
- db 97 ; base exp
- db PEARL ; item 1
- db BIG_PEARL ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/shellder/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/shuckle.asm b/data/base_stats/shuckle.asm
deleted file mode 100644
index 9f2cee33b..000000000
--- a/data/base_stats/shuckle.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SHUCKLE ; 213
-
- db 20, 10, 230, 05, 10, 230
- ; hp atk def spd sat sdf
-
- db BUG, ROCK
- db 190 ; catch rate
- db 80 ; base exp
- db BERRY ; item 1
- db BERRY ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/shuckle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLASH
- ; end
diff --git a/data/base_stats/skarmory.asm b/data/base_stats/skarmory.asm
deleted file mode 100644
index 106cee7f3..000000000
--- a/data/base_stats/skarmory.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SKARMORY ; 227
-
- db 65, 80, 140, 70, 40, 70
- ; hp atk def spd sat sdf
-
- db STEEL, FLYING
- db 25 ; catch rate
- db 168 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/skarmory/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
- ; end
diff --git a/data/base_stats/skiploom.asm b/data/base_stats/skiploom.asm
deleted file mode 100644
index 2920f19f0..000000000
--- a/data/base_stats/skiploom.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SKIPLOOM ; 188
-
- db 55, 45, 50, 80, 45, 65
- ; hp atk def spd sat sdf
-
- db GRASS, FLYING
- db 120 ; catch rate
- db 136 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/skiploom/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FAIRY, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
- ; end
diff --git a/data/base_stats/slowbro.asm b/data/base_stats/slowbro.asm
deleted file mode 100644
index 7c6520d8a..000000000
--- a/data/base_stats/slowbro.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SLOWBRO ; 080
-
- db 95, 75, 110, 30, 100, 80
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 75 ; catch rate
- db 164 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slowbro/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
- ; end
diff --git a/data/base_stats/slowking.asm b/data/base_stats/slowking.asm
deleted file mode 100644
index 4974b23c5..000000000
--- a/data/base_stats/slowking.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SLOWKING ; 199
-
- db 95, 75, 80, 30, 100, 110
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 70 ; catch rate
- db 164 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slowking/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
- ; end
diff --git a/data/base_stats/slowpoke.asm b/data/base_stats/slowpoke.asm
deleted file mode 100644
index 4ad676ab0..000000000
--- a/data/base_stats/slowpoke.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SLOWPOKE ; 079
-
- db 90, 65, 65, 15, 40, 40
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 190 ; catch rate
- db 99 ; base exp
- db NO_ITEM ; item 1
- db KINGS_ROCK ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slowpoke/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
- ; end
diff --git a/data/base_stats/slugma.asm b/data/base_stats/slugma.asm
deleted file mode 100644
index 52da7221f..000000000
--- a/data/base_stats/slugma.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SLUGMA ; 218
-
- db 40, 40, 40, 20, 70, 40
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/slugma/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/smeargle.asm b/data/base_stats/smeargle.asm
deleted file mode 100644
index e3011c8d2..000000000
--- a/data/base_stats/smeargle.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SMEARGLE ; 235
-
- db 55, 20, 35, 75, 20, 45
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 106 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/smeargle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/smoochum.asm b/data/base_stats/smoochum.asm
deleted file mode 100644
index 985a52a19..000000000
--- a/data/base_stats/smoochum.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SMOOCHUM ; 238
-
- db 45, 30, 15, 65, 85, 65
- ; hp atk def spd sat sdf
-
- db ICE, PSYCHIC
- db 45 ; catch rate
- db 87 ; base exp
- db ICE_BERRY ; item 1
- db ICE_BERRY ; item 2
- db 254 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/smoochum/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
- ; end
diff --git a/data/base_stats/sneasel.asm b/data/base_stats/sneasel.asm
deleted file mode 100644
index eb62897eb..000000000
--- a/data/base_stats/sneasel.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SNEASEL ; 215
-
- db 55, 95, 55, 115, 35, 75
- ; hp atk def spd sat sdf
-
- db DARK, ICE
- db 60 ; catch rate
- db 132 ; base exp
- db NO_ITEM ; item 1
- db QUICK_CLAW ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sneasel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, ICE_BEAM
- ; end
diff --git a/data/base_stats/snorlax.asm b/data/base_stats/snorlax.asm
deleted file mode 100644
index e04cd1442..000000000
--- a/data/base_stats/snorlax.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SNORLAX ; 143
-
- db 160, 110, 65, 30, 65, 110
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 25 ; catch rate
- db 154 ; base exp
- db LEFTOVERS ; item 1
- db LEFTOVERS ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/snorlax/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/snubbull.asm b/data/base_stats/snubbull.asm
deleted file mode 100644
index 3ac629f26..000000000
--- a/data/base_stats/snubbull.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SNUBBULL ; 209
-
- db 60, 80, 50, 30, 40, 40
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 190 ; catch rate
- db 63 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/snubbull/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FIELD, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/spearow.asm b/data/base_stats/spearow.asm
deleted file mode 100644
index 4321aa799..000000000
--- a/data/base_stats/spearow.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SPEAROW ; 021
-
- db 40, 60, 30, 70, 31, 31
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 255 ; catch rate
- db 58 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/spearow/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
- ; end
diff --git a/data/base_stats/spinarak.asm b/data/base_stats/spinarak.asm
deleted file mode 100644
index 7f00a4677..000000000
--- a/data/base_stats/spinarak.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SPINARAK ; 167
-
- db 40, 60, 40, 30, 40, 40
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 255 ; catch rate
- db 54 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/spinarak/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
- ; end
diff --git a/data/base_stats/squirtle.asm b/data/base_stats/squirtle.asm
deleted file mode 100644
index 06484e52c..000000000
--- a/data/base_stats/squirtle.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SQUIRTLE ; 007
-
- db 44, 48, 65, 43, 50, 64
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 66 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/squirtle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/stantler.asm b/data/base_stats/stantler.asm
deleted file mode 100644
index 911e1904f..000000000
--- a/data/base_stats/stantler.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db STANTLER ; 234
-
- db 73, 95, 62, 85, 85, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 165 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/stantler/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
- ; end
diff --git a/data/base_stats/starmie.asm b/data/base_stats/starmie.asm
deleted file mode 100644
index dbc2122bb..000000000
--- a/data/base_stats/starmie.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db STARMIE ; 121
-
- db 60, 75, 85, 115, 100, 85
- ; hp atk def spd sat sdf
-
- db WATER, PSYCHIC
- db 60 ; catch rate
- db 207 ; base exp
- db STARDUST ; item 1
- db STAR_PIECE ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/starmie/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/staryu.asm b/data/base_stats/staryu.asm
deleted file mode 100644
index 6d0d90eb3..000000000
--- a/data/base_stats/staryu.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db STARYU ; 120
-
- db 30, 45, 55, 85, 70, 55
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 225 ; catch rate
- db 106 ; base exp
- db STARDUST ; item 1
- db STAR_PIECE ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/staryu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/steelix.asm b/data/base_stats/steelix.asm
deleted file mode 100644
index f740d0c02..000000000
--- a/data/base_stats/steelix.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db STEELIX ; 208
-
- db 75, 85, 200, 30, 55, 65
- ; hp atk def spd sat sdf
-
- db STEEL, GROUND
- db 25 ; catch rate
- db 196 ; base exp
- db NO_ITEM ; item 1
- db METAL_COAT ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/steelix/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/sudowoodo.asm b/data/base_stats/sudowoodo.asm
deleted file mode 100644
index 6ddc4cd57..000000000
--- a/data/base_stats/sudowoodo.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SUDOWOODO ; 185
-
- db 70, 100, 115, 30, 30, 65
- ; hp atk def spd sat sdf
-
- db ROCK, ROCK
- db 65 ; catch rate
- db 135 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sudowoodo/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
- ; end
diff --git a/data/base_stats/suicune.asm b/data/base_stats/suicune.asm
deleted file mode 100644
index 6262bd513..000000000
--- a/data/base_stats/suicune.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SUICUNE ; 245
-
- db 100, 75, 115, 85, 90, 115
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 3 ; catch rate
- db 215 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/suicune/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/sunflora.asm b/data/base_stats/sunflora.asm
deleted file mode 100644
index d8f01ebad..000000000
--- a/data/base_stats/sunflora.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SUNFLORA ; 192
-
- db 75, 75, 55, 30, 105, 85
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 120 ; catch rate
- db 146 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sunflora/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/sunkern.asm b/data/base_stats/sunkern.asm
deleted file mode 100644
index 2cab9d9a1..000000000
--- a/data/base_stats/sunkern.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SUNKERN ; 191
-
- db 30, 30, 30, 30, 30, 30
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 235 ; catch rate
- db 52 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/sunkern/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/swinub.asm b/data/base_stats/swinub.asm
deleted file mode 100644
index 70b389b30..000000000
--- a/data/base_stats/swinub.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db SWINUB ; 220
-
- db 50, 50, 40, 50, 30, 30
- ; hp atk def spd sat sdf
-
- db ICE, GROUND
- db 225 ; catch rate
- db 78 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/swinub/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
- ; end
diff --git a/data/base_stats/tangela.asm b/data/base_stats/tangela.asm
deleted file mode 100644
index d379fdb92..000000000
--- a/data/base_stats/tangela.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TANGELA ; 114
-
- db 65, 55, 115, 60, 100, 40
- ; hp atk def spd sat sdf
-
- db GRASS, GRASS
- db 45 ; catch rate
- db 166 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tangela/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT, FLASH
- ; end
diff --git a/data/base_stats/tauros.asm b/data/base_stats/tauros.asm
deleted file mode 100644
index 365de3f8d..000000000
--- a/data/base_stats/tauros.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TAUROS ; 128
-
- db 75, 100, 95, 110, 40, 70
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 45 ; catch rate
- db 211 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tauros/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/teddiursa.asm b/data/base_stats/teddiursa.asm
deleted file mode 100644
index 0269d4c68..000000000
--- a/data/base_stats/teddiursa.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TEDDIURSA ; 216
-
- db 60, 80, 50, 40, 50, 50
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 120 ; catch rate
- db 124 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/teddiursa/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/tentacool.asm b/data/base_stats/tentacool.asm
deleted file mode 100644
index e225309e5..000000000
--- a/data/base_stats/tentacool.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TENTACOOL ; 072
-
- db 40, 40, 35, 70, 50, 100
- ; hp atk def spd sat sdf
-
- db WATER, POISON
- db 190 ; catch rate
- db 105 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tentacool/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/tentacruel.asm b/data/base_stats/tentacruel.asm
deleted file mode 100644
index 22b2a3808..000000000
--- a/data/base_stats/tentacruel.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TENTACRUEL ; 073
-
- db 80, 70, 65, 100, 80, 120
- ; hp atk def spd sat sdf
-
- db WATER, POISON
- db 60 ; catch rate
- db 205 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tentacruel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn INVERTEBRATE, INVERTEBRATE ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/togepi.asm b/data/base_stats/togepi.asm
deleted file mode 100644
index 1bf6cc339..000000000
--- a/data/base_stats/togepi.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TOGEPI ; 175
-
- db 35, 20, 65, 20, 40, 65
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 190 ; catch rate
- db 74 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/togepi/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, FLASH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/togetic.asm b/data/base_stats/togetic.asm
deleted file mode 100644
index f8330c50f..000000000
--- a/data/base_stats/togetic.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TOGETIC ; 176
-
- db 55, 40, 85, 40, 80, 105
- ; hp atk def spd sat sdf
-
- db NORMAL, FLYING
- db 75 ; catch rate
- db 114 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/togetic/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn AVIAN, FAIRY ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLASH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/totodile.asm b/data/base_stats/totodile.asm
deleted file mode 100644
index 3d57dbc89..000000000
--- a/data/base_stats/totodile.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TOTODILE ; 158
-
- db 50, 65, 64, 43, 44, 48
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 66 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/totodile/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/typhlosion.asm b/data/base_stats/typhlosion.asm
deleted file mode 100644
index a73529cef..000000000
--- a/data/base_stats/typhlosion.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TYPHLOSION ; 157
-
- db 78, 84, 78, 100, 109, 85
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 45 ; catch rate
- db 209 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/typhlosion/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
- ; end
diff --git a/data/base_stats/tyranitar.asm b/data/base_stats/tyranitar.asm
deleted file mode 100644
index c116bdde3..000000000
--- a/data/base_stats/tyranitar.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TYRANITAR ; 248
-
- db 100, 134, 110, 61, 95, 100
- ; hp atk def spd sat sdf
-
- db ROCK, DARK
- db 45 ; catch rate
- db 218 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tyranitar/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn MONSTER, MONSTER ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/tyrogue.asm b/data/base_stats/tyrogue.asm
deleted file mode 100644
index 87d44a3c5..000000000
--- a/data/base_stats/tyrogue.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db TYROGUE ; 236
-
- db 35, 35, 35, 35, 35, 35
- ; hp atk def spd sat sdf
-
- db FIGHTING, FIGHTING
- db 75 ; catch rate
- db 91 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 0 ; gender
- db 100 ; unknown
- db 25 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/tyrogue/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
- ; end
diff --git a/data/base_stats/umbreon.asm b/data/base_stats/umbreon.asm
deleted file mode 100644
index 1274f6afa..000000000
--- a/data/base_stats/umbreon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db UMBREON ; 197
-
- db 95, 65, 110, 65, 60, 130
- ; hp atk def spd sat sdf
-
- db DARK, DARK
- db 45 ; catch rate
- db 197 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/umbreon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
- ; end
diff --git a/data/base_stats/unown.asm b/data/base_stats/unown.asm
deleted file mode 100644
index d447757eb..000000000
--- a/data/base_stats/unown.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db UNOWN ; 201
-
- db 48, 72, 48, 48, 72, 48
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 225 ; catch rate
- db 61 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 40 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/unown_a/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/ursaring.asm b/data/base_stats/ursaring.asm
deleted file mode 100644
index ba87a54ff..000000000
--- a/data/base_stats/ursaring.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db URSARING ; 217
-
- db 90, 130, 75, 55, 75, 75
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 60 ; catch rate
- db 189 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/ursaring/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
- ; end
diff --git a/data/base_stats/vaporeon.asm b/data/base_stats/vaporeon.asm
deleted file mode 100644
index 7d024d5fd..000000000
--- a/data/base_stats/vaporeon.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VAPOREON ; 134
-
- db 130, 65, 60, 65, 110, 95
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 196 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 35 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/vaporeon/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/venomoth.asm b/data/base_stats/venomoth.asm
deleted file mode 100644
index c2ac64222..000000000
--- a/data/base_stats/venomoth.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VENOMOTH ; 049
-
- db 70, 65, 60, 90, 90, 75
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 75 ; catch rate
- db 138 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/venomoth/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF, FLASH
- ; end
diff --git a/data/base_stats/venonat.asm b/data/base_stats/venonat.asm
deleted file mode 100644
index ef662fb91..000000000
--- a/data/base_stats/venonat.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VENONAT ; 048
-
- db 60, 55, 50, 45, 40, 55
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 190 ; catch rate
- db 75 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/venonat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF
- ; end
diff --git a/data/base_stats/venusaur.asm b/data/base_stats/venusaur.asm
deleted file mode 100644
index 728508bee..000000000
--- a/data/base_stats/venusaur.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VENUSAUR ; 003
-
- db 80, 82, 83, 80, 100, 100
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 208 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/venusaur/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, PLANT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
- ; end
diff --git a/data/base_stats/victreebel.asm b/data/base_stats/victreebel.asm
deleted file mode 100644
index fd33d5c1c..000000000
--- a/data/base_stats/victreebel.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VICTREEBEL ; 071
-
- db 80, 105, 65, 70, 100, 60
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 191 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/victreebel/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/vileplume.asm b/data/base_stats/vileplume.asm
deleted file mode 100644
index f6f4b370e..000000000
--- a/data/base_stats/vileplume.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VILEPLUME ; 045
-
- db 75, 80, 85, 50, 100, 90
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 45 ; catch rate
- db 184 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/vileplume/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/voltorb.asm b/data/base_stats/voltorb.asm
deleted file mode 100644
index 5daf64af9..000000000
--- a/data/base_stats/voltorb.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VOLTORB ; 100
-
- db 40, 30, 50, 100, 55, 55
- ; hp atk def spd sat sdf
-
- db ELECTRIC, ELECTRIC
- db 190 ; catch rate
- db 103 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/voltorb/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INANIMATE, INANIMATE ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/vulpix.asm b/data/base_stats/vulpix.asm
deleted file mode 100644
index 0212212ff..000000000
--- a/data/base_stats/vulpix.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db VULPIX ; 037
-
- db 38, 41, 40, 65, 50, 65
- ; hp atk def spd sat sdf
-
- db FIRE, FIRE
- db 190 ; catch rate
- db 63 ; base exp
- db BURNT_BERRY ; item 1
- db BURNT_BERRY ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/vulpix/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn FIELD, FIELD ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
- ; end
diff --git a/data/base_stats/wartortle.asm b/data/base_stats/wartortle.asm
deleted file mode 100644
index 751d881ef..000000000
--- a/data/base_stats/wartortle.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db WARTORTLE ; 008
-
- db 59, 63, 80, 58, 65, 80
- ; hp atk def spd sat sdf
-
- db WATER, WATER
- db 45 ; catch rate
- db 143 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 31 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wartortle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn MONSTER, AMPHIBIAN ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
- ; end
diff --git a/data/base_stats/weedle.asm b/data/base_stats/weedle.asm
deleted file mode 100644
index acc241e74..000000000
--- a/data/base_stats/weedle.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db WEEDLE ; 013
-
- db 40, 35, 30, 50, 20, 20
- ; hp atk def spd sat sdf
-
- db BUG, POISON
- db 255 ; catch rate
- db 52 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/weedle/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/weepinbell.asm b/data/base_stats/weepinbell.asm
deleted file mode 100644
index b87ba6326..000000000
--- a/data/base_stats/weepinbell.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db WEEPINBELL ; 070
-
- db 65, 90, 50, 55, 85, 45
- ; hp atk def spd sat sdf
-
- db GRASS, POISON
- db 120 ; catch rate
- db 151 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/weepinbell/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_SLOW ; growth rate
- dn PLANT, PLANT ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
- ; end
diff --git a/data/base_stats/weezing.asm b/data/base_stats/weezing.asm
deleted file mode 100644
index 96a645828..000000000
--- a/data/base_stats/weezing.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db WEEZING ; 110
-
- db 65, 90, 120, 60, 85, 70
- ; hp atk def spd sat sdf
-
- db POISON, POISON
- db 60 ; catch rate
- db 173 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/weezing/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
- ; end
diff --git a/data/base_stats/wigglytuff.asm b/data/base_stats/wigglytuff.asm
deleted file mode 100644
index 82321d595..000000000
--- a/data/base_stats/wigglytuff.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db WIGGLYTUFF ; 040
-
- db 140, 70, 45, 45, 75, 50
- ; hp atk def spd sat sdf
-
- db NORMAL, NORMAL
- db 50 ; catch rate
- db 109 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 191 ; gender
- db 100 ; unknown
- db 10 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wigglytuff/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db FAST ; growth rate
- dn FAIRY, FAIRY ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
- ; end
diff --git a/data/base_stats/wobbuffet.asm b/data/base_stats/wobbuffet.asm
deleted file mode 100644
index 4b865b33c..000000000
--- a/data/base_stats/wobbuffet.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db WOBBUFFET ; 202
-
- db 190, 33, 58, 33, 33, 58
- ; hp atk def spd sat sdf
-
- db PSYCHIC, PSYCHIC
- db 45 ; catch rate
- db 177 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wobbuffet/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMORPHOUS, AMORPHOUS ; egg groups
-
- ; tmhm
- tmhm
- ; end
diff --git a/data/base_stats/wooper.asm b/data/base_stats/wooper.asm
deleted file mode 100644
index 0f0d53630..000000000
--- a/data/base_stats/wooper.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db WOOPER ; 194
-
- db 55, 45, 45, 15, 25, 25
- ; hp atk def spd sat sdf
-
- db WATER, GROUND
- db 255 ; catch rate
- db 52 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/wooper/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AMPHIBIAN, FIELD ; egg groups
-
- ; tmhm
- tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, ICE_BEAM
- ; end
diff --git a/data/base_stats/xatu.asm b/data/base_stats/xatu.asm
deleted file mode 100644
index ba0e964af..000000000
--- a/data/base_stats/xatu.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db XATU ; 178
-
- db 65, 75, 70, 95, 95, 70
- ; hp atk def spd sat sdf
-
- db PSYCHIC, FLYING
- db 75 ; catch rate
- db 171 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/xatu/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLY, FLASH
- ; end
diff --git a/data/base_stats/yanma.asm b/data/base_stats/yanma.asm
deleted file mode 100644
index 96cf497be..000000000
--- a/data/base_stats/yanma.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db YANMA ; 193
-
- db 65, 65, 45, 95, 75, 45
- ; hp atk def spd sat sdf
-
- db BUG, FLYING
- db 75 ; catch rate
- db 147 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 20 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/yanma/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn INSECT, INSECT ; egg groups
-
- ; tmhm
- tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLASH
- ; end
diff --git a/data/base_stats/zapdos.asm b/data/base_stats/zapdos.asm
deleted file mode 100644
index eece9b897..000000000
--- a/data/base_stats/zapdos.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ZAPDOS ; 145
-
- db 90, 90, 85, 100, 125, 90
- ; hp atk def spd sat sdf
-
- db ELECTRIC, FLYING
- db 3 ; catch rate
- db 216 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 255 ; gender
- db 100 ; unknown
- db 80 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/zapdos/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db SLOW ; growth rate
- dn NO_EGGS, NO_EGGS ; egg groups
-
- ; tmhm
- tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, FLASH, THUNDERBOLT
- ; end
diff --git a/data/base_stats/zubat.asm b/data/base_stats/zubat.asm
deleted file mode 100644
index ac5f450d1..000000000
--- a/data/base_stats/zubat.asm
+++ /dev/null
@@ -1,22 +0,0 @@
- db ZUBAT ; 041
-
- db 40, 45, 35, 55, 30, 40
- ; hp atk def spd sat sdf
-
- db POISON, FLYING
- db 255 ; catch rate
- db 54 ; base exp
- db NO_ITEM ; item 1
- db NO_ITEM ; item 2
- db 127 ; gender
- db 100 ; unknown
- db 15 ; step cycles to hatch
- db 5 ; unknown
- INCBIN "gfx/pics/zubat/front.dimensions"
- db 0, 0, 0, 0 ; padding
- db MEDIUM_FAST ; growth rate
- dn AVIAN, AVIAN ; egg groups
-
- ; tmhm
- tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
- ; end
diff --git a/data/ball_colors.asm b/data/battle/ball_colors.asm
index c3ba9d2b4..c3ba9d2b4 100644
--- a/data/ball_colors.asm
+++ b/data/battle/ball_colors.asm
diff --git a/data/battle/flee_mons.asm b/data/battle/flee_mons.asm
new file mode 100644
index 000000000..1b1cea036
--- /dev/null
+++ b/data/battle/flee_mons.asm
@@ -0,0 +1,36 @@
+FleeMons:
+; referenced by TryEnemyFlee and FastBallMultiplier
+
+SometimesFleeMons: ; 3c59a
+ db MAGNEMITE
+ db GRIMER
+ db TANGELA
+ db MR__MIME
+ db EEVEE
+ db PORYGON
+ db DRATINI
+ db DRAGONAIR
+ db TOGETIC
+ db UMBREON
+ db UNOWN
+ db SNUBBULL
+ db HERACROSS
+ db -1
+
+OftenFleeMons: ; 3c5a8
+ db CUBONE
+ db ARTICUNO
+ db ZAPDOS
+ db MOLTRES
+ db QUAGSIRE
+ db DELIBIRD
+ db PHANPY
+ db TEDDIURSA
+ db -1
+
+AlwaysFleeMons: ; 3c5b1
+ db RAIKOU
+ db ENTEI
+; db SUICUNE
+ db -1
+; 3c5b4
diff --git a/data/battle_tower.asm b/data/battle_tower.asm
index 2c78ffb82..d2e07fac3 100644
--- a/data/battle_tower.asm
+++ b/data/battle_tower.asm
@@ -1,7 +1,7 @@
BattleTowerTrainers: ; 1f814e
; The trainer class is not used in Crystal 1.0 due to a bug.
; Instead, the sixth character in the trainer's name is used.
-; See misc/battle_tower_47.asm
+; See mobile/battle_tower_47.asm
db "HANSON@@@@", FISHER
db "SAWYER@@@@", POKEMANIAC
db "MASUDA@@@@", GUITARIST
diff --git a/data/credits_script.asm b/data/credits_script.asm
new file mode 100644
index 000000000..810e61c83
--- /dev/null
+++ b/data/credits_script.asm
@@ -0,0 +1,287 @@
+CreditsScript: ; 10acb4
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+; Pokemon Crystal Version Staff
+ db STAFF, 1
+
+ db CREDITS_WAIT, 8
+
+; Play the credits music.
+ db CREDITS_MUSIC
+
+ db CREDITS_WAIT2, 10
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 0 ; Pichu
+
+ db DIRECTOR, 1
+ db SATOSHI_TAJIRI, 2
+
+ db CREDITS_WAIT, 12
+
+ db CODIRECTOR, 1
+ db JUNICHI_MASUDA, 2
+
+ db CREDITS_WAIT, 12
+
+ db PROGRAMMERS, 0
+ db SOUSUKE_TAMADA, 1
+ db HISASHI_SOGABE, 2
+ db KEITA_KAGAYA, 3
+ db YOSHINORI_MATSUDA, 4
+
+ db CREDITS_WAIT, 12
+
+ db PROGRAMMERS, 0
+ db SHIGEKI_MORIMOTO, 1
+ db TETSUYA_WATANABE, 2
+ db TAKENORI_OOTA, 3
+
+ db CREDITS_WAIT, 12
+
+ db GRAPHICS_DIRECTOR, 1
+ db KEN_SUGIMORI, 2
+
+ db CREDITS_WAIT, 12
+
+ db MONSTER_DESIGN, 0
+ db KEN_SUGIMORI, 1
+ db MOTOFUMI_FUJIWARA, 2
+ db SHIGEKI_MORIMOTO, 3
+ db HIRONOBU_YOSHIDA, 4
+ db SATOSHI_OOTA, 5
+
+ db CREDITS_WAIT, 12
+
+ db MONSTER_DESIGN, 0
+ db ATSUKO_NISHIDA, 1
+ db MUNEO_SAITO, 2
+ db RENA_YOSHIKAWA, 3
+
+ db CREDITS_WAIT, 12
+
+ db POKEMON_ANIMATION, 1
+ db HIRONOBU_YOSHIDA, 2
+ db JUN_OKUTANI, 3
+
+ db CREDITS_WAIT, 12
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 1 ; Smoochum
+
+ db GRAPHICS_DESIGN, 0
+ db HIRONOBU_YOSHIDA, 1
+ db JUN_OKUTANI, 2
+ db ASUKA_IWASHITA, 3
+ db TETSUYA_WATANABE, 4
+
+ db CREDITS_WAIT, 12
+
+ db CREDIT_MUSIC, 0
+ db JUNICHI_MASUDA, 1
+ db MORIKAZU_AOKI, 2
+ db GO_ICHINOSE, 3
+
+ db CREDITS_WAIT, 12
+
+ db CREDIT_SOUND_EFFECTS, 0
+ db MORIKAZU_AOKI, 1
+ db JUNICHI_MASUDA, 2
+ db TETSUYA_WATANABE, 3
+
+ db CREDITS_WAIT, 12
+
+ db GAME_DESIGN, 0
+ db JUNICHI_MASUDA, 1
+ db SHIGEKI_MORIMOTO, 2
+ db KOHJI_NISHINO, 3
+
+ db CREDITS_WAIT, 12
+
+ db GAME_DESIGN, 0
+ db TETSUJI_OOTA, 1
+ db HITOMI_SATO, 2
+ db KENJI_MATSUSHIMA, 3
+
+ db CREDITS_WAIT, 12
+
+ db GAME_SCENARIO, 0
+ db JUNICHI_MASUDA, 1
+ db KOHJI_NISHINO, 2
+ db TOSHINOBU_MATSUMIYA, 3
+ db KENJI_MATSUSHIMA, 4
+
+ db CREDITS_WAIT, 12
+
+ db POKEDEX_TEXT, 1
+ db TOSHINOBU_MATSUMIYA, 2
+
+ db CREDITS_WAIT, 12
+
+ db TOOL_PROGRAMMING, 1
+ db SOUSUKE_TAMADA, 2
+ db TAKENORI_OOTA, 3
+
+ db CREDITS_WAIT, 12
+
+ db PARAMETRIC_DESIGN, 1
+ db KOHJI_NISHINO, 2
+
+ db CREDITS_WAIT, 12
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 2 ; Ditto
+
+ db SCRIPT_DESIGN, 1
+ db TETSUJI_OOTA, 2
+ db NOBUHIRO_SEYA, 3
+
+ db CREDITS_WAIT, 12
+
+ db MAP_DATA_DESIGN, 1
+ db TETSUJI_OOTA, 2
+ db KAZUHITO_SEKINE, 3
+
+ db CREDITS_WAIT, 12
+
+ db MAP_DESIGN, 0
+ db TETSUJI_OOTA, 1
+ db KOHJI_NISHINO, 2
+ db NOBUHIRO_SEYA, 3
+
+ db CREDITS_WAIT, 12
+
+ db COORDINATION, 1
+ db HIROYUKI_ZINNAI, 2
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCERS, 0
+ db SATORU_IWATA, 1
+ db SATOSHI_YAMATO, 2
+ db SHIGERU_MIYAMOTO, 3
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCERS, 1
+ db TSUNEKAZU_ISHIHARA, 2
+
+ db CREDITS_WAIT, 12
+
+; Clear the banner.
+ db CREDITS_CLEAR
+
+ db CREDITS_WAIT, 1
+
+; Update the banner.
+ db CREDITS_SCENE, 3 ; Igglybuff
+
+ db US_VERSION_STAFF, 2
+
+ db CREDITS_WAIT, 9
+
+ db US_COORDINATION, 1
+ db GAIL_TILDEN, 2
+ db HIRO_NAKAMURA, 3
+
+ db CREDITS_WAIT, 12
+
+ db US_COORDINATION, 1
+ db JUNICHI_MASUDA, 2
+ db SETH_MCMAHILL, 3
+
+ db CREDITS_WAIT, 12
+
+ db US_COORDINATION, 1
+ db HIROTO_ALEXANDER, 2
+ db TERESA_LILLYGREN, 3
+
+ db CREDITS_WAIT, 12
+
+ db TEXT_TRANSLATION, 1
+ db NOB_OGASAWARA, 2
+
+ db CREDITS_WAIT, 12
+
+ db PROGRAMMERS, 1
+ db TERUKI_MURAKAWA, 2
+ db KAZUYOSHI_OSAWA, 3
+
+ db CREDITS_WAIT, 12
+
+ db PAAD_TESTING, 1
+ db THOMAS_HERTZOG, 2
+ db ERIK_JOHNSON, 3
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCT_TESTING, 0
+ db PLANNING, 1
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCT_TESTING, 0
+ db KEITA_NAKAMURA, 1
+ db HIROTAKA_UEMURA, 2
+ db HIROAKI_TAMURA, 3
+ db NORIAKI_SAKAGUCHI, 4
+
+ db CREDITS_WAIT, 12
+
+ db PRODUCT_TESTING, 0
+ db NCL_SUPER_MARIO_CLUB, 1
+ db KENJI_SAIKI, 2
+ db ATSUSHI_TADA, 3
+ db MIYUKI_SATO, 4
+
+ db CREDITS_WAIT, 12
+
+ db SPECIAL_THANKS, 0
+ db KIMIKO_NAKAMICHI, 1
+ db AKITO_MORI, 2
+
+ db CREDITS_WAIT, 12
+
+ db SPECIAL_THANKS, 0
+ db GAKUZI_NOMOTO, 1
+ db AI_MASHIMA, 2
+ db KUNIMI_KAWAMURA, 3
+
+ db CREDITS_WAIT, 12
+
+ db SPECIAL_THANKS, 0
+ db MIKIHIRO_ISHIKAWA, 1
+ db HIDEYUKI_HASHIMOTO, 2
+
+ db CREDITS_WAIT, 12
+
+ db EXECUTIVE_PRODUCER, 1
+ db HIROSHI_YAMAUCHI, 2
+
+ db CREDITS_WAIT, 12
+
+ db COPYRIGHT, 1
+
+ db CREDITS_WAIT, 9
+
+; Display "The End" graphic.
+ db CREDITS_THEEND
+
+ db CREDITS_WAIT, 20
+
+ db CREDITS_END
+; 10ae13
diff --git a/data/credits_strings.asm b/data/credits_strings.asm
new file mode 100644
index 000000000..f885e2152
--- /dev/null
+++ b/data/credits_strings.asm
@@ -0,0 +1,221 @@
+CreditsStrings:
+; entries correspond to constants/credits_constants.asm
+ dw .SatoshiTajiri
+ dw .JunichiMasuda
+ dw .TetsuyaWatanabe
+ dw .ShigekiMorimoto
+ dw .SousukeTamada
+ dw .TakenoriOota
+ dw .KenSugimori
+ dw .MotofumiFujiwara
+ dw .AtsukoNishida
+ dw .MuneoSaito
+ dw .SatoshiOota
+ dw .RenaYoshikawa
+ dw .JunOkutani
+ dw .HironobuYoshida
+ dw .AsukaIwashita
+ dw .GoIchinose
+ dw .MorikazuAoki
+ dw .KohjiNishino
+ dw .KenjiMatsushima
+ dw .ToshinobuMatsumiya
+ dw .SatoruIwata
+ dw .NobuhiroSeya
+ dw .KazuhitoSekine
+ dw .TetsujiOota
+ dw .NclSuperMarioClub
+ dw .Sarugakucho
+ dw .AkitoMori
+ dw .TakahiroHarada
+ dw .TohruHashimoto
+ dw .NoboruMatsumoto
+ dw .TakehiroIzushi
+ dw .TakashiKawaguchi
+ dw .TsunekazuIshihara
+ dw .HiroshiYamauchi
+ dw .KenjiSaiki
+ dw .AtsushiTada
+ dw .NaokoKawakami
+ dw .HiroyukiZinnai
+ dw .KunimiKawamura
+ dw .HisashiSogabe
+ dw .KeitaKagaya
+ dw .YoshinoriMatsuda
+ dw .HitomiSato
+ dw .ToruOsawa
+ dw .TakaoOhara
+ dw .YuichiroIto
+ dw .TakaoShimizu
+ dw .Planning
+ dw .KeitaNakamura
+ dw .HirotakaUemura
+ dw .HiroakiTamura
+ dw .NoriakiSakaguchi
+ dw .MiyukiSato
+ dw .GakuziNomoto
+ dw .AiMashima
+ dw .MikihiroIshikawa
+ dw .HideyukiHashimoto
+ dw .SatoshiYamato
+ dw .ShigeruMiyamoto
+ dw .GailTilden
+ dw .NobOgasawara
+ dw .SethMcMahill
+ dw .HirotoAlexander
+ dw .TeresaLillygren
+ dw .ThomasHertzog
+ dw .ErikJohnson
+ dw .HiroNakamura
+ dw .TerukiMurakawa
+ dw .KazuyoshiOsawa
+ dw .KimikoNakamichi
+ dw .End
+ dw .Unknown
+ dw .Staff
+ dw .Director
+ dw .CoDirector
+ dw .Programmers
+ dw .GraphicsDirector
+ dw .MonsterDesign
+ dw .GraphicsDesign
+ dw .Music
+ dw .SoundEffects
+ dw .GameDesign
+ dw .GameScenario
+ dw .ToolProgramming
+ dw .ParametricDesign
+ dw .ScriptDesign
+ dw .MapDataDesign
+ dw .MapDesign
+ dw .ProductTesting
+ dw .SpecialThanks
+ dw .Producers
+ dw .ExecutiveProducer
+ dw .PokemonAnimation
+ dw .PokedexText
+ dw .MobilePrjLeader
+ dw .MobileSystemAd
+ dw .MobileStadiumDir
+ dw .Coordination
+ dw .Copyright
+ dw .UsVersionStaff
+ dw .UsCoordination
+ dw .TextTranslation
+ dw .PaadTesting
+
+.SatoshiTajiri: db " SATOSHI TAJIRI@" ; "たじり さとし@"
+.JunichiMasuda: db " JUNICHI MASUDA@" ; "ますだ じゅんいち@"
+.TetsuyaWatanabe: db " TETSUYA WATANABE@" ; "わたなべ てつや@"
+.ShigekiMorimoto: db " SHIGEKI MORIMOTO@" ; "もりもと しげき@"
+.SousukeTamada: db " SOUSUKE TAMADA@" ; "たまだ そうすけ@"
+.TakenoriOota: db " TAKENORI OOTA@" ; "おおた たけのり@"
+.KenSugimori: db " KEN SUGIMORI@" ; "すぎもり けん@"
+.MotofumiFujiwara: db " MOTOFUMI FUJIWARA@" ; "ふじわら もとふみ@"
+.AtsukoNishida: db " ATSUKO NISHIDA@" ; "にしだ あつこ@"
+.MuneoSaito: db " MUNEO SAITO@" ; "さいとう むねお@"
+.SatoshiOota: db " SATOSHI OOTA@" ; "おおた さとし@"
+.RenaYoshikawa: db " RENA YOSHIKAWA@" ; "よしかわ れな@"
+.JunOkutani: db " JUN OKUTANI@" ; "おくたに じゅん@"
+.HironobuYoshida: db " HIRONOBU YOSHIDA@" ; "よしだ ひろのぶ@"
+.AsukaIwashita: db " ASUKA IWASHITA@" ; "いわした あすか@"
+.GoIchinose: db " GO ICHINOSE@" ; "いちのせ ごう@"
+.MorikazuAoki: db " MORIKAZU AOKI@" ; "あおき もりかず@"
+.KohjiNishino: db " KOHJI NISHINO@" ; "にしの こうじ@"
+.KenjiMatsushima: db " KENJI MATSUSHIMA@" ; "まつしま けんじ@"
+.ToshinobuMatsumiya: db "TOSHINOBU MATSUMIYA@" ; "まつみや としのぶ@"
+.SatoruIwata: db " SATORU IWATA@" ; "いわた さとる@"
+.NobuhiroSeya: db " NOBUHIRO SEYA@" ; "せや のぶひろ@"
+.KazuhitoSekine: db " KAZUHITO SEKINE@" ; "せきね かずひと@"
+.TetsujiOota: db " TETSUJI OOTA@" ; "おおた てつじ@"
+.NclSuperMarioClub: db "NCL SUPER MARIO CLUB@" ; "スーパーマりォクラブ@"
+.Sarugakucho: db " SARUGAKUCHO@" ; "さるがくちょう@"
+.AkitoMori: db " AKITO MORI@" ; "もり あきと@"
+.TakahiroHarada: db " TAKAHIRO HARADA@" ; "はらだ たかひろ@"
+.TohruHashimoto: db " TOHRU HASHIMOTO@" ; "はしもと とおる@"
+.NoboruMatsumoto: db " NOBORU MATSUMOTO@" ; "まつもと のぼる@"
+.TakehiroIzushi: db " TAKEHIRO IZUSHI@" ; "いずし たけひろ@"
+.TakashiKawaguchi: db " TAKASHI KAWAGUCHI@" ; "かわぐち たかし@"
+.TsunekazuIshihara: db " TSUNEKAZU ISHIHARA@" ; "いしはら つねかず@"
+.HiroshiYamauchi: db " HIROSHI YAMAUCHI@" ; "やまうち ひろし@"
+.KenjiSaiki: db " KENJI SAIKI@" ; "さいき けんじ@"
+.AtsushiTada: db " ATSUSHI TADA@" ; "ただ あつし@"
+.NaokoKawakami: db " NAOKO KAWAKAMI@" ; "かわかみ なおこ@"
+.HiroyukiZinnai: db " HIROYUKI ZINNAI@" ; "じんない ひろゆき@"
+.KunimiKawamura: db " KUNIMI KAWAMURA@" ; "かわむら くにみ@"
+.HisashiSogabe: db " HISASHI SOGABE@" ; "そがべ ひさし@"
+.KeitaKagaya: db " KEITA KAGAYA@" ; "かがや けいた@"
+.YoshinoriMatsuda: db " YOSHINORI MATSUDA@" ; "まつだ よしのり@"
+.HitomiSato: db " HITOMI SATO@" ; "さとう ひとみ@"
+.ToruOsawa: db " TORU OSAWA@" ; "おおさわ とおる@"
+.TakaoOhara: db " TAKAO OHARA@" ; "おおはら たかお@"
+.YuichiroIto: db " YUICHIRO ITO@" ; "いとう ゆういちろう@"
+.TakaoShimizu: db " TAKAO SHIMIZU@" ; "しみず たかお@"
+.Planning: db " SPECIAL PRODUCTION"
+ next " PLANNING" ; "きかくかいはつぶ@"
+ next " & DEVELOPMENT DEPT.@"
+.KeitaNakamura: db " KEITA NAKAMURA@" ; "なかむら けいた@"
+.HirotakaUemura: db " HIROTAKA UEMURA@" ; "うえむら ひろたか@"
+.HiroakiTamura: db " HIROAKI TAMURA@" ; "たむら ひろあき@"
+.NoriakiSakaguchi: db " NORIAKI SAKAGUCHI@" ; "さかぐち のりあき@"
+.MiyukiSato: db " MIYUKI SATO@" ; "さとう みゆき@"
+.GakuziNomoto: db " GAKUZI NOMOTO@" ; "のもと がくじ@"
+.AiMashima: db " AI MASHIMA@" ; "ましま あい@"
+.MikihiroIshikawa: db " MIKIHIRO ISHIKAWA@" ; "いしかわ みきひろ@"
+.HideyukiHashimoto: db " HIDEYUKI HASHIMOTO@" ; "はしもと ひでゆき@"
+.SatoshiYamato: db " SATOSHI YAMATO@" ; "やまと さとし@"
+.ShigeruMiyamoto: db " SHIGERU MIYAMOTO@" ; "みやもと しげる@"
+.End: db " END@" ; "おしまい@"
+.Unknown: db " ????????@" ; "????????@"
+.GailTilden: db " GAIL TILDEN@"
+.NobOgasawara: db " NOB OGASAWARA@"
+.SethMcMahill: db " SETH McMAHILL@"
+.HirotoAlexander: db " HIROTO ALEXANDER@"
+.TeresaLillygren: db " TERESA LILLYGREN@"
+.ThomasHertzog: db " THOMAS HERTZOG@"
+.ErikJohnson: db " ERIK JOHNSON@"
+.HiroNakamura: db " HIRO NAKAMURA@"
+.TerukiMurakawa: db " TERUKI MURAKAWA@"
+.KazuyoshiOsawa: db " KAZUYOSHI OSAWA@"
+.KimikoNakamichi: db " KIMIKO NAKAMICHI@"
+.Staff: db " #MON" ; "ポケットモンスター"
+ next " CRYSTAL VERSION" ; " クりスタル バージョン"
+ next " STAFF@" ; " スタッフ@"
+.Director: db " DIRECTOR@" ; "エグゼクティブ ディレクター@"
+.CoDirector: db " CO-DIRECTOR@" ; "ディレクター@"
+.Programmers: db " PROGRAMMERS@" ; "プログラム@"
+.GraphicsDirector: db " GRAPHICS DIRECTOR@" ; "グラフィック ディレクター@"
+.MonsterDesign: db " MONSTER DESIGN@" ; "# デザイン@"
+.GraphicsDesign: db " GRAPHICS DESIGN@" ; "グラフィック デザイン@"
+.Music: db " MUSIC@" ; "おんがく@"
+.SoundEffects: db " SOUND EFFECTS@" ; "サウンド エフ→クト@"
+.GameDesign: db " GAME DESIGN@" ; "ゲームデザイン@"
+.GameScenario: db " GAME SCENARIO@" ; "シナりォ@"
+.ToolProgramming: db " TOOL PROGRAMMING@" ; "ツール プログラム@"
+.ParametricDesign: db " PARAMETRIC DESIGN@" ; "パラメーター せってい@"
+.ScriptDesign: db " SCRIPT DESIGN@" ; "スクりプト せってい@"
+.MapDataDesign: db " MAP DATA DESIGN@" ; "マップデータ せってい@"
+.MapDesign: db " MAP DESIGN@" ; "マップ デザイン@"
+.ProductTesting: db " PRODUCT TESTING@" ; "デバッグプレイ@"
+.SpecialThanks: db " SPECIAL THANKS@" ; "スぺシャルサンクス@"
+.Producers: db " PRODUCERS@" ; "プロデューサー@"
+.ExecutiveProducer: db " EXECUTIVE PRODUCER@" ; "エグゼクティブ プロデューサー@"
+.PokemonAnimation: db " #MON ANIMATION@" ; "# アニメーション@"
+.PokedexText: db " #DEX TEXT@" ; "ずかん テキスト@"
+.MobilePrjLeader: db " MOBILE PRJ. LEADER@" ; "モバイルプロジ→クト りーダー@"
+.MobileSystemAd: db " MOBILE SYSTEM AD.@" ; "モバイル システムアドバイザー@"
+.MobileStadiumDir: db "MOBILE STADIUM DIR.@" ; "モバイルスタジアム ディレクター@"
+.Coordination: db " COORDINATION@" ; "コーディネーター@"
+.UsVersionStaff: db " US VERSION STAFF@"
+.UsCoordination: db " US COORDINATION@"
+.TextTranslation: db " TEXT TRANSLATION@"
+.PaadTesting: db " PAAD TESTING@"
+
+.Copyright:
+ ; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o
+ db $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c
+ ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
+ next $60,$61,$62,$63,$64,$65,$66,$6d,$6e,$6f,$70,$71,$72, $7a,$7b,$7c
+ ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
+ next $60,$61,$62,$63,$64,$65,$66,$73,$74,$75,$76,$77,$78,$79, $7a,$7b,$7c
+ db "@"
diff --git a/data/egg_moves.asm b/data/egg_moves.asm
deleted file mode 100644
index 2fcf47232..000000000
--- a/data/egg_moves.asm
+++ /dev/null
@@ -1,870 +0,0 @@
-INCLUDE "includes.asm"
-
-
-SECTION "Egg Moves", ROMX
-
-; All instances of Charm, Steel Wing, Sweet Scent, and Lovely Kiss were
-; removed from egg move lists in Crystal, because they are also TMs.
-
-; Staryu's egg moves were removed in Crystal, because Staryu is genderless
-; and can only breed with Ditto.
-
-
-INCLUDE "data/egg_move_pointers.asm"
-
-
-EggMoves::
-
-BulbasaurEggMoves:
- db LIGHT_SCREEN
- db SKULL_BASH
- db SAFEGUARD
-if !_CRYSTAL
- db CHARM
-endc
- db RAZOR_WIND
- db PETAL_DANCE
- db $ff
-
-CharmanderEggMoves:
- db BELLY_DRUM
- db ANCIENTPOWER
- db ROCK_SLIDE
- db BITE
- db OUTRAGE
- db BEAT_UP
- db $ff
-
-SquirtleEggMoves:
- db MIRROR_COAT
- db HAZE
- db MIST
- db CONFUSION
- db FORESIGHT
- db FLAIL
- db $ff
-
-PidgeyEggMoves:
- db PURSUIT
- db FAINT_ATTACK
- db FORESIGHT
-if !_CRYSTAL
- db STEEL_WING
-endc
- db $ff
-
-RattataEggMoves:
- db SCREECH
- db FLAME_WHEEL
- db FURY_SWIPES
- db BITE
- db COUNTER
- db REVERSAL
- db $ff
-
-SpearowEggMoves:
- db FAINT_ATTACK
- db FALSE_SWIPE
- db SCARY_FACE
- db QUICK_ATTACK
- db TRI_ATTACK
- db $ff
-
-EkansEggMoves:
- db PURSUIT
- db SLAM
- db SPITE
- db BEAT_UP
-if _CRYSTAL
- db CRUNCH
-endc
- db $ff
-
-SandshrewEggMoves:
- db FLAIL
- db SAFEGUARD
- db COUNTER
- db RAPID_SPIN
-if _CRYSTAL
- db METAL_CLAW
-endc
- db $ff
-
-NidoranFEggMoves:
- db SUPERSONIC
- db DISABLE
- db TAKE_DOWN
- db FOCUS_ENERGY
- db CHARM
- db COUNTER
- db BEAT_UP
- db $ff
-
-NidoranMEggMoves:
- db SUPERSONIC
- db DISABLE
- db TAKE_DOWN
- db CONFUSION
- db AMNESIA
- db COUNTER
- db BEAT_UP
- db $ff
-
-VulpixEggMoves:
- db FAINT_ATTACK
- db HYPNOSIS
- db FLAIL
- db SPITE
- db DISABLE
- db $ff
-
-ZubatEggMoves:
- db QUICK_ATTACK
- db PURSUIT
- db FAINT_ATTACK
- db GUST
- db WHIRLWIND
- db $ff
-
-OddishEggMoves:
- db SWORDS_DANCE
- db RAZOR_LEAF
- db FLAIL
- db SYNTHESIS
-if !_CRYSTAL
- db CHARM
-endc
- db $ff
-
-ParasEggMoves:
- db FALSE_SWIPE
- db SCREECH
- db COUNTER
- db PSYBEAM
- db FLAIL
-if !_CRYSTAL
- db SWEET_SCENT
-endc
- db LIGHT_SCREEN
- db PURSUIT
- db $ff
-
-VenonatEggMoves:
- db BATON_PASS
- db SCREECH
- db GIGA_DRAIN
- db $ff
-
-DiglettEggMoves:
- db FAINT_ATTACK
- db SCREECH
- db ANCIENTPOWER
- db PURSUIT
- db BEAT_UP
- db $ff
-
-MeowthEggMoves:
- db SPITE
- db CHARM
- db HYPNOSIS
- db AMNESIA
- db $ff
-
-PsyduckEggMoves:
- db ICE_BEAM
- db HYPNOSIS
- db PSYBEAM
- db FORESIGHT
- db LIGHT_SCREEN
- db FUTURE_SIGHT
- db PSYCHIC_M
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
-
-MankeyEggMoves:
- db ROCK_SLIDE
- db FORESIGHT
- db MEDITATE
- db COUNTER
- db REVERSAL
- db BEAT_UP
- db $ff
-
-GrowlitheEggMoves:
- db BODY_SLAM
- db SAFEGUARD
- db CRUNCH
- db THRASH
- db FIRE_SPIN
- db $ff
-
-PoliwagEggMoves:
- db MIST
- db SPLASH
- db BUBBLEBEAM
- db HAZE
- db MIND_READER
- db $ff
-
-AbraEggMoves:
- db LIGHT_SCREEN
- db ENCORE
- db BARRIER
- db $ff
-
-MachopEggMoves:
- db LIGHT_SCREEN
- db MEDITATE
- db ROLLING_KICK
- db ENCORE
- db $ff
-
-BellsproutEggMoves:
- db SWORDS_DANCE
- db ENCORE
- db REFLECT
- db SYNTHESIS
- db LEECH_LIFE
- db $ff
-
-TentacoolEggMoves:
- db AURORA_BEAM
- db MIRROR_COAT
- db RAPID_SPIN
- db HAZE
- db SAFEGUARD
- db $ff
-
-GeodudeEggMoves:
- db MEGA_PUNCH
- db ROCK_SLIDE
- db $ff
-
-PonytaEggMoves:
- db FLAME_WHEEL
- db THRASH
- db DOUBLE_KICK
- db HYPNOSIS
- db CHARM
- db QUICK_ATTACK
- db $ff
-
-SlowpokeEggMoves:
- db SAFEGUARD
- db BELLY_DRUM
- db FUTURE_SIGHT
- db STOMP
- db $ff
-
-FarfetchDEggMoves:
-if !_CRYSTAL
- db STEEL_WING
-endc
- db FORESIGHT
- db MIRROR_MOVE
- db GUST
- db QUICK_ATTACK
- db FLAIL
- db $ff
-
-DoduoEggMoves:
- db QUICK_ATTACK
- db SUPERSONIC
- db HAZE
- db FAINT_ATTACK
- db FLAIL
- db $ff
-
-SeelEggMoves:
- db LICK
- db PERISH_SONG
- db DISABLE
- db PECK
- db SLAM
- db ENCORE
- db $ff
-
-GrimerEggMoves:
- db HAZE
- db MEAN_LOOK
- db LICK
- db $ff
-
-ShellderEggMoves:
- db BUBBLEBEAM
- db TAKE_DOWN
- db BARRIER
- db RAPID_SPIN
- db SCREECH
- db $ff
-
-GastlyEggMoves:
- db PSYWAVE
- db PERISH_SONG
- db HAZE
- db $ff
-
-OnixEggMoves:
- db ROCK_SLIDE
- db FLAIL
- db $ff
-
-DrowzeeEggMoves:
- db LIGHT_SCREEN
- db BARRIER
- db $ff
-
-KrabbyEggMoves:
- db DIG
- db HAZE
- db AMNESIA
- db FLAIL
- db SLAM
- db $ff
-
-ExeggcuteEggMoves:
- db SYNTHESIS
- db MOONLIGHT
- db REFLECT
- db MEGA_DRAIN
- db ANCIENTPOWER
- db $ff
-
-CuboneEggMoves:
- db ROCK_SLIDE
- db ANCIENTPOWER
- db BELLY_DRUM
- db SCREECH
- db SKULL_BASH
- db PERISH_SONG
-if _CRYSTAL
- db SWORDS_DANCE
-endc
- db $ff
-
-LickitungEggMoves:
- db BELLY_DRUM
- db MAGNITUDE
- db BODY_SLAM
- db $ff
-
-KoffingEggMoves:
- db SCREECH
- db PSYWAVE
- db PSYBEAM
- db DESTINY_BOND
- db PAIN_SPLIT
- db $ff
-
-RhyhornEggMoves:
- db CRUNCH
- db REVERSAL
- db ROCK_SLIDE
- db THRASH
- db PURSUIT
- db COUNTER
- db MAGNITUDE
- db $ff
-
-ChanseyEggMoves:
- db PRESENT
- db METRONOME
- db HEAL_BELL
- db $ff
-
-TangelaEggMoves:
- db FLAIL
- db CONFUSION
- db MEGA_DRAIN
- db REFLECT
- db AMNESIA
- db $ff
-
-KangaskhanEggMoves:
- db STOMP
- db FORESIGHT
- db FOCUS_ENERGY
- db SAFEGUARD
- db DISABLE
- db $ff
-
-HorseaEggMoves:
- db FLAIL
- db AURORA_BEAM
- db OCTAZOOKA
- db DISABLE
- db SPLASH
- db DRAGON_RAGE
- db $ff
-
-GoldeenEggMoves:
- db PSYBEAM
- db HAZE
- db HYDRO_PUMP
- db $ff
-
-if !_CRYSTAL
-StaryuEggMoves:
- db AURORA_BEAM
- db BARRIER
- db SUPERSONIC
- db $ff
-endc
-
-MrMimeEggMoves:
- db FUTURE_SIGHT
- db HYPNOSIS
- db MIMIC
- db $ff
-
-ScytherEggMoves:
- db COUNTER
- db SAFEGUARD
- db BATON_PASS
- db RAZOR_WIND
- db REVERSAL
- db LIGHT_SCREEN
- db $ff
-
-PinsirEggMoves:
- db FURY_ATTACK
- db FLAIL
- db $ff
-
-LaprasEggMoves:
- db AURORA_BEAM
- db FORESIGHT
- db $ff
-
-EeveeEggMoves:
- db FLAIL
- db CHARM
- db $ff
-
-OmanyteEggMoves:
- db BUBBLEBEAM
- db AURORA_BEAM
- db SLAM
- db SUPERSONIC
- db HAZE
- db $ff
-
-KabutoEggMoves:
- db BUBBLEBEAM
- db AURORA_BEAM
- db RAPID_SPIN
- db DIG
- db FLAIL
- db $ff
-
-AerodactylEggMoves:
- db WHIRLWIND
- db PURSUIT
- db FORESIGHT
-if !_CRYSTAL
- db STEEL_WING
-endc
- db $ff
-
-SnorlaxEggMoves:
- db LICK
-if !_CRYSTAL
- db CHARM
-endc
- db $ff
-
-DratiniEggMoves:
- db LIGHT_SCREEN
- db MIST
- db HAZE
- db SUPERSONIC
- db $ff
-
-ChikoritaEggMoves:
- db VINE_WHIP
- db LEECH_SEED
- db COUNTER
- db ANCIENTPOWER
- db FLAIL
- db SWORDS_DANCE
- db $ff
-
-CyndaquilEggMoves:
- db FURY_SWIPES
- db QUICK_ATTACK
- db REVERSAL
- db THRASH
- db FORESIGHT
-if _CRYSTAL
- db SUBMISSION
-endc
- db $ff
-
-TotodileEggMoves:
- db CRUNCH
- db THRASH
- db HYDRO_PUMP
- db ANCIENTPOWER
- db RAZOR_WIND
- db ROCK_SLIDE
- db $ff
-
-SentretEggMoves:
- db DOUBLE_EDGE
- db PURSUIT
- db SLASH
- db FOCUS_ENERGY
- db REVERSAL
- db $ff
-
-HoothootEggMoves:
- db MIRROR_MOVE
- db SUPERSONIC
- db FAINT_ATTACK
- db WING_ATTACK
- db WHIRLWIND
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
-
-LedybaEggMoves:
- db PSYBEAM
- db BIDE
- db LIGHT_SCREEN
- db $ff
-
-SpinarakEggMoves:
- db PSYBEAM
- db DISABLE
- db SONICBOOM
- db BATON_PASS
- db PURSUIT
- db $ff
-
-ChinchouEggMoves:
- db FLAIL
- db SUPERSONIC
- db SCREECH
- db $ff
-
-PichuEggMoves:
- db REVERSAL
- db BIDE
- db PRESENT
- db ENCORE
- db DOUBLESLAP
- db $ff
-
-CleffaEggMoves:
- db PRESENT
- db METRONOME
- db AMNESIA
- db BELLY_DRUM
- db SPLASH
- db MIMIC
- db $ff
-
-IgglybuffEggMoves:
- db PERISH_SONG
- db PRESENT
- db FAINT_ATTACK
- db $ff
-
-TogepiEggMoves:
- db PRESENT
- db MIRROR_MOVE
- db PECK
- db FORESIGHT
- db FUTURE_SIGHT
- db $ff
-
-NatuEggMoves:
- db HAZE
- db DRILL_PECK
- db QUICK_ATTACK
- db FAINT_ATTACK
- db STEEL_WING
- db $ff
-
-MareepEggMoves:
- db THUNDERBOLT
- db TAKE_DOWN
- db BODY_SLAM
- db SAFEGUARD
- db SCREECH
- db REFLECT
- db $ff
-
-MarillEggMoves:
- db LIGHT_SCREEN
- db PRESENT
- db AMNESIA
- db FUTURE_SIGHT
- db BELLY_DRUM
- db PERISH_SONG
- db SUPERSONIC
- db FORESIGHT
- db $ff
-
-SudowoodoEggMoves:
- db SELFDESTRUCT
- db $ff
-
-HoppipEggMoves:
- db CONFUSION
- db GROWL
- db ENCORE
- db DOUBLE_EDGE
- db REFLECT
- db AMNESIA
- db PAY_DAY
- db $ff
-
-AipomEggMoves:
- db COUNTER
- db SCREECH
- db PURSUIT
- db AGILITY
- db SPITE
- db SLAM
- db DOUBLESLAP
- db BEAT_UP
- db $ff
-
-YanmaEggMoves:
- db WHIRLWIND
- db REVERSAL
- db LEECH_LIFE
- db $ff
-
-WooperEggMoves:
- db BODY_SLAM
- db ANCIENTPOWER
- db SAFEGUARD
- db $ff
-
-MurkrowEggMoves:
- db WHIRLWIND
- db DRILL_PECK
- db QUICK_ATTACK
- db MIRROR_MOVE
- db WING_ATTACK
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
-
-MisdreavusEggMoves:
- db SCREECH
- db DESTINY_BOND
- db $ff
-
-GirafarigEggMoves:
- db TAKE_DOWN
- db AMNESIA
- db FORESIGHT
- db FUTURE_SIGHT
- db BEAT_UP
- db $ff
-
-PinecoEggMoves:
- db REFLECT
- db PIN_MISSILE
- db FLAIL
- db SWIFT
- db $ff
-
-DunsparceEggMoves:
- db BIDE
- db ANCIENTPOWER
- db ROCK_SLIDE
- db BITE
- db RAGE
- db $ff
-
-GligarEggMoves:
- db METAL_CLAW
- db WING_ATTACK
- db RAZOR_WIND
- db COUNTER
- db $ff
-
-SnubbullEggMoves:
- db METRONOME
- db FAINT_ATTACK
- db REFLECT
- db PRESENT
- db CRUNCH
- db HEAL_BELL
- db LICK
- db LEER
- db $ff
-
-QwilfishEggMoves:
- db FLAIL
- db HAZE
- db BUBBLEBEAM
- db SUPERSONIC
- db $ff
-
-ShuckleEggMoves:
- db SWEET_SCENT
- db $ff
-
-HeracrossEggMoves:
- db HARDEN
- db BIDE
- db FLAIL
- db $ff
-
-SneaselEggMoves:
- db COUNTER
- db SPITE
- db FORESIGHT
- db REFLECT
- db BITE
- db $ff
-
-TeddiursaEggMoves:
- db CRUNCH
- db TAKE_DOWN
- db SEISMIC_TOSS
- db FOCUS_ENERGY
- db COUNTER
-if _CRYSTAL
- db METAL_CLAW
-endc
- db $ff
-
-SlugmaEggMoves:
- db ACID_ARMOR
- db $ff
-
-SwinubEggMoves:
- db TAKE_DOWN
- db BITE
- db BODY_SLAM
- db ROCK_SLIDE
- db ANCIENTPOWER
- db $ff
-
-CorsolaEggMoves:
- db ROCK_SLIDE
- db SAFEGUARD
- db SCREECH
- db MIST
- db AMNESIA
- db $ff
-
-RemoraidEggMoves:
- db AURORA_BEAM
- db OCTAZOOKA
- db SUPERSONIC
- db HAZE
- db SCREECH
- db $ff
-
-DelibirdEggMoves:
- db AURORA_BEAM
- db QUICK_ATTACK
- db FUTURE_SIGHT
- db SPLASH
- db RAPID_SPIN
- db $ff
-
-MantineEggMoves:
- db TWISTER
- db HYDRO_PUMP
- db HAZE
- db SLAM
- db $ff
-
-SkarmoryEggMoves:
- db DRILL_PECK
- db PURSUIT
- db WHIRLWIND
-if _CRYSTAL
- db SKY_ATTACK
-endc
- db $ff
-
-HoundourEggMoves:
- db FIRE_SPIN
- db RAGE
- db PURSUIT
- db COUNTER
- db SPITE
- db REVERSAL
- db BEAT_UP
- db $ff
-
-PhanpyEggMoves:
- db FOCUS_ENERGY
- db BODY_SLAM
- db ANCIENTPOWER
-if _CRYSTAL
- db WATER_GUN
-endc
- db $ff
-
-StantlerEggMoves:
- db REFLECT
- db SPITE
- db DISABLE
- db LIGHT_SCREEN
- db BITE
- db $ff
-
-TyrogueEggMoves:
- db RAPID_SPIN
- db HI_JUMP_KICK
- db MACH_PUNCH
- db MIND_READER
- db $ff
-
-SmoochumEggMoves:
-if !_CRYSTAL
- db LOVELY_KISS
-endc
- db MEDITATE
- db $ff
-
-ElekidEggMoves:
- db KARATE_CHOP
- db BARRIER
- db ROLLING_KICK
- db MEDITATE
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
-
-MagbyEggMoves:
- db KARATE_CHOP
- db MEGA_PUNCH
- db BARRIER
- db SCREECH
-if _CRYSTAL
- db CROSS_CHOP
-endc
- db $ff
-
-MiltankEggMoves:
- db PRESENT
- db REVERSAL
- db SEISMIC_TOSS
- db $ff
-
-LarvitarEggMoves:
- db PURSUIT
- db STOMP
- db OUTRAGE
- db FOCUS_ENERGY
- db ANCIENTPOWER
- db $ff
-
-NoEggMoves:
- db $ff
diff --git a/data/evos_attacks.asm b/data/evos_attacks.asm
deleted file mode 100644
index 749731812..000000000
--- a/data/evos_attacks.asm
+++ /dev/null
@@ -1,3398 +0,0 @@
-INCLUDE "includes.asm"
-
-
-SECTION "Evolutions and Attacks", ROMX
-
-
-INCLUDE "data/evos_attacks_pointers.asm"
-
-
-EvosAttacks::
-
-BulbasaurEvosAttacks:
- db EVOLVE_LEVEL, 16, IVYSAUR
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, GROWL
- db 7, LEECH_SEED
- db 10, VINE_WHIP
- db 15, POISONPOWDER
- db 15, SLEEP_POWDER
- db 20, RAZOR_LEAF
- db 25, SWEET_SCENT
- db 32, GROWTH
- db 39, SYNTHESIS
- db 46, SOLARBEAM
- db 0 ; no more level-up moves
-
-IvysaurEvosAttacks:
- db EVOLVE_LEVEL, 32, VENUSAUR
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, LEECH_SEED
- db 4, GROWL
- db 7, LEECH_SEED
- db 10, VINE_WHIP
- db 15, POISONPOWDER
- db 15, SLEEP_POWDER
- db 22, RAZOR_LEAF
- db 29, SWEET_SCENT
- db 38, GROWTH
- db 47, SYNTHESIS
- db 56, SOLARBEAM
- db 0 ; no more level-up moves
-
-VenusaurEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, LEECH_SEED
- db 1, VINE_WHIP
- db 4, GROWL
- db 7, LEECH_SEED
- db 10, VINE_WHIP
- db 15, POISONPOWDER
- db 15, SLEEP_POWDER
- db 22, RAZOR_LEAF
- db 29, SWEET_SCENT
- db 41, GROWTH
- db 53, SYNTHESIS
- db 65, SOLARBEAM
- db 0 ; no more level-up moves
-
-CharmanderEvosAttacks:
- db EVOLVE_LEVEL, 16, CHARMELEON
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 7, EMBER
- db 13, SMOKESCREEN
- db 19, RAGE
- db 25, SCARY_FACE
- db 31, FLAMETHROWER
- db 37, SLASH
- db 43, DRAGON_RAGE
- db 49, FIRE_SPIN
- db 0 ; no more level-up moves
-
-CharmeleonEvosAttacks:
- db EVOLVE_LEVEL, 36, CHARIZARD
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 1, EMBER
- db 7, EMBER
- db 13, SMOKESCREEN
- db 20, RAGE
- db 27, SCARY_FACE
- db 34, FLAMETHROWER
- db 41, SLASH
- db 48, DRAGON_RAGE
- db 55, FIRE_SPIN
- db 0 ; no more level-up moves
-
-CharizardEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 1, EMBER
- db 1, SMOKESCREEN
- db 7, EMBER
- db 13, SMOKESCREEN
- db 20, RAGE
- db 27, SCARY_FACE
- db 34, FLAMETHROWER
- db 36, WING_ATTACK
- db 44, SLASH
- db 54, DRAGON_RAGE
- db 64, FIRE_SPIN
- db 0 ; no more level-up moves
-
-SquirtleEvosAttacks:
- db EVOLVE_LEVEL, 16, WARTORTLE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, TAIL_WHIP
- db 7, BUBBLE
- db 10, WITHDRAW
- db 13, WATER_GUN
- db 18, BITE
- db 23, RAPID_SPIN
- db 28, PROTECT
- db 33, RAIN_DANCE
- db 40, SKULL_BASH
- db 47, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-WartortleEvosAttacks:
- db EVOLVE_LEVEL, 36, BLASTOISE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 1, BUBBLE
- db 4, TAIL_WHIP
- db 7, BUBBLE
- db 10, WITHDRAW
- db 13, WATER_GUN
- db 19, BITE
- db 25, RAPID_SPIN
- db 31, PROTECT
- db 37, RAIN_DANCE
- db 45, SKULL_BASH
- db 53, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-BlastoiseEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 1, BUBBLE
- db 1, WITHDRAW
- db 4, TAIL_WHIP
- db 7, BUBBLE
- db 10, WITHDRAW
- db 13, WATER_GUN
- db 19, BITE
- db 25, RAPID_SPIN
- db 31, PROTECT
- db 42, RAIN_DANCE
- db 55, SKULL_BASH
- db 68, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-CaterpieEvosAttacks:
- db EVOLVE_LEVEL, 7, METAPOD
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, STRING_SHOT
- db 0 ; no more level-up moves
-
-MetapodEvosAttacks:
- db EVOLVE_LEVEL, 10, BUTTERFREE
- db 0 ; no more evolutions
- db 1, HARDEN
- db 7, HARDEN
- db 0 ; no more level-up moves
-
-ButterfreeEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONFUSION
- db 10, CONFUSION
- db 13, POISONPOWDER
- db 14, STUN_SPORE
- db 15, SLEEP_POWDER
- db 18, SUPERSONIC
- db 23, WHIRLWIND
- db 28, GUST
- db 34, PSYBEAM
- db 40, SAFEGUARD
- db 0 ; no more level-up moves
-
-WeedleEvosAttacks:
- db EVOLVE_LEVEL, 7, KAKUNA
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, STRING_SHOT
- db 0 ; no more level-up moves
-
-KakunaEvosAttacks:
- db EVOLVE_LEVEL, 10, BEEDRILL
- db 0 ; no more evolutions
- db 1, HARDEN
- db 7, HARDEN
- db 0 ; no more level-up moves
-
-BeedrillEvosAttacks:
- db 0 ; no more evolutions
- db 1, FURY_ATTACK
- db 10, FURY_ATTACK
- db 15, FOCUS_ENERGY
- db 20, TWINEEDLE
- db 25, RAGE
- db 30, PURSUIT
- db 35, PIN_MISSILE
- db 40, AGILITY
- db 0 ; no more level-up moves
-
-PidgeyEvosAttacks:
- db EVOLVE_LEVEL, 18, PIDGEOTTO
- db 0 ; no more evolutions
- db 1, TACKLE
- db 5, SAND_ATTACK
- db 9, GUST
- db 15, QUICK_ATTACK
- db 21, WHIRLWIND
- db 29, WING_ATTACK
- db 37, AGILITY
- db 47, MIRROR_MOVE
- db 0 ; no more level-up moves
-
-PidgeottoEvosAttacks:
- db EVOLVE_LEVEL, 36, PIDGEOT
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SAND_ATTACK
- db 1, GUST
- db 5, SAND_ATTACK
- db 9, GUST
- db 15, QUICK_ATTACK
- db 23, WHIRLWIND
- db 33, WING_ATTACK
- db 43, AGILITY
- db 55, MIRROR_MOVE
- db 0 ; no more level-up moves
-
-PidgeotEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SAND_ATTACK
- db 1, GUST
- db 1, QUICK_ATTACK
- db 5, SAND_ATTACK
- db 9, GUST
- db 15, QUICK_ATTACK
- db 23, WHIRLWIND
- db 33, WING_ATTACK
- db 46, AGILITY
- db 61, MIRROR_MOVE
- db 0 ; no more level-up moves
-
-RattataEvosAttacks:
- db EVOLVE_LEVEL, 20, RATICATE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 7, QUICK_ATTACK
- db 13, HYPER_FANG
- db 20, FOCUS_ENERGY
- db 27, PURSUIT
- db 34, SUPER_FANG
- db 0 ; no more level-up moves
-
-RaticateEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 1, QUICK_ATTACK
- db 7, QUICK_ATTACK
- db 13, HYPER_FANG
- db 20, SCARY_FACE
- db 30, PURSUIT
- db 40, SUPER_FANG
- db 0 ; no more level-up moves
-
-SpearowEvosAttacks:
- db EVOLVE_LEVEL, 20, FEAROW
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 7, LEER
- db 13, FURY_ATTACK
- db 25, PURSUIT
- db 31, MIRROR_MOVE
- db 37, DRILL_PECK
- db 43, AGILITY
- db 0 ; no more level-up moves
-
-FearowEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 1, LEER
- db 1, FURY_ATTACK
- db 7, LEER
- db 13, FURY_ATTACK
- db 26, PURSUIT
- db 32, MIRROR_MOVE
- db 40, DRILL_PECK
- db 47, AGILITY
- db 0 ; no more level-up moves
-
-EkansEvosAttacks:
- db EVOLVE_LEVEL, 22, ARBOK
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 9, POISON_STING
- db 15, BITE
- db 23, GLARE
- db 29, SCREECH
- db 37, ACID
- db 43, HAZE
- db 0 ; no more level-up moves
-
-ArbokEvosAttacks:
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 1, POISON_STING
- db 1, BITE
- db 9, POISON_STING
- db 15, BITE
- db 25, GLARE
- db 33, SCREECH
- db 43, ACID
- db 51, HAZE
- db 0 ; no more level-up moves
-
-PikachuEvosAttacks:
- db EVOLVE_ITEM, THUNDERSTONE, RAICHU
- db 0 ; no more evolutions
- db 1, THUNDERSHOCK
- db 1, GROWL
- db 6, TAIL_WHIP
- db 8, THUNDER_WAVE
- db 11, QUICK_ATTACK
- db 15, DOUBLE_TEAM
- db 20, SLAM
- db 26, THUNDERBOLT
- db 33, AGILITY
- db 41, THUNDER
- db 50, LIGHT_SCREEN
- db 0 ; no more level-up moves
-
-RaichuEvosAttacks:
- db 0 ; no more evolutions
- db 1, THUNDERSHOCK
- db 1, TAIL_WHIP
- db 1, QUICK_ATTACK
- db 1, THUNDERBOLT
- db 0 ; no more level-up moves
-
-SandshrewEvosAttacks:
- db EVOLVE_LEVEL, 22, SANDSLASH
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 6, DEFENSE_CURL
- db 11, SAND_ATTACK
- db 17, POISON_STING
- db 23, SLASH
- db 30, SWIFT
- db 37, FURY_SWIPES
- db 45, SANDSTORM
- db 0 ; no more level-up moves
-
-SandslashEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, DEFENSE_CURL
- db 1, SAND_ATTACK
- db 6, DEFENSE_CURL
- db 11, SAND_ATTACK
- db 17, POISON_STING
- db 24, SLASH
- db 33, SWIFT
- db 42, FURY_SWIPES
- db 52, SANDSTORM
- db 0 ; no more level-up moves
-
-NidoranFEvosAttacks:
- db EVOLVE_LEVEL, 16, NIDORINA
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, TACKLE
- db 8, SCRATCH
- db 12, DOUBLE_KICK
- db 17, POISON_STING
- db 23, TAIL_WHIP
- db 30, BITE
- db 38, FURY_SWIPES
- db 0 ; no more level-up moves
-
-NidorinaEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, NIDOQUEEN
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, TACKLE
- db 8, SCRATCH
- db 12, DOUBLE_KICK
- db 19, POISON_STING
- db 27, TAIL_WHIP
- db 36, BITE
- db 46, FURY_SWIPES
- db 0 ; no more level-up moves
-
-NidoqueenEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCRATCH
- db 1, DOUBLE_KICK
- db 1, TAIL_WHIP
- db 23, BODY_SLAM
- db 0 ; no more level-up moves
-
-NidoranMEvosAttacks:
- db EVOLVE_LEVEL, 16, NIDORINO
- db 0 ; no more evolutions
- db 1, LEER
- db 1, TACKLE
- db 8, HORN_ATTACK
- db 12, DOUBLE_KICK
- db 17, POISON_STING
- db 23, FOCUS_ENERGY
- db 30, FURY_ATTACK
- db 38, HORN_DRILL
- db 0 ; no more level-up moves
-
-NidorinoEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, NIDOKING
- db 0 ; no more evolutions
- db 1, LEER
- db 1, TACKLE
- db 8, HORN_ATTACK
- db 12, DOUBLE_KICK
- db 19, POISON_STING
- db 27, FOCUS_ENERGY
- db 36, FURY_ATTACK
- db 46, HORN_DRILL
- db 0 ; no more level-up moves
-
-NidokingEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, HORN_ATTACK
- db 1, DOUBLE_KICK
- db 1, POISON_STING
- db 23, THRASH
- db 0 ; no more level-up moves
-
-ClefairyEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, CLEFABLE
- db 0 ; no more evolutions
- db 1, POUND
- db 1, GROWL
- db 4, ENCORE
- db 8, SING
- db 13, DOUBLESLAP
- db 19, MINIMIZE
- db 26, DEFENSE_CURL
- db 34, METRONOME
- db 43, MOONLIGHT
- db 53, LIGHT_SCREEN
- db 0 ; no more level-up moves
-
-ClefableEvosAttacks:
- db 0 ; no more evolutions
- db 1, SING
- db 1, DOUBLESLAP
- db 1, METRONOME
- db 1, MOONLIGHT
- db 0 ; no more level-up moves
-
-VulpixEvosAttacks:
- db EVOLVE_ITEM, FIRE_STONE, NINETALES
- db 0 ; no more evolutions
- db 1, EMBER
- db 1, TAIL_WHIP
- db 7, QUICK_ATTACK
- db 13, ROAR
- db 19, CONFUSE_RAY
- db 25, SAFEGUARD
- db 31, FLAMETHROWER
- db 37, FIRE_SPIN
- db 0 ; no more level-up moves
-
-NinetalesEvosAttacks:
- db 0 ; no more evolutions
- db 1, EMBER
- db 1, QUICK_ATTACK
- db 1, CONFUSE_RAY
- db 1, SAFEGUARD
- db 43, FIRE_SPIN
- db 0 ; no more level-up moves
-
-JigglypuffEvosAttacks:
- db EVOLVE_ITEM, MOON_STONE, WIGGLYTUFF
- db 0 ; no more evolutions
- db 1, SING
- db 4, DEFENSE_CURL
- db 9, POUND
- db 14, DISABLE
- db 19, ROLLOUT
- db 24, DOUBLESLAP
- db 29, REST
- db 34, BODY_SLAM
- db 39, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-WigglytuffEvosAttacks:
- db 0 ; no more evolutions
- db 1, SING
- db 1, DISABLE
- db 1, DEFENSE_CURL
- db 1, DOUBLESLAP
- db 0 ; no more level-up moves
-
-ZubatEvosAttacks:
- db EVOLVE_LEVEL, 22, GOLBAT
- db 0 ; no more evolutions
- db 1, LEECH_LIFE
- db 6, SUPERSONIC
- db 12, BITE
- db 19, CONFUSE_RAY
- db 27, WING_ATTACK
- db 36, MEAN_LOOK
- db 46, HAZE
- db 0 ; no more level-up moves
-
-GolbatEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, CROBAT
- db 0 ; no more evolutions
- db 1, SCREECH
- db 1, LEECH_LIFE
- db 1, SUPERSONIC
- db 6, SUPERSONIC
- db 12, BITE
- db 19, CONFUSE_RAY
- db 30, WING_ATTACK
- db 42, MEAN_LOOK
- db 55, HAZE
- db 0 ; no more level-up moves
-
-OddishEvosAttacks:
- db EVOLVE_LEVEL, 21, GLOOM
- db 0 ; no more evolutions
- db 1, ABSORB
- db 7, SWEET_SCENT
- db 14, POISONPOWDER
- db 16, STUN_SPORE
- db 18, SLEEP_POWDER
- db 23, ACID
- db 32, MOONLIGHT
- db 39, PETAL_DANCE
- db 0 ; no more level-up moves
-
-GloomEvosAttacks:
- db EVOLVE_ITEM, LEAF_STONE, VILEPLUME
- db EVOLVE_ITEM, SUN_STONE, BELLOSSOM
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, SWEET_SCENT
- db 1, POISONPOWDER
- db 7, SWEET_SCENT
- db 14, POISONPOWDER
- db 16, STUN_SPORE
- db 18, SLEEP_POWDER
- db 24, ACID
- db 35, MOONLIGHT
- db 44, PETAL_DANCE
- db 0 ; no more level-up moves
-
-VileplumeEvosAttacks:
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, SWEET_SCENT
- db 1, STUN_SPORE
- db 1, PETAL_DANCE
- db 0 ; no more level-up moves
-
-ParasEvosAttacks:
- db EVOLVE_LEVEL, 24, PARASECT
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 7, STUN_SPORE
- db 13, POISONPOWDER
- db 19, LEECH_LIFE
- db 25, SPORE
- db 31, SLASH
- db 37, GROWTH
- db 43, GIGA_DRAIN
- db 0 ; no more level-up moves
-
-ParasectEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, STUN_SPORE
- db 1, POISONPOWDER
- db 7, STUN_SPORE
- db 13, POISONPOWDER
- db 19, LEECH_LIFE
- db 28, SPORE
- db 37, SLASH
- db 46, GROWTH
- db 55, GIGA_DRAIN
- db 0 ; no more level-up moves
-
-VenonatEvosAttacks:
- db EVOLVE_LEVEL, 31, VENOMOTH
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DISABLE
- db 1, FORESIGHT
- db 9, SUPERSONIC
- db 17, CONFUSION
- db 20, POISONPOWDER
- db 25, LEECH_LIFE
- db 28, STUN_SPORE
- db 33, PSYBEAM
- db 36, SLEEP_POWDER
- db 41, PSYCHIC_M
- db 0 ; no more level-up moves
-
-VenomothEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DISABLE
- db 1, FORESIGHT
- db 1, SUPERSONIC
- db 9, SUPERSONIC
- db 17, CONFUSION
- db 20, POISONPOWDER
- db 25, LEECH_LIFE
- db 28, STUN_SPORE
- db 31, GUST
- db 36, PSYBEAM
- db 42, SLEEP_POWDER
- db 52, PSYCHIC_M
- db 0 ; no more level-up moves
-
-DiglettEvosAttacks:
- db EVOLVE_LEVEL, 26, DUGTRIO
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 5, GROWL
- db 9, MAGNITUDE
- db 17, DIG
- db 25, SAND_ATTACK
- db 33, SLASH
- db 41, EARTHQUAKE
- db 49, FISSURE
- db 0 ; no more level-up moves
-
-DugtrioEvosAttacks:
- db 0 ; no more evolutions
-if _CRYSTAL
- db 1, TRI_ATTACK
-endc
- db 1, SCRATCH
- db 1, GROWL
- db 1, MAGNITUDE
- db 5, GROWL
- db 9, MAGNITUDE
- db 17, DIG
- db 25, SAND_ATTACK
- db 37, SLASH
- db 49, EARTHQUAKE
- db 61, FISSURE
- db 0 ; no more level-up moves
-
-MeowthEvosAttacks:
- db EVOLVE_LEVEL, 28, PERSIAN
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 11, BITE
- db 20, PAY_DAY
- db 28, FAINT_ATTACK
- db 35, SCREECH
- db 41, FURY_SWIPES
- db 46, SLASH
- db 0 ; no more level-up moves
-
-PersianEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, GROWL
- db 1, BITE
- db 11, BITE
- db 20, PAY_DAY
- db 29, FAINT_ATTACK
- db 38, SCREECH
- db 46, FURY_SWIPES
- db 53, SLASH
- db 0 ; no more level-up moves
-
-PsyduckEvosAttacks:
- db EVOLVE_LEVEL, 33, GOLDUCK
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 5, TAIL_WHIP
- db 10, DISABLE
- db 16, CONFUSION
- db 23, SCREECH
- db 31, PSYCH_UP
- db 40, FURY_SWIPES
- db 50, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-GolduckEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, TAIL_WHIP
- db 1, DISABLE
- db 1, CONFUSION
- db 5, TAIL_WHIP
- db 10, DISABLE
- db 16, CONFUSION
- db 23, SCREECH
- db 31, PSYCH_UP
- db 44, FURY_SWIPES
- db 58, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-MankeyEvosAttacks:
- db EVOLVE_LEVEL, 28, PRIMEAPE
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 9, LOW_KICK
- db 15, KARATE_CHOP
- db 21, FURY_SWIPES
- db 27, FOCUS_ENERGY
- db 33, SEISMIC_TOSS
- db 39, CROSS_CHOP
- db 45, SCREECH
- db 51, THRASH
- db 0 ; no more level-up moves
-
-PrimeapeEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, LOW_KICK
- db 1, RAGE
- db 9, LOW_KICK
- db 15, KARATE_CHOP
- db 21, FURY_SWIPES
- db 27, FOCUS_ENERGY
- db 28, RAGE
- db 36, SEISMIC_TOSS
- db 45, CROSS_CHOP
- db 54, SCREECH
- db 63, THRASH
- db 0 ; no more level-up moves
-
-GrowlitheEvosAttacks:
- db EVOLVE_ITEM, FIRE_STONE, ARCANINE
- db 0 ; no more evolutions
- db 1, BITE
- db 1, ROAR
- db 9, EMBER
- db 18, LEER
- db 26, TAKE_DOWN
- db 34, FLAME_WHEEL
- db 42, AGILITY
- db 50, FLAMETHROWER
- db 0 ; no more level-up moves
-
-ArcanineEvosAttacks:
- db 0 ; no more evolutions
- db 1, ROAR
- db 1, LEER
- db 1, TAKE_DOWN
- db 1, FLAME_WHEEL
- db 50, EXTREMESPEED
- db 0 ; no more level-up moves
-
-PoliwagEvosAttacks:
- db EVOLVE_LEVEL, 25, POLIWHIRL
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 7, HYPNOSIS
- db 13, WATER_GUN
- db 19, DOUBLESLAP
- db 25, RAIN_DANCE
- db 31, BODY_SLAM
- db 37, BELLY_DRUM
- db 43, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PoliwhirlEvosAttacks:
- db EVOLVE_ITEM, WATER_STONE, POLIWRATH
- db EVOLVE_TRADE, KINGS_ROCK, POLITOED
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, HYPNOSIS
- db 1, WATER_GUN
- db 7, HYPNOSIS
- db 13, WATER_GUN
- db 19, DOUBLESLAP
- db 27, RAIN_DANCE
- db 35, BODY_SLAM
- db 43, BELLY_DRUM
- db 51, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PoliwrathEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, HYPNOSIS
- db 1, DOUBLESLAP
- db 1, SUBMISSION
- db 35, SUBMISSION
- db 51, MIND_READER
- db 0 ; no more level-up moves
-
-AbraEvosAttacks:
- db EVOLVE_LEVEL, 16, KADABRA
- db 0 ; no more evolutions
- db 1, TELEPORT
- db 0 ; no more level-up moves
-
-KadabraEvosAttacks:
- db EVOLVE_TRADE, $ff, ALAKAZAM
- db 0 ; no more evolutions
- db 1, TELEPORT
- db 1, KINESIS
- db 1, CONFUSION
- db 16, CONFUSION
- db 18, DISABLE
- db 21, PSYBEAM
- db 26, RECOVER
- db 31, FUTURE_SIGHT
- db 38, PSYCHIC_M
- db 45, REFLECT
- db 0 ; no more level-up moves
-
-AlakazamEvosAttacks:
- db 0 ; no more evolutions
- db 1, TELEPORT
- db 1, KINESIS
- db 1, CONFUSION
- db 16, CONFUSION
- db 18, DISABLE
- db 21, PSYBEAM
- db 26, RECOVER
- db 31, FUTURE_SIGHT
- db 38, PSYCHIC_M
- db 45, REFLECT
- db 0 ; no more level-up moves
-
-MachopEvosAttacks:
- db EVOLVE_LEVEL, 28, MACHOKE
- db 0 ; no more evolutions
- db 1, LOW_KICK
- db 1, LEER
- db 7, FOCUS_ENERGY
- db 13, KARATE_CHOP
- db 19, SEISMIC_TOSS
- db 25, FORESIGHT
- db 31, VITAL_THROW
- db 37, CROSS_CHOP
- db 43, SCARY_FACE
- db 49, SUBMISSION
- db 0 ; no more level-up moves
-
-MachokeEvosAttacks:
- db EVOLVE_TRADE, $ff, MACHAMP
- db 0 ; no more evolutions
- db 1, LOW_KICK
- db 1, LEER
- db 1, FOCUS_ENERGY
- db 8, FOCUS_ENERGY
- db 15, KARATE_CHOP
- db 19, SEISMIC_TOSS
- db 25, FORESIGHT
- db 34, VITAL_THROW
- db 43, CROSS_CHOP
- db 52, SCARY_FACE
- db 61, SUBMISSION
- db 0 ; no more level-up moves
-
-MachampEvosAttacks:
- db 0 ; no more evolutions
- db 1, LOW_KICK
- db 1, LEER
- db 1, FOCUS_ENERGY
- db 8, FOCUS_ENERGY
- db 15, KARATE_CHOP
- db 19, SEISMIC_TOSS
- db 25, FORESIGHT
- db 34, VITAL_THROW
- db 43, CROSS_CHOP
- db 52, SCARY_FACE
- db 61, SUBMISSION
- db 0 ; no more level-up moves
-
-BellsproutEvosAttacks:
- db EVOLVE_LEVEL, 21, WEEPINBELL
- db 0 ; no more evolutions
- db 1, VINE_WHIP
- db 6, GROWTH
- db 11, WRAP
- db 15, SLEEP_POWDER
- db 17, POISONPOWDER
- db 19, STUN_SPORE
- db 23, ACID
- db 30, SWEET_SCENT
- db 37, RAZOR_LEAF
- db 45, SLAM
- db 0 ; no more level-up moves
-
-WeepinbellEvosAttacks:
- db EVOLVE_ITEM, LEAF_STONE, VICTREEBEL
- db 0 ; no more evolutions
- db 1, VINE_WHIP
- db 1, GROWTH
- db 1, WRAP
- db 6, GROWTH
- db 11, WRAP
- db 15, SLEEP_POWDER
- db 17, POISONPOWDER
- db 19, STUN_SPORE
- db 24, ACID
- db 33, SWEET_SCENT
- db 42, RAZOR_LEAF
- db 54, SLAM
- db 0 ; no more level-up moves
-
-VictreebelEvosAttacks:
- db 0 ; no more evolutions
- db 1, VINE_WHIP
- db 1, SLEEP_POWDER
- db 1, SWEET_SCENT
- db 1, RAZOR_LEAF
- db 0 ; no more level-up moves
-
-TentacoolEvosAttacks:
- db EVOLVE_LEVEL, 30, TENTACRUEL
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 6, SUPERSONIC
- db 12, CONSTRICT
- db 19, ACID
- db 25, BUBBLEBEAM
- db 30, WRAP
- db 36, BARRIER
- db 43, SCREECH
- db 49, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-TentacruelEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, SUPERSONIC
- db 1, CONSTRICT
- db 6, SUPERSONIC
- db 12, CONSTRICT
- db 19, ACID
- db 25, BUBBLEBEAM
- db 30, WRAP
- db 38, BARRIER
- db 47, SCREECH
- db 55, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-GeodudeEvosAttacks:
- db EVOLVE_LEVEL, 25, GRAVELER
- db 0 ; no more evolutions
- db 1, TACKLE
- db 6, DEFENSE_CURL
- db 11, ROCK_THROW
- db 16, MAGNITUDE
- db 21, SELFDESTRUCT
- db 26, HARDEN
- db 31, ROLLOUT
- db 36, EARTHQUAKE
- db 41, EXPLOSION
- db 0 ; no more level-up moves
-
-GravelerEvosAttacks:
- db EVOLVE_TRADE, $ff, GOLEM
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DEFENSE_CURL
- db 1, ROCK_THROW
- db 6, DEFENSE_CURL
- db 11, ROCK_THROW
- db 16, MAGNITUDE
- db 21, SELFDESTRUCT
- db 27, HARDEN
- db 34, ROLLOUT
- db 41, EARTHQUAKE
- db 48, EXPLOSION
- db 0 ; no more level-up moves
-
-GolemEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DEFENSE_CURL
- db 1, ROCK_THROW
- db 1, MAGNITUDE
- db 6, DEFENSE_CURL
- db 11, ROCK_THROW
- db 16, MAGNITUDE
- db 21, SELFDESTRUCT
- db 27, HARDEN
- db 34, ROLLOUT
- db 41, EARTHQUAKE
- db 48, EXPLOSION
- db 0 ; no more level-up moves
-
-PonytaEvosAttacks:
- db EVOLVE_LEVEL, 40, RAPIDASH
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, GROWL
- db 8, TAIL_WHIP
- db 13, EMBER
- db 19, STOMP
- db 26, FIRE_SPIN
- db 34, TAKE_DOWN
- db 43, AGILITY
- db 53, FIRE_BLAST
- db 0 ; no more level-up moves
-
-RapidashEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, TAIL_WHIP
- db 1, EMBER
- db 4, GROWL
- db 8, TAIL_WHIP
- db 13, EMBER
- db 19, STOMP
- db 26, FIRE_SPIN
- db 34, TAKE_DOWN
- db 40, FURY_ATTACK
- db 47, AGILITY
- db 61, FIRE_BLAST
- db 0 ; no more level-up moves
-
-SlowpokeEvosAttacks:
- db EVOLVE_LEVEL, 37, SLOWBRO
- db EVOLVE_TRADE, KINGS_ROCK, SLOWKING
- db 0 ; no more evolutions
- db 1, CURSE
- db 1, TACKLE
- db 6, GROWL
- db 15, WATER_GUN
- db 20, CONFUSION
- db 29, DISABLE
- db 34, HEADBUTT
- db 43, AMNESIA
- db 48, PSYCHIC_M
- db 0 ; no more level-up moves
-
-SlowbroEvosAttacks:
- db 0 ; no more evolutions
- db 1, CURSE
- db 1, TACKLE
- db 1, GROWL
- db 1, WATER_GUN
- db 6, GROWL
- db 15, WATER_GUN
- db 20, CONFUSION
- db 29, DISABLE
- db 34, HEADBUTT
- db 37, WITHDRAW
- db 46, AMNESIA
- db 54, PSYCHIC_M
- db 0 ; no more level-up moves
-
-MagnemiteEvosAttacks:
- db EVOLVE_LEVEL, 30, MAGNETON
- db 0 ; no more evolutions
- db 1, TACKLE
- db 6, THUNDERSHOCK
- db 11, SUPERSONIC
- db 16, SONICBOOM
- db 21, THUNDER_WAVE
- db 27, LOCK_ON
- db 33, SWIFT
- db 39, SCREECH
- db 45, ZAP_CANNON
- db 0 ; no more level-up moves
-
-MagnetonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, THUNDERSHOCK
- db 1, SUPERSONIC
- db 1, SONICBOOM
- db 6, THUNDERSHOCK
- db 11, SUPERSONIC
- db 16, SONICBOOM
- db 21, THUNDER_WAVE
- db 27, LOCK_ON
-if _CRYSTAL
- db 35, TRI_ATTACK
-else
- db 35, SWIFT
-endc
- db 43, SCREECH
- db 53, ZAP_CANNON
- db 0 ; no more level-up moves
-
-FarfetchDEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 7, SAND_ATTACK
- db 13, LEER
- db 19, FURY_ATTACK
- db 25, SWORDS_DANCE
- db 31, AGILITY
- db 37, SLASH
- db 44, FALSE_SWIPE
- db 0 ; no more level-up moves
-
-DoduoEvosAttacks:
- db EVOLVE_LEVEL, 31, DODRIO
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 9, PURSUIT
- db 13, FURY_ATTACK
- db 21, TRI_ATTACK
- db 25, RAGE
- db 33, DRILL_PECK
- db 37, AGILITY
- db 0 ; no more level-up moves
-
-DodrioEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, GROWL
- db 1, PURSUIT
- db 1, FURY_ATTACK
- db 9, PURSUIT
- db 13, FURY_ATTACK
- db 21, TRI_ATTACK
- db 25, RAGE
- db 38, DRILL_PECK
- db 47, AGILITY
- db 0 ; no more level-up moves
-
-SeelEvosAttacks:
- db EVOLVE_LEVEL, 34, DEWGONG
- db 0 ; no more evolutions
- db 1, HEADBUTT
- db 5, GROWL
- db 16, AURORA_BEAM
- db 21, REST
- db 32, TAKE_DOWN
- db 37, ICE_BEAM
- db 48, SAFEGUARD
- db 0 ; no more level-up moves
-
-DewgongEvosAttacks:
- db 0 ; no more evolutions
- db 1, HEADBUTT
- db 1, GROWL
- db 1, AURORA_BEAM
- db 5, GROWL
- db 16, AURORA_BEAM
- db 21, REST
- db 32, TAKE_DOWN
- db 43, ICE_BEAM
- db 60, SAFEGUARD
- db 0 ; no more level-up moves
-
-GrimerEvosAttacks:
- db EVOLVE_LEVEL, 38, MUK
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, POUND
- db 5, HARDEN
- db 10, DISABLE
- db 16, SLUDGE
- db 23, MINIMIZE
- db 31, SCREECH
- db 40, ACID_ARMOR
- db 50, SLUDGE_BOMB
- db 0 ; no more level-up moves
-
-MukEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, POUND
- db 1, HARDEN
- db 33, HARDEN
- db 37, DISABLE
- db 45, SLUDGE
- db 23, MINIMIZE
- db 31, SCREECH
- db 45, ACID_ARMOR
- db 60, SLUDGE_BOMB
- db 0 ; no more level-up moves
-
-ShellderEvosAttacks:
- db EVOLVE_ITEM, WATER_STONE, CLOYSTER
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, WITHDRAW
- db 9, SUPERSONIC
- db 17, AURORA_BEAM
- db 25, PROTECT
- db 33, LEER
- db 41, CLAMP
- db 49, ICE_BEAM
- db 0 ; no more level-up moves
-
-CloysterEvosAttacks:
- db 0 ; no more evolutions
- db 1, WITHDRAW
- db 1, SUPERSONIC
- db 1, AURORA_BEAM
- db 1, PROTECT
-if _CRYSTAL
- db 33, SPIKES
-endc
- db 41, SPIKE_CANNON
- db 0 ; no more level-up moves
-
-GastlyEvosAttacks:
- db EVOLVE_LEVEL, 25, HAUNTER
- db 0 ; no more evolutions
- db 1, HYPNOSIS
- db 1, LICK
- db 8, SPITE
- db 13, MEAN_LOOK
- db 16, CURSE
- db 21, NIGHT_SHADE
- db 28, CONFUSE_RAY
- db 33, DREAM_EATER
- db 36, DESTINY_BOND
- db 0 ; no more level-up moves
-
-HaunterEvosAttacks:
- db EVOLVE_TRADE, $ff, GENGAR
- db 0 ; no more evolutions
- db 1, HYPNOSIS
- db 1, LICK
- db 1, SPITE
- db 8, SPITE
- db 13, MEAN_LOOK
- db 16, CURSE
- db 21, NIGHT_SHADE
- db 31, CONFUSE_RAY
- db 39, DREAM_EATER
- db 48, DESTINY_BOND
- db 0 ; no more level-up moves
-
-GengarEvosAttacks:
- db 0 ; no more evolutions
- db 1, HYPNOSIS
- db 1, LICK
- db 1, SPITE
- db 8, SPITE
- db 13, MEAN_LOOK
- db 16, CURSE
- db 21, NIGHT_SHADE
- db 31, CONFUSE_RAY
- db 39, DREAM_EATER
- db 48, DESTINY_BOND
- db 0 ; no more level-up moves
-
-OnixEvosAttacks:
- db EVOLVE_TRADE, METAL_COAT, STEELIX
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCREECH
- db 10, BIND
- db 14, ROCK_THROW
- db 23, HARDEN
- db 27, RAGE
- db 36, SANDSTORM
- db 40, SLAM
- db 0 ; no more level-up moves
-
-DrowzeeEvosAttacks:
- db EVOLVE_LEVEL, 26, HYPNO
- db 0 ; no more evolutions
- db 1, POUND
- db 1, HYPNOSIS
- db 10, DISABLE
- db 18, CONFUSION
- db 25, HEADBUTT
- db 31, POISON_GAS
- db 36, MEDITATE
- db 40, PSYCHIC_M
- db 43, PSYCH_UP
- db 45, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-HypnoEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 1, HYPNOSIS
- db 1, DISABLE
- db 1, CONFUSION
- db 10, DISABLE
- db 18, CONFUSION
- db 25, HEADBUTT
- db 33, POISON_GAS
- db 40, MEDITATE
- db 49, PSYCHIC_M
- db 55, PSYCH_UP
- db 60, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-KrabbyEvosAttacks:
- db EVOLVE_LEVEL, 28, KINGLER
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 5, LEER
- db 12, VICEGRIP
- db 16, HARDEN
- db 23, STOMP
- db 27, GUILLOTINE
- db 34, PROTECT
- db 41, CRABHAMMER
- db 0 ; no more level-up moves
-
-KinglerEvosAttacks:
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, LEER
- db 1, VICEGRIP
- db 5, LEER
- db 12, VICEGRIP
- db 16, HARDEN
- db 23, STOMP
- db 27, GUILLOTINE
- db 38, PROTECT
- db 49, CRABHAMMER
- db 0 ; no more level-up moves
-
-VoltorbEvosAttacks:
- db EVOLVE_LEVEL, 30, ELECTRODE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 9, SCREECH
- db 17, SONICBOOM
- db 23, SELFDESTRUCT
- db 29, ROLLOUT
- db 33, LIGHT_SCREEN
- db 37, SWIFT
- db 39, EXPLOSION
- db 41, MIRROR_COAT
- db 0 ; no more level-up moves
-
-ElectrodeEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCREECH
- db 1, SONICBOOM
- db 1, SELFDESTRUCT
- db 9, SCREECH
- db 17, SONICBOOM
- db 23, SELFDESTRUCT
- db 29, ROLLOUT
- db 34, LIGHT_SCREEN
- db 40, SWIFT
- db 44, EXPLOSION
- db 48, MIRROR_COAT
- db 0 ; no more level-up moves
-
-ExeggcuteEvosAttacks:
- db EVOLVE_ITEM, LEAF_STONE, EXEGGUTOR
- db 0 ; no more evolutions
- db 1, BARRAGE
- db 1, HYPNOSIS
- db 7, REFLECT
- db 13, LEECH_SEED
- db 19, CONFUSION
- db 25, STUN_SPORE
- db 31, POISONPOWDER
- db 37, SLEEP_POWDER
- db 43, SOLARBEAM
- db 0 ; no more level-up moves
-
-ExeggutorEvosAttacks:
- db 0 ; no more evolutions
- db 1, BARRAGE
- db 1, HYPNOSIS
- db 1, CONFUSION
- db 19, STOMP
- db 31, EGG_BOMB
- db 0 ; no more level-up moves
-
-CuboneEvosAttacks:
- db EVOLVE_LEVEL, 28, MAROWAK
- db 0 ; no more evolutions
- db 1, GROWL
- db 5, TAIL_WHIP
- db 9, BONE_CLUB
- db 13, HEADBUTT
- db 17, LEER
- db 21, FOCUS_ENERGY
- db 25, BONEMERANG
- db 29, RAGE
- db 33, FALSE_SWIPE
- db 37, THRASH
- db 41, BONE_RUSH
- db 0 ; no more level-up moves
-
-MarowakEvosAttacks:
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, TAIL_WHIP
- db 1, BONE_CLUB
- db 1, HEADBUTT
- db 5, TAIL_WHIP
- db 9, BONE_CLUB
- db 13, HEADBUTT
- db 17, LEER
- db 21, FOCUS_ENERGY
- db 25, BONEMERANG
- db 32, RAGE
- db 39, FALSE_SWIPE
- db 46, THRASH
- db 53, BONE_RUSH
- db 0 ; no more level-up moves
-
-HitmonleeEvosAttacks:
- db 0 ; no more evolutions
- db 1, DOUBLE_KICK
- db 6, MEDITATE
- db 11, ROLLING_KICK
- db 16, JUMP_KICK
- db 21, FOCUS_ENERGY
- db 26, HI_JUMP_KICK
- db 31, MIND_READER
- db 36, FORESIGHT
- db 41, ENDURE
- db 46, MEGA_KICK
- db 51, REVERSAL
- db 0 ; no more level-up moves
-
-HitmonchanEvosAttacks:
- db 0 ; no more evolutions
- db 1, COMET_PUNCH
- db 7, AGILITY
- db 13, PURSUIT
- db 26, THUNDERPUNCH
- db 26, ICE_PUNCH
- db 26, FIRE_PUNCH
- db 32, MACH_PUNCH
- db 38, MEGA_PUNCH
- db 44, DETECT
- db 50, COUNTER
- db 0 ; no more level-up moves
-
-LickitungEvosAttacks:
- db 0 ; no more evolutions
- db 1, LICK
- db 7, SUPERSONIC
- db 13, DEFENSE_CURL
- db 19, STOMP
- db 25, WRAP
- db 31, DISABLE
- db 37, SLAM
- db 43, SCREECH
- db 0 ; no more level-up moves
-
-KoffingEvosAttacks:
- db EVOLVE_LEVEL, 35, WEEZING
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, TACKLE
- db 9, SMOG
- db 17, SELFDESTRUCT
- db 21, SLUDGE
- db 25, SMOKESCREEN
- db 33, HAZE
- db 41, EXPLOSION
- db 45, DESTINY_BOND
- db 0 ; no more level-up moves
-
-WeezingEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_GAS
- db 1, TACKLE
- db 1, SMOG
- db 1, SELFDESTRUCT
- db 9, SMOG
- db 17, SELFDESTRUCT
- db 21, SLUDGE
- db 25, SMOKESCREEN
- db 33, HAZE
- db 44, EXPLOSION
- db 51, DESTINY_BOND
- db 0 ; no more level-up moves
-
-RhyhornEvosAttacks:
- db EVOLVE_LEVEL, 42, RHYDON
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, TAIL_WHIP
- db 13, STOMP
- db 19, FURY_ATTACK
- db 31, SCARY_FACE
- db 37, HORN_DRILL
- db 49, TAKE_DOWN
- db 55, EARTHQUAKE
- db 0 ; no more level-up moves
-
-RhydonEvosAttacks:
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, TAIL_WHIP
- db 1, STOMP
- db 1, FURY_ATTACK
- db 13, STOMP
- db 19, FURY_ATTACK
- db 31, SCARY_FACE
- db 37, HORN_DRILL
- db 54, TAKE_DOWN
- db 65, EARTHQUAKE
- db 0 ; no more level-up moves
-
-ChanseyEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, BLISSEY
- db 0 ; no more evolutions
- db 1, POUND
- db 5, GROWL
- db 9, TAIL_WHIP
- db 13, SOFTBOILED
- db 17, DOUBLESLAP
- db 23, MINIMIZE
- db 29, SING
- db 35, EGG_BOMB
- db 41, DEFENSE_CURL
- db 49, LIGHT_SCREEN
- db 57, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-TangelaEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 4, SLEEP_POWDER
- db 10, ABSORB
- db 13, POISONPOWDER
- db 19, VINE_WHIP
- db 25, BIND
- db 31, MEGA_DRAIN
- db 34, STUN_SPORE
- db 40, SLAM
- db 46, GROWTH
- db 0 ; no more level-up moves
-
-KangaskhanEvosAttacks:
- db 0 ; no more evolutions
- db 1, COMET_PUNCH
- db 7, LEER
- db 13, BITE
- db 19, TAIL_WHIP
- db 25, MEGA_PUNCH
- db 31, RAGE
- db 37, ENDURE
- db 43, DIZZY_PUNCH
- db 49, REVERSAL
- db 0 ; no more level-up moves
-
-HorseaEvosAttacks:
- db EVOLVE_LEVEL, 32, SEADRA
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 8, SMOKESCREEN
- db 15, LEER
- db 22, WATER_GUN
- db 29, TWISTER
- db 36, AGILITY
- db 43, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-SeadraEvosAttacks:
- db EVOLVE_TRADE, DRAGON_SCALE, KINGDRA
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, SMOKESCREEN
- db 1, LEER
- db 1, WATER_GUN
- db 8, SMOKESCREEN
- db 15, LEER
- db 22, WATER_GUN
- db 29, TWISTER
- db 40, AGILITY
- db 51, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-GoldeenEvosAttacks:
- db EVOLVE_LEVEL, 33, SEAKING
- db 0 ; no more evolutions
- db 1, PECK
- db 1, TAIL_WHIP
- db 10, SUPERSONIC
- db 15, HORN_ATTACK
- db 24, FLAIL
- db 29, FURY_ATTACK
- db 38, WATERFALL
- db 43, HORN_DRILL
- db 52, AGILITY
- db 0 ; no more level-up moves
-
-SeakingEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, TAIL_WHIP
- db 1, TAIL_WHIP
- db 10, SUPERSONIC
- db 15, HORN_ATTACK
- db 24, FLAIL
- db 29, FURY_ATTACK
- db 41, WATERFALL
- db 49, HORN_DRILL
- db 61, AGILITY
- db 0 ; no more level-up moves
-
-StaryuEvosAttacks:
- db EVOLVE_ITEM, WATER_STONE, STARMIE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, HARDEN
- db 7, WATER_GUN
- db 13, RAPID_SPIN
- db 19, RECOVER
- db 25, SWIFT
- db 31, BUBBLEBEAM
- db 37, MINIMIZE
- db 43, LIGHT_SCREEN
- db 50, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-StarmieEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, RAPID_SPIN
- db 1, RECOVER
- db 1, BUBBLEBEAM
- db 37, CONFUSE_RAY
- db 0 ; no more level-up moves
-
-MrMimeEvosAttacks:
- db 0 ; no more evolutions
- db 1, BARRIER
- db 6, CONFUSION
- db 11, SUBSTITUTE
- db 16, MEDITATE
- db 21, DOUBLESLAP
- db 26, LIGHT_SCREEN
- db 26, REFLECT
- db 31, ENCORE
- db 36, PSYBEAM
- db 41, BATON_PASS
- db 46, SAFEGUARD
- db 0 ; no more level-up moves
-
-ScytherEvosAttacks:
- db EVOLVE_TRADE, METAL_COAT, SCIZOR
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 6, FOCUS_ENERGY
- db 12, PURSUIT
- db 18, FALSE_SWIPE
- db 24, AGILITY
- db 30, WING_ATTACK
- db 36, SLASH
- db 42, SWORDS_DANCE
- db 48, DOUBLE_TEAM
- db 0 ; no more level-up moves
-
-JynxEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 1, LICK
- db 1, LOVELY_KISS
- db 1, POWDER_SNOW
- db 9, LOVELY_KISS
- db 13, POWDER_SNOW
- db 21, DOUBLESLAP
- db 25, ICE_PUNCH
- db 35, MEAN_LOOK
- db 41, BODY_SLAM
- db 51, PERISH_SONG
- db 57, BLIZZARD
- db 0 ; no more level-up moves
-
-ElectabuzzEvosAttacks:
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 1, THUNDERPUNCH
- db 9, THUNDERPUNCH
- db 17, LIGHT_SCREEN
- db 25, SWIFT
- db 36, SCREECH
- db 47, THUNDERBOLT
- db 58, THUNDER
- db 0 ; no more level-up moves
-
-MagmarEvosAttacks:
- db 0 ; no more evolutions
- db 1, EMBER
- db 1, LEER
- db 1, SMOG
- db 1, FIRE_PUNCH
- db 7, LEER
- db 13, SMOG
- db 19, FIRE_PUNCH
- db 25, SMOKESCREEN
- db 33, SUNNY_DAY
- db 41, FLAMETHROWER
- db 49, CONFUSE_RAY
- db 57, FIRE_BLAST
- db 0 ; no more level-up moves
-
-PinsirEvosAttacks:
- db 0 ; no more evolutions
- db 1, VICEGRIP
- db 7, FOCUS_ENERGY
- db 13, BIND
- db 19, SEISMIC_TOSS
- db 25, HARDEN
- db 31, GUILLOTINE
- db 37, SUBMISSION
- db 43, SWORDS_DANCE
- db 0 ; no more level-up moves
-
-TaurosEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, TAIL_WHIP
- db 8, RAGE
- db 13, HORN_ATTACK
- db 19, SCARY_FACE
- db 26, PURSUIT
- db 34, REST
- db 43, THRASH
- db 53, TAKE_DOWN
- db 0 ; no more level-up moves
-
-MagikarpEvosAttacks:
- db EVOLVE_LEVEL, 20, GYARADOS
- db 0 ; no more evolutions
- db 1, SPLASH
- db 15, TACKLE
- db 30, FLAIL
- db 0 ; no more level-up moves
-
-GyaradosEvosAttacks:
- db 0 ; no more evolutions
- db 1, THRASH
- db 20, BITE
- db 25, DRAGON_RAGE
- db 30, LEER
- db 35, TWISTER
- db 40, HYDRO_PUMP
- db 45, RAIN_DANCE
- db 50, HYPER_BEAM
- db 0 ; no more level-up moves
-
-LaprasEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, GROWL
- db 1, SING
- db 8, MIST
- db 15, BODY_SLAM
- db 22, CONFUSE_RAY
- db 29, PERISH_SONG
- db 36, ICE_BEAM
- db 43, RAIN_DANCE
- db 50, SAFEGUARD
- db 57, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-DittoEvosAttacks:
- db 0 ; no more evolutions
- db 1, TRANSFORM
- db 0 ; no more level-up moves
-
-EeveeEvosAttacks:
- db EVOLVE_ITEM, THUNDERSTONE, JOLTEON
- db EVOLVE_ITEM, WATER_STONE, VAPOREON
- db EVOLVE_ITEM, FIRE_STONE, FLAREON
- db EVOLVE_HAPPINESS, TR_MORNDAY, ESPEON
- db EVOLVE_HAPPINESS, TR_NITE, UMBREON
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, GROWL
- db 23, QUICK_ATTACK
- db 30, BITE
-if _CRYSTAL
- db 36, BATON_PASS
-else
- db 36, FOCUS_ENERGY
-endc
- db 42, TAKE_DOWN
- db 0 ; no more level-up moves
-
-VaporeonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, WATER_GUN
- db 23, QUICK_ATTACK
- db 30, BITE
- db 36, AURORA_BEAM
- db 42, HAZE
- db 47, ACID_ARMOR
- db 52, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-JolteonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, THUNDERSHOCK
- db 23, QUICK_ATTACK
- db 30, DOUBLE_KICK
- db 36, PIN_MISSILE
- db 42, THUNDER_WAVE
- db 47, AGILITY
- db 52, THUNDER
- db 0 ; no more level-up moves
-
-FlareonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, EMBER
- db 23, QUICK_ATTACK
- db 30, BITE
- db 36, FIRE_SPIN
- db 42, SMOG
- db 47, LEER
- db 52, FLAMETHROWER
- db 0 ; no more level-up moves
-
-PorygonEvosAttacks:
- db EVOLVE_TRADE, UP_GRADE, PORYGON2
- db 0 ; no more evolutions
- db 1, CONVERSION2
- db 1, TACKLE
- db 1, CONVERSION
- db 9, AGILITY
- db 12, PSYBEAM
- db 20, RECOVER
- db 24, SHARPEN
- db 32, LOCK_ON
- db 36, TRI_ATTACK
- db 44, ZAP_CANNON
- db 0 ; no more level-up moves
-
-OmanyteEvosAttacks:
- db EVOLVE_LEVEL, 40, OMASTAR
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 1, WITHDRAW
- db 13, BITE
- db 19, WATER_GUN
- db 31, LEER
- db 37, PROTECT
- db 49, ANCIENTPOWER
- db 55, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-OmastarEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 1, WITHDRAW
- db 1, BITE
- db 13, BITE
- db 19, WATER_GUN
- db 31, LEER
- db 37, PROTECT
- db 40, SPIKE_CANNON
- db 54, ANCIENTPOWER
- db 65, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-KabutoEvosAttacks:
- db EVOLVE_LEVEL, 40, KABUTOPS
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, HARDEN
- db 10, ABSORB
- db 19, LEER
- db 28, SAND_ATTACK
- db 37, ENDURE
- db 46, MEGA_DRAIN
- db 55, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-KabutopsEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, HARDEN
- db 1, ABSORB
- db 10, ABSORB
- db 19, LEER
- db 28, SAND_ATTACK
- db 37, ENDURE
- db 40, SLASH
- db 51, MEGA_DRAIN
- db 65, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-AerodactylEvosAttacks:
- db 0 ; no more evolutions
- db 1, WING_ATTACK
- db 8, AGILITY
- db 15, BITE
- db 22, SUPERSONIC
- db 29, ANCIENTPOWER
- db 36, SCARY_FACE
- db 43, TAKE_DOWN
- db 50, HYPER_BEAM
- db 0 ; no more level-up moves
-
-SnorlaxEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 8, AMNESIA
- db 15, DEFENSE_CURL
- db 22, BELLY_DRUM
- db 29, HEADBUTT
- db 36, SNORE
- db 36, REST
- db 43, BODY_SLAM
- db 50, ROLLOUT
- db 57, HYPER_BEAM
- db 0 ; no more level-up moves
-
-ArticunoEvosAttacks:
- db 0 ; no more evolutions
- db 1, GUST
- db 1, POWDER_SNOW
- db 13, MIST
- db 25, AGILITY
- db 37, MIND_READER
- db 49, ICE_BEAM
- db 61, REFLECT
- db 73, BLIZZARD
- db 0 ; no more level-up moves
-
-ZapdosEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, THUNDERSHOCK
- db 13, THUNDER_WAVE
- db 25, AGILITY
- db 37, DETECT
- db 49, DRILL_PECK
- db 61, LIGHT_SCREEN
- db 73, THUNDER
- db 0 ; no more level-up moves
-
-MoltresEvosAttacks:
- db 0 ; no more evolutions
- db 1, WING_ATTACK
- db 1, EMBER
- db 13, FIRE_SPIN
- db 25, AGILITY
- db 37, ENDURE
- db 49, FLAMETHROWER
- db 61, SAFEGUARD
- db 73, SKY_ATTACK
- db 0 ; no more level-up moves
-
-DratiniEvosAttacks:
- db EVOLVE_LEVEL, 30, DRAGONAIR
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 8, THUNDER_WAVE
- db 15, TWISTER
- db 22, DRAGON_RAGE
- db 29, SLAM
- db 36, AGILITY
- db 43, SAFEGUARD
- db 50, OUTRAGE
- db 57, HYPER_BEAM
- db 0 ; no more level-up moves
-
-DragonairEvosAttacks:
- db EVOLVE_LEVEL, 55, DRAGONITE
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 1, THUNDER_WAVE
- db 1, TWISTER
- db 8, THUNDER_WAVE
- db 15, TWISTER
- db 22, DRAGON_RAGE
- db 29, SLAM
- db 38, AGILITY
- db 47, SAFEGUARD
- db 56, OUTRAGE
- db 65, HYPER_BEAM
- db 0 ; no more level-up moves
-
-DragoniteEvosAttacks:
- db 0 ; no more evolutions
- db 1, WRAP
- db 1, LEER
- db 1, THUNDER_WAVE
- db 1, TWISTER
- db 8, THUNDER_WAVE
- db 15, TWISTER
- db 22, DRAGON_RAGE
- db 29, SLAM
- db 38, AGILITY
- db 47, SAFEGUARD
- db 55, WING_ATTACK
- db 61, OUTRAGE
- db 75, HYPER_BEAM
- db 0 ; no more level-up moves
-
-MewtwoEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONFUSION
- db 1, DISABLE
- db 11, BARRIER
- db 22, SWIFT
- db 33, PSYCH_UP
- db 44, FUTURE_SIGHT
- db 55, MIST
- db 66, PSYCHIC_M
- db 77, AMNESIA
- db 88, RECOVER
- db 99, SAFEGUARD
- db 0 ; no more level-up moves
-
-MewEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 10, TRANSFORM
- db 20, MEGA_PUNCH
- db 30, METRONOME
- db 40, PSYCHIC_M
- db 50, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-ChikoritaEvosAttacks:
- db EVOLVE_LEVEL, 16, BAYLEEF
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 8, RAZOR_LEAF
- db 12, REFLECT
- db 15, POISONPOWDER
- db 22, SYNTHESIS
- db 29, BODY_SLAM
- db 36, LIGHT_SCREEN
- db 43, SAFEGUARD
- db 50, SOLARBEAM
- db 0 ; no more level-up moves
-
-BayleefEvosAttacks:
- db EVOLVE_LEVEL, 32, MEGANIUM
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, RAZOR_LEAF
- db 1, REFLECT
- db 8, RAZOR_LEAF
- db 12, REFLECT
- db 15, POISONPOWDER
- db 23, SYNTHESIS
- db 31, BODY_SLAM
- db 39, LIGHT_SCREEN
- db 47, SAFEGUARD
- db 55, SOLARBEAM
- db 0 ; no more level-up moves
-
-MeganiumEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, RAZOR_LEAF
- db 1, REFLECT
- db 8, RAZOR_LEAF
- db 12, REFLECT
- db 15, POISONPOWDER
- db 23, SYNTHESIS
- db 31, BODY_SLAM
- db 41, LIGHT_SCREEN
- db 51, SAFEGUARD
- db 61, SOLARBEAM
- db 0 ; no more level-up moves
-
-CyndaquilEvosAttacks:
- db EVOLVE_LEVEL, 14, QUILAVA
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 6, SMOKESCREEN
- db 12, EMBER
- db 19, QUICK_ATTACK
- db 27, FLAME_WHEEL
- db 36, SWIFT
- db 46, FLAMETHROWER
- db 0 ; no more level-up moves
-
-QuilavaEvosAttacks:
- db EVOLVE_LEVEL, 36, TYPHLOSION
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 1, SMOKESCREEN
- db 6, SMOKESCREEN
- db 12, EMBER
- db 21, QUICK_ATTACK
- db 31, FLAME_WHEEL
- db 42, SWIFT
- db 54, FLAMETHROWER
- db 0 ; no more level-up moves
-
-TyphlosionEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 1, SMOKESCREEN
- db 1, EMBER
- db 6, SMOKESCREEN
- db 12, EMBER
- db 21, QUICK_ATTACK
- db 31, FLAME_WHEEL
- db 45, SWIFT
- db 60, FLAMETHROWER
- db 0 ; no more level-up moves
-
-TotodileEvosAttacks:
- db EVOLVE_LEVEL, 18, CROCONAW
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 7, RAGE
- db 13, WATER_GUN
- db 20, BITE
- db 27, SCARY_FACE
- db 35, SLASH
- db 43, SCREECH
- db 52, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-CroconawEvosAttacks:
- db EVOLVE_LEVEL, 30, FERALIGATR
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, RAGE
- db 7, RAGE
- db 13, WATER_GUN
- db 21, BITE
- db 28, SCARY_FACE
- db 37, SLASH
- db 45, SCREECH
- db 55, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-FeraligatrEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, RAGE
- db 1, WATER_GUN
- db 7, RAGE
- db 13, WATER_GUN
- db 21, BITE
- db 28, SCARY_FACE
- db 38, SLASH
- db 47, SCREECH
- db 58, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-SentretEvosAttacks:
- db EVOLVE_LEVEL, 15, FURRET
- db 0 ; no more evolutions
- db 1, TACKLE
- db 5, DEFENSE_CURL
- db 11, QUICK_ATTACK
- db 17, FURY_SWIPES
- db 25, SLAM
- db 33, REST
- db 41, AMNESIA
- db 0 ; no more level-up moves
-
-FurretEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, DEFENSE_CURL
- db 1, QUICK_ATTACK
- db 5, DEFENSE_CURL
- db 11, QUICK_ATTACK
- db 18, FURY_SWIPES
- db 28, SLAM
- db 38, REST
- db 48, AMNESIA
- db 0 ; no more level-up moves
-
-HoothootEvosAttacks:
- db EVOLVE_LEVEL, 20, NOCTOWL
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 6, FORESIGHT
- db 11, PECK
- db 16, HYPNOSIS
- db 22, REFLECT
- db 28, TAKE_DOWN
- db 34, CONFUSION
- db 48, DREAM_EATER
- db 0 ; no more level-up moves
-
-NoctowlEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, FORESIGHT
- db 1, PECK
- db 6, FORESIGHT
- db 11, PECK
- db 16, HYPNOSIS
- db 25, REFLECT
- db 33, TAKE_DOWN
- db 41, CONFUSION
- db 57, DREAM_EATER
- db 0 ; no more level-up moves
-
-LedybaEvosAttacks:
- db EVOLVE_LEVEL, 18, LEDIAN
- db 0 ; no more evolutions
- db 1, TACKLE
- db 8, SUPERSONIC
- db 15, COMET_PUNCH
- db 22, LIGHT_SCREEN
- db 22, REFLECT
- db 22, SAFEGUARD
- db 29, BATON_PASS
- db 36, SWIFT
- db 43, AGILITY
- db 50, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-LedianEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SUPERSONIC
- db 8, SUPERSONIC
- db 15, COMET_PUNCH
- db 24, LIGHT_SCREEN
- db 24, REFLECT
- db 24, SAFEGUARD
- db 33, BATON_PASS
- db 42, SWIFT
- db 51, AGILITY
- db 60, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-SpinarakEvosAttacks:
- db EVOLVE_LEVEL, 22, ARIADOS
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, STRING_SHOT
- db 6, SCARY_FACE
- db 11, CONSTRICT
- db 17, NIGHT_SHADE
- db 23, LEECH_LIFE
- db 30, FURY_SWIPES
- db 37, SPIDER_WEB
-if _CRYSTAL
- db 45, AGILITY
-else
- db 45, SCREECH
-endc
- db 53, PSYCHIC_M
- db 0 ; no more level-up moves
-
-AriadosEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 1, STRING_SHOT
- db 1, SCARY_FACE
- db 1, CONSTRICT
- db 6, SCARY_FACE
- db 11, CONSTRICT
- db 17, NIGHT_SHADE
- db 25, LEECH_LIFE
- db 34, FURY_SWIPES
- db 43, SPIDER_WEB
-if _CRYSTAL
- db 53, AGILITY
-else
- db 53, SCREECH
-endc
- db 63, PSYCHIC_M
- db 0 ; no more level-up moves
-
-CrobatEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCREECH
- db 1, LEECH_LIFE
- db 1, SUPERSONIC
- db 6, SUPERSONIC
- db 12, BITE
- db 19, CONFUSE_RAY
- db 30, WING_ATTACK
- db 42, MEAN_LOOK
- db 55, HAZE
- db 0 ; no more level-up moves
-
-ChinchouEvosAttacks:
- db EVOLVE_LEVEL, 27, LANTURN
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, THUNDER_WAVE
- db 5, SUPERSONIC
- db 13, FLAIL
- db 17, WATER_GUN
- db 25, SPARK
- db 29, CONFUSE_RAY
- db 37, TAKE_DOWN
- db 41, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-LanturnEvosAttacks:
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, THUNDER_WAVE
- db 1, SUPERSONIC
- db 5, SUPERSONIC
- db 13, FLAIL
- db 17, WATER_GUN
- db 25, SPARK
- db 33, CONFUSE_RAY
- db 45, TAKE_DOWN
- db 53, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PichuEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, PIKACHU
- db 0 ; no more evolutions
- db 1, THUNDERSHOCK
- db 1, CHARM
- db 6, TAIL_WHIP
- db 8, THUNDER_WAVE
- db 11, SWEET_KISS
- db 0 ; no more level-up moves
-
-CleffaEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, CLEFAIRY
- db 0 ; no more evolutions
- db 1, POUND
- db 1, CHARM
- db 4, ENCORE
- db 8, SING
- db 13, SWEET_KISS
- db 0 ; no more level-up moves
-
-IgglybuffEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, JIGGLYPUFF
- db 0 ; no more evolutions
- db 1, SING
- db 1, CHARM
- db 4, DEFENSE_CURL
- db 9, POUND
- db 14, SWEET_KISS
- db 0 ; no more level-up moves
-
-TogepiEvosAttacks:
- db EVOLVE_HAPPINESS, TR_ANYTIME, TOGETIC
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, CHARM
- db 7, METRONOME
- db 18, SWEET_KISS
- db 25, ENCORE
- db 31, SAFEGUARD
- db 38, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-TogeticEvosAttacks:
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, CHARM
- db 7, METRONOME
- db 18, SWEET_KISS
- db 25, ENCORE
- db 31, SAFEGUARD
- db 38, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-NatuEvosAttacks:
- db EVOLVE_LEVEL, 25, XATU
- db 0 ; no more evolutions
- db 1, PECK
- db 1, LEER
- db 10, NIGHT_SHADE
- db 20, TELEPORT
- db 30, FUTURE_SIGHT
- db 40, CONFUSE_RAY
- db 50, PSYCHIC_M
- db 0 ; no more level-up moves
-
-XatuEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 1, LEER
- db 1, NIGHT_SHADE
- db 10, NIGHT_SHADE
- db 20, TELEPORT
- db 35, FUTURE_SIGHT
- db 50, CONFUSE_RAY
- db 65, PSYCHIC_M
- db 0 ; no more level-up moves
-
-MareepEvosAttacks:
- db EVOLVE_LEVEL, 15, FLAAFFY
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 9, THUNDERSHOCK
- db 16, THUNDER_WAVE
- db 23, COTTON_SPORE
- db 30, LIGHT_SCREEN
- db 37, THUNDER
- db 0 ; no more level-up moves
-
-FlaaffyEvosAttacks:
- db EVOLVE_LEVEL, 30, AMPHAROS
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, THUNDERSHOCK
- db 9, THUNDERSHOCK
- db 18, THUNDER_WAVE
- db 27, COTTON_SPORE
- db 36, LIGHT_SCREEN
- db 45, THUNDER
- db 0 ; no more level-up moves
-
-AmpharosEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, THUNDERSHOCK
- db 1, THUNDER_WAVE
- db 9, THUNDERSHOCK
- db 18, THUNDER_WAVE
- db 27, COTTON_SPORE
- db 30, THUNDERPUNCH
- db 42, LIGHT_SCREEN
- db 57, THUNDER
- db 0 ; no more level-up moves
-
-BellossomEvosAttacks:
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, SWEET_SCENT
- db 1, STUN_SPORE
- db 1, PETAL_DANCE
- db 55, SOLARBEAM
- db 0 ; no more level-up moves
-
-MarillEvosAttacks:
- db EVOLVE_LEVEL, 18, AZUMARILL
- db 0 ; no more evolutions
- db 1, TACKLE
- db 3, DEFENSE_CURL
- db 6, TAIL_WHIP
- db 10, WATER_GUN
- db 15, ROLLOUT
- db 21, BUBBLEBEAM
- db 28, DOUBLE_EDGE
- db 36, RAIN_DANCE
- db 0 ; no more level-up moves
-
-AzumarillEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, DEFENSE_CURL
- db 1, TAIL_WHIP
- db 1, WATER_GUN
- db 3, DEFENSE_CURL
- db 6, TAIL_WHIP
- db 10, WATER_GUN
- db 15, ROLLOUT
- db 25, BUBBLEBEAM
- db 36, DOUBLE_EDGE
- db 48, RAIN_DANCE
- db 0 ; no more level-up moves
-
-SudowoodoEvosAttacks:
- db 0 ; no more evolutions
- db 1, ROCK_THROW
- db 1, MIMIC
- db 10, FLAIL
- db 19, LOW_KICK
- db 28, ROCK_SLIDE
- db 37, FAINT_ATTACK
- db 46, SLAM
- db 0 ; no more level-up moves
-
-PolitoedEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, HYPNOSIS
- db 1, DOUBLESLAP
- db 1, PERISH_SONG
- db 35, PERISH_SONG
- db 51, SWAGGER
- db 0 ; no more level-up moves
-
-HoppipEvosAttacks:
- db EVOLVE_LEVEL, 18, SKIPLOOM
- db 0 ; no more evolutions
- db 1, SPLASH
-if _CRYSTAL
- db 5, SYNTHESIS
-else
- db 1, SYNTHESIS
-endc
- db 5, TAIL_WHIP
- db 10, TACKLE
- db 13, POISONPOWDER
- db 15, STUN_SPORE
- db 17, SLEEP_POWDER
- db 20, LEECH_SEED
- db 25, COTTON_SPORE
- db 30, MEGA_DRAIN
- db 0 ; no more level-up moves
-
-SkiploomEvosAttacks:
- db EVOLVE_LEVEL, 27, JUMPLUFF
- db 0 ; no more evolutions
- db 1, SPLASH
- db 1, SYNTHESIS
- db 1, TAIL_WHIP
- db 1, TACKLE
-if _CRYSTAL
- db 5, SYNTHESIS
-endc
- db 5, TAIL_WHIP
- db 10, TACKLE
- db 13, POISONPOWDER
- db 15, STUN_SPORE
- db 17, SLEEP_POWDER
- db 22, LEECH_SEED
- db 29, COTTON_SPORE
- db 36, MEGA_DRAIN
- db 0 ; no more level-up moves
-
-JumpluffEvosAttacks:
- db 0 ; no more evolutions
- db 1, SPLASH
- db 1, SYNTHESIS
- db 1, TAIL_WHIP
- db 1, TACKLE
-if _CRYSTAL
- db 5, SYNTHESIS
-endc
- db 5, TAIL_WHIP
- db 10, TACKLE
- db 13, POISONPOWDER
- db 15, STUN_SPORE
- db 17, SLEEP_POWDER
- db 22, LEECH_SEED
- db 33, COTTON_SPORE
- db 44, MEGA_DRAIN
- db 0 ; no more level-up moves
-
-AipomEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, TAIL_WHIP
- db 6, SAND_ATTACK
- db 12, BATON_PASS
- db 19, FURY_SWIPES
- db 27, SWIFT
- db 36, SCREECH
- db 46, AGILITY
- db 0 ; no more level-up moves
-
-SunkernEvosAttacks:
- db EVOLVE_ITEM, SUN_STONE, SUNFLORA
- db 0 ; no more evolutions
- db 1, ABSORB
- db 4, GROWTH
- db 10, MEGA_DRAIN
- db 19, SUNNY_DAY
- db 31, SYNTHESIS
- db 46, GIGA_DRAIN
- db 0 ; no more level-up moves
-
-SunfloraEvosAttacks:
- db 0 ; no more evolutions
- db 1, ABSORB
- db 1, POUND
- db 4, GROWTH
- db 10, RAZOR_LEAF
- db 19, SUNNY_DAY
- db 31, PETAL_DANCE
- db 46, SOLARBEAM
- db 0 ; no more level-up moves
-
-YanmaEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, FORESIGHT
- db 7, QUICK_ATTACK
- db 13, DOUBLE_TEAM
- db 19, SONICBOOM
- db 25, DETECT
- db 31, SUPERSONIC
-if _CRYSTAL
- db 37, WING_ATTACK
-else
- db 37, SWIFT
-endc
- db 43, SCREECH
- db 0 ; no more level-up moves
-
-WooperEvosAttacks:
- db EVOLVE_LEVEL, 20, QUAGSIRE
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, TAIL_WHIP
- db 11, SLAM
- db 21, AMNESIA
- db 31, EARTHQUAKE
- db 41, RAIN_DANCE
- db 51, MIST
- db 51, HAZE
- db 0 ; no more level-up moves
-
-QuagsireEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 1, TAIL_WHIP
- db 11, SLAM
- db 23, AMNESIA
- db 35, EARTHQUAKE
- db 47, RAIN_DANCE
- db 59, MIST
- db 59, HAZE
- db 0 ; no more level-up moves
-
-EspeonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, CONFUSION
- db 23, QUICK_ATTACK
- db 30, SWIFT
- db 36, PSYBEAM
- db 42, PSYCH_UP
- db 47, PSYCHIC_M
- db 52, MORNING_SUN
- db 0 ; no more level-up moves
-
-UmbreonEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, TAIL_WHIP
- db 8, SAND_ATTACK
- db 16, PURSUIT
- db 23, QUICK_ATTACK
- db 30, CONFUSE_RAY
- db 36, FAINT_ATTACK
- db 42, MEAN_LOOK
- db 47, SCREECH
- db 52, MOONLIGHT
- db 0 ; no more level-up moves
-
-MurkrowEvosAttacks:
- db 0 ; no more evolutions
- db 1, PECK
- db 11, PURSUIT
- db 16, HAZE
- db 26, NIGHT_SHADE
- db 31, FAINT_ATTACK
- db 41, MEAN_LOOK
- db 0 ; no more level-up moves
-
-SlowkingEvosAttacks:
- db 0 ; no more evolutions
- db 1, CURSE
- db 1, TACKLE
- db 6, GROWL
- db 15, WATER_GUN
- db 20, CONFUSION
- db 29, DISABLE
- db 34, HEADBUTT
- db 43, SWAGGER
- db 48, PSYCHIC_M
- db 0 ; no more level-up moves
-
-MisdreavusEvosAttacks:
- db 0 ; no more evolutions
- db 1, GROWL
- db 1, PSYWAVE
- db 6, SPITE
- db 12, CONFUSE_RAY
- db 19, MEAN_LOOK
- db 27, PSYBEAM
- db 36, PAIN_SPLIT
- db 46, PERISH_SONG
- db 0 ; no more level-up moves
-
-UnownEvosAttacks:
- db 0 ; no more evolutions
- db 1, HIDDEN_POWER
- db 0 ; no more level-up moves
-
-WobbuffetEvosAttacks:
- db 0 ; no more evolutions
- db 1, COUNTER
- db 1, MIRROR_COAT
- db 1, SAFEGUARD
- db 1, DESTINY_BOND
- db 0 ; no more level-up moves
-
-GirafarigEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 1, CONFUSION
- db 1, STOMP
- db 7, CONFUSION
- db 13, STOMP
- db 20, AGILITY
- db 30, BATON_PASS
- db 41, PSYBEAM
- db 54, CRUNCH
- db 0 ; no more level-up moves
-
-PinecoEvosAttacks:
- db EVOLVE_LEVEL, 31, FORRETRESS
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, PROTECT
- db 8, SELFDESTRUCT
- db 15, TAKE_DOWN
- db 22, RAPID_SPIN
- db 29, BIDE
- db 36, EXPLOSION
- db 43, SPIKES
- db 50, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-ForretressEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, PROTECT
- db 1, SELFDESTRUCT
- db 8, SELFDESTRUCT
- db 15, TAKE_DOWN
- db 22, RAPID_SPIN
- db 29, BIDE
- db 39, EXPLOSION
- db 49, SPIKES
- db 59, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-DunsparceEvosAttacks:
- db 0 ; no more evolutions
- db 1, RAGE
- db 5, DEFENSE_CURL
- db 13, GLARE
- db 18, SPITE
- db 26, PURSUIT
- db 30, SCREECH
- db 38, TAKE_DOWN
- db 0 ; no more level-up moves
-
-GligarEvosAttacks:
- db 0 ; no more evolutions
- db 1, POISON_STING
- db 6, SAND_ATTACK
- db 13, HARDEN
- db 20, QUICK_ATTACK
- db 28, FAINT_ATTACK
- db 36, SLASH
- db 44, SCREECH
- db 52, GUILLOTINE
- db 0 ; no more level-up moves
-
-SteelixEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCREECH
- db 10, BIND
- db 14, ROCK_THROW
- db 23, HARDEN
- db 27, RAGE
- db 36, SANDSTORM
- db 40, SLAM
- db 49, CRUNCH
- db 0 ; no more level-up moves
-
-SnubbullEvosAttacks:
- db EVOLVE_LEVEL, 23, GRANBULL
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCARY_FACE
- db 4, TAIL_WHIP
- db 8, CHARM
- db 13, BITE
- db 19, LICK
- db 26, ROAR
- db 34, RAGE
- db 43, TAKE_DOWN
- db 0 ; no more level-up moves
-
-GranbullEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, SCARY_FACE
- db 4, TAIL_WHIP
- db 8, CHARM
- db 13, BITE
- db 19, LICK
- db 28, ROAR
- db 38, RAGE
- db 51, TAKE_DOWN
- db 0 ; no more level-up moves
-
-QwilfishEvosAttacks:
- db 0 ; no more evolutions
-if _CRYSTAL
- db 1, SPIKES
-endc
- db 1, TACKLE
- db 1, POISON_STING
- db 10, HARDEN
- db 10, MINIMIZE
- db 19, WATER_GUN
- db 28, PIN_MISSILE
- db 37, TAKE_DOWN
- db 46, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-ScizorEvosAttacks:
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 6, FOCUS_ENERGY
- db 12, PURSUIT
- db 18, FALSE_SWIPE
- db 24, AGILITY
- db 30, METAL_CLAW
- db 36, SLASH
- db 42, SWORDS_DANCE
- db 48, DOUBLE_TEAM
- db 0 ; no more level-up moves
-
-ShuckleEvosAttacks:
- db 0 ; no more evolutions
- db 1, CONSTRICT
- db 1, WITHDRAW
- db 9, WRAP
- db 14, ENCORE
- db 23, SAFEGUARD
- db 28, BIDE
- db 37, REST
- db 0 ; no more level-up moves
-
-HeracrossEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, LEER
- db 6, HORN_ATTACK
- db 12, ENDURE
- db 19, FURY_ATTACK
- db 27, COUNTER
- db 35, TAKE_DOWN
- db 44, REVERSAL
- db 54, MEGAHORN
- db 0 ; no more level-up moves
-
-SneaselEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 9, QUICK_ATTACK
- db 17, SCREECH
- db 25, FAINT_ATTACK
- db 33, FURY_SWIPES
- db 41, AGILITY
- db 49, SLASH
- db 57, BEAT_UP
-if _CRYSTAL
- db 65, METAL_CLAW
-endc
- db 0 ; no more level-up moves
-
-TeddiursaEvosAttacks:
- db EVOLVE_LEVEL, 30, URSARING
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 8, LICK
- db 15, FURY_SWIPES
- db 22, FAINT_ATTACK
- db 29, REST
- db 36, SLASH
- db 43, SNORE
- db 50, THRASH
- db 0 ; no more level-up moves
-
-UrsaringEvosAttacks:
- db 0 ; no more evolutions
- db 1, SCRATCH
- db 1, LEER
- db 1, LICK
- db 1, FURY_SWIPES
- db 8, LICK
- db 15, FURY_SWIPES
- db 22, FAINT_ATTACK
- db 29, REST
- db 39, SLASH
- db 49, SNORE
- db 59, THRASH
- db 0 ; no more level-up moves
-
-SlugmaEvosAttacks:
- db EVOLVE_LEVEL, 38, MAGCARGO
- db 0 ; no more evolutions
- db 1, SMOG
- db 8, EMBER
- db 15, ROCK_THROW
- db 22, HARDEN
- db 29, AMNESIA
- db 36, FLAMETHROWER
- db 43, ROCK_SLIDE
- db 50, BODY_SLAM
- db 0 ; no more level-up moves
-
-MagcargoEvosAttacks:
- db 0 ; no more evolutions
- db 1, SMOG
- db 1, EMBER
- db 1, ROCK_THROW
- db 8, EMBER
- db 15, ROCK_THROW
- db 22, HARDEN
- db 29, AMNESIA
- db 36, FLAMETHROWER
- db 48, ROCK_SLIDE
- db 60, BODY_SLAM
- db 0 ; no more level-up moves
-
-SwinubEvosAttacks:
- db EVOLVE_LEVEL, 33, PILOSWINE
- db 0 ; no more evolutions
- db 1, TACKLE
- db 10, POWDER_SNOW
- db 19, ENDURE
- db 28, TAKE_DOWN
- db 37, MIST
- db 46, BLIZZARD
-if _CRYSTAL
- db 55, AMNESIA
-endc
- db 0 ; no more level-up moves
-
-PiloswineEvosAttacks:
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, POWDER_SNOW
- db 1, ENDURE
- db 10, POWDER_SNOW
- db 19, ENDURE
- db 28, TAKE_DOWN
- db 33, FURY_ATTACK
- db 42, MIST
- db 56, BLIZZARD
-if _CRYSTAL
- db 70, AMNESIA
-endc
- db 0 ; no more level-up moves
-
-CorsolaEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 7, HARDEN
- db 13, BUBBLE
- db 19, RECOVER
- db 25, BUBBLEBEAM
- db 31, SPIKE_CANNON
- db 37, MIRROR_COAT
- db 43, ANCIENTPOWER
- db 0 ; no more level-up moves
-
-RemoraidEvosAttacks:
- db EVOLVE_LEVEL, 25, OCTILLERY
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 11, LOCK_ON
- db 22, PSYBEAM
- db 22, AURORA_BEAM
- db 22, BUBBLEBEAM
- db 33, FOCUS_ENERGY
- db 44, ICE_BEAM
- db 55, HYPER_BEAM
- db 0 ; no more level-up moves
-
-OctilleryEvosAttacks:
- db 0 ; no more evolutions
- db 1, WATER_GUN
- db 11, CONSTRICT
- db 22, PSYBEAM
- db 22, AURORA_BEAM
- db 22, BUBBLEBEAM
- db 25, OCTAZOOKA
- db 38, FOCUS_ENERGY
- db 54, ICE_BEAM
- db 70, HYPER_BEAM
- db 0 ; no more level-up moves
-
-DelibirdEvosAttacks:
- db 0 ; no more evolutions
- db 1, PRESENT
- db 0 ; no more level-up moves
-
-MantineEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, BUBBLE
- db 10, SUPERSONIC
- db 18, BUBBLEBEAM
- db 25, TAKE_DOWN
- db 32, AGILITY
- db 40, WING_ATTACK
- db 49, CONFUSE_RAY
- db 0 ; no more level-up moves
-
-SkarmoryEvosAttacks:
- db 0 ; no more evolutions
- db 1, LEER
- db 1, PECK
- db 13, SAND_ATTACK
- db 19, SWIFT
- db 25, AGILITY
- db 37, FURY_ATTACK
- db 49, STEEL_WING
- db 0 ; no more level-up moves
-
-HoundourEvosAttacks:
- db EVOLVE_LEVEL, 24, HOUNDOOM
- db 0 ; no more evolutions
- db 1, LEER
- db 1, EMBER
- db 7, ROAR
- db 13, SMOG
- db 20, BITE
- db 27, FAINT_ATTACK
- db 35, FLAMETHROWER
- db 43, CRUNCH
- db 0 ; no more level-up moves
-
-HoundoomEvosAttacks:
- db 0 ; no more evolutions
- db 1, LEER
- db 1, EMBER
- db 7, ROAR
- db 13, SMOG
- db 20, BITE
- db 30, FAINT_ATTACK
- db 41, FLAMETHROWER
- db 52, CRUNCH
- db 0 ; no more level-up moves
-
-KingdraEvosAttacks:
- db 0 ; no more evolutions
- db 1, BUBBLE
- db 1, SMOKESCREEN
- db 1, LEER
- db 1, WATER_GUN
- db 8, SMOKESCREEN
- db 15, LEER
- db 22, WATER_GUN
- db 29, TWISTER
- db 40, AGILITY
- db 51, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-PhanpyEvosAttacks:
- db EVOLVE_LEVEL, 25, DONPHAN
- db 0 ; no more evolutions
- db 1, TACKLE
- db 1, GROWL
- db 9, DEFENSE_CURL
- db 17, FLAIL
- db 25, TAKE_DOWN
- db 33, ROLLOUT
- db 41, ENDURE
- db 49, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-DonphanEvosAttacks:
- db 0 ; no more evolutions
- db 1, HORN_ATTACK
- db 1, GROWL
- db 9, DEFENSE_CURL
- db 17, FLAIL
- db 25, FURY_ATTACK
- db 33, ROLLOUT
- db 41, RAPID_SPIN
- db 49, EARTHQUAKE
- db 0 ; no more level-up moves
-
-Porygon2EvosAttacks:
- db 0 ; no more evolutions
- db 1, CONVERSION2
- db 1, TACKLE
- db 1, CONVERSION
- db 9, AGILITY
- db 12, PSYBEAM
- db 20, RECOVER
- db 24, DEFENSE_CURL
- db 32, LOCK_ON
- db 36, TRI_ATTACK
- db 44, ZAP_CANNON
- db 0 ; no more level-up moves
-
-StantlerEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 8, LEER
- db 15, HYPNOSIS
- db 23, STOMP
- db 31, SAND_ATTACK
- db 40, TAKE_DOWN
- db 49, CONFUSE_RAY
- db 0 ; no more level-up moves
-
-SmeargleEvosAttacks:
- db 0 ; no more evolutions
- db 1, SKETCH
- db 11, SKETCH
- db 21, SKETCH
- db 31, SKETCH
- db 41, SKETCH
- db 51, SKETCH
- db 61, SKETCH
- db 71, SKETCH
- db 81, SKETCH
- db 91, SKETCH
- db 0 ; no more level-up moves
-
-TyrogueEvosAttacks:
- db EVOLVE_STAT, 20, ATK_LT_DEF, HITMONCHAN
- db EVOLVE_STAT, 20, ATK_GT_DEF, HITMONLEE
- db EVOLVE_STAT, 20, ATK_EQ_DEF, HITMONTOP
- db 0 ; no more evolutions
- db 1, TACKLE
- db 0 ; no more level-up moves
-
-HitmontopEvosAttacks:
- db 0 ; no more evolutions
- db 1, ROLLING_KICK
- db 7, FOCUS_ENERGY
- db 13, PURSUIT
- db 19, QUICK_ATTACK
- db 25, RAPID_SPIN
- db 31, COUNTER
- db 37, AGILITY
- db 43, DETECT
- db 49, TRIPLE_KICK
- db 0 ; no more level-up moves
-
-SmoochumEvosAttacks:
- db EVOLVE_LEVEL, 30, JYNX
- db 0 ; no more evolutions
- db 1, POUND
- db 1, LICK
- db 9, SWEET_KISS
- db 13, POWDER_SNOW
- db 21, CONFUSION
- db 25, SING
- db 33, MEAN_LOOK
- db 37, PSYCHIC_M
- db 45, PERISH_SONG
- db 49, BLIZZARD
- db 0 ; no more level-up moves
-
-ElekidEvosAttacks:
- db EVOLVE_LEVEL, 30, ELECTABUZZ
- db 0 ; no more evolutions
- db 1, QUICK_ATTACK
- db 1, LEER
- db 9, THUNDERPUNCH
- db 17, LIGHT_SCREEN
- db 25, SWIFT
- db 33, SCREECH
- db 41, THUNDERBOLT
- db 49, THUNDER
- db 0 ; no more level-up moves
-
-MagbyEvosAttacks:
- db EVOLVE_LEVEL, 30, MAGMAR
- db 0 ; no more evolutions
- db 1, EMBER
- db 7, LEER
- db 13, SMOG
- db 19, FIRE_PUNCH
- db 25, SMOKESCREEN
- db 31, SUNNY_DAY
- db 37, FLAMETHROWER
- db 43, CONFUSE_RAY
- db 49, FIRE_BLAST
- db 0 ; no more level-up moves
-
-MiltankEvosAttacks:
- db 0 ; no more evolutions
- db 1, TACKLE
- db 4, GROWL
- db 8, DEFENSE_CURL
- db 13, STOMP
- db 19, MILK_DRINK
- db 26, BIDE
- db 34, ROLLOUT
- db 43, BODY_SLAM
- db 53, HEAL_BELL
- db 0 ; no more level-up moves
-
-BlisseyEvosAttacks:
- db 0 ; no more evolutions
- db 1, POUND
- db 4, GROWL
- db 7, TAIL_WHIP
- db 10, SOFTBOILED
- db 13, DOUBLESLAP
- db 18, MINIMIZE
- db 23, SING
- db 28, EGG_BOMB
- db 33, DEFENSE_CURL
- db 40, LIGHT_SCREEN
- db 47, DOUBLE_EDGE
- db 0 ; no more level-up moves
-
-RaikouEvosAttacks:
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 11, THUNDERSHOCK
- db 21, ROAR
- db 31, QUICK_ATTACK
- db 41, SPARK
- db 51, REFLECT
- db 61, CRUNCH
- db 71, THUNDER
- db 0 ; no more level-up moves
-
-EnteiEvosAttacks:
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 11, EMBER
- db 21, ROAR
- db 31, FIRE_SPIN
- db 41, STOMP
- db 51, FLAMETHROWER
- db 61, SWAGGER
- db 71, FIRE_BLAST
- db 0 ; no more level-up moves
-
-SuicuneEvosAttacks:
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
-if _CRYSTAL
- db 11, BUBBLEBEAM
- db 21, RAIN_DANCE
- db 31, GUST
- db 41, AURORA_BEAM
-else
- db 11, WATER_GUN
- db 21, ROAR
- db 31, GUST
- db 41, BUBBLEBEAM
-endc
- db 51, MIST
- db 61, MIRROR_COAT
- db 71, HYDRO_PUMP
- db 0 ; no more level-up moves
-
-LarvitarEvosAttacks:
- db EVOLVE_LEVEL, 30, PUPITAR
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 8, SANDSTORM
- db 15, SCREECH
- db 22, ROCK_SLIDE
- db 29, THRASH
- db 36, SCARY_FACE
- db 43, CRUNCH
- db 50, EARTHQUAKE
- db 57, HYPER_BEAM
- db 0 ; no more level-up moves
-
-PupitarEvosAttacks:
- db EVOLVE_LEVEL, 55, TYRANITAR
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 1, SANDSTORM
- db 1, SCREECH
- db 8, SANDSTORM
- db 15, SCREECH
- db 22, ROCK_SLIDE
- db 29, THRASH
- db 38, SCARY_FACE
- db 47, CRUNCH
- db 56, EARTHQUAKE
- db 65, HYPER_BEAM
- db 0 ; no more level-up moves
-
-TyranitarEvosAttacks:
- db 0 ; no more evolutions
- db 1, BITE
- db 1, LEER
- db 1, SANDSTORM
- db 1, SCREECH
- db 8, SANDSTORM
- db 15, SCREECH
- db 22, ROCK_SLIDE
- db 29, THRASH
- db 38, SCARY_FACE
- db 47, CRUNCH
- db 61, EARTHQUAKE
- db 75, HYPER_BEAM
- db 0 ; no more level-up moves
-
-LugiaEvosAttacks:
- db 0 ; no more evolutions
- db 1, AEROBLAST
- db 11, SAFEGUARD
- db 22, GUST
- db 33, RECOVER
- db 44, HYDRO_PUMP
- db 55, RAIN_DANCE
- db 66, SWIFT
- db 77, WHIRLWIND
- db 88, ANCIENTPOWER
- db 99, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-HoOhEvosAttacks:
- db 0 ; no more evolutions
- db 1, SACRED_FIRE
- db 11, SAFEGUARD
- db 22, GUST
- db 33, RECOVER
- db 44, FIRE_BLAST
- db 55, SUNNY_DAY
- db 66, SWIFT
- db 77, WHIRLWIND
- db 88, ANCIENTPOWER
- db 99, FUTURE_SIGHT
- db 0 ; no more level-up moves
-
-CelebiEvosAttacks:
- db 0 ; no more evolutions
- db 1, LEECH_SEED
- db 1, CONFUSION
- db 1, RECOVER
- db 1, HEAL_BELL
- db 10, SAFEGUARD
- db 20, ANCIENTPOWER
- db 30, FUTURE_SIGHT
- db 40, BATON_PASS
- db 50, PERISH_SONG
- db 0 ; no more level-up moves
diff --git a/data/flypoints.asm b/data/flypoints.asm
new file mode 100644
index 000000000..b41db0ea1
--- /dev/null
+++ b/data/flypoints.asm
@@ -0,0 +1,38 @@
+flypoint: MACRO
+ const FLY_\1
+ db \2, SPAWN_\1
+ENDM
+
+Flypoints: ; 91c5e
+; landmark, spawn point
+ const_def
+; Johto
+ flypoint NEW_BARK, NEW_BARK_TOWN
+ flypoint CHERRYGROVE, CHERRYGROVE_CITY
+ flypoint VIOLET, VIOLET_CITY
+ flypoint AZALEA, AZALEA_TOWN
+ flypoint GOLDENROD, GOLDENROD_CITY
+ flypoint ECRUTEAK, ECRUTEAK_CITY
+ flypoint OLIVINE, OLIVINE_CITY
+ flypoint CIANWOOD, CIANWOOD_CITY
+ flypoint MAHOGANY, MAHOGANY_TOWN
+ flypoint LAKE, LAKE_OF_RAGE
+ flypoint BLACKTHORN, BLACKTHORN_CITY
+ flypoint MT_SILVER, SILVER_CAVE
+
+; Kanto
+KANTO_FLYPOINT EQU const_value
+ flypoint PALLET, PALLET_TOWN
+ flypoint VIRIDIAN, VIRIDIAN_CITY
+ flypoint PEWTER, PEWTER_CITY
+ flypoint CERULEAN, CERULEAN_CITY
+ flypoint VERMILION, VERMILION_CITY
+ flypoint ROCK_TUNNEL, ROCK_TUNNEL
+ flypoint LAVENDER, LAVENDER_TOWN
+ flypoint CELADON, CELADON_CITY
+ flypoint SAFFRON, SAFFRON_CITY
+ flypoint FUCHSIA, FUCHSIA_CITY
+ flypoint CINNABAR, CINNABAR_ISLAND
+ flypoint INDIGO, INDIGO_PLATEAU
+ db -1
+; 91c8f
diff --git a/data/hm_moves.asm b/data/hm_moves.asm
deleted file mode 100644
index ac9f1f542..000000000
--- a/data/hm_moves.asm
+++ /dev/null
@@ -1,12 +0,0 @@
-; HM moves can't be forgotten
-
-HMMoves: ; 34f0
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db WATERFALL
- db WHIRLPOOL
- db -1 ; end
-; 34f8
diff --git a/data/items/bargain_shop.asm b/data/items/bargain_shop.asm
new file mode 100644
index 000000000..e4da96210
--- /dev/null
+++ b/data/items/bargain_shop.asm
@@ -0,0 +1,9 @@
+BargainShopData: ; 15c51
+ db 5
+ dbw NUGGET, 4500
+ dbw PEARL, 650
+ dbw BIG_PEARL, 3500
+ dbw STARDUST, 900
+ dbw STAR_PIECE, 4600
+ db -1
+; 15c62
diff --git a/data/items/buena_prizes.asm b/data/items/buena_prizes.asm
new file mode 100644
index 000000000..8aecf2bd0
--- /dev/null
+++ b/data/items/buena_prizes.asm
@@ -0,0 +1,13 @@
+BuenaPrizeItems: ; 8b15e
+; there are NUM_BUENA_PRIZES items (see event/buena.asm)
+ db ULTRA_BALL, 2
+ db FULL_RESTORE, 2
+ db NUGGET, 3
+ db RARE_CANDY, 3
+ db PROTEIN, 5
+ db IRON, 5
+ db CARBOS, 5
+ db CALCIUM, 5
+ db HP_UP, 5
+BuenaPrizeItemsEnd:
+; 8b170
diff --git a/data/fruit_tree_items.asm b/data/items/fruit_trees.asm
index 67b8f51ad..67b8f51ad 100644
--- a/data/fruit_tree_items.asm
+++ b/data/items/fruit_trees.asm
diff --git a/items/item_attributes.asm b/data/items/item_attributes.asm
index d6d272107..d6d272107 100644
--- a/items/item_attributes.asm
+++ b/data/items/item_attributes.asm
diff --git a/items/item_descriptions.asm b/data/items/item_descriptions.asm
index 40e91b2c9..40e91b2c9 100644
--- a/items/item_descriptions.asm
+++ b/data/items/item_descriptions.asm
diff --git a/items/item_names.asm b/data/items/item_names.asm
index f44100ab3..f44100ab3 100644
--- a/items/item_names.asm
+++ b/data/items/item_names.asm
diff --git a/items/marts.asm b/data/items/marts.asm
index cd17ca36b..cd17ca36b 100644
--- a/items/marts.asm
+++ b/data/items/marts.asm
diff --git a/data/mom_phone_items.asm b/data/items/mom_phone.asm
index 533241ca1..533241ca1 100644
--- a/data/mom_phone_items.asm
+++ b/data/items/mom_phone.asm
diff --git a/data/items/rooftop_sale.asm b/data/items/rooftop_sale.asm
new file mode 100644
index 000000000..b16724cdc
--- /dev/null
+++ b/data/items/rooftop_sale.asm
@@ -0,0 +1,18 @@
+RooftopSaleData1: ; 15aee
+ db 5
+ dbw POKE_BALL, 150
+ dbw GREAT_BALL, 500
+ dbw SUPER_POTION, 500
+ dbw FULL_HEAL, 500
+ dbw REVIVE, 1200
+ db -1
+
+RooftopSaleData2: ; 15aff
+ db 5
+ dbw HYPER_POTION, 1000
+ dbw FULL_RESTORE, 2000
+ dbw FULL_HEAL, 500
+ dbw ULTRA_BALL, 1000
+ dbw PROTEIN, 7800
+ db -1
+; 15b10
diff --git a/data/landmarks.asm b/data/maps/landmarks.asm
index 0b927aaf6..0b927aaf6 100644
--- a/data/landmarks.asm
+++ b/data/maps/landmarks.asm
diff --git a/data/map_triggers.asm b/data/maps/map_triggers.asm
index b2ba1222a..b2ba1222a 100644
--- a/data/map_triggers.asm
+++ b/data/maps/map_triggers.asm
diff --git a/data/mapgroup_roofs.asm b/data/maps/mapgroup_roofs.asm
index 0cad8a0e3..0cad8a0e3 100644
--- a/data/mapgroup_roofs.asm
+++ b/data/maps/mapgroup_roofs.asm
diff --git a/data/outdoor_sprites.asm b/data/maps/outdoor_sprites.asm
index 2b0cd89fe..2b0cd89fe 100644
--- a/data/outdoor_sprites.asm
+++ b/data/maps/outdoor_sprites.asm
diff --git a/data/spawn_points.asm b/data/maps/spawn_points.asm
index 49ba362d7..49ba362d7 100644
--- a/data/spawn_points.asm
+++ b/data/maps/spawn_points.asm
diff --git a/data/palettes/49757.pal b/data/palettes/49757.pal
new file mode 100644
index 000000000..93e884046
--- /dev/null
+++ b/data/palettes/49757.pal
@@ -0,0 +1,39 @@
+ RGB 31, 31, 63
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 63
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 31, 00, 00
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 30, 16, 26
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 16, 16, 16
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 31, 12, 12
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 07, 08, 31
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 21, 00, 21
+ RGB 29, 28, 09
+ RGB 31, 31, 31
diff --git a/data/palettes/979c.pal b/data/palettes/979c.pal
new file mode 100644
index 000000000..3940a030a
--- /dev/null
+++ b/data/palettes/979c.pal
@@ -0,0 +1,29 @@
+ RGB 31, 31, 31
+ RGB 25, 25, 25
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 18, 07
+ RGB 20, 15, 03
+ RGB 00, 00, 00
diff --git a/data/palettes/b6f1.pal b/data/palettes/b6f1.pal
new file mode 100644
index 000000000..1dd56f50f
--- /dev/null
+++ b/data/palettes/b6f1.pal
@@ -0,0 +1,24 @@
+ RGB 31, 31, 31
+ RGB 18, 23, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 00, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 25, 22, 00
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 26, 31
+ RGB 18, 23, 31
+ RGB 00, 00, 00
diff --git a/data/palettes/b719.pal b/data/palettes/b719.pal
new file mode 100644
index 000000000..09dd9a364
--- /dev/null
+++ b/data/palettes/b719.pal
@@ -0,0 +1,9 @@
+ RGB 31, 31, 31
+ RGB 07, 06, 03
+ RGB 07, 06, 03
+ RGB 07, 06, 03
+
+ RGB 31, 31, 31
+ RGB 31, 31, 00
+ RGB 26, 22, 00
+ RGB 00, 00, 00
diff --git a/data/palettes/b789.pal b/data/palettes/b789.pal
new file mode 100644
index 000000000..cce760662
--- /dev/null
+++ b/data/palettes/b789.pal
@@ -0,0 +1,19 @@
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 18, 18, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 10, 11, 31
+ RGB 18, 18, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 31, 11
+ RGB 18, 18, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 26, 05
+ RGB 18, 18, 18
+ RGB 00, 00, 00
diff --git a/data/palettes/card_flip.pal b/data/palettes/card_flip.pal
new file mode 100644
index 000000000..24c5566f8
--- /dev/null
+++ b/data/palettes/card_flip.pal
@@ -0,0 +1,44 @@
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 25, 00
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 13, 30
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 08, 17, 30
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 08, 31, 08
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 17, 07, 31
+ RGB 06, 19, 08
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 31, 00, 00
diff --git a/data/palettes/credits.pal b/data/palettes/credits.pal
new file mode 100644
index 000000000..c473f0414
--- /dev/null
+++ b/data/palettes/credits.pal
@@ -0,0 +1,19 @@
+; pichu
+ RGB 31,00,31, 31,25,00, 11,14,31, 07,07,07
+ RGB 31,05,05, 11,14,31, 11,14,31, 31,31,31
+ RGB 31,05,05, 00,00,00, 31,31,31, 31,31,31
+
+; smoochum
+ RGB 31,31,31, 31,27,00, 26,06,31, 07,07,07
+ RGB 03,13,31, 20,00,24, 26,06,31, 31,31,31
+ RGB 03,13,31, 00,00,00, 31,31,31, 31,31,31
+
+; ditto
+ RGB 31,31,31, 23,12,28, 31,22,00, 07,07,07
+ RGB 03,20,00, 31,22,00, 31,22,00, 31,31,31
+ RGB 03,20,00, 00,00,00, 31,31,31, 31,31,31
+
+; igglybuff
+ RGB 31,31,31, 31,10,31, 31,00,09, 07,07,07
+ RGB 31,14,00, 31,00,09, 31,00,09, 31,31,31
+ RGB 31,14,00, 31,31,31, 31,31,31, 31,31,31
diff --git a/data/palettes/crystal_intro/fade.pal b/data/palettes/crystal_intro/fade.pal
new file mode 100644
index 000000000..8e03cbc43
--- /dev/null
+++ b/data/palettes/crystal_intro/fade.pal
@@ -0,0 +1,41 @@
+; Fade to white.
+
+ RGB 24, 12, 09
+ RGB 31, 31, 31
+ RGB 12, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 19, 05
+ RGB 31, 31, 31
+ RGB 15, 05, 31
+ RGB 07, 07, 07
+
+ RGB 31, 21, 09
+ RGB 31, 31, 31
+ RGB 18, 09, 31
+ RGB 11, 11, 11
+
+ RGB 31, 23, 13
+ RGB 31, 31, 31
+ RGB 21, 13, 31
+ RGB 15, 15, 15
+
+ RGB 31, 25, 17
+ RGB 31, 31, 31
+ RGB 25, 17, 31
+ RGB 19, 19, 19
+
+ RGB 31, 27, 21
+ RGB 31, 31, 31
+ RGB 27, 21, 31
+ RGB 23, 23, 23
+
+ RGB 31, 29, 25
+ RGB 31, 31, 31
+ RGB 29, 26, 31
+ RGB 27, 27, 27
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
diff --git a/data/palettes/crystal_intro/gamefreak_logo.pal b/data/palettes/crystal_intro/gamefreak_logo.pal
new file mode 100644
index 000000000..c3a526b82
--- /dev/null
+++ b/data/palettes/crystal_intro/gamefreak_logo.pal
@@ -0,0 +1,23 @@
+; Ditto's color as it turns into the Game Freak logo.
+; Fade from pink to orange.
+; One color per step.
+
+ RGB 23, 12, 28
+ RGB 23, 12, 27
+ RGB 23, 13, 26
+ RGB 23, 13, 24
+
+ RGB 24, 14, 22
+ RGB 24, 14, 20
+ RGB 24, 15, 18
+ RGB 24, 15, 16
+
+ RGB 25, 16, 14
+ RGB 25, 16, 12
+ RGB 25, 17, 10
+ RGB 25, 17, 08
+
+ RGB 26, 18, 06
+ RGB 26, 18, 04
+ RGB 26, 19, 02
+ RGB 26, 19, 00
diff --git a/data/palettes/crystal_intro/intro_1.pal b/data/palettes/crystal_intro/intro_1.pal
new file mode 100644
index 000000000..ae0faadac
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_1.pal
@@ -0,0 +1,79 @@
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 0, 4, 5
+ RGB 1, 8, 5
+ RGB 4, 12, 9
+ RGB 24, 12, 9
+
+ RGB 0, 4, 5
+ RGB 9, 6, 8
+ RGB 8, 16, 5
+ RGB 5, 10, 4
+
+ RGB 31, 31, 31
+ RGB 9, 6, 8
+ RGB 18, 9, 9
+ RGB 13, 8, 9
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 2, 5, 22
+ RGB 1, 5, 12
+
+ RGB 31, 31, 31
+ RGB 31, 10, 25
+ RGB 31, 21, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 21, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
diff --git a/data/palettes/crystal_intro/intro_2.pal b/data/palettes/crystal_intro/intro_2.pal
new file mode 100644
index 000000000..5f83df020
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_2.pal
@@ -0,0 +1,79 @@
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 10, 0, 10
+ RGB 19, 0, 19
+ RGB 31, 0, 31
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
diff --git a/data/palettes/crystal_intro/intro_3.pal b/data/palettes/crystal_intro/intro_3.pal
new file mode 100644
index 000000000..95f3e052a
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_3.pal
@@ -0,0 +1,79 @@
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
diff --git a/data/palettes/crystal_intro/intro_4.pal b/data/palettes/crystal_intro/intro_4.pal
new file mode 100644
index 000000000..fdcf058de
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_4.pal
@@ -0,0 +1,79 @@
+ RGB 24, 12, 9
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 31, 31, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 12, 20, 31
+ RGB 19, 8, 31
+ RGB 0, 0, 0
+
+ RGB 12, 20, 31
+ RGB 8, 9, 31
+ RGB 19, 8, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 12, 20, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
diff --git a/data/palettes/crystal_intro/intro_5.pal b/data/palettes/crystal_intro/intro_5.pal
new file mode 100644
index 000000000..5b1be1a5f
--- /dev/null
+++ b/data/palettes/crystal_intro/intro_5.pal
@@ -0,0 +1,79 @@
+ RGB 24, 12, 9
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 31, 31, 31
+ RGB 8, 9, 31
+ RGB 0, 0, 0
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+ RGB 24, 12, 9
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 12, 0, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 21, 9, 0
+ RGB 21, 9, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
diff --git a/data/palettes/debug/bg.pal b/data/palettes/debug/bg.pal
new file mode 100644
index 000000000..d0b573598
--- /dev/null
+++ b/data/palettes/debug/bg.pal
@@ -0,0 +1,43 @@
+ ; white
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
diff --git a/data/palettes/debug/ob.pal b/data/palettes/debug/ob.pal
new file mode 100644
index 000000000..2a03f4e8f
--- /dev/null
+++ b/data/palettes/debug/ob.pal
@@ -0,0 +1,42 @@
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+ ; red
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ ; green
+ RGB 31, 31, 31
+ RGB 00, 31, 00
+ RGB 00, 31, 00
+ RGB 00, 00, 00
+
+ ; blue
+ RGB 31, 31, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
diff --git a/data/palettes/diploma.pal b/data/palettes/diploma.pal
new file mode 100644
index 000000000..2c9ec6453
--- /dev/null
+++ b/data/palettes/diploma.pal
@@ -0,0 +1,39 @@
+ RGB 27, 31, 27
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 07, 06
+ RGB 20, 02, 03
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 10, 31, 09
+ RGB 04, 14, 01
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 22, 16, 08
+ RGB 13, 07, 01
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 15, 31, 31
+ RGB 05, 17, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 11, 11, 19
+ RGB 07, 07, 12
+ RGB 00, 00, 00
diff --git a/data/palettes/mail.pal b/data/palettes/mail.pal
new file mode 100644
index 000000000..4096ffae1
--- /dev/null
+++ b/data/palettes/mail.pal
@@ -0,0 +1,49 @@
+ RGB 20, 31, 11
+ RGB 31, 19, 00
+ RGB 31, 10, 09
+ RGB 00, 00, 00
+
+ RGB 15, 20, 31
+ RGB 30, 26, 00
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 24, 17, 31
+ RGB 30, 26, 00
+ RGB 08, 11, 31
+ RGB 00, 00, 00
+
+ RGB 31, 25, 17
+ RGB 31, 18, 04
+ RGB 28, 12, 05
+ RGB 00, 00, 00
+
+ RGB 19, 26, 31
+ RGB 31, 05, 08
+ RGB 31, 09, 31
+ RGB 00, 00, 00
+
+ RGB 31, 19, 28
+ RGB 31, 21, 00
+ RGB 12, 22, 00
+ RGB 00, 00, 00
+
+ RGB 19, 17, 23
+ RGB 30, 26, 00
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 07, 26, 31
+ RGB 26, 26, 27
+ RGB 31, 11, 11
+ RGB 00, 00, 00
+
+ RGB 21, 31, 21
+ RGB 30, 26, 00
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 07, 26, 31
+ RGB 31, 31, 00
+ RGB 00, 21, 00
+ RGB 00, 00, 00
diff --git a/tilesets/ob.pal b/data/palettes/map_objects.pal
index a6e20d7f0..a6e20d7f0 100644
--- a/tilesets/ob.pal
+++ b/data/palettes/map_objects.pal
diff --git a/data/palettes/mg_mobile.pal b/data/palettes/mg_mobile.pal
new file mode 100644
index 000000000..c77e8c63f
--- /dev/null
+++ b/data/palettes/mg_mobile.pal
@@ -0,0 +1,24 @@
+ RGB 03, 07, 09
+ RGB 26, 31, 00
+ RGB 20, 16, 03
+ RGB 31, 31, 31
+
+ RGB 13, 24, 29
+ RGB 11, 16, 30
+ RGB 07, 11, 22
+ RGB 05, 06, 18
+
+ RGB 31, 31, 31
+ RGB 20, 26, 31
+ RGB 13, 24, 29
+ RGB 11, 16, 30
+
+ RGB 31, 31, 31
+ RGB 20, 26, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 20, 16, 08
+ RGB 31, 00, 00
+ RGB 00, 00, 00
diff --git a/data/palettes/pack.pal b/data/palettes/pack.pal
new file mode 100644
index 000000000..e8b4979bb
--- /dev/null
+++ b/data/palettes/pack.pal
@@ -0,0 +1,29 @@
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 11, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 00, 00, 31
+ RGB 31, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 15, 31
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 07, 19, 07
+ RGB 07, 19, 07
+ RGB 00, 00, 00
diff --git a/data/palettes/pack_f.pal b/data/palettes/pack_f.pal
new file mode 100644
index 000000000..a962d97d1
--- /dev/null
+++ b/data/palettes/pack_f.pal
@@ -0,0 +1,29 @@
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 00, 00, 00
+
+ RGB 15, 15, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 07, 31
+ RGB 31, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 31
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 07, 19, 07
+ RGB 07, 19, 07
+ RGB 00, 00, 00
diff --git a/data/palettes/party_menu.pal b/data/palettes/party_menu.pal
new file mode 100644
index 000000000..70af517be
--- /dev/null
+++ b/data/palettes/party_menu.pal
@@ -0,0 +1,69 @@
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 10, 14, 20
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 27, 31, 27
+ RGB 31, 19, 10
+ RGB 31, 07, 04
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 08, 12, 31
+ RGB 01, 04, 31
+ RGB 07, 07, 07
+
+ RGB 31, 31, 31
+ RGB 24, 18, 07
+ RGB 20, 15, 03
+ RGB 07, 07, 07
diff --git a/data/palettes/pokegear.pal b/data/palettes/pokegear.pal
new file mode 100644
index 000000000..397986dec
--- /dev/null
+++ b/data/palettes/pokegear.pal
@@ -0,0 +1,29 @@
+ RGB 28, 31, 20
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 31, 15, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 31, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 31, 00, 00
diff --git a/data/palettes/pokegear_f.pal b/data/palettes/pokegear_f.pal
new file mode 100644
index 000000000..3f797c866
--- /dev/null
+++ b/data/palettes/pokegear_f.pal
@@ -0,0 +1,29 @@
+ RGB 28, 31, 20
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 10, 18, 31
+ RGB 13, 06, 31
+ RGB 00, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 00, 00, 31
+ RGB 31, 00, 00
+
+ RGB 28, 31, 20
+ RGB 00, 31, 00
+ RGB 15, 07, 00
+ RGB 31, 00, 00
diff --git a/data/palettes/predef.pal b/data/palettes/predef.pal
new file mode 100644
index 000000000..6975f17a2
--- /dev/null
+++ b/data/palettes/predef.pal
@@ -0,0 +1,394 @@
+ RGB 31, 31, 31
+ RGB 22, 25, 19
+ RGB 16, 21, 30
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 27, 28, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 28, 19
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 24, 24
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 23, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 21, 27
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 24, 16
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 25, 30, 26
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 25, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 19
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 26, 19
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 27, 28, 27
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 30, 23
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 24, 29
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 23, 29
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 25, 23, 20
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 26, 18
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 21, 18
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 25, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 21, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 25, 21
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 21, 22
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 20
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 26, 26
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 14, 09
+ RGB 15, 20, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 28, 22
+ RGB 15, 20, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 07, 07, 07
+ RGB 02, 03, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 17
+ RGB 16, 14, 19
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 18, 20, 27
+ RGB 11, 15, 23
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 10
+ RGB 26, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 25, 29
+ RGB 14, 19, 25
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 27, 22, 24
+ RGB 21, 15, 23
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 28, 20, 15
+ RGB 21, 14, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 20, 26, 16
+ RGB 09, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 28, 15, 21
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 28, 14
+ RGB 26, 20, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 21, 22
+ RGB 15, 15, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 19, 13
+ RGB 14, 12, 17
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 18, 21
+ RGB 10, 12, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 22, 15, 16
+ RGB 17, 02, 05
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 20, 20
+ RGB 05, 16, 16
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 15, 19
+ RGB 14, 04, 12
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 20, 17, 18
+ RGB 18, 13, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 21, 16
+ RGB 12, 12, 10
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 25, 29
+ RGB 30, 22, 24
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 23, 16
+ RGB 29, 14, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 18, 18, 18
+ RGB 10, 10, 10
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 15
+ RGB 00, 23, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 15
+ RGB 31, 23, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 15
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 29, 26, 19
+ RGB 27, 20, 14
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 20, 10
+ RGB 21, 00, 04
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 20, 10
+ RGB 21, 00, 04
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 26, 16
+ RGB 16, 12, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 28, 26
+ RGB 12, 22, 26
+ RGB 03, 16, 14
+
+ RGB 31, 31, 31
+ RGB 15, 28, 26
+ RGB 23, 24, 24
+ RGB 00, 00, 00
+
+ RGB 31, 31, 24
+ RGB 07, 27, 19
+ RGB 26, 20, 10
+ RGB 19, 12, 08
+
+ RGB 31, 31, 31
+ RGB 31, 28, 14
+ RGB 31, 13, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 18, 21
+ RGB 10, 12, 18
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 23, 21, 16
+ RGB 12, 12, 10
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 14, 00
+ RGB 07, 11, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 21, 22
+ RGB 26, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 27, 04
+ RGB 24, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 13, 25
+ RGB 24, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 19, 29
+ RGB 24, 20, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 21, 25, 29
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 20, 26, 16
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 31, 28, 14
+ RGB 18, 18, 18
+ RGB 16, 10, 07
+
+ RGB 31, 31, 31
+ RGB 18, 18, 18
+ RGB 26, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 22, 24
+ RGB 28, 15, 21
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 26, 20, 00
+ RGB 16, 19, 29
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 02, 30
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 13, 04
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 28, 04, 02
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 18, 23, 31
+ RGB 15, 20, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 24, 20, 11
+ RGB 18, 13, 11
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 25, 30, 00
+ RGB 25, 30, 00
+
+ RGB 00, 00, 00
+ RGB 08, 11, 11
+ RGB 21, 21, 21
+ RGB 31, 31, 31
diff --git a/tilesets/roof.pal b/data/palettes/roofs.pal
index ba65fc7d2..ba65fc7d2 100644
--- a/tilesets/roof.pal
+++ b/data/palettes/roofs.pal
diff --git a/data/palettes/sgb_border.pal b/data/palettes/sgb_border.pal
new file mode 100644
index 000000000..fd5aec402
--- /dev/null
+++ b/data/palettes/sgb_border.pal
@@ -0,0 +1,79 @@
+ RGB 24, 06, 06
+ RGB 24, 24, 26
+ RGB 14, 15, 20
+ RGB 04, 07, 10
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 18, 24, 18
+ RGB 31, 26, 15
+ RGB 26, 19, 10
+ RGB 12, 07, 05
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 18, 06, 31
+ RGB 31, 31, 29
+ RGB 31, 12, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 12, 31, 06
+ RGB 22, 26, 30
+ RGB 16, 17, 21
+ RGB 00, 03, 00
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
+ RGB 31, 31, 25
diff --git a/data/palettes/slot_machine.pal b/data/palettes/slot_machine.pal
new file mode 100644
index 000000000..0eec479f2
--- /dev/null
+++ b/data/palettes/slot_machine.pal
@@ -0,0 +1,79 @@
+ RGB 31, 31, 31
+ RGB 24, 25, 28
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 10, 06
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 31, 00
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 15, 31
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 15, 21, 31
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 11
+ RGB 31, 31, 06
+ RGB 24, 24, 09
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 19, 29
+ RGB 25, 22, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 21, 21, 21
+ RGB 13, 13, 13
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 30, 10, 06
+ RGB 31, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 05, 14, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 12, 25, 01
+ RGB 30, 10, 06
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 20, 15, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 15, 21, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 06
+ RGB 20, 15, 03
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 24, 21
+ RGB 31, 13, 31
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
diff --git a/tilesets/bg.pal b/data/palettes/tileset_bg.pal
index 3cd14d142..3cd14d142 100644
--- a/tilesets/bg.pal
+++ b/data/palettes/tileset_bg.pal
diff --git a/data/palettes/title.pal b/data/palettes/title.pal
new file mode 100644
index 000000000..95bc2a394
--- /dev/null
+++ b/data/palettes/title.pal
@@ -0,0 +1,81 @@
+; BG
+ RGB 00, 00, 00
+ RGB 19, 00, 00
+ RGB 15, 08, 31
+ RGB 15, 08, 31
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 15, 16, 31
+ RGB 31, 01, 13
+
+ RGB 00, 00, 00
+ RGB 07, 07, 07
+ RGB 31, 31, 31
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 13, 13, 13
+ RGB 31, 31, 18
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 19, 19, 19
+ RGB 29, 28, 12
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 25, 25, 25
+ RGB 28, 25, 06
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 26, 21, 00
+ RGB 02, 03, 30
+
+ RGB 00, 00, 00
+ RGB 11, 11, 19
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+
+; OBJ
+ RGB 00, 00, 00
+ RGB 10, 00, 15
+ RGB 17, 05, 22
+ RGB 19, 09, 31
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
diff --git a/data/palettes/town_map.asm b/data/palettes/town_map.asm
new file mode 100644
index 000000000..49fb7a9ce
--- /dev/null
+++ b/data/palettes/town_map.asm
@@ -0,0 +1,34 @@
+ const_def
+ const PAL_TOWNMAP_BORDER ; 0
+ const PAL_TOWNMAP_EARTH ; 1
+ const PAL_TOWNMAP_MOUNTAIN ; 2
+ const PAL_TOWNMAP_CITY ; 3
+ const PAL_TOWNMAP_POI ; 4
+ const PAL_TOWNMAP_POI_MTN ; 5
+
+townmappals: macro
+rept _NARG / 2
+ dn PAL_TOWNMAP_\2, PAL_TOWNMAP_\1
+ shift
+ shift
+endr
+endm
+
+; gfx/pokegear/town_map.png
+ townmappals EARTH, EARTH, EARTH, MOUNTAIN, MOUNTAIN, MOUNTAIN
+ townmappals BORDER, BORDER, EARTH, EARTH, CITY, EARTH
+ townmappals POI, POI_MTN, POI, POI_MTN, EARTH, EARTH
+ townmappals EARTH, MOUNTAIN, MOUNTAIN, MOUNTAIN, BORDER, BORDER
+ townmappals EARTH, EARTH, BORDER, EARTH, EARTH, BORDER
+ townmappals BORDER, BORDER, EARTH, EARTH, EARTH, MOUNTAIN
+ townmappals MOUNTAIN, MOUNTAIN, BORDER, BORDER, BORDER, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, BORDER, BORDER
+; gfx/pokegear/pokegear.png
+ townmappals BORDER, BORDER, BORDER, BORDER, POI, POI
+ townmappals POI, BORDER, BORDER, BORDER, BORDER, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, CITY, CITY
+ townmappals CITY, CITY, CITY, CITY, CITY, CITY
+ townmappals CITY, CITY, CITY, CITY, CITY, CITY
+ townmappals CITY, BORDER, CITY, CITY, CITY, CITY
+ townmappals CITY, CITY, CITY, CITY, BORDER, BORDER
+ townmappals BORDER, BORDER, BORDER, BORDER, BORDER, BORDER
diff --git a/data/palettes/trade_room.pal b/data/palettes/trade_room.pal
new file mode 100644
index 000000000..b5615248e
--- /dev/null
+++ b/data/palettes/trade_room.pal
@@ -0,0 +1,29 @@
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 31, 00, 00
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 15, 23, 30
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 16, 16, 16
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 25, 07, 04
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 03, 22, 08
+ RGB 31, 31, 31
+
+ RGB 04, 02, 15
+ RGB 07, 09, 31
+ RGB 29, 28, 09
+ RGB 31, 31, 31
diff --git a/data/palettes/unused_title/bg.pal b/data/palettes/unused_title/bg.pal
new file mode 100644
index 000000000..f0604a261
--- /dev/null
+++ b/data/palettes/unused_title/bg.pal
@@ -0,0 +1,39 @@
+ RGB 00, 00, 00
+ RGB 25, 15, 28
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+
+ RGB 00, 00, 00
+ RGB 17, 07, 22
+ RGB 13, 07, 16
+ RGB 19, 08, 26
+
+ RGB 25, 15, 28
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+ RGB 17, 07, 22
+
+ RGB 22, 11, 28
+ RGB 19, 08, 26
+ RGB 17, 07, 22
+ RGB 13, 07, 16
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 22, 10, 31
+ RGB 19, 08, 26
+ RGB 17, 07, 22
diff --git a/data/palettes/unused_title/ob.pal b/data/palettes/unused_title/ob.pal
new file mode 100644
index 000000000..80e7d9896
--- /dev/null
+++ b/data/palettes/unused_title/ob.pal
@@ -0,0 +1,319 @@
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 22, 00
+ RGB 31, 27, 00
+ RGB 31, 31, 00
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 16, 31, 00
+ RGB 22, 31, 00
+ RGB 27, 31, 00
+ RGB 31, 31, 00
+
+ RGB 31, 00, 18
+ RGB 31, 31, 31
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 12, 12, 12
+
+ RGB 00, 00, 00
+ RGB 01, 11, 23
+ RGB 16, 16, 24
+ RGB 02, 13, 21
+
+ RGB 16, 31, 00
+ RGB 22, 31, 00
+ RGB 27, 31, 00
+ RGB 31, 31, 00
+
+ RGB 24, 18, 31
+ RGB 31, 31, 00
+ RGB 31, 31, 01
+ RGB 31, 31, 03
+
+ RGB 31, 31, 05
+ RGB 31, 31, 08
+ RGB 31, 31, 10
+ RGB 31, 31, 12
+
+ RGB 31, 31, 14
+ RGB 31, 31, 16
+ RGB 31, 31, 18
+ RGB 31, 31, 20
+
+ RGB 31, 31, 22
+ RGB 31, 31, 25
+ RGB 31, 31, 27
+ RGB 31, 31, 29
+
+ RGB 24, 06, 06
+ RGB 01, 01, 01
+ RGB 03, 03, 03
+ RGB 05, 05, 05
+
+ RGB 08, 08, 08
+ RGB 10, 10, 10
+ RGB 12, 12, 12
+ RGB 14, 14, 14
+
+ RGB 16, 16, 16
+ RGB 18, 18, 18
+ RGB 20, 20, 20
+ RGB 22, 22, 22
+
+ RGB 25, 25, 25
+ RGB 27, 27, 27
+ RGB 29, 29, 29
+ RGB 31, 31, 31
+
+ RGB 18, 24, 18
+ RGB 31, 29, 01
+ RGB 31, 27, 03
+ RGB 31, 25, 05
+
+ RGB 31, 22, 08
+ RGB 31, 20, 10
+ RGB 31, 18, 12
+ RGB 31, 16, 14
+
+ RGB 31, 14, 16
+ RGB 31, 12, 18
+ RGB 31, 10, 20
+ RGB 31, 08, 22
+
+ RGB 31, 05, 25
+ RGB 31, 03, 27
+ RGB 31, 01, 29
+ RGB 31, 00, 31
+
+ RGB 18, 06, 31
+ RGB 00, 31, 31
+ RGB 00, 31, 29
+ RGB 00, 31, 27
+
+ RGB 00, 31, 25
+ RGB 00, 31, 22
+ RGB 00, 31, 20
+ RGB 00, 31, 18
+
+ RGB 00, 31, 16
+ RGB 00, 31, 14
+ RGB 00, 31, 12
+ RGB 00, 31, 10
+
+ RGB 00, 31, 08
+ RGB 00, 31, 05
+ RGB 00, 31, 03
+ RGB 00, 31, 01
+
+ RGB 12, 31, 06
+ RGB 00, 00, 31
+ RGB 00, 01, 31
+ RGB 00, 03, 31
+
+ RGB 00, 05, 31
+ RGB 00, 08, 31
+ RGB 00, 10, 31
+ RGB 00, 12, 31
+
+ RGB 00, 14, 31
+ RGB 00, 16, 31
+ RGB 00, 18, 31
+ RGB 00, 20, 31
+
+ RGB 00, 22, 31
+ RGB 00, 25, 31
+ RGB 00, 27, 31
+ RGB 00, 29, 31
+
+ RGB 00, 00, 00
+ RGB 06, 00, 04
+ RGB 19, 02, 09
+ RGB 28, 04, 11
+
+ RGB 31, 07, 16
+ RGB 31, 17, 23
+ RGB 31, 26, 30
+ RGB 07, 05, 10
+
+ RGB 14, 10, 18
+ RGB 20, 20, 25
+ RGB 25, 27, 31
+ RGB 09, 05, 06
+
+ RGB 23, 16, 13
+ RGB 30, 23, 22
+ RGB 31, 28, 28
+ RGB 31, 31, 31
+
+ RGB 06, 31, 31
+ RGB 04, 00, 04
+ RGB 11, 02, 04
+ RGB 17, 02, 04
+
+ RGB 24, 05, 04
+ RGB 28, 07, 04
+ RGB 31, 11, 04
+ RGB 02, 01, 15
+
+ RGB 04, 11, 22
+ RGB 12, 25, 25
+ RGB 20, 31, 31
+ RGB 09, 04, 03
+
+ RGB 22, 11, 08
+ RGB 27, 19, 16
+ RGB 30, 28, 26
+ RGB 31, 31, 31
+
+ RGB 06, 18, 06
+ RGB 04, 04, 02
+ RGB 07, 07, 02
+ RGB 18, 18, 04
+
+ RGB 24, 24, 06
+ RGB 27, 27, 11
+ RGB 31, 31, 20
+ RGB 02, 03, 10
+
+ RGB 04, 05, 13
+ RGB 06, 10, 25
+ RGB 08, 15, 31
+ RGB 04, 00, 06
+
+ RGB 11, 07, 14
+ RGB 21, 16, 23
+ RGB 29, 26, 31
+ RGB 31, 31, 31
+
+ RGB 06, 00, 18
+ RGB 00, 04, 03
+ RGB 02, 09, 05
+ RGB 11, 19, 07
+
+ RGB 16, 24, 08
+ RGB 22, 31, 09
+ RGB 24, 31, 18
+ RGB 03, 01, 03
+
+ RGB 10, 04, 10
+ RGB 20, 08, 20
+ RGB 31, 17, 31
+ RGB 01, 03, 06
+
+ RGB 05, 09, 10
+ RGB 15, 21, 21
+ RGB 23, 25, 25
+ RGB 31, 31, 31
+
+ RGB 00, 18, 31
+ RGB 00, 05, 07
+ RGB 00, 08, 13
+ RGB 00, 12, 17
+
+ RGB 01, 20, 24
+ RGB 04, 27, 31
+ RGB 14, 31, 31
+ RGB 04, 02, 02
+
+ RGB 15, 01, 03
+ RGB 26, 04, 07
+ RGB 31, 13, 16
+ RGB 00, 05, 02
+
+ RGB 01, 11, 03
+ RGB 06, 21, 06
+ RGB 13, 31, 16
+ RGB 31, 31, 31
+
+ RGB 00, 06, 06
+ RGB 00, 01, 08
+ RGB 00, 05, 14
+ RGB 00, 08, 19
+
+ RGB 02, 14, 26
+ RGB 04, 21, 31
+ RGB 06, 26, 31
+ RGB 13, 00, 00
+
+ RGB 27, 07, 00
+ RGB 31, 17, 05
+ RGB 31, 25, 16
+ RGB 02, 04, 00
+
+ RGB 07, 11, 03
+ RGB 17, 19, 05
+ RGB 27, 31, 16
+ RGB 31, 31, 31
+
+ RGB 02, 00, 00
+ RGB 04, 01, 06
+ RGB 11, 03, 14
+ RGB 16, 04, 19
+
+ RGB 20, 07, 22
+ RGB 26, 12, 27
+ RGB 26, 20, 31
+ RGB 04, 07, 00
+
+ RGB 16, 20, 07
+ RGB 24, 28, 15
+ RGB 29, 31, 24
+ RGB 05, 02, 02
+
+ RGB 15, 04, 02
+ RGB 24, 11, 10
+ RGB 31, 22, 20
+ RGB 31, 31, 31
+
+ RGB 00, 00, 14
+ RGB 12, 00, 00
+ RGB 27, 05, 00
+ RGB 31, 15, 05
+
+ RGB 31, 26, 13
+ RGB 31, 30, 21
+ RGB 05, 07, 16
+ RGB 04, 16, 20
+
+ RGB 04, 24, 26
+ RGB 08, 31, 31
+ RGB 23, 31, 31
+ RGB 00, 00, 00
+
+ RGB 05, 05, 05
+ RGB 17, 17, 15
+ RGB 28, 28, 24
+ RGB 31, 31, 31
diff --git a/data/pokedex/entries.asm b/data/pokedex/entries.asm
deleted file mode 100644
index a12cdd3f4..000000000
--- a/data/pokedex/entries.asm
+++ /dev/null
@@ -1,272 +0,0 @@
-INCLUDE "includes.asm"
-
-
-SECTION "Pokedex Entries 001-064", ROMX
-
-PokedexEntries1::
-BulbasaurPokedexEntry:: INCLUDE "data/pokedex/entries/bulbasaur.asm"
-IvysaurPokedexEntry:: INCLUDE "data/pokedex/entries/ivysaur.asm"
-VenusaurPokedexEntry:: INCLUDE "data/pokedex/entries/venusaur.asm"
-CharmanderPokedexEntry:: INCLUDE "data/pokedex/entries/charmander.asm"
-CharmeleonPokedexEntry:: INCLUDE "data/pokedex/entries/charmeleon.asm"
-CharizardPokedexEntry:: INCLUDE "data/pokedex/entries/charizard.asm"
-SquirtlePokedexEntry:: INCLUDE "data/pokedex/entries/squirtle.asm"
-WartortlePokedexEntry:: INCLUDE "data/pokedex/entries/wartortle.asm"
-BlastoisePokedexEntry:: INCLUDE "data/pokedex/entries/blastoise.asm"
-CaterpiePokedexEntry:: INCLUDE "data/pokedex/entries/caterpie.asm"
-MetapodPokedexEntry:: INCLUDE "data/pokedex/entries/metapod.asm"
-ButterfreePokedexEntry:: INCLUDE "data/pokedex/entries/butterfree.asm"
-WeedlePokedexEntry:: INCLUDE "data/pokedex/entries/weedle.asm"
-KakunaPokedexEntry:: INCLUDE "data/pokedex/entries/kakuna.asm"
-BeedrillPokedexEntry:: INCLUDE "data/pokedex/entries/beedrill.asm"
-PidgeyPokedexEntry:: INCLUDE "data/pokedex/entries/pidgey.asm"
-PidgeottoPokedexEntry:: INCLUDE "data/pokedex/entries/pidgeotto.asm"
-PidgeotPokedexEntry:: INCLUDE "data/pokedex/entries/pidgeot.asm"
-RattataPokedexEntry:: INCLUDE "data/pokedex/entries/rattata.asm"
-RaticatePokedexEntry:: INCLUDE "data/pokedex/entries/raticate.asm"
-SpearowPokedexEntry:: INCLUDE "data/pokedex/entries/spearow.asm"
-FearowPokedexEntry:: INCLUDE "data/pokedex/entries/fearow.asm"
-EkansPokedexEntry:: INCLUDE "data/pokedex/entries/ekans.asm"
-ArbokPokedexEntry:: INCLUDE "data/pokedex/entries/arbok.asm"
-PikachuPokedexEntry:: INCLUDE "data/pokedex/entries/pikachu.asm"
-RaichuPokedexEntry:: INCLUDE "data/pokedex/entries/raichu.asm"
-SandshrewPokedexEntry:: INCLUDE "data/pokedex/entries/sandshrew.asm"
-SandslashPokedexEntry:: INCLUDE "data/pokedex/entries/sandslash.asm"
-NidoranFPokedexEntry:: INCLUDE "data/pokedex/entries/nidoran_f.asm"
-NidorinaPokedexEntry:: INCLUDE "data/pokedex/entries/nidorina.asm"
-NidoqueenPokedexEntry:: INCLUDE "data/pokedex/entries/nidoqueen.asm"
-NidoranMPokedexEntry:: INCLUDE "data/pokedex/entries/nidoran_m.asm"
-NidorinoPokedexEntry:: INCLUDE "data/pokedex/entries/nidorino.asm"
-NidokingPokedexEntry:: INCLUDE "data/pokedex/entries/nidoking.asm"
-ClefairyPokedexEntry:: INCLUDE "data/pokedex/entries/clefairy.asm"
-ClefablePokedexEntry:: INCLUDE "data/pokedex/entries/clefable.asm"
-VulpixPokedexEntry:: INCLUDE "data/pokedex/entries/vulpix.asm"
-NinetalesPokedexEntry:: INCLUDE "data/pokedex/entries/ninetales.asm"
-JigglypuffPokedexEntry:: INCLUDE "data/pokedex/entries/jigglypuff.asm"
-WigglytuffPokedexEntry:: INCLUDE "data/pokedex/entries/wigglytuff.asm"
-ZubatPokedexEntry:: INCLUDE "data/pokedex/entries/zubat.asm"
-GolbatPokedexEntry:: INCLUDE "data/pokedex/entries/golbat.asm"
-OddishPokedexEntry:: INCLUDE "data/pokedex/entries/oddish.asm"
-GloomPokedexEntry:: INCLUDE "data/pokedex/entries/gloom.asm"
-VileplumePokedexEntry:: INCLUDE "data/pokedex/entries/vileplume.asm"
-ParasPokedexEntry:: INCLUDE "data/pokedex/entries/paras.asm"
-ParasectPokedexEntry:: INCLUDE "data/pokedex/entries/parasect.asm"
-VenonatPokedexEntry:: INCLUDE "data/pokedex/entries/venonat.asm"
-VenomothPokedexEntry:: INCLUDE "data/pokedex/entries/venomoth.asm"
-DiglettPokedexEntry:: INCLUDE "data/pokedex/entries/diglett.asm"
-DugtrioPokedexEntry:: INCLUDE "data/pokedex/entries/dugtrio.asm"
-MeowthPokedexEntry:: INCLUDE "data/pokedex/entries/meowth.asm"
-PersianPokedexEntry:: INCLUDE "data/pokedex/entries/persian.asm"
-PsyduckPokedexEntry:: INCLUDE "data/pokedex/entries/psyduck.asm"
-GolduckPokedexEntry:: INCLUDE "data/pokedex/entries/golduck.asm"
-MankeyPokedexEntry:: INCLUDE "data/pokedex/entries/mankey.asm"
-PrimeapePokedexEntry:: INCLUDE "data/pokedex/entries/primeape.asm"
-GrowlithePokedexEntry:: INCLUDE "data/pokedex/entries/growlithe.asm"
-ArcaninePokedexEntry:: INCLUDE "data/pokedex/entries/arcanine.asm"
-PoliwagPokedexEntry:: INCLUDE "data/pokedex/entries/poliwag.asm"
-PoliwhirlPokedexEntry:: INCLUDE "data/pokedex/entries/poliwhirl.asm"
-PoliwrathPokedexEntry:: INCLUDE "data/pokedex/entries/poliwrath.asm"
-AbraPokedexEntry:: INCLUDE "data/pokedex/entries/abra.asm"
-KadabraPokedexEntry:: INCLUDE "data/pokedex/entries/kadabra.asm"
-
-
-SECTION "Pokedex Entries 065-128", ROMX
-
-PokedexEntries2::
-AlakazamPokedexEntry:: INCLUDE "data/pokedex/entries/alakazam.asm"
-MachopPokedexEntry:: INCLUDE "data/pokedex/entries/machop.asm"
-MachokePokedexEntry:: INCLUDE "data/pokedex/entries/machoke.asm"
-MachampPokedexEntry:: INCLUDE "data/pokedex/entries/machamp.asm"
-BellsproutPokedexEntry:: INCLUDE "data/pokedex/entries/bellsprout.asm"
-WeepinbellPokedexEntry:: INCLUDE "data/pokedex/entries/weepinbell.asm"
-VictreebelPokedexEntry:: INCLUDE "data/pokedex/entries/victreebel.asm"
-TentacoolPokedexEntry:: INCLUDE "data/pokedex/entries/tentacool.asm"
-TentacruelPokedexEntry:: INCLUDE "data/pokedex/entries/tentacruel.asm"
-GeodudePokedexEntry:: INCLUDE "data/pokedex/entries/geodude.asm"
-GravelerPokedexEntry:: INCLUDE "data/pokedex/entries/graveler.asm"
-GolemPokedexEntry:: INCLUDE "data/pokedex/entries/golem.asm"
-PonytaPokedexEntry:: INCLUDE "data/pokedex/entries/ponyta.asm"
-RapidashPokedexEntry:: INCLUDE "data/pokedex/entries/rapidash.asm"
-SlowpokePokedexEntry:: INCLUDE "data/pokedex/entries/slowpoke.asm"
-SlowbroPokedexEntry:: INCLUDE "data/pokedex/entries/slowbro.asm"
-MagnemitePokedexEntry:: INCLUDE "data/pokedex/entries/magnemite.asm"
-MagnetonPokedexEntry:: INCLUDE "data/pokedex/entries/magneton.asm"
-FarfetchDPokedexEntry:: INCLUDE "data/pokedex/entries/farfetch_d.asm"
-DoduoPokedexEntry:: INCLUDE "data/pokedex/entries/doduo.asm"
-DodrioPokedexEntry:: INCLUDE "data/pokedex/entries/dodrio.asm"
-SeelPokedexEntry:: INCLUDE "data/pokedex/entries/seel.asm"
-DewgongPokedexEntry:: INCLUDE "data/pokedex/entries/dewgong.asm"
-GrimerPokedexEntry:: INCLUDE "data/pokedex/entries/grimer.asm"
-MukPokedexEntry:: INCLUDE "data/pokedex/entries/muk.asm"
-ShellderPokedexEntry:: INCLUDE "data/pokedex/entries/shellder.asm"
-CloysterPokedexEntry:: INCLUDE "data/pokedex/entries/cloyster.asm"
-GastlyPokedexEntry:: INCLUDE "data/pokedex/entries/gastly.asm"
-HaunterPokedexEntry:: INCLUDE "data/pokedex/entries/haunter.asm"
-GengarPokedexEntry:: INCLUDE "data/pokedex/entries/gengar.asm"
-OnixPokedexEntry:: INCLUDE "data/pokedex/entries/onix.asm"
-DrowzeePokedexEntry:: INCLUDE "data/pokedex/entries/drowzee.asm"
-HypnoPokedexEntry:: INCLUDE "data/pokedex/entries/hypno.asm"
-KrabbyPokedexEntry:: INCLUDE "data/pokedex/entries/krabby.asm"
-KinglerPokedexEntry:: INCLUDE "data/pokedex/entries/kingler.asm"
-VoltorbPokedexEntry:: INCLUDE "data/pokedex/entries/voltorb.asm"
-ElectrodePokedexEntry:: INCLUDE "data/pokedex/entries/electrode.asm"
-ExeggcutePokedexEntry:: INCLUDE "data/pokedex/entries/exeggcute.asm"
-ExeggutorPokedexEntry:: INCLUDE "data/pokedex/entries/exeggutor.asm"
-CubonePokedexEntry:: INCLUDE "data/pokedex/entries/cubone.asm"
-MarowakPokedexEntry:: INCLUDE "data/pokedex/entries/marowak.asm"
-HitmonleePokedexEntry:: INCLUDE "data/pokedex/entries/hitmonlee.asm"
-HitmonchanPokedexEntry:: INCLUDE "data/pokedex/entries/hitmonchan.asm"
-LickitungPokedexEntry:: INCLUDE "data/pokedex/entries/lickitung.asm"
-KoffingPokedexEntry:: INCLUDE "data/pokedex/entries/koffing.asm"
-WeezingPokedexEntry:: INCLUDE "data/pokedex/entries/weezing.asm"
-RhyhornPokedexEntry:: INCLUDE "data/pokedex/entries/rhyhorn.asm"
-RhydonPokedexEntry:: INCLUDE "data/pokedex/entries/rhydon.asm"
-ChanseyPokedexEntry:: INCLUDE "data/pokedex/entries/chansey.asm"
-TangelaPokedexEntry:: INCLUDE "data/pokedex/entries/tangela.asm"
-KangaskhanPokedexEntry:: INCLUDE "data/pokedex/entries/kangaskhan.asm"
-HorseaPokedexEntry:: INCLUDE "data/pokedex/entries/horsea.asm"
-SeadraPokedexEntry:: INCLUDE "data/pokedex/entries/seadra.asm"
-GoldeenPokedexEntry:: INCLUDE "data/pokedex/entries/goldeen.asm"
-SeakingPokedexEntry:: INCLUDE "data/pokedex/entries/seaking.asm"
-StaryuPokedexEntry:: INCLUDE "data/pokedex/entries/staryu.asm"
-StarmiePokedexEntry:: INCLUDE "data/pokedex/entries/starmie.asm"
-MrMimePokedexEntry:: INCLUDE "data/pokedex/entries/mr__mime.asm"
-ScytherPokedexEntry:: INCLUDE "data/pokedex/entries/scyther.asm"
-JynxPokedexEntry:: INCLUDE "data/pokedex/entries/jynx.asm"
-ElectabuzzPokedexEntry:: INCLUDE "data/pokedex/entries/electabuzz.asm"
-MagmarPokedexEntry:: INCLUDE "data/pokedex/entries/magmar.asm"
-PinsirPokedexEntry:: INCLUDE "data/pokedex/entries/pinsir.asm"
-TaurosPokedexEntry:: INCLUDE "data/pokedex/entries/tauros.asm"
-
-
-SECTION "Pokedex Entries 129-192", ROMX
-
-PokedexEntries3::
-MagikarpPokedexEntry:: INCLUDE "data/pokedex/entries/magikarp.asm"
-GyaradosPokedexEntry:: INCLUDE "data/pokedex/entries/gyarados.asm"
-LaprasPokedexEntry:: INCLUDE "data/pokedex/entries/lapras.asm"
-DittoPokedexEntry:: INCLUDE "data/pokedex/entries/ditto.asm"
-EeveePokedexEntry:: INCLUDE "data/pokedex/entries/eevee.asm"
-VaporeonPokedexEntry:: INCLUDE "data/pokedex/entries/vaporeon.asm"
-JolteonPokedexEntry:: INCLUDE "data/pokedex/entries/jolteon.asm"
-FlareonPokedexEntry:: INCLUDE "data/pokedex/entries/flareon.asm"
-PorygonPokedexEntry:: INCLUDE "data/pokedex/entries/porygon.asm"
-OmanytePokedexEntry:: INCLUDE "data/pokedex/entries/omanyte.asm"
-OmastarPokedexEntry:: INCLUDE "data/pokedex/entries/omastar.asm"
-KabutoPokedexEntry:: INCLUDE "data/pokedex/entries/kabuto.asm"
-KabutopsPokedexEntry:: INCLUDE "data/pokedex/entries/kabutops.asm"
-AerodactylPokedexEntry:: INCLUDE "data/pokedex/entries/aerodactyl.asm"
-SnorlaxPokedexEntry:: INCLUDE "data/pokedex/entries/snorlax.asm"
-ArticunoPokedexEntry:: INCLUDE "data/pokedex/entries/articuno.asm"
-ZapdosPokedexEntry:: INCLUDE "data/pokedex/entries/zapdos.asm"
-MoltresPokedexEntry:: INCLUDE "data/pokedex/entries/moltres.asm"
-DratiniPokedexEntry:: INCLUDE "data/pokedex/entries/dratini.asm"
-DragonairPokedexEntry:: INCLUDE "data/pokedex/entries/dragonair.asm"
-DragonitePokedexEntry:: INCLUDE "data/pokedex/entries/dragonite.asm"
-MewtwoPokedexEntry:: INCLUDE "data/pokedex/entries/mewtwo.asm"
-MewPokedexEntry:: INCLUDE "data/pokedex/entries/mew.asm"
-ChikoritaPokedexEntry:: INCLUDE "data/pokedex/entries/chikorita.asm"
-BayleefPokedexEntry:: INCLUDE "data/pokedex/entries/bayleef.asm"
-MeganiumPokedexEntry:: INCLUDE "data/pokedex/entries/meganium.asm"
-CyndaquilPokedexEntry:: INCLUDE "data/pokedex/entries/cyndaquil.asm"
-QuilavaPokedexEntry:: INCLUDE "data/pokedex/entries/quilava.asm"
-TyphlosionPokedexEntry:: INCLUDE "data/pokedex/entries/typhlosion.asm"
-TotodilePokedexEntry:: INCLUDE "data/pokedex/entries/totodile.asm"
-CroconawPokedexEntry:: INCLUDE "data/pokedex/entries/croconaw.asm"
-FeraligatrPokedexEntry:: INCLUDE "data/pokedex/entries/feraligatr.asm"
-SentretPokedexEntry:: INCLUDE "data/pokedex/entries/sentret.asm"
-FurretPokedexEntry:: INCLUDE "data/pokedex/entries/furret.asm"
-HoothootPokedexEntry:: INCLUDE "data/pokedex/entries/hoothoot.asm"
-NoctowlPokedexEntry:: INCLUDE "data/pokedex/entries/noctowl.asm"
-LedybaPokedexEntry:: INCLUDE "data/pokedex/entries/ledyba.asm"
-LedianPokedexEntry:: INCLUDE "data/pokedex/entries/ledian.asm"
-SpinarakPokedexEntry:: INCLUDE "data/pokedex/entries/spinarak.asm"
-AriadosPokedexEntry:: INCLUDE "data/pokedex/entries/ariados.asm"
-CrobatPokedexEntry:: INCLUDE "data/pokedex/entries/crobat.asm"
-ChinchouPokedexEntry:: INCLUDE "data/pokedex/entries/chinchou.asm"
-LanturnPokedexEntry:: INCLUDE "data/pokedex/entries/lanturn.asm"
-PichuPokedexEntry:: INCLUDE "data/pokedex/entries/pichu.asm"
-CleffaPokedexEntry:: INCLUDE "data/pokedex/entries/cleffa.asm"
-IgglybuffPokedexEntry:: INCLUDE "data/pokedex/entries/igglybuff.asm"
-TogepiPokedexEntry:: INCLUDE "data/pokedex/entries/togepi.asm"
-TogeticPokedexEntry:: INCLUDE "data/pokedex/entries/togetic.asm"
-NatuPokedexEntry:: INCLUDE "data/pokedex/entries/natu.asm"
-XatuPokedexEntry:: INCLUDE "data/pokedex/entries/xatu.asm"
-MareepPokedexEntry:: INCLUDE "data/pokedex/entries/mareep.asm"
-FlaaffyPokedexEntry:: INCLUDE "data/pokedex/entries/flaaffy.asm"
-AmpharosPokedexEntry:: INCLUDE "data/pokedex/entries/ampharos.asm"
-BellossomPokedexEntry:: INCLUDE "data/pokedex/entries/bellossom.asm"
-MarillPokedexEntry:: INCLUDE "data/pokedex/entries/marill.asm"
-AzumarillPokedexEntry:: INCLUDE "data/pokedex/entries/azumarill.asm"
-SudowoodoPokedexEntry:: INCLUDE "data/pokedex/entries/sudowoodo.asm"
-PolitoedPokedexEntry:: INCLUDE "data/pokedex/entries/politoed.asm"
-HoppipPokedexEntry:: INCLUDE "data/pokedex/entries/hoppip.asm"
-SkiploomPokedexEntry:: INCLUDE "data/pokedex/entries/skiploom.asm"
-JumpluffPokedexEntry:: INCLUDE "data/pokedex/entries/jumpluff.asm"
-AipomPokedexEntry:: INCLUDE "data/pokedex/entries/aipom.asm"
-SunkernPokedexEntry:: INCLUDE "data/pokedex/entries/sunkern.asm"
-SunfloraPokedexEntry:: INCLUDE "data/pokedex/entries/sunflora.asm"
-
-
-SECTION "Pokedex Entries 193-251", ROMX
-
-PokedexEntries4::
-YanmaPokedexEntry:: INCLUDE "data/pokedex/entries/yanma.asm"
-WooperPokedexEntry:: INCLUDE "data/pokedex/entries/wooper.asm"
-QuagsirePokedexEntry:: INCLUDE "data/pokedex/entries/quagsire.asm"
-EspeonPokedexEntry:: INCLUDE "data/pokedex/entries/espeon.asm"
-UmbreonPokedexEntry:: INCLUDE "data/pokedex/entries/umbreon.asm"
-MurkrowPokedexEntry:: INCLUDE "data/pokedex/entries/murkrow.asm"
-SlowkingPokedexEntry:: INCLUDE "data/pokedex/entries/slowking.asm"
-MisdreavusPokedexEntry:: INCLUDE "data/pokedex/entries/misdreavus.asm"
-UnownPokedexEntry:: INCLUDE "data/pokedex/entries/unown.asm"
-WobbuffetPokedexEntry:: INCLUDE "data/pokedex/entries/wobbuffet.asm"
-GirafarigPokedexEntry:: INCLUDE "data/pokedex/entries/girafarig.asm"
-PinecoPokedexEntry:: INCLUDE "data/pokedex/entries/pineco.asm"
-ForretressPokedexEntry:: INCLUDE "data/pokedex/entries/forretress.asm"
-DunsparcePokedexEntry:: INCLUDE "data/pokedex/entries/dunsparce.asm"
-GligarPokedexEntry:: INCLUDE "data/pokedex/entries/gligar.asm"
-SteelixPokedexEntry:: INCLUDE "data/pokedex/entries/steelix.asm"
-SnubbullPokedexEntry:: INCLUDE "data/pokedex/entries/snubbull.asm"
-GranbullPokedexEntry:: INCLUDE "data/pokedex/entries/granbull.asm"
-QwilfishPokedexEntry:: INCLUDE "data/pokedex/entries/qwilfish.asm"
-ScizorPokedexEntry:: INCLUDE "data/pokedex/entries/scizor.asm"
-ShucklePokedexEntry:: INCLUDE "data/pokedex/entries/shuckle.asm"
-HeracrossPokedexEntry:: INCLUDE "data/pokedex/entries/heracross.asm"
-SneaselPokedexEntry:: INCLUDE "data/pokedex/entries/sneasel.asm"
-TeddiursaPokedexEntry:: INCLUDE "data/pokedex/entries/teddiursa.asm"
-UrsaringPokedexEntry:: INCLUDE "data/pokedex/entries/ursaring.asm"
-SlugmaPokedexEntry:: INCLUDE "data/pokedex/entries/slugma.asm"
-MagcargoPokedexEntry:: INCLUDE "data/pokedex/entries/magcargo.asm"
-SwinubPokedexEntry:: INCLUDE "data/pokedex/entries/swinub.asm"
-PiloswinePokedexEntry:: INCLUDE "data/pokedex/entries/piloswine.asm"
-CorsolaPokedexEntry:: INCLUDE "data/pokedex/entries/corsola.asm"
-RemoraidPokedexEntry:: INCLUDE "data/pokedex/entries/remoraid.asm"
-OctilleryPokedexEntry:: INCLUDE "data/pokedex/entries/octillery.asm"
-DelibirdPokedexEntry:: INCLUDE "data/pokedex/entries/delibird.asm"
-MantinePokedexEntry:: INCLUDE "data/pokedex/entries/mantine.asm"
-SkarmoryPokedexEntry:: INCLUDE "data/pokedex/entries/skarmory.asm"
-HoundourPokedexEntry:: INCLUDE "data/pokedex/entries/houndour.asm"
-HoundoomPokedexEntry:: INCLUDE "data/pokedex/entries/houndoom.asm"
-KingdraPokedexEntry:: INCLUDE "data/pokedex/entries/kingdra.asm"
-PhanpyPokedexEntry:: INCLUDE "data/pokedex/entries/phanpy.asm"
-DonphanPokedexEntry:: INCLUDE "data/pokedex/entries/donphan.asm"
-Porygon2PokedexEntry:: INCLUDE "data/pokedex/entries/porygon2.asm"
-StantlerPokedexEntry:: INCLUDE "data/pokedex/entries/stantler.asm"
-SmearglePokedexEntry:: INCLUDE "data/pokedex/entries/smeargle.asm"
-TyroguePokedexEntry:: INCLUDE "data/pokedex/entries/tyrogue.asm"
-HitmontopPokedexEntry:: INCLUDE "data/pokedex/entries/hitmontop.asm"
-SmoochumPokedexEntry:: INCLUDE "data/pokedex/entries/smoochum.asm"
-ElekidPokedexEntry:: INCLUDE "data/pokedex/entries/elekid.asm"
-MagbyPokedexEntry:: INCLUDE "data/pokedex/entries/magby.asm"
-MiltankPokedexEntry:: INCLUDE "data/pokedex/entries/miltank.asm"
-BlisseyPokedexEntry:: INCLUDE "data/pokedex/entries/blissey.asm"
-RaikouPokedexEntry:: INCLUDE "data/pokedex/entries/raikou.asm"
-EnteiPokedexEntry:: INCLUDE "data/pokedex/entries/entei.asm"
-SuicunePokedexEntry:: INCLUDE "data/pokedex/entries/suicune.asm"
-LarvitarPokedexEntry:: INCLUDE "data/pokedex/entries/larvitar.asm"
-PupitarPokedexEntry:: INCLUDE "data/pokedex/entries/pupitar.asm"
-TyranitarPokedexEntry:: INCLUDE "data/pokedex/entries/tyranitar.asm"
-LugiaPokedexEntry:: INCLUDE "data/pokedex/entries/lugia.asm"
-HoOhPokedexEntry:: INCLUDE "data/pokedex/entries/ho_oh.asm"
-CelebiPokedexEntry:: INCLUDE "data/pokedex/entries/celebi.asm"
diff --git a/data/pokemon/base_stats.asm b/data/pokemon/base_stats.asm
new file mode 100644
index 000000000..8a6435a40
--- /dev/null
+++ b/data/pokemon/base_stats.asm
@@ -0,0 +1,252 @@
+BaseData::
+INCLUDE "data/pokemon/base_stats/bulbasaur.asm"
+INCLUDE "data/pokemon/base_stats/ivysaur.asm"
+INCLUDE "data/pokemon/base_stats/venusaur.asm"
+INCLUDE "data/pokemon/base_stats/charmander.asm"
+INCLUDE "data/pokemon/base_stats/charmeleon.asm"
+INCLUDE "data/pokemon/base_stats/charizard.asm"
+INCLUDE "data/pokemon/base_stats/squirtle.asm"
+INCLUDE "data/pokemon/base_stats/wartortle.asm"
+INCLUDE "data/pokemon/base_stats/blastoise.asm"
+INCLUDE "data/pokemon/base_stats/caterpie.asm"
+INCLUDE "data/pokemon/base_stats/metapod.asm"
+INCLUDE "data/pokemon/base_stats/butterfree.asm"
+INCLUDE "data/pokemon/base_stats/weedle.asm"
+INCLUDE "data/pokemon/base_stats/kakuna.asm"
+INCLUDE "data/pokemon/base_stats/beedrill.asm"
+INCLUDE "data/pokemon/base_stats/pidgey.asm"
+INCLUDE "data/pokemon/base_stats/pidgeotto.asm"
+INCLUDE "data/pokemon/base_stats/pidgeot.asm"
+INCLUDE "data/pokemon/base_stats/rattata.asm"
+INCLUDE "data/pokemon/base_stats/raticate.asm"
+INCLUDE "data/pokemon/base_stats/spearow.asm"
+INCLUDE "data/pokemon/base_stats/fearow.asm"
+INCLUDE "data/pokemon/base_stats/ekans.asm"
+INCLUDE "data/pokemon/base_stats/arbok.asm"
+INCLUDE "data/pokemon/base_stats/pikachu.asm"
+INCLUDE "data/pokemon/base_stats/raichu.asm"
+INCLUDE "data/pokemon/base_stats/sandshrew.asm"
+INCLUDE "data/pokemon/base_stats/sandslash.asm"
+INCLUDE "data/pokemon/base_stats/nidoran_f.asm"
+INCLUDE "data/pokemon/base_stats/nidorina.asm"
+INCLUDE "data/pokemon/base_stats/nidoqueen.asm"
+INCLUDE "data/pokemon/base_stats/nidoran_m.asm"
+INCLUDE "data/pokemon/base_stats/nidorino.asm"
+INCLUDE "data/pokemon/base_stats/nidoking.asm"
+INCLUDE "data/pokemon/base_stats/clefairy.asm"
+INCLUDE "data/pokemon/base_stats/clefable.asm"
+INCLUDE "data/pokemon/base_stats/vulpix.asm"
+INCLUDE "data/pokemon/base_stats/ninetales.asm"
+INCLUDE "data/pokemon/base_stats/jigglypuff.asm"
+INCLUDE "data/pokemon/base_stats/wigglytuff.asm"
+INCLUDE "data/pokemon/base_stats/zubat.asm"
+INCLUDE "data/pokemon/base_stats/golbat.asm"
+INCLUDE "data/pokemon/base_stats/oddish.asm"
+INCLUDE "data/pokemon/base_stats/gloom.asm"
+INCLUDE "data/pokemon/base_stats/vileplume.asm"
+INCLUDE "data/pokemon/base_stats/paras.asm"
+INCLUDE "data/pokemon/base_stats/parasect.asm"
+INCLUDE "data/pokemon/base_stats/venonat.asm"
+INCLUDE "data/pokemon/base_stats/venomoth.asm"
+INCLUDE "data/pokemon/base_stats/diglett.asm"
+INCLUDE "data/pokemon/base_stats/dugtrio.asm"
+INCLUDE "data/pokemon/base_stats/meowth.asm"
+INCLUDE "data/pokemon/base_stats/persian.asm"
+INCLUDE "data/pokemon/base_stats/psyduck.asm"
+INCLUDE "data/pokemon/base_stats/golduck.asm"
+INCLUDE "data/pokemon/base_stats/mankey.asm"
+INCLUDE "data/pokemon/base_stats/primeape.asm"
+INCLUDE "data/pokemon/base_stats/growlithe.asm"
+INCLUDE "data/pokemon/base_stats/arcanine.asm"
+INCLUDE "data/pokemon/base_stats/poliwag.asm"
+INCLUDE "data/pokemon/base_stats/poliwhirl.asm"
+INCLUDE "data/pokemon/base_stats/poliwrath.asm"
+INCLUDE "data/pokemon/base_stats/abra.asm"
+INCLUDE "data/pokemon/base_stats/kadabra.asm"
+INCLUDE "data/pokemon/base_stats/alakazam.asm"
+INCLUDE "data/pokemon/base_stats/machop.asm"
+INCLUDE "data/pokemon/base_stats/machoke.asm"
+INCLUDE "data/pokemon/base_stats/machamp.asm"
+INCLUDE "data/pokemon/base_stats/bellsprout.asm"
+INCLUDE "data/pokemon/base_stats/weepinbell.asm"
+INCLUDE "data/pokemon/base_stats/victreebel.asm"
+INCLUDE "data/pokemon/base_stats/tentacool.asm"
+INCLUDE "data/pokemon/base_stats/tentacruel.asm"
+INCLUDE "data/pokemon/base_stats/geodude.asm"
+INCLUDE "data/pokemon/base_stats/graveler.asm"
+INCLUDE "data/pokemon/base_stats/golem.asm"
+INCLUDE "data/pokemon/base_stats/ponyta.asm"
+INCLUDE "data/pokemon/base_stats/rapidash.asm"
+INCLUDE "data/pokemon/base_stats/slowpoke.asm"
+INCLUDE "data/pokemon/base_stats/slowbro.asm"
+INCLUDE "data/pokemon/base_stats/magnemite.asm"
+INCLUDE "data/pokemon/base_stats/magneton.asm"
+INCLUDE "data/pokemon/base_stats/farfetch_d.asm"
+INCLUDE "data/pokemon/base_stats/doduo.asm"
+INCLUDE "data/pokemon/base_stats/dodrio.asm"
+INCLUDE "data/pokemon/base_stats/seel.asm"
+INCLUDE "data/pokemon/base_stats/dewgong.asm"
+INCLUDE "data/pokemon/base_stats/grimer.asm"
+INCLUDE "data/pokemon/base_stats/muk.asm"
+INCLUDE "data/pokemon/base_stats/shellder.asm"
+INCLUDE "data/pokemon/base_stats/cloyster.asm"
+INCLUDE "data/pokemon/base_stats/gastly.asm"
+INCLUDE "data/pokemon/base_stats/haunter.asm"
+INCLUDE "data/pokemon/base_stats/gengar.asm"
+INCLUDE "data/pokemon/base_stats/onix.asm"
+INCLUDE "data/pokemon/base_stats/drowzee.asm"
+INCLUDE "data/pokemon/base_stats/hypno.asm"
+INCLUDE "data/pokemon/base_stats/krabby.asm"
+INCLUDE "data/pokemon/base_stats/kingler.asm"
+INCLUDE "data/pokemon/base_stats/voltorb.asm"
+INCLUDE "data/pokemon/base_stats/electrode.asm"
+INCLUDE "data/pokemon/base_stats/exeggcute.asm"
+INCLUDE "data/pokemon/base_stats/exeggutor.asm"
+INCLUDE "data/pokemon/base_stats/cubone.asm"
+INCLUDE "data/pokemon/base_stats/marowak.asm"
+INCLUDE "data/pokemon/base_stats/hitmonlee.asm"
+INCLUDE "data/pokemon/base_stats/hitmonchan.asm"
+INCLUDE "data/pokemon/base_stats/lickitung.asm"
+INCLUDE "data/pokemon/base_stats/koffing.asm"
+INCLUDE "data/pokemon/base_stats/weezing.asm"
+INCLUDE "data/pokemon/base_stats/rhyhorn.asm"
+INCLUDE "data/pokemon/base_stats/rhydon.asm"
+INCLUDE "data/pokemon/base_stats/chansey.asm"
+INCLUDE "data/pokemon/base_stats/tangela.asm"
+INCLUDE "data/pokemon/base_stats/kangaskhan.asm"
+INCLUDE "data/pokemon/base_stats/horsea.asm"
+INCLUDE "data/pokemon/base_stats/seadra.asm"
+INCLUDE "data/pokemon/base_stats/goldeen.asm"
+INCLUDE "data/pokemon/base_stats/seaking.asm"
+INCLUDE "data/pokemon/base_stats/staryu.asm"
+INCLUDE "data/pokemon/base_stats/starmie.asm"
+INCLUDE "data/pokemon/base_stats/mr__mime.asm"
+INCLUDE "data/pokemon/base_stats/scyther.asm"
+INCLUDE "data/pokemon/base_stats/jynx.asm"
+INCLUDE "data/pokemon/base_stats/electabuzz.asm"
+INCLUDE "data/pokemon/base_stats/magmar.asm"
+INCLUDE "data/pokemon/base_stats/pinsir.asm"
+INCLUDE "data/pokemon/base_stats/tauros.asm"
+INCLUDE "data/pokemon/base_stats/magikarp.asm"
+INCLUDE "data/pokemon/base_stats/gyarados.asm"
+INCLUDE "data/pokemon/base_stats/lapras.asm"
+INCLUDE "data/pokemon/base_stats/ditto.asm"
+INCLUDE "data/pokemon/base_stats/eevee.asm"
+INCLUDE "data/pokemon/base_stats/vaporeon.asm"
+INCLUDE "data/pokemon/base_stats/jolteon.asm"
+INCLUDE "data/pokemon/base_stats/flareon.asm"
+INCLUDE "data/pokemon/base_stats/porygon.asm"
+INCLUDE "data/pokemon/base_stats/omanyte.asm"
+INCLUDE "data/pokemon/base_stats/omastar.asm"
+INCLUDE "data/pokemon/base_stats/kabuto.asm"
+INCLUDE "data/pokemon/base_stats/kabutops.asm"
+INCLUDE "data/pokemon/base_stats/aerodactyl.asm"
+INCLUDE "data/pokemon/base_stats/snorlax.asm"
+INCLUDE "data/pokemon/base_stats/articuno.asm"
+INCLUDE "data/pokemon/base_stats/zapdos.asm"
+INCLUDE "data/pokemon/base_stats/moltres.asm"
+INCLUDE "data/pokemon/base_stats/dratini.asm"
+INCLUDE "data/pokemon/base_stats/dragonair.asm"
+INCLUDE "data/pokemon/base_stats/dragonite.asm"
+INCLUDE "data/pokemon/base_stats/mewtwo.asm"
+INCLUDE "data/pokemon/base_stats/mew.asm"
+INCLUDE "data/pokemon/base_stats/chikorita.asm"
+INCLUDE "data/pokemon/base_stats/bayleef.asm"
+INCLUDE "data/pokemon/base_stats/meganium.asm"
+INCLUDE "data/pokemon/base_stats/cyndaquil.asm"
+INCLUDE "data/pokemon/base_stats/quilava.asm"
+INCLUDE "data/pokemon/base_stats/typhlosion.asm"
+INCLUDE "data/pokemon/base_stats/totodile.asm"
+INCLUDE "data/pokemon/base_stats/croconaw.asm"
+INCLUDE "data/pokemon/base_stats/feraligatr.asm"
+INCLUDE "data/pokemon/base_stats/sentret.asm"
+INCLUDE "data/pokemon/base_stats/furret.asm"
+INCLUDE "data/pokemon/base_stats/hoothoot.asm"
+INCLUDE "data/pokemon/base_stats/noctowl.asm"
+INCLUDE "data/pokemon/base_stats/ledyba.asm"
+INCLUDE "data/pokemon/base_stats/ledian.asm"
+INCLUDE "data/pokemon/base_stats/spinarak.asm"
+INCLUDE "data/pokemon/base_stats/ariados.asm"
+INCLUDE "data/pokemon/base_stats/crobat.asm"
+INCLUDE "data/pokemon/base_stats/chinchou.asm"
+INCLUDE "data/pokemon/base_stats/lanturn.asm"
+INCLUDE "data/pokemon/base_stats/pichu.asm"
+INCLUDE "data/pokemon/base_stats/cleffa.asm"
+INCLUDE "data/pokemon/base_stats/igglybuff.asm"
+INCLUDE "data/pokemon/base_stats/togepi.asm"
+INCLUDE "data/pokemon/base_stats/togetic.asm"
+INCLUDE "data/pokemon/base_stats/natu.asm"
+INCLUDE "data/pokemon/base_stats/xatu.asm"
+INCLUDE "data/pokemon/base_stats/mareep.asm"
+INCLUDE "data/pokemon/base_stats/flaaffy.asm"
+INCLUDE "data/pokemon/base_stats/ampharos.asm"
+INCLUDE "data/pokemon/base_stats/bellossom.asm"
+INCLUDE "data/pokemon/base_stats/marill.asm"
+INCLUDE "data/pokemon/base_stats/azumarill.asm"
+INCLUDE "data/pokemon/base_stats/sudowoodo.asm"
+INCLUDE "data/pokemon/base_stats/politoed.asm"
+INCLUDE "data/pokemon/base_stats/hoppip.asm"
+INCLUDE "data/pokemon/base_stats/skiploom.asm"
+INCLUDE "data/pokemon/base_stats/jumpluff.asm"
+INCLUDE "data/pokemon/base_stats/aipom.asm"
+INCLUDE "data/pokemon/base_stats/sunkern.asm"
+INCLUDE "data/pokemon/base_stats/sunflora.asm"
+INCLUDE "data/pokemon/base_stats/yanma.asm"
+INCLUDE "data/pokemon/base_stats/wooper.asm"
+INCLUDE "data/pokemon/base_stats/quagsire.asm"
+INCLUDE "data/pokemon/base_stats/espeon.asm"
+INCLUDE "data/pokemon/base_stats/umbreon.asm"
+INCLUDE "data/pokemon/base_stats/murkrow.asm"
+INCLUDE "data/pokemon/base_stats/slowking.asm"
+INCLUDE "data/pokemon/base_stats/misdreavus.asm"
+INCLUDE "data/pokemon/base_stats/unown.asm"
+INCLUDE "data/pokemon/base_stats/wobbuffet.asm"
+INCLUDE "data/pokemon/base_stats/girafarig.asm"
+INCLUDE "data/pokemon/base_stats/pineco.asm"
+INCLUDE "data/pokemon/base_stats/forretress.asm"
+INCLUDE "data/pokemon/base_stats/dunsparce.asm"
+INCLUDE "data/pokemon/base_stats/gligar.asm"
+INCLUDE "data/pokemon/base_stats/steelix.asm"
+INCLUDE "data/pokemon/base_stats/snubbull.asm"
+INCLUDE "data/pokemon/base_stats/granbull.asm"
+INCLUDE "data/pokemon/base_stats/qwilfish.asm"
+INCLUDE "data/pokemon/base_stats/scizor.asm"
+INCLUDE "data/pokemon/base_stats/shuckle.asm"
+INCLUDE "data/pokemon/base_stats/heracross.asm"
+INCLUDE "data/pokemon/base_stats/sneasel.asm"
+INCLUDE "data/pokemon/base_stats/teddiursa.asm"
+INCLUDE "data/pokemon/base_stats/ursaring.asm"
+INCLUDE "data/pokemon/base_stats/slugma.asm"
+INCLUDE "data/pokemon/base_stats/magcargo.asm"
+INCLUDE "data/pokemon/base_stats/swinub.asm"
+INCLUDE "data/pokemon/base_stats/piloswine.asm"
+INCLUDE "data/pokemon/base_stats/corsola.asm"
+INCLUDE "data/pokemon/base_stats/remoraid.asm"
+INCLUDE "data/pokemon/base_stats/octillery.asm"
+INCLUDE "data/pokemon/base_stats/delibird.asm"
+INCLUDE "data/pokemon/base_stats/mantine.asm"
+INCLUDE "data/pokemon/base_stats/skarmory.asm"
+INCLUDE "data/pokemon/base_stats/houndour.asm"
+INCLUDE "data/pokemon/base_stats/houndoom.asm"
+INCLUDE "data/pokemon/base_stats/kingdra.asm"
+INCLUDE "data/pokemon/base_stats/phanpy.asm"
+INCLUDE "data/pokemon/base_stats/donphan.asm"
+INCLUDE "data/pokemon/base_stats/porygon2.asm"
+INCLUDE "data/pokemon/base_stats/stantler.asm"
+INCLUDE "data/pokemon/base_stats/smeargle.asm"
+INCLUDE "data/pokemon/base_stats/tyrogue.asm"
+INCLUDE "data/pokemon/base_stats/hitmontop.asm"
+INCLUDE "data/pokemon/base_stats/smoochum.asm"
+INCLUDE "data/pokemon/base_stats/elekid.asm"
+INCLUDE "data/pokemon/base_stats/magby.asm"
+INCLUDE "data/pokemon/base_stats/miltank.asm"
+INCLUDE "data/pokemon/base_stats/blissey.asm"
+INCLUDE "data/pokemon/base_stats/raikou.asm"
+INCLUDE "data/pokemon/base_stats/entei.asm"
+INCLUDE "data/pokemon/base_stats/suicune.asm"
+INCLUDE "data/pokemon/base_stats/larvitar.asm"
+INCLUDE "data/pokemon/base_stats/pupitar.asm"
+INCLUDE "data/pokemon/base_stats/tyranitar.asm"
+INCLUDE "data/pokemon/base_stats/lugia.asm"
+INCLUDE "data/pokemon/base_stats/ho_oh.asm"
+INCLUDE "data/pokemon/base_stats/celebi.asm"
diff --git a/data/pokemon/base_stats/abra.asm b/data/pokemon/base_stats/abra.asm
new file mode 100644
index 000000000..a2520320a
--- /dev/null
+++ b/data/pokemon/base_stats/abra.asm
@@ -0,0 +1,22 @@
+ db ABRA ; 063
+
+ db 25, 20, 15, 90, 105, 55
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 200 ; catch rate
+ db 73 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/abra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/aerodactyl.asm b/data/pokemon/base_stats/aerodactyl.asm
new file mode 100644
index 000000000..897311399
--- /dev/null
+++ b/data/pokemon/base_stats/aerodactyl.asm
@@ -0,0 +1,22 @@
+ db AERODACTYL ; 142
+
+ db 80, 105, 65, 130, 60, 75
+ ; hp atk def spd sat sdf
+
+ db ROCK, FLYING
+ db 45 ; catch rate
+ db 202 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/aerodactyl/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/aipom.asm b/data/pokemon/base_stats/aipom.asm
new file mode 100644
index 000000000..839bff358
--- /dev/null
+++ b/data/pokemon/base_stats/aipom.asm
@@ -0,0 +1,22 @@
+ db AIPOM ; 190
+
+ db 55, 70, 55, 85, 40, 55
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 94 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/aipom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, STRENGTH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/alakazam.asm b/data/pokemon/base_stats/alakazam.asm
new file mode 100644
index 000000000..d0647e268
--- /dev/null
+++ b/data/pokemon/base_stats/alakazam.asm
@@ -0,0 +1,22 @@
+ db ALAKAZAM ; 065
+
+ db 55, 50, 45, 120, 135, 85
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 50 ; catch rate
+ db 186 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/alakazam/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/ampharos.asm b/data/pokemon/base_stats/ampharos.asm
new file mode 100644
index 000000000..ec361a08d
--- /dev/null
+++ b/data/pokemon/base_stats/ampharos.asm
@@ -0,0 +1,22 @@
+ db AMPHAROS ; 181
+
+ db 90, 75, 75, 55, 115, 90
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 194 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ampharos/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/arbok.asm b/data/pokemon/base_stats/arbok.asm
new file mode 100644
index 000000000..ed84e5dc8
--- /dev/null
+++ b/data/pokemon/base_stats/arbok.asm
@@ -0,0 +1,22 @@
+ db ARBOK ; 024
+
+ db 60, 85, 69, 80, 65, 79
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 90 ; catch rate
+ db 147 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/arbok/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/arcanine.asm b/data/pokemon/base_stats/arcanine.asm
new file mode 100644
index 000000000..d543bb8da
--- /dev/null
+++ b/data/pokemon/base_stats/arcanine.asm
@@ -0,0 +1,22 @@
+ db ARCANINE ; 059
+
+ db 90, 110, 80, 95, 100, 80
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 75 ; catch rate
+ db 213 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/arcanine/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/ariados.asm b/data/pokemon/base_stats/ariados.asm
new file mode 100644
index 000000000..8a436f624
--- /dev/null
+++ b/data/pokemon/base_stats/ariados.asm
@@ -0,0 +1,22 @@
+ db ARIADOS ; 168
+
+ db 70, 90, 70, 40, 60, 60
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 90 ; catch rate
+ db 134 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ariados/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/articuno.asm b/data/pokemon/base_stats/articuno.asm
new file mode 100644
index 000000000..ddf85599b
--- /dev/null
+++ b/data/pokemon/base_stats/articuno.asm
@@ -0,0 +1,22 @@
+ db ARTICUNO ; 144
+
+ db 90, 85, 100, 85, 95, 125
+ ; hp atk def spd sat sdf
+
+ db ICE, FLYING
+ db 3 ; catch rate
+ db 215 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/articuno/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/azumarill.asm b/data/pokemon/base_stats/azumarill.asm
new file mode 100644
index 000000000..c4286ad5d
--- /dev/null
+++ b/data/pokemon/base_stats/azumarill.asm
@@ -0,0 +1,22 @@
+ db AZUMARILL ; 184
+
+ db 100, 50, 80, 50, 50, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 153 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/azumarill/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/bayleef.asm b/data/pokemon/base_stats/bayleef.asm
new file mode 100644
index 000000000..82caf4ae7
--- /dev/null
+++ b/data/pokemon/base_stats/bayleef.asm
@@ -0,0 +1,22 @@
+ db BAYLEEF ; 153
+
+ db 60, 62, 80, 60, 63, 80
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 141 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bayleef/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/beedrill.asm b/data/pokemon/base_stats/beedrill.asm
new file mode 100644
index 000000000..c76accff8
--- /dev/null
+++ b/data/pokemon/base_stats/beedrill.asm
@@ -0,0 +1,22 @@
+ db BEEDRILL ; 015
+
+ db 65, 80, 40, 75, 45, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 45 ; catch rate
+ db 159 ; base exp
+ db NO_ITEM ; item 1
+ db POISON_BARB ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/beedrill/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, FURY_CUTTER, CUT
+ ; end
diff --git a/data/pokemon/base_stats/bellossom.asm b/data/pokemon/base_stats/bellossom.asm
new file mode 100644
index 000000000..9131b2b38
--- /dev/null
+++ b/data/pokemon/base_stats/bellossom.asm
@@ -0,0 +1,22 @@
+ db BELLOSSOM ; 182
+
+ db 75, 80, 85, 50, 90, 100
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 184 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bellossom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/bellsprout.asm b/data/pokemon/base_stats/bellsprout.asm
new file mode 100644
index 000000000..94a8ded6b
--- /dev/null
+++ b/data/pokemon/base_stats/bellsprout.asm
@@ -0,0 +1,22 @@
+ db BELLSPROUT ; 069
+
+ db 50, 75, 35, 40, 70, 30
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 255 ; catch rate
+ db 84 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bellsprout/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/blastoise.asm b/data/pokemon/base_stats/blastoise.asm
new file mode 100644
index 000000000..7bb267d72
--- /dev/null
+++ b/data/pokemon/base_stats/blastoise.asm
@@ -0,0 +1,22 @@
+ db BLASTOISE ; 009
+
+ db 79, 83, 100, 78, 85, 105
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 210 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/blastoise/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/blissey.asm b/data/pokemon/base_stats/blissey.asm
new file mode 100644
index 000000000..dc1c9a02b
--- /dev/null
+++ b/data/pokemon/base_stats/blissey.asm
@@ -0,0 +1,22 @@
+ db BLISSEY ; 242
+
+ db 255, 10, 10, 55, 75, 135
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 30 ; catch rate
+ db 255 ; base exp
+ db NO_ITEM ; item 1
+ db LUCKY_EGG ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/blissey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/bulbasaur.asm b/data/pokemon/base_stats/bulbasaur.asm
new file mode 100644
index 000000000..bc843bcd3
--- /dev/null
+++ b/data/pokemon/base_stats/bulbasaur.asm
@@ -0,0 +1,22 @@
+ db BULBASAUR ; 001
+
+ db 45, 49, 49, 45, 65, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/bulbasaur/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/butterfree.asm b/data/pokemon/base_stats/butterfree.asm
new file mode 100644
index 000000000..24b142e60
--- /dev/null
+++ b/data/pokemon/base_stats/butterfree.asm
@@ -0,0 +1,22 @@
+ db BUTTERFREE ; 012
+
+ db 60, 45, 50, 70, 80, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 45 ; catch rate
+ db 160 ; base exp
+ db NO_ITEM ; item 1
+ db SILVERPOWDER ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/butterfree/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/caterpie.asm b/data/pokemon/base_stats/caterpie.asm
new file mode 100644
index 000000000..cdac5bf26
--- /dev/null
+++ b/data/pokemon/base_stats/caterpie.asm
@@ -0,0 +1,22 @@
+ db CATERPIE ; 010
+
+ db 45, 30, 35, 45, 20, 20
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 255 ; catch rate
+ db 53 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/caterpie/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/celebi.asm b/data/pokemon/base_stats/celebi.asm
new file mode 100644
index 000000000..c955ae2a1
--- /dev/null
+++ b/data/pokemon/base_stats/celebi.asm
@@ -0,0 +1,22 @@
+ db CELEBI ; 251
+
+ db 100, 100, 100, 100, 100, 100
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, GRASS
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db MIRACLEBERRY ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/celebi/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/chansey.asm b/data/pokemon/base_stats/chansey.asm
new file mode 100644
index 000000000..1ae3af6fe
--- /dev/null
+++ b/data/pokemon/base_stats/chansey.asm
@@ -0,0 +1,22 @@
+ db CHANSEY ; 113
+
+ db 250, 05, 05, 50, 35, 105
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 30 ; catch rate
+ db 255 ; base exp
+ db NO_ITEM ; item 1
+ db LUCKY_EGG ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/chansey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/charizard.asm b/data/pokemon/base_stats/charizard.asm
new file mode 100644
index 000000000..8d32f3f91
--- /dev/null
+++ b/data/pokemon/base_stats/charizard.asm
@@ -0,0 +1,22 @@
+ db CHARIZARD ; 006
+
+ db 78, 84, 78, 100, 109, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FLYING
+ db 45 ; catch rate
+ db 209 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/charizard/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, CUT, FLY, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/charmander.asm b/data/pokemon/base_stats/charmander.asm
new file mode 100644
index 000000000..98383865c
--- /dev/null
+++ b/data/pokemon/base_stats/charmander.asm
@@ -0,0 +1,22 @@
+ db CHARMANDER ; 004
+
+ db 39, 52, 43, 65, 60, 50
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 65 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/charmander/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/charmeleon.asm b/data/pokemon/base_stats/charmeleon.asm
new file mode 100644
index 000000000..9f7f32b51
--- /dev/null
+++ b/data/pokemon/base_stats/charmeleon.asm
@@ -0,0 +1,22 @@
+ db CHARMELEON ; 005
+
+ db 58, 64, 58, 80, 80, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 142 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/charmeleon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/chikorita.asm b/data/pokemon/base_stats/chikorita.asm
new file mode 100644
index 000000000..fdf120402
--- /dev/null
+++ b/data/pokemon/base_stats/chikorita.asm
@@ -0,0 +1,22 @@
+ db CHIKORITA ; 152
+
+ db 45, 49, 65, 45, 49, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/chikorita/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/chinchou.asm b/data/pokemon/base_stats/chinchou.asm
new file mode 100644
index 000000000..caa5d06e1
--- /dev/null
+++ b/data/pokemon/base_stats/chinchou.asm
@@ -0,0 +1,22 @@
+ db CHINCHOU ; 170
+
+ db 75, 38, 38, 67, 56, 56
+ ; hp atk def spd sat sdf
+
+ db WATER, ELECTRIC
+ db 190 ; catch rate
+ db 90 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/chinchou/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/clefable.asm b/data/pokemon/base_stats/clefable.asm
new file mode 100644
index 000000000..e5978e387
--- /dev/null
+++ b/data/pokemon/base_stats/clefable.asm
@@ -0,0 +1,22 @@
+ db CLEFABLE ; 036
+
+ db 95, 70, 73, 60, 85, 90
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 25 ; catch rate
+ db 129 ; base exp
+ db MYSTERYBERRY ; item 1
+ db MOON_STONE ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/clefable/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/clefairy.asm b/data/pokemon/base_stats/clefairy.asm
new file mode 100644
index 000000000..54089b5cc
--- /dev/null
+++ b/data/pokemon/base_stats/clefairy.asm
@@ -0,0 +1,22 @@
+ db CLEFAIRY ; 035
+
+ db 70, 45, 48, 35, 60, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 150 ; catch rate
+ db 68 ; base exp
+ db MYSTERYBERRY ; item 1
+ db MOON_STONE ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/clefairy/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/cleffa.asm b/data/pokemon/base_stats/cleffa.asm
new file mode 100644
index 000000000..98e77e968
--- /dev/null
+++ b/data/pokemon/base_stats/cleffa.asm
@@ -0,0 +1,22 @@
+ db CLEFFA ; 173
+
+ db 50, 25, 28, 15, 45, 55
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 150 ; catch rate
+ db 37 ; base exp
+ db MYSTERYBERRY ; item 1
+ db MOON_STONE ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cleffa/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/cloyster.asm b/data/pokemon/base_stats/cloyster.asm
new file mode 100644
index 000000000..4119dbec2
--- /dev/null
+++ b/data/pokemon/base_stats/cloyster.asm
@@ -0,0 +1,22 @@
+ db CLOYSTER ; 091
+
+ db 50, 95, 180, 70, 85, 45
+ ; hp atk def spd sat sdf
+
+ db WATER, ICE
+ db 60 ; catch rate
+ db 203 ; base exp
+ db PEARL ; item 1
+ db BIG_PEARL ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cloyster/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/corsola.asm b/data/pokemon/base_stats/corsola.asm
new file mode 100644
index 000000000..dddf30644
--- /dev/null
+++ b/data/pokemon/base_stats/corsola.asm
@@ -0,0 +1,22 @@
+ db CORSOLA ; 222
+
+ db 55, 55, 85, 35, 65, 85
+ ; hp atk def spd sat sdf
+
+ db WATER, ROCK
+ db 60 ; catch rate
+ db 113 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/corsola/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/crobat.asm b/data/pokemon/base_stats/crobat.asm
new file mode 100644
index 000000000..71c012079
--- /dev/null
+++ b/data/pokemon/base_stats/crobat.asm
@@ -0,0 +1,22 @@
+ db CROBAT ; 169
+
+ db 85, 90, 80, 130, 70, 80
+ ; hp atk def spd sat sdf
+
+ db POISON, FLYING
+ db 90 ; catch rate
+ db 204 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/crobat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/croconaw.asm b/data/pokemon/base_stats/croconaw.asm
new file mode 100644
index 000000000..8dbd57632
--- /dev/null
+++ b/data/pokemon/base_stats/croconaw.asm
@@ -0,0 +1,22 @@
+ db CROCONAW ; 159
+
+ db 65, 80, 80, 58, 59, 63
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 143 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/croconaw/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/cubone.asm b/data/pokemon/base_stats/cubone.asm
new file mode 100644
index 000000000..dc15c8773
--- /dev/null
+++ b/data/pokemon/base_stats/cubone.asm
@@ -0,0 +1,22 @@
+ db CUBONE ; 104
+
+ db 50, 50, 95, 35, 40, 50
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 190 ; catch rate
+ db 87 ; base exp
+ db NO_ITEM ; item 1
+ db THICK_CLUB ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cubone/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/cyndaquil.asm b/data/pokemon/base_stats/cyndaquil.asm
new file mode 100644
index 000000000..137e8c78d
--- /dev/null
+++ b/data/pokemon/base_stats/cyndaquil.asm
@@ -0,0 +1,22 @@
+ db CYNDAQUIL ; 155
+
+ db 39, 52, 43, 65, 60, 50
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 65 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/cyndaquil/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, CUT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/delibird.asm b/data/pokemon/base_stats/delibird.asm
new file mode 100644
index 000000000..8ddb23e7c
--- /dev/null
+++ b/data/pokemon/base_stats/delibird.asm
@@ -0,0 +1,22 @@
+ db DELIBIRD ; 225
+
+ db 45, 55, 45, 75, 65, 45
+ ; hp atk def spd sat sdf
+
+ db ICE, FLYING
+ db 45 ; catch rate
+ db 183 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/delibird/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLY, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/dewgong.asm b/data/pokemon/base_stats/dewgong.asm
new file mode 100644
index 000000000..951a1e87e
--- /dev/null
+++ b/data/pokemon/base_stats/dewgong.asm
@@ -0,0 +1,22 @@
+ db DEWGONG ; 087
+
+ db 90, 70, 80, 70, 70, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, ICE
+ db 75 ; catch rate
+ db 176 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dewgong/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/diglett.asm b/data/pokemon/base_stats/diglett.asm
new file mode 100644
index 000000000..b93947622
--- /dev/null
+++ b/data/pokemon/base_stats/diglett.asm
@@ -0,0 +1,22 @@
+ db DIGLETT ; 050
+
+ db 10, 55, 25, 95, 35, 45
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 255 ; catch rate
+ db 81 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/diglett/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
+ ; end
diff --git a/data/pokemon/base_stats/ditto.asm b/data/pokemon/base_stats/ditto.asm
new file mode 100644
index 000000000..b88780bed
--- /dev/null
+++ b/data/pokemon/base_stats/ditto.asm
@@ -0,0 +1,22 @@
+ db DITTO ; 132
+
+ db 48, 48, 48, 48, 48, 48
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 35 ; catch rate
+ db 61 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ditto/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn LADIES_MAN, LADIES_MAN ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/dodrio.asm b/data/pokemon/base_stats/dodrio.asm
new file mode 100644
index 000000000..6f8463663
--- /dev/null
+++ b/data/pokemon/base_stats/dodrio.asm
@@ -0,0 +1,22 @@
+ db DODRIO ; 085
+
+ db 60, 110, 70, 100, 60, 60
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 45 ; catch rate
+ db 158 ; base exp
+ db NO_ITEM ; item 1
+ db SHARP_BEAK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dodrio/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/doduo.asm b/data/pokemon/base_stats/doduo.asm
new file mode 100644
index 000000000..1ef229455
--- /dev/null
+++ b/data/pokemon/base_stats/doduo.asm
@@ -0,0 +1,22 @@
+ db DODUO ; 084
+
+ db 35, 85, 45, 75, 35, 35
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 190 ; catch rate
+ db 96 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/doduo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/donphan.asm b/data/pokemon/base_stats/donphan.asm
new file mode 100644
index 000000000..ee0418de0
--- /dev/null
+++ b/data/pokemon/base_stats/donphan.asm
@@ -0,0 +1,22 @@
+ db DONPHAN ; 232
+
+ db 90, 120, 120, 50, 60, 60
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 60 ; catch rate
+ db 189 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/donphan/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/dragonair.asm b/data/pokemon/base_stats/dragonair.asm
new file mode 100644
index 000000000..e0ca4b8e9
--- /dev/null
+++ b/data/pokemon/base_stats/dragonair.asm
@@ -0,0 +1,22 @@
+ db DRAGONAIR ; 148
+
+ db 61, 84, 65, 70, 70, 70
+ ; hp atk def spd sat sdf
+
+ db DRAGON, DRAGON
+ db 45 ; catch rate
+ db 144 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dragonair/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/dragonite.asm b/data/pokemon/base_stats/dragonite.asm
new file mode 100644
index 000000000..8ca777e96
--- /dev/null
+++ b/data/pokemon/base_stats/dragonite.asm
@@ -0,0 +1,22 @@
+ db DRAGONITE ; 149
+
+ db 91, 134, 95, 80, 100, 100
+ ; hp atk def spd sat sdf
+
+ db DRAGON, FLYING
+ db 45 ; catch rate
+ db 218 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dragonite/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/dratini.asm b/data/pokemon/base_stats/dratini.asm
new file mode 100644
index 000000000..c1c173c86
--- /dev/null
+++ b/data/pokemon/base_stats/dratini.asm
@@ -0,0 +1,22 @@
+ db DRATINI ; 147
+
+ db 41, 64, 45, 50, 50, 50
+ ; hp atk def spd sat sdf
+
+ db DRAGON, DRAGON
+ db 45 ; catch rate
+ db 67 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dratini/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, SURF, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/drowzee.asm b/data/pokemon/base_stats/drowzee.asm
new file mode 100644
index 000000000..5aa756351
--- /dev/null
+++ b/data/pokemon/base_stats/drowzee.asm
@@ -0,0 +1,22 @@
+ db DROWZEE ; 096
+
+ db 60, 48, 45, 42, 43, 90
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 190 ; catch rate
+ db 102 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/drowzee/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/dugtrio.asm b/data/pokemon/base_stats/dugtrio.asm
new file mode 100644
index 000000000..e245f8320
--- /dev/null
+++ b/data/pokemon/base_stats/dugtrio.asm
@@ -0,0 +1,22 @@
+ db DUGTRIO ; 051
+
+ db 35, 80, 50, 120, 50, 70
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 50 ; catch rate
+ db 153 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dugtrio/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT
+ ; end
diff --git a/data/pokemon/base_stats/dunsparce.asm b/data/pokemon/base_stats/dunsparce.asm
new file mode 100644
index 000000000..5cbdb5807
--- /dev/null
+++ b/data/pokemon/base_stats/dunsparce.asm
@@ -0,0 +1,22 @@
+ db DUNSPARCE ; 206
+
+ db 100, 70, 70, 45, 65, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 190 ; catch rate
+ db 75 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/dunsparce/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/eevee.asm b/data/pokemon/base_stats/eevee.asm
new file mode 100644
index 000000000..79bbafbcf
--- /dev/null
+++ b/data/pokemon/base_stats/eevee.asm
@@ -0,0 +1,22 @@
+ db EEVEE ; 133
+
+ db 55, 55, 50, 55, 45, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 92 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/eevee/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT
+ ; end
diff --git a/data/pokemon/base_stats/ekans.asm b/data/pokemon/base_stats/ekans.asm
new file mode 100644
index 000000000..0aa84fde2
--- /dev/null
+++ b/data/pokemon/base_stats/ekans.asm
@@ -0,0 +1,22 @@
+ db EKANS ; 023
+
+ db 35, 60, 44, 55, 40, 54
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 255 ; catch rate
+ db 62 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ekans/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/electabuzz.asm b/data/pokemon/base_stats/electabuzz.asm
new file mode 100644
index 000000000..29cdf9018
--- /dev/null
+++ b/data/pokemon/base_stats/electabuzz.asm
@@ -0,0 +1,22 @@
+ db ELECTABUZZ ; 125
+
+ db 65, 83, 57, 105, 95, 85
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 156 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/electabuzz/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/electrode.asm b/data/pokemon/base_stats/electrode.asm
new file mode 100644
index 000000000..44d92de66
--- /dev/null
+++ b/data/pokemon/base_stats/electrode.asm
@@ -0,0 +1,22 @@
+ db ELECTRODE ; 101
+
+ db 60, 50, 70, 140, 80, 80
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 60 ; catch rate
+ db 150 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/electrode/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/elekid.asm b/data/pokemon/base_stats/elekid.asm
new file mode 100644
index 000000000..a1f871586
--- /dev/null
+++ b/data/pokemon/base_stats/elekid.asm
@@ -0,0 +1,22 @@
+ db ELEKID ; 239
+
+ db 45, 63, 37, 95, 65, 55
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 106 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/elekid/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/entei.asm b/data/pokemon/base_stats/entei.asm
new file mode 100644
index 000000000..63f5f0af6
--- /dev/null
+++ b/data/pokemon/base_stats/entei.asm
@@ -0,0 +1,22 @@
+ db ENTEI ; 244
+
+ db 115, 115, 85, 100, 90, 75
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 3 ; catch rate
+ db 217 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/entei/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/espeon.asm b/data/pokemon/base_stats/espeon.asm
new file mode 100644
index 000000000..5748ded74
--- /dev/null
+++ b/data/pokemon/base_stats/espeon.asm
@@ -0,0 +1,22 @@
+ db ESPEON ; 196
+
+ db 65, 65, 60, 110, 130, 95
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 197 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/espeon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/exeggcute.asm b/data/pokemon/base_stats/exeggcute.asm
new file mode 100644
index 000000000..3cd83b6c9
--- /dev/null
+++ b/data/pokemon/base_stats/exeggcute.asm
@@ -0,0 +1,22 @@
+ db EXEGGCUTE ; 102
+
+ db 60, 40, 80, 40, 60, 45
+ ; hp atk def spd sat sdf
+
+ db GRASS, PSYCHIC
+ db 90 ; catch rate
+ db 98 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/exeggcute/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/exeggutor.asm b/data/pokemon/base_stats/exeggutor.asm
new file mode 100644
index 000000000..d5c466f21
--- /dev/null
+++ b/data/pokemon/base_stats/exeggutor.asm
@@ -0,0 +1,22 @@
+ db EXEGGUTOR ; 103
+
+ db 95, 95, 85, 55, 125, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, PSYCHIC
+ db 45 ; catch rate
+ db 212 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/exeggutor/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/farfetch_d.asm b/data/pokemon/base_stats/farfetch_d.asm
new file mode 100644
index 000000000..8da2b08a4
--- /dev/null
+++ b/data/pokemon/base_stats/farfetch_d.asm
@@ -0,0 +1,22 @@
+ db FARFETCH_D ; 083
+
+ db 52, 65, 55, 60, 58, 62
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 45 ; catch rate
+ db 94 ; base exp
+ db NO_ITEM ; item 1
+ db STICK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/farfetch_d/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
+ ; end
diff --git a/data/pokemon/base_stats/fearow.asm b/data/pokemon/base_stats/fearow.asm
new file mode 100644
index 000000000..2ce86b1bf
--- /dev/null
+++ b/data/pokemon/base_stats/fearow.asm
@@ -0,0 +1,22 @@
+ db FEAROW ; 022
+
+ db 65, 90, 65, 100, 61, 61
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 90 ; catch rate
+ db 162 ; base exp
+ db NO_ITEM ; item 1
+ db SHARP_BEAK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/fearow/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/feraligatr.asm b/data/pokemon/base_stats/feraligatr.asm
new file mode 100644
index 000000000..c59ca6ffb
--- /dev/null
+++ b/data/pokemon/base_stats/feraligatr.asm
@@ -0,0 +1,22 @@
+ db FERALIGATR ; 160
+
+ db 85, 105, 100, 78, 79, 83
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 210 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/feraligatr/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/flaaffy.asm b/data/pokemon/base_stats/flaaffy.asm
new file mode 100644
index 000000000..2cf5e15bc
--- /dev/null
+++ b/data/pokemon/base_stats/flaaffy.asm
@@ -0,0 +1,22 @@
+ db FLAAFFY ; 180
+
+ db 70, 55, 55, 45, 80, 60
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 120 ; catch rate
+ db 117 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/flaaffy/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/flareon.asm b/data/pokemon/base_stats/flareon.asm
new file mode 100644
index 000000000..00faecec6
--- /dev/null
+++ b/data/pokemon/base_stats/flareon.asm
@@ -0,0 +1,22 @@
+ db FLAREON ; 136
+
+ db 65, 130, 60, 65, 95, 110
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 198 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/flareon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DETECT, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/forretress.asm b/data/pokemon/base_stats/forretress.asm
new file mode 100644
index 000000000..08fec2745
--- /dev/null
+++ b/data/pokemon/base_stats/forretress.asm
@@ -0,0 +1,22 @@
+ db FORRETRESS ; 205
+
+ db 75, 90, 140, 40, 60, 60
+ ; hp atk def spd sat sdf
+
+ db BUG, STEEL
+ db 75 ; catch rate
+ db 118 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/forretress/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/furret.asm b/data/pokemon/base_stats/furret.asm
new file mode 100644
index 000000000..3e3b7a656
--- /dev/null
+++ b/data/pokemon/base_stats/furret.asm
@@ -0,0 +1,22 @@
+ db FURRET ; 162
+
+ db 85, 76, 64, 90, 45, 55
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 90 ; catch rate
+ db 116 ; base exp
+ db BERRY ; item 1
+ db GOLD_BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/furret/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/gastly.asm b/data/pokemon/base_stats/gastly.asm
new file mode 100644
index 000000000..cda05fe05
--- /dev/null
+++ b/data/pokemon/base_stats/gastly.asm
@@ -0,0 +1,22 @@
+ db GASTLY ; 092
+
+ db 30, 35, 30, 80, 100, 35
+ ; hp atk def spd sat sdf
+
+ db GHOST, POISON
+ db 190 ; catch rate
+ db 95 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gastly/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/gengar.asm b/data/pokemon/base_stats/gengar.asm
new file mode 100644
index 000000000..9b9cc3310
--- /dev/null
+++ b/data/pokemon/base_stats/gengar.asm
@@ -0,0 +1,22 @@
+ db GENGAR ; 094
+
+ db 60, 65, 60, 110, 130, 75
+ ; hp atk def spd sat sdf
+
+ db GHOST, POISON
+ db 45 ; catch rate
+ db 190 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gengar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, STRENGTH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/geodude.asm b/data/pokemon/base_stats/geodude.asm
new file mode 100644
index 000000000..86b627107
--- /dev/null
+++ b/data/pokemon/base_stats/geodude.asm
@@ -0,0 +1,22 @@
+ db GEODUDE ; 074
+
+ db 40, 80, 100, 20, 30, 30
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 255 ; catch rate
+ db 86 ; base exp
+ db NO_ITEM ; item 1
+ db EVERSTONE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/geodude/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/girafarig.asm b/data/pokemon/base_stats/girafarig.asm
new file mode 100644
index 000000000..7391367cf
--- /dev/null
+++ b/data/pokemon/base_stats/girafarig.asm
@@ -0,0 +1,22 @@
+ db GIRAFARIG ; 203
+
+ db 70, 80, 65, 85, 90, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, PSYCHIC
+ db 60 ; catch rate
+ db 149 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/girafarig/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/gligar.asm b/data/pokemon/base_stats/gligar.asm
new file mode 100644
index 000000000..5bb7fdca8
--- /dev/null
+++ b/data/pokemon/base_stats/gligar.asm
@@ -0,0 +1,22 @@
+ db GLIGAR ; 207
+
+ db 65, 75, 105, 85, 35, 65
+ ; hp atk def spd sat sdf
+
+ db GROUND, FLYING
+ db 60 ; catch rate
+ db 108 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gligar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/gloom.asm b/data/pokemon/base_stats/gloom.asm
new file mode 100644
index 000000000..33cea01f2
--- /dev/null
+++ b/data/pokemon/base_stats/gloom.asm
@@ -0,0 +1,22 @@
+ db GLOOM ; 044
+
+ db 60, 65, 70, 40, 85, 75
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 120 ; catch rate
+ db 132 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gloom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/golbat.asm b/data/pokemon/base_stats/golbat.asm
new file mode 100644
index 000000000..06769b880
--- /dev/null
+++ b/data/pokemon/base_stats/golbat.asm
@@ -0,0 +1,22 @@
+ db GOLBAT ; 042
+
+ db 75, 80, 70, 90, 65, 75
+ ; hp atk def spd sat sdf
+
+ db POISON, FLYING
+ db 90 ; catch rate
+ db 171 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/golbat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
+ ; end
diff --git a/data/pokemon/base_stats/goldeen.asm b/data/pokemon/base_stats/goldeen.asm
new file mode 100644
index 000000000..314852a3e
--- /dev/null
+++ b/data/pokemon/base_stats/goldeen.asm
@@ -0,0 +1,22 @@
+ db GOLDEEN ; 118
+
+ db 45, 67, 60, 63, 35, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 111 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/goldeen/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/golduck.asm b/data/pokemon/base_stats/golduck.asm
new file mode 100644
index 000000000..9c4dbb5f5
--- /dev/null
+++ b/data/pokemon/base_stats/golduck.asm
@@ -0,0 +1,22 @@
+ db GOLDUCK ; 055
+
+ db 80, 82, 78, 85, 95, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 174 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/golduck/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, FURY_CUTTER, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/golem.asm b/data/pokemon/base_stats/golem.asm
new file mode 100644
index 000000000..9a9f04451
--- /dev/null
+++ b/data/pokemon/base_stats/golem.asm
@@ -0,0 +1,22 @@
+ db GOLEM ; 076
+
+ db 80, 110, 130, 45, 55, 65
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 177 ; base exp
+ db NO_ITEM ; item 1
+ db EVERSTONE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/golem/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/granbull.asm b/data/pokemon/base_stats/granbull.asm
new file mode 100644
index 000000000..088e17dd8
--- /dev/null
+++ b/data/pokemon/base_stats/granbull.asm
@@ -0,0 +1,22 @@
+ db GRANBULL ; 210
+
+ db 90, 120, 75, 45, 60, 60
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 75 ; catch rate
+ db 178 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/granbull/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/graveler.asm b/data/pokemon/base_stats/graveler.asm
new file mode 100644
index 000000000..dfbeb770c
--- /dev/null
+++ b/data/pokemon/base_stats/graveler.asm
@@ -0,0 +1,22 @@
+ db GRAVELER ; 075
+
+ db 55, 95, 115, 35, 45, 45
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 120 ; catch rate
+ db 134 ; base exp
+ db NO_ITEM ; item 1
+ db EVERSTONE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/graveler/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/grimer.asm b/data/pokemon/base_stats/grimer.asm
new file mode 100644
index 000000000..86dacd1e6
--- /dev/null
+++ b/data/pokemon/base_stats/grimer.asm
@@ -0,0 +1,22 @@
+ db GRIMER ; 088
+
+ db 80, 80, 50, 25, 40, 50
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 190 ; catch rate
+ db 90 ; base exp
+ db NO_ITEM ; item 1
+ db NUGGET ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/grimer/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/growlithe.asm b/data/pokemon/base_stats/growlithe.asm
new file mode 100644
index 000000000..ef5cc53b3
--- /dev/null
+++ b/data/pokemon/base_stats/growlithe.asm
@@ -0,0 +1,22 @@
+ db GROWLITHE ; 058
+
+ db 55, 70, 45, 60, 70, 50
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 91 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/growlithe/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/gyarados.asm b/data/pokemon/base_stats/gyarados.asm
new file mode 100644
index 000000000..1bdceff88
--- /dev/null
+++ b/data/pokemon/base_stats/gyarados.asm
@@ -0,0 +1,22 @@
+ db GYARADOS ; 130
+
+ db 95, 125, 79, 81, 60, 100
+ ; hp atk def spd sat sdf
+
+ db WATER, FLYING
+ db 45 ; catch rate
+ db 214 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 5 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/gyarados/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/haunter.asm b/data/pokemon/base_stats/haunter.asm
new file mode 100644
index 000000000..0db7406c1
--- /dev/null
+++ b/data/pokemon/base_stats/haunter.asm
@@ -0,0 +1,22 @@
+ db HAUNTER ; 093
+
+ db 45, 50, 45, 95, 115, 55
+ ; hp atk def spd sat sdf
+
+ db GHOST, POISON
+ db 90 ; catch rate
+ db 126 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/haunter/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/heracross.asm b/data/pokemon/base_stats/heracross.asm
new file mode 100644
index 000000000..1f81d9c7b
--- /dev/null
+++ b/data/pokemon/base_stats/heracross.asm
@@ -0,0 +1,22 @@
+ db HERACROSS ; 214
+
+ db 80, 125, 75, 85, 40, 95
+ ; hp atk def spd sat sdf
+
+ db BUG, FIGHTING
+ db 45 ; catch rate
+ db 200 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/heracross/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/hitmonchan.asm b/data/pokemon/base_stats/hitmonchan.asm
new file mode 100644
index 000000000..3eeb23dd4
--- /dev/null
+++ b/data/pokemon/base_stats/hitmonchan.asm
@@ -0,0 +1,22 @@
+ db HITMONCHAN ; 107
+
+ db 50, 105, 79, 76, 35, 110
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 140 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hitmonchan/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/hitmonlee.asm b/data/pokemon/base_stats/hitmonlee.asm
new file mode 100644
index 000000000..a31352209
--- /dev/null
+++ b/data/pokemon/base_stats/hitmonlee.asm
@@ -0,0 +1,22 @@
+ db HITMONLEE ; 106
+
+ db 50, 120, 53, 87, 35, 110
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 139 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hitmonlee/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/hitmontop.asm b/data/pokemon/base_stats/hitmontop.asm
new file mode 100644
index 000000000..532b8a6d8
--- /dev/null
+++ b/data/pokemon/base_stats/hitmontop.asm
@@ -0,0 +1,22 @@
+ db HITMONTOP ; 237
+
+ db 50, 95, 95, 70, 35, 110
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 138 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hitmontop/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/ho_oh.asm b/data/pokemon/base_stats/ho_oh.asm
new file mode 100644
index 000000000..311bbf6cf
--- /dev/null
+++ b/data/pokemon/base_stats/ho_oh.asm
@@ -0,0 +1,22 @@
+ db HO_OH ; 250
+
+ db 106, 130, 90, 90, 110, 154
+ ; hp atk def spd sat sdf
+
+ db FIRE, FLYING
+ db 3 ; catch rate
+ db 220 ; base exp
+ db SACRED_ASH ; item 1
+ db SACRED_ASH ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ho_oh/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/hoothoot.asm b/data/pokemon/base_stats/hoothoot.asm
new file mode 100644
index 000000000..0442fe414
--- /dev/null
+++ b/data/pokemon/base_stats/hoothoot.asm
@@ -0,0 +1,22 @@
+ db HOOTHOOT ; 163
+
+ db 60, 30, 30, 50, 36, 56
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 255 ; catch rate
+ db 58 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hoothoot/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/hoppip.asm b/data/pokemon/base_stats/hoppip.asm
new file mode 100644
index 000000000..b1918d699
--- /dev/null
+++ b/data/pokemon/base_stats/hoppip.asm
@@ -0,0 +1,22 @@
+ db HOPPIP ; 187
+
+ db 35, 35, 40, 50, 35, 55
+ ; hp atk def spd sat sdf
+
+ db GRASS, FLYING
+ db 255 ; catch rate
+ db 74 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hoppip/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FAIRY, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/horsea.asm b/data/pokemon/base_stats/horsea.asm
new file mode 100644
index 000000000..3296f52af
--- /dev/null
+++ b/data/pokemon/base_stats/horsea.asm
@@ -0,0 +1,22 @@
+ db HORSEA ; 116
+
+ db 30, 40, 70, 60, 70, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 83 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/horsea/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/houndoom.asm b/data/pokemon/base_stats/houndoom.asm
new file mode 100644
index 000000000..234832675
--- /dev/null
+++ b/data/pokemon/base_stats/houndoom.asm
@@ -0,0 +1,22 @@
+ db HOUNDOOM ; 229
+
+ db 75, 90, 50, 95, 110, 80
+ ; hp atk def spd sat sdf
+
+ db DARK, FIRE
+ db 45 ; catch rate
+ db 204 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/houndoom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/houndour.asm b/data/pokemon/base_stats/houndour.asm
new file mode 100644
index 000000000..f743cd81e
--- /dev/null
+++ b/data/pokemon/base_stats/houndour.asm
@@ -0,0 +1,22 @@
+ db HOUNDOUR ; 228
+
+ db 45, 60, 30, 65, 80, 50
+ ; hp atk def spd sat sdf
+
+ db DARK, FIRE
+ db 120 ; catch rate
+ db 114 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/houndour/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/hypno.asm b/data/pokemon/base_stats/hypno.asm
new file mode 100644
index 000000000..6c132b6bf
--- /dev/null
+++ b/data/pokemon/base_stats/hypno.asm
@@ -0,0 +1,22 @@
+ db HYPNO ; 097
+
+ db 85, 73, 70, 67, 73, 115
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 75 ; catch rate
+ db 165 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/hypno/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/igglybuff.asm b/data/pokemon/base_stats/igglybuff.asm
new file mode 100644
index 000000000..fbf32ecca
--- /dev/null
+++ b/data/pokemon/base_stats/igglybuff.asm
@@ -0,0 +1,22 @@
+ db IGGLYBUFF ; 174
+
+ db 90, 30, 15, 15, 40, 20
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 170 ; catch rate
+ db 39 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/igglybuff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, FLASH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/ivysaur.asm b/data/pokemon/base_stats/ivysaur.asm
new file mode 100644
index 000000000..7d98b4b6d
--- /dev/null
+++ b/data/pokemon/base_stats/ivysaur.asm
@@ -0,0 +1,22 @@
+ db IVYSAUR ; 002
+
+ db 60, 62, 63, 60, 80, 80
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 141 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ivysaur/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/jigglypuff.asm b/data/pokemon/base_stats/jigglypuff.asm
new file mode 100644
index 000000000..0f4ea788e
--- /dev/null
+++ b/data/pokemon/base_stats/jigglypuff.asm
@@ -0,0 +1,22 @@
+ db JIGGLYPUFF ; 039
+
+ db 115, 45, 20, 20, 45, 25
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 170 ; catch rate
+ db 76 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jigglypuff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/jolteon.asm b/data/pokemon/base_stats/jolteon.asm
new file mode 100644
index 000000000..665a40d1d
--- /dev/null
+++ b/data/pokemon/base_stats/jolteon.asm
@@ -0,0 +1,22 @@
+ db JOLTEON ; 135
+
+ db 65, 65, 60, 130, 110, 95
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 45 ; catch rate
+ db 197 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jolteon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/jumpluff.asm b/data/pokemon/base_stats/jumpluff.asm
new file mode 100644
index 000000000..623fbe82d
--- /dev/null
+++ b/data/pokemon/base_stats/jumpluff.asm
@@ -0,0 +1,22 @@
+ db JUMPLUFF ; 189
+
+ db 75, 55, 70, 110, 55, 85
+ ; hp atk def spd sat sdf
+
+ db GRASS, FLYING
+ db 45 ; catch rate
+ db 176 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jumpluff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FAIRY, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/jynx.asm b/data/pokemon/base_stats/jynx.asm
new file mode 100644
index 000000000..c47a4315d
--- /dev/null
+++ b/data/pokemon/base_stats/jynx.asm
@@ -0,0 +1,22 @@
+ db JYNX ; 124
+
+ db 65, 50, 35, 95, 115, 95
+ ; hp atk def spd sat sdf
+
+ db ICE, PSYCHIC
+ db 45 ; catch rate
+ db 137 ; base exp
+ db ICE_BERRY ; item 1
+ db ICE_BERRY ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/jynx/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/kabuto.asm b/data/pokemon/base_stats/kabuto.asm
new file mode 100644
index 000000000..9a38cbcba
--- /dev/null
+++ b/data/pokemon/base_stats/kabuto.asm
@@ -0,0 +1,22 @@
+ db KABUTO ; 140
+
+ db 30, 80, 90, 55, 55, 45
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 119 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kabuto/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/kabutops.asm b/data/pokemon/base_stats/kabutops.asm
new file mode 100644
index 000000000..b8de99fa1
--- /dev/null
+++ b/data/pokemon/base_stats/kabutops.asm
@@ -0,0 +1,22 @@
+ db KABUTOPS ; 141
+
+ db 60, 115, 105, 80, 65, 70
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 201 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kabutops/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/kadabra.asm b/data/pokemon/base_stats/kadabra.asm
new file mode 100644
index 000000000..6a4e56f13
--- /dev/null
+++ b/data/pokemon/base_stats/kadabra.asm
@@ -0,0 +1,22 @@
+ db KADABRA ; 064
+
+ db 40, 35, 30, 105, 120, 70
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 100 ; catch rate
+ db 145 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kadabra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DIG, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/kakuna.asm b/data/pokemon/base_stats/kakuna.asm
new file mode 100644
index 000000000..83241fbcd
--- /dev/null
+++ b/data/pokemon/base_stats/kakuna.asm
@@ -0,0 +1,22 @@
+ db KAKUNA ; 014
+
+ db 45, 25, 50, 35, 25, 25
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 120 ; catch rate
+ db 71 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kakuna/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/kangaskhan.asm b/data/pokemon/base_stats/kangaskhan.asm
new file mode 100644
index 000000000..21af227f0
--- /dev/null
+++ b/data/pokemon/base_stats/kangaskhan.asm
@@ -0,0 +1,22 @@
+ db KANGASKHAN ; 115
+
+ db 105, 95, 80, 90, 40, 80
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 175 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kangaskhan/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/kingdra.asm b/data/pokemon/base_stats/kingdra.asm
new file mode 100644
index 000000000..e62d0f23e
--- /dev/null
+++ b/data/pokemon/base_stats/kingdra.asm
@@ -0,0 +1,22 @@
+ db KINGDRA ; 230
+
+ db 75, 95, 95, 85, 95, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, DRAGON
+ db 45 ; catch rate
+ db 207 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kingdra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/kingler.asm b/data/pokemon/base_stats/kingler.asm
new file mode 100644
index 000000000..01ac23a99
--- /dev/null
+++ b/data/pokemon/base_stats/kingler.asm
@@ -0,0 +1,22 @@
+ db KINGLER ; 099
+
+ db 55, 130, 115, 75, 50, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 60 ; catch rate
+ db 206 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/kingler/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/koffing.asm b/data/pokemon/base_stats/koffing.asm
new file mode 100644
index 000000000..70e8bd114
--- /dev/null
+++ b/data/pokemon/base_stats/koffing.asm
@@ -0,0 +1,22 @@
+ db KOFFING ; 109
+
+ db 40, 65, 95, 35, 60, 45
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 190 ; catch rate
+ db 114 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/koffing/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/krabby.asm b/data/pokemon/base_stats/krabby.asm
new file mode 100644
index 000000000..60ce4c7f4
--- /dev/null
+++ b/data/pokemon/base_stats/krabby.asm
@@ -0,0 +1,22 @@
+ db KRABBY ; 098
+
+ db 30, 105, 90, 50, 25, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 115 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/krabby/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, SURF, STRENGTH, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/lanturn.asm b/data/pokemon/base_stats/lanturn.asm
new file mode 100644
index 000000000..f5b747fad
--- /dev/null
+++ b/data/pokemon/base_stats/lanturn.asm
@@ -0,0 +1,22 @@
+ db LANTURN ; 171
+
+ db 125, 58, 58, 67, 76, 76
+ ; hp atk def spd sat sdf
+
+ db WATER, ELECTRIC
+ db 75 ; catch rate
+ db 156 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lanturn/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/lapras.asm b/data/pokemon/base_stats/lapras.asm
new file mode 100644
index 000000000..9477b6791
--- /dev/null
+++ b/data/pokemon/base_stats/lapras.asm
@@ -0,0 +1,22 @@
+ db LAPRAS ; 131
+
+ db 130, 85, 80, 60, 85, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, ICE
+ db 45 ; catch rate
+ db 219 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lapras/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, WHIRLPOOL, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/larvitar.asm b/data/pokemon/base_stats/larvitar.asm
new file mode 100644
index 000000000..7de66ca7f
--- /dev/null
+++ b/data/pokemon/base_stats/larvitar.asm
@@ -0,0 +1,22 @@
+ db LARVITAR ; 246
+
+ db 50, 64, 50, 41, 45, 50
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 67 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/larvitar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
+ ; end
diff --git a/data/pokemon/base_stats/ledian.asm b/data/pokemon/base_stats/ledian.asm
new file mode 100644
index 000000000..84a06c092
--- /dev/null
+++ b/data/pokemon/base_stats/ledian.asm
@@ -0,0 +1,22 @@
+ db LEDIAN ; 166
+
+ db 55, 35, 50, 85, 55, 110
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 90 ; catch rate
+ db 134 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ledian/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/ledyba.asm b/data/pokemon/base_stats/ledyba.asm
new file mode 100644
index 000000000..68a20d1ea
--- /dev/null
+++ b/data/pokemon/base_stats/ledyba.asm
@@ -0,0 +1,22 @@
+ db LEDYBA ; 165
+
+ db 40, 20, 30, 55, 40, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 255 ; catch rate
+ db 54 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ledyba/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, THUNDERPUNCH, REST, ATTRACT, THIEF, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/lickitung.asm b/data/pokemon/base_stats/lickitung.asm
new file mode 100644
index 000000000..0f8f351da
--- /dev/null
+++ b/data/pokemon/base_stats/lickitung.asm
@@ -0,0 +1,22 @@
+ db LICKITUNG ; 108
+
+ db 90, 55, 75, 30, 60, 75
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 127 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lickitung/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/lugia.asm b/data/pokemon/base_stats/lugia.asm
new file mode 100644
index 000000000..3a4109ab9
--- /dev/null
+++ b/data/pokemon/base_stats/lugia.asm
@@ -0,0 +1,22 @@
+ db LUGIA ; 249
+
+ db 106, 90, 130, 110, 90, 154
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, FLYING
+ db 3 ; catch rate
+ db 220 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/lugia/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DREAM_EATER, DETECT, REST, STEEL_WING, NIGHTMARE, FLY, SURF, STRENGTH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/machamp.asm b/data/pokemon/base_stats/machamp.asm
new file mode 100644
index 000000000..bb716cf25
--- /dev/null
+++ b/data/pokemon/base_stats/machamp.asm
@@ -0,0 +1,22 @@
+ db MACHAMP ; 068
+
+ db 90, 130, 80, 55, 65, 85
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 45 ; catch rate
+ db 193 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/machamp/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/machoke.asm b/data/pokemon/base_stats/machoke.asm
new file mode 100644
index 000000000..79caf8c70
--- /dev/null
+++ b/data/pokemon/base_stats/machoke.asm
@@ -0,0 +1,22 @@
+ db MACHOKE ; 067
+
+ db 80, 100, 70, 45, 50, 60
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 90 ; catch rate
+ db 146 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/machoke/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/machop.asm b/data/pokemon/base_stats/machop.asm
new file mode 100644
index 000000000..6b0cbaab7
--- /dev/null
+++ b/data/pokemon/base_stats/machop.asm
@@ -0,0 +1,22 @@
+ db MACHOP ; 066
+
+ db 70, 80, 50, 35, 35, 35
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 180 ; catch rate
+ db 88 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/machop/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/magby.asm b/data/pokemon/base_stats/magby.asm
new file mode 100644
index 000000000..478dfb8b8
--- /dev/null
+++ b/data/pokemon/base_stats/magby.asm
@@ -0,0 +1,22 @@
+ db MAGBY ; 240
+
+ db 45, 75, 37, 83, 70, 55
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 117 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magby/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/magcargo.asm b/data/pokemon/base_stats/magcargo.asm
new file mode 100644
index 000000000..45493135b
--- /dev/null
+++ b/data/pokemon/base_stats/magcargo.asm
@@ -0,0 +1,22 @@
+ db MAGCARGO ; 219
+
+ db 50, 50, 120, 30, 80, 80
+ ; hp atk def spd sat sdf
+
+ db FIRE, ROCK
+ db 75 ; catch rate
+ db 154 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magcargo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/magikarp.asm b/data/pokemon/base_stats/magikarp.asm
new file mode 100644
index 000000000..2519b475b
--- /dev/null
+++ b/data/pokemon/base_stats/magikarp.asm
@@ -0,0 +1,22 @@
+ db MAGIKARP ; 129
+
+ db 20, 10, 55, 80, 15, 20
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 255 ; catch rate
+ db 20 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 5 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magikarp/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FISH, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/magmar.asm b/data/pokemon/base_stats/magmar.asm
new file mode 100644
index 000000000..ea14c66cd
--- /dev/null
+++ b/data/pokemon/base_stats/magmar.asm
@@ -0,0 +1,22 @@
+ db MAGMAR ; 126
+
+ db 65, 95, 57, 93, 100, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 167 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F25 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magmar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/magnemite.asm b/data/pokemon/base_stats/magnemite.asm
new file mode 100644
index 000000000..19a85a9a1
--- /dev/null
+++ b/data/pokemon/base_stats/magnemite.asm
@@ -0,0 +1,22 @@
+ db MAGNEMITE ; 081
+
+ db 25, 35, 70, 45, 95, 55
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, STEEL
+ db 190 ; catch rate
+ db 89 ; base exp
+ db NO_ITEM ; item 1
+ db METAL_COAT ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magnemite/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/magneton.asm b/data/pokemon/base_stats/magneton.asm
new file mode 100644
index 000000000..5fdbe68f4
--- /dev/null
+++ b/data/pokemon/base_stats/magneton.asm
@@ -0,0 +1,22 @@
+ db MAGNETON ; 082
+
+ db 50, 60, 95, 70, 120, 70
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, STEEL
+ db 60 ; catch rate
+ db 161 ; base exp
+ db NO_ITEM ; item 1
+ db METAL_COAT ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/magneton/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/mankey.asm b/data/pokemon/base_stats/mankey.asm
new file mode 100644
index 000000000..77cc260d4
--- /dev/null
+++ b/data/pokemon/base_stats/mankey.asm
@@ -0,0 +1,22 @@
+ db MANKEY ; 056
+
+ db 40, 80, 35, 70, 35, 45
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 190 ; catch rate
+ db 74 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mankey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/mantine.asm b/data/pokemon/base_stats/mantine.asm
new file mode 100644
index 000000000..bfe113428
--- /dev/null
+++ b/data/pokemon/base_stats/mantine.asm
@@ -0,0 +1,22 @@
+ db MANTINE ; 226
+
+ db 65, 40, 70, 70, 80, 140
+ ; hp atk def spd sat sdf
+
+ db WATER, FLYING
+ db 25 ; catch rate
+ db 168 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mantine/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/mareep.asm b/data/pokemon/base_stats/mareep.asm
new file mode 100644
index 000000000..cc190b664
--- /dev/null
+++ b/data/pokemon/base_stats/mareep.asm
@@ -0,0 +1,22 @@
+ db MAREEP ; 179
+
+ db 55, 40, 40, 35, 65, 45
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 235 ; catch rate
+ db 59 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mareep/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/marill.asm b/data/pokemon/base_stats/marill.asm
new file mode 100644
index 000000000..73708d1df
--- /dev/null
+++ b/data/pokemon/base_stats/marill.asm
@@ -0,0 +1,22 @@
+ db MARILL ; 183
+
+ db 70, 20, 50, 40, 20, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 58 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/marill/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMPHIBIAN, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/marowak.asm b/data/pokemon/base_stats/marowak.asm
new file mode 100644
index 000000000..3e04b9697
--- /dev/null
+++ b/data/pokemon/base_stats/marowak.asm
@@ -0,0 +1,22 @@
+ db MAROWAK ; 105
+
+ db 60, 80, 110, 45, 50, 80
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 75 ; catch rate
+ db 124 ; base exp
+ db NO_ITEM ; item 1
+ db THICK_CLUB ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/marowak/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, FLAMETHROWER, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/meganium.asm b/data/pokemon/base_stats/meganium.asm
new file mode 100644
index 000000000..cf1125003
--- /dev/null
+++ b/data/pokemon/base_stats/meganium.asm
@@ -0,0 +1,22 @@
+ db MEGANIUM ; 154
+
+ db 80, 82, 100, 80, 83, 100
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 208 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/meganium/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/meowth.asm b/data/pokemon/base_stats/meowth.asm
new file mode 100644
index 000000000..f177f0efd
--- /dev/null
+++ b/data/pokemon/base_stats/meowth.asm
@@ -0,0 +1,22 @@
+ db MEOWTH ; 052
+
+ db 40, 45, 35, 90, 40, 40
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 255 ; catch rate
+ db 69 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/meowth/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/metapod.asm b/data/pokemon/base_stats/metapod.asm
new file mode 100644
index 000000000..e26e31fc5
--- /dev/null
+++ b/data/pokemon/base_stats/metapod.asm
@@ -0,0 +1,22 @@
+ db METAPOD ; 011
+
+ db 50, 20, 55, 30, 25, 25
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 120 ; catch rate
+ db 72 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/metapod/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/mew.asm b/data/pokemon/base_stats/mew.asm
new file mode 100644
index 000000000..e2bac0040
--- /dev/null
+++ b/data/pokemon/base_stats/mew.asm
@@ -0,0 +1,22 @@
+ db MEW ; 151
+
+ db 100, 100, 100, 100, 100, 100
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 64 ; base exp
+ db NO_ITEM ; item 1
+ db MIRACLEBERRY ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mew/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, DRAGONBREATH, THUNDER, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, FLY, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/mewtwo.asm b/data/pokemon/base_stats/mewtwo.asm
new file mode 100644
index 000000000..28da9f404
--- /dev/null
+++ b/data/pokemon/base_stats/mewtwo.asm
@@ -0,0 +1,22 @@
+ db MEWTWO ; 150
+
+ db 106, 110, 90, 130, 154, 90
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 3 ; catch rate
+ db 220 ; base exp
+ db NO_ITEM ; item 1
+ db BERSERK_GENE ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 120 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mewtwo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, IRON_TAIL, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, THUNDERPUNCH, DREAM_EATER, DETECT, REST, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/miltank.asm b/data/pokemon/base_stats/miltank.asm
new file mode 100644
index 000000000..63ed422bc
--- /dev/null
+++ b/data/pokemon/base_stats/miltank.asm
@@ -0,0 +1,22 @@
+ db MILTANK ; 241
+
+ db 95, 80, 105, 100, 40, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 200 ; base exp
+ db MOOMOO_MILK ; item 1
+ db MOOMOO_MILK ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/miltank/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/misdreavus.asm b/data/pokemon/base_stats/misdreavus.asm
new file mode 100644
index 000000000..dc730ad9a
--- /dev/null
+++ b/data/pokemon/base_stats/misdreavus.asm
@@ -0,0 +1,22 @@
+ db MISDREAVUS ; 200
+
+ db 60, 60, 60, 85, 85, 85
+ ; hp atk def spd sat sdf
+
+ db GHOST, GHOST
+ db 45 ; catch rate
+ db 147 ; base exp
+ db NO_ITEM ; item 1
+ db SPELL_TAG ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/misdreavus/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/moltres.asm b/data/pokemon/base_stats/moltres.asm
new file mode 100644
index 000000000..bf70c2821
--- /dev/null
+++ b/data/pokemon/base_stats/moltres.asm
@@ -0,0 +1,22 @@
+ db MOLTRES ; 146
+
+ db 90, 100, 90, 90, 125, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FLYING
+ db 3 ; catch rate
+ db 217 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/moltres/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, SWIFT, DETECT, REST, STEEL_WING, FLY, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/mr__mime.asm b/data/pokemon/base_stats/mr__mime.asm
new file mode 100644
index 000000000..d7042d55a
--- /dev/null
+++ b/data/pokemon/base_stats/mr__mime.asm
@@ -0,0 +1,22 @@
+ db MR__MIME ; 122
+
+ db 40, 45, 65, 90, 100, 120
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 136 ; base exp
+ db NO_ITEM ; item 1
+ db MYSTERYBERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/mr__mime/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn HUMANSHAPE, HUMANSHAPE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, THUNDERPUNCH, DREAM_EATER, REST, ATTRACT, THIEF, FIRE_PUNCH, NIGHTMARE, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/muk.asm b/data/pokemon/base_stats/muk.asm
new file mode 100644
index 000000000..30c6414fd
--- /dev/null
+++ b/data/pokemon/base_stats/muk.asm
@@ -0,0 +1,22 @@
+ db MUK ; 089
+
+ db 105, 105, 75, 50, 65, 100
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 75 ; catch rate
+ db 157 ; base exp
+ db NO_ITEM ; item 1
+ db NUGGET ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/muk/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, CURSE, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FLAMETHROWER, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/murkrow.asm b/data/pokemon/base_stats/murkrow.asm
new file mode 100644
index 000000000..7f459e8aa
--- /dev/null
+++ b/data/pokemon/base_stats/murkrow.asm
@@ -0,0 +1,22 @@
+ db MURKROW ; 198
+
+ db 60, 85, 42, 91, 85, 42
+ ; hp atk def spd sat sdf
+
+ db DARK, FLYING
+ db 30 ; catch rate
+ db 107 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/murkrow/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY
+ ; end
diff --git a/data/pokemon/base_stats/natu.asm b/data/pokemon/base_stats/natu.asm
new file mode 100644
index 000000000..9d00ce7eb
--- /dev/null
+++ b/data/pokemon/base_stats/natu.asm
@@ -0,0 +1,22 @@
+ db NATU ; 177
+
+ db 40, 50, 45, 70, 70, 45
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, FLYING
+ db 190 ; catch rate
+ db 73 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/natu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/nidoking.asm b/data/pokemon/base_stats/nidoking.asm
new file mode 100644
index 000000000..316f71e87
--- /dev/null
+++ b/data/pokemon/base_stats/nidoking.asm
@@ -0,0 +1,22 @@
+ db NIDOKING ; 034
+
+ db 81, 92, 77, 85, 85, 75
+ ; hp atk def spd sat sdf
+
+ db POISON, GROUND
+ db 45 ; catch rate
+ db 195 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoking/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/nidoqueen.asm b/data/pokemon/base_stats/nidoqueen.asm
new file mode 100644
index 000000000..e9d2ae611
--- /dev/null
+++ b/data/pokemon/base_stats/nidoqueen.asm
@@ -0,0 +1,22 @@
+ db NIDOQUEEN ; 031
+
+ db 90, 82, 87, 76, 75, 85
+ ; hp atk def spd sat sdf
+
+ db POISON, GROUND
+ db 45 ; catch rate
+ db 194 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoqueen/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/nidoran_f.asm b/data/pokemon/base_stats/nidoran_f.asm
new file mode 100644
index 000000000..1cd53b17a
--- /dev/null
+++ b/data/pokemon/base_stats/nidoran_f.asm
@@ -0,0 +1,22 @@
+ db NIDORAN_F ; 029
+
+ db 55, 47, 52, 41, 40, 40
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 235 ; catch rate
+ db 59 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoran_f/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/nidoran_m.asm b/data/pokemon/base_stats/nidoran_m.asm
new file mode 100644
index 000000000..cf0c1e1b2
--- /dev/null
+++ b/data/pokemon/base_stats/nidoran_m.asm
@@ -0,0 +1,22 @@
+ db NIDORAN_M ; 032
+
+ db 46, 57, 40, 50, 40, 40
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 235 ; catch rate
+ db 60 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidoran_m/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/nidorina.asm b/data/pokemon/base_stats/nidorina.asm
new file mode 100644
index 000000000..42b3aebf8
--- /dev/null
+++ b/data/pokemon/base_stats/nidorina.asm
@@ -0,0 +1,22 @@
+ db NIDORINA ; 030
+
+ db 70, 62, 67, 56, 55, 55
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 120 ; catch rate
+ db 117 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidorina/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/nidorino.asm b/data/pokemon/base_stats/nidorino.asm
new file mode 100644
index 000000000..f31e8df3d
--- /dev/null
+++ b/data/pokemon/base_stats/nidorino.asm
@@ -0,0 +1,22 @@
+ db NIDORINO ; 033
+
+ db 61, 72, 57, 65, 55, 55
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 120 ; catch rate
+ db 118 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/nidorino/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/ninetales.asm b/data/pokemon/base_stats/ninetales.asm
new file mode 100644
index 000000000..5fd84b886
--- /dev/null
+++ b/data/pokemon/base_stats/ninetales.asm
@@ -0,0 +1,22 @@
+ db NINETALES ; 038
+
+ db 73, 76, 75, 100, 81, 100
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 75 ; catch rate
+ db 178 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ninetales/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/noctowl.asm b/data/pokemon/base_stats/noctowl.asm
new file mode 100644
index 000000000..e2c8565bd
--- /dev/null
+++ b/data/pokemon/base_stats/noctowl.asm
@@ -0,0 +1,22 @@
+ db NOCTOWL ; 164
+
+ db 100, 50, 50, 70, 76, 96
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 90 ; catch rate
+ db 162 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/noctowl/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, STEEL_WING, NIGHTMARE, FLY, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/octillery.asm b/data/pokemon/base_stats/octillery.asm
new file mode 100644
index 000000000..80b5ad97a
--- /dev/null
+++ b/data/pokemon/base_stats/octillery.asm
@@ -0,0 +1,22 @@
+ db OCTILLERY ; 224
+
+ db 75, 105, 75, 45, 105, 75
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 164 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/octillery/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/oddish.asm b/data/pokemon/base_stats/oddish.asm
new file mode 100644
index 000000000..df75f6485
--- /dev/null
+++ b/data/pokemon/base_stats/oddish.asm
@@ -0,0 +1,22 @@
+ db ODDISH ; 043
+
+ db 45, 50, 55, 30, 75, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 255 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/oddish/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/omanyte.asm b/data/pokemon/base_stats/omanyte.asm
new file mode 100644
index 000000000..6278f4e3c
--- /dev/null
+++ b/data/pokemon/base_stats/omanyte.asm
@@ -0,0 +1,22 @@
+ db OMANYTE ; 138
+
+ db 35, 40, 100, 35, 90, 55
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 120 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/omanyte/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/omastar.asm b/data/pokemon/base_stats/omastar.asm
new file mode 100644
index 000000000..d3f3b15e1
--- /dev/null
+++ b/data/pokemon/base_stats/omastar.asm
@@ -0,0 +1,22 @@
+ db OMASTAR ; 139
+
+ db 70, 60, 125, 55, 115, 70
+ ; hp atk def spd sat sdf
+
+ db ROCK, WATER
+ db 45 ; catch rate
+ db 199 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 30 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/omastar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/onix.asm b/data/pokemon/base_stats/onix.asm
new file mode 100644
index 000000000..2fc5bd175
--- /dev/null
+++ b/data/pokemon/base_stats/onix.asm
@@ -0,0 +1,22 @@
+ db ONIX ; 095
+
+ db 35, 45, 160, 70, 30, 45
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 108 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/onix/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, REST, ATTRACT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/paras.asm b/data/pokemon/base_stats/paras.asm
new file mode 100644
index 000000000..d86a51765
--- /dev/null
+++ b/data/pokemon/base_stats/paras.asm
@@ -0,0 +1,22 @@
+ db PARAS ; 046
+
+ db 35, 70, 55, 25, 45, 55
+ ; hp atk def spd sat sdf
+
+ db BUG, GRASS
+ db 190 ; catch rate
+ db 70 ; base exp
+ db TINYMUSHROOM ; item 1
+ db BIG_MUSHROOM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/paras/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/parasect.asm b/data/pokemon/base_stats/parasect.asm
new file mode 100644
index 000000000..5c4320fd3
--- /dev/null
+++ b/data/pokemon/base_stats/parasect.asm
@@ -0,0 +1,22 @@
+ db PARASECT ; 047
+
+ db 60, 95, 80, 30, 60, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, GRASS
+ db 75 ; catch rate
+ db 128 ; base exp
+ db TINYMUSHROOM ; item 1
+ db BIG_MUSHROOM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/parasect/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/persian.asm b/data/pokemon/base_stats/persian.asm
new file mode 100644
index 000000000..fd2677e16
--- /dev/null
+++ b/data/pokemon/base_stats/persian.asm
@@ -0,0 +1,22 @@
+ db PERSIAN ; 053
+
+ db 65, 70, 60, 115, 65, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 90 ; catch rate
+ db 148 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/persian/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/phanpy.asm b/data/pokemon/base_stats/phanpy.asm
new file mode 100644
index 000000000..93a26d43c
--- /dev/null
+++ b/data/pokemon/base_stats/phanpy.asm
@@ -0,0 +1,22 @@
+ db PHANPY ; 231
+
+ db 90, 60, 60, 40, 40, 40
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 120 ; catch rate
+ db 124 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/phanpy/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/pichu.asm b/data/pokemon/base_stats/pichu.asm
new file mode 100644
index 000000000..da497bdf8
--- /dev/null
+++ b/data/pokemon/base_stats/pichu.asm
@@ -0,0 +1,22 @@
+ db PICHU ; 172
+
+ db 20, 40, 15, 60, 35, 35
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 190 ; catch rate
+ db 42 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pichu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/pidgeot.asm b/data/pokemon/base_stats/pidgeot.asm
new file mode 100644
index 000000000..35222d2be
--- /dev/null
+++ b/data/pokemon/base_stats/pidgeot.asm
@@ -0,0 +1,22 @@
+ db PIDGEOT ; 018
+
+ db 83, 80, 75, 91, 70, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 45 ; catch rate
+ db 172 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pidgeot/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/pidgeotto.asm b/data/pokemon/base_stats/pidgeotto.asm
new file mode 100644
index 000000000..13b2d8e0c
--- /dev/null
+++ b/data/pokemon/base_stats/pidgeotto.asm
@@ -0,0 +1,22 @@
+ db PIDGEOTTO ; 017
+
+ db 63, 60, 55, 71, 50, 50
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 120 ; catch rate
+ db 113 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pidgeotto/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/pidgey.asm b/data/pokemon/base_stats/pidgey.asm
new file mode 100644
index 000000000..0290f1717
--- /dev/null
+++ b/data/pokemon/base_stats/pidgey.asm
@@ -0,0 +1,22 @@
+ db PIDGEY ; 016
+
+ db 40, 45, 40, 56, 35, 35
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 255 ; catch rate
+ db 55 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pidgey/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/pikachu.asm b/data/pokemon/base_stats/pikachu.asm
new file mode 100644
index 000000000..cd998aead
--- /dev/null
+++ b/data/pokemon/base_stats/pikachu.asm
@@ -0,0 +1,22 @@
+ db PIKACHU ; 025
+
+ db 35, 55, 30, 90, 50, 40
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 190 ; catch rate
+ db 82 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pikachu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, STRENGTH, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/piloswine.asm b/data/pokemon/base_stats/piloswine.asm
new file mode 100644
index 000000000..dd8bf950b
--- /dev/null
+++ b/data/pokemon/base_stats/piloswine.asm
@@ -0,0 +1,22 @@
+ db PILOSWINE ; 221
+
+ db 100, 100, 80, 50, 60, 60
+ ; hp atk def spd sat sdf
+
+ db ICE, GROUND
+ db 75 ; catch rate
+ db 160 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/piloswine/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/pineco.asm b/data/pokemon/base_stats/pineco.asm
new file mode 100644
index 000000000..2c27a9913
--- /dev/null
+++ b/data/pokemon/base_stats/pineco.asm
@@ -0,0 +1,22 @@
+ db PINECO ; 204
+
+ db 50, 65, 90, 15, 35, 35
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 190 ; catch rate
+ db 60 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pineco/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/pinsir.asm b/data/pokemon/base_stats/pinsir.asm
new file mode 100644
index 000000000..697bba44c
--- /dev/null
+++ b/data/pokemon/base_stats/pinsir.asm
@@ -0,0 +1,22 @@
+ db PINSIR ; 127
+
+ db 65, 125, 100, 85, 55, 70
+ ; hp atk def spd sat sdf
+
+ db BUG, BUG
+ db 45 ; catch rate
+ db 200 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pinsir/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/politoed.asm b/data/pokemon/base_stats/politoed.asm
new file mode 100644
index 000000000..dd11f5080
--- /dev/null
+++ b/data/pokemon/base_stats/politoed.asm
@@ -0,0 +1,22 @@
+ db POLITOED ; 186
+
+ db 90, 75, 75, 70, 90, 100
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 185 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/politoed/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/poliwag.asm b/data/pokemon/base_stats/poliwag.asm
new file mode 100644
index 000000000..fb362450c
--- /dev/null
+++ b/data/pokemon/base_stats/poliwag.asm
@@ -0,0 +1,22 @@
+ db POLIWAG ; 060
+
+ db 40, 50, 40, 90, 40, 40
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 255 ; catch rate
+ db 77 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/poliwag/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/poliwhirl.asm b/data/pokemon/base_stats/poliwhirl.asm
new file mode 100644
index 000000000..d0d461164
--- /dev/null
+++ b/data/pokemon/base_stats/poliwhirl.asm
@@ -0,0 +1,22 @@
+ db POLIWHIRL ; 061
+
+ db 65, 65, 65, 90, 50, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 120 ; catch rate
+ db 131 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/poliwhirl/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/poliwrath.asm b/data/pokemon/base_stats/poliwrath.asm
new file mode 100644
index 000000000..5745daee7
--- /dev/null
+++ b/data/pokemon/base_stats/poliwrath.asm
@@ -0,0 +1,22 @@
+ db POLIWRATH ; 062
+
+ db 90, 85, 95, 70, 70, 90
+ ; hp atk def spd sat sdf
+
+ db WATER, FIGHTING
+ db 45 ; catch rate
+ db 185 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/poliwrath/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn AMPHIBIAN, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/ponyta.asm b/data/pokemon/base_stats/ponyta.asm
new file mode 100644
index 000000000..5c1f77c98
--- /dev/null
+++ b/data/pokemon/base_stats/ponyta.asm
@@ -0,0 +1,22 @@
+ db PONYTA ; 077
+
+ db 50, 85, 55, 90, 65, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 152 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ponyta/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/porygon.asm b/data/pokemon/base_stats/porygon.asm
new file mode 100644
index 000000000..b0c99914b
--- /dev/null
+++ b/data/pokemon/base_stats/porygon.asm
@@ -0,0 +1,22 @@
+ db PORYGON ; 137
+
+ db 65, 60, 70, 40, 85, 75
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 130 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/porygon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/porygon2.asm b/data/pokemon/base_stats/porygon2.asm
new file mode 100644
index 000000000..9e049a156
--- /dev/null
+++ b/data/pokemon/base_stats/porygon2.asm
@@ -0,0 +1,22 @@
+ db PORYGON2 ; 233
+
+ db 85, 80, 90, 60, 105, 95
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 180 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/porygon2/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, REST, THIEF, NIGHTMARE, FLASH, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/primeape.asm b/data/pokemon/base_stats/primeape.asm
new file mode 100644
index 000000000..249f9bee4
--- /dev/null
+++ b/data/pokemon/base_stats/primeape.asm
@@ -0,0 +1,22 @@
+ db PRIMEAPE ; 057
+
+ db 65, 105, 60, 95, 60, 70
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 75 ; catch rate
+ db 149 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/primeape/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/psyduck.asm b/data/pokemon/base_stats/psyduck.asm
new file mode 100644
index 000000000..261fdde99
--- /dev/null
+++ b/data/pokemon/base_stats/psyduck.asm
@@ -0,0 +1,22 @@
+ db PSYDUCK ; 054
+
+ db 50, 52, 48, 55, 65, 50
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 80 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/psyduck/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/pupitar.asm b/data/pokemon/base_stats/pupitar.asm
new file mode 100644
index 000000000..63c0a41a7
--- /dev/null
+++ b/data/pokemon/base_stats/pupitar.asm
@@ -0,0 +1,22 @@
+ db PUPITAR ; 247
+
+ db 70, 84, 70, 51, 65, 70
+ ; hp atk def spd sat sdf
+
+ db ROCK, GROUND
+ db 45 ; catch rate
+ db 144 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/pupitar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DETECT, REST, ATTRACT
+ ; end
diff --git a/data/pokemon/base_stats/quagsire.asm b/data/pokemon/base_stats/quagsire.asm
new file mode 100644
index 000000000..0f49866e7
--- /dev/null
+++ b/data/pokemon/base_stats/quagsire.asm
@@ -0,0 +1,22 @@
+ db QUAGSIRE ; 195
+
+ db 95, 85, 85, 35, 65, 65
+ ; hp atk def spd sat sdf
+
+ db WATER, GROUND
+ db 90 ; catch rate
+ db 137 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/quagsire/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, FLASH, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/quilava.asm b/data/pokemon/base_stats/quilava.asm
new file mode 100644
index 000000000..efadeda06
--- /dev/null
+++ b/data/pokemon/base_stats/quilava.asm
@@ -0,0 +1,22 @@
+ db QUILAVA ; 156
+
+ db 58, 64, 58, 80, 80, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 142 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/quilava/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/qwilfish.asm b/data/pokemon/base_stats/qwilfish.asm
new file mode 100644
index 000000000..70648e5fd
--- /dev/null
+++ b/data/pokemon/base_stats/qwilfish.asm
@@ -0,0 +1,22 @@
+ db QWILFISH ; 211
+
+ db 65, 95, 75, 85, 55, 55
+ ; hp atk def spd sat sdf
+
+ db WATER, POISON
+ db 45 ; catch rate
+ db 100 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/qwilfish/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, DEFENSE_CURL, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/raichu.asm b/data/pokemon/base_stats/raichu.asm
new file mode 100644
index 000000000..cdc5193cd
--- /dev/null
+++ b/data/pokemon/base_stats/raichu.asm
@@ -0,0 +1,22 @@
+ db RAICHU ; 026
+
+ db 60, 90, 55, 100, 90, 80
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 75 ; catch rate
+ db 122 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/raichu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, STRENGTH, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/raikou.asm b/data/pokemon/base_stats/raikou.asm
new file mode 100644
index 000000000..a68f16181
--- /dev/null
+++ b/data/pokemon/base_stats/raikou.asm
@@ -0,0 +1,22 @@
+ db RAIKOU ; 243
+
+ db 90, 85, 75, 115, 115, 100
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 3 ; catch rate
+ db 216 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/raikou/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, STRENGTH, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/rapidash.asm b/data/pokemon/base_stats/rapidash.asm
new file mode 100644
index 000000000..0167e7439
--- /dev/null
+++ b/data/pokemon/base_stats/rapidash.asm
@@ -0,0 +1,22 @@
+ db RAPIDASH ; 078
+
+ db 65, 100, 70, 105, 80, 80
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 60 ; catch rate
+ db 192 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rapidash/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/raticate.asm b/data/pokemon/base_stats/raticate.asm
new file mode 100644
index 000000000..1cfc65906
--- /dev/null
+++ b/data/pokemon/base_stats/raticate.asm
@@ -0,0 +1,22 @@
+ db RATICATE ; 020
+
+ db 55, 81, 60, 97, 50, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 90 ; catch rate
+ db 116 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/raticate/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, CUT, STRENGTH, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/rattata.asm b/data/pokemon/base_stats/rattata.asm
new file mode 100644
index 000000000..13c21e889
--- /dev/null
+++ b/data/pokemon/base_stats/rattata.asm
@@ -0,0 +1,22 @@
+ db RATTATA ; 019
+
+ db 30, 56, 35, 72, 25, 35
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 255 ; catch rate
+ db 57 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rattata/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF
+ ; end
diff --git a/data/pokemon/base_stats/remoraid.asm b/data/pokemon/base_stats/remoraid.asm
new file mode 100644
index 000000000..10ae15479
--- /dev/null
+++ b/data/pokemon/base_stats/remoraid.asm
@@ -0,0 +1,22 @@
+ db REMORAID ; 223
+
+ db 35, 65, 35, 65, 65, 35
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/remoraid/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, REST, ATTRACT, THIEF, SURF, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/rhydon.asm b/data/pokemon/base_stats/rhydon.asm
new file mode 100644
index 000000000..cdcfb4cad
--- /dev/null
+++ b/data/pokemon/base_stats/rhydon.asm
@@ -0,0 +1,22 @@
+ db RHYDON ; 112
+
+ db 105, 130, 120, 40, 45, 45
+ ; hp atk def spd sat sdf
+
+ db GROUND, ROCK
+ db 60 ; catch rate
+ db 204 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rhydon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/rhyhorn.asm b/data/pokemon/base_stats/rhyhorn.asm
new file mode 100644
index 000000000..67d438751
--- /dev/null
+++ b/data/pokemon/base_stats/rhyhorn.asm
@@ -0,0 +1,22 @@
+ db RHYHORN ; 111
+
+ db 80, 85, 95, 25, 30, 30
+ ; hp atk def spd sat sdf
+
+ db GROUND, ROCK
+ db 120 ; catch rate
+ db 135 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/rhyhorn/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, REST, ATTRACT, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/sandshrew.asm b/data/pokemon/base_stats/sandshrew.asm
new file mode 100644
index 000000000..cc0a4c492
--- /dev/null
+++ b/data/pokemon/base_stats/sandshrew.asm
@@ -0,0 +1,22 @@
+ db SANDSHREW ; 027
+
+ db 50, 75, 85, 40, 20, 30
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 255 ; catch rate
+ db 93 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sandshrew/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/sandslash.asm b/data/pokemon/base_stats/sandslash.asm
new file mode 100644
index 000000000..75f66b363
--- /dev/null
+++ b/data/pokemon/base_stats/sandslash.asm
@@ -0,0 +1,22 @@
+ db SANDSLASH ; 028
+
+ db 75, 100, 110, 65, 45, 55
+ ; hp atk def spd sat sdf
+
+ db GROUND, GROUND
+ db 90 ; catch rate
+ db 163 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sandslash/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DEFENSE_CURL, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/scizor.asm b/data/pokemon/base_stats/scizor.asm
new file mode 100644
index 000000000..127110c7a
--- /dev/null
+++ b/data/pokemon/base_stats/scizor.asm
@@ -0,0 +1,22 @@
+ db SCIZOR ; 212
+
+ db 70, 130, 100, 65, 55, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, STEEL
+ db 25 ; catch rate
+ db 200 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/scizor/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/scyther.asm b/data/pokemon/base_stats/scyther.asm
new file mode 100644
index 000000000..4c4779f0f
--- /dev/null
+++ b/data/pokemon/base_stats/scyther.asm
@@ -0,0 +1,22 @@
+ db SCYTHER ; 123
+
+ db 70, 110, 80, 105, 55, 80
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 45 ; catch rate
+ db 187 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/scyther/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FURY_CUTTER, CUT
+ ; end
diff --git a/data/pokemon/base_stats/seadra.asm b/data/pokemon/base_stats/seadra.asm
new file mode 100644
index 000000000..b4dc47c20
--- /dev/null
+++ b/data/pokemon/base_stats/seadra.asm
@@ -0,0 +1,22 @@
+ db SEADRA ; 117
+
+ db 55, 65, 95, 85, 95, 45
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 75 ; catch rate
+ db 155 ; base exp
+ db NO_ITEM ; item 1
+ db DRAGON_SCALE ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/seadra/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, REPTILE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, DRAGONBREATH, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/seaking.asm b/data/pokemon/base_stats/seaking.asm
new file mode 100644
index 000000000..4d6d2f91e
--- /dev/null
+++ b/data/pokemon/base_stats/seaking.asm
@@ -0,0 +1,22 @@
+ db SEAKING ; 119
+
+ db 80, 92, 65, 68, 65, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 60 ; catch rate
+ db 170 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/seaking/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FISH, FISH ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/seel.asm b/data/pokemon/base_stats/seel.asm
new file mode 100644
index 000000000..39b44fad8
--- /dev/null
+++ b/data/pokemon/base_stats/seel.asm
@@ -0,0 +1,22 @@
+ db SEEL ; 086
+
+ db 65, 45, 55, 45, 45, 70
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 100 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/seel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/sentret.asm b/data/pokemon/base_stats/sentret.asm
new file mode 100644
index 000000000..12e120087
--- /dev/null
+++ b/data/pokemon/base_stats/sentret.asm
@@ -0,0 +1,22 @@
+ db SENTRET ; 161
+
+ db 35, 46, 34, 20, 35, 45
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 255 ; catch rate
+ db 57 ; base exp
+ db NO_ITEM ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sentret/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, SURF
+ ; end
diff --git a/data/pokemon/base_stats/shellder.asm b/data/pokemon/base_stats/shellder.asm
new file mode 100644
index 000000000..fb60ff262
--- /dev/null
+++ b/data/pokemon/base_stats/shellder.asm
@@ -0,0 +1,22 @@
+ db SHELLDER ; 090
+
+ db 30, 65, 100, 40, 45, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 190 ; catch rate
+ db 97 ; base exp
+ db PEARL ; item 1
+ db BIG_PEARL ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/shellder/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/shuckle.asm b/data/pokemon/base_stats/shuckle.asm
new file mode 100644
index 000000000..7cd31ad79
--- /dev/null
+++ b/data/pokemon/base_stats/shuckle.asm
@@ -0,0 +1,22 @@
+ db SHUCKLE ; 213
+
+ db 20, 10, 230, 05, 10, 230
+ ; hp atk def spd sat sdf
+
+ db BUG, ROCK
+ db 190 ; catch rate
+ db 80 ; base exp
+ db BERRY ; item 1
+ db BERRY ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/shuckle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, STRENGTH, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/skarmory.asm b/data/pokemon/base_stats/skarmory.asm
new file mode 100644
index 000000000..cf271b39f
--- /dev/null
+++ b/data/pokemon/base_stats/skarmory.asm
@@ -0,0 +1,22 @@
+ db SKARMORY ; 227
+
+ db 65, 80, 140, 70, 40, 70
+ ; hp atk def spd sat sdf
+
+ db STEEL, FLYING
+ db 25 ; catch rate
+ db 168 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/skarmory/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, CUT, FLY
+ ; end
diff --git a/data/pokemon/base_stats/skiploom.asm b/data/pokemon/base_stats/skiploom.asm
new file mode 100644
index 000000000..46bbc8a8c
--- /dev/null
+++ b/data/pokemon/base_stats/skiploom.asm
@@ -0,0 +1,22 @@
+ db SKIPLOOM ; 188
+
+ db 55, 45, 50, 80, 45, 65
+ ; hp atk def spd sat sdf
+
+ db GRASS, FLYING
+ db 120 ; catch rate
+ db 136 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/skiploom/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FAIRY, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/slowbro.asm b/data/pokemon/base_stats/slowbro.asm
new file mode 100644
index 000000000..12e172238
--- /dev/null
+++ b/data/pokemon/base_stats/slowbro.asm
@@ -0,0 +1,22 @@
+ db SLOWBRO ; 080
+
+ db 95, 75, 110, 30, 100, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 75 ; catch rate
+ db 164 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slowbro/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/slowking.asm b/data/pokemon/base_stats/slowking.asm
new file mode 100644
index 000000000..7307ca826
--- /dev/null
+++ b/data/pokemon/base_stats/slowking.asm
@@ -0,0 +1,22 @@
+ db SLOWKING ; 199
+
+ db 95, 75, 80, 30, 100, 110
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 70 ; catch rate
+ db 164 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slowking/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, FURY_CUTTER, NIGHTMARE, SURF, STRENGTH, FLASH, WHIRLPOOL, FLAMETHROWER, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/slowpoke.asm b/data/pokemon/base_stats/slowpoke.asm
new file mode 100644
index 000000000..36bf88af2
--- /dev/null
+++ b/data/pokemon/base_stats/slowpoke.asm
@@ -0,0 +1,22 @@
+ db SLOWPOKE ; 079
+
+ db 90, 65, 65, 15, 40, 40
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 190 ; catch rate
+ db 99 ; base exp
+ db NO_ITEM ; item 1
+ db KINGS_ROCK ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slowpoke/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, STRENGTH, FLASH, FLAMETHROWER, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/slugma.asm b/data/pokemon/base_stats/slugma.asm
new file mode 100644
index 000000000..a760dd40e
--- /dev/null
+++ b/data/pokemon/base_stats/slugma.asm
@@ -0,0 +1,22 @@
+ db SLUGMA ; 218
+
+ db 40, 40, 40, 20, 70, 40
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/slugma/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/smeargle.asm b/data/pokemon/base_stats/smeargle.asm
new file mode 100644
index 000000000..d80443acf
--- /dev/null
+++ b/data/pokemon/base_stats/smeargle.asm
@@ -0,0 +1,22 @@
+ db SMEARGLE ; 235
+
+ db 55, 20, 35, 75, 20, 45
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 106 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/smeargle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/smoochum.asm b/data/pokemon/base_stats/smoochum.asm
new file mode 100644
index 000000000..69d74d5e8
--- /dev/null
+++ b/data/pokemon/base_stats/smoochum.asm
@@ -0,0 +1,22 @@
+ db SMOOCHUM ; 238
+
+ db 45, 30, 15, 65, 85, 65
+ ; hp atk def spd sat sdf
+
+ db ICE, PSYCHIC
+ db 45 ; catch rate
+ db 87 ; base exp
+ db ICE_BERRY ; item 1
+ db ICE_BERRY ; item 2
+ db GENDER_F100 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/smoochum/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SWEET_SCENT, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DREAM_EATER, REST, ATTRACT, THIEF, NIGHTMARE, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/sneasel.asm b/data/pokemon/base_stats/sneasel.asm
new file mode 100644
index 000000000..3abea4b7a
--- /dev/null
+++ b/data/pokemon/base_stats/sneasel.asm
@@ -0,0 +1,22 @@
+ db SNEASEL ; 215
+
+ db 55, 95, 55, 115, 35, 75
+ ; hp atk def spd sat sdf
+
+ db DARK, ICE
+ db 60 ; catch rate
+ db 132 ; base exp
+ db NO_ITEM ; item 1
+ db QUICK_CLAW ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sneasel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/snorlax.asm b/data/pokemon/base_stats/snorlax.asm
new file mode 100644
index 000000000..0efe599c5
--- /dev/null
+++ b/data/pokemon/base_stats/snorlax.asm
@@ -0,0 +1,22 @@
+ db SNORLAX ; 143
+
+ db 160, 110, 65, 30, 65, 110
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 25 ; catch rate
+ db 154 ; base exp
+ db LEFTOVERS ; item 1
+ db LEFTOVERS ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/snorlax/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, EARTHQUAKE, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, FIRE_PUNCH, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/snubbull.asm b/data/pokemon/base_stats/snubbull.asm
new file mode 100644
index 000000000..00d94a3cb
--- /dev/null
+++ b/data/pokemon/base_stats/snubbull.asm
@@ -0,0 +1,22 @@
+ db SNUBBULL ; 209
+
+ db 60, 80, 50, 30, 40, 40
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 190 ; catch rate
+ db 63 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/snubbull/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FIELD, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/spearow.asm b/data/pokemon/base_stats/spearow.asm
new file mode 100644
index 000000000..b94e3559c
--- /dev/null
+++ b/data/pokemon/base_stats/spearow.asm
@@ -0,0 +1,22 @@
+ db SPEAROW ; 021
+
+ db 40, 60, 30, 70, 31, 31
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 255 ; catch rate
+ db 58 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/spearow/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING, FLY
+ ; end
diff --git a/data/pokemon/base_stats/spinarak.asm b/data/pokemon/base_stats/spinarak.asm
new file mode 100644
index 000000000..d9ca7679f
--- /dev/null
+++ b/data/pokemon/base_stats/spinarak.asm
@@ -0,0 +1,22 @@
+ db SPINARAK ; 167
+
+ db 40, 60, 40, 30, 40, 40
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 255 ; catch rate
+ db 54 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/spinarak/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DIG, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/squirtle.asm b/data/pokemon/base_stats/squirtle.asm
new file mode 100644
index 000000000..1d9faa25d
--- /dev/null
+++ b/data/pokemon/base_stats/squirtle.asm
@@ -0,0 +1,22 @@
+ db SQUIRTLE ; 007
+
+ db 44, 48, 65, 43, 50, 64
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 66 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/squirtle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/stantler.asm b/data/pokemon/base_stats/stantler.asm
new file mode 100644
index 000000000..1978739e7
--- /dev/null
+++ b/data/pokemon/base_stats/stantler.asm
@@ -0,0 +1,22 @@
+ db STANTLER ; 234
+
+ db 73, 95, 62, 85, 85, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 165 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/stantler/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, PSYCHIC, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/starmie.asm b/data/pokemon/base_stats/starmie.asm
new file mode 100644
index 000000000..aa60f18d2
--- /dev/null
+++ b/data/pokemon/base_stats/starmie.asm
@@ -0,0 +1,22 @@
+ db STARMIE ; 121
+
+ db 60, 75, 85, 115, 100, 85
+ ; hp atk def spd sat sdf
+
+ db WATER, PSYCHIC
+ db 60 ; catch rate
+ db 207 ; base exp
+ db STARDUST ; item 1
+ db STAR_PIECE ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/starmie/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, REST, ATTRACT, NIGHTMARE, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/staryu.asm b/data/pokemon/base_stats/staryu.asm
new file mode 100644
index 000000000..d0520c3cc
--- /dev/null
+++ b/data/pokemon/base_stats/staryu.asm
@@ -0,0 +1,22 @@
+ db STARYU ; 120
+
+ db 30, 45, 55, 85, 70, 55
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 225 ; catch rate
+ db 106 ; base exp
+ db STARDUST ; item 1
+ db STAR_PIECE ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/staryu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, WATERFALL, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/steelix.asm b/data/pokemon/base_stats/steelix.asm
new file mode 100644
index 000000000..df5d8940c
--- /dev/null
+++ b/data/pokemon/base_stats/steelix.asm
@@ -0,0 +1,22 @@
+ db STEELIX ; 208
+
+ db 75, 85, 200, 30, 55, 65
+ ; hp atk def spd sat sdf
+
+ db STEEL, GROUND
+ db 25 ; catch rate
+ db 196 ; base exp
+ db NO_ITEM ; item 1
+ db METAL_COAT ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/steelix/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/sudowoodo.asm b/data/pokemon/base_stats/sudowoodo.asm
new file mode 100644
index 000000000..1c6c33984
--- /dev/null
+++ b/data/pokemon/base_stats/sudowoodo.asm
@@ -0,0 +1,22 @@
+ db SUDOWOODO ; 185
+
+ db 70, 100, 115, 30, 30, 65
+ ; hp atk def spd sat sdf
+
+ db ROCK, ROCK
+ db 65 ; catch rate
+ db 135 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sudowoodo/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SANDSTORM, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/suicune.asm b/data/pokemon/base_stats/suicune.asm
new file mode 100644
index 000000000..04ece5516
--- /dev/null
+++ b/data/pokemon/base_stats/suicune.asm
@@ -0,0 +1,22 @@
+ db SUICUNE ; 245
+
+ db 100, 75, 115, 85, 90, 115
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 3 ; catch rate
+ db 215 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/suicune/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, CUT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/sunflora.asm b/data/pokemon/base_stats/sunflora.asm
new file mode 100644
index 000000000..97974939c
--- /dev/null
+++ b/data/pokemon/base_stats/sunflora.asm
@@ -0,0 +1,22 @@
+ db SUNFLORA ; 192
+
+ db 75, 75, 55, 30, 105, 85
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 120 ; catch rate
+ db 146 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sunflora/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/sunkern.asm b/data/pokemon/base_stats/sunkern.asm
new file mode 100644
index 000000000..054625425
--- /dev/null
+++ b/data/pokemon/base_stats/sunkern.asm
@@ -0,0 +1,22 @@
+ db SUNKERN ; 191
+
+ db 30, 30, 30, 30, 30, 30
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 235 ; catch rate
+ db 52 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/sunkern/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/swinub.asm b/data/pokemon/base_stats/swinub.asm
new file mode 100644
index 000000000..37f1dd67d
--- /dev/null
+++ b/data/pokemon/base_stats/swinub.asm
@@ -0,0 +1,22 @@
+ db SWINUB ; 220
+
+ db 50, 50, 40, 50, 30, 30
+ ; hp atk def spd sat sdf
+
+ db ICE, GROUND
+ db 225 ; catch rate
+ db 78 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/swinub/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, DETECT, REST, ATTRACT, STRENGTH, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/tangela.asm b/data/pokemon/base_stats/tangela.asm
new file mode 100644
index 000000000..9bb27ffca
--- /dev/null
+++ b/data/pokemon/base_stats/tangela.asm
@@ -0,0 +1,22 @@
+ db TANGELA ; 114
+
+ db 65, 55, 115, 60, 100, 40
+ ; hp atk def spd sat sdf
+
+ db GRASS, GRASS
+ db 45 ; catch rate
+ db 166 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tangela/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, THIEF, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/tauros.asm b/data/pokemon/base_stats/tauros.asm
new file mode 100644
index 000000000..553458e83
--- /dev/null
+++ b/data/pokemon/base_stats/tauros.asm
@@ -0,0 +1,22 @@
+ db TAUROS ; 128
+
+ db 75, 100, 95, 110, 40, 70
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 45 ; catch rate
+ db 211 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tauros/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, THUNDER, EARTHQUAKE, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, REST, ATTRACT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/teddiursa.asm b/data/pokemon/base_stats/teddiursa.asm
new file mode 100644
index 000000000..d636aed87
--- /dev/null
+++ b/data/pokemon/base_stats/teddiursa.asm
@@ -0,0 +1,22 @@
+ db TEDDIURSA ; 216
+
+ db 60, 80, 50, 40, 50, 50
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 120 ; catch rate
+ db 124 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/teddiursa/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/tentacool.asm b/data/pokemon/base_stats/tentacool.asm
new file mode 100644
index 000000000..b13879b47
--- /dev/null
+++ b/data/pokemon/base_stats/tentacool.asm
@@ -0,0 +1,22 @@
+ db TENTACOOL ; 072
+
+ db 40, 40, 35, 70, 50, 100
+ ; hp atk def spd sat sdf
+
+ db WATER, POISON
+ db 190 ; catch rate
+ db 105 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tentacool/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/tentacruel.asm b/data/pokemon/base_stats/tentacruel.asm
new file mode 100644
index 000000000..a678d13a8
--- /dev/null
+++ b/data/pokemon/base_stats/tentacruel.asm
@@ -0,0 +1,22 @@
+ db TENTACRUEL ; 073
+
+ db 80, 70, 65, 100, 80, 120
+ ; hp atk def spd sat sdf
+
+ db WATER, POISON
+ db 60 ; catch rate
+ db 205 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tentacruel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn INVERTEBRATE, INVERTEBRATE ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/togepi.asm b/data/pokemon/base_stats/togepi.asm
new file mode 100644
index 000000000..51249de6d
--- /dev/null
+++ b/data/pokemon/base_stats/togepi.asm
@@ -0,0 +1,22 @@
+ db TOGEPI ; 175
+
+ db 35, 20, 65, 20, 40, 65
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 190 ; catch rate
+ db 74 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/togepi/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, FLASH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/togetic.asm b/data/pokemon/base_stats/togetic.asm
new file mode 100644
index 000000000..4fc94103d
--- /dev/null
+++ b/data/pokemon/base_stats/togetic.asm
@@ -0,0 +1,22 @@
+ db TOGETIC ; 176
+
+ db 55, 40, 85, 40, 80, 105
+ ; hp atk def spd sat sdf
+
+ db NORMAL, FLYING
+ db 75 ; catch rate
+ db 114 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/togetic/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn AVIAN, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, ROCK_SMASH, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, DREAM_EATER, DETECT, REST, ATTRACT, STEEL_WING, FLY, FLASH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/totodile.asm b/data/pokemon/base_stats/totodile.asm
new file mode 100644
index 000000000..1753d5af0
--- /dev/null
+++ b/data/pokemon/base_stats/totodile.asm
@@ -0,0 +1,22 @@
+ db TOTODILE ; 158
+
+ db 50, 65, 64, 43, 44, 48
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 66 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/totodile/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DETECT, REST, ATTRACT, CUT, SURF, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/typhlosion.asm b/data/pokemon/base_stats/typhlosion.asm
new file mode 100644
index 000000000..698a4e0a0
--- /dev/null
+++ b/data/pokemon/base_stats/typhlosion.asm
@@ -0,0 +1,22 @@
+ db TYPHLOSION ; 157
+
+ db 78, 84, 78, 100, 109, 85
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 45 ; catch rate
+ db 209 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/typhlosion/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, DEFENSE_CURL, THUNDERPUNCH, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/tyranitar.asm b/data/pokemon/base_stats/tyranitar.asm
new file mode 100644
index 000000000..b695007f1
--- /dev/null
+++ b/data/pokemon/base_stats/tyranitar.asm
@@ -0,0 +1,22 @@
+ db TYRANITAR ; 248
+
+ db 100, 134, 110, 61, 95, 100
+ ; hp atk def spd sat sdf
+
+ db ROCK, DARK
+ db 45 ; catch rate
+ db 218 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tyranitar/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn MONSTER, MONSTER ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROAR, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, DRAGONBREATH, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, FIRE_BLAST, DETECT, REST, ATTRACT, FIRE_PUNCH, FURY_CUTTER, NIGHTMARE, CUT, SURF, STRENGTH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/tyrogue.asm b/data/pokemon/base_stats/tyrogue.asm
new file mode 100644
index 000000000..4e5e7ee43
--- /dev/null
+++ b/data/pokemon/base_stats/tyrogue.asm
@@ -0,0 +1,22 @@
+ db TYROGUE ; 236
+
+ db 35, 35, 35, 35, 35, 35
+ ; hp atk def spd sat sdf
+
+ db FIGHTING, FIGHTING
+ db 75 ; catch rate
+ db 91 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F0 ; gender
+ db 100 ; unknown
+ db 25 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/tyrogue/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/umbreon.asm b/data/pokemon/base_stats/umbreon.asm
new file mode 100644
index 000000000..dbda2b3b6
--- /dev/null
+++ b/data/pokemon/base_stats/umbreon.asm
@@ -0,0 +1,22 @@
+ db UMBREON ; 197
+
+ db 95, 65, 110, 65, 60, 130
+ ; hp atk def spd sat sdf
+
+ db DARK, DARK
+ db 45 ; catch rate
+ db 197 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/umbreon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, NIGHTMARE, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/unown.asm b/data/pokemon/base_stats/unown.asm
new file mode 100644
index 000000000..0b13f3eca
--- /dev/null
+++ b/data/pokemon/base_stats/unown.asm
@@ -0,0 +1,22 @@
+ db UNOWN ; 201
+
+ db 48, 72, 48, 48, 72, 48
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 225 ; catch rate
+ db 61 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 40 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/unown_a/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/ursaring.asm b/data/pokemon/base_stats/ursaring.asm
new file mode 100644
index 000000000..7aa8a4265
--- /dev/null
+++ b/data/pokemon/base_stats/ursaring.asm
@@ -0,0 +1,22 @@
+ db URSARING ; 217
+
+ db 90, 130, 75, 55, 75, 75
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 60 ; catch rate
+ db 189 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/ursaring/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SWIFT, DEFENSE_CURL, THUNDERPUNCH, REST, ATTRACT, THIEF, FIRE_PUNCH, FURY_CUTTER, CUT, STRENGTH
+ ; end
diff --git a/data/pokemon/base_stats/vaporeon.asm b/data/pokemon/base_stats/vaporeon.asm
new file mode 100644
index 000000000..0e55a1946
--- /dev/null
+++ b/data/pokemon/base_stats/vaporeon.asm
@@ -0,0 +1,22 @@
+ db VAPOREON ; 134
+
+ db 130, 65, 60, 65, 110, 95
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 196 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 35 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/vaporeon/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, SURF, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/venomoth.asm b/data/pokemon/base_stats/venomoth.asm
new file mode 100644
index 000000000..4e813b3aa
--- /dev/null
+++ b/data/pokemon/base_stats/venomoth.asm
@@ -0,0 +1,22 @@
+ db VENOMOTH ; 049
+
+ db 70, 65, 60, 90, 90, 75
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 75 ; catch rate
+ db 138 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/venomoth/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/venonat.asm b/data/pokemon/base_stats/venonat.asm
new file mode 100644
index 000000000..5db99f8a1
--- /dev/null
+++ b/data/pokemon/base_stats/venonat.asm
@@ -0,0 +1,22 @@
+ db VENONAT ; 048
+
+ db 60, 55, 50, 45, 40, 55
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 190 ; catch rate
+ db 75 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/venonat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SWIFT, REST, ATTRACT, THIEF
+ ; end
diff --git a/data/pokemon/base_stats/venusaur.asm b/data/pokemon/base_stats/venusaur.asm
new file mode 100644
index 000000000..f5d6a3a33
--- /dev/null
+++ b/data/pokemon/base_stats/venusaur.asm
@@ -0,0 +1,22 @@
+ db VENUSAUR ; 003
+
+ db 80, 82, 83, 80, 100, 100
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 208 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/venusaur/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, PLANT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROAR, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, FURY_CUTTER, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/victreebel.asm b/data/pokemon/base_stats/victreebel.asm
new file mode 100644
index 000000000..0efade3ad
--- /dev/null
+++ b/data/pokemon/base_stats/victreebel.asm
@@ -0,0 +1,22 @@
+ db VICTREEBEL ; 071
+
+ db 80, 105, 65, 70, 100, 60
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 191 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/victreebel/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/vileplume.asm b/data/pokemon/base_stats/vileplume.asm
new file mode 100644
index 000000000..12170e167
--- /dev/null
+++ b/data/pokemon/base_stats/vileplume.asm
@@ -0,0 +1,22 @@
+ db VILEPLUME ; 045
+
+ db 75, 80, 85, 50, 100, 90
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 45 ; catch rate
+ db 184 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/vileplume/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/voltorb.asm b/data/pokemon/base_stats/voltorb.asm
new file mode 100644
index 000000000..7c2255729
--- /dev/null
+++ b/data/pokemon/base_stats/voltorb.asm
@@ -0,0 +1,22 @@
+ db VOLTORB ; 100
+
+ db 40, 30, 50, 100, 55, 55
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, ELECTRIC
+ db 190 ; catch rate
+ db 103 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/voltorb/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INANIMATE, INANIMATE ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, REST, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/vulpix.asm b/data/pokemon/base_stats/vulpix.asm
new file mode 100644
index 000000000..9cea11f93
--- /dev/null
+++ b/data/pokemon/base_stats/vulpix.asm
@@ -0,0 +1,22 @@
+ db VULPIX ; 037
+
+ db 38, 41, 40, 65, 50, 65
+ ; hp atk def spd sat sdf
+
+ db FIRE, FIRE
+ db 190 ; catch rate
+ db 63 ; base exp
+ db BURNT_BERRY ; item 1
+ db BURNT_BERRY ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/vulpix/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn FIELD, FIELD ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, FIRE_BLAST, SWIFT, REST, ATTRACT, FLAMETHROWER
+ ; end
diff --git a/data/pokemon/base_stats/wartortle.asm b/data/pokemon/base_stats/wartortle.asm
new file mode 100644
index 000000000..437342a8b
--- /dev/null
+++ b/data/pokemon/base_stats/wartortle.asm
@@ -0,0 +1,22 @@
+ db WARTORTLE ; 008
+
+ db 59, 63, 80, 58, 65, 80
+ ; hp atk def spd sat sdf
+
+ db WATER, WATER
+ db 45 ; catch rate
+ db 143 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F12_5 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wartortle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn MONSTER, AMPHIBIAN ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, BLIZZARD, ICY_WIND, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, DEFENSE_CURL, REST, ATTRACT, SURF, STRENGTH, WHIRLPOOL, WATERFALL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/weedle.asm b/data/pokemon/base_stats/weedle.asm
new file mode 100644
index 000000000..b47a720ec
--- /dev/null
+++ b/data/pokemon/base_stats/weedle.asm
@@ -0,0 +1,22 @@
+ db WEEDLE ; 013
+
+ db 40, 35, 30, 50, 20, 20
+ ; hp atk def spd sat sdf
+
+ db BUG, POISON
+ db 255 ; catch rate
+ db 52 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/weedle/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/weepinbell.asm b/data/pokemon/base_stats/weepinbell.asm
new file mode 100644
index 000000000..4a70c5bb2
--- /dev/null
+++ b/data/pokemon/base_stats/weepinbell.asm
@@ -0,0 +1,22 @@
+ db WEEPINBELL ; 070
+
+ db 65, 90, 50, 55, 85, 45
+ ; hp atk def spd sat sdf
+
+ db GRASS, POISON
+ db 120 ; catch rate
+ db 151 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/weepinbell/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_SLOW ; growth rate
+ dn PLANT, PLANT ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SWEET_SCENT, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, REST, ATTRACT, CUT, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/weezing.asm b/data/pokemon/base_stats/weezing.asm
new file mode 100644
index 000000000..49161c69b
--- /dev/null
+++ b/data/pokemon/base_stats/weezing.asm
@@ -0,0 +1,22 @@
+ db WEEZING ; 110
+
+ db 65, 90, 120, 60, 85, 70
+ ; hp atk def spd sat sdf
+
+ db POISON, POISON
+ db 60 ; catch rate
+ db 173 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/weezing/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROLLOUT, TOXIC, ZAP_CANNON, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, ENDURE, FRUSTRATION, THUNDER, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, FIRE_BLAST, REST, ATTRACT, THIEF, FLAMETHROWER, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/wigglytuff.asm b/data/pokemon/base_stats/wigglytuff.asm
new file mode 100644
index 000000000..ff1910c0e
--- /dev/null
+++ b/data/pokemon/base_stats/wigglytuff.asm
@@ -0,0 +1,22 @@
+ db WIGGLYTUFF ; 040
+
+ db 140, 70, 45, 45, 75, 50
+ ; hp atk def spd sat sdf
+
+ db NORMAL, NORMAL
+ db 50 ; catch rate
+ db 109 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F75 ; gender
+ db 100 ; unknown
+ db 10 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wigglytuff/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db FAST ; growth rate
+ dn FAIRY, FAIRY ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ZAP_CANNON, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, BLIZZARD, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, SOLARBEAM, THUNDER, RETURN, PSYCHIC, SHADOW_BALL, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, FIRE_BLAST, DEFENSE_CURL, THUNDERPUNCH, DREAM_EATER, DETECT, REST, ATTRACT, FIRE_PUNCH, NIGHTMARE, STRENGTH, FLASH, FLAMETHROWER, THUNDERBOLT, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/wobbuffet.asm b/data/pokemon/base_stats/wobbuffet.asm
new file mode 100644
index 000000000..c476dd828
--- /dev/null
+++ b/data/pokemon/base_stats/wobbuffet.asm
@@ -0,0 +1,22 @@
+ db WOBBUFFET ; 202
+
+ db 190, 33, 58, 33, 33, 58
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, PSYCHIC
+ db 45 ; catch rate
+ db 177 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wobbuffet/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMORPHOUS, AMORPHOUS ; egg groups
+
+ ; tmhm
+ tmhm
+ ; end
diff --git a/data/pokemon/base_stats/wooper.asm b/data/pokemon/base_stats/wooper.asm
new file mode 100644
index 000000000..6e621fe4b
--- /dev/null
+++ b/data/pokemon/base_stats/wooper.asm
@@ -0,0 +1,22 @@
+ db WOOPER ; 194
+
+ db 55, 45, 45, 15, 25, 25
+ ; hp atk def spd sat sdf
+
+ db WATER, GROUND
+ db 255 ; catch rate
+ db 52 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/wooper/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AMPHIBIAN, FIELD ; egg groups
+
+ ; tmhm
+ tmhm DYNAMICPUNCH, HEADBUTT, CURSE, ROLLOUT, TOXIC, ROCK_SMASH, HIDDEN_POWER, SNORE, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, IRON_TAIL, EARTHQUAKE, RETURN, DIG, MUD_SLAP, DOUBLE_TEAM, ICE_PUNCH, SWAGGER, SLEEP_TALK, SLUDGE_BOMB, SANDSTORM, DEFENSE_CURL, REST, ATTRACT, SURF, FLASH, WHIRLPOOL, ICE_BEAM
+ ; end
diff --git a/data/pokemon/base_stats/xatu.asm b/data/pokemon/base_stats/xatu.asm
new file mode 100644
index 000000000..77388858e
--- /dev/null
+++ b/data/pokemon/base_stats/xatu.asm
@@ -0,0 +1,22 @@
+ db XATU ; 178
+
+ db 65, 75, 70, 95, 95, 70
+ ; hp atk def spd sat sdf
+
+ db PSYCHIC, FLYING
+ db 75 ; catch rate
+ db 171 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/xatu/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, PSYCH_UP, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, PSYCHIC, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DREAM_EATER, DETECT, REST, ATTRACT, THIEF, NIGHTMARE, FLY, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/yanma.asm b/data/pokemon/base_stats/yanma.asm
new file mode 100644
index 000000000..98449c720
--- /dev/null
+++ b/data/pokemon/base_stats/yanma.asm
@@ -0,0 +1,22 @@
+ db YANMA ; 193
+
+ db 65, 65, 45, 95, 75, 45
+ ; hp atk def spd sat sdf
+
+ db BUG, FLYING
+ db 75 ; catch rate
+ db 147 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 20 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/yanma/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn INSECT, INSECT ; egg groups
+
+ ; tmhm
+ tmhm HEADBUTT, CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, SOLARBEAM, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, FLASH
+ ; end
diff --git a/data/pokemon/base_stats/zapdos.asm b/data/pokemon/base_stats/zapdos.asm
new file mode 100644
index 000000000..44c1a8e82
--- /dev/null
+++ b/data/pokemon/base_stats/zapdos.asm
@@ -0,0 +1,22 @@
+ db ZAPDOS ; 145
+
+ db 90, 90, 85, 100, 125, 90
+ ; hp atk def spd sat sdf
+
+ db ELECTRIC, FLYING
+ db 3 ; catch rate
+ db 216 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDERLESS ; gender
+ db 100 ; unknown
+ db 80 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/zapdos/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db SLOW ; growth rate
+ dn NO_EGGS, NO_EGGS ; egg groups
+
+ ; tmhm
+ tmhm CURSE, ROAR, TOXIC, ZAP_CANNON, ROCK_SMASH, HIDDEN_POWER, SUNNY_DAY, SNORE, HYPER_BEAM, PROTECT, RAIN_DANCE, ENDURE, FRUSTRATION, THUNDER, RETURN, MUD_SLAP, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SANDSTORM, SWIFT, DETECT, REST, STEEL_WING, FLY, FLASH, THUNDERBOLT
+ ; end
diff --git a/data/pokemon/base_stats/zubat.asm b/data/pokemon/base_stats/zubat.asm
new file mode 100644
index 000000000..e8fd33ea2
--- /dev/null
+++ b/data/pokemon/base_stats/zubat.asm
@@ -0,0 +1,22 @@
+ db ZUBAT ; 041
+
+ db 40, 45, 35, 55, 30, 40
+ ; hp atk def spd sat sdf
+
+ db POISON, FLYING
+ db 255 ; catch rate
+ db 54 ; base exp
+ db NO_ITEM ; item 1
+ db NO_ITEM ; item 2
+ db GENDER_F50 ; gender
+ db 100 ; unknown
+ db 15 ; step cycles to hatch
+ db 5 ; unknown
+ INCBIN "gfx/pics/zubat/front.dimensions"
+ db 0, 0, 0, 0 ; padding
+ db MEDIUM_FAST ; growth rate
+ dn AVIAN, AVIAN ; egg groups
+
+ ; tmhm
+ tmhm CURSE, TOXIC, HIDDEN_POWER, SUNNY_DAY, SNORE, PROTECT, GIGA_DRAIN, ENDURE, FRUSTRATION, RETURN, DOUBLE_TEAM, SWAGGER, SLEEP_TALK, SWIFT, DETECT, REST, ATTRACT, THIEF, STEEL_WING
+ ; end
diff --git a/data/pokemon/cry_headers.asm b/data/pokemon/cry_headers.asm
new file mode 100644
index 000000000..0651fa7f1
--- /dev/null
+++ b/data/pokemon/cry_headers.asm
@@ -0,0 +1,259 @@
+CryHeaders:: ; f2787
+; entries correspond to constants/pokemon_constants.asm
+; index, pitch, length
+BulbasaurCryHeader: cry_header CRY_BULBASAUR, $080, $081
+IvysaurCryHeader: cry_header CRY_BULBASAUR, $020, $100
+VenusaurCryHeader: cry_header CRY_BULBASAUR, $000, $140
+CharmanderCryHeader: cry_header CRY_CHARMANDER, $060, $0c0
+CharmeleonCryHeader: cry_header CRY_CHARMANDER, $020, $0c0
+CharizardCryHeader: cry_header CRY_CHARMANDER, $000, $100
+SquirtleCryHeader: cry_header CRY_SQUIRTLE, $060, $0c0
+WartortleCryHeader: cry_header CRY_SQUIRTLE, $020, $0c0
+BlastoiseCryHeader: cry_header CRY_BLASTOISE, $000, $100
+CaterpieCryHeader: cry_header CRY_CATERPIE, $080, $0a0
+MetapodCryHeader: cry_header CRY_METAPOD, $0cc, $081
+ButterfreeCryHeader: cry_header CRY_CATERPIE, $077, $0c0
+WeedleCryHeader: cry_header CRY_WEEDLE, $0ee, $081
+KakunaCryHeader: cry_header CRY_BLASTOISE, $0ff, $081
+BeedrillCryHeader: cry_header CRY_BLASTOISE, $060, $100
+PidgeyCryHeader: cry_header CRY_PIDGEY, $0df, $084
+PidgeottoCryHeader: cry_header CRY_PIDGEOTTO, $028, $140
+PidgeotCryHeader: cry_header CRY_PIDGEOTTO, $011, $17f
+RattataCryHeader: cry_header CRY_RATTATA, $000, $100
+RaticateCryHeader: cry_header CRY_RATTATA, $020, $17f
+SpearowCryHeader: cry_header CRY_SPEAROW, $000, $100
+FearowCryHeader: cry_header CRY_FEAROW, $040, $120
+EkansCryHeader: cry_header CRY_EKANS, $012, $0c0
+ArbokCryHeader: cry_header CRY_EKANS, $0e0, $090
+PikachuCryHeader: cry_header CRY_BULBASAUR, $0ee, $081
+RaichuCryHeader: cry_header CRY_RAICHU, $0ee, $088
+SandshrewCryHeader: cry_header CRY_NIDORAN_M, $020, $0c0
+SandslashCryHeader: cry_header CRY_NIDORAN_M, $0ff, $17f
+NidoranFCryHeader: cry_header CRY_NIDORAN_F, $000, $100
+NidorinaCryHeader: cry_header CRY_NIDORAN_F, $02c, $160
+NidoqueenCryHeader: cry_header CRY_NIDOQUEEN, $000, $100
+NidoranMCryHeader: cry_header CRY_NIDORAN_M, $000, $100
+NidorinoCryHeader: cry_header CRY_NIDORAN_M, $02c, $140
+NidokingCryHeader: cry_header CRY_RAICHU, $000, $100
+ClefairyCryHeader: cry_header CRY_CLEFAIRY, $0cc, $081
+ClefableCryHeader: cry_header CRY_CLEFAIRY, $0aa, $0a0
+VulpixCryHeader: cry_header CRY_VULPIX, $04f, $090
+NinetalesCryHeader: cry_header CRY_VULPIX, $088, $0e0
+JigglypuffCryHeader: cry_header CRY_PIDGEY, $0ff, $0b5
+WigglytuffCryHeader: cry_header CRY_PIDGEY, $068, $0e0
+ZubatCryHeader: cry_header CRY_SQUIRTLE, $0e0, $100
+GolbatCryHeader: cry_header CRY_SQUIRTLE, $0fa, $100
+OddishCryHeader: cry_header CRY_ODDISH, $0dd, $081
+GloomCryHeader: cry_header CRY_ODDISH, $0aa, $0c0
+VileplumeCryHeader: cry_header CRY_VILEPLUME, $022, $17f
+ParasCryHeader: cry_header CRY_PARAS, $020, $160
+ParasectCryHeader: cry_header CRY_PARAS, $042, $17f
+VenonatCryHeader: cry_header CRY_VENONAT, $044, $0c0
+VenomothCryHeader: cry_header CRY_VENONAT, $029, $100
+DiglettCryHeader: cry_header CRY_DIGLETT, $0aa, $081
+DugtrioCryHeader: cry_header CRY_DIGLETT, $02a, $090
+MeowthCryHeader: cry_header CRY_CLEFAIRY, $077, $090
+PersianCryHeader: cry_header CRY_CLEFAIRY, $099, $17f
+PsyduckCryHeader: cry_header CRY_PSYDUCK, $020, $0e0
+GolduckCryHeader: cry_header CRY_PSYDUCK, $0ff, $0c0
+MankeyCryHeader: cry_header CRY_NIDOQUEEN, $0dd, $0e0
+PrimeapeCryHeader: cry_header CRY_NIDOQUEEN, $0af, $0c0
+GrowlitheCryHeader: cry_header CRY_GROWLITHE, $020, $0c0
+ArcanineCryHeader: cry_header CRY_WEEDLE, $000, $100
+PoliwagCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
+PoliwhirlCryHeader: cry_header CRY_PIDGEY, $077, $0e0
+PoliwrathCryHeader: cry_header CRY_PIDGEY, $000, $17f
+AbraCryHeader: cry_header CRY_METAPOD, $0c0, $081
+KadabraCryHeader: cry_header CRY_METAPOD, $0a8, $140
+AlakazamCryHeader: cry_header CRY_METAPOD, $098, $17f
+MachopCryHeader: cry_header CRY_GROWLITHE, $0ee, $081
+MachokeCryHeader: cry_header CRY_GROWLITHE, $048, $0e0
+MachampCryHeader: cry_header CRY_GROWLITHE, $008, $140
+BellsproutCryHeader: cry_header CRY_PSYDUCK, $055, $081
+WeepinbellCryHeader: cry_header CRY_WEEPINBELL, $044, $0a0
+VictreebelCryHeader: cry_header CRY_WEEPINBELL, $066, $14c
+TentacoolCryHeader: cry_header CRY_VENONAT, $000, $100
+TentacruelCryHeader: cry_header CRY_VENONAT, $0ee, $17f
+GeodudeCryHeader: cry_header CRY_VULPIX, $0f0, $090
+GravelerCryHeader: cry_header CRY_VULPIX, $000, $100
+GolemCryHeader: cry_header CRY_GOLEM, $0e0, $0c0
+PonytaCryHeader: cry_header CRY_WEEPINBELL, $000, $100
+RapidashCryHeader: cry_header CRY_WEEPINBELL, $020, $140
+SlowpokeCryHeader: cry_header CRY_SLOWPOKE, $000, $100
+SlowbroCryHeader: cry_header CRY_GROWLITHE, $000, $100
+MagnemiteCryHeader: cry_header CRY_METAPOD, $080, $0e0
+MagnetonCryHeader: cry_header CRY_METAPOD, $020, $140
+FarfetchDCryHeader: cry_header CRY_SPEAROW, $0dd, $081
+DoduoCryHeader: cry_header CRY_DIGLETT, $0bb, $081
+DodrioCryHeader: cry_header CRY_DIGLETT, $099, $0a0
+SeelCryHeader: cry_header CRY_SEEL, $088, $140
+DewgongCryHeader: cry_header CRY_SEEL, $023, $17f
+GrimerCryHeader: cry_header CRY_GRIMER, $000, $100
+MukCryHeader: cry_header CRY_MUK, $0ef, $17f
+ShellderCryHeader: cry_header CRY_FEAROW, $000, $100
+CloysterCryHeader: cry_header CRY_FEAROW, $06f, $160
+GastlyCryHeader: cry_header CRY_METAPOD, $000, $100
+HaunterCryHeader: cry_header CRY_METAPOD, $030, $0c0
+GengarCryHeader: cry_header CRY_MUK, $000, $17f
+OnixCryHeader: cry_header CRY_EKANS, $0ff, $140
+DrowzeeCryHeader: cry_header CRY_DROWZEE, $088, $0a0
+HypnoCryHeader: cry_header CRY_DROWZEE, $0ee, $0c0
+KrabbyCryHeader: cry_header CRY_KRABBY, $020, $160
+KinglerCryHeader: cry_header CRY_KRABBY, $0ee, $160
+VoltorbCryHeader: cry_header CRY_VOLTORB, $0ed, $100
+ElectrodeCryHeader: cry_header CRY_VOLTORB, $0a8, $110
+ExeggcuteCryHeader: cry_header CRY_DIGLETT, $000, $100
+ExeggutorCryHeader: cry_header CRY_DROWZEE, $000, $100
+CuboneCryHeader: cry_header CRY_CLEFAIRY, $000, $100
+MarowakCryHeader: cry_header CRY_ODDISH, $04f, $0e0
+HitmonleeCryHeader: cry_header CRY_GOLEM, $080, $140
+HitmonchanCryHeader: cry_header CRY_SEEL, $0ee, $140
+LickitungCryHeader: cry_header CRY_SEEL, $000, $100
+KoffingCryHeader: cry_header CRY_GOLEM, $0e6, $15d
+WeezingCryHeader: cry_header CRY_GOLEM, $0ff, $17f
+RhyhornCryHeader: cry_header CRY_CHARMANDER, $000, $100
+RhydonCryHeader: cry_header CRY_RHYDON, $000, $100
+ChanseyCryHeader: cry_header CRY_PIDGEOTTO, $00a, $140
+TangelaCryHeader: cry_header CRY_GOLEM, $000, $100
+KangaskhanCryHeader: cry_header CRY_KANGASKHAN, $000, $100
+HorseaCryHeader: cry_header CRY_CLEFAIRY, $099, $090
+SeadraCryHeader: cry_header CRY_CLEFAIRY, $03c, $081
+GoldeenCryHeader: cry_header CRY_CATERPIE, $080, $0c0
+SeakingCryHeader: cry_header CRY_CATERPIE, $010, $17f
+StaryuCryHeader: cry_header CRY_PARAS, $002, $0a0
+StarmieCryHeader: cry_header CRY_PARAS, $000, $100
+MrMimeCryHeader: cry_header CRY_KRABBY, $008, $0c0
+ScytherCryHeader: cry_header CRY_CATERPIE, $000, $100
+JynxCryHeader: cry_header CRY_DROWZEE, $0ff, $17f
+ElectabuzzCryHeader: cry_header CRY_VOLTORB, $08f, $17f
+MagmarCryHeader: cry_header CRY_CHARMANDER, $0ff, $0b0
+PinsirCryHeader: cry_header CRY_PIDGEOTTO, $000, $100
+TaurosCryHeader: cry_header CRY_SQUIRTLE, $011, $0c0
+MagikarpCryHeader: cry_header CRY_EKANS, $080, $080
+GyaradosCryHeader: cry_header CRY_EKANS, $000, $100
+LaprasCryHeader: cry_header CRY_LAPRAS, $000, $100
+DittoCryHeader: cry_header CRY_PIDGEY, $0ff, $17f
+EeveeCryHeader: cry_header CRY_VENONAT, $088, $0e0
+VaporeonCryHeader: cry_header CRY_VENONAT, $0aa, $17f
+JolteonCryHeader: cry_header CRY_VENONAT, $03d, $100
+FlareonCryHeader: cry_header CRY_VENONAT, $010, $0a0
+PorygonCryHeader: cry_header CRY_WEEPINBELL, $0aa, $17f
+OmanyteCryHeader: cry_header CRY_GROWLITHE, $0f0, $081
+OmastarCryHeader: cry_header CRY_GROWLITHE, $0ff, $0c0
+KabutoCryHeader: cry_header CRY_CATERPIE, $0bb, $0c0
+KabutopsCryHeader: cry_header CRY_FEAROW, $0ee, $081
+AerodactylCryHeader: cry_header CRY_VILEPLUME, $020, $170
+SnorlaxCryHeader: cry_header CRY_GRIMER, $055, $081
+ArticunoCryHeader: cry_header CRY_RAICHU, $080, $0c0
+ZapdosCryHeader: cry_header CRY_FEAROW, $0ff, $100
+MoltresCryHeader: cry_header CRY_RAICHU, $0f8, $0c0
+DratiniCryHeader: cry_header CRY_BULBASAUR, $060, $0c0
+DragonairCryHeader: cry_header CRY_BULBASAUR, $040, $100
+DragoniteCryHeader: cry_header CRY_BULBASAUR, $03c, $140
+MewtwoCryHeader: cry_header CRY_PARAS, $099, $17f
+MewCryHeader: cry_header CRY_PARAS, $0ee, $17f
+ChikoritaCryHeader: cry_header CRY_CHIKORITA, -$010, $0b0
+BayleefCryHeader: cry_header CRY_CHIKORITA, -$022, $120
+MeganiumCryHeader: cry_header CRY_CHIKORITA, -$0b7, $200
+CyndaquilCryHeader: cry_header CRY_CYNDAQUIL, $347, $080
+QuilavaCryHeader: cry_header CRY_CYNDAQUIL, $321, $120
+TyphlosionCryHeader: cry_header CRY_TYPHLOSION, $f00, $0d4
+TotodileCryHeader: cry_header CRY_TOTODILE, $46c, $0e8
+CroconawCryHeader: cry_header CRY_TOTODILE, $440, $110
+FeraligatrCryHeader: cry_header CRY_TOTODILE, $3fc, $180
+SentretCryHeader: cry_header CRY_SENTRET, $08a, $0b8
+FurretCryHeader: cry_header CRY_SENTRET, $06b, $102
+HoothootCryHeader: cry_header CRY_HOOTHOOT, $091, $0d8
+NoctowlCryHeader: cry_header CRY_HOOTHOOT, $000, $1a0
+LedybaCryHeader: cry_header CRY_LEDYBA, $000, $0de
+LedianCryHeader: cry_header CRY_LEDYBA, -$096, $138
+SpinarakCryHeader: cry_header CRY_SPINARAK, $011, $200
+AriadosCryHeader: cry_header CRY_SPINARAK, -$0ae, $1e2
+CrobatCryHeader: cry_header CRY_SQUIRTLE, -$010, $140
+ChinchouCryHeader: cry_header CRY_CYNDAQUIL, $3c9, $140
+LanturnCryHeader: cry_header CRY_CYNDAQUIL, $2d0, $110
+PichuCryHeader: cry_header CRY_PICHU, $000, $140
+CleffaCryHeader: cry_header CRY_CLEFFA, $061, $091
+IgglybuffCryHeader: cry_header CRY_CHIKORITA, $0e8, $0e8
+TogepiCryHeader: cry_header CRY_TOGEPI, $010, $100
+TogeticCryHeader: cry_header CRY_TOGETIC, $03b, $038
+NatuCryHeader: cry_header CRY_NATU, -$067, $100
+XatuCryHeader: cry_header CRY_NATU, -$0a7, $168
+MareepCryHeader: cry_header CRY_MAREEP, $022, $0d8
+FlaaffyCryHeader: cry_header CRY_MAREEP, -$007, $180
+AmpharosCryHeader: cry_header CRY_AMPHAROS, -$07c, $0e8
+BellossomCryHeader: cry_header CRY_CLEFFA, $084, $150
+MarillCryHeader: cry_header CRY_MARILL, $11b, $120
+AzumarillCryHeader: cry_header CRY_MARILL, $0b6, $180
+SudowoodoCryHeader: cry_header CRY_CLEFFA, $f40, $180
+PolitoedCryHeader: cry_header CRY_CLEFFA, -$2a3, $1c8
+HoppipCryHeader: cry_header CRY_CLEFFA, $03b, $0c8
+SkiploomCryHeader: cry_header CRY_CLEFFA, $027, $138
+JumpluffCryHeader: cry_header CRY_CLEFFA, $000, $180
+AipomCryHeader: cry_header CRY_AIPOM, -$051, $0e8
+SunkernCryHeader: cry_header CRY_MARILL, $12b, $0b8
+SunfloraCryHeader: cry_header CRY_SUNFLORA, -$020, $180
+YanmaCryHeader: cry_header CRY_TOTODILE, $031, $0c8
+WooperCryHeader: cry_header CRY_WOOPER, $093, $0af
+QuagsireCryHeader: cry_header CRY_WOOPER, -$0c6, $140
+EspeonCryHeader: cry_header CRY_AIPOM, $0a2, $140
+UmbreonCryHeader: cry_header CRY_VENONAT, -$0e9, $0f0
+MurkrowCryHeader: cry_header CRY_MARILL, -$01f, $180
+SlowkingCryHeader: cry_header CRY_SLOWKING, $104, $200
+MisdreavusCryHeader: cry_header CRY_HOOTHOOT, $130, $0e8
+UnownCryHeader: cry_header CRY_HOOTHOOT, $162, $100
+WobbuffetCryHeader: cry_header CRY_AMPHAROS, $27b, $144
+GirafarigCryHeader: cry_header CRY_GIRAFARIG, $041, $200
+PinecoCryHeader: cry_header CRY_SLOWKING, $080, $100
+ForretressCryHeader: cry_header CRY_SLOWKING, $000, $180
+DunsparceCryHeader: cry_header CRY_DUNSPARCE, $1c4, $100
+GligarCryHeader: cry_header CRY_GLIGAR, -$102, $100
+SteelixCryHeader: cry_header CRY_TYPHLOSION, $0ef, $0f7
+SnubbullCryHeader: cry_header CRY_DUNSPARCE, $112, $0e8
+GranbullCryHeader: cry_header CRY_DUNSPARCE, $000, $180
+QwilfishCryHeader: cry_header CRY_SLOWKING, $160, $0e0
+ScizorCryHeader: cry_header CRY_AMPHAROS, $000, $160
+ShuckleCryHeader: cry_header CRY_DUNSPARCE, $290, $0a8
+HeracrossCryHeader: cry_header CRY_AMPHAROS, $035, $0e0
+SneaselCryHeader: cry_header CRY_WOOPER, $053, $0af
+TeddiursaCryHeader: cry_header CRY_TEDDIURSA, $7a2, $06e
+UrsaringCryHeader: cry_header CRY_TEDDIURSA, $640, $0d8
+SlugmaCryHeader: cry_header CRY_SLUGMA, -$1d8, $140
+MagcargoCryHeader: cry_header CRY_MAGCARGO, -$20d, $1c0
+SwinubCryHeader: cry_header CRY_CYNDAQUIL, $1fe, $140
+PiloswineCryHeader: cry_header CRY_MAGCARGO, -$109, $100
+CorsolaCryHeader: cry_header CRY_MAGCARGO, $0a1, $0e8
+RemoraidCryHeader: cry_header CRY_SUNFLORA, $00d, $100
+OctilleryCryHeader: cry_header CRY_TOTODILE, $000, $180
+DelibirdCryHeader: cry_header CRY_TEDDIURSA, $002, $06a
+MantineCryHeader: cry_header CRY_MANTINE, -$0be, $0f0
+SkarmoryCryHeader: cry_header CRY_AMPHAROS, $8a9, $180
+HoundourCryHeader: cry_header CRY_CYNDAQUIL, $039, $140
+HoundoomCryHeader: cry_header CRY_TOTODILE, -$10a, $100
+KingdraCryHeader: cry_header CRY_SLUGMA, $2fb, $100
+PhanpyCryHeader: cry_header CRY_SENTRET, $048, $230
+DonphanCryHeader: cry_header CRY_DONPHAN, $000, $1a0
+Porygon2CryHeader: cry_header CRY_GIRAFARIG, $073, $240
+StantlerCryHeader: cry_header CRY_AIPOM, -$160, $180
+SmeargleCryHeader: cry_header CRY_PICHU, -$21a, $1f0
+TyrogueCryHeader: cry_header CRY_AIPOM, $02c, $108
+HitmontopCryHeader: cry_header CRY_SLUGMA, $000, $100
+SmoochumCryHeader: cry_header CRY_MARILL, $068, $100
+ElekidCryHeader: cry_header CRY_SUNFLORA, -$2d8, $0b4
+MagbyCryHeader: cry_header CRY_TEDDIURSA, $176, $03a
+MiltankCryHeader: cry_header CRY_GLIGAR, -$1cd, $1a0
+BlisseyCryHeader: cry_header CRY_SLOWKING, $293, $140
+RaikouCryHeader: cry_header CRY_RAIKOU, $22e, $120
+EnteiCryHeader: cry_header CRY_ENTEI, $000, $1a0
+SuicuneCryHeader: cry_header CRY_MAGCARGO, $000, $180
+LarvitarCryHeader: cry_header CRY_RAIKOU, $05f, $0d0
+PupitarCryHeader: cry_header CRY_SPINARAK, -$1db, $150
+TyranitarCryHeader: cry_header CRY_RAIKOU, -$100, $180
+LugiaCryHeader: cry_header CRY_TYPHLOSION, $000, $100
+HoOhCryHeader: cry_header CRY_AIPOM, $000, $180
+CelebiCryHeader: cry_header CRY_ENTEI, $14a, $111
+CryHeader252: cry_header CRY_NIDORAN_M, 0, 0
+CryHeader253: cry_header CRY_NIDORAN_M, 0, 0
+CryHeader254: cry_header CRY_NIDORAN_M, 0, 0
+CryHeader255: cry_header CRY_NIDORAN_M, 0, 0
+; f2d81
diff --git a/data/pokemon/dex_entries.asm b/data/pokemon/dex_entries.asm
new file mode 100644
index 000000000..92b9c6b06
--- /dev/null
+++ b/data/pokemon/dex_entries.asm
@@ -0,0 +1,272 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Pokedex Entries 001-064", ROMX
+
+PokedexEntries1::
+BulbasaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bulbasaur.asm"
+IvysaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ivysaur.asm"
+VenusaurPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venusaur.asm"
+CharmanderPokedexEntry:: INCLUDE "data/pokemon/dex_entries/charmander.asm"
+CharmeleonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/charmeleon.asm"
+CharizardPokedexEntry:: INCLUDE "data/pokemon/dex_entries/charizard.asm"
+SquirtlePokedexEntry:: INCLUDE "data/pokemon/dex_entries/squirtle.asm"
+WartortlePokedexEntry:: INCLUDE "data/pokemon/dex_entries/wartortle.asm"
+BlastoisePokedexEntry:: INCLUDE "data/pokemon/dex_entries/blastoise.asm"
+CaterpiePokedexEntry:: INCLUDE "data/pokemon/dex_entries/caterpie.asm"
+MetapodPokedexEntry:: INCLUDE "data/pokemon/dex_entries/metapod.asm"
+ButterfreePokedexEntry:: INCLUDE "data/pokemon/dex_entries/butterfree.asm"
+WeedlePokedexEntry:: INCLUDE "data/pokemon/dex_entries/weedle.asm"
+KakunaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kakuna.asm"
+BeedrillPokedexEntry:: INCLUDE "data/pokemon/dex_entries/beedrill.asm"
+PidgeyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pidgey.asm"
+PidgeottoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pidgeotto.asm"
+PidgeotPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pidgeot.asm"
+RattataPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rattata.asm"
+RaticatePokedexEntry:: INCLUDE "data/pokemon/dex_entries/raticate.asm"
+SpearowPokedexEntry:: INCLUDE "data/pokemon/dex_entries/spearow.asm"
+FearowPokedexEntry:: INCLUDE "data/pokemon/dex_entries/fearow.asm"
+EkansPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ekans.asm"
+ArbokPokedexEntry:: INCLUDE "data/pokemon/dex_entries/arbok.asm"
+PikachuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pikachu.asm"
+RaichuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/raichu.asm"
+SandshrewPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sandshrew.asm"
+SandslashPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sandslash.asm"
+NidoranFPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoran_f.asm"
+NidorinaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidorina.asm"
+NidoqueenPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoqueen.asm"
+NidoranMPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoran_m.asm"
+NidorinoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidorino.asm"
+NidokingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/nidoking.asm"
+ClefairyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/clefairy.asm"
+ClefablePokedexEntry:: INCLUDE "data/pokemon/dex_entries/clefable.asm"
+VulpixPokedexEntry:: INCLUDE "data/pokemon/dex_entries/vulpix.asm"
+NinetalesPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ninetales.asm"
+JigglypuffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jigglypuff.asm"
+WigglytuffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wigglytuff.asm"
+ZubatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/zubat.asm"
+GolbatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/golbat.asm"
+OddishPokedexEntry:: INCLUDE "data/pokemon/dex_entries/oddish.asm"
+GloomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gloom.asm"
+VileplumePokedexEntry:: INCLUDE "data/pokemon/dex_entries/vileplume.asm"
+ParasPokedexEntry:: INCLUDE "data/pokemon/dex_entries/paras.asm"
+ParasectPokedexEntry:: INCLUDE "data/pokemon/dex_entries/parasect.asm"
+VenonatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venonat.asm"
+VenomothPokedexEntry:: INCLUDE "data/pokemon/dex_entries/venomoth.asm"
+DiglettPokedexEntry:: INCLUDE "data/pokemon/dex_entries/diglett.asm"
+DugtrioPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dugtrio.asm"
+MeowthPokedexEntry:: INCLUDE "data/pokemon/dex_entries/meowth.asm"
+PersianPokedexEntry:: INCLUDE "data/pokemon/dex_entries/persian.asm"
+PsyduckPokedexEntry:: INCLUDE "data/pokemon/dex_entries/psyduck.asm"
+GolduckPokedexEntry:: INCLUDE "data/pokemon/dex_entries/golduck.asm"
+MankeyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mankey.asm"
+PrimeapePokedexEntry:: INCLUDE "data/pokemon/dex_entries/primeape.asm"
+GrowlithePokedexEntry:: INCLUDE "data/pokemon/dex_entries/growlithe.asm"
+ArcaninePokedexEntry:: INCLUDE "data/pokemon/dex_entries/arcanine.asm"
+PoliwagPokedexEntry:: INCLUDE "data/pokemon/dex_entries/poliwag.asm"
+PoliwhirlPokedexEntry:: INCLUDE "data/pokemon/dex_entries/poliwhirl.asm"
+PoliwrathPokedexEntry:: INCLUDE "data/pokemon/dex_entries/poliwrath.asm"
+AbraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/abra.asm"
+KadabraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kadabra.asm"
+
+
+SECTION "Pokedex Entries 065-128", ROMX
+
+PokedexEntries2::
+AlakazamPokedexEntry:: INCLUDE "data/pokemon/dex_entries/alakazam.asm"
+MachopPokedexEntry:: INCLUDE "data/pokemon/dex_entries/machop.asm"
+MachokePokedexEntry:: INCLUDE "data/pokemon/dex_entries/machoke.asm"
+MachampPokedexEntry:: INCLUDE "data/pokemon/dex_entries/machamp.asm"
+BellsproutPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bellsprout.asm"
+WeepinbellPokedexEntry:: INCLUDE "data/pokemon/dex_entries/weepinbell.asm"
+VictreebelPokedexEntry:: INCLUDE "data/pokemon/dex_entries/victreebel.asm"
+TentacoolPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tentacool.asm"
+TentacruelPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tentacruel.asm"
+GeodudePokedexEntry:: INCLUDE "data/pokemon/dex_entries/geodude.asm"
+GravelerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/graveler.asm"
+GolemPokedexEntry:: INCLUDE "data/pokemon/dex_entries/golem.asm"
+PonytaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ponyta.asm"
+RapidashPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rapidash.asm"
+SlowpokePokedexEntry:: INCLUDE "data/pokemon/dex_entries/slowpoke.asm"
+SlowbroPokedexEntry:: INCLUDE "data/pokemon/dex_entries/slowbro.asm"
+MagnemitePokedexEntry:: INCLUDE "data/pokemon/dex_entries/magnemite.asm"
+MagnetonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magneton.asm"
+FarfetchDPokedexEntry:: INCLUDE "data/pokemon/dex_entries/farfetch_d.asm"
+DoduoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/doduo.asm"
+DodrioPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dodrio.asm"
+SeelPokedexEntry:: INCLUDE "data/pokemon/dex_entries/seel.asm"
+DewgongPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dewgong.asm"
+GrimerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/grimer.asm"
+MukPokedexEntry:: INCLUDE "data/pokemon/dex_entries/muk.asm"
+ShellderPokedexEntry:: INCLUDE "data/pokemon/dex_entries/shellder.asm"
+CloysterPokedexEntry:: INCLUDE "data/pokemon/dex_entries/cloyster.asm"
+GastlyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gastly.asm"
+HaunterPokedexEntry:: INCLUDE "data/pokemon/dex_entries/haunter.asm"
+GengarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gengar.asm"
+OnixPokedexEntry:: INCLUDE "data/pokemon/dex_entries/onix.asm"
+DrowzeePokedexEntry:: INCLUDE "data/pokemon/dex_entries/drowzee.asm"
+HypnoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hypno.asm"
+KrabbyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/krabby.asm"
+KinglerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kingler.asm"
+VoltorbPokedexEntry:: INCLUDE "data/pokemon/dex_entries/voltorb.asm"
+ElectrodePokedexEntry:: INCLUDE "data/pokemon/dex_entries/electrode.asm"
+ExeggcutePokedexEntry:: INCLUDE "data/pokemon/dex_entries/exeggcute.asm"
+ExeggutorPokedexEntry:: INCLUDE "data/pokemon/dex_entries/exeggutor.asm"
+CubonePokedexEntry:: INCLUDE "data/pokemon/dex_entries/cubone.asm"
+MarowakPokedexEntry:: INCLUDE "data/pokemon/dex_entries/marowak.asm"
+HitmonleePokedexEntry:: INCLUDE "data/pokemon/dex_entries/hitmonlee.asm"
+HitmonchanPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hitmonchan.asm"
+LickitungPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lickitung.asm"
+KoffingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/koffing.asm"
+WeezingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/weezing.asm"
+RhyhornPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rhyhorn.asm"
+RhydonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/rhydon.asm"
+ChanseyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/chansey.asm"
+TangelaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tangela.asm"
+KangaskhanPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kangaskhan.asm"
+HorseaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/horsea.asm"
+SeadraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/seadra.asm"
+GoldeenPokedexEntry:: INCLUDE "data/pokemon/dex_entries/goldeen.asm"
+SeakingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/seaking.asm"
+StaryuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/staryu.asm"
+StarmiePokedexEntry:: INCLUDE "data/pokemon/dex_entries/starmie.asm"
+MrMimePokedexEntry:: INCLUDE "data/pokemon/dex_entries/mr__mime.asm"
+ScytherPokedexEntry:: INCLUDE "data/pokemon/dex_entries/scyther.asm"
+JynxPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jynx.asm"
+ElectabuzzPokedexEntry:: INCLUDE "data/pokemon/dex_entries/electabuzz.asm"
+MagmarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magmar.asm"
+PinsirPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pinsir.asm"
+TaurosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tauros.asm"
+
+
+SECTION "Pokedex Entries 129-192", ROMX
+
+PokedexEntries3::
+MagikarpPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magikarp.asm"
+GyaradosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gyarados.asm"
+LaprasPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lapras.asm"
+DittoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ditto.asm"
+EeveePokedexEntry:: INCLUDE "data/pokemon/dex_entries/eevee.asm"
+VaporeonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/vaporeon.asm"
+JolteonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jolteon.asm"
+FlareonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/flareon.asm"
+PorygonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/porygon.asm"
+OmanytePokedexEntry:: INCLUDE "data/pokemon/dex_entries/omanyte.asm"
+OmastarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/omastar.asm"
+KabutoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kabuto.asm"
+KabutopsPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kabutops.asm"
+AerodactylPokedexEntry:: INCLUDE "data/pokemon/dex_entries/aerodactyl.asm"
+SnorlaxPokedexEntry:: INCLUDE "data/pokemon/dex_entries/snorlax.asm"
+ArticunoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/articuno.asm"
+ZapdosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/zapdos.asm"
+MoltresPokedexEntry:: INCLUDE "data/pokemon/dex_entries/moltres.asm"
+DratiniPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dratini.asm"
+DragonairPokedexEntry:: INCLUDE "data/pokemon/dex_entries/dragonair.asm"
+DragonitePokedexEntry:: INCLUDE "data/pokemon/dex_entries/dragonite.asm"
+MewtwoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mewtwo.asm"
+MewPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mew.asm"
+ChikoritaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/chikorita.asm"
+BayleefPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bayleef.asm"
+MeganiumPokedexEntry:: INCLUDE "data/pokemon/dex_entries/meganium.asm"
+CyndaquilPokedexEntry:: INCLUDE "data/pokemon/dex_entries/cyndaquil.asm"
+QuilavaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/quilava.asm"
+TyphlosionPokedexEntry:: INCLUDE "data/pokemon/dex_entries/typhlosion.asm"
+TotodilePokedexEntry:: INCLUDE "data/pokemon/dex_entries/totodile.asm"
+CroconawPokedexEntry:: INCLUDE "data/pokemon/dex_entries/croconaw.asm"
+FeraligatrPokedexEntry:: INCLUDE "data/pokemon/dex_entries/feraligatr.asm"
+SentretPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sentret.asm"
+FurretPokedexEntry:: INCLUDE "data/pokemon/dex_entries/furret.asm"
+HoothootPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hoothoot.asm"
+NoctowlPokedexEntry:: INCLUDE "data/pokemon/dex_entries/noctowl.asm"
+LedybaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ledyba.asm"
+LedianPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ledian.asm"
+SpinarakPokedexEntry:: INCLUDE "data/pokemon/dex_entries/spinarak.asm"
+AriadosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ariados.asm"
+CrobatPokedexEntry:: INCLUDE "data/pokemon/dex_entries/crobat.asm"
+ChinchouPokedexEntry:: INCLUDE "data/pokemon/dex_entries/chinchou.asm"
+LanturnPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lanturn.asm"
+PichuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pichu.asm"
+CleffaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/cleffa.asm"
+IgglybuffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/igglybuff.asm"
+TogepiPokedexEntry:: INCLUDE "data/pokemon/dex_entries/togepi.asm"
+TogeticPokedexEntry:: INCLUDE "data/pokemon/dex_entries/togetic.asm"
+NatuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/natu.asm"
+XatuPokedexEntry:: INCLUDE "data/pokemon/dex_entries/xatu.asm"
+MareepPokedexEntry:: INCLUDE "data/pokemon/dex_entries/mareep.asm"
+FlaaffyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/flaaffy.asm"
+AmpharosPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ampharos.asm"
+BellossomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/bellossom.asm"
+MarillPokedexEntry:: INCLUDE "data/pokemon/dex_entries/marill.asm"
+AzumarillPokedexEntry:: INCLUDE "data/pokemon/dex_entries/azumarill.asm"
+SudowoodoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sudowoodo.asm"
+PolitoedPokedexEntry:: INCLUDE "data/pokemon/dex_entries/politoed.asm"
+HoppipPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hoppip.asm"
+SkiploomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/skiploom.asm"
+JumpluffPokedexEntry:: INCLUDE "data/pokemon/dex_entries/jumpluff.asm"
+AipomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/aipom.asm"
+SunkernPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sunkern.asm"
+SunfloraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sunflora.asm"
+
+
+SECTION "Pokedex Entries 193-251", ROMX
+
+PokedexEntries4::
+YanmaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/yanma.asm"
+WooperPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wooper.asm"
+QuagsirePokedexEntry:: INCLUDE "data/pokemon/dex_entries/quagsire.asm"
+EspeonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/espeon.asm"
+UmbreonPokedexEntry:: INCLUDE "data/pokemon/dex_entries/umbreon.asm"
+MurkrowPokedexEntry:: INCLUDE "data/pokemon/dex_entries/murkrow.asm"
+SlowkingPokedexEntry:: INCLUDE "data/pokemon/dex_entries/slowking.asm"
+MisdreavusPokedexEntry:: INCLUDE "data/pokemon/dex_entries/misdreavus.asm"
+UnownPokedexEntry:: INCLUDE "data/pokemon/dex_entries/unown.asm"
+WobbuffetPokedexEntry:: INCLUDE "data/pokemon/dex_entries/wobbuffet.asm"
+GirafarigPokedexEntry:: INCLUDE "data/pokemon/dex_entries/girafarig.asm"
+PinecoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pineco.asm"
+ForretressPokedexEntry:: INCLUDE "data/pokemon/dex_entries/forretress.asm"
+DunsparcePokedexEntry:: INCLUDE "data/pokemon/dex_entries/dunsparce.asm"
+GligarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/gligar.asm"
+SteelixPokedexEntry:: INCLUDE "data/pokemon/dex_entries/steelix.asm"
+SnubbullPokedexEntry:: INCLUDE "data/pokemon/dex_entries/snubbull.asm"
+GranbullPokedexEntry:: INCLUDE "data/pokemon/dex_entries/granbull.asm"
+QwilfishPokedexEntry:: INCLUDE "data/pokemon/dex_entries/qwilfish.asm"
+ScizorPokedexEntry:: INCLUDE "data/pokemon/dex_entries/scizor.asm"
+ShucklePokedexEntry:: INCLUDE "data/pokemon/dex_entries/shuckle.asm"
+HeracrossPokedexEntry:: INCLUDE "data/pokemon/dex_entries/heracross.asm"
+SneaselPokedexEntry:: INCLUDE "data/pokemon/dex_entries/sneasel.asm"
+TeddiursaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/teddiursa.asm"
+UrsaringPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ursaring.asm"
+SlugmaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/slugma.asm"
+MagcargoPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magcargo.asm"
+SwinubPokedexEntry:: INCLUDE "data/pokemon/dex_entries/swinub.asm"
+PiloswinePokedexEntry:: INCLUDE "data/pokemon/dex_entries/piloswine.asm"
+CorsolaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/corsola.asm"
+RemoraidPokedexEntry:: INCLUDE "data/pokemon/dex_entries/remoraid.asm"
+OctilleryPokedexEntry:: INCLUDE "data/pokemon/dex_entries/octillery.asm"
+DelibirdPokedexEntry:: INCLUDE "data/pokemon/dex_entries/delibird.asm"
+MantinePokedexEntry:: INCLUDE "data/pokemon/dex_entries/mantine.asm"
+SkarmoryPokedexEntry:: INCLUDE "data/pokemon/dex_entries/skarmory.asm"
+HoundourPokedexEntry:: INCLUDE "data/pokemon/dex_entries/houndour.asm"
+HoundoomPokedexEntry:: INCLUDE "data/pokemon/dex_entries/houndoom.asm"
+KingdraPokedexEntry:: INCLUDE "data/pokemon/dex_entries/kingdra.asm"
+PhanpyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/phanpy.asm"
+DonphanPokedexEntry:: INCLUDE "data/pokemon/dex_entries/donphan.asm"
+Porygon2PokedexEntry:: INCLUDE "data/pokemon/dex_entries/porygon2.asm"
+StantlerPokedexEntry:: INCLUDE "data/pokemon/dex_entries/stantler.asm"
+SmearglePokedexEntry:: INCLUDE "data/pokemon/dex_entries/smeargle.asm"
+TyroguePokedexEntry:: INCLUDE "data/pokemon/dex_entries/tyrogue.asm"
+HitmontopPokedexEntry:: INCLUDE "data/pokemon/dex_entries/hitmontop.asm"
+SmoochumPokedexEntry:: INCLUDE "data/pokemon/dex_entries/smoochum.asm"
+ElekidPokedexEntry:: INCLUDE "data/pokemon/dex_entries/elekid.asm"
+MagbyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/magby.asm"
+MiltankPokedexEntry:: INCLUDE "data/pokemon/dex_entries/miltank.asm"
+BlisseyPokedexEntry:: INCLUDE "data/pokemon/dex_entries/blissey.asm"
+RaikouPokedexEntry:: INCLUDE "data/pokemon/dex_entries/raikou.asm"
+EnteiPokedexEntry:: INCLUDE "data/pokemon/dex_entries/entei.asm"
+SuicunePokedexEntry:: INCLUDE "data/pokemon/dex_entries/suicune.asm"
+LarvitarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/larvitar.asm"
+PupitarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/pupitar.asm"
+TyranitarPokedexEntry:: INCLUDE "data/pokemon/dex_entries/tyranitar.asm"
+LugiaPokedexEntry:: INCLUDE "data/pokemon/dex_entries/lugia.asm"
+HoOhPokedexEntry:: INCLUDE "data/pokemon/dex_entries/ho_oh.asm"
+CelebiPokedexEntry:: INCLUDE "data/pokemon/dex_entries/celebi.asm"
diff --git a/data/pokedex/entries/abra.asm b/data/pokemon/dex_entries/abra.asm
index be3b263cd..be3b263cd 100644
--- a/data/pokedex/entries/abra.asm
+++ b/data/pokemon/dex_entries/abra.asm
diff --git a/data/pokedex/entries/aerodactyl.asm b/data/pokemon/dex_entries/aerodactyl.asm
index d6189500b..d6189500b 100644
--- a/data/pokedex/entries/aerodactyl.asm
+++ b/data/pokemon/dex_entries/aerodactyl.asm
diff --git a/data/pokedex/entries/aipom.asm b/data/pokemon/dex_entries/aipom.asm
index 3fadb9169..3fadb9169 100644
--- a/data/pokedex/entries/aipom.asm
+++ b/data/pokemon/dex_entries/aipom.asm
diff --git a/data/pokedex/entries/alakazam.asm b/data/pokemon/dex_entries/alakazam.asm
index 1d34fa1f7..1d34fa1f7 100644
--- a/data/pokedex/entries/alakazam.asm
+++ b/data/pokemon/dex_entries/alakazam.asm
diff --git a/data/pokedex/entries/ampharos.asm b/data/pokemon/dex_entries/ampharos.asm
index 1f48fe322..1f48fe322 100644
--- a/data/pokedex/entries/ampharos.asm
+++ b/data/pokemon/dex_entries/ampharos.asm
diff --git a/data/pokedex/entries/arbok.asm b/data/pokemon/dex_entries/arbok.asm
index c5d5b7704..c5d5b7704 100644
--- a/data/pokedex/entries/arbok.asm
+++ b/data/pokemon/dex_entries/arbok.asm
diff --git a/data/pokedex/entries/arcanine.asm b/data/pokemon/dex_entries/arcanine.asm
index e319bcb6a..e319bcb6a 100644
--- a/data/pokedex/entries/arcanine.asm
+++ b/data/pokemon/dex_entries/arcanine.asm
diff --git a/data/pokedex/entries/ariados.asm b/data/pokemon/dex_entries/ariados.asm
index a27d13fef..a27d13fef 100644
--- a/data/pokedex/entries/ariados.asm
+++ b/data/pokemon/dex_entries/ariados.asm
diff --git a/data/pokedex/entries/articuno.asm b/data/pokemon/dex_entries/articuno.asm
index 92b297d28..92b297d28 100644
--- a/data/pokedex/entries/articuno.asm
+++ b/data/pokemon/dex_entries/articuno.asm
diff --git a/data/pokedex/entries/azumarill.asm b/data/pokemon/dex_entries/azumarill.asm
index bdbc83d1d..bdbc83d1d 100644
--- a/data/pokedex/entries/azumarill.asm
+++ b/data/pokemon/dex_entries/azumarill.asm
diff --git a/data/pokedex/entries/bayleef.asm b/data/pokemon/dex_entries/bayleef.asm
index ac66dccd5..ac66dccd5 100644
--- a/data/pokedex/entries/bayleef.asm
+++ b/data/pokemon/dex_entries/bayleef.asm
diff --git a/data/pokedex/entries/beedrill.asm b/data/pokemon/dex_entries/beedrill.asm
index 505396ca1..505396ca1 100644
--- a/data/pokedex/entries/beedrill.asm
+++ b/data/pokemon/dex_entries/beedrill.asm
diff --git a/data/pokedex/entries/bellossom.asm b/data/pokemon/dex_entries/bellossom.asm
index 0d13ed65d..0d13ed65d 100644
--- a/data/pokedex/entries/bellossom.asm
+++ b/data/pokemon/dex_entries/bellossom.asm
diff --git a/data/pokedex/entries/bellsprout.asm b/data/pokemon/dex_entries/bellsprout.asm
index fcd42c125..fcd42c125 100644
--- a/data/pokedex/entries/bellsprout.asm
+++ b/data/pokemon/dex_entries/bellsprout.asm
diff --git a/data/pokedex/entries/blastoise.asm b/data/pokemon/dex_entries/blastoise.asm
index ea2a18d05..ea2a18d05 100644
--- a/data/pokedex/entries/blastoise.asm
+++ b/data/pokemon/dex_entries/blastoise.asm
diff --git a/data/pokedex/entries/blissey.asm b/data/pokemon/dex_entries/blissey.asm
index 10151a398..10151a398 100644
--- a/data/pokedex/entries/blissey.asm
+++ b/data/pokemon/dex_entries/blissey.asm
diff --git a/data/pokedex/entries/bulbasaur.asm b/data/pokemon/dex_entries/bulbasaur.asm
index fdfe39c8c..fdfe39c8c 100644
--- a/data/pokedex/entries/bulbasaur.asm
+++ b/data/pokemon/dex_entries/bulbasaur.asm
diff --git a/data/pokedex/entries/butterfree.asm b/data/pokemon/dex_entries/butterfree.asm
index edf9e2599..edf9e2599 100644
--- a/data/pokedex/entries/butterfree.asm
+++ b/data/pokemon/dex_entries/butterfree.asm
diff --git a/data/pokedex/entries/caterpie.asm b/data/pokemon/dex_entries/caterpie.asm
index 940aa014f..940aa014f 100644
--- a/data/pokedex/entries/caterpie.asm
+++ b/data/pokemon/dex_entries/caterpie.asm
diff --git a/data/pokedex/entries/celebi.asm b/data/pokemon/dex_entries/celebi.asm
index 3922d1749..3922d1749 100644
--- a/data/pokedex/entries/celebi.asm
+++ b/data/pokemon/dex_entries/celebi.asm
diff --git a/data/pokedex/entries/chansey.asm b/data/pokemon/dex_entries/chansey.asm
index fd45cf121..fd45cf121 100644
--- a/data/pokedex/entries/chansey.asm
+++ b/data/pokemon/dex_entries/chansey.asm
diff --git a/data/pokedex/entries/charizard.asm b/data/pokemon/dex_entries/charizard.asm
index 53a542fb5..53a542fb5 100644
--- a/data/pokedex/entries/charizard.asm
+++ b/data/pokemon/dex_entries/charizard.asm
diff --git a/data/pokedex/entries/charmander.asm b/data/pokemon/dex_entries/charmander.asm
index a89b138f8..a89b138f8 100644
--- a/data/pokedex/entries/charmander.asm
+++ b/data/pokemon/dex_entries/charmander.asm
diff --git a/data/pokedex/entries/charmeleon.asm b/data/pokemon/dex_entries/charmeleon.asm
index 2891764c3..2891764c3 100644
--- a/data/pokedex/entries/charmeleon.asm
+++ b/data/pokemon/dex_entries/charmeleon.asm
diff --git a/data/pokedex/entries/chikorita.asm b/data/pokemon/dex_entries/chikorita.asm
index 3ba17e1f8..3ba17e1f8 100644
--- a/data/pokedex/entries/chikorita.asm
+++ b/data/pokemon/dex_entries/chikorita.asm
diff --git a/data/pokedex/entries/chinchou.asm b/data/pokemon/dex_entries/chinchou.asm
index 22d887859..22d887859 100644
--- a/data/pokedex/entries/chinchou.asm
+++ b/data/pokemon/dex_entries/chinchou.asm
diff --git a/data/pokedex/entries/clefable.asm b/data/pokemon/dex_entries/clefable.asm
index 240d70eb5..240d70eb5 100644
--- a/data/pokedex/entries/clefable.asm
+++ b/data/pokemon/dex_entries/clefable.asm
diff --git a/data/pokedex/entries/clefairy.asm b/data/pokemon/dex_entries/clefairy.asm
index b5973b21a..b5973b21a 100644
--- a/data/pokedex/entries/clefairy.asm
+++ b/data/pokemon/dex_entries/clefairy.asm
diff --git a/data/pokedex/entries/cleffa.asm b/data/pokemon/dex_entries/cleffa.asm
index 897bb2501..897bb2501 100644
--- a/data/pokedex/entries/cleffa.asm
+++ b/data/pokemon/dex_entries/cleffa.asm
diff --git a/data/pokedex/entries/cloyster.asm b/data/pokemon/dex_entries/cloyster.asm
index b1eaf80b9..b1eaf80b9 100644
--- a/data/pokedex/entries/cloyster.asm
+++ b/data/pokemon/dex_entries/cloyster.asm
diff --git a/data/pokedex/entries/corsola.asm b/data/pokemon/dex_entries/corsola.asm
index 52fbd0c44..52fbd0c44 100644
--- a/data/pokedex/entries/corsola.asm
+++ b/data/pokemon/dex_entries/corsola.asm
diff --git a/data/pokedex/entries/crobat.asm b/data/pokemon/dex_entries/crobat.asm
index 107683110..107683110 100644
--- a/data/pokedex/entries/crobat.asm
+++ b/data/pokemon/dex_entries/crobat.asm
diff --git a/data/pokedex/entries/croconaw.asm b/data/pokemon/dex_entries/croconaw.asm
index 0edcf80cc..0edcf80cc 100644
--- a/data/pokedex/entries/croconaw.asm
+++ b/data/pokemon/dex_entries/croconaw.asm
diff --git a/data/pokedex/entries/cubone.asm b/data/pokemon/dex_entries/cubone.asm
index 911377864..911377864 100644
--- a/data/pokedex/entries/cubone.asm
+++ b/data/pokemon/dex_entries/cubone.asm
diff --git a/data/pokedex/entries/cyndaquil.asm b/data/pokemon/dex_entries/cyndaquil.asm
index 47329d37f..47329d37f 100644
--- a/data/pokedex/entries/cyndaquil.asm
+++ b/data/pokemon/dex_entries/cyndaquil.asm
diff --git a/data/pokedex/entries/delibird.asm b/data/pokemon/dex_entries/delibird.asm
index 2c998d8be..2c998d8be 100644
--- a/data/pokedex/entries/delibird.asm
+++ b/data/pokemon/dex_entries/delibird.asm
diff --git a/data/pokedex/entries/dewgong.asm b/data/pokemon/dex_entries/dewgong.asm
index a3ff9b6f5..a3ff9b6f5 100644
--- a/data/pokedex/entries/dewgong.asm
+++ b/data/pokemon/dex_entries/dewgong.asm
diff --git a/data/pokedex/entries/diglett.asm b/data/pokemon/dex_entries/diglett.asm
index 469d9311d..469d9311d 100644
--- a/data/pokedex/entries/diglett.asm
+++ b/data/pokemon/dex_entries/diglett.asm
diff --git a/data/pokedex/entries/ditto.asm b/data/pokemon/dex_entries/ditto.asm
index 5a838b5b8..5a838b5b8 100644
--- a/data/pokedex/entries/ditto.asm
+++ b/data/pokemon/dex_entries/ditto.asm
diff --git a/data/pokedex/entries/dodrio.asm b/data/pokemon/dex_entries/dodrio.asm
index ef495b99b..ef495b99b 100644
--- a/data/pokedex/entries/dodrio.asm
+++ b/data/pokemon/dex_entries/dodrio.asm
diff --git a/data/pokedex/entries/doduo.asm b/data/pokemon/dex_entries/doduo.asm
index 124469457..124469457 100644
--- a/data/pokedex/entries/doduo.asm
+++ b/data/pokemon/dex_entries/doduo.asm
diff --git a/data/pokedex/entries/donphan.asm b/data/pokemon/dex_entries/donphan.asm
index 4dc489938..4dc489938 100644
--- a/data/pokedex/entries/donphan.asm
+++ b/data/pokemon/dex_entries/donphan.asm
diff --git a/data/pokedex/entries/dragonair.asm b/data/pokemon/dex_entries/dragonair.asm
index cef4f8f29..cef4f8f29 100644
--- a/data/pokedex/entries/dragonair.asm
+++ b/data/pokemon/dex_entries/dragonair.asm
diff --git a/data/pokedex/entries/dragonite.asm b/data/pokemon/dex_entries/dragonite.asm
index bbbc6cff0..bbbc6cff0 100644
--- a/data/pokedex/entries/dragonite.asm
+++ b/data/pokemon/dex_entries/dragonite.asm
diff --git a/data/pokedex/entries/dratini.asm b/data/pokemon/dex_entries/dratini.asm
index ef16aa20c..ef16aa20c 100644
--- a/data/pokedex/entries/dratini.asm
+++ b/data/pokemon/dex_entries/dratini.asm
diff --git a/data/pokedex/entries/drowzee.asm b/data/pokemon/dex_entries/drowzee.asm
index 34ae54435..34ae54435 100644
--- a/data/pokedex/entries/drowzee.asm
+++ b/data/pokemon/dex_entries/drowzee.asm
diff --git a/data/pokedex/entries/dugtrio.asm b/data/pokemon/dex_entries/dugtrio.asm
index 829e2aa09..829e2aa09 100644
--- a/data/pokedex/entries/dugtrio.asm
+++ b/data/pokemon/dex_entries/dugtrio.asm
diff --git a/data/pokedex/entries/dunsparce.asm b/data/pokemon/dex_entries/dunsparce.asm
index 7a9d812f3..7a9d812f3 100644
--- a/data/pokedex/entries/dunsparce.asm
+++ b/data/pokemon/dex_entries/dunsparce.asm
diff --git a/data/pokedex/entries/eevee.asm b/data/pokemon/dex_entries/eevee.asm
index 3081a5829..3081a5829 100644
--- a/data/pokedex/entries/eevee.asm
+++ b/data/pokemon/dex_entries/eevee.asm
diff --git a/data/pokedex/entries/ekans.asm b/data/pokemon/dex_entries/ekans.asm
index 23faa4854..23faa4854 100644
--- a/data/pokedex/entries/ekans.asm
+++ b/data/pokemon/dex_entries/ekans.asm
diff --git a/data/pokedex/entries/electabuzz.asm b/data/pokemon/dex_entries/electabuzz.asm
index e6bf15587..e6bf15587 100644
--- a/data/pokedex/entries/electabuzz.asm
+++ b/data/pokemon/dex_entries/electabuzz.asm
diff --git a/data/pokedex/entries/electrode.asm b/data/pokemon/dex_entries/electrode.asm
index 48d523c69..48d523c69 100644
--- a/data/pokedex/entries/electrode.asm
+++ b/data/pokemon/dex_entries/electrode.asm
diff --git a/data/pokedex/entries/elekid.asm b/data/pokemon/dex_entries/elekid.asm
index 6a046bda4..6a046bda4 100644
--- a/data/pokedex/entries/elekid.asm
+++ b/data/pokemon/dex_entries/elekid.asm
diff --git a/data/pokedex/entries/entei.asm b/data/pokemon/dex_entries/entei.asm
index 3784a898c..3784a898c 100644
--- a/data/pokedex/entries/entei.asm
+++ b/data/pokemon/dex_entries/entei.asm
diff --git a/data/pokedex/entries/espeon.asm b/data/pokemon/dex_entries/espeon.asm
index 059b01fbe..059b01fbe 100644
--- a/data/pokedex/entries/espeon.asm
+++ b/data/pokemon/dex_entries/espeon.asm
diff --git a/data/pokedex/entries/exeggcute.asm b/data/pokemon/dex_entries/exeggcute.asm
index 01453955e..01453955e 100644
--- a/data/pokedex/entries/exeggcute.asm
+++ b/data/pokemon/dex_entries/exeggcute.asm
diff --git a/data/pokedex/entries/exeggutor.asm b/data/pokemon/dex_entries/exeggutor.asm
index abefffd69..abefffd69 100644
--- a/data/pokedex/entries/exeggutor.asm
+++ b/data/pokemon/dex_entries/exeggutor.asm
diff --git a/data/pokedex/entries/farfetch_d.asm b/data/pokemon/dex_entries/farfetch_d.asm
index c9e756a6a..c9e756a6a 100644
--- a/data/pokedex/entries/farfetch_d.asm
+++ b/data/pokemon/dex_entries/farfetch_d.asm
diff --git a/data/pokedex/entries/fearow.asm b/data/pokemon/dex_entries/fearow.asm
index 90de6a612..90de6a612 100644
--- a/data/pokedex/entries/fearow.asm
+++ b/data/pokemon/dex_entries/fearow.asm
diff --git a/data/pokedex/entries/feraligatr.asm b/data/pokemon/dex_entries/feraligatr.asm
index cb3672c92..cb3672c92 100644
--- a/data/pokedex/entries/feraligatr.asm
+++ b/data/pokemon/dex_entries/feraligatr.asm
diff --git a/data/pokedex/entries/flaaffy.asm b/data/pokemon/dex_entries/flaaffy.asm
index 04bcc0668..04bcc0668 100644
--- a/data/pokedex/entries/flaaffy.asm
+++ b/data/pokemon/dex_entries/flaaffy.asm
diff --git a/data/pokedex/entries/flareon.asm b/data/pokemon/dex_entries/flareon.asm
index ba3e0399d..ba3e0399d 100644
--- a/data/pokedex/entries/flareon.asm
+++ b/data/pokemon/dex_entries/flareon.asm
diff --git a/data/pokedex/entries/forretress.asm b/data/pokemon/dex_entries/forretress.asm
index 8644b4b39..8644b4b39 100644
--- a/data/pokedex/entries/forretress.asm
+++ b/data/pokemon/dex_entries/forretress.asm
diff --git a/data/pokedex/entries/furret.asm b/data/pokemon/dex_entries/furret.asm
index 653a3dead..653a3dead 100644
--- a/data/pokedex/entries/furret.asm
+++ b/data/pokemon/dex_entries/furret.asm
diff --git a/data/pokedex/entries/gastly.asm b/data/pokemon/dex_entries/gastly.asm
index db7f6d57d..db7f6d57d 100644
--- a/data/pokedex/entries/gastly.asm
+++ b/data/pokemon/dex_entries/gastly.asm
diff --git a/data/pokedex/entries/gengar.asm b/data/pokemon/dex_entries/gengar.asm
index e9650fb39..e9650fb39 100644
--- a/data/pokedex/entries/gengar.asm
+++ b/data/pokemon/dex_entries/gengar.asm
diff --git a/data/pokedex/entries/geodude.asm b/data/pokemon/dex_entries/geodude.asm
index 389ce042a..389ce042a 100644
--- a/data/pokedex/entries/geodude.asm
+++ b/data/pokemon/dex_entries/geodude.asm
diff --git a/data/pokedex/entries/girafarig.asm b/data/pokemon/dex_entries/girafarig.asm
index 527aa9807..527aa9807 100644
--- a/data/pokedex/entries/girafarig.asm
+++ b/data/pokemon/dex_entries/girafarig.asm
diff --git a/data/pokedex/entries/gligar.asm b/data/pokemon/dex_entries/gligar.asm
index 43c4c95ce..43c4c95ce 100644
--- a/data/pokedex/entries/gligar.asm
+++ b/data/pokemon/dex_entries/gligar.asm
diff --git a/data/pokedex/entries/gloom.asm b/data/pokemon/dex_entries/gloom.asm
index 0552a8d0c..0552a8d0c 100644
--- a/data/pokedex/entries/gloom.asm
+++ b/data/pokemon/dex_entries/gloom.asm
diff --git a/data/pokedex/entries/golbat.asm b/data/pokemon/dex_entries/golbat.asm
index 434108bf4..434108bf4 100644
--- a/data/pokedex/entries/golbat.asm
+++ b/data/pokemon/dex_entries/golbat.asm
diff --git a/data/pokedex/entries/goldeen.asm b/data/pokemon/dex_entries/goldeen.asm
index 101edf434..101edf434 100644
--- a/data/pokedex/entries/goldeen.asm
+++ b/data/pokemon/dex_entries/goldeen.asm
diff --git a/data/pokedex/entries/golduck.asm b/data/pokemon/dex_entries/golduck.asm
index b38cfd2dc..b38cfd2dc 100644
--- a/data/pokedex/entries/golduck.asm
+++ b/data/pokemon/dex_entries/golduck.asm
diff --git a/data/pokedex/entries/golem.asm b/data/pokemon/dex_entries/golem.asm
index dbb5a8e3d..dbb5a8e3d 100644
--- a/data/pokedex/entries/golem.asm
+++ b/data/pokemon/dex_entries/golem.asm
diff --git a/data/pokedex/entries/granbull.asm b/data/pokemon/dex_entries/granbull.asm
index 15f3e194c..15f3e194c 100644
--- a/data/pokedex/entries/granbull.asm
+++ b/data/pokemon/dex_entries/granbull.asm
diff --git a/data/pokedex/entries/graveler.asm b/data/pokemon/dex_entries/graveler.asm
index 3bf04148c..3bf04148c 100644
--- a/data/pokedex/entries/graveler.asm
+++ b/data/pokemon/dex_entries/graveler.asm
diff --git a/data/pokedex/entries/grimer.asm b/data/pokemon/dex_entries/grimer.asm
index bda09cf94..bda09cf94 100644
--- a/data/pokedex/entries/grimer.asm
+++ b/data/pokemon/dex_entries/grimer.asm
diff --git a/data/pokedex/entries/growlithe.asm b/data/pokemon/dex_entries/growlithe.asm
index cd261d886..cd261d886 100644
--- a/data/pokedex/entries/growlithe.asm
+++ b/data/pokemon/dex_entries/growlithe.asm
diff --git a/data/pokedex/entries/gyarados.asm b/data/pokemon/dex_entries/gyarados.asm
index 767380680..767380680 100644
--- a/data/pokedex/entries/gyarados.asm
+++ b/data/pokemon/dex_entries/gyarados.asm
diff --git a/data/pokedex/entries/haunter.asm b/data/pokemon/dex_entries/haunter.asm
index 6efe4b15c..6efe4b15c 100644
--- a/data/pokedex/entries/haunter.asm
+++ b/data/pokemon/dex_entries/haunter.asm
diff --git a/data/pokedex/entries/heracross.asm b/data/pokemon/dex_entries/heracross.asm
index ed709b526..ed709b526 100644
--- a/data/pokedex/entries/heracross.asm
+++ b/data/pokemon/dex_entries/heracross.asm
diff --git a/data/pokedex/entries/hitmonchan.asm b/data/pokemon/dex_entries/hitmonchan.asm
index e5686b1a5..e5686b1a5 100644
--- a/data/pokedex/entries/hitmonchan.asm
+++ b/data/pokemon/dex_entries/hitmonchan.asm
diff --git a/data/pokedex/entries/hitmonlee.asm b/data/pokemon/dex_entries/hitmonlee.asm
index 0215d3bdc..0215d3bdc 100644
--- a/data/pokedex/entries/hitmonlee.asm
+++ b/data/pokemon/dex_entries/hitmonlee.asm
diff --git a/data/pokedex/entries/hitmontop.asm b/data/pokemon/dex_entries/hitmontop.asm
index 14175ec8a..14175ec8a 100644
--- a/data/pokedex/entries/hitmontop.asm
+++ b/data/pokemon/dex_entries/hitmontop.asm
diff --git a/data/pokedex/entries/ho_oh.asm b/data/pokemon/dex_entries/ho_oh.asm
index 1d74cd058..1d74cd058 100644
--- a/data/pokedex/entries/ho_oh.asm
+++ b/data/pokemon/dex_entries/ho_oh.asm
diff --git a/data/pokedex/entries/hoothoot.asm b/data/pokemon/dex_entries/hoothoot.asm
index 88039eea8..88039eea8 100644
--- a/data/pokedex/entries/hoothoot.asm
+++ b/data/pokemon/dex_entries/hoothoot.asm
diff --git a/data/pokedex/entries/hoppip.asm b/data/pokemon/dex_entries/hoppip.asm
index 734ddc766..734ddc766 100644
--- a/data/pokedex/entries/hoppip.asm
+++ b/data/pokemon/dex_entries/hoppip.asm
diff --git a/data/pokedex/entries/horsea.asm b/data/pokemon/dex_entries/horsea.asm
index dd50057e7..dd50057e7 100644
--- a/data/pokedex/entries/horsea.asm
+++ b/data/pokemon/dex_entries/horsea.asm
diff --git a/data/pokedex/entries/houndoom.asm b/data/pokemon/dex_entries/houndoom.asm
index 6a21602f3..6a21602f3 100644
--- a/data/pokedex/entries/houndoom.asm
+++ b/data/pokemon/dex_entries/houndoom.asm
diff --git a/data/pokedex/entries/houndour.asm b/data/pokemon/dex_entries/houndour.asm
index 5fa89fe85..5fa89fe85 100644
--- a/data/pokedex/entries/houndour.asm
+++ b/data/pokemon/dex_entries/houndour.asm
diff --git a/data/pokedex/entries/hypno.asm b/data/pokemon/dex_entries/hypno.asm
index 2309a6bfa..2309a6bfa 100644
--- a/data/pokedex/entries/hypno.asm
+++ b/data/pokemon/dex_entries/hypno.asm
diff --git a/data/pokedex/entries/igglybuff.asm b/data/pokemon/dex_entries/igglybuff.asm
index aa1c1cabf..aa1c1cabf 100644
--- a/data/pokedex/entries/igglybuff.asm
+++ b/data/pokemon/dex_entries/igglybuff.asm
diff --git a/data/pokedex/entries/ivysaur.asm b/data/pokemon/dex_entries/ivysaur.asm
index 66d16d323..66d16d323 100644
--- a/data/pokedex/entries/ivysaur.asm
+++ b/data/pokemon/dex_entries/ivysaur.asm
diff --git a/data/pokedex/entries/jigglypuff.asm b/data/pokemon/dex_entries/jigglypuff.asm
index 01a3b4480..01a3b4480 100644
--- a/data/pokedex/entries/jigglypuff.asm
+++ b/data/pokemon/dex_entries/jigglypuff.asm
diff --git a/data/pokedex/entries/jolteon.asm b/data/pokemon/dex_entries/jolteon.asm
index 9b9149d9a..9b9149d9a 100644
--- a/data/pokedex/entries/jolteon.asm
+++ b/data/pokemon/dex_entries/jolteon.asm
diff --git a/data/pokedex/entries/jumpluff.asm b/data/pokemon/dex_entries/jumpluff.asm
index 0aade0b75..0aade0b75 100644
--- a/data/pokedex/entries/jumpluff.asm
+++ b/data/pokemon/dex_entries/jumpluff.asm
diff --git a/data/pokedex/entries/jynx.asm b/data/pokemon/dex_entries/jynx.asm
index b4b9eac8c..b4b9eac8c 100644
--- a/data/pokedex/entries/jynx.asm
+++ b/data/pokemon/dex_entries/jynx.asm
diff --git a/data/pokedex/entries/kabuto.asm b/data/pokemon/dex_entries/kabuto.asm
index 9231fb9be..9231fb9be 100644
--- a/data/pokedex/entries/kabuto.asm
+++ b/data/pokemon/dex_entries/kabuto.asm
diff --git a/data/pokedex/entries/kabutops.asm b/data/pokemon/dex_entries/kabutops.asm
index 8f5e1348b..8f5e1348b 100644
--- a/data/pokedex/entries/kabutops.asm
+++ b/data/pokemon/dex_entries/kabutops.asm
diff --git a/data/pokedex/entries/kadabra.asm b/data/pokemon/dex_entries/kadabra.asm
index 26226724f..26226724f 100644
--- a/data/pokedex/entries/kadabra.asm
+++ b/data/pokemon/dex_entries/kadabra.asm
diff --git a/data/pokedex/entries/kakuna.asm b/data/pokemon/dex_entries/kakuna.asm
index 469e14bf6..469e14bf6 100644
--- a/data/pokedex/entries/kakuna.asm
+++ b/data/pokemon/dex_entries/kakuna.asm
diff --git a/data/pokedex/entries/kangaskhan.asm b/data/pokemon/dex_entries/kangaskhan.asm
index ec2050845..ec2050845 100644
--- a/data/pokedex/entries/kangaskhan.asm
+++ b/data/pokemon/dex_entries/kangaskhan.asm
diff --git a/data/pokedex/entries/kingdra.asm b/data/pokemon/dex_entries/kingdra.asm
index 555601b51..555601b51 100644
--- a/data/pokedex/entries/kingdra.asm
+++ b/data/pokemon/dex_entries/kingdra.asm
diff --git a/data/pokedex/entries/kingler.asm b/data/pokemon/dex_entries/kingler.asm
index 25685d517..25685d517 100644
--- a/data/pokedex/entries/kingler.asm
+++ b/data/pokemon/dex_entries/kingler.asm
diff --git a/data/pokedex/entries/koffing.asm b/data/pokemon/dex_entries/koffing.asm
index 20bde8671..20bde8671 100644
--- a/data/pokedex/entries/koffing.asm
+++ b/data/pokemon/dex_entries/koffing.asm
diff --git a/data/pokedex/entries/krabby.asm b/data/pokemon/dex_entries/krabby.asm
index 2435cd64d..2435cd64d 100644
--- a/data/pokedex/entries/krabby.asm
+++ b/data/pokemon/dex_entries/krabby.asm
diff --git a/data/pokedex/entries/lanturn.asm b/data/pokemon/dex_entries/lanturn.asm
index 3aa2b5523..3aa2b5523 100644
--- a/data/pokedex/entries/lanturn.asm
+++ b/data/pokemon/dex_entries/lanturn.asm
diff --git a/data/pokedex/entries/lapras.asm b/data/pokemon/dex_entries/lapras.asm
index 550d6e12c..550d6e12c 100644
--- a/data/pokedex/entries/lapras.asm
+++ b/data/pokemon/dex_entries/lapras.asm
diff --git a/data/pokedex/entries/larvitar.asm b/data/pokemon/dex_entries/larvitar.asm
index 14ec08c7b..14ec08c7b 100644
--- a/data/pokedex/entries/larvitar.asm
+++ b/data/pokemon/dex_entries/larvitar.asm
diff --git a/data/pokedex/entries/ledian.asm b/data/pokemon/dex_entries/ledian.asm
index a112aa722..a112aa722 100644
--- a/data/pokedex/entries/ledian.asm
+++ b/data/pokemon/dex_entries/ledian.asm
diff --git a/data/pokedex/entries/ledyba.asm b/data/pokemon/dex_entries/ledyba.asm
index 1e62ab4b1..1e62ab4b1 100644
--- a/data/pokedex/entries/ledyba.asm
+++ b/data/pokemon/dex_entries/ledyba.asm
diff --git a/data/pokedex/entries/lickitung.asm b/data/pokemon/dex_entries/lickitung.asm
index 0003f14dc..0003f14dc 100644
--- a/data/pokedex/entries/lickitung.asm
+++ b/data/pokemon/dex_entries/lickitung.asm
diff --git a/data/pokedex/entries/lugia.asm b/data/pokemon/dex_entries/lugia.asm
index c15345300..c15345300 100644
--- a/data/pokedex/entries/lugia.asm
+++ b/data/pokemon/dex_entries/lugia.asm
diff --git a/data/pokedex/entries/machamp.asm b/data/pokemon/dex_entries/machamp.asm
index 0ff42bf5f..0ff42bf5f 100644
--- a/data/pokedex/entries/machamp.asm
+++ b/data/pokemon/dex_entries/machamp.asm
diff --git a/data/pokedex/entries/machoke.asm b/data/pokemon/dex_entries/machoke.asm
index 53523a832..53523a832 100644
--- a/data/pokedex/entries/machoke.asm
+++ b/data/pokemon/dex_entries/machoke.asm
diff --git a/data/pokedex/entries/machop.asm b/data/pokemon/dex_entries/machop.asm
index aba71bc04..aba71bc04 100644
--- a/data/pokedex/entries/machop.asm
+++ b/data/pokemon/dex_entries/machop.asm
diff --git a/data/pokedex/entries/magby.asm b/data/pokemon/dex_entries/magby.asm
index 53f9e1129..53f9e1129 100644
--- a/data/pokedex/entries/magby.asm
+++ b/data/pokemon/dex_entries/magby.asm
diff --git a/data/pokedex/entries/magcargo.asm b/data/pokemon/dex_entries/magcargo.asm
index 5f1122906..5f1122906 100644
--- a/data/pokedex/entries/magcargo.asm
+++ b/data/pokemon/dex_entries/magcargo.asm
diff --git a/data/pokedex/entries/magikarp.asm b/data/pokemon/dex_entries/magikarp.asm
index 765840899..765840899 100644
--- a/data/pokedex/entries/magikarp.asm
+++ b/data/pokemon/dex_entries/magikarp.asm
diff --git a/data/pokedex/entries/magmar.asm b/data/pokemon/dex_entries/magmar.asm
index 1bfa961f9..1bfa961f9 100644
--- a/data/pokedex/entries/magmar.asm
+++ b/data/pokemon/dex_entries/magmar.asm
diff --git a/data/pokedex/entries/magnemite.asm b/data/pokemon/dex_entries/magnemite.asm
index e7703e050..e7703e050 100644
--- a/data/pokedex/entries/magnemite.asm
+++ b/data/pokemon/dex_entries/magnemite.asm
diff --git a/data/pokedex/entries/magneton.asm b/data/pokemon/dex_entries/magneton.asm
index 115506ad6..115506ad6 100644
--- a/data/pokedex/entries/magneton.asm
+++ b/data/pokemon/dex_entries/magneton.asm
diff --git a/data/pokedex/entries/mankey.asm b/data/pokemon/dex_entries/mankey.asm
index 59dfc4919..59dfc4919 100644
--- a/data/pokedex/entries/mankey.asm
+++ b/data/pokemon/dex_entries/mankey.asm
diff --git a/data/pokedex/entries/mantine.asm b/data/pokemon/dex_entries/mantine.asm
index 880c4f179..880c4f179 100644
--- a/data/pokedex/entries/mantine.asm
+++ b/data/pokemon/dex_entries/mantine.asm
diff --git a/data/pokedex/entries/mareep.asm b/data/pokemon/dex_entries/mareep.asm
index 94f78ee31..94f78ee31 100644
--- a/data/pokedex/entries/mareep.asm
+++ b/data/pokemon/dex_entries/mareep.asm
diff --git a/data/pokedex/entries/marill.asm b/data/pokemon/dex_entries/marill.asm
index 6afbc2902..6afbc2902 100644
--- a/data/pokedex/entries/marill.asm
+++ b/data/pokemon/dex_entries/marill.asm
diff --git a/data/pokedex/entries/marowak.asm b/data/pokemon/dex_entries/marowak.asm
index 01baf04e3..01baf04e3 100644
--- a/data/pokedex/entries/marowak.asm
+++ b/data/pokemon/dex_entries/marowak.asm
diff --git a/data/pokedex/entries/meganium.asm b/data/pokemon/dex_entries/meganium.asm
index dead64ff5..dead64ff5 100644
--- a/data/pokedex/entries/meganium.asm
+++ b/data/pokemon/dex_entries/meganium.asm
diff --git a/data/pokedex/entries/meowth.asm b/data/pokemon/dex_entries/meowth.asm
index 9fe66977b..9fe66977b 100644
--- a/data/pokedex/entries/meowth.asm
+++ b/data/pokemon/dex_entries/meowth.asm
diff --git a/data/pokedex/entries/metapod.asm b/data/pokemon/dex_entries/metapod.asm
index b2c6b78b7..b2c6b78b7 100644
--- a/data/pokedex/entries/metapod.asm
+++ b/data/pokemon/dex_entries/metapod.asm
diff --git a/data/pokedex/entries/mew.asm b/data/pokemon/dex_entries/mew.asm
index 9da7f6a17..9da7f6a17 100644
--- a/data/pokedex/entries/mew.asm
+++ b/data/pokemon/dex_entries/mew.asm
diff --git a/data/pokedex/entries/mewtwo.asm b/data/pokemon/dex_entries/mewtwo.asm
index eb41ebb90..eb41ebb90 100644
--- a/data/pokedex/entries/mewtwo.asm
+++ b/data/pokemon/dex_entries/mewtwo.asm
diff --git a/data/pokedex/entries/miltank.asm b/data/pokemon/dex_entries/miltank.asm
index 1f85ef668..1f85ef668 100644
--- a/data/pokedex/entries/miltank.asm
+++ b/data/pokemon/dex_entries/miltank.asm
diff --git a/data/pokedex/entries/misdreavus.asm b/data/pokemon/dex_entries/misdreavus.asm
index c3f1b002a..c3f1b002a 100644
--- a/data/pokedex/entries/misdreavus.asm
+++ b/data/pokemon/dex_entries/misdreavus.asm
diff --git a/data/pokedex/entries/moltres.asm b/data/pokemon/dex_entries/moltres.asm
index f459d622e..f459d622e 100644
--- a/data/pokedex/entries/moltres.asm
+++ b/data/pokemon/dex_entries/moltres.asm
diff --git a/data/pokedex/entries/mr__mime.asm b/data/pokemon/dex_entries/mr__mime.asm
index dce25be67..dce25be67 100644
--- a/data/pokedex/entries/mr__mime.asm
+++ b/data/pokemon/dex_entries/mr__mime.asm
diff --git a/data/pokedex/entries/muk.asm b/data/pokemon/dex_entries/muk.asm
index 49512c99f..49512c99f 100644
--- a/data/pokedex/entries/muk.asm
+++ b/data/pokemon/dex_entries/muk.asm
diff --git a/data/pokedex/entries/murkrow.asm b/data/pokemon/dex_entries/murkrow.asm
index 6a0f42145..6a0f42145 100644
--- a/data/pokedex/entries/murkrow.asm
+++ b/data/pokemon/dex_entries/murkrow.asm
diff --git a/data/pokedex/entries/natu.asm b/data/pokemon/dex_entries/natu.asm
index 20958dbff..20958dbff 100644
--- a/data/pokedex/entries/natu.asm
+++ b/data/pokemon/dex_entries/natu.asm
diff --git a/data/pokedex/entries/nidoking.asm b/data/pokemon/dex_entries/nidoking.asm
index 97c203064..97c203064 100644
--- a/data/pokedex/entries/nidoking.asm
+++ b/data/pokemon/dex_entries/nidoking.asm
diff --git a/data/pokedex/entries/nidoqueen.asm b/data/pokemon/dex_entries/nidoqueen.asm
index c0f711eb4..c0f711eb4 100644
--- a/data/pokedex/entries/nidoqueen.asm
+++ b/data/pokemon/dex_entries/nidoqueen.asm
diff --git a/data/pokedex/entries/nidoran_f.asm b/data/pokemon/dex_entries/nidoran_f.asm
index 4e7299b0d..4e7299b0d 100644
--- a/data/pokedex/entries/nidoran_f.asm
+++ b/data/pokemon/dex_entries/nidoran_f.asm
diff --git a/data/pokedex/entries/nidoran_m.asm b/data/pokemon/dex_entries/nidoran_m.asm
index 8970afc36..8970afc36 100644
--- a/data/pokedex/entries/nidoran_m.asm
+++ b/data/pokemon/dex_entries/nidoran_m.asm
diff --git a/data/pokedex/entries/nidorina.asm b/data/pokemon/dex_entries/nidorina.asm
index 93c1e164d..93c1e164d 100644
--- a/data/pokedex/entries/nidorina.asm
+++ b/data/pokemon/dex_entries/nidorina.asm
diff --git a/data/pokedex/entries/nidorino.asm b/data/pokemon/dex_entries/nidorino.asm
index 6b1403ad2..6b1403ad2 100644
--- a/data/pokedex/entries/nidorino.asm
+++ b/data/pokemon/dex_entries/nidorino.asm
diff --git a/data/pokedex/entries/ninetales.asm b/data/pokemon/dex_entries/ninetales.asm
index fd3a66ffb..fd3a66ffb 100644
--- a/data/pokedex/entries/ninetales.asm
+++ b/data/pokemon/dex_entries/ninetales.asm
diff --git a/data/pokedex/entries/noctowl.asm b/data/pokemon/dex_entries/noctowl.asm
index b939cfe05..b939cfe05 100644
--- a/data/pokedex/entries/noctowl.asm
+++ b/data/pokemon/dex_entries/noctowl.asm
diff --git a/data/pokedex/entries/octillery.asm b/data/pokemon/dex_entries/octillery.asm
index 902c1bf9a..902c1bf9a 100644
--- a/data/pokedex/entries/octillery.asm
+++ b/data/pokemon/dex_entries/octillery.asm
diff --git a/data/pokedex/entries/oddish.asm b/data/pokemon/dex_entries/oddish.asm
index 84560c113..84560c113 100644
--- a/data/pokedex/entries/oddish.asm
+++ b/data/pokemon/dex_entries/oddish.asm
diff --git a/data/pokedex/entries/omanyte.asm b/data/pokemon/dex_entries/omanyte.asm
index 9f7948fe0..9f7948fe0 100644
--- a/data/pokedex/entries/omanyte.asm
+++ b/data/pokemon/dex_entries/omanyte.asm
diff --git a/data/pokedex/entries/omastar.asm b/data/pokemon/dex_entries/omastar.asm
index 65ba92356..65ba92356 100644
--- a/data/pokedex/entries/omastar.asm
+++ b/data/pokemon/dex_entries/omastar.asm
diff --git a/data/pokedex/entries/onix.asm b/data/pokemon/dex_entries/onix.asm
index f0f88fcff..f0f88fcff 100644
--- a/data/pokedex/entries/onix.asm
+++ b/data/pokemon/dex_entries/onix.asm
diff --git a/data/pokedex/entries/paras.asm b/data/pokemon/dex_entries/paras.asm
index 152e1fcc0..152e1fcc0 100644
--- a/data/pokedex/entries/paras.asm
+++ b/data/pokemon/dex_entries/paras.asm
diff --git a/data/pokedex/entries/parasect.asm b/data/pokemon/dex_entries/parasect.asm
index bd912212e..bd912212e 100644
--- a/data/pokedex/entries/parasect.asm
+++ b/data/pokemon/dex_entries/parasect.asm
diff --git a/data/pokedex/entries/persian.asm b/data/pokemon/dex_entries/persian.asm
index 7ce74f6f8..7ce74f6f8 100644
--- a/data/pokedex/entries/persian.asm
+++ b/data/pokemon/dex_entries/persian.asm
diff --git a/data/pokedex/entries/phanpy.asm b/data/pokemon/dex_entries/phanpy.asm
index a7393e546..a7393e546 100644
--- a/data/pokedex/entries/phanpy.asm
+++ b/data/pokemon/dex_entries/phanpy.asm
diff --git a/data/pokedex/entries/pichu.asm b/data/pokemon/dex_entries/pichu.asm
index b31976aaf..b31976aaf 100644
--- a/data/pokedex/entries/pichu.asm
+++ b/data/pokemon/dex_entries/pichu.asm
diff --git a/data/pokedex/entries/pidgeot.asm b/data/pokemon/dex_entries/pidgeot.asm
index 16a877427..16a877427 100644
--- a/data/pokedex/entries/pidgeot.asm
+++ b/data/pokemon/dex_entries/pidgeot.asm
diff --git a/data/pokedex/entries/pidgeotto.asm b/data/pokemon/dex_entries/pidgeotto.asm
index 1ab6fde5c..1ab6fde5c 100644
--- a/data/pokedex/entries/pidgeotto.asm
+++ b/data/pokemon/dex_entries/pidgeotto.asm
diff --git a/data/pokedex/entries/pidgey.asm b/data/pokemon/dex_entries/pidgey.asm
index 491dfb9b9..491dfb9b9 100644
--- a/data/pokedex/entries/pidgey.asm
+++ b/data/pokemon/dex_entries/pidgey.asm
diff --git a/data/pokedex/entries/pikachu.asm b/data/pokemon/dex_entries/pikachu.asm
index 680e24673..680e24673 100644
--- a/data/pokedex/entries/pikachu.asm
+++ b/data/pokemon/dex_entries/pikachu.asm
diff --git a/data/pokedex/entries/piloswine.asm b/data/pokemon/dex_entries/piloswine.asm
index 326ea4503..326ea4503 100644
--- a/data/pokedex/entries/piloswine.asm
+++ b/data/pokemon/dex_entries/piloswine.asm
diff --git a/data/pokedex/entries/pineco.asm b/data/pokemon/dex_entries/pineco.asm
index 9781b094e..9781b094e 100644
--- a/data/pokedex/entries/pineco.asm
+++ b/data/pokemon/dex_entries/pineco.asm
diff --git a/data/pokedex/entries/pinsir.asm b/data/pokemon/dex_entries/pinsir.asm
index c236b3594..c236b3594 100644
--- a/data/pokedex/entries/pinsir.asm
+++ b/data/pokemon/dex_entries/pinsir.asm
diff --git a/data/pokedex/entries/politoed.asm b/data/pokemon/dex_entries/politoed.asm
index 0dea3d572..0dea3d572 100644
--- a/data/pokedex/entries/politoed.asm
+++ b/data/pokemon/dex_entries/politoed.asm
diff --git a/data/pokedex/entries/poliwag.asm b/data/pokemon/dex_entries/poliwag.asm
index d21677cc4..d21677cc4 100644
--- a/data/pokedex/entries/poliwag.asm
+++ b/data/pokemon/dex_entries/poliwag.asm
diff --git a/data/pokedex/entries/poliwhirl.asm b/data/pokemon/dex_entries/poliwhirl.asm
index 69a6ee206..69a6ee206 100644
--- a/data/pokedex/entries/poliwhirl.asm
+++ b/data/pokemon/dex_entries/poliwhirl.asm
diff --git a/data/pokedex/entries/poliwrath.asm b/data/pokemon/dex_entries/poliwrath.asm
index bb3e7dda5..bb3e7dda5 100644
--- a/data/pokedex/entries/poliwrath.asm
+++ b/data/pokemon/dex_entries/poliwrath.asm
diff --git a/data/pokedex/entries/ponyta.asm b/data/pokemon/dex_entries/ponyta.asm
index fa123cde1..fa123cde1 100644
--- a/data/pokedex/entries/ponyta.asm
+++ b/data/pokemon/dex_entries/ponyta.asm
diff --git a/data/pokedex/entries/porygon.asm b/data/pokemon/dex_entries/porygon.asm
index 9a73c9623..9a73c9623 100644
--- a/data/pokedex/entries/porygon.asm
+++ b/data/pokemon/dex_entries/porygon.asm
diff --git a/data/pokedex/entries/porygon2.asm b/data/pokemon/dex_entries/porygon2.asm
index 8591e0039..8591e0039 100644
--- a/data/pokedex/entries/porygon2.asm
+++ b/data/pokemon/dex_entries/porygon2.asm
diff --git a/data/pokedex/entries/primeape.asm b/data/pokemon/dex_entries/primeape.asm
index 7d7f211cc..7d7f211cc 100644
--- a/data/pokedex/entries/primeape.asm
+++ b/data/pokemon/dex_entries/primeape.asm
diff --git a/data/pokedex/entries/psyduck.asm b/data/pokemon/dex_entries/psyduck.asm
index 088b4ff76..088b4ff76 100644
--- a/data/pokedex/entries/psyduck.asm
+++ b/data/pokemon/dex_entries/psyduck.asm
diff --git a/data/pokedex/entries/pupitar.asm b/data/pokemon/dex_entries/pupitar.asm
index d35e457ad..d35e457ad 100644
--- a/data/pokedex/entries/pupitar.asm
+++ b/data/pokemon/dex_entries/pupitar.asm
diff --git a/data/pokedex/entries/quagsire.asm b/data/pokemon/dex_entries/quagsire.asm
index 053058d54..053058d54 100644
--- a/data/pokedex/entries/quagsire.asm
+++ b/data/pokemon/dex_entries/quagsire.asm
diff --git a/data/pokedex/entries/quilava.asm b/data/pokemon/dex_entries/quilava.asm
index aaf8069af..aaf8069af 100644
--- a/data/pokedex/entries/quilava.asm
+++ b/data/pokemon/dex_entries/quilava.asm
diff --git a/data/pokedex/entries/qwilfish.asm b/data/pokemon/dex_entries/qwilfish.asm
index d9529146f..d9529146f 100644
--- a/data/pokedex/entries/qwilfish.asm
+++ b/data/pokemon/dex_entries/qwilfish.asm
diff --git a/data/pokedex/entries/raichu.asm b/data/pokemon/dex_entries/raichu.asm
index 886aef283..886aef283 100644
--- a/data/pokedex/entries/raichu.asm
+++ b/data/pokemon/dex_entries/raichu.asm
diff --git a/data/pokedex/entries/raikou.asm b/data/pokemon/dex_entries/raikou.asm
index 315eb84ae..315eb84ae 100644
--- a/data/pokedex/entries/raikou.asm
+++ b/data/pokemon/dex_entries/raikou.asm
diff --git a/data/pokedex/entries/rapidash.asm b/data/pokemon/dex_entries/rapidash.asm
index ae98e2cb8..ae98e2cb8 100644
--- a/data/pokedex/entries/rapidash.asm
+++ b/data/pokemon/dex_entries/rapidash.asm
diff --git a/data/pokedex/entries/raticate.asm b/data/pokemon/dex_entries/raticate.asm
index f009c29aa..f009c29aa 100644
--- a/data/pokedex/entries/raticate.asm
+++ b/data/pokemon/dex_entries/raticate.asm
diff --git a/data/pokedex/entries/rattata.asm b/data/pokemon/dex_entries/rattata.asm
index 0a066eb74..0a066eb74 100644
--- a/data/pokedex/entries/rattata.asm
+++ b/data/pokemon/dex_entries/rattata.asm
diff --git a/data/pokedex/entries/remoraid.asm b/data/pokemon/dex_entries/remoraid.asm
index aaa6f1a49..aaa6f1a49 100644
--- a/data/pokedex/entries/remoraid.asm
+++ b/data/pokemon/dex_entries/remoraid.asm
diff --git a/data/pokedex/entries/rhydon.asm b/data/pokemon/dex_entries/rhydon.asm
index c820666b3..c820666b3 100644
--- a/data/pokedex/entries/rhydon.asm
+++ b/data/pokemon/dex_entries/rhydon.asm
diff --git a/data/pokedex/entries/rhyhorn.asm b/data/pokemon/dex_entries/rhyhorn.asm
index b2f26e204..b2f26e204 100644
--- a/data/pokedex/entries/rhyhorn.asm
+++ b/data/pokemon/dex_entries/rhyhorn.asm
diff --git a/data/pokedex/entries/sandshrew.asm b/data/pokemon/dex_entries/sandshrew.asm
index 2ef83f9c3..2ef83f9c3 100644
--- a/data/pokedex/entries/sandshrew.asm
+++ b/data/pokemon/dex_entries/sandshrew.asm
diff --git a/data/pokedex/entries/sandslash.asm b/data/pokemon/dex_entries/sandslash.asm
index fd2492f91..fd2492f91 100644
--- a/data/pokedex/entries/sandslash.asm
+++ b/data/pokemon/dex_entries/sandslash.asm
diff --git a/data/pokedex/entries/scizor.asm b/data/pokemon/dex_entries/scizor.asm
index a000a6586..a000a6586 100644
--- a/data/pokedex/entries/scizor.asm
+++ b/data/pokemon/dex_entries/scizor.asm
diff --git a/data/pokedex/entries/scyther.asm b/data/pokemon/dex_entries/scyther.asm
index ca47c46b6..ca47c46b6 100644
--- a/data/pokedex/entries/scyther.asm
+++ b/data/pokemon/dex_entries/scyther.asm
diff --git a/data/pokedex/entries/seadra.asm b/data/pokemon/dex_entries/seadra.asm
index 91731c64a..91731c64a 100644
--- a/data/pokedex/entries/seadra.asm
+++ b/data/pokemon/dex_entries/seadra.asm
diff --git a/data/pokedex/entries/seaking.asm b/data/pokemon/dex_entries/seaking.asm
index 0d7d1fe48..0d7d1fe48 100644
--- a/data/pokedex/entries/seaking.asm
+++ b/data/pokemon/dex_entries/seaking.asm
diff --git a/data/pokedex/entries/seel.asm b/data/pokemon/dex_entries/seel.asm
index 53d179097..53d179097 100644
--- a/data/pokedex/entries/seel.asm
+++ b/data/pokemon/dex_entries/seel.asm
diff --git a/data/pokedex/entries/sentret.asm b/data/pokemon/dex_entries/sentret.asm
index 9e70418c8..9e70418c8 100644
--- a/data/pokedex/entries/sentret.asm
+++ b/data/pokemon/dex_entries/sentret.asm
diff --git a/data/pokedex/entries/shellder.asm b/data/pokemon/dex_entries/shellder.asm
index 0c7553c43..0c7553c43 100644
--- a/data/pokedex/entries/shellder.asm
+++ b/data/pokemon/dex_entries/shellder.asm
diff --git a/data/pokedex/entries/shuckle.asm b/data/pokemon/dex_entries/shuckle.asm
index 3795942e3..3795942e3 100644
--- a/data/pokedex/entries/shuckle.asm
+++ b/data/pokemon/dex_entries/shuckle.asm
diff --git a/data/pokedex/entries/skarmory.asm b/data/pokemon/dex_entries/skarmory.asm
index 2558065af..2558065af 100644
--- a/data/pokedex/entries/skarmory.asm
+++ b/data/pokemon/dex_entries/skarmory.asm
diff --git a/data/pokedex/entries/skiploom.asm b/data/pokemon/dex_entries/skiploom.asm
index f6e62266c..f6e62266c 100644
--- a/data/pokedex/entries/skiploom.asm
+++ b/data/pokemon/dex_entries/skiploom.asm
diff --git a/data/pokedex/entries/slowbro.asm b/data/pokemon/dex_entries/slowbro.asm
index fdfb36e98..fdfb36e98 100644
--- a/data/pokedex/entries/slowbro.asm
+++ b/data/pokemon/dex_entries/slowbro.asm
diff --git a/data/pokedex/entries/slowking.asm b/data/pokemon/dex_entries/slowking.asm
index f52bdb1b7..f52bdb1b7 100644
--- a/data/pokedex/entries/slowking.asm
+++ b/data/pokemon/dex_entries/slowking.asm
diff --git a/data/pokedex/entries/slowpoke.asm b/data/pokemon/dex_entries/slowpoke.asm
index 2341758f8..2341758f8 100644
--- a/data/pokedex/entries/slowpoke.asm
+++ b/data/pokemon/dex_entries/slowpoke.asm
diff --git a/data/pokedex/entries/slugma.asm b/data/pokemon/dex_entries/slugma.asm
index ea1fc01f2..ea1fc01f2 100644
--- a/data/pokedex/entries/slugma.asm
+++ b/data/pokemon/dex_entries/slugma.asm
diff --git a/data/pokedex/entries/smeargle.asm b/data/pokemon/dex_entries/smeargle.asm
index 8b265c1ea..8b265c1ea 100644
--- a/data/pokedex/entries/smeargle.asm
+++ b/data/pokemon/dex_entries/smeargle.asm
diff --git a/data/pokedex/entries/smoochum.asm b/data/pokemon/dex_entries/smoochum.asm
index b619b1720..b619b1720 100644
--- a/data/pokedex/entries/smoochum.asm
+++ b/data/pokemon/dex_entries/smoochum.asm
diff --git a/data/pokedex/entries/sneasel.asm b/data/pokemon/dex_entries/sneasel.asm
index 5c1e70f09..5c1e70f09 100644
--- a/data/pokedex/entries/sneasel.asm
+++ b/data/pokemon/dex_entries/sneasel.asm
diff --git a/data/pokedex/entries/snorlax.asm b/data/pokemon/dex_entries/snorlax.asm
index e56651fb8..e56651fb8 100644
--- a/data/pokedex/entries/snorlax.asm
+++ b/data/pokemon/dex_entries/snorlax.asm
diff --git a/data/pokedex/entries/snubbull.asm b/data/pokemon/dex_entries/snubbull.asm
index 97b27ed8f..97b27ed8f 100644
--- a/data/pokedex/entries/snubbull.asm
+++ b/data/pokemon/dex_entries/snubbull.asm
diff --git a/data/pokedex/entries/spearow.asm b/data/pokemon/dex_entries/spearow.asm
index 16b89d22f..16b89d22f 100644
--- a/data/pokedex/entries/spearow.asm
+++ b/data/pokemon/dex_entries/spearow.asm
diff --git a/data/pokedex/entries/spinarak.asm b/data/pokemon/dex_entries/spinarak.asm
index e6e4c7203..e6e4c7203 100644
--- a/data/pokedex/entries/spinarak.asm
+++ b/data/pokemon/dex_entries/spinarak.asm
diff --git a/data/pokedex/entries/squirtle.asm b/data/pokemon/dex_entries/squirtle.asm
index 6fd442a13..6fd442a13 100644
--- a/data/pokedex/entries/squirtle.asm
+++ b/data/pokemon/dex_entries/squirtle.asm
diff --git a/data/pokedex/entries/stantler.asm b/data/pokemon/dex_entries/stantler.asm
index 0fce8f2b5..0fce8f2b5 100644
--- a/data/pokedex/entries/stantler.asm
+++ b/data/pokemon/dex_entries/stantler.asm
diff --git a/data/pokedex/entries/starmie.asm b/data/pokemon/dex_entries/starmie.asm
index 83393b9c2..83393b9c2 100644
--- a/data/pokedex/entries/starmie.asm
+++ b/data/pokemon/dex_entries/starmie.asm
diff --git a/data/pokedex/entries/staryu.asm b/data/pokemon/dex_entries/staryu.asm
index 9f1fadc9c..9f1fadc9c 100644
--- a/data/pokedex/entries/staryu.asm
+++ b/data/pokemon/dex_entries/staryu.asm
diff --git a/data/pokedex/entries/steelix.asm b/data/pokemon/dex_entries/steelix.asm
index 6bbfe6c28..6bbfe6c28 100644
--- a/data/pokedex/entries/steelix.asm
+++ b/data/pokemon/dex_entries/steelix.asm
diff --git a/data/pokedex/entries/sudowoodo.asm b/data/pokemon/dex_entries/sudowoodo.asm
index 060db1d8d..060db1d8d 100644
--- a/data/pokedex/entries/sudowoodo.asm
+++ b/data/pokemon/dex_entries/sudowoodo.asm
diff --git a/data/pokedex/entries/suicune.asm b/data/pokemon/dex_entries/suicune.asm
index c60c002f7..c60c002f7 100644
--- a/data/pokedex/entries/suicune.asm
+++ b/data/pokemon/dex_entries/suicune.asm
diff --git a/data/pokedex/entries/sunflora.asm b/data/pokemon/dex_entries/sunflora.asm
index 2d0e78111..2d0e78111 100644
--- a/data/pokedex/entries/sunflora.asm
+++ b/data/pokemon/dex_entries/sunflora.asm
diff --git a/data/pokedex/entries/sunkern.asm b/data/pokemon/dex_entries/sunkern.asm
index 680e1799e..680e1799e 100644
--- a/data/pokedex/entries/sunkern.asm
+++ b/data/pokemon/dex_entries/sunkern.asm
diff --git a/data/pokedex/entries/swinub.asm b/data/pokemon/dex_entries/swinub.asm
index 3e6d61dc8..3e6d61dc8 100644
--- a/data/pokedex/entries/swinub.asm
+++ b/data/pokemon/dex_entries/swinub.asm
diff --git a/data/pokedex/entries/tangela.asm b/data/pokemon/dex_entries/tangela.asm
index 4e011b082..4e011b082 100644
--- a/data/pokedex/entries/tangela.asm
+++ b/data/pokemon/dex_entries/tangela.asm
diff --git a/data/pokedex/entries/tauros.asm b/data/pokemon/dex_entries/tauros.asm
index bd7851165..bd7851165 100644
--- a/data/pokedex/entries/tauros.asm
+++ b/data/pokemon/dex_entries/tauros.asm
diff --git a/data/pokedex/entries/teddiursa.asm b/data/pokemon/dex_entries/teddiursa.asm
index 35b32c322..35b32c322 100644
--- a/data/pokedex/entries/teddiursa.asm
+++ b/data/pokemon/dex_entries/teddiursa.asm
diff --git a/data/pokedex/entries/tentacool.asm b/data/pokemon/dex_entries/tentacool.asm
index 5ed4b4fa0..5ed4b4fa0 100644
--- a/data/pokedex/entries/tentacool.asm
+++ b/data/pokemon/dex_entries/tentacool.asm
diff --git a/data/pokedex/entries/tentacruel.asm b/data/pokemon/dex_entries/tentacruel.asm
index 27dad758f..27dad758f 100644
--- a/data/pokedex/entries/tentacruel.asm
+++ b/data/pokemon/dex_entries/tentacruel.asm
diff --git a/data/pokedex/entries/togepi.asm b/data/pokemon/dex_entries/togepi.asm
index eb185b1f1..eb185b1f1 100644
--- a/data/pokedex/entries/togepi.asm
+++ b/data/pokemon/dex_entries/togepi.asm
diff --git a/data/pokedex/entries/togetic.asm b/data/pokemon/dex_entries/togetic.asm
index 7d1519d73..7d1519d73 100644
--- a/data/pokedex/entries/togetic.asm
+++ b/data/pokemon/dex_entries/togetic.asm
diff --git a/data/pokedex/entries/totodile.asm b/data/pokemon/dex_entries/totodile.asm
index 78a1b761e..78a1b761e 100644
--- a/data/pokedex/entries/totodile.asm
+++ b/data/pokemon/dex_entries/totodile.asm
diff --git a/data/pokedex/entries/typhlosion.asm b/data/pokemon/dex_entries/typhlosion.asm
index e11823cf5..e11823cf5 100644
--- a/data/pokedex/entries/typhlosion.asm
+++ b/data/pokemon/dex_entries/typhlosion.asm
diff --git a/data/pokedex/entries/tyranitar.asm b/data/pokemon/dex_entries/tyranitar.asm
index 9786a6430..9786a6430 100644
--- a/data/pokedex/entries/tyranitar.asm
+++ b/data/pokemon/dex_entries/tyranitar.asm
diff --git a/data/pokedex/entries/tyrogue.asm b/data/pokemon/dex_entries/tyrogue.asm
index d8900c160..d8900c160 100644
--- a/data/pokedex/entries/tyrogue.asm
+++ b/data/pokemon/dex_entries/tyrogue.asm
diff --git a/data/pokedex/entries/umbreon.asm b/data/pokemon/dex_entries/umbreon.asm
index 483322f18..483322f18 100644
--- a/data/pokedex/entries/umbreon.asm
+++ b/data/pokemon/dex_entries/umbreon.asm
diff --git a/data/pokedex/entries/unown.asm b/data/pokemon/dex_entries/unown.asm
index 5be078b8a..5be078b8a 100644
--- a/data/pokedex/entries/unown.asm
+++ b/data/pokemon/dex_entries/unown.asm
diff --git a/data/pokedex/entries/ursaring.asm b/data/pokemon/dex_entries/ursaring.asm
index acf7626f9..acf7626f9 100644
--- a/data/pokedex/entries/ursaring.asm
+++ b/data/pokemon/dex_entries/ursaring.asm
diff --git a/data/pokedex/entries/vaporeon.asm b/data/pokemon/dex_entries/vaporeon.asm
index 36617899f..36617899f 100644
--- a/data/pokedex/entries/vaporeon.asm
+++ b/data/pokemon/dex_entries/vaporeon.asm
diff --git a/data/pokedex/entries/venomoth.asm b/data/pokemon/dex_entries/venomoth.asm
index 4ff583940..4ff583940 100644
--- a/data/pokedex/entries/venomoth.asm
+++ b/data/pokemon/dex_entries/venomoth.asm
diff --git a/data/pokedex/entries/venonat.asm b/data/pokemon/dex_entries/venonat.asm
index 8e52b4c82..8e52b4c82 100644
--- a/data/pokedex/entries/venonat.asm
+++ b/data/pokemon/dex_entries/venonat.asm
diff --git a/data/pokedex/entries/venusaur.asm b/data/pokemon/dex_entries/venusaur.asm
index 1b9cc6e43..1b9cc6e43 100644
--- a/data/pokedex/entries/venusaur.asm
+++ b/data/pokemon/dex_entries/venusaur.asm
diff --git a/data/pokedex/entries/victreebel.asm b/data/pokemon/dex_entries/victreebel.asm
index 552051572..552051572 100644
--- a/data/pokedex/entries/victreebel.asm
+++ b/data/pokemon/dex_entries/victreebel.asm
diff --git a/data/pokedex/entries/vileplume.asm b/data/pokemon/dex_entries/vileplume.asm
index cf2ea191d..cf2ea191d 100644
--- a/data/pokedex/entries/vileplume.asm
+++ b/data/pokemon/dex_entries/vileplume.asm
diff --git a/data/pokedex/entries/voltorb.asm b/data/pokemon/dex_entries/voltorb.asm
index 5a532e2d0..5a532e2d0 100644
--- a/data/pokedex/entries/voltorb.asm
+++ b/data/pokemon/dex_entries/voltorb.asm
diff --git a/data/pokedex/entries/vulpix.asm b/data/pokemon/dex_entries/vulpix.asm
index f5bbd03a1..f5bbd03a1 100644
--- a/data/pokedex/entries/vulpix.asm
+++ b/data/pokemon/dex_entries/vulpix.asm
diff --git a/data/pokedex/entries/wartortle.asm b/data/pokemon/dex_entries/wartortle.asm
index 927af5fd2..927af5fd2 100644
--- a/data/pokedex/entries/wartortle.asm
+++ b/data/pokemon/dex_entries/wartortle.asm
diff --git a/data/pokedex/entries/weedle.asm b/data/pokemon/dex_entries/weedle.asm
index 9b81fa11d..9b81fa11d 100644
--- a/data/pokedex/entries/weedle.asm
+++ b/data/pokemon/dex_entries/weedle.asm
diff --git a/data/pokedex/entries/weepinbell.asm b/data/pokemon/dex_entries/weepinbell.asm
index 81eb7c215..81eb7c215 100644
--- a/data/pokedex/entries/weepinbell.asm
+++ b/data/pokemon/dex_entries/weepinbell.asm
diff --git a/data/pokedex/entries/weezing.asm b/data/pokemon/dex_entries/weezing.asm
index 1a7b268fd..1a7b268fd 100644
--- a/data/pokedex/entries/weezing.asm
+++ b/data/pokemon/dex_entries/weezing.asm
diff --git a/data/pokedex/entries/wigglytuff.asm b/data/pokemon/dex_entries/wigglytuff.asm
index 8ba563cce..8ba563cce 100644
--- a/data/pokedex/entries/wigglytuff.asm
+++ b/data/pokemon/dex_entries/wigglytuff.asm
diff --git a/data/pokedex/entries/wobbuffet.asm b/data/pokemon/dex_entries/wobbuffet.asm
index 95aae69ab..95aae69ab 100644
--- a/data/pokedex/entries/wobbuffet.asm
+++ b/data/pokemon/dex_entries/wobbuffet.asm
diff --git a/data/pokedex/entries/wooper.asm b/data/pokemon/dex_entries/wooper.asm
index d612f2070..d612f2070 100644
--- a/data/pokedex/entries/wooper.asm
+++ b/data/pokemon/dex_entries/wooper.asm
diff --git a/data/pokedex/entries/xatu.asm b/data/pokemon/dex_entries/xatu.asm
index 21a53d8fc..21a53d8fc 100644
--- a/data/pokedex/entries/xatu.asm
+++ b/data/pokemon/dex_entries/xatu.asm
diff --git a/data/pokedex/entries/yanma.asm b/data/pokemon/dex_entries/yanma.asm
index 9843ad289..9843ad289 100644
--- a/data/pokedex/entries/yanma.asm
+++ b/data/pokemon/dex_entries/yanma.asm
diff --git a/data/pokedex/entries/zapdos.asm b/data/pokemon/dex_entries/zapdos.asm
index ea61198a0..ea61198a0 100644
--- a/data/pokedex/entries/zapdos.asm
+++ b/data/pokemon/dex_entries/zapdos.asm
diff --git a/data/pokedex/entries/zubat.asm b/data/pokemon/dex_entries/zubat.asm
index 8232f8bd6..8232f8bd6 100644
--- a/data/pokedex/entries/zubat.asm
+++ b/data/pokemon/dex_entries/zubat.asm
diff --git a/data/pokedex/entry_pointers.asm b/data/pokemon/dex_entry_pointers.asm
index c4ddc7280..c4ddc7280 100644
--- a/data/pokedex/entry_pointers.asm
+++ b/data/pokemon/dex_entry_pointers.asm
diff --git a/data/pokedex/order_alpha.asm b/data/pokemon/dex_order_alpha.asm
index 8fcb0acd1..8fcb0acd1 100644
--- a/data/pokedex/order_alpha.asm
+++ b/data/pokemon/dex_order_alpha.asm
diff --git a/data/pokedex/order_new.asm b/data/pokemon/dex_order_new.asm
index bf7e3d298..bf7e3d298 100644
--- a/data/pokedex/order_new.asm
+++ b/data/pokemon/dex_order_new.asm
diff --git a/data/egg_move_pointers.asm b/data/pokemon/egg_move_pointers.asm
index caa9ed7c0..caa9ed7c0 100644
--- a/data/egg_move_pointers.asm
+++ b/data/pokemon/egg_move_pointers.asm
diff --git a/data/pokemon/egg_moves.asm b/data/pokemon/egg_moves.asm
new file mode 100644
index 000000000..c1f9ae964
--- /dev/null
+++ b/data/pokemon/egg_moves.asm
@@ -0,0 +1,870 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Egg Moves", ROMX
+
+; All instances of Charm, Steel Wing, Sweet Scent, and Lovely Kiss were
+; removed from egg move lists in Crystal, because they are also TMs.
+
+; Staryu's egg moves were removed in Crystal, because Staryu is genderless
+; and can only breed with Ditto.
+
+
+INCLUDE "data/pokemon/egg_move_pointers.asm"
+
+
+EggMoves::
+
+BulbasaurEggMoves:
+ db LIGHT_SCREEN
+ db SKULL_BASH
+ db SAFEGUARD
+if !_CRYSTAL
+ db CHARM
+endc
+ db RAZOR_WIND
+ db PETAL_DANCE
+ db $ff
+
+CharmanderEggMoves:
+ db BELLY_DRUM
+ db ANCIENTPOWER
+ db ROCK_SLIDE
+ db BITE
+ db OUTRAGE
+ db BEAT_UP
+ db $ff
+
+SquirtleEggMoves:
+ db MIRROR_COAT
+ db HAZE
+ db MIST
+ db CONFUSION
+ db FORESIGHT
+ db FLAIL
+ db $ff
+
+PidgeyEggMoves:
+ db PURSUIT
+ db FAINT_ATTACK
+ db FORESIGHT
+if !_CRYSTAL
+ db STEEL_WING
+endc
+ db $ff
+
+RattataEggMoves:
+ db SCREECH
+ db FLAME_WHEEL
+ db FURY_SWIPES
+ db BITE
+ db COUNTER
+ db REVERSAL
+ db $ff
+
+SpearowEggMoves:
+ db FAINT_ATTACK
+ db FALSE_SWIPE
+ db SCARY_FACE
+ db QUICK_ATTACK
+ db TRI_ATTACK
+ db $ff
+
+EkansEggMoves:
+ db PURSUIT
+ db SLAM
+ db SPITE
+ db BEAT_UP
+if _CRYSTAL
+ db CRUNCH
+endc
+ db $ff
+
+SandshrewEggMoves:
+ db FLAIL
+ db SAFEGUARD
+ db COUNTER
+ db RAPID_SPIN
+if _CRYSTAL
+ db METAL_CLAW
+endc
+ db $ff
+
+NidoranFEggMoves:
+ db SUPERSONIC
+ db DISABLE
+ db TAKE_DOWN
+ db FOCUS_ENERGY
+ db CHARM
+ db COUNTER
+ db BEAT_UP
+ db $ff
+
+NidoranMEggMoves:
+ db SUPERSONIC
+ db DISABLE
+ db TAKE_DOWN
+ db CONFUSION
+ db AMNESIA
+ db COUNTER
+ db BEAT_UP
+ db $ff
+
+VulpixEggMoves:
+ db FAINT_ATTACK
+ db HYPNOSIS
+ db FLAIL
+ db SPITE
+ db DISABLE
+ db $ff
+
+ZubatEggMoves:
+ db QUICK_ATTACK
+ db PURSUIT
+ db FAINT_ATTACK
+ db GUST
+ db WHIRLWIND
+ db $ff
+
+OddishEggMoves:
+ db SWORDS_DANCE
+ db RAZOR_LEAF
+ db FLAIL
+ db SYNTHESIS
+if !_CRYSTAL
+ db CHARM
+endc
+ db $ff
+
+ParasEggMoves:
+ db FALSE_SWIPE
+ db SCREECH
+ db COUNTER
+ db PSYBEAM
+ db FLAIL
+if !_CRYSTAL
+ db SWEET_SCENT
+endc
+ db LIGHT_SCREEN
+ db PURSUIT
+ db $ff
+
+VenonatEggMoves:
+ db BATON_PASS
+ db SCREECH
+ db GIGA_DRAIN
+ db $ff
+
+DiglettEggMoves:
+ db FAINT_ATTACK
+ db SCREECH
+ db ANCIENTPOWER
+ db PURSUIT
+ db BEAT_UP
+ db $ff
+
+MeowthEggMoves:
+ db SPITE
+ db CHARM
+ db HYPNOSIS
+ db AMNESIA
+ db $ff
+
+PsyduckEggMoves:
+ db ICE_BEAM
+ db HYPNOSIS
+ db PSYBEAM
+ db FORESIGHT
+ db LIGHT_SCREEN
+ db FUTURE_SIGHT
+ db PSYCHIC_M
+if _CRYSTAL
+ db CROSS_CHOP
+endc
+ db $ff
+
+MankeyEggMoves:
+ db ROCK_SLIDE
+ db FORESIGHT
+ db MEDITATE
+ db COUNTER
+ db REVERSAL
+ db BEAT_UP
+ db $ff
+
+GrowlitheEggMoves:
+ db BODY_SLAM
+ db SAFEGUARD
+ db CRUNCH
+ db THRASH
+ db FIRE_SPIN
+ db $ff
+
+PoliwagEggMoves:
+ db MIST
+ db SPLASH
+ db BUBBLEBEAM
+ db HAZE
+ db MIND_READER
+ db $ff
+
+AbraEggMoves:
+ db LIGHT_SCREEN
+ db ENCORE
+ db BARRIER
+ db $ff
+
+MachopEggMoves:
+ db LIGHT_SCREEN
+ db MEDITATE
+ db ROLLING_KICK
+ db ENCORE
+ db $ff
+
+BellsproutEggMoves:
+ db SWORDS_DANCE
+ db ENCORE
+ db REFLECT
+ db SYNTHESIS
+ db LEECH_LIFE
+ db $ff
+
+TentacoolEggMoves:
+ db AURORA_BEAM
+ db MIRROR_COAT
+ db RAPID_SPIN
+ db HAZE
+ db SAFEGUARD
+ db $ff
+
+GeodudeEggMoves:
+ db MEGA_PUNCH
+ db ROCK_SLIDE
+ db $ff
+
+PonytaEggMoves:
+ db FLAME_WHEEL
+ db THRASH
+ db DOUBLE_KICK
+ db HYPNOSIS
+ db CHARM
+ db QUICK_ATTACK
+ db $ff
+
+SlowpokeEggMoves:
+ db SAFEGUARD
+ db BELLY_DRUM
+ db FUTURE_SIGHT
+ db STOMP
+ db $ff
+
+FarfetchDEggMoves:
+if !_CRYSTAL
+ db STEEL_WING
+endc
+ db FORESIGHT
+ db MIRROR_MOVE
+ db GUST
+ db QUICK_ATTACK
+ db FLAIL
+ db $ff
+
+DoduoEggMoves:
+ db QUICK_ATTACK
+ db SUPERSONIC
+ db HAZE
+ db FAINT_ATTACK
+ db FLAIL
+ db $ff
+
+SeelEggMoves:
+ db LICK
+ db PERISH_SONG
+ db DISABLE
+ db PECK
+ db SLAM
+ db ENCORE
+ db $ff
+
+GrimerEggMoves:
+ db HAZE
+ db MEAN_LOOK
+ db LICK
+ db $ff
+
+ShellderEggMoves:
+ db BUBBLEBEAM
+ db TAKE_DOWN
+ db BARRIER
+ db RAPID_SPIN
+ db SCREECH
+ db $ff
+
+GastlyEggMoves:
+ db PSYWAVE
+ db PERISH_SONG
+ db HAZE
+ db $ff
+
+OnixEggMoves:
+ db ROCK_SLIDE
+ db FLAIL
+ db $ff
+
+DrowzeeEggMoves:
+ db LIGHT_SCREEN
+ db BARRIER
+ db $ff
+
+KrabbyEggMoves:
+ db DIG
+ db HAZE
+ db AMNESIA
+ db FLAIL
+ db SLAM
+ db $ff
+
+ExeggcuteEggMoves:
+ db SYNTHESIS
+ db MOONLIGHT
+ db REFLECT
+ db MEGA_DRAIN
+ db ANCIENTPOWER
+ db $ff
+
+CuboneEggMoves:
+ db ROCK_SLIDE
+ db ANCIENTPOWER
+ db BELLY_DRUM
+ db SCREECH
+ db SKULL_BASH
+ db PERISH_SONG
+if _CRYSTAL
+ db SWORDS_DANCE
+endc
+ db $ff
+
+LickitungEggMoves:
+ db BELLY_DRUM
+ db MAGNITUDE
+ db BODY_SLAM
+ db $ff
+
+KoffingEggMoves:
+ db SCREECH
+ db PSYWAVE
+ db PSYBEAM
+ db DESTINY_BOND
+ db PAIN_SPLIT
+ db $ff
+
+RhyhornEggMoves:
+ db CRUNCH
+ db REVERSAL
+ db ROCK_SLIDE
+ db THRASH
+ db PURSUIT
+ db COUNTER
+ db MAGNITUDE
+ db $ff
+
+ChanseyEggMoves:
+ db PRESENT
+ db METRONOME
+ db HEAL_BELL
+ db $ff
+
+TangelaEggMoves:
+ db FLAIL
+ db CONFUSION
+ db MEGA_DRAIN
+ db REFLECT
+ db AMNESIA
+ db $ff
+
+KangaskhanEggMoves:
+ db STOMP
+ db FORESIGHT
+ db FOCUS_ENERGY
+ db SAFEGUARD
+ db DISABLE
+ db $ff
+
+HorseaEggMoves:
+ db FLAIL
+ db AURORA_BEAM
+ db OCTAZOOKA
+ db DISABLE
+ db SPLASH
+ db DRAGON_RAGE
+ db $ff
+
+GoldeenEggMoves:
+ db PSYBEAM
+ db HAZE
+ db HYDRO_PUMP
+ db $ff
+
+if !_CRYSTAL
+StaryuEggMoves:
+ db AURORA_BEAM
+ db BARRIER
+ db SUPERSONIC
+ db $ff
+endc
+
+MrMimeEggMoves:
+ db FUTURE_SIGHT
+ db HYPNOSIS
+ db MIMIC
+ db $ff
+
+ScytherEggMoves:
+ db COUNTER
+ db SAFEGUARD
+ db BATON_PASS
+ db RAZOR_WIND
+ db REVERSAL
+ db LIGHT_SCREEN
+ db $ff
+
+PinsirEggMoves:
+ db FURY_ATTACK
+ db FLAIL
+ db $ff
+
+LaprasEggMoves:
+ db AURORA_BEAM
+ db FORESIGHT
+ db $ff
+
+EeveeEggMoves:
+ db FLAIL
+ db CHARM
+ db $ff
+
+OmanyteEggMoves:
+ db BUBBLEBEAM
+ db AURORA_BEAM
+ db SLAM
+ db SUPERSONIC
+ db HAZE
+ db $ff
+
+KabutoEggMoves:
+ db BUBBLEBEAM
+ db AURORA_BEAM
+ db RAPID_SPIN
+ db DIG
+ db FLAIL
+ db $ff
+
+AerodactylEggMoves:
+ db WHIRLWIND
+ db PURSUIT
+ db FORESIGHT
+if !_CRYSTAL
+ db STEEL_WING
+endc
+ db $ff
+
+SnorlaxEggMoves:
+ db LICK
+if !_CRYSTAL
+ db CHARM
+endc
+ db $ff
+
+DratiniEggMoves:
+ db LIGHT_SCREEN
+ db MIST
+ db HAZE
+ db SUPERSONIC
+ db $ff
+
+ChikoritaEggMoves:
+ db VINE_WHIP
+ db LEECH_SEED
+ db COUNTER
+ db ANCIENTPOWER
+ db FLAIL
+ db SWORDS_DANCE
+ db $ff
+
+CyndaquilEggMoves:
+ db FURY_SWIPES
+ db QUICK_ATTACK
+ db REVERSAL
+ db THRASH
+ db FORESIGHT
+if _CRYSTAL
+ db SUBMISSION
+endc
+ db $ff
+
+TotodileEggMoves:
+ db CRUNCH
+ db THRASH
+ db HYDRO_PUMP
+ db ANCIENTPOWER
+ db RAZOR_WIND
+ db ROCK_SLIDE
+ db $ff
+
+SentretEggMoves:
+ db DOUBLE_EDGE
+ db PURSUIT
+ db SLASH
+ db FOCUS_ENERGY
+ db REVERSAL
+ db $ff
+
+HoothootEggMoves:
+ db MIRROR_MOVE
+ db SUPERSONIC
+ db FAINT_ATTACK
+ db WING_ATTACK
+ db WHIRLWIND
+if _CRYSTAL
+ db SKY_ATTACK
+endc
+ db $ff
+
+LedybaEggMoves:
+ db PSYBEAM
+ db BIDE
+ db LIGHT_SCREEN
+ db $ff
+
+SpinarakEggMoves:
+ db PSYBEAM
+ db DISABLE
+ db SONICBOOM
+ db BATON_PASS
+ db PURSUIT
+ db $ff
+
+ChinchouEggMoves:
+ db FLAIL
+ db SUPERSONIC
+ db SCREECH
+ db $ff
+
+PichuEggMoves:
+ db REVERSAL
+ db BIDE
+ db PRESENT
+ db ENCORE
+ db DOUBLESLAP
+ db $ff
+
+CleffaEggMoves:
+ db PRESENT
+ db METRONOME
+ db AMNESIA
+ db BELLY_DRUM
+ db SPLASH
+ db MIMIC
+ db $ff
+
+IgglybuffEggMoves:
+ db PERISH_SONG
+ db PRESENT
+ db FAINT_ATTACK
+ db $ff
+
+TogepiEggMoves:
+ db PRESENT
+ db MIRROR_MOVE
+ db PECK
+ db FORESIGHT
+ db FUTURE_SIGHT
+ db $ff
+
+NatuEggMoves:
+ db HAZE
+ db DRILL_PECK
+ db QUICK_ATTACK
+ db FAINT_ATTACK
+ db STEEL_WING
+ db $ff
+
+MareepEggMoves:
+ db THUNDERBOLT
+ db TAKE_DOWN
+ db BODY_SLAM
+ db SAFEGUARD
+ db SCREECH
+ db REFLECT
+ db $ff
+
+MarillEggMoves:
+ db LIGHT_SCREEN
+ db PRESENT
+ db AMNESIA
+ db FUTURE_SIGHT
+ db BELLY_DRUM
+ db PERISH_SONG
+ db SUPERSONIC
+ db FORESIGHT
+ db $ff
+
+SudowoodoEggMoves:
+ db SELFDESTRUCT
+ db $ff
+
+HoppipEggMoves:
+ db CONFUSION
+ db GROWL
+ db ENCORE
+ db DOUBLE_EDGE
+ db REFLECT
+ db AMNESIA
+ db PAY_DAY
+ db $ff
+
+AipomEggMoves:
+ db COUNTER
+ db SCREECH
+ db PURSUIT
+ db AGILITY
+ db SPITE
+ db SLAM
+ db DOUBLESLAP
+ db BEAT_UP
+ db $ff
+
+YanmaEggMoves:
+ db WHIRLWIND
+ db REVERSAL
+ db LEECH_LIFE
+ db $ff
+
+WooperEggMoves:
+ db BODY_SLAM
+ db ANCIENTPOWER
+ db SAFEGUARD
+ db $ff
+
+MurkrowEggMoves:
+ db WHIRLWIND
+ db DRILL_PECK
+ db QUICK_ATTACK
+ db MIRROR_MOVE
+ db WING_ATTACK
+if _CRYSTAL
+ db SKY_ATTACK
+endc
+ db $ff
+
+MisdreavusEggMoves:
+ db SCREECH
+ db DESTINY_BOND
+ db $ff
+
+GirafarigEggMoves:
+ db TAKE_DOWN
+ db AMNESIA
+ db FORESIGHT
+ db FUTURE_SIGHT
+ db BEAT_UP
+ db $ff
+
+PinecoEggMoves:
+ db REFLECT
+ db PIN_MISSILE
+ db FLAIL
+ db SWIFT
+ db $ff
+
+DunsparceEggMoves:
+ db BIDE
+ db ANCIENTPOWER
+ db ROCK_SLIDE
+ db BITE
+ db RAGE
+ db $ff
+
+GligarEggMoves:
+ db METAL_CLAW
+ db WING_ATTACK
+ db RAZOR_WIND
+ db COUNTER
+ db $ff
+
+SnubbullEggMoves:
+ db METRONOME
+ db FAINT_ATTACK
+ db REFLECT
+ db PRESENT
+ db CRUNCH
+ db HEAL_BELL
+ db LICK
+ db LEER
+ db $ff
+
+QwilfishEggMoves:
+ db FLAIL
+ db HAZE
+ db BUBBLEBEAM
+ db SUPERSONIC
+ db $ff
+
+ShuckleEggMoves:
+ db SWEET_SCENT
+ db $ff
+
+HeracrossEggMoves:
+ db HARDEN
+ db BIDE
+ db FLAIL
+ db $ff
+
+SneaselEggMoves:
+ db COUNTER
+ db SPITE
+ db FORESIGHT
+ db REFLECT
+ db BITE
+ db $ff
+
+TeddiursaEggMoves:
+ db CRUNCH
+ db TAKE_DOWN
+ db SEISMIC_TOSS
+ db FOCUS_ENERGY
+ db COUNTER
+if _CRYSTAL
+ db METAL_CLAW
+endc
+ db $ff
+
+SlugmaEggMoves:
+ db ACID_ARMOR
+ db $ff
+
+SwinubEggMoves:
+ db TAKE_DOWN
+ db BITE
+ db BODY_SLAM
+ db ROCK_SLIDE
+ db ANCIENTPOWER
+ db $ff
+
+CorsolaEggMoves:
+ db ROCK_SLIDE
+ db SAFEGUARD
+ db SCREECH
+ db MIST
+ db AMNESIA
+ db $ff
+
+RemoraidEggMoves:
+ db AURORA_BEAM
+ db OCTAZOOKA
+ db SUPERSONIC
+ db HAZE
+ db SCREECH
+ db $ff
+
+DelibirdEggMoves:
+ db AURORA_BEAM
+ db QUICK_ATTACK
+ db FUTURE_SIGHT
+ db SPLASH
+ db RAPID_SPIN
+ db $ff
+
+MantineEggMoves:
+ db TWISTER
+ db HYDRO_PUMP
+ db HAZE
+ db SLAM
+ db $ff
+
+SkarmoryEggMoves:
+ db DRILL_PECK
+ db PURSUIT
+ db WHIRLWIND
+if _CRYSTAL
+ db SKY_ATTACK
+endc
+ db $ff
+
+HoundourEggMoves:
+ db FIRE_SPIN
+ db RAGE
+ db PURSUIT
+ db COUNTER
+ db SPITE
+ db REVERSAL
+ db BEAT_UP
+ db $ff
+
+PhanpyEggMoves:
+ db FOCUS_ENERGY
+ db BODY_SLAM
+ db ANCIENTPOWER
+if _CRYSTAL
+ db WATER_GUN
+endc
+ db $ff
+
+StantlerEggMoves:
+ db REFLECT
+ db SPITE
+ db DISABLE
+ db LIGHT_SCREEN
+ db BITE
+ db $ff
+
+TyrogueEggMoves:
+ db RAPID_SPIN
+ db HI_JUMP_KICK
+ db MACH_PUNCH
+ db MIND_READER
+ db $ff
+
+SmoochumEggMoves:
+if !_CRYSTAL
+ db LOVELY_KISS
+endc
+ db MEDITATE
+ db $ff
+
+ElekidEggMoves:
+ db KARATE_CHOP
+ db BARRIER
+ db ROLLING_KICK
+ db MEDITATE
+if _CRYSTAL
+ db CROSS_CHOP
+endc
+ db $ff
+
+MagbyEggMoves:
+ db KARATE_CHOP
+ db MEGA_PUNCH
+ db BARRIER
+ db SCREECH
+if _CRYSTAL
+ db CROSS_CHOP
+endc
+ db $ff
+
+MiltankEggMoves:
+ db PRESENT
+ db REVERSAL
+ db SEISMIC_TOSS
+ db $ff
+
+LarvitarEggMoves:
+ db PURSUIT
+ db STOMP
+ db OUTRAGE
+ db FOCUS_ENERGY
+ db ANCIENTPOWER
+ db $ff
+
+NoEggMoves:
+ db $ff
diff --git a/data/pokemon/evos_attacks.asm b/data/pokemon/evos_attacks.asm
new file mode 100644
index 000000000..f21febf87
--- /dev/null
+++ b/data/pokemon/evos_attacks.asm
@@ -0,0 +1,3398 @@
+INCLUDE "includes.asm"
+
+
+SECTION "Evolutions and Attacks", ROMX
+
+
+INCLUDE "data/pokemon/evos_attacks_pointers.asm"
+
+
+EvosAttacks::
+
+BulbasaurEvosAttacks:
+ db EVOLVE_LEVEL, 16, IVYSAUR
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, GROWL
+ db 7, LEECH_SEED
+ db 10, VINE_WHIP
+ db 15, POISONPOWDER
+ db 15, SLEEP_POWDER
+ db 20, RAZOR_LEAF
+ db 25, SWEET_SCENT
+ db 32, GROWTH
+ db 39, SYNTHESIS
+ db 46, SOLARBEAM
+ db 0 ; no more level-up moves
+
+IvysaurEvosAttacks:
+ db EVOLVE_LEVEL, 32, VENUSAUR
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, LEECH_SEED
+ db 4, GROWL
+ db 7, LEECH_SEED
+ db 10, VINE_WHIP
+ db 15, POISONPOWDER
+ db 15, SLEEP_POWDER
+ db 22, RAZOR_LEAF
+ db 29, SWEET_SCENT
+ db 38, GROWTH
+ db 47, SYNTHESIS
+ db 56, SOLARBEAM
+ db 0 ; no more level-up moves
+
+VenusaurEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, LEECH_SEED
+ db 1, VINE_WHIP
+ db 4, GROWL
+ db 7, LEECH_SEED
+ db 10, VINE_WHIP
+ db 15, POISONPOWDER
+ db 15, SLEEP_POWDER
+ db 22, RAZOR_LEAF
+ db 29, SWEET_SCENT
+ db 41, GROWTH
+ db 53, SYNTHESIS
+ db 65, SOLARBEAM
+ db 0 ; no more level-up moves
+
+CharmanderEvosAttacks:
+ db EVOLVE_LEVEL, 16, CHARMELEON
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 7, EMBER
+ db 13, SMOKESCREEN
+ db 19, RAGE
+ db 25, SCARY_FACE
+ db 31, FLAMETHROWER
+ db 37, SLASH
+ db 43, DRAGON_RAGE
+ db 49, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+CharmeleonEvosAttacks:
+ db EVOLVE_LEVEL, 36, CHARIZARD
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, EMBER
+ db 7, EMBER
+ db 13, SMOKESCREEN
+ db 20, RAGE
+ db 27, SCARY_FACE
+ db 34, FLAMETHROWER
+ db 41, SLASH
+ db 48, DRAGON_RAGE
+ db 55, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+CharizardEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, EMBER
+ db 1, SMOKESCREEN
+ db 7, EMBER
+ db 13, SMOKESCREEN
+ db 20, RAGE
+ db 27, SCARY_FACE
+ db 34, FLAMETHROWER
+ db 36, WING_ATTACK
+ db 44, SLASH
+ db 54, DRAGON_RAGE
+ db 64, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+SquirtleEvosAttacks:
+ db EVOLVE_LEVEL, 16, WARTORTLE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, TAIL_WHIP
+ db 7, BUBBLE
+ db 10, WITHDRAW
+ db 13, WATER_GUN
+ db 18, BITE
+ db 23, RAPID_SPIN
+ db 28, PROTECT
+ db 33, RAIN_DANCE
+ db 40, SKULL_BASH
+ db 47, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+WartortleEvosAttacks:
+ db EVOLVE_LEVEL, 36, BLASTOISE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 1, BUBBLE
+ db 4, TAIL_WHIP
+ db 7, BUBBLE
+ db 10, WITHDRAW
+ db 13, WATER_GUN
+ db 19, BITE
+ db 25, RAPID_SPIN
+ db 31, PROTECT
+ db 37, RAIN_DANCE
+ db 45, SKULL_BASH
+ db 53, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+BlastoiseEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 1, BUBBLE
+ db 1, WITHDRAW
+ db 4, TAIL_WHIP
+ db 7, BUBBLE
+ db 10, WITHDRAW
+ db 13, WATER_GUN
+ db 19, BITE
+ db 25, RAPID_SPIN
+ db 31, PROTECT
+ db 42, RAIN_DANCE
+ db 55, SKULL_BASH
+ db 68, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+CaterpieEvosAttacks:
+ db EVOLVE_LEVEL, 7, METAPOD
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, STRING_SHOT
+ db 0 ; no more level-up moves
+
+MetapodEvosAttacks:
+ db EVOLVE_LEVEL, 10, BUTTERFREE
+ db 0 ; no more evolutions
+ db 1, HARDEN
+ db 7, HARDEN
+ db 0 ; no more level-up moves
+
+ButterfreeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONFUSION
+ db 10, CONFUSION
+ db 13, POISONPOWDER
+ db 14, STUN_SPORE
+ db 15, SLEEP_POWDER
+ db 18, SUPERSONIC
+ db 23, WHIRLWIND
+ db 28, GUST
+ db 34, PSYBEAM
+ db 40, SAFEGUARD
+ db 0 ; no more level-up moves
+
+WeedleEvosAttacks:
+ db EVOLVE_LEVEL, 7, KAKUNA
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, STRING_SHOT
+ db 0 ; no more level-up moves
+
+KakunaEvosAttacks:
+ db EVOLVE_LEVEL, 10, BEEDRILL
+ db 0 ; no more evolutions
+ db 1, HARDEN
+ db 7, HARDEN
+ db 0 ; no more level-up moves
+
+BeedrillEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, FURY_ATTACK
+ db 10, FURY_ATTACK
+ db 15, FOCUS_ENERGY
+ db 20, TWINEEDLE
+ db 25, RAGE
+ db 30, PURSUIT
+ db 35, PIN_MISSILE
+ db 40, AGILITY
+ db 0 ; no more level-up moves
+
+PidgeyEvosAttacks:
+ db EVOLVE_LEVEL, 18, PIDGEOTTO
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 5, SAND_ATTACK
+ db 9, GUST
+ db 15, QUICK_ATTACK
+ db 21, WHIRLWIND
+ db 29, WING_ATTACK
+ db 37, AGILITY
+ db 47, MIRROR_MOVE
+ db 0 ; no more level-up moves
+
+PidgeottoEvosAttacks:
+ db EVOLVE_LEVEL, 36, PIDGEOT
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SAND_ATTACK
+ db 1, GUST
+ db 5, SAND_ATTACK
+ db 9, GUST
+ db 15, QUICK_ATTACK
+ db 23, WHIRLWIND
+ db 33, WING_ATTACK
+ db 43, AGILITY
+ db 55, MIRROR_MOVE
+ db 0 ; no more level-up moves
+
+PidgeotEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SAND_ATTACK
+ db 1, GUST
+ db 1, QUICK_ATTACK
+ db 5, SAND_ATTACK
+ db 9, GUST
+ db 15, QUICK_ATTACK
+ db 23, WHIRLWIND
+ db 33, WING_ATTACK
+ db 46, AGILITY
+ db 61, MIRROR_MOVE
+ db 0 ; no more level-up moves
+
+RattataEvosAttacks:
+ db EVOLVE_LEVEL, 20, RATICATE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 7, QUICK_ATTACK
+ db 13, HYPER_FANG
+ db 20, FOCUS_ENERGY
+ db 27, PURSUIT
+ db 34, SUPER_FANG
+ db 0 ; no more level-up moves
+
+RaticateEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 1, QUICK_ATTACK
+ db 7, QUICK_ATTACK
+ db 13, HYPER_FANG
+ db 20, SCARY_FACE
+ db 30, PURSUIT
+ db 40, SUPER_FANG
+ db 0 ; no more level-up moves
+
+SpearowEvosAttacks:
+ db EVOLVE_LEVEL, 20, FEAROW
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 7, LEER
+ db 13, FURY_ATTACK
+ db 25, PURSUIT
+ db 31, MIRROR_MOVE
+ db 37, DRILL_PECK
+ db 43, AGILITY
+ db 0 ; no more level-up moves
+
+FearowEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 1, LEER
+ db 1, FURY_ATTACK
+ db 7, LEER
+ db 13, FURY_ATTACK
+ db 26, PURSUIT
+ db 32, MIRROR_MOVE
+ db 40, DRILL_PECK
+ db 47, AGILITY
+ db 0 ; no more level-up moves
+
+EkansEvosAttacks:
+ db EVOLVE_LEVEL, 22, ARBOK
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 9, POISON_STING
+ db 15, BITE
+ db 23, GLARE
+ db 29, SCREECH
+ db 37, ACID
+ db 43, HAZE
+ db 0 ; no more level-up moves
+
+ArbokEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 1, POISON_STING
+ db 1, BITE
+ db 9, POISON_STING
+ db 15, BITE
+ db 25, GLARE
+ db 33, SCREECH
+ db 43, ACID
+ db 51, HAZE
+ db 0 ; no more level-up moves
+
+PikachuEvosAttacks:
+ db EVOLVE_ITEM, THUNDERSTONE, RAICHU
+ db 0 ; no more evolutions
+ db 1, THUNDERSHOCK
+ db 1, GROWL
+ db 6, TAIL_WHIP
+ db 8, THUNDER_WAVE
+ db 11, QUICK_ATTACK
+ db 15, DOUBLE_TEAM
+ db 20, SLAM
+ db 26, THUNDERBOLT
+ db 33, AGILITY
+ db 41, THUNDER
+ db 50, LIGHT_SCREEN
+ db 0 ; no more level-up moves
+
+RaichuEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, THUNDERSHOCK
+ db 1, TAIL_WHIP
+ db 1, QUICK_ATTACK
+ db 1, THUNDERBOLT
+ db 0 ; no more level-up moves
+
+SandshrewEvosAttacks:
+ db EVOLVE_LEVEL, 22, SANDSLASH
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 6, DEFENSE_CURL
+ db 11, SAND_ATTACK
+ db 17, POISON_STING
+ db 23, SLASH
+ db 30, SWIFT
+ db 37, FURY_SWIPES
+ db 45, SANDSTORM
+ db 0 ; no more level-up moves
+
+SandslashEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, DEFENSE_CURL
+ db 1, SAND_ATTACK
+ db 6, DEFENSE_CURL
+ db 11, SAND_ATTACK
+ db 17, POISON_STING
+ db 24, SLASH
+ db 33, SWIFT
+ db 42, FURY_SWIPES
+ db 52, SANDSTORM
+ db 0 ; no more level-up moves
+
+NidoranFEvosAttacks:
+ db EVOLVE_LEVEL, 16, NIDORINA
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, TACKLE
+ db 8, SCRATCH
+ db 12, DOUBLE_KICK
+ db 17, POISON_STING
+ db 23, TAIL_WHIP
+ db 30, BITE
+ db 38, FURY_SWIPES
+ db 0 ; no more level-up moves
+
+NidorinaEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, NIDOQUEEN
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, TACKLE
+ db 8, SCRATCH
+ db 12, DOUBLE_KICK
+ db 19, POISON_STING
+ db 27, TAIL_WHIP
+ db 36, BITE
+ db 46, FURY_SWIPES
+ db 0 ; no more level-up moves
+
+NidoqueenEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCRATCH
+ db 1, DOUBLE_KICK
+ db 1, TAIL_WHIP
+ db 23, BODY_SLAM
+ db 0 ; no more level-up moves
+
+NidoranMEvosAttacks:
+ db EVOLVE_LEVEL, 16, NIDORINO
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, TACKLE
+ db 8, HORN_ATTACK
+ db 12, DOUBLE_KICK
+ db 17, POISON_STING
+ db 23, FOCUS_ENERGY
+ db 30, FURY_ATTACK
+ db 38, HORN_DRILL
+ db 0 ; no more level-up moves
+
+NidorinoEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, NIDOKING
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, TACKLE
+ db 8, HORN_ATTACK
+ db 12, DOUBLE_KICK
+ db 19, POISON_STING
+ db 27, FOCUS_ENERGY
+ db 36, FURY_ATTACK
+ db 46, HORN_DRILL
+ db 0 ; no more level-up moves
+
+NidokingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, HORN_ATTACK
+ db 1, DOUBLE_KICK
+ db 1, POISON_STING
+ db 23, THRASH
+ db 0 ; no more level-up moves
+
+ClefairyEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, CLEFABLE
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, GROWL
+ db 4, ENCORE
+ db 8, SING
+ db 13, DOUBLESLAP
+ db 19, MINIMIZE
+ db 26, DEFENSE_CURL
+ db 34, METRONOME
+ db 43, MOONLIGHT
+ db 53, LIGHT_SCREEN
+ db 0 ; no more level-up moves
+
+ClefableEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SING
+ db 1, DOUBLESLAP
+ db 1, METRONOME
+ db 1, MOONLIGHT
+ db 0 ; no more level-up moves
+
+VulpixEvosAttacks:
+ db EVOLVE_ITEM, FIRE_STONE, NINETALES
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 1, TAIL_WHIP
+ db 7, QUICK_ATTACK
+ db 13, ROAR
+ db 19, CONFUSE_RAY
+ db 25, SAFEGUARD
+ db 31, FLAMETHROWER
+ db 37, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+NinetalesEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 1, QUICK_ATTACK
+ db 1, CONFUSE_RAY
+ db 1, SAFEGUARD
+ db 43, FIRE_SPIN
+ db 0 ; no more level-up moves
+
+JigglypuffEvosAttacks:
+ db EVOLVE_ITEM, MOON_STONE, WIGGLYTUFF
+ db 0 ; no more evolutions
+ db 1, SING
+ db 4, DEFENSE_CURL
+ db 9, POUND
+ db 14, DISABLE
+ db 19, ROLLOUT
+ db 24, DOUBLESLAP
+ db 29, REST
+ db 34, BODY_SLAM
+ db 39, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+WigglytuffEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SING
+ db 1, DISABLE
+ db 1, DEFENSE_CURL
+ db 1, DOUBLESLAP
+ db 0 ; no more level-up moves
+
+ZubatEvosAttacks:
+ db EVOLVE_LEVEL, 22, GOLBAT
+ db 0 ; no more evolutions
+ db 1, LEECH_LIFE
+ db 6, SUPERSONIC
+ db 12, BITE
+ db 19, CONFUSE_RAY
+ db 27, WING_ATTACK
+ db 36, MEAN_LOOK
+ db 46, HAZE
+ db 0 ; no more level-up moves
+
+GolbatEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, CROBAT
+ db 0 ; no more evolutions
+ db 1, SCREECH
+ db 1, LEECH_LIFE
+ db 1, SUPERSONIC
+ db 6, SUPERSONIC
+ db 12, BITE
+ db 19, CONFUSE_RAY
+ db 30, WING_ATTACK
+ db 42, MEAN_LOOK
+ db 55, HAZE
+ db 0 ; no more level-up moves
+
+OddishEvosAttacks:
+ db EVOLVE_LEVEL, 21, GLOOM
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 7, SWEET_SCENT
+ db 14, POISONPOWDER
+ db 16, STUN_SPORE
+ db 18, SLEEP_POWDER
+ db 23, ACID
+ db 32, MOONLIGHT
+ db 39, PETAL_DANCE
+ db 0 ; no more level-up moves
+
+GloomEvosAttacks:
+ db EVOLVE_ITEM, LEAF_STONE, VILEPLUME
+ db EVOLVE_ITEM, SUN_STONE, BELLOSSOM
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, SWEET_SCENT
+ db 1, POISONPOWDER
+ db 7, SWEET_SCENT
+ db 14, POISONPOWDER
+ db 16, STUN_SPORE
+ db 18, SLEEP_POWDER
+ db 24, ACID
+ db 35, MOONLIGHT
+ db 44, PETAL_DANCE
+ db 0 ; no more level-up moves
+
+VileplumeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, SWEET_SCENT
+ db 1, STUN_SPORE
+ db 1, PETAL_DANCE
+ db 0 ; no more level-up moves
+
+ParasEvosAttacks:
+ db EVOLVE_LEVEL, 24, PARASECT
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 7, STUN_SPORE
+ db 13, POISONPOWDER
+ db 19, LEECH_LIFE
+ db 25, SPORE
+ db 31, SLASH
+ db 37, GROWTH
+ db 43, GIGA_DRAIN
+ db 0 ; no more level-up moves
+
+ParasectEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, STUN_SPORE
+ db 1, POISONPOWDER
+ db 7, STUN_SPORE
+ db 13, POISONPOWDER
+ db 19, LEECH_LIFE
+ db 28, SPORE
+ db 37, SLASH
+ db 46, GROWTH
+ db 55, GIGA_DRAIN
+ db 0 ; no more level-up moves
+
+VenonatEvosAttacks:
+ db EVOLVE_LEVEL, 31, VENOMOTH
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DISABLE
+ db 1, FORESIGHT
+ db 9, SUPERSONIC
+ db 17, CONFUSION
+ db 20, POISONPOWDER
+ db 25, LEECH_LIFE
+ db 28, STUN_SPORE
+ db 33, PSYBEAM
+ db 36, SLEEP_POWDER
+ db 41, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+VenomothEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DISABLE
+ db 1, FORESIGHT
+ db 1, SUPERSONIC
+ db 9, SUPERSONIC
+ db 17, CONFUSION
+ db 20, POISONPOWDER
+ db 25, LEECH_LIFE
+ db 28, STUN_SPORE
+ db 31, GUST
+ db 36, PSYBEAM
+ db 42, SLEEP_POWDER
+ db 52, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+DiglettEvosAttacks:
+ db EVOLVE_LEVEL, 26, DUGTRIO
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 5, GROWL
+ db 9, MAGNITUDE
+ db 17, DIG
+ db 25, SAND_ATTACK
+ db 33, SLASH
+ db 41, EARTHQUAKE
+ db 49, FISSURE
+ db 0 ; no more level-up moves
+
+DugtrioEvosAttacks:
+ db 0 ; no more evolutions
+if _CRYSTAL
+ db 1, TRI_ATTACK
+endc
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, MAGNITUDE
+ db 5, GROWL
+ db 9, MAGNITUDE
+ db 17, DIG
+ db 25, SAND_ATTACK
+ db 37, SLASH
+ db 49, EARTHQUAKE
+ db 61, FISSURE
+ db 0 ; no more level-up moves
+
+MeowthEvosAttacks:
+ db EVOLVE_LEVEL, 28, PERSIAN
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 11, BITE
+ db 20, PAY_DAY
+ db 28, FAINT_ATTACK
+ db 35, SCREECH
+ db 41, FURY_SWIPES
+ db 46, SLASH
+ db 0 ; no more level-up moves
+
+PersianEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, GROWL
+ db 1, BITE
+ db 11, BITE
+ db 20, PAY_DAY
+ db 29, FAINT_ATTACK
+ db 38, SCREECH
+ db 46, FURY_SWIPES
+ db 53, SLASH
+ db 0 ; no more level-up moves
+
+PsyduckEvosAttacks:
+ db EVOLVE_LEVEL, 33, GOLDUCK
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 5, TAIL_WHIP
+ db 10, DISABLE
+ db 16, CONFUSION
+ db 23, SCREECH
+ db 31, PSYCH_UP
+ db 40, FURY_SWIPES
+ db 50, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+GolduckEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, TAIL_WHIP
+ db 1, DISABLE
+ db 1, CONFUSION
+ db 5, TAIL_WHIP
+ db 10, DISABLE
+ db 16, CONFUSION
+ db 23, SCREECH
+ db 31, PSYCH_UP
+ db 44, FURY_SWIPES
+ db 58, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+MankeyEvosAttacks:
+ db EVOLVE_LEVEL, 28, PRIMEAPE
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 9, LOW_KICK
+ db 15, KARATE_CHOP
+ db 21, FURY_SWIPES
+ db 27, FOCUS_ENERGY
+ db 33, SEISMIC_TOSS
+ db 39, CROSS_CHOP
+ db 45, SCREECH
+ db 51, THRASH
+ db 0 ; no more level-up moves
+
+PrimeapeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, LOW_KICK
+ db 1, RAGE
+ db 9, LOW_KICK
+ db 15, KARATE_CHOP
+ db 21, FURY_SWIPES
+ db 27, FOCUS_ENERGY
+ db 28, RAGE
+ db 36, SEISMIC_TOSS
+ db 45, CROSS_CHOP
+ db 54, SCREECH
+ db 63, THRASH
+ db 0 ; no more level-up moves
+
+GrowlitheEvosAttacks:
+ db EVOLVE_ITEM, FIRE_STONE, ARCANINE
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, ROAR
+ db 9, EMBER
+ db 18, LEER
+ db 26, TAKE_DOWN
+ db 34, FLAME_WHEEL
+ db 42, AGILITY
+ db 50, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+ArcanineEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ROAR
+ db 1, LEER
+ db 1, TAKE_DOWN
+ db 1, FLAME_WHEEL
+ db 50, EXTREMESPEED
+ db 0 ; no more level-up moves
+
+PoliwagEvosAttacks:
+ db EVOLVE_LEVEL, 25, POLIWHIRL
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 7, HYPNOSIS
+ db 13, WATER_GUN
+ db 19, DOUBLESLAP
+ db 25, RAIN_DANCE
+ db 31, BODY_SLAM
+ db 37, BELLY_DRUM
+ db 43, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PoliwhirlEvosAttacks:
+ db EVOLVE_ITEM, WATER_STONE, POLIWRATH
+ db EVOLVE_TRADE, KINGS_ROCK, POLITOED
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, HYPNOSIS
+ db 1, WATER_GUN
+ db 7, HYPNOSIS
+ db 13, WATER_GUN
+ db 19, DOUBLESLAP
+ db 27, RAIN_DANCE
+ db 35, BODY_SLAM
+ db 43, BELLY_DRUM
+ db 51, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PoliwrathEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, HYPNOSIS
+ db 1, DOUBLESLAP
+ db 1, SUBMISSION
+ db 35, SUBMISSION
+ db 51, MIND_READER
+ db 0 ; no more level-up moves
+
+AbraEvosAttacks:
+ db EVOLVE_LEVEL, 16, KADABRA
+ db 0 ; no more evolutions
+ db 1, TELEPORT
+ db 0 ; no more level-up moves
+
+KadabraEvosAttacks:
+ db EVOLVE_TRADE, $ff, ALAKAZAM
+ db 0 ; no more evolutions
+ db 1, TELEPORT
+ db 1, KINESIS
+ db 1, CONFUSION
+ db 16, CONFUSION
+ db 18, DISABLE
+ db 21, PSYBEAM
+ db 26, RECOVER
+ db 31, FUTURE_SIGHT
+ db 38, PSYCHIC_M
+ db 45, REFLECT
+ db 0 ; no more level-up moves
+
+AlakazamEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TELEPORT
+ db 1, KINESIS
+ db 1, CONFUSION
+ db 16, CONFUSION
+ db 18, DISABLE
+ db 21, PSYBEAM
+ db 26, RECOVER
+ db 31, FUTURE_SIGHT
+ db 38, PSYCHIC_M
+ db 45, REFLECT
+ db 0 ; no more level-up moves
+
+MachopEvosAttacks:
+ db EVOLVE_LEVEL, 28, MACHOKE
+ db 0 ; no more evolutions
+ db 1, LOW_KICK
+ db 1, LEER
+ db 7, FOCUS_ENERGY
+ db 13, KARATE_CHOP
+ db 19, SEISMIC_TOSS
+ db 25, FORESIGHT
+ db 31, VITAL_THROW
+ db 37, CROSS_CHOP
+ db 43, SCARY_FACE
+ db 49, SUBMISSION
+ db 0 ; no more level-up moves
+
+MachokeEvosAttacks:
+ db EVOLVE_TRADE, $ff, MACHAMP
+ db 0 ; no more evolutions
+ db 1, LOW_KICK
+ db 1, LEER
+ db 1, FOCUS_ENERGY
+ db 8, FOCUS_ENERGY
+ db 15, KARATE_CHOP
+ db 19, SEISMIC_TOSS
+ db 25, FORESIGHT
+ db 34, VITAL_THROW
+ db 43, CROSS_CHOP
+ db 52, SCARY_FACE
+ db 61, SUBMISSION
+ db 0 ; no more level-up moves
+
+MachampEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LOW_KICK
+ db 1, LEER
+ db 1, FOCUS_ENERGY
+ db 8, FOCUS_ENERGY
+ db 15, KARATE_CHOP
+ db 19, SEISMIC_TOSS
+ db 25, FORESIGHT
+ db 34, VITAL_THROW
+ db 43, CROSS_CHOP
+ db 52, SCARY_FACE
+ db 61, SUBMISSION
+ db 0 ; no more level-up moves
+
+BellsproutEvosAttacks:
+ db EVOLVE_LEVEL, 21, WEEPINBELL
+ db 0 ; no more evolutions
+ db 1, VINE_WHIP
+ db 6, GROWTH
+ db 11, WRAP
+ db 15, SLEEP_POWDER
+ db 17, POISONPOWDER
+ db 19, STUN_SPORE
+ db 23, ACID
+ db 30, SWEET_SCENT
+ db 37, RAZOR_LEAF
+ db 45, SLAM
+ db 0 ; no more level-up moves
+
+WeepinbellEvosAttacks:
+ db EVOLVE_ITEM, LEAF_STONE, VICTREEBEL
+ db 0 ; no more evolutions
+ db 1, VINE_WHIP
+ db 1, GROWTH
+ db 1, WRAP
+ db 6, GROWTH
+ db 11, WRAP
+ db 15, SLEEP_POWDER
+ db 17, POISONPOWDER
+ db 19, STUN_SPORE
+ db 24, ACID
+ db 33, SWEET_SCENT
+ db 42, RAZOR_LEAF
+ db 54, SLAM
+ db 0 ; no more level-up moves
+
+VictreebelEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, VINE_WHIP
+ db 1, SLEEP_POWDER
+ db 1, SWEET_SCENT
+ db 1, RAZOR_LEAF
+ db 0 ; no more level-up moves
+
+TentacoolEvosAttacks:
+ db EVOLVE_LEVEL, 30, TENTACRUEL
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 6, SUPERSONIC
+ db 12, CONSTRICT
+ db 19, ACID
+ db 25, BUBBLEBEAM
+ db 30, WRAP
+ db 36, BARRIER
+ db 43, SCREECH
+ db 49, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+TentacruelEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, SUPERSONIC
+ db 1, CONSTRICT
+ db 6, SUPERSONIC
+ db 12, CONSTRICT
+ db 19, ACID
+ db 25, BUBBLEBEAM
+ db 30, WRAP
+ db 38, BARRIER
+ db 47, SCREECH
+ db 55, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+GeodudeEvosAttacks:
+ db EVOLVE_LEVEL, 25, GRAVELER
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 6, DEFENSE_CURL
+ db 11, ROCK_THROW
+ db 16, MAGNITUDE
+ db 21, SELFDESTRUCT
+ db 26, HARDEN
+ db 31, ROLLOUT
+ db 36, EARTHQUAKE
+ db 41, EXPLOSION
+ db 0 ; no more level-up moves
+
+GravelerEvosAttacks:
+ db EVOLVE_TRADE, $ff, GOLEM
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DEFENSE_CURL
+ db 1, ROCK_THROW
+ db 6, DEFENSE_CURL
+ db 11, ROCK_THROW
+ db 16, MAGNITUDE
+ db 21, SELFDESTRUCT
+ db 27, HARDEN
+ db 34, ROLLOUT
+ db 41, EARTHQUAKE
+ db 48, EXPLOSION
+ db 0 ; no more level-up moves
+
+GolemEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DEFENSE_CURL
+ db 1, ROCK_THROW
+ db 1, MAGNITUDE
+ db 6, DEFENSE_CURL
+ db 11, ROCK_THROW
+ db 16, MAGNITUDE
+ db 21, SELFDESTRUCT
+ db 27, HARDEN
+ db 34, ROLLOUT
+ db 41, EARTHQUAKE
+ db 48, EXPLOSION
+ db 0 ; no more level-up moves
+
+PonytaEvosAttacks:
+ db EVOLVE_LEVEL, 40, RAPIDASH
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, GROWL
+ db 8, TAIL_WHIP
+ db 13, EMBER
+ db 19, STOMP
+ db 26, FIRE_SPIN
+ db 34, TAKE_DOWN
+ db 43, AGILITY
+ db 53, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+RapidashEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, TAIL_WHIP
+ db 1, EMBER
+ db 4, GROWL
+ db 8, TAIL_WHIP
+ db 13, EMBER
+ db 19, STOMP
+ db 26, FIRE_SPIN
+ db 34, TAKE_DOWN
+ db 40, FURY_ATTACK
+ db 47, AGILITY
+ db 61, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+SlowpokeEvosAttacks:
+ db EVOLVE_LEVEL, 37, SLOWBRO
+ db EVOLVE_TRADE, KINGS_ROCK, SLOWKING
+ db 0 ; no more evolutions
+ db 1, CURSE
+ db 1, TACKLE
+ db 6, GROWL
+ db 15, WATER_GUN
+ db 20, CONFUSION
+ db 29, DISABLE
+ db 34, HEADBUTT
+ db 43, AMNESIA
+ db 48, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+SlowbroEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CURSE
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, WATER_GUN
+ db 6, GROWL
+ db 15, WATER_GUN
+ db 20, CONFUSION
+ db 29, DISABLE
+ db 34, HEADBUTT
+ db 37, WITHDRAW
+ db 46, AMNESIA
+ db 54, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+MagnemiteEvosAttacks:
+ db EVOLVE_LEVEL, 30, MAGNETON
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 6, THUNDERSHOCK
+ db 11, SUPERSONIC
+ db 16, SONICBOOM
+ db 21, THUNDER_WAVE
+ db 27, LOCK_ON
+ db 33, SWIFT
+ db 39, SCREECH
+ db 45, ZAP_CANNON
+ db 0 ; no more level-up moves
+
+MagnetonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, THUNDERSHOCK
+ db 1, SUPERSONIC
+ db 1, SONICBOOM
+ db 6, THUNDERSHOCK
+ db 11, SUPERSONIC
+ db 16, SONICBOOM
+ db 21, THUNDER_WAVE
+ db 27, LOCK_ON
+if _CRYSTAL
+ db 35, TRI_ATTACK
+else
+ db 35, SWIFT
+endc
+ db 43, SCREECH
+ db 53, ZAP_CANNON
+ db 0 ; no more level-up moves
+
+FarfetchDEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 7, SAND_ATTACK
+ db 13, LEER
+ db 19, FURY_ATTACK
+ db 25, SWORDS_DANCE
+ db 31, AGILITY
+ db 37, SLASH
+ db 44, FALSE_SWIPE
+ db 0 ; no more level-up moves
+
+DoduoEvosAttacks:
+ db EVOLVE_LEVEL, 31, DODRIO
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 9, PURSUIT
+ db 13, FURY_ATTACK
+ db 21, TRI_ATTACK
+ db 25, RAGE
+ db 33, DRILL_PECK
+ db 37, AGILITY
+ db 0 ; no more level-up moves
+
+DodrioEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, GROWL
+ db 1, PURSUIT
+ db 1, FURY_ATTACK
+ db 9, PURSUIT
+ db 13, FURY_ATTACK
+ db 21, TRI_ATTACK
+ db 25, RAGE
+ db 38, DRILL_PECK
+ db 47, AGILITY
+ db 0 ; no more level-up moves
+
+SeelEvosAttacks:
+ db EVOLVE_LEVEL, 34, DEWGONG
+ db 0 ; no more evolutions
+ db 1, HEADBUTT
+ db 5, GROWL
+ db 16, AURORA_BEAM
+ db 21, REST
+ db 32, TAKE_DOWN
+ db 37, ICE_BEAM
+ db 48, SAFEGUARD
+ db 0 ; no more level-up moves
+
+DewgongEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HEADBUTT
+ db 1, GROWL
+ db 1, AURORA_BEAM
+ db 5, GROWL
+ db 16, AURORA_BEAM
+ db 21, REST
+ db 32, TAKE_DOWN
+ db 43, ICE_BEAM
+ db 60, SAFEGUARD
+ db 0 ; no more level-up moves
+
+GrimerEvosAttacks:
+ db EVOLVE_LEVEL, 38, MUK
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, POUND
+ db 5, HARDEN
+ db 10, DISABLE
+ db 16, SLUDGE
+ db 23, MINIMIZE
+ db 31, SCREECH
+ db 40, ACID_ARMOR
+ db 50, SLUDGE_BOMB
+ db 0 ; no more level-up moves
+
+MukEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, POUND
+ db 1, HARDEN
+ db 33, HARDEN
+ db 37, DISABLE
+ db 45, SLUDGE
+ db 23, MINIMIZE
+ db 31, SCREECH
+ db 45, ACID_ARMOR
+ db 60, SLUDGE_BOMB
+ db 0 ; no more level-up moves
+
+ShellderEvosAttacks:
+ db EVOLVE_ITEM, WATER_STONE, CLOYSTER
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, WITHDRAW
+ db 9, SUPERSONIC
+ db 17, AURORA_BEAM
+ db 25, PROTECT
+ db 33, LEER
+ db 41, CLAMP
+ db 49, ICE_BEAM
+ db 0 ; no more level-up moves
+
+CloysterEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WITHDRAW
+ db 1, SUPERSONIC
+ db 1, AURORA_BEAM
+ db 1, PROTECT
+if _CRYSTAL
+ db 33, SPIKES
+endc
+ db 41, SPIKE_CANNON
+ db 0 ; no more level-up moves
+
+GastlyEvosAttacks:
+ db EVOLVE_LEVEL, 25, HAUNTER
+ db 0 ; no more evolutions
+ db 1, HYPNOSIS
+ db 1, LICK
+ db 8, SPITE
+ db 13, MEAN_LOOK
+ db 16, CURSE
+ db 21, NIGHT_SHADE
+ db 28, CONFUSE_RAY
+ db 33, DREAM_EATER
+ db 36, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+HaunterEvosAttacks:
+ db EVOLVE_TRADE, $ff, GENGAR
+ db 0 ; no more evolutions
+ db 1, HYPNOSIS
+ db 1, LICK
+ db 1, SPITE
+ db 8, SPITE
+ db 13, MEAN_LOOK
+ db 16, CURSE
+ db 21, NIGHT_SHADE
+ db 31, CONFUSE_RAY
+ db 39, DREAM_EATER
+ db 48, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+GengarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HYPNOSIS
+ db 1, LICK
+ db 1, SPITE
+ db 8, SPITE
+ db 13, MEAN_LOOK
+ db 16, CURSE
+ db 21, NIGHT_SHADE
+ db 31, CONFUSE_RAY
+ db 39, DREAM_EATER
+ db 48, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+OnixEvosAttacks:
+ db EVOLVE_TRADE, METAL_COAT, STEELIX
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCREECH
+ db 10, BIND
+ db 14, ROCK_THROW
+ db 23, HARDEN
+ db 27, RAGE
+ db 36, SANDSTORM
+ db 40, SLAM
+ db 0 ; no more level-up moves
+
+DrowzeeEvosAttacks:
+ db EVOLVE_LEVEL, 26, HYPNO
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, HYPNOSIS
+ db 10, DISABLE
+ db 18, CONFUSION
+ db 25, HEADBUTT
+ db 31, POISON_GAS
+ db 36, MEDITATE
+ db 40, PSYCHIC_M
+ db 43, PSYCH_UP
+ db 45, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+HypnoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, HYPNOSIS
+ db 1, DISABLE
+ db 1, CONFUSION
+ db 10, DISABLE
+ db 18, CONFUSION
+ db 25, HEADBUTT
+ db 33, POISON_GAS
+ db 40, MEDITATE
+ db 49, PSYCHIC_M
+ db 55, PSYCH_UP
+ db 60, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+KrabbyEvosAttacks:
+ db EVOLVE_LEVEL, 28, KINGLER
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 5, LEER
+ db 12, VICEGRIP
+ db 16, HARDEN
+ db 23, STOMP
+ db 27, GUILLOTINE
+ db 34, PROTECT
+ db 41, CRABHAMMER
+ db 0 ; no more level-up moves
+
+KinglerEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, LEER
+ db 1, VICEGRIP
+ db 5, LEER
+ db 12, VICEGRIP
+ db 16, HARDEN
+ db 23, STOMP
+ db 27, GUILLOTINE
+ db 38, PROTECT
+ db 49, CRABHAMMER
+ db 0 ; no more level-up moves
+
+VoltorbEvosAttacks:
+ db EVOLVE_LEVEL, 30, ELECTRODE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 9, SCREECH
+ db 17, SONICBOOM
+ db 23, SELFDESTRUCT
+ db 29, ROLLOUT
+ db 33, LIGHT_SCREEN
+ db 37, SWIFT
+ db 39, EXPLOSION
+ db 41, MIRROR_COAT
+ db 0 ; no more level-up moves
+
+ElectrodeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCREECH
+ db 1, SONICBOOM
+ db 1, SELFDESTRUCT
+ db 9, SCREECH
+ db 17, SONICBOOM
+ db 23, SELFDESTRUCT
+ db 29, ROLLOUT
+ db 34, LIGHT_SCREEN
+ db 40, SWIFT
+ db 44, EXPLOSION
+ db 48, MIRROR_COAT
+ db 0 ; no more level-up moves
+
+ExeggcuteEvosAttacks:
+ db EVOLVE_ITEM, LEAF_STONE, EXEGGUTOR
+ db 0 ; no more evolutions
+ db 1, BARRAGE
+ db 1, HYPNOSIS
+ db 7, REFLECT
+ db 13, LEECH_SEED
+ db 19, CONFUSION
+ db 25, STUN_SPORE
+ db 31, POISONPOWDER
+ db 37, SLEEP_POWDER
+ db 43, SOLARBEAM
+ db 0 ; no more level-up moves
+
+ExeggutorEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BARRAGE
+ db 1, HYPNOSIS
+ db 1, CONFUSION
+ db 19, STOMP
+ db 31, EGG_BOMB
+ db 0 ; no more level-up moves
+
+CuboneEvosAttacks:
+ db EVOLVE_LEVEL, 28, MAROWAK
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 5, TAIL_WHIP
+ db 9, BONE_CLUB
+ db 13, HEADBUTT
+ db 17, LEER
+ db 21, FOCUS_ENERGY
+ db 25, BONEMERANG
+ db 29, RAGE
+ db 33, FALSE_SWIPE
+ db 37, THRASH
+ db 41, BONE_RUSH
+ db 0 ; no more level-up moves
+
+MarowakEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, TAIL_WHIP
+ db 1, BONE_CLUB
+ db 1, HEADBUTT
+ db 5, TAIL_WHIP
+ db 9, BONE_CLUB
+ db 13, HEADBUTT
+ db 17, LEER
+ db 21, FOCUS_ENERGY
+ db 25, BONEMERANG
+ db 32, RAGE
+ db 39, FALSE_SWIPE
+ db 46, THRASH
+ db 53, BONE_RUSH
+ db 0 ; no more level-up moves
+
+HitmonleeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, DOUBLE_KICK
+ db 6, MEDITATE
+ db 11, ROLLING_KICK
+ db 16, JUMP_KICK
+ db 21, FOCUS_ENERGY
+ db 26, HI_JUMP_KICK
+ db 31, MIND_READER
+ db 36, FORESIGHT
+ db 41, ENDURE
+ db 46, MEGA_KICK
+ db 51, REVERSAL
+ db 0 ; no more level-up moves
+
+HitmonchanEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, COMET_PUNCH
+ db 7, AGILITY
+ db 13, PURSUIT
+ db 26, THUNDERPUNCH
+ db 26, ICE_PUNCH
+ db 26, FIRE_PUNCH
+ db 32, MACH_PUNCH
+ db 38, MEGA_PUNCH
+ db 44, DETECT
+ db 50, COUNTER
+ db 0 ; no more level-up moves
+
+LickitungEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LICK
+ db 7, SUPERSONIC
+ db 13, DEFENSE_CURL
+ db 19, STOMP
+ db 25, WRAP
+ db 31, DISABLE
+ db 37, SLAM
+ db 43, SCREECH
+ db 0 ; no more level-up moves
+
+KoffingEvosAttacks:
+ db EVOLVE_LEVEL, 35, WEEZING
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, TACKLE
+ db 9, SMOG
+ db 17, SELFDESTRUCT
+ db 21, SLUDGE
+ db 25, SMOKESCREEN
+ db 33, HAZE
+ db 41, EXPLOSION
+ db 45, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+WeezingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_GAS
+ db 1, TACKLE
+ db 1, SMOG
+ db 1, SELFDESTRUCT
+ db 9, SMOG
+ db 17, SELFDESTRUCT
+ db 21, SLUDGE
+ db 25, SMOKESCREEN
+ db 33, HAZE
+ db 44, EXPLOSION
+ db 51, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+RhyhornEvosAttacks:
+ db EVOLVE_LEVEL, 42, RHYDON
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, TAIL_WHIP
+ db 13, STOMP
+ db 19, FURY_ATTACK
+ db 31, SCARY_FACE
+ db 37, HORN_DRILL
+ db 49, TAKE_DOWN
+ db 55, EARTHQUAKE
+ db 0 ; no more level-up moves
+
+RhydonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, TAIL_WHIP
+ db 1, STOMP
+ db 1, FURY_ATTACK
+ db 13, STOMP
+ db 19, FURY_ATTACK
+ db 31, SCARY_FACE
+ db 37, HORN_DRILL
+ db 54, TAKE_DOWN
+ db 65, EARTHQUAKE
+ db 0 ; no more level-up moves
+
+ChanseyEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, BLISSEY
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 5, GROWL
+ db 9, TAIL_WHIP
+ db 13, SOFTBOILED
+ db 17, DOUBLESLAP
+ db 23, MINIMIZE
+ db 29, SING
+ db 35, EGG_BOMB
+ db 41, DEFENSE_CURL
+ db 49, LIGHT_SCREEN
+ db 57, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+TangelaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 4, SLEEP_POWDER
+ db 10, ABSORB
+ db 13, POISONPOWDER
+ db 19, VINE_WHIP
+ db 25, BIND
+ db 31, MEGA_DRAIN
+ db 34, STUN_SPORE
+ db 40, SLAM
+ db 46, GROWTH
+ db 0 ; no more level-up moves
+
+KangaskhanEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, COMET_PUNCH
+ db 7, LEER
+ db 13, BITE
+ db 19, TAIL_WHIP
+ db 25, MEGA_PUNCH
+ db 31, RAGE
+ db 37, ENDURE
+ db 43, DIZZY_PUNCH
+ db 49, REVERSAL
+ db 0 ; no more level-up moves
+
+HorseaEvosAttacks:
+ db EVOLVE_LEVEL, 32, SEADRA
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 8, SMOKESCREEN
+ db 15, LEER
+ db 22, WATER_GUN
+ db 29, TWISTER
+ db 36, AGILITY
+ db 43, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+SeadraEvosAttacks:
+ db EVOLVE_TRADE, DRAGON_SCALE, KINGDRA
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, SMOKESCREEN
+ db 1, LEER
+ db 1, WATER_GUN
+ db 8, SMOKESCREEN
+ db 15, LEER
+ db 22, WATER_GUN
+ db 29, TWISTER
+ db 40, AGILITY
+ db 51, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+GoldeenEvosAttacks:
+ db EVOLVE_LEVEL, 33, SEAKING
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, TAIL_WHIP
+ db 10, SUPERSONIC
+ db 15, HORN_ATTACK
+ db 24, FLAIL
+ db 29, FURY_ATTACK
+ db 38, WATERFALL
+ db 43, HORN_DRILL
+ db 52, AGILITY
+ db 0 ; no more level-up moves
+
+SeakingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, TAIL_WHIP
+ db 1, TAIL_WHIP
+ db 10, SUPERSONIC
+ db 15, HORN_ATTACK
+ db 24, FLAIL
+ db 29, FURY_ATTACK
+ db 41, WATERFALL
+ db 49, HORN_DRILL
+ db 61, AGILITY
+ db 0 ; no more level-up moves
+
+StaryuEvosAttacks:
+ db EVOLVE_ITEM, WATER_STONE, STARMIE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, HARDEN
+ db 7, WATER_GUN
+ db 13, RAPID_SPIN
+ db 19, RECOVER
+ db 25, SWIFT
+ db 31, BUBBLEBEAM
+ db 37, MINIMIZE
+ db 43, LIGHT_SCREEN
+ db 50, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+StarmieEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, RAPID_SPIN
+ db 1, RECOVER
+ db 1, BUBBLEBEAM
+ db 37, CONFUSE_RAY
+ db 0 ; no more level-up moves
+
+MrMimeEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BARRIER
+ db 6, CONFUSION
+ db 11, SUBSTITUTE
+ db 16, MEDITATE
+ db 21, DOUBLESLAP
+ db 26, LIGHT_SCREEN
+ db 26, REFLECT
+ db 31, ENCORE
+ db 36, PSYBEAM
+ db 41, BATON_PASS
+ db 46, SAFEGUARD
+ db 0 ; no more level-up moves
+
+ScytherEvosAttacks:
+ db EVOLVE_TRADE, METAL_COAT, SCIZOR
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 6, FOCUS_ENERGY
+ db 12, PURSUIT
+ db 18, FALSE_SWIPE
+ db 24, AGILITY
+ db 30, WING_ATTACK
+ db 36, SLASH
+ db 42, SWORDS_DANCE
+ db 48, DOUBLE_TEAM
+ db 0 ; no more level-up moves
+
+JynxEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, LICK
+ db 1, LOVELY_KISS
+ db 1, POWDER_SNOW
+ db 9, LOVELY_KISS
+ db 13, POWDER_SNOW
+ db 21, DOUBLESLAP
+ db 25, ICE_PUNCH
+ db 35, MEAN_LOOK
+ db 41, BODY_SLAM
+ db 51, PERISH_SONG
+ db 57, BLIZZARD
+ db 0 ; no more level-up moves
+
+ElectabuzzEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 1, THUNDERPUNCH
+ db 9, THUNDERPUNCH
+ db 17, LIGHT_SCREEN
+ db 25, SWIFT
+ db 36, SCREECH
+ db 47, THUNDERBOLT
+ db 58, THUNDER
+ db 0 ; no more level-up moves
+
+MagmarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 1, LEER
+ db 1, SMOG
+ db 1, FIRE_PUNCH
+ db 7, LEER
+ db 13, SMOG
+ db 19, FIRE_PUNCH
+ db 25, SMOKESCREEN
+ db 33, SUNNY_DAY
+ db 41, FLAMETHROWER
+ db 49, CONFUSE_RAY
+ db 57, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+PinsirEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, VICEGRIP
+ db 7, FOCUS_ENERGY
+ db 13, BIND
+ db 19, SEISMIC_TOSS
+ db 25, HARDEN
+ db 31, GUILLOTINE
+ db 37, SUBMISSION
+ db 43, SWORDS_DANCE
+ db 0 ; no more level-up moves
+
+TaurosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, TAIL_WHIP
+ db 8, RAGE
+ db 13, HORN_ATTACK
+ db 19, SCARY_FACE
+ db 26, PURSUIT
+ db 34, REST
+ db 43, THRASH
+ db 53, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+MagikarpEvosAttacks:
+ db EVOLVE_LEVEL, 20, GYARADOS
+ db 0 ; no more evolutions
+ db 1, SPLASH
+ db 15, TACKLE
+ db 30, FLAIL
+ db 0 ; no more level-up moves
+
+GyaradosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, THRASH
+ db 20, BITE
+ db 25, DRAGON_RAGE
+ db 30, LEER
+ db 35, TWISTER
+ db 40, HYDRO_PUMP
+ db 45, RAIN_DANCE
+ db 50, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+LaprasEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, GROWL
+ db 1, SING
+ db 8, MIST
+ db 15, BODY_SLAM
+ db 22, CONFUSE_RAY
+ db 29, PERISH_SONG
+ db 36, ICE_BEAM
+ db 43, RAIN_DANCE
+ db 50, SAFEGUARD
+ db 57, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+DittoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TRANSFORM
+ db 0 ; no more level-up moves
+
+EeveeEvosAttacks:
+ db EVOLVE_ITEM, THUNDERSTONE, JOLTEON
+ db EVOLVE_ITEM, WATER_STONE, VAPOREON
+ db EVOLVE_ITEM, FIRE_STONE, FLAREON
+ db EVOLVE_HAPPINESS, TR_MORNDAY, ESPEON
+ db EVOLVE_HAPPINESS, TR_NITE, UMBREON
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, GROWL
+ db 23, QUICK_ATTACK
+ db 30, BITE
+if _CRYSTAL
+ db 36, BATON_PASS
+else
+ db 36, FOCUS_ENERGY
+endc
+ db 42, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+VaporeonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, WATER_GUN
+ db 23, QUICK_ATTACK
+ db 30, BITE
+ db 36, AURORA_BEAM
+ db 42, HAZE
+ db 47, ACID_ARMOR
+ db 52, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+JolteonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, THUNDERSHOCK
+ db 23, QUICK_ATTACK
+ db 30, DOUBLE_KICK
+ db 36, PIN_MISSILE
+ db 42, THUNDER_WAVE
+ db 47, AGILITY
+ db 52, THUNDER
+ db 0 ; no more level-up moves
+
+FlareonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, EMBER
+ db 23, QUICK_ATTACK
+ db 30, BITE
+ db 36, FIRE_SPIN
+ db 42, SMOG
+ db 47, LEER
+ db 52, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+PorygonEvosAttacks:
+ db EVOLVE_TRADE, UP_GRADE, PORYGON2
+ db 0 ; no more evolutions
+ db 1, CONVERSION2
+ db 1, TACKLE
+ db 1, CONVERSION
+ db 9, AGILITY
+ db 12, PSYBEAM
+ db 20, RECOVER
+ db 24, SHARPEN
+ db 32, LOCK_ON
+ db 36, TRI_ATTACK
+ db 44, ZAP_CANNON
+ db 0 ; no more level-up moves
+
+OmanyteEvosAttacks:
+ db EVOLVE_LEVEL, 40, OMASTAR
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 1, WITHDRAW
+ db 13, BITE
+ db 19, WATER_GUN
+ db 31, LEER
+ db 37, PROTECT
+ db 49, ANCIENTPOWER
+ db 55, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+OmastarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 1, WITHDRAW
+ db 1, BITE
+ db 13, BITE
+ db 19, WATER_GUN
+ db 31, LEER
+ db 37, PROTECT
+ db 40, SPIKE_CANNON
+ db 54, ANCIENTPOWER
+ db 65, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+KabutoEvosAttacks:
+ db EVOLVE_LEVEL, 40, KABUTOPS
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, HARDEN
+ db 10, ABSORB
+ db 19, LEER
+ db 28, SAND_ATTACK
+ db 37, ENDURE
+ db 46, MEGA_DRAIN
+ db 55, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+KabutopsEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, HARDEN
+ db 1, ABSORB
+ db 10, ABSORB
+ db 19, LEER
+ db 28, SAND_ATTACK
+ db 37, ENDURE
+ db 40, SLASH
+ db 51, MEGA_DRAIN
+ db 65, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+AerodactylEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WING_ATTACK
+ db 8, AGILITY
+ db 15, BITE
+ db 22, SUPERSONIC
+ db 29, ANCIENTPOWER
+ db 36, SCARY_FACE
+ db 43, TAKE_DOWN
+ db 50, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+SnorlaxEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 8, AMNESIA
+ db 15, DEFENSE_CURL
+ db 22, BELLY_DRUM
+ db 29, HEADBUTT
+ db 36, SNORE
+ db 36, REST
+ db 43, BODY_SLAM
+ db 50, ROLLOUT
+ db 57, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+ArticunoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GUST
+ db 1, POWDER_SNOW
+ db 13, MIST
+ db 25, AGILITY
+ db 37, MIND_READER
+ db 49, ICE_BEAM
+ db 61, REFLECT
+ db 73, BLIZZARD
+ db 0 ; no more level-up moves
+
+ZapdosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, THUNDERSHOCK
+ db 13, THUNDER_WAVE
+ db 25, AGILITY
+ db 37, DETECT
+ db 49, DRILL_PECK
+ db 61, LIGHT_SCREEN
+ db 73, THUNDER
+ db 0 ; no more level-up moves
+
+MoltresEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WING_ATTACK
+ db 1, EMBER
+ db 13, FIRE_SPIN
+ db 25, AGILITY
+ db 37, ENDURE
+ db 49, FLAMETHROWER
+ db 61, SAFEGUARD
+ db 73, SKY_ATTACK
+ db 0 ; no more level-up moves
+
+DratiniEvosAttacks:
+ db EVOLVE_LEVEL, 30, DRAGONAIR
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 8, THUNDER_WAVE
+ db 15, TWISTER
+ db 22, DRAGON_RAGE
+ db 29, SLAM
+ db 36, AGILITY
+ db 43, SAFEGUARD
+ db 50, OUTRAGE
+ db 57, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+DragonairEvosAttacks:
+ db EVOLVE_LEVEL, 55, DRAGONITE
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 1, THUNDER_WAVE
+ db 1, TWISTER
+ db 8, THUNDER_WAVE
+ db 15, TWISTER
+ db 22, DRAGON_RAGE
+ db 29, SLAM
+ db 38, AGILITY
+ db 47, SAFEGUARD
+ db 56, OUTRAGE
+ db 65, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+DragoniteEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WRAP
+ db 1, LEER
+ db 1, THUNDER_WAVE
+ db 1, TWISTER
+ db 8, THUNDER_WAVE
+ db 15, TWISTER
+ db 22, DRAGON_RAGE
+ db 29, SLAM
+ db 38, AGILITY
+ db 47, SAFEGUARD
+ db 55, WING_ATTACK
+ db 61, OUTRAGE
+ db 75, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+MewtwoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONFUSION
+ db 1, DISABLE
+ db 11, BARRIER
+ db 22, SWIFT
+ db 33, PSYCH_UP
+ db 44, FUTURE_SIGHT
+ db 55, MIST
+ db 66, PSYCHIC_M
+ db 77, AMNESIA
+ db 88, RECOVER
+ db 99, SAFEGUARD
+ db 0 ; no more level-up moves
+
+MewEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 10, TRANSFORM
+ db 20, MEGA_PUNCH
+ db 30, METRONOME
+ db 40, PSYCHIC_M
+ db 50, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+ChikoritaEvosAttacks:
+ db EVOLVE_LEVEL, 16, BAYLEEF
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 8, RAZOR_LEAF
+ db 12, REFLECT
+ db 15, POISONPOWDER
+ db 22, SYNTHESIS
+ db 29, BODY_SLAM
+ db 36, LIGHT_SCREEN
+ db 43, SAFEGUARD
+ db 50, SOLARBEAM
+ db 0 ; no more level-up moves
+
+BayleefEvosAttacks:
+ db EVOLVE_LEVEL, 32, MEGANIUM
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, RAZOR_LEAF
+ db 1, REFLECT
+ db 8, RAZOR_LEAF
+ db 12, REFLECT
+ db 15, POISONPOWDER
+ db 23, SYNTHESIS
+ db 31, BODY_SLAM
+ db 39, LIGHT_SCREEN
+ db 47, SAFEGUARD
+ db 55, SOLARBEAM
+ db 0 ; no more level-up moves
+
+MeganiumEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, RAZOR_LEAF
+ db 1, REFLECT
+ db 8, RAZOR_LEAF
+ db 12, REFLECT
+ db 15, POISONPOWDER
+ db 23, SYNTHESIS
+ db 31, BODY_SLAM
+ db 41, LIGHT_SCREEN
+ db 51, SAFEGUARD
+ db 61, SOLARBEAM
+ db 0 ; no more level-up moves
+
+CyndaquilEvosAttacks:
+ db EVOLVE_LEVEL, 14, QUILAVA
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 6, SMOKESCREEN
+ db 12, EMBER
+ db 19, QUICK_ATTACK
+ db 27, FLAME_WHEEL
+ db 36, SWIFT
+ db 46, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+QuilavaEvosAttacks:
+ db EVOLVE_LEVEL, 36, TYPHLOSION
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 1, SMOKESCREEN
+ db 6, SMOKESCREEN
+ db 12, EMBER
+ db 21, QUICK_ATTACK
+ db 31, FLAME_WHEEL
+ db 42, SWIFT
+ db 54, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+TyphlosionEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 1, SMOKESCREEN
+ db 1, EMBER
+ db 6, SMOKESCREEN
+ db 12, EMBER
+ db 21, QUICK_ATTACK
+ db 31, FLAME_WHEEL
+ db 45, SWIFT
+ db 60, FLAMETHROWER
+ db 0 ; no more level-up moves
+
+TotodileEvosAttacks:
+ db EVOLVE_LEVEL, 18, CROCONAW
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 7, RAGE
+ db 13, WATER_GUN
+ db 20, BITE
+ db 27, SCARY_FACE
+ db 35, SLASH
+ db 43, SCREECH
+ db 52, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+CroconawEvosAttacks:
+ db EVOLVE_LEVEL, 30, FERALIGATR
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, RAGE
+ db 7, RAGE
+ db 13, WATER_GUN
+ db 21, BITE
+ db 28, SCARY_FACE
+ db 37, SLASH
+ db 45, SCREECH
+ db 55, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+FeraligatrEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, RAGE
+ db 1, WATER_GUN
+ db 7, RAGE
+ db 13, WATER_GUN
+ db 21, BITE
+ db 28, SCARY_FACE
+ db 38, SLASH
+ db 47, SCREECH
+ db 58, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+SentretEvosAttacks:
+ db EVOLVE_LEVEL, 15, FURRET
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 5, DEFENSE_CURL
+ db 11, QUICK_ATTACK
+ db 17, FURY_SWIPES
+ db 25, SLAM
+ db 33, REST
+ db 41, AMNESIA
+ db 0 ; no more level-up moves
+
+FurretEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, DEFENSE_CURL
+ db 1, QUICK_ATTACK
+ db 5, DEFENSE_CURL
+ db 11, QUICK_ATTACK
+ db 18, FURY_SWIPES
+ db 28, SLAM
+ db 38, REST
+ db 48, AMNESIA
+ db 0 ; no more level-up moves
+
+HoothootEvosAttacks:
+ db EVOLVE_LEVEL, 20, NOCTOWL
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 6, FORESIGHT
+ db 11, PECK
+ db 16, HYPNOSIS
+ db 22, REFLECT
+ db 28, TAKE_DOWN
+ db 34, CONFUSION
+ db 48, DREAM_EATER
+ db 0 ; no more level-up moves
+
+NoctowlEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, FORESIGHT
+ db 1, PECK
+ db 6, FORESIGHT
+ db 11, PECK
+ db 16, HYPNOSIS
+ db 25, REFLECT
+ db 33, TAKE_DOWN
+ db 41, CONFUSION
+ db 57, DREAM_EATER
+ db 0 ; no more level-up moves
+
+LedybaEvosAttacks:
+ db EVOLVE_LEVEL, 18, LEDIAN
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 8, SUPERSONIC
+ db 15, COMET_PUNCH
+ db 22, LIGHT_SCREEN
+ db 22, REFLECT
+ db 22, SAFEGUARD
+ db 29, BATON_PASS
+ db 36, SWIFT
+ db 43, AGILITY
+ db 50, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+LedianEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SUPERSONIC
+ db 8, SUPERSONIC
+ db 15, COMET_PUNCH
+ db 24, LIGHT_SCREEN
+ db 24, REFLECT
+ db 24, SAFEGUARD
+ db 33, BATON_PASS
+ db 42, SWIFT
+ db 51, AGILITY
+ db 60, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+SpinarakEvosAttacks:
+ db EVOLVE_LEVEL, 22, ARIADOS
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, STRING_SHOT
+ db 6, SCARY_FACE
+ db 11, CONSTRICT
+ db 17, NIGHT_SHADE
+ db 23, LEECH_LIFE
+ db 30, FURY_SWIPES
+ db 37, SPIDER_WEB
+if _CRYSTAL
+ db 45, AGILITY
+else
+ db 45, SCREECH
+endc
+ db 53, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+AriadosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 1, STRING_SHOT
+ db 1, SCARY_FACE
+ db 1, CONSTRICT
+ db 6, SCARY_FACE
+ db 11, CONSTRICT
+ db 17, NIGHT_SHADE
+ db 25, LEECH_LIFE
+ db 34, FURY_SWIPES
+ db 43, SPIDER_WEB
+if _CRYSTAL
+ db 53, AGILITY
+else
+ db 53, SCREECH
+endc
+ db 63, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+CrobatEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCREECH
+ db 1, LEECH_LIFE
+ db 1, SUPERSONIC
+ db 6, SUPERSONIC
+ db 12, BITE
+ db 19, CONFUSE_RAY
+ db 30, WING_ATTACK
+ db 42, MEAN_LOOK
+ db 55, HAZE
+ db 0 ; no more level-up moves
+
+ChinchouEvosAttacks:
+ db EVOLVE_LEVEL, 27, LANTURN
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, THUNDER_WAVE
+ db 5, SUPERSONIC
+ db 13, FLAIL
+ db 17, WATER_GUN
+ db 25, SPARK
+ db 29, CONFUSE_RAY
+ db 37, TAKE_DOWN
+ db 41, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+LanturnEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, THUNDER_WAVE
+ db 1, SUPERSONIC
+ db 5, SUPERSONIC
+ db 13, FLAIL
+ db 17, WATER_GUN
+ db 25, SPARK
+ db 33, CONFUSE_RAY
+ db 45, TAKE_DOWN
+ db 53, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PichuEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, PIKACHU
+ db 0 ; no more evolutions
+ db 1, THUNDERSHOCK
+ db 1, CHARM
+ db 6, TAIL_WHIP
+ db 8, THUNDER_WAVE
+ db 11, SWEET_KISS
+ db 0 ; no more level-up moves
+
+CleffaEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, CLEFAIRY
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, CHARM
+ db 4, ENCORE
+ db 8, SING
+ db 13, SWEET_KISS
+ db 0 ; no more level-up moves
+
+IgglybuffEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, JIGGLYPUFF
+ db 0 ; no more evolutions
+ db 1, SING
+ db 1, CHARM
+ db 4, DEFENSE_CURL
+ db 9, POUND
+ db 14, SWEET_KISS
+ db 0 ; no more level-up moves
+
+TogepiEvosAttacks:
+ db EVOLVE_HAPPINESS, TR_ANYTIME, TOGETIC
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, CHARM
+ db 7, METRONOME
+ db 18, SWEET_KISS
+ db 25, ENCORE
+ db 31, SAFEGUARD
+ db 38, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+TogeticEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, CHARM
+ db 7, METRONOME
+ db 18, SWEET_KISS
+ db 25, ENCORE
+ db 31, SAFEGUARD
+ db 38, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+NatuEvosAttacks:
+ db EVOLVE_LEVEL, 25, XATU
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, LEER
+ db 10, NIGHT_SHADE
+ db 20, TELEPORT
+ db 30, FUTURE_SIGHT
+ db 40, CONFUSE_RAY
+ db 50, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+XatuEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 1, LEER
+ db 1, NIGHT_SHADE
+ db 10, NIGHT_SHADE
+ db 20, TELEPORT
+ db 35, FUTURE_SIGHT
+ db 50, CONFUSE_RAY
+ db 65, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+MareepEvosAttacks:
+ db EVOLVE_LEVEL, 15, FLAAFFY
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 9, THUNDERSHOCK
+ db 16, THUNDER_WAVE
+ db 23, COTTON_SPORE
+ db 30, LIGHT_SCREEN
+ db 37, THUNDER
+ db 0 ; no more level-up moves
+
+FlaaffyEvosAttacks:
+ db EVOLVE_LEVEL, 30, AMPHAROS
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, THUNDERSHOCK
+ db 9, THUNDERSHOCK
+ db 18, THUNDER_WAVE
+ db 27, COTTON_SPORE
+ db 36, LIGHT_SCREEN
+ db 45, THUNDER
+ db 0 ; no more level-up moves
+
+AmpharosEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, THUNDERSHOCK
+ db 1, THUNDER_WAVE
+ db 9, THUNDERSHOCK
+ db 18, THUNDER_WAVE
+ db 27, COTTON_SPORE
+ db 30, THUNDERPUNCH
+ db 42, LIGHT_SCREEN
+ db 57, THUNDER
+ db 0 ; no more level-up moves
+
+BellossomEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, SWEET_SCENT
+ db 1, STUN_SPORE
+ db 1, PETAL_DANCE
+ db 55, SOLARBEAM
+ db 0 ; no more level-up moves
+
+MarillEvosAttacks:
+ db EVOLVE_LEVEL, 18, AZUMARILL
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 3, DEFENSE_CURL
+ db 6, TAIL_WHIP
+ db 10, WATER_GUN
+ db 15, ROLLOUT
+ db 21, BUBBLEBEAM
+ db 28, DOUBLE_EDGE
+ db 36, RAIN_DANCE
+ db 0 ; no more level-up moves
+
+AzumarillEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, DEFENSE_CURL
+ db 1, TAIL_WHIP
+ db 1, WATER_GUN
+ db 3, DEFENSE_CURL
+ db 6, TAIL_WHIP
+ db 10, WATER_GUN
+ db 15, ROLLOUT
+ db 25, BUBBLEBEAM
+ db 36, DOUBLE_EDGE
+ db 48, RAIN_DANCE
+ db 0 ; no more level-up moves
+
+SudowoodoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ROCK_THROW
+ db 1, MIMIC
+ db 10, FLAIL
+ db 19, LOW_KICK
+ db 28, ROCK_SLIDE
+ db 37, FAINT_ATTACK
+ db 46, SLAM
+ db 0 ; no more level-up moves
+
+PolitoedEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, HYPNOSIS
+ db 1, DOUBLESLAP
+ db 1, PERISH_SONG
+ db 35, PERISH_SONG
+ db 51, SWAGGER
+ db 0 ; no more level-up moves
+
+HoppipEvosAttacks:
+ db EVOLVE_LEVEL, 18, SKIPLOOM
+ db 0 ; no more evolutions
+ db 1, SPLASH
+if _CRYSTAL
+ db 5, SYNTHESIS
+else
+ db 1, SYNTHESIS
+endc
+ db 5, TAIL_WHIP
+ db 10, TACKLE
+ db 13, POISONPOWDER
+ db 15, STUN_SPORE
+ db 17, SLEEP_POWDER
+ db 20, LEECH_SEED
+ db 25, COTTON_SPORE
+ db 30, MEGA_DRAIN
+ db 0 ; no more level-up moves
+
+SkiploomEvosAttacks:
+ db EVOLVE_LEVEL, 27, JUMPLUFF
+ db 0 ; no more evolutions
+ db 1, SPLASH
+ db 1, SYNTHESIS
+ db 1, TAIL_WHIP
+ db 1, TACKLE
+if _CRYSTAL
+ db 5, SYNTHESIS
+endc
+ db 5, TAIL_WHIP
+ db 10, TACKLE
+ db 13, POISONPOWDER
+ db 15, STUN_SPORE
+ db 17, SLEEP_POWDER
+ db 22, LEECH_SEED
+ db 29, COTTON_SPORE
+ db 36, MEGA_DRAIN
+ db 0 ; no more level-up moves
+
+JumpluffEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SPLASH
+ db 1, SYNTHESIS
+ db 1, TAIL_WHIP
+ db 1, TACKLE
+if _CRYSTAL
+ db 5, SYNTHESIS
+endc
+ db 5, TAIL_WHIP
+ db 10, TACKLE
+ db 13, POISONPOWDER
+ db 15, STUN_SPORE
+ db 17, SLEEP_POWDER
+ db 22, LEECH_SEED
+ db 33, COTTON_SPORE
+ db 44, MEGA_DRAIN
+ db 0 ; no more level-up moves
+
+AipomEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, TAIL_WHIP
+ db 6, SAND_ATTACK
+ db 12, BATON_PASS
+ db 19, FURY_SWIPES
+ db 27, SWIFT
+ db 36, SCREECH
+ db 46, AGILITY
+ db 0 ; no more level-up moves
+
+SunkernEvosAttacks:
+ db EVOLVE_ITEM, SUN_STONE, SUNFLORA
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 4, GROWTH
+ db 10, MEGA_DRAIN
+ db 19, SUNNY_DAY
+ db 31, SYNTHESIS
+ db 46, GIGA_DRAIN
+ db 0 ; no more level-up moves
+
+SunfloraEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ABSORB
+ db 1, POUND
+ db 4, GROWTH
+ db 10, RAZOR_LEAF
+ db 19, SUNNY_DAY
+ db 31, PETAL_DANCE
+ db 46, SOLARBEAM
+ db 0 ; no more level-up moves
+
+YanmaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, FORESIGHT
+ db 7, QUICK_ATTACK
+ db 13, DOUBLE_TEAM
+ db 19, SONICBOOM
+ db 25, DETECT
+ db 31, SUPERSONIC
+if _CRYSTAL
+ db 37, WING_ATTACK
+else
+ db 37, SWIFT
+endc
+ db 43, SCREECH
+ db 0 ; no more level-up moves
+
+WooperEvosAttacks:
+ db EVOLVE_LEVEL, 20, QUAGSIRE
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, TAIL_WHIP
+ db 11, SLAM
+ db 21, AMNESIA
+ db 31, EARTHQUAKE
+ db 41, RAIN_DANCE
+ db 51, MIST
+ db 51, HAZE
+ db 0 ; no more level-up moves
+
+QuagsireEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 1, TAIL_WHIP
+ db 11, SLAM
+ db 23, AMNESIA
+ db 35, EARTHQUAKE
+ db 47, RAIN_DANCE
+ db 59, MIST
+ db 59, HAZE
+ db 0 ; no more level-up moves
+
+EspeonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, CONFUSION
+ db 23, QUICK_ATTACK
+ db 30, SWIFT
+ db 36, PSYBEAM
+ db 42, PSYCH_UP
+ db 47, PSYCHIC_M
+ db 52, MORNING_SUN
+ db 0 ; no more level-up moves
+
+UmbreonEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, TAIL_WHIP
+ db 8, SAND_ATTACK
+ db 16, PURSUIT
+ db 23, QUICK_ATTACK
+ db 30, CONFUSE_RAY
+ db 36, FAINT_ATTACK
+ db 42, MEAN_LOOK
+ db 47, SCREECH
+ db 52, MOONLIGHT
+ db 0 ; no more level-up moves
+
+MurkrowEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PECK
+ db 11, PURSUIT
+ db 16, HAZE
+ db 26, NIGHT_SHADE
+ db 31, FAINT_ATTACK
+ db 41, MEAN_LOOK
+ db 0 ; no more level-up moves
+
+SlowkingEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CURSE
+ db 1, TACKLE
+ db 6, GROWL
+ db 15, WATER_GUN
+ db 20, CONFUSION
+ db 29, DISABLE
+ db 34, HEADBUTT
+ db 43, SWAGGER
+ db 48, PSYCHIC_M
+ db 0 ; no more level-up moves
+
+MisdreavusEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, GROWL
+ db 1, PSYWAVE
+ db 6, SPITE
+ db 12, CONFUSE_RAY
+ db 19, MEAN_LOOK
+ db 27, PSYBEAM
+ db 36, PAIN_SPLIT
+ db 46, PERISH_SONG
+ db 0 ; no more level-up moves
+
+UnownEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HIDDEN_POWER
+ db 0 ; no more level-up moves
+
+WobbuffetEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, COUNTER
+ db 1, MIRROR_COAT
+ db 1, SAFEGUARD
+ db 1, DESTINY_BOND
+ db 0 ; no more level-up moves
+
+GirafarigEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 1, CONFUSION
+ db 1, STOMP
+ db 7, CONFUSION
+ db 13, STOMP
+ db 20, AGILITY
+ db 30, BATON_PASS
+ db 41, PSYBEAM
+ db 54, CRUNCH
+ db 0 ; no more level-up moves
+
+PinecoEvosAttacks:
+ db EVOLVE_LEVEL, 31, FORRETRESS
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, PROTECT
+ db 8, SELFDESTRUCT
+ db 15, TAKE_DOWN
+ db 22, RAPID_SPIN
+ db 29, BIDE
+ db 36, EXPLOSION
+ db 43, SPIKES
+ db 50, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+ForretressEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, PROTECT
+ db 1, SELFDESTRUCT
+ db 8, SELFDESTRUCT
+ db 15, TAKE_DOWN
+ db 22, RAPID_SPIN
+ db 29, BIDE
+ db 39, EXPLOSION
+ db 49, SPIKES
+ db 59, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+DunsparceEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, RAGE
+ db 5, DEFENSE_CURL
+ db 13, GLARE
+ db 18, SPITE
+ db 26, PURSUIT
+ db 30, SCREECH
+ db 38, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+GligarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POISON_STING
+ db 6, SAND_ATTACK
+ db 13, HARDEN
+ db 20, QUICK_ATTACK
+ db 28, FAINT_ATTACK
+ db 36, SLASH
+ db 44, SCREECH
+ db 52, GUILLOTINE
+ db 0 ; no more level-up moves
+
+SteelixEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCREECH
+ db 10, BIND
+ db 14, ROCK_THROW
+ db 23, HARDEN
+ db 27, RAGE
+ db 36, SANDSTORM
+ db 40, SLAM
+ db 49, CRUNCH
+ db 0 ; no more level-up moves
+
+SnubbullEvosAttacks:
+ db EVOLVE_LEVEL, 23, GRANBULL
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCARY_FACE
+ db 4, TAIL_WHIP
+ db 8, CHARM
+ db 13, BITE
+ db 19, LICK
+ db 26, ROAR
+ db 34, RAGE
+ db 43, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+GranbullEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, SCARY_FACE
+ db 4, TAIL_WHIP
+ db 8, CHARM
+ db 13, BITE
+ db 19, LICK
+ db 28, ROAR
+ db 38, RAGE
+ db 51, TAKE_DOWN
+ db 0 ; no more level-up moves
+
+QwilfishEvosAttacks:
+ db 0 ; no more evolutions
+if _CRYSTAL
+ db 1, SPIKES
+endc
+ db 1, TACKLE
+ db 1, POISON_STING
+ db 10, HARDEN
+ db 10, MINIMIZE
+ db 19, WATER_GUN
+ db 28, PIN_MISSILE
+ db 37, TAKE_DOWN
+ db 46, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+ScizorEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 6, FOCUS_ENERGY
+ db 12, PURSUIT
+ db 18, FALSE_SWIPE
+ db 24, AGILITY
+ db 30, METAL_CLAW
+ db 36, SLASH
+ db 42, SWORDS_DANCE
+ db 48, DOUBLE_TEAM
+ db 0 ; no more level-up moves
+
+ShuckleEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONSTRICT
+ db 1, WITHDRAW
+ db 9, WRAP
+ db 14, ENCORE
+ db 23, SAFEGUARD
+ db 28, BIDE
+ db 37, REST
+ db 0 ; no more level-up moves
+
+HeracrossEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, LEER
+ db 6, HORN_ATTACK
+ db 12, ENDURE
+ db 19, FURY_ATTACK
+ db 27, COUNTER
+ db 35, TAKE_DOWN
+ db 44, REVERSAL
+ db 54, MEGAHORN
+ db 0 ; no more level-up moves
+
+SneaselEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 9, QUICK_ATTACK
+ db 17, SCREECH
+ db 25, FAINT_ATTACK
+ db 33, FURY_SWIPES
+ db 41, AGILITY
+ db 49, SLASH
+ db 57, BEAT_UP
+if _CRYSTAL
+ db 65, METAL_CLAW
+endc
+ db 0 ; no more level-up moves
+
+TeddiursaEvosAttacks:
+ db EVOLVE_LEVEL, 30, URSARING
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 8, LICK
+ db 15, FURY_SWIPES
+ db 22, FAINT_ATTACK
+ db 29, REST
+ db 36, SLASH
+ db 43, SNORE
+ db 50, THRASH
+ db 0 ; no more level-up moves
+
+UrsaringEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SCRATCH
+ db 1, LEER
+ db 1, LICK
+ db 1, FURY_SWIPES
+ db 8, LICK
+ db 15, FURY_SWIPES
+ db 22, FAINT_ATTACK
+ db 29, REST
+ db 39, SLASH
+ db 49, SNORE
+ db 59, THRASH
+ db 0 ; no more level-up moves
+
+SlugmaEvosAttacks:
+ db EVOLVE_LEVEL, 38, MAGCARGO
+ db 0 ; no more evolutions
+ db 1, SMOG
+ db 8, EMBER
+ db 15, ROCK_THROW
+ db 22, HARDEN
+ db 29, AMNESIA
+ db 36, FLAMETHROWER
+ db 43, ROCK_SLIDE
+ db 50, BODY_SLAM
+ db 0 ; no more level-up moves
+
+MagcargoEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SMOG
+ db 1, EMBER
+ db 1, ROCK_THROW
+ db 8, EMBER
+ db 15, ROCK_THROW
+ db 22, HARDEN
+ db 29, AMNESIA
+ db 36, FLAMETHROWER
+ db 48, ROCK_SLIDE
+ db 60, BODY_SLAM
+ db 0 ; no more level-up moves
+
+SwinubEvosAttacks:
+ db EVOLVE_LEVEL, 33, PILOSWINE
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 10, POWDER_SNOW
+ db 19, ENDURE
+ db 28, TAKE_DOWN
+ db 37, MIST
+ db 46, BLIZZARD
+if _CRYSTAL
+ db 55, AMNESIA
+endc
+ db 0 ; no more level-up moves
+
+PiloswineEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, POWDER_SNOW
+ db 1, ENDURE
+ db 10, POWDER_SNOW
+ db 19, ENDURE
+ db 28, TAKE_DOWN
+ db 33, FURY_ATTACK
+ db 42, MIST
+ db 56, BLIZZARD
+if _CRYSTAL
+ db 70, AMNESIA
+endc
+ db 0 ; no more level-up moves
+
+CorsolaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 7, HARDEN
+ db 13, BUBBLE
+ db 19, RECOVER
+ db 25, BUBBLEBEAM
+ db 31, SPIKE_CANNON
+ db 37, MIRROR_COAT
+ db 43, ANCIENTPOWER
+ db 0 ; no more level-up moves
+
+RemoraidEvosAttacks:
+ db EVOLVE_LEVEL, 25, OCTILLERY
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 11, LOCK_ON
+ db 22, PSYBEAM
+ db 22, AURORA_BEAM
+ db 22, BUBBLEBEAM
+ db 33, FOCUS_ENERGY
+ db 44, ICE_BEAM
+ db 55, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+OctilleryEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, WATER_GUN
+ db 11, CONSTRICT
+ db 22, PSYBEAM
+ db 22, AURORA_BEAM
+ db 22, BUBBLEBEAM
+ db 25, OCTAZOOKA
+ db 38, FOCUS_ENERGY
+ db 54, ICE_BEAM
+ db 70, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+DelibirdEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, PRESENT
+ db 0 ; no more level-up moves
+
+MantineEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, BUBBLE
+ db 10, SUPERSONIC
+ db 18, BUBBLEBEAM
+ db 25, TAKE_DOWN
+ db 32, AGILITY
+ db 40, WING_ATTACK
+ db 49, CONFUSE_RAY
+ db 0 ; no more level-up moves
+
+SkarmoryEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, PECK
+ db 13, SAND_ATTACK
+ db 19, SWIFT
+ db 25, AGILITY
+ db 37, FURY_ATTACK
+ db 49, STEEL_WING
+ db 0 ; no more level-up moves
+
+HoundourEvosAttacks:
+ db EVOLVE_LEVEL, 24, HOUNDOOM
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, EMBER
+ db 7, ROAR
+ db 13, SMOG
+ db 20, BITE
+ db 27, FAINT_ATTACK
+ db 35, FLAMETHROWER
+ db 43, CRUNCH
+ db 0 ; no more level-up moves
+
+HoundoomEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LEER
+ db 1, EMBER
+ db 7, ROAR
+ db 13, SMOG
+ db 20, BITE
+ db 30, FAINT_ATTACK
+ db 41, FLAMETHROWER
+ db 52, CRUNCH
+ db 0 ; no more level-up moves
+
+KingdraEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BUBBLE
+ db 1, SMOKESCREEN
+ db 1, LEER
+ db 1, WATER_GUN
+ db 8, SMOKESCREEN
+ db 15, LEER
+ db 22, WATER_GUN
+ db 29, TWISTER
+ db 40, AGILITY
+ db 51, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+PhanpyEvosAttacks:
+ db EVOLVE_LEVEL, 25, DONPHAN
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 1, GROWL
+ db 9, DEFENSE_CURL
+ db 17, FLAIL
+ db 25, TAKE_DOWN
+ db 33, ROLLOUT
+ db 41, ENDURE
+ db 49, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+DonphanEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, HORN_ATTACK
+ db 1, GROWL
+ db 9, DEFENSE_CURL
+ db 17, FLAIL
+ db 25, FURY_ATTACK
+ db 33, ROLLOUT
+ db 41, RAPID_SPIN
+ db 49, EARTHQUAKE
+ db 0 ; no more level-up moves
+
+Porygon2EvosAttacks:
+ db 0 ; no more evolutions
+ db 1, CONVERSION2
+ db 1, TACKLE
+ db 1, CONVERSION
+ db 9, AGILITY
+ db 12, PSYBEAM
+ db 20, RECOVER
+ db 24, DEFENSE_CURL
+ db 32, LOCK_ON
+ db 36, TRI_ATTACK
+ db 44, ZAP_CANNON
+ db 0 ; no more level-up moves
+
+StantlerEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 8, LEER
+ db 15, HYPNOSIS
+ db 23, STOMP
+ db 31, SAND_ATTACK
+ db 40, TAKE_DOWN
+ db 49, CONFUSE_RAY
+ db 0 ; no more level-up moves
+
+SmeargleEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SKETCH
+ db 11, SKETCH
+ db 21, SKETCH
+ db 31, SKETCH
+ db 41, SKETCH
+ db 51, SKETCH
+ db 61, SKETCH
+ db 71, SKETCH
+ db 81, SKETCH
+ db 91, SKETCH
+ db 0 ; no more level-up moves
+
+TyrogueEvosAttacks:
+ db EVOLVE_STAT, 20, ATK_LT_DEF, HITMONCHAN
+ db EVOLVE_STAT, 20, ATK_GT_DEF, HITMONLEE
+ db EVOLVE_STAT, 20, ATK_EQ_DEF, HITMONTOP
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 0 ; no more level-up moves
+
+HitmontopEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, ROLLING_KICK
+ db 7, FOCUS_ENERGY
+ db 13, PURSUIT
+ db 19, QUICK_ATTACK
+ db 25, RAPID_SPIN
+ db 31, COUNTER
+ db 37, AGILITY
+ db 43, DETECT
+ db 49, TRIPLE_KICK
+ db 0 ; no more level-up moves
+
+SmoochumEvosAttacks:
+ db EVOLVE_LEVEL, 30, JYNX
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 1, LICK
+ db 9, SWEET_KISS
+ db 13, POWDER_SNOW
+ db 21, CONFUSION
+ db 25, SING
+ db 33, MEAN_LOOK
+ db 37, PSYCHIC_M
+ db 45, PERISH_SONG
+ db 49, BLIZZARD
+ db 0 ; no more level-up moves
+
+ElekidEvosAttacks:
+ db EVOLVE_LEVEL, 30, ELECTABUZZ
+ db 0 ; no more evolutions
+ db 1, QUICK_ATTACK
+ db 1, LEER
+ db 9, THUNDERPUNCH
+ db 17, LIGHT_SCREEN
+ db 25, SWIFT
+ db 33, SCREECH
+ db 41, THUNDERBOLT
+ db 49, THUNDER
+ db 0 ; no more level-up moves
+
+MagbyEvosAttacks:
+ db EVOLVE_LEVEL, 30, MAGMAR
+ db 0 ; no more evolutions
+ db 1, EMBER
+ db 7, LEER
+ db 13, SMOG
+ db 19, FIRE_PUNCH
+ db 25, SMOKESCREEN
+ db 31, SUNNY_DAY
+ db 37, FLAMETHROWER
+ db 43, CONFUSE_RAY
+ db 49, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+MiltankEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, TACKLE
+ db 4, GROWL
+ db 8, DEFENSE_CURL
+ db 13, STOMP
+ db 19, MILK_DRINK
+ db 26, BIDE
+ db 34, ROLLOUT
+ db 43, BODY_SLAM
+ db 53, HEAL_BELL
+ db 0 ; no more level-up moves
+
+BlisseyEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, POUND
+ db 4, GROWL
+ db 7, TAIL_WHIP
+ db 10, SOFTBOILED
+ db 13, DOUBLESLAP
+ db 18, MINIMIZE
+ db 23, SING
+ db 28, EGG_BOMB
+ db 33, DEFENSE_CURL
+ db 40, LIGHT_SCREEN
+ db 47, DOUBLE_EDGE
+ db 0 ; no more level-up moves
+
+RaikouEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 11, THUNDERSHOCK
+ db 21, ROAR
+ db 31, QUICK_ATTACK
+ db 41, SPARK
+ db 51, REFLECT
+ db 61, CRUNCH
+ db 71, THUNDER
+ db 0 ; no more level-up moves
+
+EnteiEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 11, EMBER
+ db 21, ROAR
+ db 31, FIRE_SPIN
+ db 41, STOMP
+ db 51, FLAMETHROWER
+ db 61, SWAGGER
+ db 71, FIRE_BLAST
+ db 0 ; no more level-up moves
+
+SuicuneEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+if _CRYSTAL
+ db 11, BUBBLEBEAM
+ db 21, RAIN_DANCE
+ db 31, GUST
+ db 41, AURORA_BEAM
+else
+ db 11, WATER_GUN
+ db 21, ROAR
+ db 31, GUST
+ db 41, BUBBLEBEAM
+endc
+ db 51, MIST
+ db 61, MIRROR_COAT
+ db 71, HYDRO_PUMP
+ db 0 ; no more level-up moves
+
+LarvitarEvosAttacks:
+ db EVOLVE_LEVEL, 30, PUPITAR
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 8, SANDSTORM
+ db 15, SCREECH
+ db 22, ROCK_SLIDE
+ db 29, THRASH
+ db 36, SCARY_FACE
+ db 43, CRUNCH
+ db 50, EARTHQUAKE
+ db 57, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+PupitarEvosAttacks:
+ db EVOLVE_LEVEL, 55, TYRANITAR
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 1, SANDSTORM
+ db 1, SCREECH
+ db 8, SANDSTORM
+ db 15, SCREECH
+ db 22, ROCK_SLIDE
+ db 29, THRASH
+ db 38, SCARY_FACE
+ db 47, CRUNCH
+ db 56, EARTHQUAKE
+ db 65, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+TyranitarEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, BITE
+ db 1, LEER
+ db 1, SANDSTORM
+ db 1, SCREECH
+ db 8, SANDSTORM
+ db 15, SCREECH
+ db 22, ROCK_SLIDE
+ db 29, THRASH
+ db 38, SCARY_FACE
+ db 47, CRUNCH
+ db 61, EARTHQUAKE
+ db 75, HYPER_BEAM
+ db 0 ; no more level-up moves
+
+LugiaEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, AEROBLAST
+ db 11, SAFEGUARD
+ db 22, GUST
+ db 33, RECOVER
+ db 44, HYDRO_PUMP
+ db 55, RAIN_DANCE
+ db 66, SWIFT
+ db 77, WHIRLWIND
+ db 88, ANCIENTPOWER
+ db 99, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+HoOhEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, SACRED_FIRE
+ db 11, SAFEGUARD
+ db 22, GUST
+ db 33, RECOVER
+ db 44, FIRE_BLAST
+ db 55, SUNNY_DAY
+ db 66, SWIFT
+ db 77, WHIRLWIND
+ db 88, ANCIENTPOWER
+ db 99, FUTURE_SIGHT
+ db 0 ; no more level-up moves
+
+CelebiEvosAttacks:
+ db 0 ; no more evolutions
+ db 1, LEECH_SEED
+ db 1, CONFUSION
+ db 1, RECOVER
+ db 1, HEAL_BELL
+ db 10, SAFEGUARD
+ db 20, ANCIENTPOWER
+ db 30, FUTURE_SIGHT
+ db 40, BATON_PASS
+ db 50, PERISH_SONG
+ db 0 ; no more level-up moves
diff --git a/data/evos_attacks_pointers.asm b/data/pokemon/evos_attacks_pointers.asm
index f6582e786..f6582e786 100644
--- a/data/evos_attacks_pointers.asm
+++ b/data/pokemon/evos_attacks_pointers.asm
diff --git a/data/mon_menu_icons.asm b/data/pokemon/menu_icons.asm
index 360b206a2..360b206a2 100644
--- a/data/mon_menu_icons.asm
+++ b/data/pokemon/menu_icons.asm
diff --git a/data/pokemon_names.asm b/data/pokemon/pokemon_names.asm
index 266b0c020..266b0c020 100644
--- a/data/pokemon_names.asm
+++ b/data/pokemon/pokemon_names.asm
diff --git a/data/sgb_border_map.asm b/data/sgb_border_map.asm
new file mode 100644
index 000000000..d9efb8ead
--- /dev/null
+++ b/data/sgb_border_map.asm
@@ -0,0 +1,29 @@
+
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+ db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $54, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
+ db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
+ db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $08, $14, $09, $14, $0a, $14, $0b, $14, $0c, $14, $0d, $14, $07, $14, $07, $14, $18, $14, $09, $14, $1a, $14, $1b, $14, $0d, $14, $0c, $14, $1c, $14, $29, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
+ db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $36, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $27, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
+ db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $1f, $10, $37, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
+ db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $1f, $10, $37, $10, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
+ db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $1f, $10, $37, $10, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
+ db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $1f, $10, $37, $10, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+ db $02, $54, $01, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14
+ db $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14
+ db $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14
+ db $32, $54, $31, $54, $30, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $30, $14, $31, $14, $32, $14
+ db $06, $54, $05, $54, $04, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $04, $14, $05, $14, $06, $14
+ db $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14
+ db $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14
+ db $34, $54, $33, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $33, $14, $34, $14
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+ db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $1f, $10, $37, $10, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
+ db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $1f, $10, $37, $10, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
+ db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $1f, $10, $37, $10, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
+ db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $1f, $10, $37, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
+ db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $2e, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2d, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
+ db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $39, $14, $0e, $14, $09, $14, $0f, $14, $28, $14, $07, $14, $19, $14, $0c, $14, $1c, $14, $29, $14, $2a, $14, $2b, $14, $2c, $14, $39, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
+ db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
+ db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $24, $54, $07, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
+ db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
diff --git a/data/text_buffers.asm b/data/text_buffers.asm
new file mode 100644
index 000000000..5a03c8cc7
--- /dev/null
+++ b/data/text_buffers.asm
@@ -0,0 +1,9 @@
+StringBufferPointers:: ; 24000
+; entries correspond to arguments for text_buffer (TX_STRINGBUFFER)
+ dw StringBuffer3 ; 0
+ dw StringBuffer4 ; 1
+ dw StringBuffer5 ; 2
+ dw StringBuffer2 ; 3
+ dw StringBuffer1 ; 4
+ dw EnemyMonNick ; 5
+ dw BattleMonNick ; 6
diff --git a/trainers/encounter_music.asm b/data/trainers/encounter_music.asm
index cd0348d81..cd0348d81 100644
--- a/trainers/encounter_music.asm
+++ b/data/trainers/encounter_music.asm
diff --git a/trainers/gendered_trainers.asm b/data/trainers/gendered_trainers.asm
index 98cfec2ac..98cfec2ac 100644
--- a/trainers/gendered_trainers.asm
+++ b/data/trainers/gendered_trainers.asm
diff --git a/trainers/trainers.asm b/data/trainers/parties.asm
index e96cfd895..e96cfd895 100644
--- a/trainers/trainers.asm
+++ b/data/trainers/parties.asm
diff --git a/trainers/trainer_pointers.asm b/data/trainers/party_pointers.asm
index c0b3d4538..c0b3d4538 100644
--- a/trainers/trainer_pointers.asm
+++ b/data/trainers/party_pointers.asm
diff --git a/trainers/attributes.asm b/data/trainers/trainer_attributes.asm
index 224e460c9..224e460c9 100644
--- a/trainers/attributes.asm
+++ b/data/trainers/trainer_attributes.asm
diff --git a/data/trainers/trainer_class_names.asm b/data/trainers/trainer_class_names.asm
new file mode 100755
index 000000000..48d81f910
--- /dev/null
+++ b/data/trainers/trainer_class_names.asm
@@ -0,0 +1,69 @@
+TrainerClassNames:: ; 2c1ef
+; entries correspond to trainer classes (see constants/trainer_constants.asm)
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "RIVAL@"
+ db "#MON PROF.@"
+ db "ELITE FOUR@"
+ db "<PKMN> TRAINER@"
+ db "ELITE FOUR@"
+ db "ELITE FOUR@"
+ db "ELITE FOUR@"
+ db "CHAMPION@"
+ db "LEADER@"
+ db "LEADER@"
+ db "LEADER@"
+ db "SCIENTIST@"
+ db "LEADER@"
+ db "YOUNGSTER@"
+ db "SCHOOLBOY@"
+ db "BIRD KEEPER@"
+ db "LASS@"
+ db "LEADER@"
+ db "COOLTRAINER@"
+ db "COOLTRAINER@"
+ db "BEAUTY@"
+ db "#MANIAC@"
+ db "ROCKET@"
+ db "GENTLEMAN@"
+ db "SKIER@"
+ db "TEACHER@"
+ db "LEADER@"
+ db "BUG CATCHER@"
+ db "FISHER@"
+ db "SWIMMER♂@"
+ db "SWIMMER♀@"
+ db "SAILOR@"
+ db "SUPER NERD@"
+ db "RIVAL@"
+ db "GUITARIST@"
+ db "HIKER@"
+ db "BIKER@"
+ db "LEADER@"
+ db "BURGLAR@"
+ db "FIREBREATHER@"
+ db "JUGGLER@"
+ db "BLACKBELT@"
+ db "ROCKET@"
+ db "PSYCHIC@"
+ db "PICNICKER@"
+ db "CAMPER@"
+ db "ROCKET@"
+ db "SAGE@"
+ db "MEDIUM@"
+ db "BOARDER@"
+ db "#FAN@"
+ db "KIMONO GIRL@"
+ db "TWINS@"
+ db "#FAN@"
+ db "<PKMN> TRAINER@"
+ db "LEADER@"
+ db "OFFICER@"
+ db "ROCKET@"
+ db "MYSTICALMAN@"
diff --git a/trainers/dvs.asm b/data/trainers/trainer_dvs.asm
index 503c468d3..503c468d3 100644
--- a/trainers/dvs.asm
+++ b/data/trainers/trainer_dvs.asm
diff --git a/data/unown_words.asm b/data/unown_words.asm
new file mode 100644
index 000000000..a36dea6d1
--- /dev/null
+++ b/data/unown_words.asm
@@ -0,0 +1,67 @@
+unownword: macro
+x = 1
+ rept STRLEN(\1)
+ db STRSUB(\1, x, 1) - $40
+x = x + 1
+ endr
+ db -1
+endm
+
+UnownWords: ; fba5a
+; entries correspond to Unown forms
+ dw UnownWord1
+ dw UnownWord1
+ dw UnownWord2
+ dw UnownWord3
+ dw UnownWord4
+ dw UnownWord5
+ dw UnownWord6
+ dw UnownWord7
+ dw UnownWord8
+ dw UnownWord9
+ dw UnownWord10
+ dw UnownWord11
+ dw UnownWord12
+ dw UnownWord13
+ dw UnownWord14
+ dw UnownWord15
+ dw UnownWord16
+ dw UnownWord17
+ dw UnownWord18
+ dw UnownWord19
+ dw UnownWord20
+ dw UnownWord21
+ dw UnownWord22
+ dw UnownWord23
+ dw UnownWord24
+ dw UnownWord25
+ dw UnownWord26
+; fba90
+
+UnownWord1: unownword "ANGRY"
+UnownWord2: unownword "BEAR"
+UnownWord3: unownword "CHASE"
+UnownWord4: unownword "DIRECT"
+UnownWord5: unownword "ENGAGE"
+UnownWord6: unownword "FIND"
+UnownWord7: unownword "GIVE"
+UnownWord8: unownword "HELP"
+UnownWord9: unownword "INCREASE"
+UnownWord10: unownword "JOIN"
+UnownWord11: unownword "KEEP"
+UnownWord12: unownword "LAUGH"
+UnownWord13: unownword "MAKE"
+UnownWord14: unownword "NUZZLE"
+UnownWord15: unownword "OBSERVE"
+UnownWord16: unownword "PERFORM"
+UnownWord17: unownword "QUICKEN"
+UnownWord18: unownword "REASSURE"
+UnownWord19: unownword "SEARCH"
+UnownWord20: unownword "TELL"
+UnownWord21: unownword "UNDO"
+UnownWord22: unownword "VANISH"
+UnownWord23: unownword "WANT"
+UnownWord24: unownword "XXXXX"
+UnownWord25: unownword "YIELD"
+UnownWord26: unownword "ZOOM"
+; fbb32
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index 287b0324c..b38ec12ee 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -1,11 +1,62 @@
# Bugs and Glitches
+## Contents
+
+- [Thick Club and Light Ball can decrease damage done with boosted (Special) Attack](#thick-club-and-light-ball-can-decrease-damage-done-with-boosted-special-attack)
+- [Metal Powder can increase damage taken with boosted (Special) Defense](#metal-powder-can-increase-damage-taken-with-boosted-special-defense)
+- [Belly Drum sharply boosts Attack even with under 50% HP](#belly-drum-sharply-boosts-attack-even-with-under-50-hp)
+- [Moves that lower Defense can do so after breaking a Substitute](#moves-that-lower-defense-can-do-so-after-breaking-a-substitute)
+- [Counter and Mirror Coat still work if the opponent uses an item](#counter-and-mirror-coat-still-work-if-the-opponent-uses-an-item)
+- [A Disabled but PP Up–enhanced move may not trigger Struggle](#a-disabled-but-pp-upenhanced-move-may-not-trigger-struggle)
+- [A Pokémon that fainted from Pursuit will have its old status condition when revived](#a-pokémon-that-fainted-from-pursuit-will-have-its-old-status-condition-when-revived)
+- [Lock-On and Mind Reader don't always bypass Fly and Dig](#lock-on-and-mind-reader-dont-always-bypass-fly-and-dig)
+- [Beat Up can desynchronize link battles](#beat-up-can-desynchronize-link-battles)
+- [Present damage is incorrect in link battles](#present-damage-is-incorrect-in-link-battles)
+- ["Smart" AI encourages Mean Look if its own Pokémon is badly poisoned](#smart-ai-encourages-mean-look-if-its-own-pokémon-is-badly-poisoned)
+- [AI makes a false assumption about `CheckTypeMatchup`](#ai-makes-a-false-assumption-about-checktypematchup)
+- [NPC use of Full Heal or Full Restore does not cure Nightmare status](#npc-use-of-full-heal-or-full-restore-does-not-cure-nightmare-status)
+- [HP bar animation is slow for high HP](#hp-bar-animation-is-slow-for-high-hp)
+- [HP bar animation off-by-one error for low HP](#hp-bar-animation-off-by-one-error-for-low-hp)
+- [Experience underflow for level 1 Pokémon with Medium-Slow growth rate](#experience-underflow-for-level-1-pokémon-with-medium-slow-growth-rate)
+- [Five-digit experience gain is printed incorrectly](#five-digit-experience-gain-is-printed-incorrectly)
+- [BRN/PSN/PAR do not affect catch rate](#brnpsnpar-do-not-affect-catch-rate)
+- [Moon Ball does not boost catch rate](#moon-ball-does-not-boost-catch-rate)
+- [Love Ball boosts catch rate for the wrong gender](#love-ball-boosts-catch-rate-for-the-wrong-gender)
+- [Fast Ball only boosts catch rate for three Pokémon](#fast-ball-only-boosts-catch-rate-for-three-pokémon)
+- [Dragon Scale, not Dragon Fang, boosts Dragon-type moves](#dragon-scale-not-dragon-fang-boosts-dragon-type-moves)
+- [Daisy's grooming doesn't always increase happiness](#daisys-grooming-doesnt-always-increase-happiness)
+- [Magikarp in Lake of Rage are shorter, not longer](#magikarp-in-lake-of-rage-are-shorter-not-longer)
+- [Magikarp lengths can be miscalculated](#magikarp-lengths-can-be-miscalculated)
+- [Battle transitions fail to account for the enemy's level](#battle-transitions-fail-to-account-for-the-enemys-level)
+- [Slot machine payout sound effects cut each other off](#slot-machine-payout-sound-effects-cut-each-other-off)
+- [Team Rocket battle music is not used for Executives or Scientists](#team-rocket-battle-music-is-not-used-for-executives-or-scientists)
+- [No bump noise if standing on tile `$3E`](#no-bump-noise-if-standing-on-tile-3e)
+- [Playing Entei's Pokédex cry can distort Raikou's and Suicune's](#playing-enteis-pokédex-cry-can-distort-raikous-and-suicunes)
+- [In-battle “`…`” ellipsis is too high](#in-battle--ellipsis-is-too-high)
+- [Two tiles in the `port` tileset are drawn incorrectly](#two-tiles-in-the-port-tileset-are-drawn-incorrectly)
+- [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks)
+- [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map)
+- [`Function6ec1` does not correctly limit object movement](#function6ec1-does-not-correctly-limit-object-movement)
+- [`CheckOwnMon` only checks the first five letters of OT names](#checkownmon-only-checks-the-first-five-letters-of-ot-names)
+- [Catching a Transformed Pokémon always catches a Ditto](#catching-a-transformed-pokémon-always-catches-a-ditto)
+- [Using a Park Ball in normal battles has a corrupt animation](#using-a-park-ball-in-normal-battles-has-a-corrupt-animation)
+- [`HELD_CATCH_CHANCE` has no effect](#held_catch_chance-has-no-effect)
+- [Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly](#only-the-first-three-evosattacks-evolution-entries-can-have-stone-compatibility-reported-correctly)
+- [`ScriptCall` can overflow `wScriptStack` and crash](#scriptcall-can-overflow-wscriptstack-and-crash)
+- [`LoadSpriteGFX` does not limit the capacity of `UsedSprites`](#loadspritegfx-does-not-limit-the-capacity-of-usedsprites)
+- [`ChooseWildEncounter` doesn't really validate the wild Pokémon species](#choosewildencounter-doesnt-really-validate-the-wild-pokémon-species)
+- [`TryObjectEvent` arbitrary code execution](#tryobjectevent-arbitrary-code-execution)
+- [`Special_CheckBugContestContestantFlag` can read beyond its data table](#special_checkbugcontestcontestantflag-can-read-beyond-its-data-table)
+- [`ClearWRAM` only clears WRAM bank 1](#clearwram-only-clears-wram-bank-1)
+- [`GetForestTreeFrame` works, but it's still bad](#getforesttreeframe-works-but-its-still-bad)
+
+
## Thick Club and Light Ball can decrease damage done with boosted (Special) Attack
([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
-This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](battle/effect_commands.asm):
+This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](/battle/effect_commands.asm):
```asm
; Double the stat
@@ -39,7 +90,7 @@ This is a bug with `SpeciesItemBoost` in [battle/effect_commands.asm](battle/eff
([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=450))
-This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](battle/effect_commands.asm):
+This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](/battle/effect_commands.asm):
```asm
ld a, c
@@ -95,7 +146,7 @@ This is a bug with `DittoMetalPowder` in [battle/effect_commands.asm](battle/eff
([Video](https://www.youtube.com/watch?v=zuCLMikWo4Y))
-This is a bug with `BattleCommand_BellyDrum` in [battle/effect_commands.asm](battle/effect_commands.asm):
+This is a bug with `BattleCommand_BellyDrum` in [battle/effect_commands.asm](/battle/effect_commands.asm):
```asm
BattleCommand_BellyDrum: ; 37c1a
@@ -129,11 +180,256 @@ BattleCommand_BellyDrum: ; 37c1a
```
+## Moves that lower Defense can do so after breaking a Substitute
+
+([Video](https://www.youtube.com/watch?v=OGwKPRJLaaI))
+
+This bug affects Acid, Iron Tail, and Rock Smash.
+
+This is a bug with `DefenseDownHit` in [battle/moves/move_effects.asm](/battle/moves/move_effects.asm):
+
+```asm
+DefenseDownHit:
+ checkobedience
+ usedmovetext
+ doturn
+ critical
+ damagestats
+ damagecalc
+ stab
+ damagevariation
+ checkhit
+ effectchance
+ hittarget
+ failuretext
+ checkfaint
+ criticaltext
+ supereffectivetext
+ checkdestinybond
+ buildopponentrage
+ effectchance ; bug: duplicate effectchance shouldn't be here
+ defensedown
+ statdownmessage
+ endmove
+```
+
+**Fix:** Delete the second `effectchance`.
+
+
+## Counter and Mirror Coat still work if the opponent uses an item
+
+([Video](https://www.youtube.com/watch?v=uRYyzKRatFk))
+
+*To do:* Identify specific code causing this bug and fix it.
+
+
+## A Disabled but PP Up–enhanced move may not trigger Struggle
+
+([Video](https://www.youtube.com/watch?v=1v9x4SgMggs))
+
+This is a bug with `CheckPlayerHasUsableMoves` in [battle/core.asm](/battle/core.asm):
+
+```asm
+.done
+ ; Bug: this will result in a move with PP Up confusing the game.
+ ; Replace with "and $3f" to fix.
+ and a
+ ret nz
+
+.force_struggle
+ ld hl, BattleText_PkmnHasNoMovesLeft
+ call StdBattleTextBox
+ ld c, 60
+ call DelayFrames
+ xor a
+ ret
+```
+
+**Fix:** Change `and a` to `and $3f`.
+
+
+## A Pokémon that fainted from Pursuit will have its old status condition when revived
+
+([Video](https://www.youtube.com/watch?v=tiRvw-Nb2ME))
+
+*To do:* Identify specific code causing this bug and fix it.
+
+
+## Lock-On and Mind Reader don't always bypass Fly and Dig
+
+This bug affects Attract, Curse, Foresight, Mean Look, Mimic, Nightmare, Spider Web, Transform, and stat-lowering effects of moves like String Shot or Bubble during the semi-invulnerable turn of Fly or Dig.
+
+This is a bug with `CheckHiddenOpponent` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+
+```asm
+CheckHiddenOpponent: ; 37daa
+; BUG: This routine should account for Lock-On and Mind Reader.
+ ld a, BATTLE_VARS_SUBSTATUS3_OPP
+ call GetBattleVar
+ and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
+ ret
+```
+
+*To do:* Fix this bug.
+
+
+## Beat Up can desynchronize link battles
+
+([Video](https://www.youtube.com/watch?v=202-iAsrIa8))
+
+This is a bug with `BattleCommand_BeatUp` in [battle/effect_commands.asm](/battle/effect_commands.asm):
+
+```asm
+.got_mon
+ ld a, [wd002]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld a, MON_HP
+ call GetBeatupMonLocation
+ ld a, [hli]
+ or [hl]
+ jp z, .beatup_fail ; fainted
+ ld a, [wd002]
+ ld c, a
+ ld a, [CurBattleMon]
+ ; BUG: this can desynchronize link battles
+ ; Change "cp [hl]" to "cp c" to fix
+ cp [hl]
+ ld hl, BattleMonStatus
+ jr z, .active_mon
+ ld a, MON_STATUS
+ call GetBeatupMonLocation
+.active_mon
+ ld a, [hl]
+ and a
+ jp nz, .beatup_fail
+```
+
+**Fix:** Change `cp [hl]` to `cp c`.
+
+
+## Present damage is incorrect in link battles
+
+([Video](https://www.youtube.com/watch?v=XJaQoKtrEuw))
+
+This bug existed for all battles in Gold and Silver, and was only fixed for single-player battles in Crystal to preserve link compatibility.
+
+This is a bug with `BattleCommand_Present` in [battle/effects/present.asm](/battle/effects/present.asm):
+
+```asm
+BattleCommand_Present: ; 37874
+; present
+
+ ld a, [wLinkMode]
+ cp LINK_COLOSSEUM
+ jr z, .colosseum_skippush
+ push bc
+ push de
+.colosseum_skippush
+
+ call BattleCommand_Stab
+
+ ld a, [wLinkMode]
+ cp LINK_COLOSSEUM
+ jr z, .colosseum_skippop
+ pop de
+ pop bc
+.colosseum_skippop
+```
+
+**Fix:**
+
+```asm
+BattleCommand_Present: ; 37874
+; present
+
+ push bc
+ push de
+ call BattleCommand_Stab
+ pop de
+ pop bc
+```
+
+
+## "Smart" AI encourages Mean Look if its own Pokémon is badly poisoned
+
+([Video](https://www.youtube.com/watch?v=cygMO-zHTls))
+
+This is a bug with `AI_Smart_MeanLook` in [battle/ai/scoring.asm](/battle/ai/scoring.asm):
+
+```asm
+; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy).
+; Should check PlayerSubStatus5 instead.
+ ld a, [EnemySubStatus5]
+ bit SUBSTATUS_TOXIC, a
+ jr nz, .asm_38e26
+```
+
+**Fix:** Change `EnemySubStatus5` to `PlayerSubStatus5`.
+
+
+## AI makes a false assumption about `CheckTypeMatchup`
+
+In [battle/effect_commands.asm](/battle/effect_commands.asm):
+
+```asm
+BattleCheckTypeMatchup: ; 347c8
+ ld hl, EnemyMonType1
+ ld a, [hBattleTurn]
+ and a
+ jr z, CheckTypeMatchup
+ ld hl, BattleMonType1
+CheckTypeMatchup: ; 347d3
+; There is an incorrect assumption about this function made in the AI related code: when
+; the AI calls CheckTypeMatchup (not BattleCheckTypeMatchup), it assumes that placing the
+; offensive type in a will make this function do the right thing. Since a is overwritten,
+; this assumption is incorrect. A simple fix would be to load the move type for the
+; current move into a in BattleCheckTypeMatchup, before falling through, which is
+; consistent with how the rest of the code assumes this code works like.
+ push hl
+ push de
+ push bc
+ ld a, BATTLE_VARS_MOVE_TYPE
+ call GetBattleVar
+ ld d, a
+```
+
+*To do:* Fix this bug.
+
+
+## NPC use of Full Heal or Full Restore does not cure Nightmare status
+
+([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=322))
+
+This is a bug with `AI_HealStatus` in [battle/ai/items.asm](/battle/ai/items.asm):
+
+```asm
+AI_HealStatus: ; 384e0
+ ld a, [CurOTMon]
+ ld hl, OTPartyMon1Status
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ xor a
+ ld [hl], a
+ ld [EnemyMonStatus], a
+ ; Bug: this should reset SUBSTATUS_NIGHTMARE too
+ ; Uncomment the lines below to fix
+ ; ld hl, EnemySubStatus1
+ ; res SUBSTATUS_NIGHTMARE, [hl]
+ ld hl, EnemySubStatus5
+ res SUBSTATUS_TOXIC, [hl]
+ ret
+; 384f7
+```
+
+**Fix:** Uncomment `ld hl, EnemySubStatus1` and `res SUBSTATUS_NIGHTMARE, [hl]`.
+
+
## HP bar animation is slow for high HP
([Video](https://www.youtube.com/watch?v=SE-BfsFgZVM))
-This is a bug with `LongAnim_UpdateVariables` in [engine/anim_hp_bar.asm](engine/anim_hp_bar.asm):
+This is a bug with `LongAnim_UpdateVariables` in [engine/anim_hp_bar.asm](/engine/anim_hp_bar.asm):
```asm
; This routine is buggy. The result from ComputeHPBarPixels is stored
@@ -161,7 +457,7 @@ This is a bug with `LongAnim_UpdateVariables` in [engine/anim_hp_bar.asm](engine
([Video](https://www.youtube.com/watch?v=9KyNVIZxJvI))
-This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](engine/anim_hp_bar.asm):
+This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](/engine/anim_hp_bar.asm):
```asm
ld b, 0
@@ -189,7 +485,7 @@ This is a bug with `ShortHPBar_CalcPixelFrame` in [engine/anim_hp_bar.asm](engin
This can bring Pokémon straight from level 1 to 100 by gaining just a few experience points.
-This is a bug with `CalcExpAtLevel` in [main.asm](main.asm):
+This is a bug with `CalcExpAtLevel` in [main.asm](/main.asm):
```asm
CalcExpAtLevel: ; 50e47
@@ -235,7 +531,7 @@ CalcExpAtLevel: ; 50e47
([Video](https://www.youtube.com/watch?v=o54VjpAEoO8))
-This is a bug with `Text_ABoostedStringBuffer2ExpPoints` and `Text_StringBuffer2ExpPoints` in [text/common_2.asm](text/common_2.asm):
+This is a bug with `Text_ABoostedStringBuffer2ExpPoints` and `Text_StringBuffer2ExpPoints` in [text/common_2.asm](/text/common_2.asm):
```asm
Text_ABoostedStringBuffer2ExpPoints::
@@ -257,129 +553,9 @@ Text_StringBuffer2ExpPoints::
**Fix:** Change both `deciram StringBuffer2, 2, 4` to `deciram StringBuffer2, 2, 5`.
-## NPC use of Full Heal or Full Restore does not cure Nightmare status
-
-([Video](https://www.youtube.com/watch?v=rGqu3d3pdok&t=322))
-
-This is a bug with `AI_HealStatus` in [battle/ai/items.asm](battle/ai/items.asm):
-
-```asm
-AI_HealStatus: ; 384e0
- ld a, [CurOTMon]
- ld hl, OTPartyMon1Status
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- xor a
- ld [hl], a
- ld [EnemyMonStatus], a
- ; Bug: this should reset SUBSTATUS_NIGHTMARE too
- ; Uncomment the lines below to fix
- ; ld hl, EnemySubStatus1
- ; res SUBSTATUS_NIGHTMARE, [hl]
- ld hl, EnemySubStatus5
- res SUBSTATUS_TOXIC, [hl]
- ret
-; 384f7
-```
-
-**Fix:** Uncomment `ld hl, EnemySubStatus1` and `res SUBSTATUS_NIGHTMARE, [hl]`.
-
-
-## "Smart" AI encourages Mean Look if its own Pokémon is badly poisoned
-
-([Video](https://www.youtube.com/watch?v=cygMO-zHTls))
-
-This is a bug with `AI_Smart_MeanLook` in [battle/ai/scoring.asm](battle/ai/scoring.asm):
-
-```asm
-; 80% chance to greatly encourage this move if the enemy is badly poisoned (buggy).
-; Should check PlayerSubStatus5 instead.
- ld a, [EnemySubStatus5]
- bit SUBSTATUS_TOXIC, a
- jr nz, .asm_38e26
-```
-
-**Fix:** Change `EnemySubStatus5` to `PlayerSubStatus5`.
-
-
-## A Disabled, PP Up–enhanced move may not trigger automatic Struggling
-
-([Video](https://www.youtube.com/watch?v=1v9x4SgMggs))
-
-This is a bug with `CheckPlayerHasUsableMoves` in [battle/core.asm](battle/core.asm):
-
-```asm
-.done
- ; Bug: this will result in a move with PP Up confusing the game.
- ; Replace with "and $3f" to fix.
- and a
- ret nz
-
-.force_struggle
- ld hl, BattleText_PkmnHasNoMovesLeft
- call StdBattleTextBox
- ld c, 60
- call DelayFrames
- xor a
- ret
-```
-
-**Fix:** Change `and a` to `and $3f`.
-
-
-## Counter and Mirror Coat still work if the opponent uses an item
-
-([Video](https://www.youtube.com/watch?v=uRYyzKRatFk))
-
-*To do:* Identify specific code causing this bug and fix it.
-
-
-## Present damage is incorrect in link battles
-
-([Video](https://www.youtube.com/watch?v=XJaQoKtrEuw))
-
-This bug existed for all battles in Gold and Silver, and was only fixed for single-player battles in Crystal to preserve link compatibility.
-
-This is a bug with `BattleCommand_Present` in [battle/effects/present.asm](battle/effects/present.asm):
-
-```asm
-BattleCommand_Present: ; 37874
-; present
-
- ld a, [wLinkMode]
- cp LINK_COLOSSEUM
- jr z, .colosseum_skippush
- push bc
- push de
-.colosseum_skippush
-
- call BattleCommand_Stab
-
- ld a, [wLinkMode]
- cp LINK_COLOSSEUM
- jr z, .colosseum_skippop
- pop de
- pop bc
-.colosseum_skippop
-```
-
-**Fix:**
-
-```asm
-BattleCommand_Present: ; 37874
-; present
-
- push bc
- push de
- call BattleCommand_Stab
- pop de
- pop bc
-```
-
-
## BRN/PSN/PAR do not affect catch rate
-This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `PokeBall` in [items/item_effects.asm](/items/item_effects.asm):
```asm
.statuscheck
@@ -411,7 +587,7 @@ This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm
## Moon Ball does not boost catch rate
-This is a bug with `MoonBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `MoonBallMultiplier` in [items/item_effects.asm](/items/item_effects.asm):
```asm
MoonBallMultiplier:
@@ -437,7 +613,7 @@ MoonBallMultiplier:
## Love Ball boosts catch rate for the wrong gender
-This is a bug with `LoveBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `LoveBallMultiplier` in [items/item_effects.asm](/items/item_effects.asm):
```asm
LoveBallMultiplier:
@@ -459,7 +635,7 @@ LoveBallMultiplier:
## Fast Ball only boosts catch rate for three Pokémon
-This is a bug with `FastBallMultiplier` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `FastBallMultiplier` in [items/item_effects.asm](/items/item_effects.asm):
```asm
FastBallMultiplier:
@@ -483,26 +659,9 @@ FastBallMultiplier:
**Fix:** Change `jr nz, .next` to `jr nz, .loop`.
-## Friend Ball catches sent to the PC overwrite the wrong Pokémon's happiness
-
-This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
-
-```asm
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipBoxMonFriendBall
- ; Bug: overwrites the happiness of the first mon in the box!
- ld a, FRIEND_BALL_HAPPINESS
- ld [sBoxMon1Happiness], a
-.SkipBoxMonFriendBall:
-```
-
-`sBoxMon1Happiness` is written *before* the Friend Ball Pokémon is deposited.
-
-
## Dragon Scale, not Dragon Fang, boosts Dragon-type moves
-This is a bug with `ItemAttributes` in [items/item_attributes.asm](items/item_attributes.asm):
+This is a bug with `ItemAttributes` in [items/item_attributes.asm](/items/item_attributes.asm):
```asm
; DRAGON FANG
@@ -517,9 +676,9 @@ This is a bug with `ItemAttributes` in [items/item_attributes.asm](items/item_at
**Fix:** Move `HELD_DRAGON_BOOST` to the `DRAGON FANG` attributes and `0` to `DRAGON SCALE`.
-## Daisy's massages don't always increase happiness
+## Daisy's grooming doesn't always increase happiness
-This is a bug with `MassageOrHaircut` in [event/special.asm](event/special.asm):
+This is a bug with `MassageOrHaircut` in [event/special.asm](/event/special.asm):
```asm
; Bug: Subtracting $ff from $ff fails to set c.
@@ -568,7 +727,7 @@ Data_DaisyMassage: ; 746b
## Magikarp in Lake of Rage are shorter, not longer
-This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [battle/core.asm](battle/core.asm):
+This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [battle/core.asm](/battle/core.asm):
```asm
.CheckMagikarpArea:
@@ -592,11 +751,32 @@ This is a bug with `LoadEnemyMon.CheckMagikarpArea` in [battle/core.asm](battle/
**Fix:** Change both `jr z, .Happiness` to `jr nz, .Happiness`.
+## Magikarp lengths can be miscalculated
+
+This is a bug with `CalcMagikarpLength.BCLessThanDE` in [event/magikarp.asm](/event/magikarp.asm):
+
+```asm
+.BCLessThanDE: ; fbc9a
+; Intention: Return bc < de.
+; Reality: Return b < d.
+ ld a, b
+ cp d
+ ret c
+ ret nc ; whoops
+ ld a, c
+ cp e
+ ret
+; fbca1
+```
+
+**Fix:** Delete `ret nc`.
+
+
## Battle transitions fail to account for the enemy's level
([Video](https://www.youtube.com/watch?v=eij_1060SMc))
-This is a bug with `StartTrainerBattle_DetermineWhichAnimation` in [engine/battle_start.asm](engine/battle_start.asm):
+This is a bug with `StartTrainerBattle_DetermineWhichAnimation` in [engine/battle_start.asm](/engine/battle_start.asm):
```asm
StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
@@ -637,9 +817,61 @@ StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
*To do:* Fix this bug.
+## Slot machine payout sound effects cut each other off
+
+([Video](https://www.youtube.com/watch?v=ojq3xqfRF6I))
+
+This is a bug with `Slots_PayoutAnim` in [engine/slot_machine.asm](/engine/slot_machine.asm):
+
+```asm
+.okay
+ ld [hl], e
+ dec hl
+ ld [hl], d
+ ld a, [wcf64]
+ and $7
+ ret z ; ret nz would be more appropriate
+ ld de, SFX_GET_COIN_FROM_SLOTS
+ call PlaySFX
+ ret
+```
+
+**Fix:** Change `ret z` to `ret nz`.
+
+
+## Team Rocket battle music is not used for Executives or Scientists
+
+This is a bug with `PlayBattleMusic` in [main.asm](/main.asm):
+
+```asm
+ ; really, they should have included admins and scientists here too...
+ ld de, MUSIC_ROCKET_BATTLE
+ cp GRUNTM
+ jr z, .done
+ cp GRUNTF
+ jr z, .done
+```
+
+**Fix:**
+
+```asm
+ ld de, MUSIC_ROCKET_BATTLE
+ cp GRUNTM
+ jr z, .done
+ cp GRUNTF
+ jr z, .done
+ cp EXECUTIVEM
+ jr z, .done
+ cp EXECUTIVEF
+ jr z, .done
+ cp SCIENTIST
+ jr z, .done
+```
+
+
## No bump noise if standing on tile `$3E`
-This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](engine/player_movement.asm):
+This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](/engine/player_movement.asm):
```asm
; Bug: Since no case is made for STANDING here, it will check
@@ -648,6 +880,8 @@ This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](
; making bumps silent.
ld a, [WalkingDirection]
+ ; cp STANDING
+ ; jr z, .not_warp
ld e, a
ld d, 0
ld hl, .EdgeWarps
@@ -659,6 +893,7 @@ This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](
ld a, 1
ld [wd041], a
ld a, [WalkingDirection]
+ ; This is in the wrong place.
cp STANDING
jr z, .not_warp
```
@@ -683,9 +918,60 @@ This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](
```
-## `LoadMetatiles` wrap around past 128 blocks
+## Playing Entei's Pokédex cry can distort Raikou's and Suicune's
-[home/map.asm](home/map.asm):
+([Video](https://www.youtube.com/watch?v=z305e4sIO24))
+
+The exact cause is unknown, but a workaround exists for `DexEntryScreen_MenuActionJumptable.Cry` in [engine/pokedex.asm](/engine/pokedex.asm):
+
+```asm
+.Cry: ; 40340
+ call Pokedex_GetSelectedMon
+ ld a, [wd265]
+ call GetCryIndex
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+ ret
+```
+
+**Workaround:**
+
+```asm
+.Cry: ; 40340
+ ld a, [CurPartySpecies]
+ call PlayCry
+ ret
+```
+
+
+## In-battle “`…`” ellipsis is too high
+
+This is a mistake with the “`…`” tile in [gfx/battle/hp_exp_bar_border.png](/gfx/battle/hp_exp_bar_border.png):
+
+![image](/docs/images/hp_exp_bar_border.png)
+
+**Fix:** Lower the ellipsis by two pixels:
+
+![image](/docs/images/hp_exp_bar_border_fix.png)
+
+
+## Two tiles in the `port` tileset are drawn incorrectly
+
+This is a mistake with the left-hand warp carpet corner tiles in [gfx/tilesets/port.png](/gfx/tilesets/port.png):
+
+![image](/docs/images/port.png)
+
+**Fix:** Adjust them to match the right-hand corner tiles:
+
+![image](/docs/images/port_fix.png)
+
+
+## `LoadMetatiles` wraps around past 128 blocks
+
+This bug prevents you from using blocksets with more than 128 blocks.
+
+In [home/map.asm](/home/map.asm):
```asm
; Set hl to the address of the current metatile data ([TilesetBlocksAddress] + (a) tiles).
@@ -716,13 +1002,29 @@ This is a bug with `DoPlayerMovement.CheckWarp` in [engine/player_movement.asm](
*To do:* Identify specific code causing this bug and fix it.
+## `Function6ec1` does not correctly limit object movement
+
+This bug is why the Lapras in Union Cave, which uses `SPRITEMOVEDATA_LAPRAS`, is not restricted by its `1, 1` movement radius.
+
+In [engine/npc_movement.asm](/engine/npc_movement.asm):
+
+```asm
+ ld hl, OBJECT_FLAGS1
+ add hl, bc
+ bit 4, [hl] ; lost, uncomment next line to fix
+; jr nz, .resume
+```
+
+**Fix:** Uncomment `jr nz, .resume`.
+
+
## `CheckOwnMon` only checks the first five letters of OT names
([Video](https://www.youtube.com/watch?v=GVTTmReM4nQ))
This bug can allow you to talk to Eusine in Celadon City and encounter Ho-Oh with only traded legendary beasts.
-[engine/search.asm](engine/search.asm):
+In [engine/search.asm](/engine/search.asm):
```asm
; check OT
@@ -756,9 +1058,108 @@ endr
**Fix:** Change `rept NAME_LENGTH_JAPANESE +- 2` to `rept PLAYER_NAME_LENGTH +- 2`.
+## Catching a Transformed Pokémon always catches a Ditto
+
+This bug can affect Mew or Pokémon other than Ditto that used Transform via Mirror Move or Sketch.
+
+This is a bug with `PokeBall` in [items/item_effects.asm](/items/item_effects.asm):
+
+```asm
+ ld hl, EnemySubStatus5
+ ld a, [hl]
+ push af
+ set SUBSTATUS_TRANSFORMED, [hl]
+
+; This code is buggy. Any wild Pokémon that has Transformed will be
+; caught as a Ditto, even if it was something else like Mew.
+; To fix, do not set [TempEnemyMonSpecies] to DITTO.
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .ditto
+ jr .not_ditto
+
+.ditto
+ ld a, DITTO
+ ld [TempEnemyMonSpecies], a
+ jr .load_data
+
+.not_ditto
+ set SUBSTATUS_TRANSFORMED, [hl]
+ ld hl, wEnemyBackupDVs
+ ld a, [EnemyMonDVs]
+ ld [hli], a
+ ld a, [EnemyMonDVs + 1]
+ ld [hl], a
+
+.load_data
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [EnemyMonLevel]
+ ld [CurPartyLevel], a
+ callba LoadEnemyMon
+
+ pop af
+ ld [EnemySubStatus5], a
+```
+
+**Fix:**
+
+```asm
+ ld hl, EnemySubStatus5
+ ld a, [hl]
+ push af
+ set SUBSTATUS_TRANSFORMED, [hl]
+
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .load_data
+
+ ld hl, wEnemyBackupDVs
+ ld a, [EnemyMonDVs]
+ ld [hli], a
+ ld a, [EnemyMonDVs + 1]
+ ld [hl], a
+
+.load_data
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [EnemyMonLevel]
+ ld [CurPartyLevel], a
+ callba LoadEnemyMon
+
+ pop af
+ ld [EnemySubStatus5], a
+```
+
+
+## Using a Park Ball in normal battles has a corrupt animation
+
+([Video](https://www.youtube.com/watch?v=v1ErZdLCIyU))
+
+This is a bug with `ParkBall` in [items/item_effects.asm](/items/item_effects.asm):
+
+```asm
+.room_in_party
+ xor a
+ ld [wWildMon], a
+ ld a, [CurItem]
+ cp PARK_BALL
+ call nz, ReturnToBattle_UseBall
+```
+
+**Fix:**
+
+```asm
+.room_in_party
+ xor a
+ ld [wWildMon], a
+ ld a, [BattleType]
+ cp BATTLETYPE_CONTEST
+ call nz, ReturnToBattle_UseBall
+```
+
+
## `HELD_CATCH_CHANCE` has no effect
-This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm):
+This is a bug with `PokeBall` in [items/item_effects.asm](/items/item_effects.asm):
```asm
; BUG: callba overwrites a,
@@ -780,9 +1181,32 @@ This is a bug with `PokeBall` in [items/item_effects.asm](items/item_effects.asm
**Fix:** Uncomment `ld b, a`.
+## Only the first three `EvosAttacks` evolution entries can have Stone compatibility reported correctly
+
+This is a bug with `PlacePartyMonEvoStoneCompatibility.DetermineCompatibility` in [engine/party_menu.asm](/engine/party_menu.asm):
+
+```asm
+.DetermineCompatibility: ; 50268
+ ld de, StringBuffer1
+ ld a, BANK(EvosAttacksPointers)
+ ld bc, 2
+ call FarCopyBytes
+ ld hl, StringBuffer1
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer1
+ ld a, BANK(EvosAttacks)
+ ld bc, $a
+ call FarCopyBytes
+```
+
+**Fix:** Change `ld bc, $a` to `ld bc, $10` to support up to five Stone entries.
+
+
## `ScriptCall` can overflow `wScriptStack` and crash
-[engine/scripting.asm](engine/scripting.asm):
+In [engine/scripting.asm](/engine/scripting.asm):
```asm
ScriptCall:
@@ -820,12 +1244,12 @@ ScriptCall:
## `LoadSpriteGFX` does not limit the capacity of `UsedSprites`
-[engine/overworld.asm](engine/overworld.asm):
+In [engine/overworld.asm](/engine/overworld.asm):
```asm
LoadSpriteGFX: ; 14306
-; Bug: b is not preserved, so
-; it's useless as a next count.
+; Bug: b is not preserved, so it's useless as a next count.
+; Uncomment the lines below to fix.
ld hl, UsedSprites
ld b, SPRITE_GFX_LIST_CAPACITY
@@ -844,18 +1268,20 @@ LoadSpriteGFX: ; 14306
ret
.LoadSprite:
+ ; push bc
call GetSprite
+ ; pop bc
ld a, l
ret
; 1431e
```
-`GetSprite` modifies `b`. Surround it with `push bc`/`pop bc` to fix.
+**Fix:** Uncomment `push bc` and `pop bc`.
## `ChooseWildEncounter` doesn't really validate the wild Pokémon species
-[engine/wildmons.asm](engine/wildmons.asm):
+In [engine/wildmons.asm](/engine/wildmons.asm):
```asm
ChooseWildEncounter: ; 2a14f
@@ -894,7 +1320,7 @@ ValidateTempWildMonSpecies: ; 2a4a0
## `TryObjectEvent` arbitrary code execution
-[engine/events.asm](engine/events.asm):
+In [engine/events.asm](/engine/events.asm):
```asm
; Bug: If IsInArray returns nc, data at bc will be executed as code.
@@ -922,7 +1348,7 @@ ValidateTempWildMonSpecies: ; 2a4a0
## `Special_CheckBugContestContestantFlag` can read beyond its data table
-[event/bug_contest_2.asm](event/bug_contest_2.asm):
+In [event/bug_contest_2.asm](/event/bug_contest_2.asm):
```asm
Special_CheckBugContestContestantFlag: ; 139ed
@@ -960,7 +1386,7 @@ BugCatchingContestantEventFlagTable: ; 139fe
## `ClearWRAM` only clears WRAM bank 1
-[home/init.asm](home/init.asm):
+In [home/init.asm](/home/init.asm):
```asm
ClearWRAM:: ; 25a
@@ -988,7 +1414,7 @@ ClearWRAM:: ; 25a
## `GetForestTreeFrame` works, but it's still bad
-[tilesets/animations.asm](tilesets/animations.asm):
+In [tilesets/animations.asm](/tilesets/animations.asm):
```asm
GetForestTreeFrame: ; fc54c
diff --git a/docs/effect_commands.md b/docs/effect_commands.md
new file mode 100644
index 000000000..3112950a9
--- /dev/null
+++ b/docs/effect_commands.md
@@ -0,0 +1,358 @@
+# Effect Commands
+
+Defined in [macros/scripts/effect_commands.asm](/macros/scripts/effect_commands.asm) and [battle/effect_command_pointers.asm:BattleCommandPointers](/battle/effect_command_pointers.asm).
+
+
+## `$01`: `checkturn`
+
+## `$02`: `checkobedience`
+
+## `$03`: `usedmovetext`
+
+## `$04`: `doturn`
+
+## `$05`: `critical`
+
+## `$06`: `damagestats`
+
+## `$07`: `stab`
+
+## `$08`: `damagevariation`
+
+## `$09`: `checkhit`
+
+## `$0A`: `lowersub`
+
+## `$0B`: `hittargetnosub`
+
+## `$0C`: `raisesub`
+
+## `$0D`: `failuretext`
+
+## `$0E`: `checkfaint`
+
+## `$0F`: `criticaltext`
+
+## `$10`: `supereffectivetext`
+
+## `$11`: `checkdestinybond`
+
+## `$12`: `buildopponentrage`
+
+## `$13`: `poisontarget`
+
+## `$14`: `sleeptarget`
+
+## `$15`: `draintarget`
+
+## `$16`: `eatdream`
+
+## `$17`: `burntarget`
+
+## `$18`: `freezetarget`
+
+## `$19`: `paralyzetarget`
+
+## `$1A`: `selfdestruct`
+
+## `$1B`: `mirrormove`
+
+## `$1C`: `statup`
+
+## `$1D`: `statdown`
+
+## `$1E`: `payday`
+
+## `$1F`: `conversion`
+
+## `$20`: `resetstats`
+
+## `$21`: `storeenergy`
+
+## `$22`: `unleashenergy`
+
+## `$23`: `forceswitch`
+
+## `$24`: `endloop`
+
+## `$25`: `flinchtarget`
+
+## `$26`: `ohko`
+
+## `$27`: `recoil`
+
+## `$28`: `mist`
+
+## `$29`: `focusenergy`
+
+## `$2A`: `confuse`
+
+## `$2B`: `confusetarget`
+
+## `$2C`: `heal`
+
+## `$2D`: `transform`
+
+## `$2E`: `screen`
+
+## `$2F`: `poison`
+
+## `$30`: `paralyze`
+
+## `$31`: `substitute`
+
+## `$32`: `rechargenextturn`
+
+## `$33`: `mimic`
+
+## `$34`: `metronome`
+
+## `$35`: `leechseed`
+
+## `$36`: `splash`
+
+## `$37`: `disable`
+
+## `$38`: `cleartext`
+
+## `$39`: `charge`
+
+## `$3A`: `checkcharge`
+
+## `$3B`: `traptarget`
+
+## `$3C`: `effect0x3c`
+
+## `$3D`: `rampage`
+
+## `$3E`: `checkrampage`
+
+## `$3F`: `constantdamage`
+
+## `$40`: `counter`
+
+## `$41`: `encore`
+
+## `$42`: `painsplit`
+
+## `$43`: `snore`
+
+## `$44`: `conversion2`
+
+## `$45`: `lockon`
+
+## `$46`: `sketch`
+
+## `$47`: `defrostopponent`
+
+## `$48`: `sleeptalk`
+
+## `$49`: `destinybond`
+
+## `$4A`: `spite`
+
+## `$4B`: `falseswipe`
+
+## `$4C`: `healbell`
+
+## `$4D`: `kingsrock`
+
+## `$4E`: `triplekick`
+
+## `$4F`: `kickcounter`
+
+## `$50`: `thief`
+
+## `$51`: `arenatrap`
+
+## `$52`: `nightmare`
+
+## `$53`: `defrost`
+
+## `$54`: `curse`
+
+## `$55`: `protect`
+
+## `$56`: `spikes`
+
+## `$57`: `foresight`
+
+## `$58`: `perishsong`
+
+## `$59`: `startsandstorm`
+
+## `$5A`: `endure`
+
+## `$5B`: `checkcurl`
+
+## `$5C`: `rolloutpower`
+
+## `$5D`: `effect0x5d`
+
+## `$5E`: `furycutter`
+
+## `$5F`: `attract`
+
+## `$60`: `happinesspower`
+
+## `$61`: `present`
+
+## `$62`: `damagecalc`
+
+## `$63`: `frustrationpower`
+
+## `$64`: `safeguard`
+
+## `$65`: `checksafeguard`
+
+## `$66`: `getmagnitude`
+
+## `$67`: `batonpass`
+
+## `$68`: `pursuit`
+
+## `$69`: `clearhazards`
+
+## `$6A`: `healmorn`
+
+## `$6B`: `healday`
+
+## `$6C`: `healnite`
+
+## `$6D`: `hiddenpower`
+
+## `$6E`: `startrain`
+
+## `$6F`: `startsun`
+
+## `$70`: `attackup`
+
+## `$71`: `defenseup`
+
+## `$72`: `speedup`
+
+## `$73`: `specialattackup`
+
+## `$74`: `specialdefenseup`
+
+## `$75`: `accuracyup`
+
+## `$76`: `evasionup`
+
+## `$77`: `attackup2`
+
+## `$78`: `defenseup2`
+
+## `$79`: `speedup2`
+
+## `$7A`: `specialattackup2`
+
+## `$7B`: `specialdefenseup2`
+
+## `$7C`: `accuracyup2`
+
+## `$7D`: `evasionup2`
+
+## `$7E`: `attackdown`
+
+## `$7F`: `defensedown`
+
+## `$80`: `speeddown`
+
+## `$81`: `specialattackdown`
+
+## `$82`: `specialdefensedown`
+
+## `$83`: `accuracydown`
+
+## `$84`: `evasiondown`
+
+## `$85`: `attackdown2`
+
+## `$86`: `defensedown2`
+
+## `$87`: `speeddown2`
+
+## `$88`: `specialattackdown2`
+
+## `$89`: `specialdefensedown2`
+
+## `$8A`: `accuracydown2`
+
+## `$8B`: `evasiondown2`
+
+## `$8C`: `statupmessage`
+
+## `$8D`: `statdownmessage`
+
+## `$8E`: `statupfailtext`
+
+## `$8F`: `statdownfailtext`
+
+## `$90`: `effectchance`
+
+## `$91`: `statdownanim`
+
+## `$92`: `statupanim`
+
+## `$93`: `switchturn`
+
+## `$94`: `fakeout`
+
+## `$95`: `bellydrum`
+
+## `$96`: `psychup`
+
+## `$97`: `rage`
+
+## `$98`: `doubleflyingdamage`
+
+## `$99`: `doubleundergrounddamage`
+
+## `$9A`: `mirrorcoat`
+
+## `$9B`: `checkfuturesight`
+
+## `$9C`: `futuresight`
+
+## `$9D`: `doubleminimizedamage`
+
+## `$9E`: `skipsuncharge`
+
+## `$9F`: `thunderaccuracy`
+
+## `$A0`: `teleport`
+
+## `$A1`: `beatup`
+
+## `$A2`: `ragedamage`
+
+## `$A3`: `resettypematchup`
+
+## `$A4`: `allstatsup`
+
+## `$A5`: `effect0xa5`
+
+## `$A6`: `raisesubnoanim`
+
+## `$A7`: `lowersubnoanim`
+
+## `$A8`: `effect0xa8`
+
+## `$A9`: `clearmissdamage`
+
+## `$AA`: `movedelay`
+
+## `$AB`: `hittarget`
+
+## `$AC`: `tristatuschance`
+
+## `$AD`: `supereffectivelooptext`
+
+## `$AE`: `startloop`
+
+## `$AF`: `curl`
+
+## `$FE`: `endturn`
+
+## `$FF`: `endmove`
diff --git a/docs/event_commands.md b/docs/event_commands.md
index 662159481..b9bc4a925 100644
--- a/docs/event_commands.md
+++ b/docs/event_commands.md
@@ -1,5 +1,8 @@
# Event Commands
+Defined in [macros/scripts/event.asm](/macros/scripts/event.asm) and [engine/scripting.asm:ScriptCommandTable](/engine/scripting.asm).
+
+
## `$00`: `scall` *script*
## `$01`: `farscall` *script*
diff --git a/docs/images/hp_exp_bar_border.png b/docs/images/hp_exp_bar_border.png
new file mode 100644
index 000000000..9d16a042b
--- /dev/null
+++ b/docs/images/hp_exp_bar_border.png
Binary files differ
diff --git a/docs/images/hp_exp_bar_border_fix.png b/docs/images/hp_exp_bar_border_fix.png
new file mode 100644
index 000000000..02d36f8a0
--- /dev/null
+++ b/docs/images/hp_exp_bar_border_fix.png
Binary files differ
diff --git a/docs/images/port.png b/docs/images/port.png
new file mode 100644
index 000000000..8a18aad7d
--- /dev/null
+++ b/docs/images/port.png
Binary files differ
diff --git a/docs/images/port_fix.png b/docs/images/port_fix.png
new file mode 100644
index 000000000..055a377a5
--- /dev/null
+++ b/docs/images/port_fix.png
Binary files differ
diff --git a/docs/move_anim_commands.md b/docs/move_anim_commands.md
index 5669187f7..9772550c3 100644
--- a/docs/move_anim_commands.md
+++ b/docs/move_anim_commands.md
@@ -1,5 +1,8 @@
# Move Animation Commands
+Defined in [macros/scripts/move_anim.asm](/macros/scripts/move_anim.asm) and [battle/anims.asm:BattleAnimations](/battle/anims.asm).
+
+
## `$00`−`$EF`: `anim_wait` *length*
## `$D0`: `anim_obj` *object*, *x*, *y*, *param*
diff --git a/docs/movement_commands.md b/docs/movement_commands.md
index 702bd1f6c..db86fd2f9 100644
--- a/docs/movement_commands.md
+++ b/docs/movement_commands.md
@@ -1,5 +1,8 @@
# Movement Commands
+Defined in [macros/scripts/movement.asm](/macros/scripts/movement.asm) and [engine/movement.asm:MovementPointers](/engine/movement.asm).
+
+
## `$00`−`$03`: `turn_head` *direction*
## `$04`−`$07`: `turn_step` *direction*
diff --git a/docs/music_commands.md b/docs/music_commands.md
index 564ac010a..bf6359068 100644
--- a/docs/music_commands.md
+++ b/docs/music_commands.md
@@ -1,5 +1,8 @@
# Music Commands
+Defined in [macros/scripts/audio.asm](/macros/scripts/audio.asm) and [audio/engine.asm:MusicCommands](/audio/engine.asm).
+
+
## `musicheader` *n*, *index*, *address*
## `cry_header` *n*, *index*, *address*
diff --git a/docs/pic_animations.md b/docs/pic_animations.md
index a87932819..57c7f151a 100644
--- a/docs/pic_animations.md
+++ b/docs/pic_animations.md
@@ -1,5 +1,8 @@
# Pic Animations
+Defined in [macros/scripts/gfx_anim.asm](/macros/scripts/gfx_anim.asm) and [battle/anim_commands.asm:BattleAnimCommands](/battle/anim_commands.asm).
+
+
Pic animations are assembled in 3 parts:
- Top-level animations:
diff --git a/docs/text_commands.md b/docs/text_commands.md
index 865ea69b5..cf3a53327 100644
--- a/docs/text_commands.md
+++ b/docs/text_commands.md
@@ -1,116 +1,146 @@
# Text Commands
+Defined in [macros/scripts/text.asm](/macros/scripts/text.asm) and [home/text.asm:TextCommands](/home/text.asm).
+
+
## `$00`: `text` *text*
Start writing text until `"@"`.
+
## `$4E`: `next` *text*
Move a line down.
+
## `$4F`: `line` *text*
Start writing at the bottom line.
+
## `$50`: `page` *text*
Start a new Pokédex page.
+
## `$51`: `para` *text*
Start a new paragraph.
+
## `$55`: `cont` *text*
Scroll to the next line.
+
## `$57`: `done`
End a text box.
+
## `$58`: `prompt`
Prompt the player to end a text box (initiating some other event).
+
## `$01`: `text_from_ram` *address*
Write text from a RAM address.
+
## `$02`: `text_bcd` *address*, *flags*
Write [BCD](bcd) from an address, typically RAM.
[bcd]: https://en.wikipedia.org/wiki/Binary-coded_decimal
+
## `$03`: `text_move` *address*
Move to a new tile.
+
## `$04`: `text_box` *address*, *height*, *width*
Draw a box.
+
## `$05`: `text_low`
Write text at (1, 16).
+
## `$06`: `text_waitbutton`
Wait for button press; show arrow.
+
## `$07`: `text_scroll`
Pushes text up two lines and sets the `bc` cursor to the border tile below the
first character column of the text box.
+
## `$08`: `start_asm`
Start interpreting assembly code.
+
## `$09`: `deciram` *address*, *bytes*, *digits*
Read *bytes* bytes from *address* and print them as a *digits*-digit number.
+
## `$0A`: `interpret_data`
Exit.
+
## `$0B`: `sound_dex_fanfare_50_79`
Play `SFX_DEX_FANFARE_50_79`.
+
## `$0C`: `limited_interpret_data` *number*
Print *number* `"…"`s.
+
## `$0D`: `link_wait_button`
Wait for button press; show arrow.
+
## `$0E`: `sound_dex_fanfare_20_49`
Play `SFX_DEX_FANFARE_20_49`.
+
## `$0F`: `sound_item`
Play `SFX_ITEM`.
+
## `$10`: `sound_caught_mon`
Play `SFX_CAUGHT_MON`.
+
## `$11`: `sound_dex_fanfare_80_109`
Play `SFX_DEX_FANFARE_80_109`.
+
## `$12`: `sound_fanfare`
Play `SFX_FANFARE`.
+
## `$13`: `sound_slot_machine_start`
Play `SFX_SLOT_MACHINE_START`.
+
## `$14`: `text_buffer` *id*
Write text from one of the following addresses (listed in `StringBufferPointers`):
@@ -123,10 +153,12 @@ Write text from one of the following addresses (listed in `StringBufferPointers`
5. `EnemyMonNick`
6. `BattleMonNick`
+
## `$15`: `current_day`
Print the weekday.
+
## `$16`: `text_jump` *address*
Write text from a different bank.
diff --git a/engine/battle_start.asm b/engine/battle_start.asm
deleted file mode 100644
index 7a16c3b82..000000000
--- a/engine/battle_start.asm
+++ /dev/null
@@ -1,866 +0,0 @@
-Predef_StartBattle: ; 8c20f
- call .InitGFX
- ld a, [rBGP]
- ld [wBGP], a
- ld a, [rOBP0]
- ld [wOBP0], a
- ld a, [rOBP1]
- ld [wOBP1], a
- call DelayFrame
- ld hl, hVBlank
- ld a, [hl]
- push af
- ld [hl], $1
-
-.loop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call FlashyTransitionToBattle
- call DelayFrame
- jr .loop
-
-.done
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, UnknBGPals
- ld bc, 8 palettes
- xor a
- call ByteFill
-
- pop af
- ld [rSVBK], a
-
- ld a, %11111111
- ld [wBGP], a
- call DmgToCgbBGPals
- call DelayFrame
- xor a
- ld [hLCDCPointer], a
- ld [hLYOverrideStart], a
- ld [hLYOverrideEnd], a
- ld [hSCY], a
-
- ld a, $1
- ld [rSVBK], a
- pop af
- ld [hVBlank], a
- call DelayFrame
- ret
-; 8c26d
-
-.InitGFX: ; 8c26d
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jr z, .mobile
- callba ReanchorBGMap_NoOAMUpdate
- call UpdateSprites
- call DelayFrame
- call .NonMobile_LoadPokeballTiles
- call BattleStart_LoadEDTile
- jr .resume
-
-.mobile
- call LoadTrainerBattlePokeballTiles
-
-.resume
- ld a, SCREEN_HEIGHT_PX
- ld [hWY], a
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld hl, wJumptableIndex
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- call WipeLYOverrides
- ret
-; 8c2a0
-
-.NonMobile_LoadPokeballTiles: ; 8c2a0
- call LoadTrainerBattlePokeballTiles
- hlbgcoord 0, 0
- call ConvertTrainerBattlePokeballTilesTo2bpp
- ret
-; 8c2aa
-
-LoadTrainerBattlePokeballTiles:
-; Load the tiles used in the Pokeball Graphic that fills the screen
-; at the start of every Trainer battle.
- ld de, TrainerBattlePokeballTiles
- ld hl, VTiles1 tile $7e
- ld b, BANK(TrainerBattlePokeballTiles)
- ld c, 2
- call Request2bpp
-
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
-
- ld de, TrainerBattlePokeballTiles
- ld hl, VTiles4 tile $7e
- ld b, BANK(TrainerBattlePokeballTiles)
- ld c, 2
- call Request2bpp
-
- pop af
- ld [rVBK], a
- ret
-; 8c2cf
-
-ConvertTrainerBattlePokeballTilesTo2bpp: ; 8c2cf
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push hl
- ld hl, wDecompressScratch
- ld bc, $28 tiles
-
-.loop
- ld [hl], -1
- inc hl
- dec bc
- ld a, c
- or b
- jr nz, .loop
-
- pop hl
- ld de, wDecompressScratch
- ld b, BANK(ConvertTrainerBattlePokeballTilesTo2bpp) ; BANK(@)
- ld c, $28
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-; 8c2f4
-
-TrainerBattlePokeballTiles: ; 8c2f4
-INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp"
-
-
-FlashyTransitionToBattle: ; 8c314
- jumptable .dw, wJumptableIndex
-; 8c323
-
-.dw ; 8c323 (23:4323)
- dw StartTrainerBattle_DetermineWhichAnimation ; 00
-
- ; Animation 1: cave
- dw StartTrainerBattle_LoadPokeBallGraphics ; 01
- dw StartTrainerBattle_SetUpBGMap ; 02
- dw StartTrainerBattle_Flash ; 03
- dw StartTrainerBattle_Flash ; 04
- dw StartTrainerBattle_Flash ; 05
- dw StartTrainerBattle_NextScene ; 06
- dw StartTrainerBattle_SetUpForWavyOutro ; 07
- dw StartTrainerBattle_SineWave ; 08
-
- ; Animation 2: cave, stronger
- dw StartTrainerBattle_LoadPokeBallGraphics ; 09
- dw StartTrainerBattle_SetUpBGMap ; 0a
- dw StartTrainerBattle_Flash ; 0b
- dw StartTrainerBattle_Flash ; 0c
- dw StartTrainerBattle_Flash ; 0d
- dw StartTrainerBattle_NextScene ; 0e
- ; There is no setup for this one
- dw StartTrainerBattle_ZoomToBlack ; 0f
-
- ; Animation 3: no cave
- dw StartTrainerBattle_LoadPokeBallGraphics ; 10
- dw StartTrainerBattle_SetUpBGMap ; 11
- dw StartTrainerBattle_Flash ; 12
- dw StartTrainerBattle_Flash ; 13
- dw StartTrainerBattle_Flash ; 14
- dw StartTrainerBattle_NextScene ; 15
- dw StartTrainerBattle_SetUpForSpinOutro ; 16
- dw StartTrainerBattle_SpinToBlack ; 17
-
- ; Animation 4: no cave, stronger
- dw StartTrainerBattle_LoadPokeBallGraphics ; 18
- dw StartTrainerBattle_SetUpBGMap ; 19
- dw StartTrainerBattle_Flash ; 1a
- dw StartTrainerBattle_Flash ; 1b
- dw StartTrainerBattle_Flash ; 1c
- dw StartTrainerBattle_NextScene ; 1d
- dw StartTrainerBattle_SetUpForRandomScatterOutro ; 1e
- dw StartTrainerBattle_SpeckleToBlack ; 1f
-
- ; All animations jump to here.
- dw StartTrainerBattle_Finish ; 20
-
-
-StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
-; The screen flashes a different number of times depending on the level of
-; your lead Pokemon relative to the opponent's.
-; BUG: BattleMonLevel and EnemyMonLevel are not set at this point, so whatever
-; values happen to be there will determine the animation.
- ld de, 0
- ld a, [BattleMonLevel]
- add 3
- ld hl, EnemyMonLevel
- cp [hl]
- jr nc, .okay
- set 0, e
-.okay
- ld a, [wPermission]
- cp CAVE
- jr z, .okay2
- cp PERM_5
- jr z, .okay2
- cp DUNGEON
- jr z, .okay2
- set 1, e
-.okay2
- ld hl, .StartingPoints
- add hl, de
- ld a, [hl]
- ld [wJumptableIndex], a
- ret
-; 8c38f (23:438f)
-
-.StartingPoints: ; 8c38f
- db 1, 9
- db 16, 24
-; 8c393
-
-StartTrainerBattle_Finish: ; 8c393 (23:4393)
- call ClearSprites
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-StartTrainerBattle_NextScene: ; 8c39c (23:439c)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-StartTrainerBattle_SetUpBGMap: ; 8c3a1 (23:43a1)
- call StartTrainerBattle_NextScene
- xor a
- ld [wcf64], a
- ld [hBGMapMode], a
- ret
-
-StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
- call .DoFlashAnimation
- ret nc
- call StartTrainerBattle_NextScene
- ret
-
-.DoFlashAnimation: ; 8c3b3 (23:43b3)
- ld a, [wTimeOfDayPalset]
- cp %11111111 ; dark cave
- jr z, .done
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- srl a
- ld e, a
- ld d, 0
- ld hl, .pals
- add hl, de
- ld a, [hl]
- cp %00000001
- jr z, .done
- ld [wBGP], a
- call DmgToCgbBGPals
- and a
- ret
-
-.done
- xor a
- ld [wcf64], a
- scf
- ret
-; 8c3db (23:43db)
-
-.pals ; 8c3db
- db %11111001 ; 3321
- db %11111110 ; 3332
- db %11111111 ; 3333
- db %11111110 ; 3332
- db %11111001 ; 3321
- db %11100100 ; 3210
- db %10010000 ; 2100
- db %01000000 ; 1000
- db %00000000 ; 0000
- db %01000000 ; 1000
- db %10010000 ; 2100
- db %11100100 ; 3210
- db %00000001 ; 0001
-; 8c3e8
-
-StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
- callba Function5602
- ld a, $5 ; BANK(LYOverrides)
- ld [rSVBK], a
-
- call StartTrainerBattle_NextScene
-
- ld a, rSCX - $ff00
- ld [hLCDCPointer], a
- xor a
- ld [hLYOverrideStart], a
- ld a, $90
- ld [hLYOverrideEnd], a
- xor a
- ld [wcf64], a
- ld [wcf65], a
- ret
-
-StartTrainerBattle_SineWave: ; 8c408 (23:4408)
- ld a, [wcf64]
- cp $60
- jr nc, .end
- call .DoSineWave
- ret
-
-.end
- ld a, $20
- ld [wJumptableIndex], a
- ret
-
-.DoSineWave: ; 8c419 (23:4419)
- ld hl, wcf65
- ld a, [hl]
- inc [hl]
- ld hl, wcf64
- ld d, [hl]
- add [hl]
- ld [hl], a
- ld a, LYOverridesEnd - LYOverrides
- ld bc, LYOverrides
- ld e, $0
-
-.loop
- push af
- push de
- ld a, e
- call StartTrainerBattle_DrawSineWave
- ld [bc], a
- inc bc
- pop de
- ld a, e
- add $2
- ld e, a
- pop af
- dec a
- jr nz, .loop
- ret
-
-StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
- callba Function5602
- ld a, $5 ; BANK(LYOverrides)
- ld [rSVBK], a
- call StartTrainerBattle_NextScene
- xor a
- ld [wcf64], a
- ret
-
-spintable_entry: MACRO
- db \1
- dw .wedge\2
- dwcoord \3, \4
-ENDM
-
-; quadrants
- const_def
- const UPPER_LEFT
- const UPPER_RIGHT
- const LOWER_LEFT
- const LOWER_RIGHT
-
-StartTrainerBattle_SpinToBlack: ; 8c44f (23:444f)
- xor a
- ld [hBGMapMode], a
- ld a, [wcf64]
- ld e, a
- ld d, 0
- ld hl, .spintable
-rept 5
- add hl, de
-endr
- ld a, [hli]
- cp -1
- jr z, .end
- ld [wcf65], a
- call .load
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ld hl, wcf64
- inc [hl]
- ret
-
-.end
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld a, $20
- ld [wJumptableIndex], a
- ret
-; 8c490 (23:4490)
-
-.spintable ; 8c490
- spintable_entry UPPER_LEFT, 1, 1, 6
- spintable_entry UPPER_LEFT, 2, 0, 3
- spintable_entry UPPER_LEFT, 3, 1, 0
- spintable_entry UPPER_LEFT, 4, 5, 0
- spintable_entry UPPER_LEFT, 5, 9, 0
- spintable_entry UPPER_RIGHT, 5, 10, 0
- spintable_entry UPPER_RIGHT, 4, 14, 0
- spintable_entry UPPER_RIGHT, 3, 18, 0
- spintable_entry UPPER_RIGHT, 2, 19, 3
- spintable_entry UPPER_RIGHT, 1, 18, 6
- spintable_entry LOWER_RIGHT, 1, 18, 11
- spintable_entry LOWER_RIGHT, 2, 19, 14
- spintable_entry LOWER_RIGHT, 3, 18, 17
- spintable_entry LOWER_RIGHT, 4, 14, 17
- spintable_entry LOWER_RIGHT, 5, 10, 17
- spintable_entry LOWER_LEFT, 5, 9, 17
- spintable_entry LOWER_LEFT, 4, 5, 17
- spintable_entry LOWER_LEFT, 3, 1, 17
- spintable_entry LOWER_LEFT, 2, 0, 14
- spintable_entry LOWER_LEFT, 1, 1, 11
- db -1
-; 8c4f5
-
-.load ; 8c4f5 (23:44f5)
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.loop
- push hl
- ld a, [de]
- ld c, a
- inc de
-.loop1
- ld [hl], $ff
- ld a, [wcf65]
- bit 0, a
- jr z, .leftside
- inc hl
- jr .okay1
-.leftside
- dec hl
-.okay1
- dec c
- jr nz, .loop1
- pop hl
- ld a, [wcf65]
- bit 1, a
- ld bc, SCREEN_WIDTH
- jr z, .upper
- ld bc, -SCREEN_WIDTH
-.upper
- add hl, bc
- ld a, [de]
- inc de
- cp -1
- ret z
- and a
- jr z, .loop
- ld c, a
-.loop2
- ld a, [wcf65]
- bit 0, a
- jr z, .leftside2
- dec hl
- jr .okay2
-.leftside2
- inc hl
-.okay2
- dec c
- jr nz, .loop2
- jr .loop
-; 8c538 (23:4538)
-
-.wedge1 db 2, 3, 5, 4, 9, -1
-.wedge2 db 1, 1, 2, 2, 4, 2, 4, 2, 3, -1
-.wedge3 db 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 3, 1, 2, 1, 1, 1, 1, -1
-.wedge4 db 4, 1, 4, 0, 3, 1, 3, 0, 2, 1, 2, 0, 1, -1
-.wedge5 db 4, 0, 3, 0, 3, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, -1
-; 8c578
-
-StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
- callba Function5602
- ld a, $5 ; BANK(LYOverrides)
- ld [rSVBK], a
- call StartTrainerBattle_NextScene
- ld a, $10
- ld [wcf64], a
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .done
- dec [hl]
- ld c, $c
-.loop
- push bc
- call .BlackOutRandomTile
- pop bc
- dec c
- jr nz, .loop
- ret
-
-.done
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
- xor a
- ld [hBGMapMode], a
- ld a, $20
- ld [wJumptableIndex], a
- ret
-
-.BlackOutRandomTile: ; 8c5b8 (23:45b8)
-.y_loop
- call Random
- cp SCREEN_HEIGHT
- jr nc, .y_loop
- ld b, a
-
-.x_loop
- call Random
- cp SCREEN_WIDTH
- jr nc, .x_loop
- ld c, a
-
- hlcoord 0, -1
- ld de, SCREEN_WIDTH
- inc b
-
-.row_loop
- add hl, de
- dec b
- jr nz, .row_loop
- add hl, bc
-
-; If the tile has already been blacked out,
-; sample a new tile
- ld a, [hl]
- cp $ff
- jr z, .y_loop
- ld [hl], $ff
- ret
-
-StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
- ld a, [OtherTrainerClass]
- and a
- jp z, .nextscene ; don't need to be here if wild
-
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- inc b
- inc c
- jr .enter_loop_midway
-
-.loop
-; set all pals to 7
- ld a, [hl]
- or %00000111
- ld [hli], a
-.enter_loop_midway
- dec c
- jr nz, .loop
- dec b
- jr nz, .loop
-
- call .loadpokeballgfx ; ld a, [OtherTrainerClass] \ ld de, PokeBallTransition \ ret
- hlcoord 2, 1
-
- ld b, SCREEN_WIDTH - 4
-.loop2
- push hl
- ld c, 2
-.loop3
- push hl
- ld a, [de]
- inc de
-.loop4
-; Loading is done bit by bit
- and a
- jr z, .done
- sla a
- jr nc, .no_load
- ld [hl], $fe
-.no_load
- inc hl
- jr .loop4
-
-.done
- pop hl
- push bc
- ld bc, (SCREEN_WIDTH - 4) / 2
- add hl, bc
- pop bc
- dec c
- jr nz, .loop3
-
- pop hl
- push bc
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop2
-
- ld a, [hCGB]
- and a
- jr nz, .cgb
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- jr .nextscene
-
-.cgb
- ld hl, .daypals
- ld a, [TimeOfDayPal]
- and (1 << 2) - 1
- cp 3
- jr nz, .daytime
- ld hl, .nightpals
-.daytime
- ld a, [rSVBK]
- push af
- ld a, $5 ; WRAM5 = palettes
- ld [rSVBK], a
- call .copypals
- push hl
- ld de, UnknBGPals palette PAL_BG_TEXT
- ld bc, 1 palettes
- call CopyBytes
- pop hl
- ld de, BGPals palette PAL_BG_TEXT
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- call DelayFrame
- call BattleStart_LoadEDTile
-
-.nextscene ; 8c673 (23:4673)
- call StartTrainerBattle_NextScene
- ret
-
-.copypals ; 8c677 (23:4677)
- ld de, UnknBGPals palette PAL_BG_TEXT
- call .copy
- ld de, BGPals palette PAL_BG_TEXT
- call .copy
- ld de, UnknOBPals palette PAL_OW_TREE
- call .copy
- ld de, OBPals palette PAL_OW_TREE
- call .copy
- ld de, UnknOBPals palette PAL_OW_ROCK
- call .copy
- ld de, OBPals palette PAL_OW_ROCK
-
-.copy ; 8c698 (23:4698)
- push hl
- ld bc, 1 palettes
- call CopyBytes
- pop hl
- ret
-; 8c6a1 (23:46a1)
-
-.daypals ; 8c6a1
- RGB 31, 18, 29
- RGB 31, 11, 15
- RGB 31, 05, 05
- RGB 07, 07, 07
-; 8c6a9
-
-.nightpals ; 8c6a9
- RGB 31, 18, 29
- RGB 31, 05, 05
- RGB 31, 05, 05
- RGB 31, 05, 05
-
-.loadpokeballgfx
- ld a, [OtherTrainerClass]
- ld de, PokeBallTransition
- ret
-
-PokeBallTransition:
- db %00000011, %11000000
- db %00001111, %11110000
- db %00111100, %00111100
- db %00110000, %00001100
- db %01100000, %00000110
- db %01100011, %11000110
- db %11000110, %01100011
- db %11111100, %00111111
- db %11111100, %00111111
- db %11000110, %01100011
- db %01100011, %11000110
- db %01100000, %00000110
- db %00110000, %00001100
- db %00111100, %00111100
- db %00001111, %11110000
- db %00000011, %11000000
-
-WipeLYOverrides: ; 8c6d8
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, LYOverrides
- call .wipe
- ld hl, LYOverridesBackup
- call .wipe
-
- pop af
- ld [rSVBK], a
- ret
-; 8c6ef
-
-.wipe ; 8c6ef
- xor a
- ld c, SCREEN_HEIGHT_PX
-.loop
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-; 8c6f7
-
-
-StartTrainerBattle_DrawSineWave: ; 8c6f7 (23:46f7)
- and (1 << 6) - 1
- cp 1 << 5
- jr nc, .okay
- call .DoSineWave
- ld a, h
- ret
-
-.okay
- and (1 << 5) - 1
- call .DoSineWave
- ld a, h
- xor -1 ; cpl
- inc a
- ret
-
-.DoSineWave: ; 8c70c (23:470c)
- ld e, a
- ld a, d
- ld d, 0
- ld hl, .sinewave
- add hl, de
- add hl, de
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, 0
-.loop
- srl a
- jr nc, .skip
- add hl, de
-.skip
- sla e
- rl d
- and a
- jr nz, .loop
- ret
-; 8c728 (23:4728)
-
-.sinewave ; 8c728
- sine_wave $100
-; 8c768
-
-zoombox: macro
-; width, height, start y, start x
- db \1, \2
- dwcoord \3, \4
-endm
-
-StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768)
- callba Function5602
- ld de, .boxes
-
-.loop
- ld a, [de]
- cp -1
- jr z, .done
- inc de
- ld c, a
- ld a, [de]
- inc de
- ld b, a
- ld a, [de]
- inc de
- ld l, a
- ld a, [de]
- inc de
- ld h, a
- xor a
- ld [hBGMapMode], a
- call .Copy
- call WaitBGMap
- jr .loop
-
-.done
- ld a, $20
- ld [wJumptableIndex], a
- ret
-; 8c792 (23:4792)
-
-.boxes ; 8c792
- zoombox 4, 2, 8, 8
- zoombox 6, 4, 7, 7
- zoombox 8, 6, 6, 6
- zoombox 10, 8, 5, 5
- zoombox 12, 10, 4, 4
- zoombox 14, 12, 3, 3
- zoombox 16, 14, 2, 2
- zoombox 18, 16, 1, 1
- zoombox 20, 18, 0, 0
- db -1
-; 8c7b7
-
-.Copy: ; 8c7b7 (23:47b7)
- ld a, $ff
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-; 8c7c9 (23:47c9)
diff --git a/engine/battle_transition.asm b/engine/battle_transition.asm
new file mode 100644
index 000000000..f8756649b
--- /dev/null
+++ b/engine/battle_transition.asm
@@ -0,0 +1,873 @@
+Predef_StartBattle: ; 8c20f
+ call .InitGFX
+ ld a, [rBGP]
+ ld [wBGP], a
+ ld a, [rOBP0]
+ ld [wOBP0], a
+ ld a, [rOBP1]
+ ld [wOBP1], a
+ call DelayFrame
+ ld hl, hVBlank
+ ld a, [hl]
+ push af
+ ld [hl], $1
+
+.loop
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ call FlashyTransitionToBattle
+ call DelayFrame
+ jr .loop
+
+.done
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, UnknBGPals
+ ld bc, 8 palettes
+ xor a
+ call ByteFill
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, %11111111
+ ld [wBGP], a
+ call DmgToCgbBGPals
+ call DelayFrame
+ xor a
+ ld [hLCDCPointer], a
+ ld [hLYOverrideStart], a
+ ld [hLYOverrideEnd], a
+ ld [hSCY], a
+
+ ld a, $1
+ ld [rSVBK], a
+ pop af
+ ld [hVBlank], a
+ call DelayFrame
+ ret
+; 8c26d
+
+.InitGFX: ; 8c26d
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr z, .mobile
+ callba ReanchorBGMap_NoOAMUpdate
+ call UpdateSprites
+ call DelayFrame
+ call .NonMobile_LoadPokeballTiles
+ call BattleStart_LoadEDTile
+ jr .resume
+
+.mobile
+ call LoadTrainerBattlePokeballTiles
+
+.resume
+ ld a, SCREEN_HEIGHT_PX
+ ld [hWY], a
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld hl, wJumptableIndex
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ call WipeLYOverrides
+ ret
+; 8c2a0
+
+.NonMobile_LoadPokeballTiles: ; 8c2a0
+ call LoadTrainerBattlePokeballTiles
+ hlbgcoord 0, 0
+ call ConvertTrainerBattlePokeballTilesTo2bpp
+ ret
+; 8c2aa
+
+LoadTrainerBattlePokeballTiles:
+; Load the tiles used in the Pokeball Graphic that fills the screen
+; at the start of every Trainer battle.
+ ld de, TrainerBattlePokeballTiles
+ ld hl, VTiles1 tile $7e
+ ld b, BANK(TrainerBattlePokeballTiles)
+ ld c, 2
+ call Request2bpp
+
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+
+ ld de, TrainerBattlePokeballTiles
+ ld hl, VTiles4 tile $7e
+ ld b, BANK(TrainerBattlePokeballTiles)
+ ld c, 2
+ call Request2bpp
+
+ pop af
+ ld [rVBK], a
+ ret
+; 8c2cf
+
+ConvertTrainerBattlePokeballTilesTo2bpp: ; 8c2cf
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push hl
+ ld hl, wDecompressScratch
+ ld bc, $28 tiles
+
+.loop
+ ld [hl], -1
+ inc hl
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop
+
+ pop hl
+ ld de, wDecompressScratch
+ ld b, BANK(ConvertTrainerBattlePokeballTilesTo2bpp) ; BANK(@)
+ ld c, $28
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 8c2f4
+
+TrainerBattlePokeballTiles: ; 8c2f4
+INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp"
+
+
+FlashyTransitionToBattle: ; 8c314
+ jumptable .dw, wJumptableIndex
+; 8c323
+
+.dw ; 8c323 (23:4323)
+ dw StartTrainerBattle_DetermineWhichAnimation ; 00
+
+ ; Animation 1: cave
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 01
+ dw StartTrainerBattle_SetUpBGMap ; 02
+ dw StartTrainerBattle_Flash ; 03
+ dw StartTrainerBattle_Flash ; 04
+ dw StartTrainerBattle_Flash ; 05
+ dw StartTrainerBattle_NextScene ; 06
+ dw StartTrainerBattle_SetUpForWavyOutro ; 07
+ dw StartTrainerBattle_SineWave ; 08
+
+ ; Animation 2: cave, stronger
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 09
+ dw StartTrainerBattle_SetUpBGMap ; 0a
+ dw StartTrainerBattle_Flash ; 0b
+ dw StartTrainerBattle_Flash ; 0c
+ dw StartTrainerBattle_Flash ; 0d
+ dw StartTrainerBattle_NextScene ; 0e
+ ; There is no setup for this one
+ dw StartTrainerBattle_ZoomToBlack ; 0f
+
+ ; Animation 3: no cave
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 10
+ dw StartTrainerBattle_SetUpBGMap ; 11
+ dw StartTrainerBattle_Flash ; 12
+ dw StartTrainerBattle_Flash ; 13
+ dw StartTrainerBattle_Flash ; 14
+ dw StartTrainerBattle_NextScene ; 15
+ dw StartTrainerBattle_SetUpForSpinOutro ; 16
+ dw StartTrainerBattle_SpinToBlack ; 17
+
+ ; Animation 4: no cave, stronger
+ dw StartTrainerBattle_LoadPokeBallGraphics ; 18
+ dw StartTrainerBattle_SetUpBGMap ; 19
+ dw StartTrainerBattle_Flash ; 1a
+ dw StartTrainerBattle_Flash ; 1b
+ dw StartTrainerBattle_Flash ; 1c
+ dw StartTrainerBattle_NextScene ; 1d
+ dw StartTrainerBattle_SetUpForRandomScatterOutro ; 1e
+ dw StartTrainerBattle_SpeckleToBlack ; 1f
+
+ ; All animations jump to here.
+ dw StartTrainerBattle_Finish ; 20
+
+
+StartTrainerBattle_DetermineWhichAnimation: ; 8c365 (23:4365)
+; The screen flashes a different number of times depending on the level of
+; your lead Pokemon relative to the opponent's.
+; BUG: BattleMonLevel and EnemyMonLevel are not set at this point, so whatever
+; values happen to be there will determine the animation.
+ ld de, 0
+ ld a, [BattleMonLevel]
+ add 3
+ ld hl, EnemyMonLevel
+ cp [hl]
+ jr nc, .okay
+ set 0, e
+.okay
+ ld a, [wPermission]
+ cp CAVE
+ jr z, .okay2
+ cp PERM_5
+ jr z, .okay2
+ cp DUNGEON
+ jr z, .okay2
+ set 1, e
+.okay2
+ ld hl, .StartingPoints
+ add hl, de
+ ld a, [hl]
+ ld [wJumptableIndex], a
+ ret
+; 8c38f (23:438f)
+
+.StartingPoints: ; 8c38f
+ db 1, 9
+ db 16, 24
+; 8c393
+
+StartTrainerBattle_Finish: ; 8c393 (23:4393)
+ call ClearSprites
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+StartTrainerBattle_NextScene: ; 8c39c (23:439c)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+StartTrainerBattle_SetUpBGMap: ; 8c3a1 (23:43a1)
+ call StartTrainerBattle_NextScene
+ xor a
+ ld [wcf64], a
+ ld [hBGMapMode], a
+ ret
+
+StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
+ call .DoFlashAnimation
+ ret nc
+ call StartTrainerBattle_NextScene
+ ret
+
+.DoFlashAnimation: ; 8c3b3 (23:43b3)
+ ld a, [wTimeOfDayPalset]
+ cp %11111111 ; dark cave
+ jr z, .done
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ srl a
+ ld e, a
+ ld d, 0
+ ld hl, .pals
+ add hl, de
+ ld a, [hl]
+ cp %00000001
+ jr z, .done
+ ld [wBGP], a
+ call DmgToCgbBGPals
+ and a
+ ret
+
+.done
+ xor a
+ ld [wcf64], a
+ scf
+ ret
+; 8c3db (23:43db)
+
+.pals ; 8c3db
+ db %11111001 ; 3321
+ db %11111110 ; 3332
+ db %11111111 ; 3333
+ db %11111110 ; 3332
+ db %11111001 ; 3321
+ db %11100100 ; 3210
+ db %10010000 ; 2100
+ db %01000000 ; 1000
+ db %00000000 ; 0000
+ db %01000000 ; 1000
+ db %10010000 ; 2100
+ db %11100100 ; 3210
+ db %00000001 ; 0001
+; 8c3e8
+
+StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
+ callba Function5602
+ ld a, $5 ; BANK(LYOverrides)
+ ld [rSVBK], a
+
+ call StartTrainerBattle_NextScene
+
+ ld a, rSCX - $ff00
+ ld [hLCDCPointer], a
+ xor a
+ ld [hLYOverrideStart], a
+ ld a, $90
+ ld [hLYOverrideEnd], a
+ xor a
+ ld [wcf64], a
+ ld [wcf65], a
+ ret
+
+StartTrainerBattle_SineWave: ; 8c408 (23:4408)
+ ld a, [wcf64]
+ cp $60
+ jr nc, .end
+ call .DoSineWave
+ ret
+
+.end
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+
+.DoSineWave: ; 8c419 (23:4419)
+ ld hl, wcf65
+ ld a, [hl]
+ inc [hl]
+ ld hl, wcf64
+ ld d, [hl]
+ add [hl]
+ ld [hl], a
+ ld a, LYOverridesEnd - LYOverrides
+ ld bc, LYOverrides
+ ld e, $0
+
+.loop
+ push af
+ push de
+ ld a, e
+ call StartTrainerBattle_DrawSineWave
+ ld [bc], a
+ inc bc
+ pop de
+ ld a, e
+ add $2
+ ld e, a
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+
+StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
+ callba Function5602
+ ld a, $5 ; BANK(LYOverrides)
+ ld [rSVBK], a
+ call StartTrainerBattle_NextScene
+ xor a
+ ld [wcf64], a
+ ret
+
+StartTrainerBattle_SpinToBlack: ; 8c44f (23:444f)
+ xor a
+ ld [hBGMapMode], a
+ ld a, [wcf64]
+ ld e, a
+ ld d, 0
+ ld hl, .spintable
+rept 5
+ add hl, de
+endr
+ ld a, [hli]
+ cp -1
+ jr z, .end
+ ld [wcf65], a
+ call .load
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ ld hl, wcf64
+ inc [hl]
+ ret
+
+.end
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+; 8c490 (23:4490)
+
+; quadrants
+ const_def
+ const UPPER_LEFT
+ const UPPER_RIGHT
+ const LOWER_LEFT
+ const LOWER_RIGHT
+
+.spintable ; 8c490
+spintable_entry: MACRO
+ db \1
+ dw .wedge\2
+ dwcoord \3, \4
+ENDM
+ spintable_entry UPPER_LEFT, 1, 1, 6
+ spintable_entry UPPER_LEFT, 2, 0, 3
+ spintable_entry UPPER_LEFT, 3, 1, 0
+ spintable_entry UPPER_LEFT, 4, 5, 0
+ spintable_entry UPPER_LEFT, 5, 9, 0
+ spintable_entry UPPER_RIGHT, 5, 10, 0
+ spintable_entry UPPER_RIGHT, 4, 14, 0
+ spintable_entry UPPER_RIGHT, 3, 18, 0
+ spintable_entry UPPER_RIGHT, 2, 19, 3
+ spintable_entry UPPER_RIGHT, 1, 18, 6
+ spintable_entry LOWER_RIGHT, 1, 18, 11
+ spintable_entry LOWER_RIGHT, 2, 19, 14
+ spintable_entry LOWER_RIGHT, 3, 18, 17
+ spintable_entry LOWER_RIGHT, 4, 14, 17
+ spintable_entry LOWER_RIGHT, 5, 10, 17
+ spintable_entry LOWER_LEFT, 5, 9, 17
+ spintable_entry LOWER_LEFT, 4, 5, 17
+ spintable_entry LOWER_LEFT, 3, 1, 17
+ spintable_entry LOWER_LEFT, 2, 0, 14
+ spintable_entry LOWER_LEFT, 1, 1, 11
+ db -1
+; 8c4f5
+
+.load ; 8c4f5 (23:44f5)
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.loop
+ push hl
+ ld a, [de]
+ ld c, a
+ inc de
+.loop1
+ ld [hl], $ff
+ ld a, [wcf65]
+ bit 0, a
+ jr z, .leftside
+ inc hl
+ jr .okay1
+.leftside
+ dec hl
+.okay1
+ dec c
+ jr nz, .loop1
+ pop hl
+ ld a, [wcf65]
+ bit 1, a
+ ld bc, SCREEN_WIDTH
+ jr z, .upper
+ ld bc, -SCREEN_WIDTH
+.upper
+ add hl, bc
+ ld a, [de]
+ inc de
+ cp -1
+ ret z
+ and a
+ jr z, .loop
+ ld c, a
+.loop2
+ ld a, [wcf65]
+ bit 0, a
+ jr z, .leftside2
+ dec hl
+ jr .okay2
+.leftside2
+ inc hl
+.okay2
+ dec c
+ jr nz, .loop2
+ jr .loop
+; 8c538 (23:4538)
+
+.wedge1 db 2, 3, 5, 4, 9, -1
+.wedge2 db 1, 1, 2, 2, 4, 2, 4, 2, 3, -1
+.wedge3 db 2, 1, 3, 1, 4, 1, 4, 1, 4, 1, 3, 1, 2, 1, 1, 1, 1, -1
+.wedge4 db 4, 1, 4, 0, 3, 1, 3, 0, 2, 1, 2, 0, 1, -1
+.wedge5 db 4, 0, 3, 0, 3, 0, 2, 0, 2, 0, 1, 0, 1, 0, 1, -1
+; 8c578
+
+StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
+ callba Function5602
+ ld a, $5 ; BANK(LYOverrides)
+ ld [rSVBK], a
+ call StartTrainerBattle_NextScene
+ ld a, $10
+ ld [wcf64], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f)
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .done
+ dec [hl]
+ ld c, $c
+.loop
+ push bc
+ call .BlackOutRandomTile
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+.done
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+ xor a
+ ld [hBGMapMode], a
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+
+.BlackOutRandomTile: ; 8c5b8 (23:45b8)
+.y_loop
+ call Random
+ cp SCREEN_HEIGHT
+ jr nc, .y_loop
+ ld b, a
+
+.x_loop
+ call Random
+ cp SCREEN_WIDTH
+ jr nc, .x_loop
+ ld c, a
+
+ hlcoord 0, -1
+ ld de, SCREEN_WIDTH
+ inc b
+
+.row_loop
+ add hl, de
+ dec b
+ jr nz, .row_loop
+ add hl, bc
+
+; If the tile has already been blacked out,
+; sample a new tile
+ ld a, [hl]
+ cp $ff
+ jr z, .y_loop
+ ld [hl], $ff
+ ret
+
+StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
+ ld a, [OtherTrainerClass]
+ and a
+ jp z, .nextscene ; don't need to be here if wild
+
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ inc b
+ inc c
+ jr .enter_loop_midway
+
+.loop
+; set all pals to 7
+ ld a, [hl]
+ or %00000111
+ ld [hli], a
+.enter_loop_midway
+ dec c
+ jr nz, .loop
+ dec b
+ jr nz, .loop
+
+ call .loadpokeballgfx ; ld a, [OtherTrainerClass] \ ld de, PokeBallTransition \ ret
+ hlcoord 2, 1
+
+ ld b, SCREEN_WIDTH - 4
+.loop2
+ push hl
+ ld c, 2
+.loop3
+ push hl
+ ld a, [de]
+ inc de
+.loop4
+; Loading is done bit by bit
+ and a
+ jr z, .done
+ sla a
+ jr nc, .no_load
+ ld [hl], $fe
+.no_load
+ inc hl
+ jr .loop4
+
+.done
+ pop hl
+ push bc
+ ld bc, (SCREEN_WIDTH - 4) / 2
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .loop3
+
+ pop hl
+ push bc
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop2
+
+ ld a, [hCGB]
+ and a
+ jr nz, .cgb
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ jr .nextscene
+
+.cgb
+ ld hl, .daypals
+ ld a, [TimeOfDayPal]
+ and (1 << 2) - 1
+ cp 3
+ jr nz, .daytime
+ ld hl, .nightpals
+.daytime
+ ld a, [rSVBK]
+ push af
+ ld a, $5 ; WRAM5 = palettes
+ ld [rSVBK], a
+ call .copypals
+ push hl
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld bc, 1 palettes
+ call CopyBytes
+ pop hl
+ ld de, BGPals palette PAL_BG_TEXT
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ call BattleStart_LoadEDTile
+
+.nextscene ; 8c673 (23:4673)
+ call StartTrainerBattle_NextScene
+ ret
+
+.copypals ; 8c677 (23:4677)
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ call .copy
+ ld de, BGPals palette PAL_BG_TEXT
+ call .copy
+ ld de, UnknOBPals palette PAL_OW_TREE
+ call .copy
+ ld de, OBPals palette PAL_OW_TREE
+ call .copy
+ ld de, UnknOBPals palette PAL_OW_ROCK
+ call .copy
+ ld de, OBPals palette PAL_OW_ROCK
+
+.copy ; 8c698 (23:4698)
+ push hl
+ ld bc, 1 palettes
+ call CopyBytes
+ pop hl
+ ret
+; 8c6a1 (23:46a1)
+
+.daypals ; 8c6a1
+ RGB 31, 18, 29
+ RGB 31, 11, 15
+ RGB 31, 05, 05
+ RGB 07, 07, 07
+; 8c6a9
+
+.nightpals ; 8c6a9
+ RGB 31, 18, 29
+ RGB 31, 05, 05
+ RGB 31, 05, 05
+ RGB 31, 05, 05
+
+.loadpokeballgfx
+ ld a, [OtherTrainerClass]
+ ld de, PokeBallTransition
+ ret
+
+PokeBallTransition:
+ db %00000011, %11000000
+ db %00001111, %11110000
+ db %00111100, %00111100
+ db %00110000, %00001100
+ db %01100000, %00000110
+ db %01100011, %11000110
+ db %11000110, %01100011
+ db %11111100, %00111111
+ db %11111100, %00111111
+ db %11000110, %01100011
+ db %01100011, %11000110
+ db %01100000, %00000110
+ db %00110000, %00001100
+ db %00111100, %00111100
+ db %00001111, %11110000
+ db %00000011, %11000000
+
+WipeLYOverrides: ; 8c6d8
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, LYOverrides
+ call .wipe
+ ld hl, LYOverridesBackup
+ call .wipe
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 8c6ef
+
+.wipe ; 8c6ef
+ xor a
+ ld c, SCREEN_HEIGHT_PX
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; 8c6f7
+
+
+StartTrainerBattle_DrawSineWave: ; 8c6f7 (23:46f7)
+ and (1 << 6) - 1
+ cp 1 << 5
+ jr nc, .okay
+ call .DoSineWave
+ ld a, h
+ ret
+
+.okay
+ and (1 << 5) - 1
+ call .DoSineWave
+ ld a, h
+ xor -1 ; cpl
+ inc a
+ ret
+
+.DoSineWave: ; 8c70c (23:470c)
+ ld e, a
+ ld a, d
+ ld d, 0
+ ld hl, .sinewave
+ add hl, de
+ add hl, de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, 0
+.loop
+ srl a
+ jr nc, .skip
+ add hl, de
+.skip
+ sla e
+ rl d
+ and a
+ jr nz, .loop
+ ret
+; 8c728 (23:4728)
+
+.sinewave ; 8c728
+ sine_wave $100
+; 8c768
+
+StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768)
+ callba Function5602
+ ld de, .boxes
+
+.loop
+ ld a, [de]
+ cp -1
+ jr z, .done
+ inc de
+ ld c, a
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [de]
+ inc de
+ ld l, a
+ ld a, [de]
+ inc de
+ ld h, a
+ xor a
+ ld [hBGMapMode], a
+ call .Copy
+ call WaitBGMap
+ jr .loop
+
+.done
+ ld a, $20
+ ld [wJumptableIndex], a
+ ret
+; 8c792 (23:4792)
+
+.boxes ; 8c792
+zoombox: macro
+; width, height, start y, start x
+ db \1, \2
+ dwcoord \3, \4
+endm
+ zoombox 4, 2, 8, 8
+ zoombox 6, 4, 7, 7
+ zoombox 8, 6, 6, 6
+ zoombox 10, 8, 5, 5
+ zoombox 12, 10, 4, 4
+ zoombox 14, 12, 3, 3
+ zoombox 16, 14, 2, 2
+ zoombox 18, 16, 1, 1
+ zoombox 20, 18, 0, 0
+ db -1
+; 8c7b7
+
+.Copy: ; 8c7b7 (23:47b7)
+ ld a, $ff
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 8c7c9 (23:47c9)
+
+Function8c7c9:
+; XXX
+ ld a, $1
+ ld [hBGMapMode], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
diff --git a/engine/breeding/egg.asm b/engine/breeding.asm
index b402f99f1..b402f99f1 100755
--- a/engine/breeding/egg.asm
+++ b/engine/breeding.asm
diff --git a/engine/card_flip.asm b/engine/card_flip.asm
index 063d5324f..cfcd949e6 100755
--- a/engine/card_flip.asm
+++ b/engine/card_flip.asm
@@ -1415,7 +1415,6 @@ else
endc
endm
-
cardflip_cursor 11, 2, .Impossible
cardflip_cursor 12, 2, .Impossible
cardflip_cursor 13, 2, .PokeGroupPair
@@ -1665,50 +1664,7 @@ CardFlip_InitAttrPals: ; e0c37 (38:4c37)
; e0c93 (38:4c93)
.palettes ; e0c93
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 25, 00
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 13, 30
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 17, 30
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 31, 08
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 17, 07, 31
- RGB 06, 19, 08
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 31, 00, 00
+INCLUDE "data/palettes/card_flip.pal"
; e0cdb
CardFlipLZ03: ; e0cdb
@@ -1727,16 +1683,5 @@ CardFlipLZ02: ; e0ea8
INCBIN "gfx/card_flip/card_flip_2.2bpp.lz"
CardFlipTilemap: ; e110c
- db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27
- db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b
- db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d
- db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01
- db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11
- db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21
- db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02
- db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12
- db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22
- db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03
- db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13
- db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23
+INCBIN "gfx/card_flip/card_flip.tilemap"
; e1190
diff --git a/engine/caught_data.asm b/engine/caught_data.asm
new file mode 100644
index 000000000..c079009ae
--- /dev/null
+++ b/engine/caught_data.asm
@@ -0,0 +1,247 @@
+CheckPartyFullAfterContest: ; 4d9e5
+ ld a, [wContestMon]
+ and a
+ jp z, .DidntCatchAnything
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, PartyCount
+ ld a, [hl]
+ cp 6
+ jp nc, .TryAddToBox
+ inc a
+ ld [hl], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [wContestMon]
+ ld [hli], a
+ ld [CurSpecies], a
+ ld a, $ff
+ ld [hl], a
+ ld hl, PartyMon1Species
+ ld a, [PartyCount]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, wContestMon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonOT
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, wMonOrItemNameBuffer
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ call GiveANickname_YesNo
+ jr c, .Party_SkipNickname
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+ ld de, wMonOrItemNameBuffer
+ callab InitNickname
+
+.Party_SkipNickname:
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonNicknames
+ call SkipNames
+ ld d, h
+ ld e, l
+ ld hl, wMonOrItemNameBuffer
+ call CopyBytes
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Level
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ call SetCaughtData
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLocation
+ call GetPartyLocation
+ ld a, [hl]
+ and $80
+ ld b, $13
+ or b
+ ld [hl], a
+ xor a
+ ld [wContestMon], a
+ and a
+ ld [ScriptVar], a
+ ret
+
+.TryAddToBox: ; 4daa3
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld hl, sBoxCount
+ ld a, [hl]
+ cp MONS_PER_BOX
+ call CloseSRAM
+ jr nc, .BoxFull
+ xor a
+ ld [CurPartyMon], a
+ ld hl, wContestMon
+ ld de, wBufferMon
+ ld bc, BOXMON_STRUCT_LENGTH
+ call CopyBytes
+ ld hl, PlayerName
+ ld de, wBufferMonOT
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ callab InsertPokemonIntoBox
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+ call GiveANickname_YesNo
+ ld hl, StringBuffer1
+ jr c, .Box_SkipNickname
+ ld a, BOXMON
+ ld [MonType], a
+ ld de, wMonOrItemNameBuffer
+ callab InitNickname
+ ld hl, wMonOrItemNameBuffer
+
+.Box_SkipNickname:
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+ ld de, sBoxMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ call CloseSRAM
+
+.BoxFull:
+ ld a, BANK(sBoxMon1Level)
+ call GetSRAMBank
+ ld a, [sBoxMon1Level]
+ ld [CurPartyLevel], a
+ call CloseSRAM
+ call SetBoxMonCaughtData
+ ld a, BANK(sBoxMon1CaughtLocation)
+ call GetSRAMBank
+ ld hl, sBoxMon1CaughtLocation
+ ld a, [hl]
+ and $80
+ ld b, $13
+ or b
+ ld [hl], a
+ call CloseSRAM
+ xor a
+ ld [wContestMon], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.DidntCatchAnything: ; 4db35
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+
+GiveANickname_YesNo: ; 4db3b
+ ld hl, TextJump_GiveANickname
+ call PrintText
+ jp YesNoBox
+
+TextJump_GiveANickname: ; 0x4db44
+ ; Give a nickname to the @ you received?
+ text_jump UnknownText_0x1c12fc
+ db "@"
+
+SetCaughtData: ; 4db49
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLevel
+ call GetPartyLocation
+SetBoxmonOrEggmonCaughtData: ; 4db53
+ ld a, [TimeOfDay]
+ inc a
+ rrca
+ rrca
+ ld b, a
+ ld a, [CurPartyLevel]
+ or b
+ ld [hli], a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ cp MAP_POKECENTER_2F
+ jr nz, .NotPokecenter2F
+ ld a, b
+ cp GROUP_POKECENTER_2F
+ jr nz, .NotPokecenter2F
+
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+
+.NotPokecenter2F:
+ call GetWorldMapLocation
+ ld b, a
+ ld a, [PlayerGender]
+ rrca
+ or b
+ ld [hl], a
+ ret
+
+SetBoxMonCaughtData: ; 4db83
+ ld a, BANK(sBoxMon1CaughtLevel)
+ call GetSRAMBank
+ ld hl, sBoxMon1CaughtLevel
+ call SetBoxmonOrEggmonCaughtData
+ call CloseSRAM
+ ret
+
+SetGiftBoxMonCaughtData: ; 4db92
+ push bc
+ ld a, BANK(sBoxMon1CaughtLevel)
+ call GetSRAMBank
+ ld hl, sBoxMon1CaughtLevel
+ pop bc
+ call SetGiftMonCaughtData
+ call CloseSRAM
+ ret
+
+SetGiftPartyMonCaughtData: ; 4dba3
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1CaughtLevel
+ push bc
+ call GetPartyLocation
+ pop bc
+SetGiftMonCaughtData: ; 4dbaf
+ xor a
+ ld [hli], a
+ ld a, $7e
+ rrc b
+ or b
+ ld [hl], a
+ ret
+
+SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1CaughtLevel
+ call GetPartyLocation
+ ld a, [CurPartyLevel]
+ push af
+ ld a, $1
+ ld [CurPartyLevel], a
+ call SetBoxmonOrEggmonCaughtData
+ pop af
+ ld [CurPartyLevel], a
+ ret
diff --git a/engine/cgb_layouts.asm b/engine/cgb_layouts.asm
new file mode 100644
index 000000000..18fda6170
--- /dev/null
+++ b/engine/cgb_layouts.asm
@@ -0,0 +1,1071 @@
+; Replaces the functionality of sgb.asm to work with CGB hardware.
+
+CheckCGB: ; 8d55
+ ld a, [hCGB]
+ and a
+ ret
+; 8d59
+
+Predef_LoadSGBLayoutCGB: ; 8d59
+ ld a, b
+ cp SCGB_RAM
+ jr nz, .not_ram
+ ld a, [SGBPredef]
+.not_ram
+ cp SCGB_PARTY_MENU_HP_PALS
+ jp z, CGB_ApplyPartyMenuHPPals
+ call ResetBGPals
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, .dw
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .ReturnFromJumpTable
+ push de
+ jp hl
+; 8d79
+
+.ReturnFromJumpTable: ; 8d79
+ ret
+; 8d7a
+
+.dw ; 8d7a
+ dw _CGB_BattleGrayscale
+ dw _CGB_BattleColors
+ dw _CGB_PokegearPals
+ dw _CGB_StatsScreenHPPals
+ dw _CGB_Pokedex
+ dw _CGB_SlotMachine
+ dw _CGB06
+ dw _CGB07
+ dw _CGB_Diploma
+ dw _CGB_MapPals
+ dw _CGB_PartyMenu
+ dw _CGB_Evolution
+ dw _CGB0c
+ dw _CGB0d
+ dw _CGB_MoveList
+ dw _CGB0f
+ dw _CGB_PokedexSearchOption
+ dw _CGB11
+ dw _CGB_Pokepic
+ dw _CGB13
+ dw _CGB_PackPals
+ dw _CGB_TrainerCard
+ dw _CGB_PokedexUnownMode
+ dw _CGB_BillsPC
+ dw _CGB_UnownPuzzle
+ dw _CGB_GamefreakLogo ; called before copyright
+ dw _CGB_PlayerOrMonFrontpicPals
+ dw _CGB_TradeTube
+ dw _CGB_TrainerOrMonFrontpicPals
+ dw _CGB_MysteryGift
+ dw _CGB1e
+; 8db8
+
+_CGB_BattleGrayscale: ; 8db8
+ ld hl, PalPacket_9c66 + 1
+ ld de, UnknBGPals
+ ld c, 4
+ call CopyPalettes
+ ld hl, PalPacket_9c66 + 1
+ ld de, UnknBGPals palette PAL_BATTLE_BG_EXP
+ ld c, 4
+ call CopyPalettes
+ ld hl, PalPacket_9c66 + 1
+ ld de, UnknOBPals
+ ld c, 2
+ call CopyPalettes
+ jr _CGB_FinishBattleScreenLayout
+
+_CGB_BattleColors: ; 8ddb
+ ld de, UnknBGPals
+ call GetBattlemonBackpicPalettePointer
+ push hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER
+ call GetEnemyFrontpicPalettePointer
+ push hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY
+ ld a, [EnemyHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY_HP
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER_HP
+ ld hl, ExpBarPalette
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_EXP
+ ld de, UnknOBPals
+ pop hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_ENEMY
+ pop hl
+ call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_PLAYER
+ ld a, SCGB_BATTLE_COLORS
+ ld [SGBPredef], a
+ call ApplyPals
+_CGB_FinishBattleScreenLayout: ; 8e23
+ call InitPartyMenuBGPal7
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, PAL_BATTLE_BG_ENEMY_HP
+ call ByteFill
+ hlcoord 0, 4, AttrMap
+ lb bc, 8, 10
+ ld a, PAL_BATTLE_BG_PLAYER
+ call FillBoxCGB
+ hlcoord 10, 0, AttrMap
+ lb bc, 7, 10
+ ld a, PAL_BATTLE_BG_ENEMY
+ call FillBoxCGB
+ hlcoord 0, 0, AttrMap
+ lb bc, 4, 10
+ ld a, PAL_BATTLE_BG_ENEMY_HP
+ call FillBoxCGB
+ hlcoord 10, 7, AttrMap
+ lb bc, 5, 10
+ ld a, PAL_BATTLE_BG_PLAYER_HP
+ call FillBoxCGB
+ hlcoord 10, 11, AttrMap
+ lb bc, 1, 9
+ ld a, PAL_BATTLE_BG_EXP
+ call FillBoxCGB
+ hlcoord 0, 12, AttrMap
+ ld bc, 6 * SCREEN_WIDTH
+ ld a, PAL_BATTLE_BG_TEXT
+ call ByteFill
+ ld hl, Palettes_979c
+ ld de, UnknOBPals palette PAL_BATTLE_OB_GRAY
+ ld bc, 6 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ call ApplyAttrMap
+ ret
+; 8e85
+
+
+InitPartyMenuBGPal7: ; 8e85
+ callba Function100dc0
+Mobile_InitPartyMenuBGPal7: ; 8e8b
+ ld hl, Palette_b311
+ jr nc, .not_mobile
+ ld hl, Palette_b309
+.not_mobile
+ ld de, UnknBGPals palette 7
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 8e9f
+
+InitPartyMenuBGPal0: ; 8e9f
+ callba Function100dc0
+ ld hl, Palette_b311
+ jr nc, .not_mobile
+ ld hl, Palette_b309
+.not_mobile
+ ld de, UnknBGPals palette 0
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 8eb9
+
+_CGB_PokegearPals: ; 8eb9
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .male
+ ld hl, FemalePokegearPals
+ jr .got_pals
+
+.male
+ ld hl, MalePokegearPals
+.got_pals
+ ld de, UnknBGPals
+ ld bc, 6 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8edb
+
+_CGB_StatsScreenHPPals: ; 8edb
+ ld de, UnknBGPals
+ ld a, [wCurHPPal]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black ; hp palette
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black ; mon palette
+ ld hl, ExpBarPalette
+ call LoadPalette_White_Col1_Col2_Black ; exp palette
+ ld hl, StatsScreenPagePals
+ ld de, UnknBGPals palette 3
+ ld bc, 3 palettes ; pink, green, and blue page palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+
+ hlcoord 0, 0, AttrMap
+ lb bc, 8, SCREEN_WIDTH
+ ld a, $1 ; mon palette
+ call FillBoxCGB
+
+ hlcoord 10, 16, AttrMap
+ ld bc, 10
+ ld a, $2 ; exp palette
+ call ByteFill
+
+ hlcoord 13, 5, AttrMap
+ lb bc, 2, 2
+ ld a, $3 ; pink page palette
+ call FillBoxCGB
+
+ hlcoord 15, 5, AttrMap
+ lb bc, 2, 2
+ ld a, $4 ; green page palette
+ call FillBoxCGB
+
+ hlcoord 17, 5, AttrMap
+ lb bc, 2, 2
+ ld a, $5 ; blue page palette
+ call FillBoxCGB
+
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8f52
+
+StatsScreenPagePals: ; 8f52
+; pink
+ RGB 31, 31, 31
+ RGB 31, 19, 31
+ RGB 31, 15, 31
+ RGB 00, 00, 00
+; green
+ RGB 31, 31, 31
+ RGB 21, 31, 14
+ RGB 17, 31, 00
+ RGB 00, 00, 00
+; blue
+ RGB 31, 31, 31
+ RGB 17, 31, 31
+ RGB 17, 31, 31
+ RGB 00, 00, 00
+; 8f6a
+
+StatsScreenPals: ; 8f6a
+; pink
+ RGB 31, 19, 31
+; green
+ RGB 21, 31, 14
+; blue
+ RGB 17, 31, 31
+; 8f70
+
+_CGB_Pokedex: ; 8f70
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE ; dex interface palette
+ ld a, [CurPartySpecies]
+ cp $ff
+ jr nz, .is_pokemon
+ ld hl, .PokedexQuestionMarkPalette
+ call LoadHLPaletteIntoDE ; green question mark palette
+ jr .got_palette
+
+.is_pokemon
+ call GetMonPalettePointer_
+ call LoadPalette_White_Col1_Col2_Black ; mon palette
+.got_palette
+ call WipeAttrMap
+ hlcoord 1, 1, AttrMap
+ lb bc, 7, 7
+ ld a, $1 ; green question mark palette
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ ld hl, .PokedexCursorPalette
+ ld de, UnknOBPals palette 7 ; green cursor palette
+ ld bc, 1 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 8fba
+
+.PokedexQuestionMarkPalette: ; 8fba
+ RGB 11, 23, 00
+ RGB 07, 17, 00
+ RGB 06, 16, 03
+ RGB 05, 12, 01
+
+.PokedexCursorPalette: ; 8fc2
+ RGB 00, 00, 00
+ RGB 11, 23, 00
+ RGB 07, 17, 00
+ RGB 00, 00, 00
+; 8fca
+
+_CGB_BillsPC: ; 8fca
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [CurPartySpecies]
+ cp $ff
+ jr nz, .GetMonPalette
+ ld hl, .BillsPCOrangePalette
+ call LoadHLPaletteIntoDE
+ jr .Resume
+
+.GetMonPalette:
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+.Resume:
+ call WipeAttrMap
+ hlcoord 1, 4, AttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9009
+
+.Function9009: ; 9009
+ ld hl, .BillsPCOrangePalette
+ call LoadHLPaletteIntoDE
+ jr .asm_901a
+
+.unused
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+.asm_901a
+ call WipeAttrMap
+ hlcoord 1, 1, AttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9036
+
+.BillsPCOrangePalette: ; 9036
+ RGB 31, 15, 00
+ RGB 23, 12, 00
+ RGB 15, 07, 00
+ RGB 00, 00, 00
+; 903e
+
+_CGB_PokedexUnownMode: ; 903e
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [CurPartySpecies]
+ call GetMonPalettePointer_
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ hlcoord 7, 5, AttrMap
+ lb bc, 7, 7
+ ld a, $1
+ call FillBoxCGB
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 906e
+
+_CGB_SlotMachine: ; 906e
+ ld hl, SlotMachinePals
+ ld de, UnknBGPals
+ ld bc, 16 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+ hlcoord 0, 2, AttrMap
+ lb bc, 10, 3
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 17, 2, AttrMap
+ lb bc, 10, 3
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 0, 4, AttrMap
+ lb bc, 6, 3
+ ld a, $3
+ call FillBoxCGB
+ hlcoord 17, 4, AttrMap
+ lb bc, 6, 3
+ ld a, $3
+ call FillBoxCGB
+ hlcoord 0, 6, AttrMap
+ lb bc, 2, 3
+ ld a, $4
+ call FillBoxCGB
+ hlcoord 17, 6, AttrMap
+ lb bc, 2, 3
+ ld a, $4
+ call FillBoxCGB
+ hlcoord 4, 2, AttrMap
+ lb bc, 2, 12
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 3, 2, AttrMap
+ lb bc, 10, 1
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 16, 2, AttrMap
+ lb bc, 10, 1
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 0, 12, AttrMap
+ ld bc, $78
+ ld a, $7
+ call ByteFill
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 90f8
+
+_CGB06: ; 90f8
+ ld hl, PalPacket_9ca6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ ld de, UnknOBPals
+ ld a, $3c
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ hlcoord 0, 6, AttrMap
+ lb bc, 12, SCREEN_WIDTH
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9122
+
+_CGB07: ; 9122
+ ld b, 0
+ ld hl, .Jumptable
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 912d
+
+.Jumptable: ; 912d
+ dw .Function9133
+ dw .Function9166
+ dw .Function9180
+; 9133
+
+.Function9133: ; 9133
+ ld hl, .Palette_914e
+ ld de, UnknBGPals
+ call LoadHLPaletteIntoDE
+ ld hl, .Palette_9156
+ ld de, UnknOBPals
+ ld bc, 2 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+ ret
+; 914e
+
+.Palette_914e: ; 914e
+ RGB 19, 31, 19
+ RGB 18, 23, 31
+ RGB 11, 21, 28
+ RGB 04, 16, 24
+
+.Palette_9156: ; 9156
+ RGB 29, 29, 29
+ RGB 20, 19, 20
+ RGB 19, 06, 04
+ RGB 03, 04, 06
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 03, 04, 06
+; 9166
+
+.Function9166: ; 9166
+ ld de, UnknBGPals
+ ld a, $38
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+
+ ld de, UnknOBPals
+ ld a, $39
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ ret
+; 9180
+
+.Function9180: ; 9180
+ ld hl, PalPacket_9c36 + 1
+ call CopyFourPalettes
+ ld de, UnknOBPals
+ ld a, $3a
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ ret
+; 9195
+
+_CGB11: ; 9195
+ ld hl, Palettes_b789
+ ld de, UnknBGPals
+ ld bc, 5 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call ApplyPals
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 91ad
+
+_CGB_Diploma: ; 91ad
+ ld hl, DiplomaPalettes
+ ld de, UnknBGPals
+ ld bc, 16 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+
+ ld hl, PalPacket_9cb6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 91c8
+
+_CGB_MapPals: ; 91c8
+ call LoadMapPals
+ ld a, SCGB_MAPPALS
+ ld [SGBPredef], a
+ ret
+; 91d1
+
+_CGB_PartyMenu: ; 91d1
+ ld hl, PalPacket_9c56 + 1
+ call CopyFourPalettes
+ call InitPartyMenuBGPal0
+ call InitPartyMenuBGPal7
+ call InitPartyMenuOBPals
+ call ApplyAttrMap
+ ret
+; 91e4
+
+_CGB_Evolution: ; 91e4
+ ld de, UnknBGPals
+ ld a, c
+ and a
+ jr z, .pokemon
+ ld a, $1a
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ jr .got_palette
+
+.pokemon
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld a, [PlayerHPPal]
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld hl, Palettes_979c
+ ld de, UnknOBPals palette 2
+ ld bc, 6 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+
+.got_palette
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9228
+
+_CGB0c: ; 9228
+ ld hl, Palettes_b6f1
+ ld de, UnknBGPals
+ ld bc, 5 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ld hl, Palettes_b719
+ ld de, UnknOBPals
+ ld bc, 2 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ ld a, SCGB_DIPLOMA
+ ld [SGBPredef], a
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9251
+
+_CGB0d: ; 9251
+ ld hl, PalPacket_9cb6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 925e
+
+_CGB_UnownPuzzle: ; 925e
+ ld hl, PalPacket_9bc6 + 1
+ call CopyFourPalettes
+ ld de, UnknOBPals
+ ld a, $4c
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(UnknOBPals)
+ ld [rSVBK], a
+ ld hl, UnknOBPals
+ ld a, $1f
+ ld [hli], a
+ ld a, $0
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 9289
+
+_CGB_TrainerCard: ; 9289
+ ld de, UnknBGPals
+ xor a ; CHRIS
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, FALKNER ; KRIS
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, BUGSY
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, WHITNEY
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, MORTY
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, CHUCK
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, JASMINE
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, PRYCE
+ call GetTrainerPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ ld a, $24
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+
+ ; fill screen with opposite-gender palette for the card border
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, [PlayerGender]
+ and a
+ ld a, $1 ; kris
+ jr z, .got_gender
+ ld a, $0 ; chris
+.got_gender
+ call ByteFill
+ ; fill trainer sprite area with same-gender palette
+ hlcoord 14, 1, AttrMap
+ lb bc, 7, 5
+ ld a, [PlayerGender]
+ and a
+ ld a, $0 ; chris
+ jr z, .got_gender2
+ ld a, $1 ; kris
+.got_gender2
+ call FillBoxCGB
+ ; top-right corner still uses the border's palette
+ hlcoord 18, 1, AttrMap
+ ld [hl], $1
+ hlcoord 2, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $1 ; falkner
+ call FillBoxCGB
+ hlcoord 6, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $2 ; bugsy
+ call FillBoxCGB
+ hlcoord 10, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $3 ; whitney
+ call FillBoxCGB
+ hlcoord 14, 11, AttrMap
+ lb bc, 2, 4
+ ld a, $4 ; morty
+ call FillBoxCGB
+ hlcoord 2, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $5 ; chuck
+ call FillBoxCGB
+ hlcoord 6, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $6 ; jasmine
+ call FillBoxCGB
+ hlcoord 10, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $7 ; pryce
+ call FillBoxCGB
+ ; clair uses kris's palette
+ ld a, [PlayerGender]
+ and a
+ push af
+ jr z, .got_gender3
+ hlcoord 14, 14, AttrMap
+ lb bc, 2, 4
+ ld a, $1
+ call FillBoxCGB
+.got_gender3
+ pop af
+ ld c, $0
+ jr nz, .got_gender4
+ inc c
+.got_gender4
+ ld a, c
+ hlcoord 18, 1, AttrMap
+ ld [hl], a
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9373
+
+_CGB_MoveList: ; 9373
+ ld de, UnknBGPals
+ ld a, $10
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld bc, HPBarPals
+ add hl, bc
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ hlcoord 11, 1, AttrMap
+ lb bc, 2, 9
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93a6
+
+_CGB0f: ; 93a6
+ ld hl, PalPacket_9c46 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93ba
+
+_CGB_PokedexSearchOption: ; 93ba
+ ld de, UnknBGPals
+ ld a, $1d
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 93d3
+
+_CGB_PackPals: ; 93d3
+; pack pals
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jr z, .tutorial_male
+
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .tutorial_male
+
+ ld hl, .KrisPackPals
+ jr .got_gender
+
+.tutorial_male
+ ld hl, .ChrisPackPals
+
+.got_gender
+ ld de, UnknBGPals
+ ld bc, 8 palettes ; 6 palettes?
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call WipeAttrMap
+ hlcoord 0, 0, AttrMap
+ lb bc, 1, 10
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 10, 0, AttrMap
+ lb bc, 1, 10
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 7, 2, AttrMap
+ lb bc, 9, 1
+ ld a, $3
+ call FillBoxCGB
+ hlcoord 0, 7, AttrMap
+ lb bc, 3, 5
+ ld a, $4
+ call FillBoxCGB
+ hlcoord 0, 3, AttrMap
+ lb bc, 3, 5
+ ld a, $5
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 9439
+
+.ChrisPackPals: ; 9439
+INCLUDE "data/palettes/pack.pal"
+; 9469
+
+.KrisPackPals: ; 9469
+INCLUDE "data/palettes/pack_f.pal"
+; 9499
+
+_CGB_Pokepic: ; 9499
+ call _CGB_MapPals
+ ld de, SCREEN_WIDTH
+ hlcoord 0, 0, AttrMap
+ ld a, [wMenuBorderTopCoord]
+.loop
+ and a
+ jr z, .found_top
+ dec a
+ add hl, de
+ jr .loop
+
+.found_top
+ ld a, [wMenuBorderLeftCoord]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [wMenuBorderTopCoord]
+ ld b, a
+ ld a, [wMenuBorderBottomCoord]
+ inc a
+ sub b
+ ld b, a
+ ld a, [wMenuBorderLeftCoord]
+ ld c, a
+ ld a, [wMenuBorderRightCoord]
+ sub c
+ inc a
+ ld c, a
+ ld a, $0
+ call FillBoxCGB
+ call ApplyAttrMap
+ ret
+; 94d0
+
+_CGB13: ; 94d0
+ ld hl, PalPacket_9ba6 + 1
+ call CopyFourPalettes
+ call WipeAttrMap
+ hlcoord 0, 4, AttrMap
+ lb bc, 10, SCREEN_WIDTH
+ ld a, $2
+ call FillBoxCGB
+ hlcoord 0, 6, AttrMap
+ lb bc, 6, SCREEN_WIDTH
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ call ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 94fa
+
+_CGB_GamefreakLogo: ; 94fa
+ ld de, UnknBGPals
+ ld a, $4e
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ ld hl, .Palette
+ ld de, UnknOBPals
+ call LoadHLPaletteIntoDE
+ ld hl, .Palette
+ ld de, UnknOBPals palette 1
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ret
+; 9521
+
+.Palette: ; 9521
+ RGB 31, 31, 31
+ RGB 13, 11, 00
+ RGB 23, 12, 28
+ RGB 00, 00, 00
+; 9529
+
+_CGB_PlayerOrMonFrontpicPals: ; 9529
+ ld de, UnknBGPals
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ret
+; 9542
+
+_CGB1e: ; 9542
+ ld de, UnknBGPals
+ ld a, [CurPartySpecies]
+ call GetMonPalettePointer_
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ call ApplyAttrMap
+ ret
+; 9555
+
+_CGB_TradeTube: ; 9555
+ ld hl, PalPacket_9cc6 + 1
+ call CopyFourPalettes
+ ld hl, PartyMenuOBPals
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ ld de, UnknOBPals palette 7
+ ld a, $1c
+ call GetPredefPal
+ call LoadHLPaletteIntoDE
+ call WipeAttrMap
+ ret
+; 9578
+
+_CGB_TrainerOrMonFrontpicPals: ; 9578
+ ld de, UnknBGPals
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetFrontpicPalettePointer
+ call LoadPalette_White_Col1_Col2_Black
+ call WipeAttrMap
+ call ApplyAttrMap
+ call ApplyPals
+ ret
+; 9591
+
+_CGB_MysteryGift: ; 9591
+ ld hl, .Palettes
+ ld de, UnknBGPals
+ ld bc, 2 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call ApplyPals
+ call WipeAttrMap
+ hlcoord 3, 7, AttrMap
+ lb bc, 8, 14
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 1, 5, AttrMap
+ lb bc, 1, 18
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 1, 16, AttrMap
+ lb bc, 1, 18
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 0, 0, AttrMap
+ lb bc, 17, 2
+ ld a, $1
+ call FillBoxCGB
+ hlcoord 18, 5, AttrMap
+ lb bc, 12, 1
+ ld a, $1
+ call FillBoxCGB
+ call ApplyAttrMap
+ ret
+; 95e0
+
+.Palettes: ; 95e0
+ RGB 31, 31, 31
+ RGB 16, 31, 14
+ RGB 05, 14, 21
+ RGB 05, 13, 10
+
+ RGB 31, 31, 31
+ RGB 11, 21, 25
+ RGB 05, 14, 21
+ RGB 00, 03, 19
+; 95f0
diff --git a/engine/check_battle_scene.asm b/engine/check_battle_scene.asm
new file mode 100644
index 000000000..b63f00907
--- /dev/null
+++ b/engine/check_battle_scene.asm
@@ -0,0 +1,47 @@
+CheckBattleScene: ; 4ea44
+; Return carry if battle scene is turned off.
+
+ ld a, 0
+ ld hl, wLinkMode
+ call GetFarWRAMByte
+ cp LINK_MOBILE
+ jr z, .mobile
+
+ ld a, [Options]
+ bit BATTLE_SCENE, a
+ jr nz, .off
+
+ and a
+ ret
+
+.mobile
+ ld a, [wcd2f]
+ and a
+ jr nz, .from_wram
+
+ ld a, $4
+ call GetSRAMBank
+ ld a, [$a60c]
+ ld c, a
+ call CloseSRAM
+
+ ld a, c
+ bit 0, c
+ jr z, .off
+
+ and a
+ ret
+
+.from_wram
+ ld a, $5
+ ld hl, w5_dc00
+ call GetFarWRAMByte
+ bit 0, a
+ jr z, .off
+
+ and a
+ ret
+
+.off
+ scf
+ ret
diff --git a/engine/check_nick_errors.asm b/engine/check_nick_errors.asm
new file mode 100644
index 000000000..1cedca420
--- /dev/null
+++ b/engine/check_nick_errors.asm
@@ -0,0 +1,74 @@
+CheckNickErrors:: ; 669f
+; error-check monster nick before use
+; must be a peace offering to gamesharkers
+
+; input: de = nick location
+
+ push bc
+ push de
+ ld b, PKMN_NAME_LENGTH
+
+.checkchar
+; end of nick?
+ ld a, [de]
+ cp "@" ; terminator
+ jr z, .end
+
+; check if this char is a text command
+ ld hl, .textcommands
+ dec hl
+.loop
+; next entry
+ inc hl
+; reached end of commands table?
+ ld a, [hl]
+ cp -1
+ jr z, .done
+
+; is the current char between this value (inclusive)...
+ ld a, [de]
+ cp [hl]
+ inc hl
+ jr c, .loop
+; ...and this one?
+ cp [hl]
+ jr nc, .loop
+
+; replace it with a "?"
+ ld a, "?"
+ ld [de], a
+ jr .loop
+
+.done
+; next char
+ inc de
+; reached end of nick without finding a terminator?
+ dec b
+ jr nz, .checkchar
+
+; change nick to "?@"
+ pop de
+ push de
+ ld a, "?"
+ ld [de], a
+ inc de
+ ld a, "@"
+ ld [de], a
+.end
+; if the nick has any errors at this point it's out of our hands
+ pop de
+ pop bc
+ ret
+
+.textcommands ; 66cf
+; table defining which characters are actually text commands
+; format:
+ ; ≥ <
+ db "<START>", TX_BOX + 1
+ db "<PLAY_G>", $18 + 1
+ db $1d, "%" + 1
+ db $35, "<GREEN>" + 1
+ db "<ENEMY>", "<ENEMY>" + 1
+ db "<MOM>", "<TM>" + 1
+ db "<ROCKET>", "┘" + 1
+ db -1 ; end
diff --git a/engine/check_time.asm b/engine/check_time.asm
new file mode 100644
index 000000000..615b51d29
--- /dev/null
+++ b/engine/check_time.asm
@@ -0,0 +1,19 @@
+CheckTime:: ; c000
+ ld a, [TimeOfDay]
+ ld hl, TimeOfDayTable
+ ld de, 2
+ call IsInArray
+ inc hl
+ ld c, [hl]
+ ret c
+
+ xor a
+ ld c, a
+ ret
+
+TimeOfDayTable: ; c012
+ db MORN_F, MORN
+ db DAY_F, DAY
+ db NITE_F, NITE
+ db NITE_F, NITE
+ db -1
diff --git a/engine/color.asm b/engine/color.asm
index add8c24ac..12f22d4c1 100644
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -1,5 +1,4 @@
-PALPACKET_LENGTH EQU $10
-INCLUDE "predef/sgb.asm"
+INCLUDE "engine/sgb_layouts.asm"
SHINY_ATK_BIT EQU 5
SHINY_DEF_VAL EQU 10
@@ -355,7 +354,7 @@ ApplyHPBarPals:
ld h, $0
add hl, hl
add hl, hl
- ld bc, Palettes_a8be
+ ld bc, HPBarPals
add hl, bc
ld bc, 4
ld a, $5
@@ -450,57 +449,9 @@ LoadMailPalettes:
ret
.MailPals:
- RGB 20, 31, 11
- RGB 31, 19, 00
- RGB 31, 10, 09
- RGB 00, 00, 00
-
- RGB 15, 20, 31
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
+INCLUDE "data/palettes/mail.pal"
- RGB 24, 17, 31
- RGB 30, 26, 00
- RGB 08, 11, 31
- RGB 00, 00, 00
-
- RGB 31, 25, 17
- RGB 31, 18, 04
- RGB 28, 12, 05
- RGB 00, 00, 00
-
- RGB 19, 26, 31
- RGB 31, 05, 08
- RGB 31, 09, 31
- RGB 00, 00, 00
-
- RGB 31, 19, 28
- RGB 31, 21, 00
- RGB 12, 22, 00
- RGB 00, 00, 00
-
- RGB 19, 17, 23
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 07, 26, 31
- RGB 26, 26, 27
- RGB 31, 11, 11
- RGB 00, 00, 00
-
- RGB 21, 31, 21
- RGB 30, 26, 00
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 07, 26, 31
- RGB 31, 31, 00
- RGB 00, 21, 00
- RGB 00, 00, 00
-
-INCLUDE "predef/cgb.asm"
+INCLUDE "engine/cgb_layouts.asm"
Function95f0:
; XXX
@@ -544,7 +495,7 @@ GetPredefPal:
add hl, hl
add hl, hl
add hl, hl
- ld bc, Palettes_9df6
+ ld bc, PredefPals
add hl, bc
ret
@@ -731,7 +682,7 @@ CGB_ApplyPartyMenuHPPals: ; 96f3 CGB layout $fc
ret
InitPartyMenuOBPals:
- ld hl, Palettes_b681
+ ld hl, PartyMenuOBPals
ld de, UnknOBPals
ld bc, 2 palettes
ld a, $5
@@ -805,42 +756,14 @@ Function9779: mobile
dec c
jr nz, .loop
ld hl, Palettes_979c
- ld de, UnknOBPals + 8 * 2
+ ld de, UnknOBPals palette 2
ld bc, 2 palettes
ld a, $5
call FarCopyWRAM
ret
Palettes_979c:
- RGB 31, 31, 31
- RGB 25, 25, 25
- RGB 13, 13, 13
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 18, 07
- RGB 20, 15, 03
- RGB 00, 00, 00
+INCLUDE "data/palettes/979c.pal"
Function97cc:
; XXX
@@ -1142,7 +1065,7 @@ SGBBorder_PushBGPals:
call DisableLCD
ld a, %11100100
ld [rBGP], a
- ld hl, Palettes_9df6
+ ld hl, PredefPals
ld de, VTiles1
ld bc, $1000
call CopyData
@@ -1351,532 +1274,35 @@ PalPacket_9dc6: db $79, $26, $08, $00, $0b, $39, $cd, $48, $0c, $d0, $34, $a5, $
PalPacket_9dd6: db $79, $1b, $08, $00, $0b, $ea, $ea, $ea, $ea, $ea, $a9, $01, $cd, $4f, $0c, $d0
PalPacket_9de6: db $79, $10, $08, $00, $0b, $4c, $20, $08, $ea, $ea, $ea, $ea, $ea, $60, $ea, $ea
-Palettes_9df6:
- RGB 31, 31, 31
- RGB 22, 25, 19
- RGB 16, 21, 30
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 27, 28, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 28, 19
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 24, 24
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 23, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 21, 27
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 24, 16
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 25, 30, 26
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 25, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 19
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 26, 19
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 27, 28, 27
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 30, 23
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 24, 29
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 23, 29
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 25, 23, 20
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 26, 18
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 21, 18
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 25, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 22, 21, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 22, 25, 21
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 21, 22
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 20
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 26, 26
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 14, 09
- RGB 15, 20, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 28, 22
- RGB 15, 20, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 07, 07, 07
- RGB 02, 03, 03
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 17
- RGB 16, 14, 19
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 18, 20, 27
- RGB 11, 15, 23
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 10
- RGB 26, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 25, 29
- RGB 14, 19, 25
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 27, 22, 24
- RGB 21, 15, 23
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 28, 20, 15
- RGB 21, 14, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 20, 26, 16
- RGB 09, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 28, 15, 21
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 28, 14
- RGB 26, 20, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 21, 22
- RGB 15, 15, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 19, 13
- RGB 14, 12, 17
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 18, 21
- RGB 10, 12, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 22, 15, 16
- RGB 17, 02, 05
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 20, 20
- RGB 05, 16, 16
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 15, 19
- RGB 14, 04, 12
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 20, 17, 18
- RGB 18, 13, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 21, 16
- RGB 12, 12, 10
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 25, 29
- RGB 30, 22, 24
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 23, 16
- RGB 29, 14, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 18, 18, 18
- RGB 10, 10, 10
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 15
- RGB 00, 23, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 15
- RGB 31, 23, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 15
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 26, 19
- RGB 27, 20, 14
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 20, 10
- RGB 21, 00, 04
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 20, 10
- RGB 21, 00, 04
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 26, 16
- RGB 16, 12, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 28, 26
- RGB 12, 22, 26
- RGB 03, 16, 14
-
- RGB 31, 31, 31
- RGB 15, 28, 26
- RGB 23, 24, 24
- RGB 00, 00, 00
-
- RGB 31, 31, 24
- RGB 07, 27, 19
- RGB 26, 20, 10
- RGB 19, 12, 08
-
- RGB 31, 31, 31
- RGB 31, 28, 14
- RGB 31, 13, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 18, 21
- RGB 10, 12, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 21, 16
- RGB 12, 12, 10
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 00
- RGB 07, 11, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 21, 22
- RGB 26, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 27, 04
- RGB 24, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 13, 25
- RGB 24, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 19, 29
- RGB 24, 20, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 21, 25, 29
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 20, 26, 16
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 31, 28, 14
- RGB 18, 18, 18
- RGB 16, 10, 07
-
- RGB 31, 31, 31
- RGB 18, 18, 18
- RGB 26, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 28, 15, 21
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 26, 20, 00
- RGB 16, 19, 29
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 02, 30
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 13, 04
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 28, 04, 02
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 18, 23, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 24, 20, 11
- RGB 18, 13, 11
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 25, 30, 00
- RGB 25, 30, 00
-
- RGB 00, 00, 00
- RGB 08, 11, 11
- RGB 21, 21, 21
- RGB 31, 31, 31
+PredefPals:
+INCLUDE "data/palettes/predef.pal"
SGBBorderMap:
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
- db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $54, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
- db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
- db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $08, $14, $09, $14, $0a, $14, $0b, $14, $0c, $14, $0d, $14, $07, $14, $07, $14, $18, $14, $09, $14, $1a, $14, $1b, $14, $0d, $14, $0c, $14, $1c, $14, $29, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
- db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $36, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $38, $10, $27, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
- db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $1f, $10, $37, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
- db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $1f, $10, $37, $10, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
- db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $1f, $10, $37, $10, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
- db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $1f, $10, $37, $10, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
- db $02, $54, $01, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14
- db $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14
- db $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14
- db $32, $54, $31, $54, $30, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $30, $14, $31, $14, $32, $14
- db $06, $54, $05, $54, $04, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $04, $14, $05, $14, $06, $14
- db $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14
- db $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14
- db $34, $54, $33, $54, $07, $54, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $33, $14, $34, $14
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $1f, $10, $37, $10, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
- db $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $1f, $10, $37, $10, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54
- db $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $1f, $10, $37, $10, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54
- db $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $1f, $10, $37, $10, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54
- db $31, $14, $32, $14, $07, $14, $07, $14, $32, $54, $1f, $10, $37, $10, $32, $14, $07, $54, $07, $54, $32, $54, $31, $54
- db $05, $14, $06, $14, $07, $14, $07, $54, $06, $54, $2e, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2f, $10, $2d, $10, $06, $14, $07, $14, $07, $54, $06, $54, $05, $54
- db $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54, $14, $54, $07, $14, $07, $14, $39, $14, $0e, $14, $09, $14, $0f, $14, $28, $14, $07, $14, $19, $14, $0c, $14, $1c, $14, $29, $14, $2a, $14, $2b, $14, $2c, $14, $39, $14, $07, $14, $07, $14, $14, $14, $15, $14, $16, $14, $17, $14, $17, $54, $16, $54, $15, $54
- db $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54, $24, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $01, $14, $02, $14, $03, $14, $03, $54, $02, $54, $01, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $25, $14, $26, $14, $07, $14, $07, $54, $26, $54, $25, $54
- db $33, $14, $34, $14, $35, $14, $35, $54, $34, $54, $24, $54, $07, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $10, $14, $11, $14, $12, $14, $13, $14, $13, $54, $12, $54, $11, $54, $10, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $24, $14, $34, $14, $35, $14, $35, $54, $34, $54, $33, $54
- db $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $20, $14, $21, $14, $22, $14, $23, $14, $23, $54, $22, $54, $21, $54, $20, $54, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14, $07, $14
+INCLUDE "data/sgb_border_map.asm"
SGBBorderPalettes:
- RGB 24, 06, 06
- RGB 24, 24, 26
- RGB 14, 15, 20
- RGB 04, 07, 10
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 18, 24, 18
- RGB 31, 26, 15
- RGB 26, 19, 10
- RGB 12, 07, 05
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 18, 06, 31
- RGB 31, 31, 29
- RGB 31, 12, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 12, 31, 06
- RGB 22, 26, 30
- RGB 16, 17, 21
- RGB 00, 03, 00
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
-
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
- RGB 31, 31, 25
+INCLUDE "data/palettes/sgb_border.pal"
SGBBorder:
INCBIN "gfx/sgb/sgb_border.2bpp"
-Palettes_a8be:
+HPBarPals:
+; green
RGB 30, 26, 15
RGB 00, 23, 00
-
+; yellow
RGB 30, 26, 15
RGB 31, 21, 00
-
+; red
RGB 30, 26, 15
RGB 31, 00, 00
-Palettes_a8ca:
+ExpBarPalette:
+; blue
RGB 30, 26, 15
RGB 04, 17, 31
INCLUDE "gfx/pics/palette_pointers.asm"
-
INCLUDE "gfx/trainer_palettes.asm"
LoadMapPals:
@@ -2027,324 +1453,34 @@ Palette_b311: ; b311 not mobile
RGB 00, 00, 00
TilesetBGPalette:
-INCLUDE "tilesets/bg.pal"
+INCLUDE "data/palettes/tileset_bg.pal"
MapObjectPals::
-INCLUDE "tilesets/ob.pal"
+INCLUDE "data/palettes/map_objects.pal"
RoofPals:
-INCLUDE "tilesets/roof.pal"
+INCLUDE "data/palettes/roofs.pal"
DiplomaPalettes:
- RGB 27, 31, 27
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 07, 06
- RGB 20, 02, 03
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 10, 31, 09
- RGB 04, 14, 01
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 22, 16, 08
- RGB 13, 07, 01
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 15, 31, 31
- RGB 05, 17, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 11, 11, 19
- RGB 07, 07, 12
- RGB 00, 00, 00
-
-Palettes_b681:
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 10, 14, 20
- RGB 00, 00, 00
+INCLUDE "data/palettes/diploma.pal"
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 27, 31, 27
- RGB 31, 19, 10
- RGB 31, 07, 04
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 08, 12, 31
- RGB 01, 04, 31
- RGB 07, 07, 07
-
- RGB 31, 31, 31
- RGB 24, 18, 07
- RGB 20, 15, 03
- RGB 07, 07, 07
+PartyMenuOBPals:
+INCLUDE "data/palettes/party_menu.pal"
Palettes_b6f1:
- RGB 31, 31, 31
- RGB 18, 23, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 22, 00, 31
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 25, 22, 00
- RGB 15, 20, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 23, 26, 31
- RGB 18, 23, 31
- RGB 00, 00, 00
+INCLUDE "data/palettes/b6f1.pal"
Palettes_b719:
- RGB 31, 31, 31
- RGB 07, 06, 03
- RGB 07, 06, 03
- RGB 07, 06, 03
-
- RGB 31, 31, 31
- RGB 31, 31, 00
- RGB 26, 22, 00
- RGB 00, 00, 00
+INCLUDE "data/palettes/b719.pal"
MalePokegearPals:
- RGB 28, 31, 20
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 31, 15, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 31, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 31, 00, 00
+INCLUDE "data/palettes/pokegear.pal"
FemalePokegearPals:
- RGB 28, 31, 20
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 10, 18, 31
- RGB 13, 06, 31
- RGB 00, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 00, 00, 31
- RGB 31, 00, 00
-
- RGB 28, 31, 20
- RGB 00, 31, 00
- RGB 15, 07, 00
- RGB 31, 00, 00
+INCLUDE "data/palettes/pokegear_f.pal"
Palettes_b789:
- RGB 31, 31, 31
- RGB 30, 22, 24
- RGB 18, 18, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 10, 11, 31
- RGB 18, 18, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 31, 11
- RGB 18, 18, 18
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 29, 26, 05
- RGB 18, 18, 18
- RGB 00, 00, 00
+INCLUDE "data/palettes/b789.pal"
SlotMachinePals:
- RGB 31, 31, 31
- RGB 24, 25, 28
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 10, 06
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 31, 00
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 15, 31
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 21, 31
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 11
- RGB 31, 31, 06
- RGB 24, 24, 09
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 19, 29
- RGB 25, 22, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 21, 21, 21
- RGB 13, 13, 13
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 30, 10, 06
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 05, 14, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 12, 25, 01
- RGB 30, 10, 06
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 06
- RGB 20, 15, 03
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 06
- RGB 15, 21, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 06
- RGB 20, 15, 03
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 24, 21
- RGB 31, 13, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
-
+INCLUDE "data/palettes/slot_machine.pal"
diff --git a/engine/consume_held_item.asm b/engine/consume_held_item.asm
new file mode 100644
index 000000000..52d7894cd
--- /dev/null
+++ b/engine/consume_held_item.asm
@@ -0,0 +1,80 @@
+ConsumeHeldItem: ; 27192
+ push hl
+ push de
+ push bc
+ ld a, [hBattleTurn]
+ and a
+ ld hl, OTPartyMon1Item
+ ld de, EnemyMonItem
+ ld a, [CurOTMon]
+ jr z, .theirturn
+ ld hl, PartyMon1Item
+ ld de, BattleMonItem
+ ld a, [CurBattleMon]
+
+.theirturn
+ push hl
+ push af
+ ld a, [de]
+ ld b, a
+ callba GetItemHeldEffect
+ ld hl, .ConsumableEffects
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .ok
+ inc a
+ jr nz, .loop
+ pop af
+ pop hl
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.ok
+ xor a
+ ld [de], a
+ pop af
+ pop hl
+ call GetPartyLocation
+ ld a, [hBattleTurn]
+ and a
+ jr nz, .ourturn
+ ld a, [wBattleMode]
+ dec a
+ jr z, .done
+
+.ourturn
+ ld [hl], $0
+
+.done
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.ConsumableEffects: ; 271de
+; Consumable items?
+ db HELD_BERRY
+ db HELD_2
+ db HELD_5
+ db HELD_HEAL_POISON
+ db HELD_HEAL_FREEZE
+ db HELD_HEAL_BURN
+ db HELD_HEAL_SLEEP
+ db HELD_HEAL_PARALYZE
+ db HELD_HEAL_STATUS
+ db HELD_30
+ db HELD_ATTACK_UP
+ db HELD_DEFENSE_UP
+ db HELD_SPEED_UP
+ db HELD_SP_ATTACK_UP
+ db HELD_SP_DEFENSE_UP
+ db HELD_ACCURACY_UP
+ db HELD_EVASION_UP
+ db HELD_38
+ db HELD_71
+ db HELD_ESCAPE
+ db HELD_CRITICAL_UP
+ db -1
diff --git a/engine/credits.asm b/engine/credits.asm
index f8cce7a15..0fe7685a6 100644
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -1,121 +1,7 @@
INCLUDE "includes.asm"
-SECTION "Credits", ROMX
-
- const_def
- const SATOSHI_TAJIRI
- const JUNICHI_MASUDA
- const TETSUYA_WATANABE
- const SHIGEKI_MORIMOTO
- const SOUSUKE_TAMADA
- const TAKENORI_OOTA
- const KEN_SUGIMORI
- const MOTOFUMI_FUJIWARA
- const ATSUKO_NISHIDA
- const MUNEO_SAITO
- const SATOSHI_OOTA
- const RENA_YOSHIKAWA
- const JUN_OKUTANI
- const HIRONOBU_YOSHIDA
- const ASUKA_IWASHITA
- const GO_ICHINOSE
- const MORIKAZU_AOKI
- const KOHJI_NISHINO
- const KENJI_MATSUSHIMA
- const TOSHINOBU_MATSUMIYA
- const SATORU_IWATA
- const NOBUHIRO_SEYA
- const KAZUHITO_SEKINE
- const TETSUJI_OOTA
- const NCL_SUPER_MARIO_CLUB
- const SARUGAKUCHO
- const AKITO_MORI
- const TAKAHIRO_HARADA
- const TOHRU_HASHIMOTO
- const NOBORU_MATSUMOTO
- const TAKEHIRO_IZUSHI
- const TAKASHI_KAWAGUCHI
- const TSUNEKAZU_ISHIHARA
- const HIROSHI_YAMAUCHI
- const KENJI_SAIKI
- const ATSUSHI_TADA
- const NAOKO_KAWAKAMI
- const HIROYUKI_ZINNAI
- const KUNIMI_KAWAMURA
- const HISASHI_SOGABE
- const KEITA_KAGAYA
- const YOSHINORI_MATSUDA
- const HITOMI_SATO
- const TORU_OSAWA
- const TAKAO_OHARA
- const YUICHIRO_ITO
- const TAKAO_SHIMIZU
- const PLANNING
- const KEITA_NAKAMURA
- const HIROTAKA_UEMURA
- const HIROAKI_TAMURA
- const NORIAKI_SAKAGUCHI
- const MIYUKI_SATO
- const GAKUZI_NOMOTO
- const AI_MASHIMA
- const MIKIHIRO_ISHIKAWA
- const HIDEYUKI_HASHIMOTO
- const SATOSHI_YAMATO
- const SHIGERU_MIYAMOTO
- const GAIL_TILDEN
- const NOB_OGASAWARA
- const SETH_MCMAHILL
- const HIROTO_ALEXANDER
- const TERESA_LILLYGREN
- const THOMAS_HERTZOG
- const ERIK_JOHNSON
- const HIRO_NAKAMURA
- const TERUKI_MURAKAWA
- const KAZUYOSHI_OSAWA
- const KIMIKO_NAKAMICHI
- const CREDIT_END
- const CREDIT_UNKNOWN
- const STAFF
- const DIRECTOR
- const CODIRECTOR
- const PROGRAMMERS
- const GRAPHICS_DIRECTOR
- const MONSTER_DESIGN
- const GRAPHICS_DESIGN
- const CREDIT_MUSIC
- const CREDIT_SOUND_EFFECTS
- const GAME_DESIGN
- const GAME_SCENARIO
- const TOOL_PROGRAMMING
- const PARAMETRIC_DESIGN
- const SCRIPT_DESIGN
- const MAP_DATA_DESIGN
- const MAP_DESIGN
- const PRODUCT_TESTING
- const SPECIAL_THANKS
- const PRODUCERS
- const EXECUTIVE_PRODUCER
- const POKEMON_ANIMATION
- const POKEDEX_TEXT
- const MOBILE_PRJ_LEADER
- const MOBILE_SYSTEM_AD
- const MOBILE_STADIUM_DIR
- const COORDINATION
- const COPYRIGHT
- const US_VERSION_STAFF
- const US_COORDINATION
- const TEXT_TRANSLATION
- const PAAD_TESTING
-
-const_value SET -7
- const CREDITS_THEEND
- const CREDITS_WAIT2
- const CREDITS_MUSIC
- const CREDITS_CLEAR
- const CREDITS_SCENE
- const CREDITS_WAIT
- const CREDITS_END
+SECTION "Credits", ROMX
Credits:: ; 109847
bit 6, b ; Hall Of Fame
@@ -635,7 +521,6 @@ GetCreditsPalette: ; 109b2c
.UpdatePals:
; Update the first three colors in both palette buffers.
-
push af
push hl
add UnknBGPals % $100
@@ -657,72 +542,8 @@ GetCreditsPalette: ; 109b2c
call CopyBytes
ret
-
CreditsPalettes:
-
-; Pichu
- RGB 31, 00, 31
- RGB 31, 25, 00
- RGB 11, 14, 31
- RGB 07, 07, 07
-
- RGB 31, 05, 05
- RGB 11, 14, 31
- RGB 11, 14, 31
- RGB 31, 31, 31
-
- RGB 31, 05, 05
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
-
-; Smoochum
- RGB 31, 31, 31
- RGB 31, 27, 00
- RGB 26, 06, 31
- RGB 07, 07, 07
-
- RGB 03, 13, 31
- RGB 20, 00, 24
- RGB 26, 06, 31
- RGB 31, 31, 31
-
- RGB 03, 13, 31
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
-
-; Ditto
- RGB 31, 31, 31
- RGB 23, 12, 28
- RGB 31, 22, 00
- RGB 07, 07, 07
-
- RGB 03, 20, 00
- RGB 31, 22, 00
- RGB 31, 22, 00
- RGB 31, 31, 31
-
- RGB 03, 20, 00
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
-
-; Igglybuff
- RGB 31, 31, 31
- RGB 31, 10, 31
- RGB 31, 00, 09
- RGB 07, 07, 07
-
- RGB 31, 14, 00
- RGB 31, 00, 09
- RGB 31, 00, 09
- RGB 31, 31, 31
-
- RGB 31, 14, 00
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
+INCLUDE "data/palettes/credits.pal"
; 109bca
Credits_LoadBorderGFX: ; 109bca (42:5bca)
@@ -791,521 +612,6 @@ Credits_TheEnd: ; 109c11 (42:5c11)
; 109c24 (42:5c24)
-CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp"
-
-CreditsMonsGFX:
-CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp"
-CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp"
-CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp"
-CreditsIgglybuffGFX: INCBIN "gfx/credits/igglybuff.2bpp"
-
-
-CreditsScript: ; 10acb4
-
-; Clear the banner.
- db CREDITS_CLEAR
-
-; Pokemon Crystal Version Staff
- db STAFF, 1
-
- db CREDITS_WAIT, 8
-
-; Play the credits music.
- db CREDITS_MUSIC
-
- db CREDITS_WAIT2, 10
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 0 ; Pichu
-
- db DIRECTOR, 1
- db SATOSHI_TAJIRI, 2
-
- db CREDITS_WAIT, 12
-
- db CODIRECTOR, 1
- db JUNICHI_MASUDA, 2
-
- db CREDITS_WAIT, 12
-
- db PROGRAMMERS, 0
- db SOUSUKE_TAMADA, 1
- db HISASHI_SOGABE, 2
- db KEITA_KAGAYA, 3
- db YOSHINORI_MATSUDA, 4
-
- db CREDITS_WAIT, 12
-
- db PROGRAMMERS, 0
- db SHIGEKI_MORIMOTO, 1
- db TETSUYA_WATANABE, 2
- db TAKENORI_OOTA, 3
-
- db CREDITS_WAIT, 12
-
- db GRAPHICS_DIRECTOR, 1
- db KEN_SUGIMORI, 2
-
- db CREDITS_WAIT, 12
-
- db MONSTER_DESIGN, 0
- db KEN_SUGIMORI, 1
- db MOTOFUMI_FUJIWARA, 2
- db SHIGEKI_MORIMOTO, 3
- db HIRONOBU_YOSHIDA, 4
- db SATOSHI_OOTA, 5
-
- db CREDITS_WAIT, 12
-
- db MONSTER_DESIGN, 0
- db ATSUKO_NISHIDA, 1
- db MUNEO_SAITO, 2
- db RENA_YOSHIKAWA, 3
-
- db CREDITS_WAIT, 12
-
- db POKEMON_ANIMATION, 1
- db HIRONOBU_YOSHIDA, 2
- db JUN_OKUTANI, 3
-
- db CREDITS_WAIT, 12
-
-; Clear the banner.
- db CREDITS_CLEAR
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 1 ; Smoochum
-
- db GRAPHICS_DESIGN, 0
- db HIRONOBU_YOSHIDA, 1
- db JUN_OKUTANI, 2
- db ASUKA_IWASHITA, 3
- db TETSUYA_WATANABE, 4
-
- db CREDITS_WAIT, 12
-
- db CREDIT_MUSIC, 0
- db JUNICHI_MASUDA, 1
- db MORIKAZU_AOKI, 2
- db GO_ICHINOSE, 3
-
- db CREDITS_WAIT, 12
-
- db CREDIT_SOUND_EFFECTS, 0
- db MORIKAZU_AOKI, 1
- db JUNICHI_MASUDA, 2
- db TETSUYA_WATANABE, 3
-
- db CREDITS_WAIT, 12
-
- db GAME_DESIGN, 0
- db JUNICHI_MASUDA, 1
- db SHIGEKI_MORIMOTO, 2
- db KOHJI_NISHINO, 3
-
- db CREDITS_WAIT, 12
-
- db GAME_DESIGN, 0
- db TETSUJI_OOTA, 1
- db HITOMI_SATO, 2
- db KENJI_MATSUSHIMA, 3
-
- db CREDITS_WAIT, 12
-
- db GAME_SCENARIO, 0
- db JUNICHI_MASUDA, 1
- db KOHJI_NISHINO, 2
- db TOSHINOBU_MATSUMIYA, 3
- db KENJI_MATSUSHIMA, 4
-
- db CREDITS_WAIT, 12
-
- db POKEDEX_TEXT, 1
- db TOSHINOBU_MATSUMIYA, 2
-
- db CREDITS_WAIT, 12
-
- db TOOL_PROGRAMMING, 1
- db SOUSUKE_TAMADA, 2
- db TAKENORI_OOTA, 3
-
- db CREDITS_WAIT, 12
-
- db PARAMETRIC_DESIGN, 1
- db KOHJI_NISHINO, 2
-
- db CREDITS_WAIT, 12
-
-; Clear the banner.
- db CREDITS_CLEAR
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 2 ; Ditto
-
- db SCRIPT_DESIGN, 1
- db TETSUJI_OOTA, 2
- db NOBUHIRO_SEYA, 3
-
- db CREDITS_WAIT, 12
-
- db MAP_DATA_DESIGN, 1
- db TETSUJI_OOTA, 2
- db KAZUHITO_SEKINE, 3
-
- db CREDITS_WAIT, 12
-
- db MAP_DESIGN, 0
- db TETSUJI_OOTA, 1
- db KOHJI_NISHINO, 2
- db NOBUHIRO_SEYA, 3
-
- db CREDITS_WAIT, 12
-
- db COORDINATION, 1
- db HIROYUKI_ZINNAI, 2
-
- db CREDITS_WAIT, 12
-
- db PRODUCERS, 0
- db SATORU_IWATA, 1
- db SATOSHI_YAMATO, 2
- db SHIGERU_MIYAMOTO, 3
-
- db CREDITS_WAIT, 12
-
- db PRODUCERS, 1
- db TSUNEKAZU_ISHIHARA, 2
-
- db CREDITS_WAIT, 12
-
-; Clear the banner.
- db CREDITS_CLEAR
-
- db CREDITS_WAIT, 1
-
-; Update the banner.
- db CREDITS_SCENE, 3 ; Igglybuff
-
- db US_VERSION_STAFF, 2
-
- db CREDITS_WAIT, 9
-
- db US_COORDINATION, 1
- db GAIL_TILDEN, 2
- db HIRO_NAKAMURA, 3
-
- db CREDITS_WAIT, 12
-
- db US_COORDINATION, 1
- db JUNICHI_MASUDA, 2
- db SETH_MCMAHILL, 3
-
- db CREDITS_WAIT, 12
-
- db US_COORDINATION, 1
- db HIROTO_ALEXANDER, 2
- db TERESA_LILLYGREN, 3
-
- db CREDITS_WAIT, 12
-
- db TEXT_TRANSLATION, 1
- db NOB_OGASAWARA, 2
-
- db CREDITS_WAIT, 12
-
- db PROGRAMMERS, 1
- db TERUKI_MURAKAWA, 2
- db KAZUYOSHI_OSAWA, 3
-
- db CREDITS_WAIT, 12
-
- db PAAD_TESTING, 1
- db THOMAS_HERTZOG, 2
- db ERIK_JOHNSON, 3
-
- db CREDITS_WAIT, 12
-
- db PRODUCT_TESTING, 0
- db PLANNING, 1
-
- db CREDITS_WAIT, 12
-
- db PRODUCT_TESTING, 0
- db KEITA_NAKAMURA, 1
- db HIROTAKA_UEMURA, 2
- db HIROAKI_TAMURA, 3
- db NORIAKI_SAKAGUCHI, 4
-
- db CREDITS_WAIT, 12
-
- db PRODUCT_TESTING, 0
- db NCL_SUPER_MARIO_CLUB, 1
- db KENJI_SAIKI, 2
- db ATSUSHI_TADA, 3
- db MIYUKI_SATO, 4
-
- db CREDITS_WAIT, 12
-
- db SPECIAL_THANKS, 0
- db KIMIKO_NAKAMICHI, 1
- db AKITO_MORI, 2
-
- db CREDITS_WAIT, 12
-
- db SPECIAL_THANKS, 0
- db GAKUZI_NOMOTO, 1
- db AI_MASHIMA, 2
- db KUNIMI_KAWAMURA, 3
-
- db CREDITS_WAIT, 12
-
- db SPECIAL_THANKS, 0
- db MIKIHIRO_ISHIKAWA, 1
- db HIDEYUKI_HASHIMOTO, 2
-
- db CREDITS_WAIT, 12
-
- db EXECUTIVE_PRODUCER, 1
- db HIROSHI_YAMAUCHI, 2
-
- db CREDITS_WAIT, 12
-
- db COPYRIGHT, 1
-
- db CREDITS_WAIT, 9
-
-; Display "The End" graphic.
- db CREDITS_THEEND
-
- db CREDITS_WAIT, 20
-
- db CREDITS_END
-; 10ae13
-
-
-CreditsStrings:
- dw .SatoshiTajiri
- dw .JunichiMasuda
- dw .TetsuyaWatanabe
- dw .ShigekiMorimoto
- dw .SousukeTamada
- dw .TakenoriOota
- dw .KenSugimori
- dw .MotofumiFujiwara
- dw .AtsukoNishida
- dw .MuneoSaito
- dw .SatoshiOota
- dw .RenaYoshikawa
- dw .JunOkutani
- dw .HironobuYoshida
- dw .AsukaIwashita
- dw .GoIchinose
- dw .MorikazuAoki
- dw .KohjiNishino
- dw .KenjiMatsushima
- dw .ToshinobuMatsumiya
- dw .SatoruIwata
- dw .NobuhiroSeya
- dw .KazuhitoSekine
- dw .TetsujiOota
- dw .NclSuperMarioClub
- dw .Sarugakucho
- dw .AkitoMori
- dw .TakahiroHarada
- dw .TohruHashimoto
- dw .NoboruMatsumoto
- dw .TakehiroIzushi
- dw .TakashiKawaguchi
- dw .TsunekazuIshihara
- dw .HiroshiYamauchi
- dw .KenjiSaiki
- dw .AtsushiTada
- dw .NaokoKawakami
- dw .HiroyukiZinnai
- dw .KunimiKawamura
- dw .HisashiSogabe
- dw .KeitaKagaya
- dw .YoshinoriMatsuda
- dw .HitomiSato
- dw .ToruOsawa
- dw .TakaoOhara
- dw .YuichiroIto
- dw .TakaoShimizu
- dw .Planning
- dw .KeitaNakamura
- dw .HirotakaUemura
- dw .HiroakiTamura
- dw .NoriakiSakaguchi
- dw .MiyukiSato
- dw .GakuziNomoto
- dw .AiMashima
- dw .MikihiroIshikawa
- dw .HideyukiHashimoto
- dw .SatoshiYamato
- dw .ShigeruMiyamoto
- dw .GailTilden
- dw .NobOgasawara
- dw .SethMcMahill
- dw .HirotoAlexander
- dw .TeresaLillygren
- dw .ThomasHertzog
- dw .ErikJohnson
- dw .HiroNakamura
- dw .TerukiMurakawa
- dw .KazuyoshiOsawa
- dw .KimikoNakamichi
- dw .End
- dw .Unknown
- dw .Staff
- dw .Director
- dw .CoDirector
- dw .Programmers
- dw .GraphicsDirector
- dw .MonsterDesign
- dw .GraphicsDesign
- dw .Music
- dw .SoundEffects
- dw .GameDesign
- dw .GameScenario
- dw .ToolProgramming
- dw .ParametricDesign
- dw .ScriptDesign
- dw .MapDataDesign
- dw .MapDesign
- dw .ProductTesting
- dw .SpecialThanks
- dw .Producers
- dw .ExecutiveProducer
- dw .PokemonAnimation
- dw .PokedexText
- dw .MobilePrjLeader
- dw .MobileSystemAd
- dw .MobileStadiumDir
- dw .Coordination
- dw .Copyright
- dw .UsVersionStaff
- dw .UsCoordination
- dw .TextTranslation
- dw .PaadTesting
-
-.SatoshiTajiri: db " SATOSHI TAJIRI@" ; "たじり さとし@"
-.JunichiMasuda: db " JUNICHI MASUDA@" ; "ますだ じゅんいち@"
-.TetsuyaWatanabe: db " TETSUYA WATANABE@" ; "わたなべ てつや@"
-.ShigekiMorimoto: db " SHIGEKI MORIMOTO@" ; "もりもと しげき@"
-.SousukeTamada: db " SOUSUKE TAMADA@" ; "たまだ そうすけ@"
-.TakenoriOota: db " TAKENORI OOTA@" ; "おおた たけのり@"
-.KenSugimori: db " KEN SUGIMORI@" ; "すぎもり けん@"
-.MotofumiFujiwara: db " MOTOFUMI FUJIWARA@" ; "ふじわら もとふみ@"
-.AtsukoNishida: db " ATSUKO NISHIDA@" ; "にしだ あつこ@"
-.MuneoSaito: db " MUNEO SAITO@" ; "さいとう むねお@"
-.SatoshiOota: db " SATOSHI OOTA@" ; "おおた さとし@"
-.RenaYoshikawa: db " RENA YOSHIKAWA@" ; "よしかわ れな@"
-.JunOkutani: db " JUN OKUTANI@" ; "おくたに じゅん@"
-.HironobuYoshida: db " HIRONOBU YOSHIDA@" ; "よしだ ひろのぶ@"
-.AsukaIwashita: db " ASUKA IWASHITA@" ; "いわした あすか@"
-.GoIchinose: db " GO ICHINOSE@" ; "いちのせ ごう@"
-.MorikazuAoki: db " MORIKAZU AOKI@" ; "あおき もりかず@"
-.KohjiNishino: db " KOHJI NISHINO@" ; "にしの こうじ@"
-.KenjiMatsushima: db " KENJI MATSUSHIMA@" ; "まつしま けんじ@"
-.ToshinobuMatsumiya: db "TOSHINOBU MATSUMIYA@" ; "まつみや としのぶ@"
-.SatoruIwata: db " SATORU IWATA@" ; "いわた さとる@"
-.NobuhiroSeya: db " NOBUHIRO SEYA@" ; "せや のぶひろ@"
-.KazuhitoSekine: db " KAZUHITO SEKINE@" ; "せきね かずひと@"
-.TetsujiOota: db " TETSUJI OOTA@" ; "おおた てつじ@"
-.NclSuperMarioClub: db "NCL SUPER MARIO CLUB@" ; "スーパーマりォクラブ@"
-.Sarugakucho: db " SARUGAKUCHO@" ; "さるがくちょう@"
-.AkitoMori: db " AKITO MORI@" ; "もり あきと@"
-.TakahiroHarada: db " TAKAHIRO HARADA@" ; "はらだ たかひろ@"
-.TohruHashimoto: db " TOHRU HASHIMOTO@" ; "はしもと とおる@"
-.NoboruMatsumoto: db " NOBORU MATSUMOTO@" ; "まつもと のぼる@"
-.TakehiroIzushi: db " TAKEHIRO IZUSHI@" ; "いずし たけひろ@"
-.TakashiKawaguchi: db " TAKASHI KAWAGUCHI@" ; "かわぐち たかし@"
-.TsunekazuIshihara: db " TSUNEKAZU ISHIHARA@" ; "いしはら つねかず@"
-.HiroshiYamauchi: db " HIROSHI YAMAUCHI@" ; "やまうち ひろし@"
-.KenjiSaiki: db " KENJI SAIKI@" ; "さいき けんじ@"
-.AtsushiTada: db " ATSUSHI TADA@" ; "ただ あつし@"
-.NaokoKawakami: db " NAOKO KAWAKAMI@" ; "かわかみ なおこ@"
-.HiroyukiZinnai: db " HIROYUKI ZINNAI@" ; "じんない ひろゆき@"
-.KunimiKawamura: db " KUNIMI KAWAMURA@" ; "かわむら くにみ@"
-.HisashiSogabe: db " HISASHI SOGABE@" ; "そがべ ひさし@"
-.KeitaKagaya: db " KEITA KAGAYA@" ; "かがや けいた@"
-.YoshinoriMatsuda: db " YOSHINORI MATSUDA@" ; "まつだ よしのり@"
-.HitomiSato: db " HITOMI SATO@" ; "さとう ひとみ@"
-.ToruOsawa: db " TORU OSAWA@" ; "おおさわ とおる@"
-.TakaoOhara: db " TAKAO OHARA@" ; "おおはら たかお@"
-.YuichiroIto: db " YUICHIRO ITO@" ; "いとう ゆういちろう@"
-.TakaoShimizu: db " TAKAO SHIMIZU@" ; "しみず たかお@"
-.Planning: db " SPECIAL PRODUCTION"
- next " PLANNING" ; "きかくかいはつぶ@"
- next " & DEVELOPMENT DEPT.@"
-.KeitaNakamura: db " KEITA NAKAMURA@" ; "なかむら けいた@"
-.HirotakaUemura: db " HIROTAKA UEMURA@" ; "うえむら ひろたか@"
-.HiroakiTamura: db " HIROAKI TAMURA@" ; "たむら ひろあき@"
-.NoriakiSakaguchi: db " NORIAKI SAKAGUCHI@" ; "さかぐち のりあき@"
-.MiyukiSato: db " MIYUKI SATO@" ; "さとう みゆき@"
-.GakuziNomoto: db " GAKUZI NOMOTO@" ; "のもと がくじ@"
-.AiMashima: db " AI MASHIMA@" ; "ましま あい@"
-.MikihiroIshikawa: db " MIKIHIRO ISHIKAWA@" ; "いしかわ みきひろ@"
-.HideyukiHashimoto: db " HIDEYUKI HASHIMOTO@" ; "はしもと ひでゆき@"
-.SatoshiYamato: db " SATOSHI YAMATO@" ; "やまと さとし@"
-.ShigeruMiyamoto: db " SHIGERU MIYAMOTO@" ; "みやもと しげる@"
-.End: db " END@" ; "おしまい@"
-.Unknown: db " ????????@" ; "????????@"
-.GailTilden: db " GAIL TILDEN@"
-.NobOgasawara: db " NOB OGASAWARA@"
-.SethMcMahill: db " SETH McMAHILL@"
-.HirotoAlexander: db " HIROTO ALEXANDER@"
-.TeresaLillygren: db " TERESA LILLYGREN@"
-.ThomasHertzog: db " THOMAS HERTZOG@"
-.ErikJohnson: db " ERIK JOHNSON@"
-.HiroNakamura: db " HIRO NAKAMURA@"
-.TerukiMurakawa: db " TERUKI MURAKAWA@"
-.KazuyoshiOsawa: db " KAZUYOSHI OSAWA@"
-.KimikoNakamichi: db " KIMIKO NAKAMICHI@"
-.Staff: db " #MON" ; "ポケットモンスター"
- next " CRYSTAL VERSION" ; " クりスタル バージョン"
- next " STAFF@" ; " スタッフ@"
-.Director: db " DIRECTOR@" ; "エグゼクティブ ディレクター@"
-.CoDirector: db " CO-DIRECTOR@" ; "ディレクター@"
-.Programmers: db " PROGRAMMERS@" ; "プログラム@"
-.GraphicsDirector: db " GRAPHICS DIRECTOR@" ; "グラフィック ディレクター@"
-.MonsterDesign: db " MONSTER DESIGN@" ; "# デザイン@"
-.GraphicsDesign: db " GRAPHICS DESIGN@" ; "グラフィック デザイン@"
-.Music: db " MUSIC@" ; "おんがく@"
-.SoundEffects: db " SOUND EFFECTS@" ; "サウンド エフ→クト@"
-.GameDesign: db " GAME DESIGN@" ; "ゲームデザイン@"
-.GameScenario: db " GAME SCENARIO@" ; "シナりォ@"
-.ToolProgramming: db " TOOL PROGRAMMING@" ; "ツール プログラム@"
-.ParametricDesign: db " PARAMETRIC DESIGN@" ; "パラメーター せってい@"
-.ScriptDesign: db " SCRIPT DESIGN@" ; "スクりプト せってい@"
-.MapDataDesign: db " MAP DATA DESIGN@" ; "マップデータ せってい@"
-.MapDesign: db " MAP DESIGN@" ; "マップ デザイン@"
-.ProductTesting: db " PRODUCT TESTING@" ; "デバッグプレイ@"
-.SpecialThanks: db " SPECIAL THANKS@" ; "スぺシャルサンクス@"
-.Producers: db " PRODUCERS@" ; "プロデューサー@"
-.ExecutiveProducer: db " EXECUTIVE PRODUCER@" ; "エグゼクティブ プロデューサー@"
-.PokemonAnimation: db " #MON ANIMATION@" ; "# アニメーション@"
-.PokedexText: db " #DEX TEXT@" ; "ずかん テキスト@"
-.MobilePrjLeader: db " MOBILE PRJ. LEADER@" ; "モバイルプロジ→クト りーダー@"
-.MobileSystemAd: db " MOBILE SYSTEM AD.@" ; "モバイル システムアドバイザー@"
-.MobileStadiumDir: db "MOBILE STADIUM DIR.@" ; "モバイルスタジアム ディレクター@"
-.Coordination: db " COORDINATION@" ; "コーディネーター@"
-.UsVersionStaff: db " US VERSION STAFF@"
-.UsCoordination: db " US COORDINATION@"
-.TextTranslation: db " TEXT TRANSLATION@"
-.PaadTesting: db " PAAD TESTING@"
-
-.Copyright:
- ; (C) 1 9 9 5 - 2 0 0 1 N i n t e n d o
- db $60,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6a,$6b,$6c
- ; (C) 1 9 9 5 - 2 0 0 1 C r e a t u r e s i n c .
- next $60,$61,$62,$63,$64,$65,$66,$6d,$6e,$6f,$70,$71,$72, $7a,$7b,$7c
- ; (C) 1 9 9 5 - 2 0 0 1 G A M E F R E A K i n c .
- next $60,$61,$62,$63,$64,$65,$66,$73,$74,$75,$76,$77,$78,$79, $7a,$7b,$7c
- db "@"
+INCLUDE "gfx/credits.asm"
+INCLUDE "data/credits_script.asm"
+INCLUDE "data/credits_strings.asm"
diff --git a/engine/crystal_colors.asm b/engine/crystal_colors.asm
new file mode 100755
index 000000000..f8c1a6781
--- /dev/null
+++ b/engine/crystal_colors.asm
@@ -0,0 +1,336 @@
+GetMysteryGift_MobileAdapterLayout: ; 4930f (mobile)
+ ld a, b
+ cp SCGB_RAM
+ jr nz, .not_ram
+ ld a, [SGBPredef]
+.not_ram
+ push af
+ callba ResetBGPals
+ pop af
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, .dw
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .done
+ push de
+ jp hl
+.done
+ ret
+; 49330 (12:5330)
+
+.dw ; 49330
+
+ dw MG_Mobile_Layout00
+ dw MG_Mobile_Layout01
+ dw MG_Mobile_Layout02
+; 49336
+
+MG_Mobile_Layout_FillBox: ; 49336
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 49346
+
+MG_Mobile_Layout_WipeAttrMap: ; 49346 (12:5346)
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ xor a
+ call ByteFill
+ ret
+
+MG_Mobile_Layout_LoadPals: ; 49351 (12:5351)
+ ld de, UnknBGPals
+ ld hl, Palette_493e1
+ ld bc, 5 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld hl, Palette_TextBG7
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+
+MG_Mobile_Layout00: ; 4936e (12:536e)
+ call MG_Mobile_Layout_LoadPals
+ call MG_Mobile_Layout_WipeAttrMap
+ call MG_Mobile_Layout_CreatePalBoxes
+ callba ApplyAttrMap
+ callba ApplyPals
+ ret
+
+MG_Mobile_Layout_CreatePalBoxes: ; 49384 (12:5384)
+ hlcoord 0, 0, AttrMap
+ lb bc, 4, 1
+ ld a, $1
+ call MG_Mobile_Layout_FillBox
+ lb bc, 2, 1
+ ld a, $2
+ call MG_Mobile_Layout_FillBox
+ lb bc, 6, 1
+ ld a, $3
+ call MG_Mobile_Layout_FillBox
+ hlcoord 1, 0, AttrMap
+ ld a, $1
+ lb bc, 3, 18
+ call MG_Mobile_Layout_FillBox
+ lb bc, 2, 18
+ ld a, $2
+ call MG_Mobile_Layout_FillBox
+ lb bc, 12, 18
+ ld a, $3
+ call MG_Mobile_Layout_FillBox
+ hlcoord 19, 0, AttrMap
+ lb bc, 4, 1
+ ld a, $1
+ call MG_Mobile_Layout_FillBox
+ lb bc, 2, 1
+ ld a, $2
+ call MG_Mobile_Layout_FillBox
+ lb bc, 6, 1
+ ld a, $3
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 12, AttrMap
+ ld bc, 6 * SCREEN_WIDTH
+ ld a, $7
+ call ByteFill
+ ret
+; 493e1 (12:53e1)
+
+Palette_493e1: ; 493e1
+INCLUDE "data/palettes/mg_mobile.pal"
+; 49409
+
+LoadOW_BGPal7:: ; 49409
+ ld hl, Palette_TextBG7
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 49418
+
+Palette_TextBG7: ; 49418
+ RGB 31, 31, 31
+ RGB 08, 19, 28
+ RGB 05, 05, 16
+ RGB 00, 00, 00
+; 49420
+
+Function49420:: ; 49420 (12:5420)
+ ld hl, MansionPalette4
+ ld de, UnknBGPals palette PAL_BG_ROOF
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ ret
+; 4942f (12:542f)
+
+MG_Mobile_Layout01: ; 4942f
+ call MG_Mobile_Layout_LoadPals
+ ld de, UnknBGPals palette PAL_BG_TEXT
+ ld hl, Palette_49478
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ call MG_Mobile_Layout_WipeAttrMap
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ hlcoord 0, 14, AttrMap
+ ld bc, 4 * SCREEN_WIDTH
+ ld a, $7
+ call ByteFill
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_49464
+ call Function49480
+ jr .asm_49467
+
+.asm_49464
+ call Function49496
+
+.asm_49467
+ callba ApplyAttrMap
+ callba ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 49478
+
+Palette_49478: ; 49478
+ RGB 31, 31, 31
+ RGB 26, 31, 00
+ RGB 20, 16, 03
+ RGB 00, 00, 00
+; 49480
+
+Function49480: ; 49480
+ hlcoord 0, 0, AttrMap
+ lb bc, 4, SCREEN_WIDTH
+ ld a, $7
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 2, AttrMap
+ ld a, $4
+ ld [hl], a
+ hlcoord 19, 2, AttrMap
+ ld [hl], a
+ ret
+; 49496
+
+Function49496: ; 49496
+ hlcoord 0, 0, AttrMap
+ lb bc, 2, SCREEN_WIDTH
+ ld a, $7
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 1, AttrMap
+ ld a, $4
+ ld [hl], a
+ hlcoord 19, 1, AttrMap
+ ld [hl], a
+ ret
+; 494ac
+
+INCLUDE "tilesets/special_palettes.asm"
+
+MG_Mobile_Layout02: ; 49706
+ ld hl, Palette_49732
+ ld de, UnknBGPals
+ ld bc, 1 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ callba ApplyPals
+ call MG_Mobile_Layout_WipeAttrMap
+ callba ApplyAttrMap
+ ld hl, Palette_4973a
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ ld a, BANK(UnknOBPals)
+ call FarCopyWRAM
+ ret
+; 49732
+
+Palette_49732: ; 49732
+ RGB 31, 31, 31
+ RGB 23, 16, 07
+ RGB 23, 07, 07
+ RGB 03, 07, 20
+; 4973a
+
+Palette_4973a: ; 4973a
+ RGB 00, 00, 00
+ RGB 07, 05, 31
+ RGB 14, 18, 31
+ RGB 31, 31, 31
+; 49742
+
+Function49742: ; 49742
+ ld hl, Palette_49757
+ ld de, UnknBGPals
+ ld bc, $40
+ ld a, $5
+ call FarCopyWRAM
+ callba ApplyPals
+ ret
+; 49757
+
+Palette_49757: ; 49757
+INCLUDE "data/palettes/49757.pal"
+; 49797
+
+_InitMG_Mobile_LinkTradePalMap: ; 49797
+ hlcoord 0, 0, AttrMap
+ lb bc, 16, 2
+ ld a, $4
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ ldcoord_a 0, 1, AttrMap
+ ldcoord_a 0, 14, AttrMap
+ hlcoord 2, 0, AttrMap
+ lb bc, 8, 18
+ ld a, $5
+ call MG_Mobile_Layout_FillBox
+ hlcoord 2, 8, AttrMap
+ lb bc, 8, 18
+ ld a, $6
+ call MG_Mobile_Layout_FillBox
+ hlcoord 0, 16, AttrMap
+ lb bc, 2, SCREEN_WIDTH
+ ld a, $4
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 6, 1, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 17, 1, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 6, 9, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $3
+ lb bc, 6, 1
+ hlcoord 17, 9, AttrMap
+ call MG_Mobile_Layout_FillBox
+ ld a, $2
+ hlcoord 2, 16, AttrMap
+ ld [hli], a
+ ld a, $7
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld a, $2
+ ld [hl], a
+ hlcoord 2, 17, AttrMap
+ ld a, $3
+ ld bc, 6
+ call ByteFill
+ ret
+; 49811
+
+LoadTradeRoomBGPals: ; 49811
+ ld hl, TradeRoomPalette
+ ld de, UnknBGPals palette PAL_BG_GREEN
+ ld bc, 6 palettes
+ ld a, BANK(UnknBGPals)
+ call FarCopyWRAM
+ callba ApplyPals
+ ret
+; 49826
+
+TradeRoomPalette: ; 49826
+INCLUDE "data/palettes/trade_room.pal"
+; 49856
+
+InitMG_Mobile_LinkTradePalMap: ; 49856
+ call _InitMG_Mobile_LinkTradePalMap
+ ret
+; 4985a
+
+Unknown_4985a: ; unreferenced
+ db $ab, $03, $57, $24, $ac, $0e, $13, $32
+ db $be, $30, $5b, $4c, $47, $60, $ed, $f2
+ db $ab, $03, $55, $26, $aa, $0a, $13, $3a
+ db $be, $28, $33, $24, $6e, $71, $df, $b0
+ db $a8, $00, $e5, $e0, $9a, $fc, $f4, $2c
+ db $fe, $4c, $a3, $5e, $c6, $3a, $ab, $4d
+ db $a8, $00, $b5, $b0, $de, $e8, $fc, $1c
+ db $ba, $66, $f7, $0e, $ba, $5e, $43, $bd
diff --git a/engine/crystal_intro.asm b/engine/crystal_intro.asm
index d0a0b7281..b417044eb 100755
--- a/engine/crystal_intro.asm
+++ b/engine/crystal_intro.asm
@@ -341,29 +341,7 @@ GameFreakLogoScene5: ; e47ab (39:47ab)
; e47ac (39:47ac)
GameFreakLogoPalettes: ; e47ac
-; Ditto's color as it turns into the Game Freak logo.
-; Fade from pink to orange.
-; One color per step.
- RGB 23, 12, 28
- RGB 23, 12, 27
- RGB 23, 13, 26
- RGB 23, 13, 24
-
- RGB 24, 14, 22
- RGB 24, 14, 20
- RGB 24, 15, 18
- RGB 24, 15, 16
-
- RGB 25, 16, 14
- RGB 25, 16, 12
- RGB 25, 17, 10
- RGB 25, 17, 08
-
- RGB 26, 18, 06
- RGB 26, 18, 04
- RGB 26, 19, 02
- RGB 26, 19, 00
-
+INCLUDE "data/palettes/crystal_intro/gamefreak_logo.pal"
; e47cc
GameFreakLogo: ; e47cc
@@ -506,11 +484,11 @@ IntroScene1: ; e495b (39:495b)
ld [rSVBK], a
ld hl, Palette_365ad
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_365ad
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -579,11 +557,11 @@ IntroScene3: ; e49fd (39:49fd)
ld [rSVBK], a
ld hl, Palette_e5edd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e5edd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -645,11 +623,11 @@ IntroScene5: ; e4a7a (39:4a7a)
ld [rSVBK], a
ld hl, Palette_365ad
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_365ad
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -752,12 +730,12 @@ IntroScene7: ; e4b3f (39:4b3f)
ld hl, Palette_e5edd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e5edd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
@@ -910,11 +888,11 @@ IntroScene11: ; e4c86 (39:4c86)
ld [rSVBK], a
ld hl, Palette_365ad
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_365ad
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1037,11 +1015,11 @@ IntroScene13: ; e4d6d (39:4d6d)
ld [rSVBK], a
ld hl, Palette_e5edd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e5edd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1146,11 +1124,11 @@ IntroScene15: ; e4e40 (39:4e40)
ld [rSVBK], a
ld hl, Palette_e77dd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e77dd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1220,11 +1198,11 @@ IntroScene17: ; e4ef5 (39:4ef5)
ld [rSVBK], a
ld hl, Palette_e6d6d
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e6d6d
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1294,11 +1272,11 @@ IntroScene19: ; e4f7e (39:4f7e)
ld [rSVBK], a
ld hl, Palette_e77dd
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e77dd
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1464,11 +1442,11 @@ IntroScene26: ; e50bb (39:50bb)
ld [rSVBK], a
ld hl, Palette_e679d
ld de, UnknBGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld hl, Palette_e679d
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
pop af
ld [rSVBK], a
@@ -1572,47 +1550,7 @@ Intro_Scene24_ApplyPaletteFade: ; e5172 (39:5172)
; e519c (39:519c)
.FadePals: ; e519c
-; Fade to white.
- RGB 24, 12, 09
- RGB 31, 31, 31
- RGB 12, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 19, 05
- RGB 31, 31, 31
- RGB 15, 05, 31
- RGB 07, 07, 07
-
- RGB 31, 21, 09
- RGB 31, 31, 31
- RGB 18, 09, 31
- RGB 11, 11, 11
-
- RGB 31, 23, 13
- RGB 31, 31, 31
- RGB 21, 13, 31
- RGB 15, 15, 15
-
- RGB 31, 25, 17
- RGB 31, 31, 31
- RGB 25, 17, 31
- RGB 19, 19, 19
-
- RGB 31, 27, 21
- RGB 31, 31, 31
- RGB 27, 21, 31
- RGB 23, 23, 23
-
- RGB 31, 29, 25
- RGB 31, 31, 31
- RGB 29, 26, 31
- RGB 27, 27, 27
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
+INCLUDE "data/palettes/crystal_intro/fade.pal"
; e51dc
CrystalIntro_InitUnownAnim: ; e51dc (39:51dc)
@@ -1685,7 +1623,7 @@ CrystalIntro_UnownFade: ; e5223 (39:5223)
push hl
push bc
ld hl, BGPals
- ld bc, 4 * 16
+ ld bc, 8 palettes
xor a
call ByteFill
pop bc
@@ -2150,85 +2088,8 @@ INCBIN "gfx/intro/003.tilemap.lz"
; e5edd
Palette_e5edd: ; e5edd
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 0, 4, 5
- RGB 1, 8, 5
- RGB 4, 12, 9
- RGB 24, 12, 9
-
- RGB 0, 4, 5
- RGB 9, 6, 8
- RGB 8, 16, 5
- RGB 5, 10, 4
-
- RGB 31, 31, 31
- RGB 9, 6, 8
- RGB 18, 9, 9
- RGB 13, 8, 9
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 2, 5, 22
- RGB 1, 5, 12
-
- RGB 31, 31, 31
- RGB 31, 10, 25
- RGB 31, 21, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 21, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_1.pal"
+; e5f5d
IntroUnownsGFX: ; e5f5d
INCBIN "gfx/intro/unowns.2bpp.lz"
@@ -2263,85 +2124,8 @@ INCBIN "gfx/intro/007.tilemap.lz"
; e65ad
Palette_365ad: ; e65ad
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 10, 0, 10
- RGB 19, 0, 19
- RGB 31, 0, 31
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_2.pal"
+; e662d
IntroCrystalUnownsGFX: ; e662d
INCBIN "gfx/intro/crystal_unowns.2bpp.lz"
@@ -2356,85 +2140,8 @@ INCBIN "gfx/intro/015.tilemap.lz"
; e679d
Palette_e679d: ; e679d
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_3.pal"
+; e681d
IntroSuicuneCloseGFX: ; e681d
INCBIN "gfx/intro/suicune_close.2bpp.lz"
@@ -2449,85 +2156,8 @@ INCBIN "gfx/intro/011.tilemap.lz"
; e6d6d
Palette_e6d6d: ; e6d6d
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
-
- RGB 24, 12, 9
- RGB 12, 20, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
-
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 19, 8, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 12, 20, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_4.pal"
+; e6ded
IntroSuicuneJumpGFX: ; e6ded
INCBIN "gfx/intro/suicune_jump.2bpp.lz"
@@ -2554,85 +2184,7 @@ INCBIN "gfx/intro/013.tilemap.lz"
; e77dd
Palette_e77dd: ; e77dd
- RGB 24, 12, 9
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 24, 12, 9
- RGB 31, 31, 31
- RGB 8, 9, 31
- RGB 0, 0, 0
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
- RGB 24, 12, 9
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 12, 0, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 21, 9, 0
- RGB 21, 9, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
+INCLUDE "data/palettes/crystal_intro/intro_5.pal"
IntroUnownBackGFX: ; e785d
INCBIN "gfx/intro/unown_back.2bpp.lz"
@@ -2646,4 +2198,3 @@ IntroGrass3GFX: ; e7a1d
INCBIN "gfx/intro/grass3.2bpp"
IntroGrass4GFX: ; e7a5d
INCBIN "gfx/intro/grass4.2bpp"
-
diff --git a/engine/debug.asm b/engine/debug.asm
index 9c2bb35c2..bcd53c021 100755
--- a/engine/debug.asm
+++ b/engine/debug.asm
@@ -159,7 +159,7 @@ Function819a7: ; 819a7
ld [rSVBK], a
ld hl, Palette_819f4
ld de, BGPals
- ld bc, $80
+ ld bc, 16 palettes
call CopyBytes
ld a, $80
ld [rBGPI], a
@@ -193,93 +193,10 @@ Function819a7: ; 819a7
; 819f4
Palette_819f4: ; 819f4
- ; white
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- ; red
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
+INCLUDE "data/palettes/debug/bg.pal"
Palette_81a34: ; 81a34
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-
- ; red
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- ; green
- RGB 31, 31, 31
- RGB 00, 31, 00
- RGB 00, 31, 00
- RGB 00, 00, 00
-
- ; blue
- RGB 31, 31, 31
- RGB 00, 00, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
+INCLUDE "data/palettes/debug/ob.pal"
; 81a74
Function81a74: ; 81a74
diff --git a/engine/decorations.asm b/engine/decorations.asm
index b69f4f3c3..160022b93 100755
--- a/engine/decorations.asm
+++ b/engine/decorations.asm
@@ -1374,3 +1374,13 @@ _GetDecorationSprite: ; 27085
ld a, c
ret
; 27092
+
+PadCoords_de: ; 27092
+ ld a, d
+ add 4
+ ld d, a
+ ld a, e
+ add 4
+ ld e, a
+ call GetBlockLocation
+ ret
diff --git a/engine/dma_transfer.asm b/engine/dma_transfer.asm
new file mode 100755
index 000000000..a0dad0dde
--- /dev/null
+++ b/engine/dma_transfer.asm
@@ -0,0 +1,625 @@
+HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
+ ret
+; 10402d
+
+HDMATransferTileMapToWRAMBank3:: ; 10402d
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransferToWRAMBank3
+ ret
+; 104047
+
+HDMATransferAttrMapToWRAMBank3: ; 104047
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransferToWRAMBank3
+ ret
+; 104061
+
+ReloadMapPart:: ; 104061
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ pop af
+ ld [rVBK], a
+ ei
+
+ ret
+
+Mobile_ReloadMapPart: ; 104099
+ ld hl, ReloadMapPart ; useless
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_NoDI
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_NoDI
+ pop af
+ ld [rVBK], a
+ ei
+
+ ret
+; 1040d4
+
+; XXX
+ ld hl, .unreferenced_1040da
+ jp CallInSafeGFXMode
+
+.unreferenced_1040da
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld de, w3_d800
+ ld a, [hBGMapAddress + 1]
+ ld [rHDMA1], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA2], a
+ ld a, d
+ ld [rHDMA3], a
+ ld a, e
+ ld [rHDMA4], a
+ ld a, $23
+ ld [hDMATransfer], a
+ call WaitDMATransfer
+ ret
+; 1040fb
+
+; XXX
+ ld hl, .unreferenced_104101
+ jp CallInSafeGFXMode
+
+.unreferenced_104101
+ ld a, $1
+ ld [rVBK], a
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, w3_d800
+ call HDMATransferToWRAMBank3
+ ret
+; 104110
+
+OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
+; OpenText
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with " "
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteTilemap
+ call DelayFrame
+
+ di
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait123Scanlines_toBGMap
+ pop af
+ ld [rVBK], a
+ ei
+ ret
+; 104148
+
+Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
+ ld hl, .Function
+ jp CallInSafeGFXMode
+
+.Function:
+ ; Transfer AttrMap and Tilemap to BGMap
+ ; Fill vBGAttrs with $00
+ ; Fill vBGTiles with $ff
+ decoord 0, 0, AttrMap
+ ld hl, wScratchAttrMap
+ call CutAndPasteAttrMap
+ ld c, $ff
+ decoord 0, 0
+ ld hl, wScratchTileMap
+ call CutAndPasteMap
+
+ ld a, $1
+ ld [rVBK], a
+ ld hl, wScratchAttrMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ld a, $0
+ ld [rVBK], a
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines_toBGMap
+ ret
+; 104177
+
+CallInSafeGFXMode: ; 104177
+ ld a, [hBGMapMode]
+ push af
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hBGMapMode], a
+ ld [hMapAnims], a
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+
+ call ._hl_
+
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [hMapAnims], a
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 10419c
+
+._hl_ ; 10419c
+ jp hl
+; 10419d
+
+
+HDMATransferToWRAMBank3: ; 10419d (41:419d)
+ call _LoadHDMAParameters
+ ld a, $23
+ ld [hDMATransfer], a
+
+WaitDMATransfer: ; 104a14
+.loop
+ call DelayFrame
+ ld a, [hDMATransfer]
+ and a
+ jr nz, .loop
+ ret
+
+HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait127Scanlines
+
+HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
+; HDMA transfer from hl to [hBGMapAddress]
+; hBGMapAddress -> de
+; 2 * SCREEN_HEIGHT -> c
+; $7b --> b
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+ jr HDMATransfer_Wait123Scanlines
+; 1041c1 (41:41c1)
+
+HDMATransfer_NoDI: ; 1041c1
+; HDMA transfer from hl to [hBGMapAddress]
+; [hBGMapAddress] --> de
+; 2 * SCREEN_HEIGHT --> c
+ ld a, [hBGMapAddress + 1]
+ ld d, a
+ ld a, [hBGMapAddress]
+ ld e, a
+ ld c, 2 * SCREEN_HEIGHT
+
+ ; [rHDMA1, rHDMA2] = hl & $fff0
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0
+ ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
+ ld a, d
+ and $1f
+ ld [rHDMA3], a
+ ld a, e
+ and $f0
+ ld [rHDMA4], a
+ ; b = c | %10000000
+ ld a, c
+ dec c
+ or $80
+ ld b, a
+ ; d = $7f - c + 1
+ ld a, $7f
+ sub c
+ ld d, a
+ ; while [rLY] >= d: pass
+.loop1
+ ld a, [rLY]
+ cp d
+ jr nc, .loop1
+ ; while not [rSTAT] & 3: pass
+.loop2
+ ld a, [rSTAT]
+ and $3
+ jr z, .loop2
+ ; load the 5th byte of HDMA
+ ld a, b
+ ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.loop3
+ cp [hl]
+ jr z, .loop3
+ ld a, [hl]
+ dec c
+ jr nz, .loop3
+ ld hl, rHDMA5
+ res 7, [hl]
+ ret
+; 104205
+
+HDMATransfer_Wait123Scanlines:
+ ld b, $7b
+ jr _continue_HDMATransfer
+
+
+HDMATransfer_Wait127Scanlines:
+ ld b, $7f
+_continue_HDMATransfer:
+; a lot of waiting around for hardware registers
+ ; [rHDMA1, rHDMA2] = hl & $fff0
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ and $f0 ; high nybble
+ ld [rHDMA2], a
+ ; [rHDMA3, rHDMA4] = de & $1ff0
+ ld a, d
+ and $1f ; lower 5 bits
+ ld [rHDMA3], a
+ ld a, e
+ and $f0 ; high nybble
+ ld [rHDMA4], a
+ ; e = c | %10000000
+ ld a, c
+ dec c
+ or $80
+ ld e, a
+ ; d = b - c + 1
+ ld a, b
+ sub c
+ ld d, a
+ ; while [rLY] >= d: pass
+.ly_loop
+ ld a, [rLY]
+ cp d
+ jr nc, .ly_loop
+
+ di
+ ; while [rSTAT] & 3: pass
+.rstat_loop_1
+ ld a, [rSTAT]
+ and $3
+ jr nz, .rstat_loop_1
+ ; while not [rSTAT] & 3: pass
+.rstat_loop_2
+ ld a, [rSTAT]
+ and $3
+ jr z, .rstat_loop_2
+ ; load the 5th byte of HDMA
+ ld a, e
+ ld [rHDMA5], a
+ ; wait until rLY advances (c + 1) times
+ ld a, [rLY]
+ inc c
+ ld hl, rLY
+.final_ly_loop
+ cp [hl]
+ jr z, .final_ly_loop
+ ld a, [hl]
+ dec c
+ jr nz, .final_ly_loop
+ ld hl, rHDMA5
+ res 7, [hl]
+ ei
+
+ ret
+; 10424e
+
+
+_LoadHDMAParameters: ; 10424e (41:424e)
+ ld a, h
+ ld [rHDMA1], a
+ ld a, l
+ ld [rHDMA2], a
+ ld a, [hBGMapAddress + 1]
+ and $1f
+ ld [rHDMA3], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA4], a
+ ret
+
+CutAndPasteTilemap: ; 10425f (41:425f)
+ ld c, " "
+ jr CutAndPasteMap
+
+CutAndPasteAttrMap: ; 104263 (41:4263)
+ ld c, $0
+
+CutAndPasteMap: ; 104265 (41:4265)
+; back up the value of c to hMapObjectIndexBuffer
+ ld a, [hMapObjectIndexBuffer]
+ push af
+ ld a, c
+ ld [hMapObjectIndexBuffer], a
+
+; for each row on the screen
+ ld c, SCREEN_HEIGHT
+.loop1
+; for each tile in the row
+ ld b, SCREEN_WIDTH
+.loop2
+; copy from de to hl
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .loop2
+
+; load the original value of c into hl 12 times
+ ld a, [hMapObjectIndexBuffer]
+ ld b, BG_MAP_WIDTH - SCREEN_WIDTH
+.loop3
+ ld [hli], a
+ dec b
+ jr nz, .loop3
+
+ dec c
+ jr nz, .loop1
+
+; restore the original value of hMapObjectIndexBuffer
+ pop af
+ ld [hMapObjectIndexBuffer], a
+ ret
+
+
+_Get2bpp:: ; 104284
+ ; 2bpp when [rLCDC] & $80
+ ; switch to WRAM bank 6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ; Copy c tiles of the 2bpp from b:de to wScratchTileMap
+ ld a, b ; bank
+ ld l, c ; number of tiles
+ ld h, $0
+ ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld b, h
+ ld c, l
+ ld h, d ; address
+ ld l, e
+ ld de, wScratchTileMap
+ call FarCopyBytes
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
+
+ ; restore the previous bank
+ pop af
+ ld [rSVBK], a
+ ret
+; 1042b2
+
+_Get1bpp:: ; 1042b2
+ ; 1bpp when [rLCDC] & $80
+.loop
+ ld a, c
+ cp $10
+ jp c, .bankswitch
+ jp z, .bankswitch
+ push bc
+ push hl
+ push de
+ ld c, $10
+ call .bankswitch
+ pop de
+ ld hl, $80
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ lb bc, 1, 0
+ add hl, bc
+ pop bc
+ ld a, c
+ sub $10
+ ld c, a
+ jr .loop
+; 1042d6
+
+.bankswitch ; 1042d6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ push bc
+ push hl
+
+ ld a, b
+ ld l, c
+ ld h, $0
+ add hl, hl ; multiply by 8
+ add hl, hl ; multiply by 8
+ add hl, hl ; multiply by 8
+ ld c, l
+ ld b, h
+ ld h, d
+ ld l, e
+ ld de, wScratchTileMap
+ call FarCopyBytesDouble_DoubleBankSwitch
+
+ pop hl
+ pop bc
+
+ push bc
+ call DelayFrame
+ pop bc
+
+ ld d, h
+ ld e, l
+ ld hl, wScratchTileMap
+ call HDMATransfer_Wait127Scanlines
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 104303
+
+HDMATransfer_OnlyTopFourRows: ; 104303
+ ld hl, .Function
+ jp CallInSafeGFXMode
+; 104309
+
+.Function:
+ ld hl, wScratchTileMap
+ decoord 0, 0
+ call .Copy
+ ld hl, wScratchTileMap + $80
+ decoord 0, 0, AttrMap
+ call .Copy
+ ld a, $1
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wScratchTileMap + $80
+ debgcoord 0, 0, VBGMap1
+ call HDMATransfer_Wait127Scanlines
+ ld a, $0
+ ld [rVBK], a
+ ld c, $8
+ ld hl, wScratchTileMap
+ debgcoord 0, 0, VBGMap1
+ call HDMATransfer_Wait127Scanlines
+ ret
+
+.Copy: ; 10433a (41:433a)
+ ld b, 4
+.outer_loop
+ ld c, SCREEN_WIDTH
+.inner_loop
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .inner_loop
+ ld a, l
+ add BG_MAP_WIDTH - SCREEN_WIDTH
+ ld l, a
+ ld a, h
+ adc $0
+ ld h, a
+ dec b
+ jr nz, .outer_loop
+ ret
+; 104350
diff --git a/engine/empty_sram.asm b/engine/empty_sram.asm
new file mode 100644
index 000000000..aa4b28e0d
--- /dev/null
+++ b/engine/empty_sram.asm
@@ -0,0 +1,19 @@
+EmptyAllSRAMBanks: ; 4cf1f
+ ld a, $0
+ call .EmptyBank
+ ld a, $1
+ call .EmptyBank
+ ld a, $2
+ call .EmptyBank
+ ld a, $3
+ call .EmptyBank
+ ret
+
+.EmptyBank: ; 4cf34
+ call GetSRAMBank
+ ld hl, SRAM_Begin
+ ld bc, SRAM_End - SRAM_Begin
+ xor a
+ call ByteFill
+ call CloseSRAM
+ ret
diff --git a/engine/european_mail.asm b/engine/european_mail.asm
new file mode 100644
index 000000000..8f037cc43
--- /dev/null
+++ b/engine/european_mail.asm
@@ -0,0 +1,129 @@
+IsMailEuropean: ; 1de5c8
+; return 1 if French
+; return 2 if German
+; return 3 if Italian
+; return 4 if Spanish
+; return 0 if none of the above
+ ld c, $0
+ ld hl, sPartyMon1MailAuthorNationality - sPartyMon1Mail
+ add hl, de
+ ld a, [hli]
+ cp "E"
+ ret nz
+ ld a, [hli]
+ inc c
+ cp "F"
+ ret z
+ inc c
+ cp "G"
+ ret z
+ inc c
+ cp "I"
+ ret z
+ inc c
+ cp "S"
+ ret z
+ ld c, $0
+ ret
+
+; The regular font.
+StandardEnglishFont: ; 1de5e6
+INCBIN "gfx/font/english.1bpp"
+
+; An extended font.
+FrenchGermanFont: ; 1de9e6
+INCBIN "gfx/font/french_german.1bpp"
+
+; An even more extended font.
+SpanishItalianFont: ; 1dede6
+INCBIN "gfx/font/spanish_italian.1bpp"
+
+HandleFrenchGermanMail: ; 1df1e6
+; called if mail is french or german
+; fix 's 't 'v
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hl]
+ cp $dc ; 's in french/german font
+ jr nz, .check_intermediate_chars
+ ld a, "'s"
+ jr .replace
+
+.check_intermediate_chars
+ sub "'s"
+ jr c, .dont_replace
+ cp "'v" - "'s" + 1
+ jr nc, .dont_replace
+ add $cd
+
+.replace
+ ld [hl], a
+
+.dont_replace
+ inc hl
+ dec b
+ jr nz, .loop
+ ret
+
+LireLeCourrierAnglais:
+DeutenEnglischenPost: ; 1df203
+; Cette fonction convertit certains des caractères anglais pour
+; leur équivalent dans le jeu de caractères français.
+; Diese Funktion wandelt bestimmte englische Zeichen, um ihre
+; Entsprechung in der Deutschen-Zeichensatz.
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hl]
+ cp "'s"
+ jr nz, .check_intermediate_chars
+ ld a, $dc
+ jr .replace
+
+.check_intermediate_chars
+ sub $cd
+ jr c, .dont_replace
+ cp "'v" - "'s" + 1
+ jr nc, .dont_replace
+ add "'s"
+
+.replace
+ ld [hl], a
+
+.dont_replace
+ inc hl
+ dec b
+ jr nz, .loop
+ ret
+
+HandleSpanishItalianMail: ; 1df220
+LeerCorreosIngleses:
+LeggiPostaInglese:
+; This function converts certain characters between
+; the English and Spanish/Italian character sets.
+; Esta función convierte ciertos caracteres entre
+; el juego de caracteres Inglés y Español.
+; Questa funzione converte alcuni caratteri tra
+; l'inglese e il set di caratteri italiani.
+ ld b, sPartyMon1MailAuthor - sPartyMon1Mail
+ ld h, d
+ ld l, e
+.loop
+ ld a, [hl]
+ and $f0
+ cp $d0
+ jr nz, .dont_replace
+ ld a, [hl]
+ add $8
+ and $f
+ or $d0
+ ld [hl], a
+
+.dont_replace
+ inc hl
+ dec b
+ jr nz, .loop
+ ret
diff --git a/engine/experience.asm b/engine/experience.asm
new file mode 100644
index 000000000..c33aaf02a
--- /dev/null
+++ b/engine/experience.asm
@@ -0,0 +1,162 @@
+CalcLevel: ; 50e1b
+ ld a, [TempMonSpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld d, 1
+.next_level
+ inc d
+ ld a, d
+ cp (MAX_LEVEL + 1) % $100
+ jr z, .got_level
+ call CalcExpAtLevel
+ push hl
+ ld hl, TempMonExp + 2
+ ld a, [hProduct + 3]
+ ld c, a
+ ld a, [hld]
+ sub c
+ ld a, [hProduct + 2]
+ ld c, a
+ ld a, [hld]
+ sbc c
+ ld a, [hProduct + 1]
+ ld c, a
+ ld a, [hl]
+ sbc c
+ pop hl
+ jr nc, .next_level
+
+.got_level
+ dec d
+ ret
+
+CalcExpAtLevel: ; 50e47
+; (a/b)*n**3 + c*n**2 + d*n - e
+ ld a, [BaseGrowthRate]
+ add a
+ add a
+ ld c, a
+ ld b, 0
+ ld hl, GrowthRates
+ add hl, bc
+; Cube the level
+ call .LevelSquared
+ ld a, d
+ ld [hMultiplier], a
+ call Multiply
+
+; Multiply by a
+ ld a, [hl]
+ and $f0
+ swap a
+ ld [hMultiplier], a
+ call Multiply
+; Divide by b
+ ld a, [hli]
+ and $f
+ ld [hDivisor], a
+ ld b, 4
+ call Divide
+; Push the cubic term to the stack
+ ld a, [hQuotient + 0]
+ push af
+ ld a, [hQuotient + 1]
+ push af
+ ld a, [hQuotient + 2]
+ push af
+; Square the level and multiply by the lower 7 bits of c
+ call .LevelSquared
+ ld a, [hl]
+ and $7f
+ ld [hMultiplier], a
+ call Multiply
+; Push the absolute value of the quadratic term to the stack
+ ld a, [hProduct + 1]
+ push af
+ ld a, [hProduct + 2]
+ push af
+ ld a, [hProduct + 3]
+ push af
+ ld a, [hli]
+ push af
+; Multiply the level by d
+ xor a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ ld a, d
+ ld [hMultiplicand + 2], a
+ ld a, [hli]
+ ld [hMultiplier], a
+ call Multiply
+; Subtract e
+ ld b, [hl]
+ ld a, [hProduct + 3]
+ sub b
+ ld [hMultiplicand + 2], a
+ ld b, $0
+ ld a, [hProduct + 2]
+ sbc b
+ ld [hMultiplicand + 1], a
+ ld a, [hProduct + 1]
+ sbc b
+ ld [hMultiplicand], a
+; If bit 7 of c is set, c is negative; otherwise, it's positive
+ pop af
+ and $80
+ jr nz, .subtract
+; Add c*n**2 to (d*n - e)
+ pop bc
+ ld a, [hProduct + 3]
+ add b
+ ld [hMultiplicand + 2], a
+ pop bc
+ ld a, [hProduct + 2]
+ adc b
+ ld [hMultiplicand + 1], a
+ pop bc
+ ld a, [hProduct + 1]
+ adc b
+ ld [hMultiplicand], a
+ jr .done_quadratic
+
+.subtract
+; Subtract c*n**2 from (d*n - e)
+ pop bc
+ ld a, [hProduct + 3]
+ sub b
+ ld [hMultiplicand + 2], a
+ pop bc
+ ld a, [hProduct + 2]
+ sbc b
+ ld [hMultiplicand + 1], a
+ pop bc
+ ld a, [hProduct + 1]
+ sbc b
+ ld [hMultiplicand], a
+
+.done_quadratic
+; Add (a/b)*n**3 to (d*n - e +/- c*n**2)
+ pop bc
+ ld a, [hProduct + 3]
+ add b
+ ld [hMultiplicand + 2], a
+ pop bc
+ ld a, [hProduct + 2]
+ adc b
+ ld [hMultiplicand + 1], a
+ pop bc
+ ld a, [hProduct + 1]
+ adc b
+ ld [hMultiplicand], a
+ ret
+
+.LevelSquared: ; 50eed
+ xor a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ ld a, d
+ ld [hMultiplicand + 2], a
+ ld [hMultiplier], a
+ jp Multiply
+
+INCLUDE "data/growth_rates.asm"
diff --git a/engine/flag_predef.asm b/engine/flag_predef.asm
new file mode 100644
index 000000000..bd4f37882
--- /dev/null
+++ b/engine/flag_predef.asm
@@ -0,0 +1,70 @@
+FlagPredef: ; 4d7c1
+; Perform action b on flag c in flag array hl.
+; If checking a flag, check flag array d:hl unless d is 0.
+
+; For longer flag arrays, see FlagAction.
+
+ push hl
+ push bc
+
+; Divide by 8 to get the byte we want.
+ push bc
+ srl c
+ srl c
+ srl c
+ ld b, 0
+ add hl, bc
+ pop bc
+
+; Which bit we want from the byte
+ ld a, c
+ and 7
+ ld c, a
+
+; Shift left until we can mask the bit
+ ld a, 1
+ jr z, .shifted
+.shift
+ add a
+ dec c
+ jr nz, .shift
+.shifted
+ ld c, a
+
+; What are we doing to this flag?
+ dec b
+ jr z, .set ; 1
+ dec b
+ jr z, .check ; 2
+
+.reset
+ ld a, c
+ cpl
+ and [hl]
+ ld [hl], a
+ jr .done
+
+.set
+ ld a, [hl]
+ or c
+ ld [hl], a
+ jr .done
+
+.check
+ ld a, d
+ cp 0
+ jr nz, .farcheck
+
+ ld a, [hl]
+ and c
+ jr .done
+
+.farcheck
+ call GetFarByte
+ and c
+
+.done
+ pop bc
+ pop hl
+ ld c, a
+ ret
diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm
index 5c74b3bff..4f9de8300 100644
--- a/engine/fruit_trees.asm
+++ b/engine/fruit_trees.asm
@@ -103,7 +103,7 @@ GetFruitTreeItem: ; 4408a
; 44097
-INCLUDE "data/fruit_tree_items.asm"
+INCLUDE "data/items/fruit_trees.asm"
FruitBearingTreeText: ; 440b5
diff --git a/misc/gbc_only.asm b/engine/gbc_only.asm
index a77a44d72..a77a44d72 100644
--- a/misc/gbc_only.asm
+++ b/engine/gbc_only.asm
diff --git a/engine/get_breedmon_growth.asm b/engine/get_breedmon_growth.asm
new file mode 100644
index 000000000..20c546315
--- /dev/null
+++ b/engine/get_breedmon_growth.asm
@@ -0,0 +1,27 @@
+GetBreedMon1LevelGrowth: ; e698
+ ld hl, wBreedMon1Stats
+ ld de, TempMon
+ ld bc, BOXMON_STRUCT_LENGTH
+ call CopyBytes
+ callab CalcLevel
+ ld a, [wBreedMon1Level]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
+
+GetBreedMon2LevelGrowth: ; e6b3
+ ld hl, wBreedMon2Stats
+ ld de, TempMon
+ ld bc, BOXMON_STRUCT_LENGTH
+ call CopyBytes
+ callab CalcLevel
+ ld a, [wBreedMon2Level]
+ ld b, a
+ ld a, d
+ ld e, a
+ sub b
+ ld d, a
+ ret
diff --git a/engine/init_gender.asm b/engine/init_gender.asm
index 3ae856029..dfb3fbdd4 100755
--- a/engine/init_gender.asm
+++ b/engine/init_gender.asm
@@ -20,7 +20,7 @@ InitCrystalData: ; 48000
ret
; 4802f
-INCLUDE "misc/mobile_12.asm"
+INCLUDE "mobile/mobile_12.asm"
InitGender: ; 48dcb (12:4dcb)
call InitGenderScreen
diff --git a/engine/init_hof_credits.asm b/engine/init_hof_credits.asm
new file mode 100644
index 000000000..0f55a10ab
--- /dev/null
+++ b/engine/init_hof_credits.asm
@@ -0,0 +1,79 @@
+InitDisplayForHallOfFame: ; 4e881
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ hlbgcoord 0, 0
+ ld bc, VBGMap1 - VBGMap0
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ call EnableLCD
+ ld hl, .SavingRecordDontTurnOff
+ call PrintText
+ call WaitBGMap2
+ call SetPalettes
+ ret
+
+.SavingRecordDontTurnOff: ; 0x4e8bd
+ ; SAVING RECORD… DON'T TURN OFF!
+ text_jump UnknownText_0x1bd39e
+ db "@"
+
+InitDisplayForRedCredits: ; 4e8c2
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ hlbgcoord 0, 0
+ ld bc, VBGMap1 - VBGMap0
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ ld hl, UnknBGPals
+ ld c, 4 tiles
+.load_white_palettes
+ ld a, (palred 31 + palgreen 31 + palblue 31) % $100
+ ld [hli], a
+ ld a, (palred 31 + palgreen 31 + palblue 31) / $100
+ ld [hli], a
+ dec c
+ jr nz, .load_white_palettes
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ call EnableLCD
+ call WaitBGMap2
+ call SetPalettes
+ ret
+
+ResetDisplayBetweenHallOfFameMons: ; 4e906
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, wDecompressScratch
+ ld bc, wScratchAttrMap - wDecompressScratch
+ ld a, " "
+ call ByteFill
+ hlbgcoord 0, 0
+ ld de, wDecompressScratch
+ ld b, 0
+ ld c, 4 tiles
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
diff --git a/engine/init_list.asm b/engine/init_list.asm
new file mode 100644
index 000000000..e2b7235ab
--- /dev/null
+++ b/engine/init_list.asm
@@ -0,0 +1,54 @@
+InitList: ; 50db9
+ ld a, [wInitListType]
+
+ cp INIT_ENEMYOT_LIST
+ jr nz, .check_party_ot_name
+ ld hl, OTPartyCount
+ ld de, OTPartyMonOT
+ ld a, ENEMY_OT_NAME
+ jr .done
+
+.check_party_ot_name
+ cp INIT_PLAYEROT_LIST
+ jr nz, .check_mon_name
+ ld hl, PartyCount
+ ld de, PartyMonOT
+ ld a, PARTY_OT_NAME
+ jr .done
+
+.check_mon_name
+ cp INIT_MON_LIST
+ jr nz, .check_item_name
+ ld hl, CurMart
+ ld de, PokemonNames
+ ld a, PKMN_NAME
+ jr .done
+
+.check_item_name
+ cp INIT_BAG_ITEM_LIST
+ jr nz, .check_ob_item_name
+ ld hl, NumItems
+ ld de, ItemNames
+ ld a, ITEM_NAME
+ jr .done
+
+.check_ob_item_name
+ ld hl, CurMart
+ ld de, ItemNames
+ ld a, ITEM_NAME
+.done
+ ld [wNamedObjectTypeBuffer], a
+ ld a, l
+ ld [wListPointer], a
+ ld a, h
+ ld [wListPointer + 1], a
+ ld a, e
+ ld [wUnusedD102], a
+ ld a, d
+ ld [wUnusedD102 + 1], a
+ ld bc, ItemAttributes
+ ld a, c
+ ld [wItemAttributesPtr], a
+ ld a, b
+ ld [wItemAttributesPtr + 1], a
+ ret
diff --git a/engine/init_map.asm b/engine/init_map.asm
new file mode 100644
index 000000000..5dd6c7b8a
--- /dev/null
+++ b/engine/init_map.asm
@@ -0,0 +1,103 @@
+ReanchorBGMap_NoOAMUpdate:: ; 6454
+ call DelayFrame
+ ld a, [hOAMUpdate]
+ push af
+
+ ld a, $1
+ ld [hOAMUpdate], a
+ ld a, [hBGMapMode]
+ push af
+ xor a
+ ld [hBGMapMode], a
+
+ call .ReanchorBGMap
+
+ pop af
+ ld [hBGMapMode], a
+ pop af
+ ld [hOAMUpdate], a
+ ld hl, VramState
+ set 6, [hl]
+ ret
+
+.ReanchorBGMap:
+ xor a
+ ld [hLCDCPointer], a
+ ld [hBGMapMode], a
+ ld a, $90
+ ld [hWY], a
+ call OverworldTextModeSwitch
+ ld a, VBGMap1 / $100
+ call .LoadBGMapAddrIntoHRAM
+ call _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ callba LoadOW_BGPal7
+ callba ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ld [hWY], a
+ callba HDMATransfer_FillBGMap0WithBlack ; no need to farcall
+ ld a, VBGMap0 / $100
+ call .LoadBGMapAddrIntoHRAM
+ xor a
+ ld [wBGMapAnchor], a
+ ld a, VBGMap0 / $100
+ ld [wBGMapAnchor + 1], a
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ call ApplyBGMapAnchorToObjects
+ ret
+
+.LoadBGMapAddrIntoHRAM: ; 64b9
+ ld [hBGMapAddress + 1], a
+ xor a
+ ld [hBGMapAddress], a
+ ret
+
+LoadFonts_NoOAMUpdate:: ; 64bf
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+
+ call .LoadGFX
+
+ pop af
+ ld [hOAMUpdate], a
+ ret
+
+.LoadGFX:
+ call LoadFontsExtra
+ ld a, $90
+ ld [hWY], a
+ call SafeUpdateSprites
+ call LoadStandardFont
+ ret
+
+HDMATransfer_FillBGMap0WithBlack: ; 64db
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ ld a, "<BLACK>" ; $60
+ ld hl, wDecompressScratch
+ ld bc, wScratchAttrMap - wDecompressScratch
+ call ByteFill
+ ld a, wDecompressScratch / $100
+ ld [rHDMA1], a
+ ld a, wDecompressScratch % $100
+ ld [rHDMA2], a
+ ld a, (VBGMap0 % $8000) / $100
+ ld [rHDMA3], a
+ ld a, (VBGMap0 % $8000) % $100
+ ld [rHDMA4], a
+ ld a, $3f
+ ld [hDMATransfer], a
+ call DelayFrame
+
+ pop af
+ ld [rSVBK], a
+ ret
diff --git a/engine/item_effects.asm b/engine/item_effects.asm
new file mode 100644
index 000000000..e881f6338
--- /dev/null
+++ b/engine/item_effects.asm
@@ -0,0 +1,3318 @@
+_DoItemEffect:: ; e722
+ ld a, [CurItem]
+ ld [wd265], a
+ call GetItemName
+ call CopyName1
+ ld a, 1
+ ld [wItemEffectSucceeded], a
+ ld a, [CurItem]
+ dec a
+ ld hl, ItemEffects
+ rst JumpTable
+ ret
+; e73c
+
+
+ItemEffects: ; e73c
+; entries correspond to item ids (see constants/item_constants.asm)
+ dw MasterBall
+ dw UltraBall
+ dw Brightpowder
+ dw GreatBall
+ dw PokeBall
+ dw TownMap
+ dw Bicycle
+ dw MoonStone
+ dw Antidote
+ dw BurnHeal
+ dw IceHeal
+ dw Awakening
+ dw ParlyzHeal
+ dw FullRestore
+ dw MaxPotion
+ dw HyperPotion
+ dw SuperPotion
+ dw Potion
+ dw EscapeRope
+ dw Repel
+ dw MaxElixer
+ dw FireStone
+ dw Thunderstone
+ dw WaterStone
+ dw Item19
+ dw HPUp
+ dw Protein
+ dw Iron
+ dw Carbos
+ dw LuckyPunch
+ dw Calcium
+ dw RareCandy
+ dw XAccuracy
+ dw LeafStone
+ dw MetalPowder
+ dw Nugget
+ dw PokeDoll
+ dw FullHeal
+ dw Revive
+ dw MaxRevive
+ dw GuardSpec
+ dw SuperRepel
+ dw MaxRepel
+ dw DireHit
+ dw Item2D
+ dw FreshWater
+ dw SodaPop
+ dw Lemonade
+ dw XAttack
+ dw Item32
+ dw XDefend
+ dw XSpeed
+ dw XSpecial
+ dw CoinCase
+ dw Itemfinder
+ dw PokeFlute
+ dw ExpShare
+ dw OldRod
+ dw GoodRod
+ dw SilverLeaf
+ dw SuperRod
+ dw PPUp
+ dw Ether
+ dw MaxEther
+ dw Elixer
+ dw RedScale
+ dw Secretpotion
+ dw SSTicket
+ dw MysteryEgg
+ dw ClearBell
+ dw SilverWing
+ dw MoomooMilk
+ dw QuickClaw
+ dw Psncureberry
+ dw GoldLeaf
+ dw SoftSand
+ dw SharpBeak
+ dw Przcureberry
+ dw BurntBerry
+ dw IceBerry
+ dw PoisonBarb
+ dw KingsRock
+ dw BitterBerry
+ dw MintBerry
+ dw RedApricorn
+ dw Tinymushroom
+ dw BigMushroom
+ dw Silverpowder
+ dw BluApricorn
+ dw Item5A
+ dw AmuletCoin
+ dw YlwApricorn
+ dw GrnApricorn
+ dw CleanseTag
+ dw MysticWater
+ dw Twistedspoon
+ dw WhtApricorn
+ dw Blackbelt
+ dw BlkApricorn
+ dw Item64
+ dw PnkApricorn
+ dw Blackglasses
+ dw Slowpoketail
+ dw PinkBow
+ dw Stick
+ dw SmokeBall
+ dw Nevermeltice
+ dw Magnet
+ dw Miracleberry
+ dw Pearl
+ dw BigPearl
+ dw Everstone
+ dw SpellTag
+ dw Ragecandybar
+ dw GsBall
+ dw BlueCard
+ dw MiracleSeed
+ dw ThickClub
+ dw FocusBand
+ dw Item78
+ dw Energypowder
+ dw EnergyRoot
+ dw HealPowder
+ dw RevivalHerb
+ dw HardStone
+ dw LuckyEgg
+ dw CardKey
+ dw MachinePart
+ dw EggTicket
+ dw LostItem
+ dw Stardust
+ dw StarPiece
+ dw BasementKey
+ dw Pass
+ dw Item87
+ dw Item88
+ dw Item89
+ dw Charcoal
+ dw BerryJuice
+ dw ScopeLens
+ dw Item8D
+ dw Item8E
+ dw MetalCoat
+ dw DragonFang
+ dw Item91
+ dw Leftovers
+ dw Item93
+ dw Item94
+ dw Item95
+ dw Mysteryberry
+ dw DragonScale
+ dw BerserkGene
+ dw Item99
+ dw Item9A
+ dw Item9B
+ dw SacredAsh
+ dw HeavyBall
+ dw FlowerMail
+ dw LevelBall
+ dw LureBall
+ dw FastBall
+ dw ItemA2
+ dw LightBall
+ dw FriendBall
+ dw MoonBall
+ dw LoveBall
+ dw NormalBox
+ dw GorgeousBox
+ dw SunStone
+ dw PolkadotBow
+ dw ItemAB
+ dw UpGrade
+ dw Berry
+ dw GoldBerry
+ dw Squirtbottle
+ dw ItemB0
+ dw ParkBall
+ dw RainbowWing
+ dw ItemB3
+; e8a2
+
+
+MasterBall:
+UltraBall:
+GreatBall:
+PokeBall:
+HeavyBall:
+LevelBall:
+LureBall:
+FastBall:
+FriendBall:
+MoonBall:
+LoveBall:
+ParkBall: ; e8a2
+ ld a, [wBattleMode]
+ dec a
+ jp nz, UseBallInTrainerBattle
+
+ ld a, [PartyCount]
+ cp PARTY_LENGTH
+ jr nz, .room_in_party
+
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ cp MONS_PER_BOX
+ call CloseSRAM
+ jp z, Ball_BoxIsFullMessage
+
+.room_in_party
+ xor a
+ ld [wWildMon], a
+ ld a, [CurItem]
+ cp PARK_BALL
+ call nz, ReturnToBattle_UseBall
+
+ ld hl, Options
+ res NO_TEXT_SCROLL, [hl]
+ ld hl, UsedItemText
+ call PrintText
+
+ ld a, [EnemyMonCatchRate]
+ ld b, a
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jp z, .catch_without_fail
+ ld a, [CurItem]
+ cp MASTER_BALL
+ jp z, .catch_without_fail
+ ld a, [CurItem]
+ ld c, a
+ ld hl, BallMultiplierFunctionTable
+
+.get_multiplier_loop
+ ld a, [hli]
+ cp $ff
+ jr z, .skip_or_return_from_ball_fn
+ cp c
+ jr z, .call_ball_function
+ inc hl
+ inc hl
+ jr .get_multiplier_loop
+
+.call_ball_function
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .skip_or_return_from_ball_fn
+ push de
+ jp hl
+
+.skip_or_return_from_ball_fn
+ ld a, [CurItem]
+ cp LEVEL_BALL
+ ld a, b
+ jp z, .skip_hp_calc
+
+ ld a, b
+ ld [hMultiplicand + 2], a
+
+ ld hl, EnemyMonHP
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ sla c
+ rl b
+
+ ld h, d
+ ld l, e
+ add hl, de
+ add hl, de
+ ld d, h
+ ld e, l
+ ld a, d
+ and a
+ jr z, .okay_1
+
+ srl d
+ rr e
+ srl d
+ rr e
+ srl b
+ rr c
+ srl b
+ rr c
+
+ ld a, c
+ and a
+ jr nz, .okay_1
+ ld c, $1
+.okay_1
+ ld b, e
+
+ push bc
+ ld a, b
+ sub c
+ ld [hMultiplier], a
+ xor a
+ ld [hDividend + 0], a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ call Multiply
+ pop bc
+
+ ld a, b
+ ld [hDivisor], a
+ ld b, $4
+ call Divide
+
+ ld a, [hQuotient + 2]
+ and a
+ jr nz, .statuscheck
+ ld a, 1
+.statuscheck
+; This routine is buggy. It was intended that SLP and FRZ provide a higher
+; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
+; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
+; benefit.
+; Uncomment the line below to fix this.
+ ld b, a
+ ld a, [EnemyMonStatus]
+ and 1 << FRZ | SLP
+ ld c, 10
+ jr nz, .addstatus
+ ; ld a, [EnemyMonStatus]
+ and a
+ ld c, 5
+ jr nz, .addstatus
+ ld c, 0
+.addstatus
+ ld a, b
+ add c
+ jr nc, .max_1
+ ld a, $ff
+.max_1
+
+ ld d, a
+ push de
+
+ ; BUG: callba overwrites a,
+ ; and GetItemHeldEffect takes b anyway.
+
+ ; This is probably the reason
+ ; the HELD_CATCH_CHANCE effect
+ ; is never used.
+
+ ; Uncomment the line below to fix.
+
+ ld a, [BattleMonItem]
+; ld b, a
+ callba GetItemHeldEffect
+ ld a, b
+ cp HELD_CATCH_CHANCE
+
+ pop de
+ ld a, d
+
+ jr nz, .skip_hp_calc
+ add c
+ jr nc, .skip_hp_calc
+ ld a, $ff
+.skip_hp_calc
+
+ ld b, a
+ ld [Buffer1], a
+ call Random
+
+ cp b
+ ld a, 0
+ jr z, .catch_without_fail
+ jr nc, .fail_to_catch
+
+.catch_without_fail
+ ld a, [EnemyMonSpecies]
+
+.fail_to_catch
+ ld [wWildMon], a
+ ld c, 20
+ call DelayFrames
+
+ ld a, [CurItem]
+ cp POKE_BALL + 1 ; Assumes Master/Ultra/Great come before
+ jr c, .not_kurt_ball
+ ld a, POKE_BALL
+.not_kurt_ball
+ ld [wBattleAnimParam], a
+
+ ld de, ANIM_THROW_POKE_BALL
+ ld a, e
+ ld [FXAnimID], a
+ ld a, d
+ ld [FXAnimID + 1], a
+ xor a
+ ld [hBattleTurn], a
+ ld [Buffer2], a
+ ld [wNumHits], a
+ predef PlayBattleAnim
+
+ ld a, [wWildMon]
+ and a
+ jr nz, .caught
+ ld a, [Buffer2]
+ cp $1
+ ld hl, Text_NoShake
+ jp z, .shake_and_break_free
+ cp $2
+ ld hl, Text_OneShake
+ jp z, .shake_and_break_free
+ cp $3
+ ld hl, Text_TwoShakes
+ jp z, .shake_and_break_free
+ cp $4
+ ld hl, Text_ThreeShakes
+ jp z, .shake_and_break_free
+.caught
+
+ ld hl, EnemyMonStatus
+ ld a, [hli]
+ push af
+ inc hl
+ ld a, [hli]
+ push af
+ ld a, [hl]
+ push af
+ push hl
+ ld hl, EnemyMonItem
+ ld a, [hl]
+ push af
+ push hl
+ ld hl, EnemySubStatus5
+ ld a, [hl]
+ push af
+ set SUBSTATUS_TRANSFORMED, [hl]
+
+; This code is buggy. Any wild Pokémon that has Transformed will be
+; caught as a Ditto, even if it was something else like Mew.
+; To fix, do not set [TempEnemyMonSpecies] to DITTO.
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .ditto
+ jr .not_ditto
+
+.ditto
+ ld a, DITTO
+ ld [TempEnemyMonSpecies], a
+ jr .load_data
+
+.not_ditto
+ set SUBSTATUS_TRANSFORMED, [hl]
+ ld hl, wEnemyBackupDVs
+ ld a, [EnemyMonDVs]
+ ld [hli], a
+ ld a, [EnemyMonDVs + 1]
+ ld [hl], a
+
+.load_data
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [EnemyMonLevel]
+ ld [CurPartyLevel], a
+ callba LoadEnemyMon
+
+ pop af
+ ld [EnemySubStatus5], a
+
+ pop hl
+ pop af
+ ld [hl], a
+ pop hl
+ pop af
+ ld [hld], a
+ pop af
+ ld [hld], a
+ dec hl
+ pop af
+ ld [hl], a
+
+ ld hl, EnemySubStatus5
+ bit SUBSTATUS_TRANSFORMED, [hl]
+ jr nz, .Transformed
+ ld hl, wWildMonMoves
+ ld de, EnemyMonMoves
+ ld bc, NUM_MOVES
+ call CopyBytes
+
+ ld hl, wWildMonPP
+ ld de, EnemyMonPP
+ ld bc, NUM_MOVES
+ call CopyBytes
+.Transformed:
+
+ ld a, [EnemyMonSpecies]
+ ld [wWildMon], a
+ ld [CurPartySpecies], a
+ ld [wd265], a
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ jp z, .FinishTutorial
+
+ callba TrainerRankings_WildMonsCaught
+
+ ld hl, Text_GotchaMonWasCaught
+ call PrintText
+
+ call ClearSprites
+
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+
+ ld a, c
+ push af
+ ld a, [wd265]
+ dec a
+ call SetSeenAndCaughtMon
+ pop af
+ and a
+ jr nz, .skip_pokedex
+
+ call CheckReceivedDex
+ jr z, .skip_pokedex
+
+ ld hl, Text_AddedToPokedex
+ call PrintText
+
+ call ClearSprites
+
+ ld a, [EnemyMonSpecies]
+ ld [wd265], a
+ predef NewPokedexEntry
+
+.skip_pokedex
+ ld a, [BattleType]
+ cp BATTLETYPE_CONTEST
+ jp z, .catch_bug_contest_mon
+ cp BATTLETYPE_CELEBI
+ jr nz, .not_celebi
+ ld hl, wBattleResult
+ set 6, [hl]
+.not_celebi
+
+ ld a, [PartyCount]
+ cp PARTY_LENGTH
+ jr z, .SendToPC
+
+ xor a ; PARTYMON
+ ld [MonType], a
+ call ClearSprites
+
+ predef TryAddMonToParty
+
+ callba SetCaughtData
+
+ ld a, [CurItem]
+ cp FRIEND_BALL
+ jr nz, .SkipPartyMonFriendBall
+
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Happiness
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+
+ ld a, FRIEND_BALL_HAPPINESS
+ ld [hl], a
+.SkipPartyMonFriendBall:
+
+ ld hl, Text_AskNicknameNewlyCaughtMon
+ call PrintText
+
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+
+ call YesNoBox
+ jp c, .return_from_capture
+
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call AddNTimes
+
+ ld d, h
+ ld e, l
+ push de
+ xor a ; PARTYMON
+ ld [MonType], a
+ ld b, 0
+ callba NamingScreen
+
+ call RotateThreePalettesRight
+
+ call LoadStandardFont
+
+ pop hl
+ ld de, StringBuffer1
+ call InitName
+
+ jp .return_from_capture
+
+.SendToPC:
+ call ClearSprites
+
+ predef SentPkmnIntoBox
+
+ callba SetBoxMonCaughtData
+
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+
+ ld a, [sBoxCount]
+ cp MONS_PER_BOX
+ jr nz, .BoxNotFullYet
+ ld hl, wBattleResult
+ set 7, [hl]
+.BoxNotFullYet:
+ ld a, [CurItem]
+ cp FRIEND_BALL
+ jr nz, .SkipBoxMonFriendBall
+ ; The captured mon is now first in the box
+ ld a, FRIEND_BALL_HAPPINESS
+ ld [sBoxMon1Happiness], a
+.SkipBoxMonFriendBall:
+ call CloseSRAM
+
+ ld hl, Text_AskNicknameNewlyCaughtMon
+ call PrintText
+
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+
+ call YesNoBox
+ jr c, .SkipBoxMonNickname
+
+ xor a
+ ld [CurPartyMon], a
+ ld a, BOXMON
+ ld [MonType], a
+ ld de, wMonOrItemNameBuffer
+ ld b, $0
+ callba NamingScreen
+
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+
+ ld hl, wMonOrItemNameBuffer
+ ld de, sBoxMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+ ld hl, sBoxMonNicknames
+ ld de, StringBuffer1
+ call InitName
+
+ call CloseSRAM
+
+.SkipBoxMonNickname:
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+
+ ld hl, sBoxMonNicknames
+ ld de, wMonOrItemNameBuffer
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+ call CloseSRAM
+
+ ld hl, Text_SentToBillsPC
+ call PrintText
+
+ call RotateThreePalettesRight
+ call LoadStandardFont
+ jr .return_from_capture
+
+.catch_bug_contest_mon
+ callba BugContest_SetCaughtContestMon
+ jr .return_from_capture
+
+.FinishTutorial:
+ ld hl, Text_GotchaMonWasCaught
+
+.shake_and_break_free
+ call PrintText
+ call ClearSprites
+
+.return_from_capture
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ ret z
+ cp BATTLETYPE_DEBUG
+ ret z
+ cp BATTLETYPE_CONTEST
+ jr z, .used_park_ball
+
+ ld a, [wWildMon]
+ and a
+ jr z, .toss
+
+ call ClearBGPalettes
+ call ClearTileMap
+
+.toss
+ ld hl, NumItems
+ inc a
+ ld [wItemQuantityChangeBuffer], a
+ jp TossItem
+
+.used_park_ball
+ ld hl, wParkBallsRemaining
+ dec [hl]
+ ret
+; ec0a
+
+
+BallMultiplierFunctionTable:
+; table of routines that increase or decrease the catch rate based on
+; which ball is used in a certain situation.
+ dbw ULTRA_BALL, UltraBallMultiplier
+ dbw GREAT_BALL, GreatBallMultiplier
+ dbw SAFARI_BALL, SafariBallMultiplier ; Safari Ball, leftover from RBY
+ dbw HEAVY_BALL, HeavyBallMultiplier
+ dbw LEVEL_BALL, LevelBallMultiplier
+ dbw LURE_BALL, LureBallMultiplier
+ dbw FAST_BALL, FastBallMultiplier
+ dbw MOON_BALL, MoonBallMultiplier
+ dbw LOVE_BALL, LoveBallMultiplier
+ dbw PARK_BALL, ParkBallMultiplier
+ db $ff
+
+UltraBallMultiplier:
+; multiply catch rate by 2
+ sla b
+ ret nc
+ ld b, $ff
+ ret
+
+SafariBallMultiplier:
+GreatBallMultiplier:
+ParkBallMultiplier:
+; multiply catch rate by 1.5
+ ld a, b
+ srl a
+ add b
+ ld b, a
+ ret nc
+ ld b, $ff
+ ret
+
+GetPokedexEntryBank:
+ push hl
+ push de
+ ld a, [EnemyMonSpecies]
+ rlca
+ rlca
+ and 3
+ ld hl, .PokedexEntryBanks
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ pop de
+ pop hl
+ ret
+
+.PokedexEntryBanks:
+
+GLOBAL PokedexEntries1
+GLOBAL PokedexEntries2
+GLOBAL PokedexEntries3
+GLOBAL PokedexEntries4
+
+ db BANK(PokedexEntries1)
+ db BANK(PokedexEntries2)
+ db BANK(PokedexEntries3)
+ db BANK(PokedexEntries4)
+
+HeavyBallMultiplier:
+; subtract 20 from catch rate if weight < 102.4 kg
+; else add 0 to catch rate if weight < 204.8 kg
+; else add 20 to catch rate if weight < 307.2 kg
+; else add 30 to catch rate if weight < 409.6 kg
+; else add 40 to catch rate (never happens)
+ ld a, [EnemyMonSpecies]
+ ld hl, PokedexDataPointerTable
+ dec a
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, BANK(PokedexDataPointerTable)
+ call GetFarHalfword
+
+.SkipText:
+ call GetPokedexEntryBank
+ call GetFarByte
+ inc hl
+ cp "@"
+ jr nz, .SkipText
+
+ call GetPokedexEntryBank
+ push bc
+ inc hl
+ inc hl
+ call GetFarHalfword
+
+ srl h
+ rr l
+ ld b, h
+ ld c, l
+
+ rept 4
+ srl b
+ rr c
+ endr
+ call .subbc
+
+ srl b
+ rr c
+ call .subbc
+
+ ld a, h
+ pop bc
+ jr .compare
+
+.subbc
+ ; subtract bc from hl
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ pop bc
+ ret
+
+.compare
+ ld c, a
+ cp 1024 >> 8 ; 102.4 kg
+ jr c, .lightmon
+
+ ld hl, .WeightsTable
+.lookup
+ ld a, c
+ cp [hl]
+ jr c, .heavymon
+ inc hl
+ inc hl
+ jr .lookup
+
+.heavymon
+ inc hl
+ ld a, b
+ add [hl]
+ ld b, a
+ ret nc
+ ld b, $ff
+ ret
+
+.lightmon
+ ld a, b
+ sub 20
+ ld b, a
+ ret nc
+ ld b, $1
+ ret
+
+.WeightsTable:
+; weight factor, boost
+ db 2048 >> 8, 0
+ db 3072 >> 8, 20
+ db 4096 >> 8, 30
+ db 65280 >> 8, 40
+
+LureBallMultiplier:
+; multiply catch rate by 3 if this is a fishing rod battle
+ ld a, [BattleType]
+ cp BATTLETYPE_FISH
+ ret nz
+
+ ld a, b
+ add a
+ jr c, .max
+
+ add b
+ jr nc, .done
+.max
+ ld a, $ff
+.done
+ ld b, a
+ ret
+
+MoonBallMultiplier:
+; This function is buggy.
+; Intent: multiply catch rate by 4 if mon evolves with moon stone
+; Reality: no boost
+
+GLOBAL EvosAttacks
+GLOBAL EvosAttacksPointers
+
+ push bc
+ ld a, [TempEnemyMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EvosAttacksPointers
+ add hl, bc
+ add hl, bc
+ ld a, BANK(EvosAttacksPointers)
+ call GetFarHalfword
+ pop bc
+
+ push bc
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ cp EVOLVE_ITEM
+ pop bc
+ ret nz
+
+ inc hl
+ inc hl
+ inc hl
+
+; Moon Stone's constant from Pokémon Red is used.
+; No Pokémon evolve with Burn Heal,
+; so Moon Balls always have a catch rate of 1×.
+ push bc
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ cp MOON_STONE_RED ; BURN_HEAL
+ pop bc
+ ret nz
+
+ sla b
+ jr c, .max
+ sla b
+ jr nc, .done
+.max
+ ld b, $ff
+.done
+ ret
+
+LoveBallMultiplier:
+; This function is buggy.
+; Intent: multiply catch rate by 8 if mons are of same species, different sex
+; Reality: multiply catch rate by 8 if mons are of same species, same sex
+
+ ; does species match?
+ ld a, [TempEnemyMonSpecies]
+ ld c, a
+ ld a, [TempBattleMonSpecies]
+ cp c
+ ret nz
+
+ ; check player mon species
+ push bc
+ ld a, [TempBattleMonSpecies]
+ ld [CurPartySpecies], a
+ xor a ; PARTYMON
+ ld [MonType], a
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ callba GetGender
+ jr c, .done1 ; no effect on genderless
+
+ ld d, 0 ; male
+ jr nz, .playermale
+ inc d ; female
+.playermale
+
+ ; check wild mon species
+ push de
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld a, WILDMON
+ ld [MonType], a
+ callba GetGender
+ jr c, .done2 ; no effect on genderless
+
+ ld d, 0 ; male
+ jr nz, .wildmale
+ inc d ; female
+.wildmale
+
+ ld a, d
+ pop de
+ cp d
+ pop bc
+ ret nz ; for the intended effect, this should be "ret z"
+
+ sla b
+ jr c, .max
+ sla b
+ jr c, .max
+ sla b
+ ret nc
+.max
+ ld b, $ff
+ ret
+
+.done2
+ pop de
+
+.done1
+ pop bc
+ ret
+
+FastBallMultiplier:
+; This function is buggy.
+; Intent: multiply catch rate by 4 if enemy mon is in one of the three
+; FleeMons tables.
+; Reality: multiply catch rate by 4 if enemy mon is one of the first three in
+; the first FleeMons table.
+ ld a, [TempEnemyMonSpecies]
+ ld c, a
+ ld hl, FleeMons
+ ld d, 3
+
+.loop
+ ld a, BANK(FleeMons)
+ call GetFarByte
+
+ inc hl
+ cp -1
+ jr z, .next
+ cp c
+ jr nz, .next ; for the intended effect, this should be "jr nz, .loop"
+ sla b
+ jr c, .max
+
+ sla b
+ ret nc
+
+.max
+ ld b, $ff
+ ret
+
+.next
+ dec d
+ jr nz, .loop
+ ret
+
+LevelBallMultiplier:
+; multiply catch rate by 8 if player mon level / 4 > enemy mon level
+; multiply catch rate by 4 if player mon level / 2 > enemy mon level
+; multiply catch rate by 2 if player mon level > enemy mon level
+ ld a, [BattleMonLevel]
+ ld c, a
+ ld a, [EnemyMonLevel]
+ cp c
+ ret nc ; if player is lower level, we're done here
+ sla b
+ jr c, .max
+
+ srl c
+ cp c
+ ret nc ; if player/2 is lower level, we're done here
+ sla b
+ jr c, .max
+
+ srl c
+ cp c
+ ret nc ; if player/4 is lower level, we're done here
+ sla b
+ ret nc
+
+.max
+ ld b, $ff
+ ret
+
+; These two texts were carried over from gen 1.
+; They are not used in gen 2, and are dummied out.
+
+Text_RBY_CatchMarowak: ; 0xedab
+ ; It dodged the thrown BALL! This #MON can't be caught!
+ text_jump UnknownText_0x1c5a5a
+ db "@"
+; 0xedb0
+
+Text_RBY_NoShake: ; 0xedb0
+ ; You missed the #MON!
+ text_jump UnknownText_0x1c5a90
+ db "@"
+; 0xedb5
+
+Text_NoShake: ; 0xedb5
+ ; Oh no! The #MON broke free!
+ text_jump UnknownText_0x1c5aa6
+ db "@"
+; 0xedba
+
+Text_OneShake: ; 0xedba
+ ; Aww! It appeared to be caught!
+ text_jump UnknownText_0x1c5ac3
+ db "@"
+; 0xedbf
+
+Text_TwoShakes: ; 0xedbf
+ ; Aargh! Almost had it!
+ text_jump UnknownText_0x1c5ae3
+ db "@"
+; 0xedc4
+
+Text_ThreeShakes: ; 0xedc4
+ ; Shoot! It was so close too!
+ text_jump UnknownText_0x1c5afa
+ db "@"
+; 0xedc9
+
+Text_GotchaMonWasCaught: ; 0xedc9
+ ; Gotcha! @ was caught!@ @
+ text_jump UnknownText_0x1c5b17
+ start_asm
+ call WaitSFX
+ push bc
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ ld de, MUSIC_CAPTURE
+ call PlayMusic
+ pop bc
+ ld hl, TextJump_Waitbutton
+ ret
+; ede6
+
+TextJump_Waitbutton: ; 0xede6
+ ; @
+ text_jump Text_Waitbutton_2
+ db "@"
+; 0xedeb
+
+Text_SentToBillsPC: ; 0xedeb
+ ; was sent to BILL's PC.
+ text_jump UnknownText_0x1c5b38
+ db "@"
+; 0xedf0
+
+Text_AddedToPokedex: ; 0xedf0
+ ; 's data was newly added to the #DEX.@ @
+ text_jump UnknownText_0x1c5b53
+ db "@"
+; 0xedf5
+
+Text_AskNicknameNewlyCaughtMon: ; 0xedf5
+ ; Give a nickname to @ ?
+ text_jump UnknownText_0x1c5b7f
+ db "@"
+; 0xedfa
+
+ReturnToBattle_UseBall: ; edfa (3:6dfa)
+ callba _ReturnToBattle_UseBall
+ ret
+
+TownMap: ; ee01
+ callba PokegearMap
+ ret
+; ee08
+
+
+Bicycle: ; ee08
+ callba BikeFunction
+ ret
+; ee0f
+
+
+MoonStone:
+FireStone:
+Thunderstone:
+WaterStone:
+LeafStone:
+SunStone: ; ee0f
+ ld b, PARTYMENUACTION_EVO_STONE
+ call UseItem_SelectMon
+
+ jp c, .DecidedNotToUse
+
+ ld a, MON_ITEM
+ call GetPartyParamLocation
+
+ ld a, [hl]
+ cp EVERSTONE
+ jr z, .NoEffect
+
+ ld a, $1
+ ld [wForceEvolution], a
+ callba EvolvePokemon
+
+ ld a, [wMonTriedToEvolve]
+ and a
+ jr z, .NoEffect
+
+ jp UseDisposableItem
+
+.NoEffect:
+ call WontHaveAnyEffectMessage
+
+.DecidedNotToUse:
+ xor a
+ ld [wItemEffectSucceeded], a
+ ret
+; ee3d
+
+
+HPUp:
+Protein:
+Iron:
+Carbos:
+Calcium: ; ee3d
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+
+ jp c, RareCandy_StatBooster_ExitMenu
+
+ call RareCandy_StatBooster_GetParameters
+
+ call GetStatExpRelativePointer
+
+ ld a, MON_STAT_EXP
+ call GetPartyParamLocation
+
+ add hl, bc
+ ld a, [hl]
+ cp 100
+ jr nc, NoEffectMessage
+
+ add 10
+ ld [hl], a
+ call UpdateStatsAfterItem
+
+ call GetStatExpRelativePointer
+
+ ld hl, StatStrings
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer2
+ ld bc, ITEM_NAME_LENGTH
+ call CopyBytes
+
+ call Play_SFX_FULL_HEAL
+
+ ld hl, Text_StatRose
+ call PrintText
+
+ ld c, HAPPINESS_USEDITEM
+ callba ChangeHappiness
+
+ jp UseDisposableItem
+
+
+NoEffectMessage: ; ee83
+ ld hl, WontHaveAnyEffectText
+ call PrintText
+ jp ClearPalettes
+; ee8c
+
+
+UpdateStatsAfterItem: ; ee8c
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ ld a, MON_STAT_EXP - 1
+ call GetPartyParamLocation
+ ld b, $1
+ predef_jump CalcPkmnStats
+; ee9f
+
+RareCandy_StatBooster_ExitMenu: ; ee9f
+ xor a
+ ld [wItemEffectSucceeded], a
+ jp ClearPalettes
+; eea6
+
+
+Text_StatRose: ; 0xeea6
+ ; 's @ rose.
+ text_jump UnknownText_0x1c5b9a
+ db "@"
+; 0xeeab
+
+
+StatStrings: ; eeab
+ dw .health
+ dw .attack
+ dw .defense
+ dw .speed
+ dw .special
+
+.health db "HEALTH@"
+.attack db "ATTACK@"
+.defense db "DEFENSE@"
+.speed db "SPEED@"
+.special db "SPECIAL@"
+; eed9
+
+
+GetStatExpRelativePointer: ; eed9
+ ld a, [CurItem]
+ ld hl, Table_eeeb
+.next
+ cp [hl]
+ inc hl
+ jr z, .got_it
+ inc hl
+ jr .next
+
+.got_it
+ ld a, [hl]
+ ld c, a
+ ld b, 0
+ ret
+; eeeb
+
+Table_eeeb: ; eeeb
+ db HP_UP, MON_HP_EXP - MON_STAT_EXP
+ db PROTEIN, MON_ATK_EXP - MON_STAT_EXP
+ db IRON, MON_DEF_EXP - MON_STAT_EXP
+ db CARBOS, MON_SPD_EXP - MON_STAT_EXP
+ db CALCIUM, MON_SPC_EXP - MON_STAT_EXP
+; eef5
+
+
+RareCandy_StatBooster_GetParameters: ; eef5
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ ld [wd265], a
+ ld a, MON_LEVEL
+ call GetPartyParamLocation
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ call GetBaseData
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ret
+; 0xef14
+
+
+RareCandy: ; ef14
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+
+ jp c, RareCandy_StatBooster_ExitMenu
+
+ call RareCandy_StatBooster_GetParameters
+
+ ld a, MON_LEVEL
+ call GetPartyParamLocation
+
+ ld a, [hl]
+ cp MAX_LEVEL
+ jp nc, NoEffectMessage
+
+ inc a
+ ld [hl], a
+ ld [CurPartyLevel], a
+ push de
+ ld d, a
+ callba CalcExpAtLevel
+
+ pop de
+ ld a, MON_EXP
+ call GetPartyParamLocation
+
+ ld a, [hMultiplicand]
+ ld [hli], a
+ ld a, [hMultiplicand + 1]
+ ld [hli], a
+ ld a, [hMultiplicand + 2]
+ ld [hl], a
+
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ push bc
+ call UpdateStatsAfterItem
+
+ ld a, MON_MAXHP + 1
+ call GetPartyParamLocation
+
+ pop bc
+ ld a, [hld]
+ sub c
+ ld c, a
+ ld a, [hl]
+ sbc b
+ ld b, a
+ dec hl
+ ld a, [hl]
+ add c
+ ld [hld], a
+ ld a, [hl]
+ adc b
+ ld [hl], a
+ callba LevelUpHappinessMod
+
+ ld a, PARTYMENUTEXT_LEVEL_UP
+ call ItemActionText
+
+ xor a ; PARTYMON
+ ld [MonType], a
+ predef CopyPkmnToTempMon
+
+ hlcoord 9, 0
+ ld b, 10
+ ld c, 9
+ call TextBox
+
+ hlcoord 11, 1
+ ld bc, $0004
+ predef PrintTempMonStats
+
+ call WaitPressAorB_BlinkCursor
+
+ xor a ; PARTYMON
+ ld [MonType], a
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ predef LearnLevelMoves
+
+ xor a
+ ld [wForceEvolution], a
+ callba EvolvePokemon
+
+ jp UseDisposableItem
+; efad
+
+
+HealPowder: ; efad
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+
+ jp c, StatusHealer_ExitMenu
+
+ call UseStatusHealer
+
+ cp $0
+ jr nz, .asm_efc9
+ ld c, HAPPINESS_BITTERPOWDER
+ callba ChangeHappiness
+
+ call LooksBitterMessage
+
+ ld a, $0
+
+.asm_efc9
+ jp StatusHealer_Jumptable
+; efcc
+
+
+Antidote:
+BurnHeal:
+IceHeal:
+Awakening:
+ParlyzHeal:
+FullHeal:
+Psncureberry:
+Przcureberry:
+BurntBerry:
+IceBerry:
+MintBerry:
+Miracleberry: ; efcc
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+FullyHealStatus: ; efd4
+ call UseStatusHealer
+ jp StatusHealer_Jumptable
+; efda
+
+
+UseStatusHealer: ; efda (3:6fda)
+ call IsMonFainted
+ ld a, $1
+ ret z
+ call GetItemHealingAction
+ ld a, MON_STATUS
+ call GetPartyParamLocation
+ ld a, [hl]
+ and c
+ jr nz, .good
+ call IsItemUsedOnConfusedMon
+ ld a, $1
+ ret nc
+ ld b, PARTYMENUTEXT_HEAL_CONFUSION
+.good
+ xor a
+ ld [hl], a
+ ld a, b
+ ld [PartyMenuActionText], a
+ call HealStatus
+ call Play_SFX_FULL_HEAL
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, $0
+ ret
+
+IsItemUsedOnConfusedMon: ; f009 (3:7009)
+ call IsItemUsedOnBattleMon
+ jr nc, .nope
+ ld a, [PlayerSubStatus3]
+ bit SUBSTATUS_CONFUSED, a
+ jr z, .nope
+ ld a, c
+ cp $ff
+ jr nz, .nope
+ scf
+ ret
+
+.nope
+ and a
+ ret
+
+BattlemonRestoreHealth: ; f01e (3:701e)
+ call IsItemUsedOnBattleMon
+ ret nc
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [BattleMonHP], a
+ ld a, [hld]
+ ld [BattleMonHP + 1], a
+ ret
+
+HealStatus: ; f030 (3:7030)
+ call IsItemUsedOnBattleMon
+ ret nc
+ xor a
+ ld [BattleMonStatus], a
+ ld hl, PlayerSubStatus5
+ res SUBSTATUS_TOXIC, [hl]
+ ld hl, PlayerSubStatus1
+ res SUBSTATUS_NIGHTMARE, [hl]
+ call GetItemHealingAction
+ ld a, c
+ cp %11111111
+ jr nz, .not_full_heal
+ ld hl, PlayerSubStatus3
+ res SUBSTATUS_CONFUSED, [hl]
+.not_full_heal
+ push bc
+ callba CalcPlayerStats
+ pop bc
+ ret
+
+GetItemHealingAction: ; f058 (3:7058)
+ push hl
+ ld a, [CurItem]
+ ld hl, .healingactions
+ ld bc, 3
+.next
+ cp [hl]
+ jr z, .found_it
+ add hl, bc
+ jr .next
+
+.found_it
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld a, [hl]
+ ld c, a
+ cp %11111111
+ pop hl
+ ret
+; f071 (3:7071)
+
+.healingactions ; f071
+; item, party menu action text, status
+ db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
+ db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
+ db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
+ db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP
+ db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
+ db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
+ db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
+ db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
+ db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
+ db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP
+ db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111
+ db -1, 0, 0
+; f09e
+
+StatusHealer_Jumptable: ; f09e (3:709e)
+ ld hl, .dw
+ rst JumpTable
+ ret
+
+.dw ; f0a3 (3:70a3)
+ dw StatusHealer_ClearPalettes
+ dw StatusHealer_NoEffect
+ dw StatusHealer_ExitMenu
+
+
+RevivalHerb: ; f0a9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+ call RevivePokemon
+ cp 0
+ jr nz, .asm_f0c5
+
+ ld c, HAPPINESS_REVIVALHERB
+ callba ChangeHappiness
+ call LooksBitterMessage
+ ld a, 0
+
+.asm_f0c5
+ jp StatusHealer_Jumptable
+; f0c8
+
+
+Revive:
+MaxRevive: ; f0c8
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+ call RevivePokemon
+ jp StatusHealer_Jumptable
+; f0d6
+
+
+RevivePokemon: ; f0d6
+ call IsMonFainted
+ ld a, 1
+ ret nz
+ ld a, [wBattleMode]
+ and a
+ jr z, .skip_to_revive
+
+ ld a, [CurPartyMon]
+ ld c, a
+ ld d, 0
+ ld hl, wBattleParticipantsIncludingFainted
+ ld b, CHECK_FLAG
+ predef FlagPredef
+ ld a, c
+ and a
+ jr z, .skip_to_revive
+
+ ld a, [CurPartyMon]
+ ld c, a
+ ld hl, wBattleParticipantsNotFainted
+ ld b, SET_FLAG
+ predef FlagPredef
+
+.skip_to_revive
+ xor a
+ ld [Danger], a
+ ld a, [CurItem]
+ cp REVIVE
+ jr z, .revive_half_hp
+
+ call ReviveFullHP
+ jr .finish_revive
+
+.revive_half_hp
+ call ReviveHalfHP
+
+.finish_revive
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_REVIVE
+ ld [PartyMenuActionText], a
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, 0
+ ret
+; f128
+
+
+FullRestore: ; f128
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, StatusHealer_ExitMenu
+
+ call IsMonFainted
+ jp z, StatusHealer_NoEffect
+
+ call IsMonAtFullHealth
+ jr c, .NotAtFullHealth
+
+ jp FullyHealStatus
+
+.NotAtFullHealth:
+ call .FullRestore
+ jp StatusHealer_Jumptable
+; f144
+
+
+.FullRestore: ; f144
+ xor a
+ ld [Danger], a
+ call ReviveFullHP
+ ld a, MON_STATUS
+ call GetPartyParamLocation
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call HealStatus
+ call BattlemonRestoreHealth
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_HEAL_HP
+ ld [PartyMenuActionText], a
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, 0
+ ret
+; f16a
+
+
+BitterBerry: ; f16a
+ ld hl, PlayerSubStatus3
+ bit SUBSTATUS_CONFUSED, [hl]
+ ld a, 1
+ jr z, .done
+
+ res SUBSTATUS_CONFUSED, [hl]
+ xor a
+ ld [hBattleTurn], a
+ call UseItemText
+
+ ld hl, ConfusedNoMoreText
+ call StdBattleTextBox
+
+ ld a, 0
+
+.done
+ jp StatusHealer_Jumptable
+; f186
+
+
+MaxPotion:
+HyperPotion:
+SuperPotion:
+Potion:
+FreshWater:
+SodaPop:
+Lemonade:
+MoomooMilk:
+Ragecandybar:
+BerryJuice:
+Berry:
+GoldBerry: ; f186
+ call ItemRestoreHP
+ jp StatusHealer_Jumptable
+; f18c
+
+
+Energypowder: ; f18c
+ ld c, HAPPINESS_BITTERPOWDER
+ jr EnergypowderEnergyRootCommon
+; f190
+
+EnergyRoot: ; f190
+ ld c, HAPPINESS_ENERGYROOT
+; f192
+
+EnergypowderEnergyRootCommon: ; f192
+ push bc
+ call ItemRestoreHP
+ pop bc
+ cp 0
+ jr nz, .skip_happiness
+
+ callba ChangeHappiness
+ call LooksBitterMessage
+ ld a, 0
+
+.skip_happiness
+ jp StatusHealer_Jumptable
+; f1a9
+
+
+ItemRestoreHP: ; f1a9 (3:71a9)
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ ld a, 2
+ ret c
+
+ call IsMonFainted
+ ld a, 1
+ ret z
+
+ call IsMonAtFullHealth
+ ld a, 1
+ ret nc
+
+ xor a
+ ld [Danger], a
+ call GetHealingItemAmount
+ call RestoreHealth
+ call BattlemonRestoreHealth
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_HEAL_HP
+ ld [PartyMenuActionText], a
+ call ItemActionTextWaitButton
+ call UseDisposableItem
+ ld a, 0
+ ret
+
+HealHP_SFX_GFX: ; f1db (3:71db)
+ push de
+ ld de, SFX_POTION
+ call WaitPlaySFX
+ pop de
+ ld a, [CurPartyMon]
+ hlcoord 11, 0
+ ld bc, SCREEN_WIDTH * 2
+ call AddNTimes
+ ld a, $2
+ ld [wWhichHPBar], a
+ predef_jump AnimateHPBar
+
+UseItem_SelectMon: ; f1f9 (3:71f9)
+ call .SelectMon
+ ret c
+
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr nz, .not_egg
+
+ call CantUseOnEggMessage
+ scf
+ ret
+
+.not_egg
+ and a
+ ret
+
+.SelectMon: ; f20b (3:720b)
+ ld a, b
+ ld [PartyMenuActionText], a
+ push hl
+ push de
+ push bc
+ call ClearBGPalettes
+ call ChoosePkmnToUseItemOn
+ pop bc
+ pop de
+ pop hl
+ ret
+
+ChoosePkmnToUseItemOn: ; f21c (3:721c)
+ callba LoadPartyMenuGFX
+ callba InitPartyMenuWithCancel
+ callba InitPartyMenuGFX
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ callba PartyMenuSelect
+ ret
+
+ItemActionText: ; f24a (3:724a)
+ ld [PartyMenuActionText], a
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [CurPartyMon]
+ push af
+ push hl
+ push de
+ push bc
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuActionText
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ pop bc
+ pop de
+ pop hl
+ pop af
+ ld [CurPartyMon], a
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+ItemActionTextWaitButton: ; f279 (3:7279)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, TileMapEnd - TileMap
+ ld a, " "
+ call ByteFill
+ ld a, [PartyMenuActionText]
+ call ItemActionText
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, 50
+ call DelayFrames
+ jp WaitPressAorB_BlinkCursor
+
+StatusHealer_NoEffect: ; f299 (3:7299)
+ call WontHaveAnyEffectMessage
+ jr StatusHealer_ClearPalettes
+
+StatusHealer_ExitMenu: ; f29e (3:729e)
+ xor a
+ ld [wItemEffectSucceeded], a
+StatusHealer_ClearPalettes: ; f2a2 (3:72a2)
+ call ClearPalettes
+ ret
+
+IsItemUsedOnBattleMon: ; f2a6 (3:72a6)
+ ld a, [wBattleMode]
+ and a
+ ret z
+ ld a, [CurPartyMon]
+ push hl
+ ld hl, CurBattleMon
+ cp [hl]
+ pop hl
+ jr nz, .nope
+ scf
+ ret
+
+.nope
+ xor a
+ ret
+
+ReviveHalfHP: ; f2ba (3:72ba)
+ call LoadHPFromBuffer1
+ srl d
+ rr e
+ jr ContinueRevive
+
+ReviveFullHP: ; f2c3 (3:72c3)
+ call LoadHPFromBuffer1
+ContinueRevive: ; f2c6 (3:72c6)
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ jp LoadCurHPIntoBuffer5
+
+RestoreHealth: ; f2d1 (3:72d1)
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld a, [hl]
+ add e
+ ld [hld], a
+ ld a, [hl]
+ adc d
+ ld [hl], a
+ jr c, .full_hp
+ call LoadCurHPIntoBuffer5
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld d, h
+ ld e, l
+ ld a, MON_MAXHP + 1
+ call GetPartyParamLocation
+ ld a, [de]
+ sub [hl]
+ dec de
+ dec hl
+ ld a, [de]
+ sbc [hl]
+ jr c, .finish
+.full_hp
+ call ReviveFullHP
+.finish
+ ret
+
+RemoveHP: ; f2f9 (3:72f9)
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld a, [hl]
+ sub e
+ ld [hld], a
+ ld a, [hl]
+ sbc d
+ ld [hl], a
+ jr nc, .okay
+ xor a
+ ld [hld], a
+ ld [hl], a
+.okay
+ call LoadCurHPIntoBuffer5
+ ret
+
+IsMonFainted: ; f30d (3:730d)
+ push de
+ call LoadMaxHPToBuffer1
+ call LoadCurHPToBuffer3
+ call LoadHPFromBuffer3
+ ld a, d
+ or e
+ pop de
+ ret
+
+IsMonAtFullHealth: ; f31b (3:731b)
+ call LoadHPFromBuffer3
+ ld h, d
+ ld l, e
+ call LoadHPFromBuffer1
+ ld a, l
+ sub e
+ ld a, h
+ sbc d
+ ret
+
+LoadCurHPIntoBuffer5: ; f328 (3:7328)
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [Buffer6], a
+ ld a, [hl]
+ ld [Buffer5], a
+ ret
+; f336 (3:7336)
+
+LoadHPIntoBuffer5: ; f336
+ ld a, d
+ ld [Buffer6], a
+ ld a, e
+ ld [Buffer5], a
+ ret
+; f33f
+
+LoadHPFromBuffer5: ; f33f
+ ld a, [Buffer6]
+ ld d, a
+ ld a, [Buffer5]
+ ld e, a
+ ret
+; f348
+
+LoadCurHPToBuffer3: ; f348 (3:7348)
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [Buffer4], a
+ ld a, [hl]
+ ld [Buffer3], a
+ ret
+
+LoadHPFromBuffer3: ; f356 (3:7356)
+ ld a, [Buffer4]
+ ld d, a
+ ld a, [Buffer3]
+ ld e, a
+ ret
+
+LoadMaxHPToBuffer1: ; f35f (3:735f)
+ push hl
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [Buffer2], a
+ ld a, [hl]
+ ld [Buffer1], a
+ pop hl
+ ret
+
+LoadHPFromBuffer1: ; f36f (3:736f)
+ ld a, [Buffer2]
+ ld d, a
+ ld a, [Buffer1]
+ ld e, a
+ ret
+
+GetOneFifthMaxHP: ; f378 (3:7378)
+ push bc
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [hDividend + 0], a
+ ld a, [hl]
+ ld [hDividend + 1], a
+ ld a, 5
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+ ld a, [hQuotient + 1]
+ ld d, a
+ ld a, [hQuotient + 2]
+ ld e, a
+ pop bc
+ ret
+
+GetHealingItemAmount: ; f395 (3:7395)
+ push hl
+ ld a, [CurItem]
+ ld hl, .Healing
+ ld d, a
+.next
+ ld a, [hli]
+ cp -1
+ jr z, .NotFound
+ cp d
+ jr z, .done
+ inc hl
+ inc hl
+ jr .next
+
+.NotFound:
+ scf
+.done
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ pop hl
+ ret
+; f3af (3:73af)
+
+.Healing: ; f3af
+ dbw FRESH_WATER, 50
+ dbw SODA_POP, 60
+ dbw LEMONADE, 80
+ dbw HYPER_POTION, 200
+ dbw SUPER_POTION, 50
+ dbw POTION, 20
+ dbw MAX_POTION, 999
+ dbw FULL_RESTORE, 999
+ dbw MOOMOO_MILK, 100
+ dbw BERRY, 10
+ dbw GOLD_BERRY, 30
+ dbw ENERGYPOWDER, 50
+ dbw ENERGY_ROOT, 200
+ dbw RAGECANDYBAR, 20
+ dbw BERRY_JUICE, 20
+ dbw -1, 0
+; f3df
+
+Softboiled_MilkDrinkFunction: ; f3df (3:73df)
+; Softboiled/Milk Drink in the field
+ ld a, [wPartyMenuCursor]
+ dec a
+ ld b, a
+ call .SelectMilkDrinkRecipient ; select pokemon
+ jr c, .skip
+ ld a, b
+ ld [CurPartyMon], a
+ call IsMonFainted
+ call GetOneFifthMaxHP
+ call RemoveHP
+ push bc
+ call HealHP_SFX_GFX
+ pop bc
+ call GetOneFifthMaxHP
+ ld a, c
+ ld [CurPartyMon], a
+ call IsMonFainted
+ call RestoreHealth
+ call HealHP_SFX_GFX
+ ld a, PARTYMENUTEXT_HEAL_HP
+ call ItemActionText
+ call JoyWaitAorB
+.skip
+ ld a, b
+ inc a
+ ld [wPartyMenuCursor], a
+ ret
+
+.SelectMilkDrinkRecipient: ; f419 (3:7419)
+.loop
+ push bc
+ ld a, PARTYMENUACTION_HEALING_ITEM
+ ld [PartyMenuActionText], a
+ call ChoosePkmnToUseItemOn
+ pop bc
+ jr c, .set_carry
+ ld a, [wPartyMenuCursor]
+ dec a
+ ld c, a
+ ld a, b
+ cp c
+ jr z, .cant_use ; chose the same mon as user
+ ld a, c
+ ld [CurPartyMon], a
+ call IsMonFainted
+ jr z, .cant_use
+ call IsMonAtFullHealth
+ jr nc, .cant_use
+ xor a
+ ret
+
+.set_carry
+ scf
+ ret
+
+.cant_use
+ push bc
+ ld hl, .Text_CantBeUsed
+ call MenuTextBoxBackup
+ pop bc
+ jr .loop
+; f44a (3:744a)
+
+.Text_CantBeUsed: ; 0xf44a
+ ; That can't be used on this #MON.
+ text_jump UnknownText_0x1c5bac
+ db "@"
+; 0xf44f
+
+
+EscapeRope: ; f44f
+ xor a
+ ld [wItemEffectSucceeded], a
+ callba EscapeRopeFunction
+
+ ld a, [wItemEffectSucceeded]
+ cp 1
+ call z, UseDisposableItem
+ ret
+; f462
+
+
+SuperRepel: ; f462
+ ld b, 200
+ jr UseRepel
+; f466
+
+MaxRepel: ; f466
+ ld b, 250
+ jr UseRepel
+; f466
+
+Repel: ; f46a
+ ld b, 100
+; f46c
+
+UseRepel: ; f46c
+ ld a, [wRepelEffect]
+ and a
+ ld hl, TextJump_RepelUsedEarlierIsStillInEffect
+ jp nz, PrintText
+
+ ld a, b
+ ld [wRepelEffect], a
+ jp UseItemText
+
+
+TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d
+ ; The REPEL used earlier is still in effect.
+ text_jump Text_RepelUsedEarlierIsStillInEffect
+ db "@"
+; 0xf482
+
+
+XAccuracy: ; f482
+ ld hl, PlayerSubStatus4
+ bit SUBSTATUS_X_ACCURACY, [hl]
+ jp nz, WontHaveAnyEffect_NotUsedMessage
+ set SUBSTATUS_X_ACCURACY, [hl]
+ jp UseItemText
+; f48f
+
+
+PokeDoll: ; f48f
+ ld a, [wBattleMode]
+ dec a
+ jr nz, .asm_f4a6
+ inc a
+ ld [wForcedSwitch], a
+ ld a, [wBattleResult]
+ and 3 << 6
+ or $2
+ ld [wBattleResult], a
+ jp UseItemText
+
+.asm_f4a6
+ xor a
+ ld [wItemEffectSucceeded], a
+ ret
+; f4ab
+
+
+GuardSpec: ; f4ab
+ ld hl, PlayerSubStatus4
+ bit SUBSTATUS_MIST, [hl]
+ jp nz, WontHaveAnyEffect_NotUsedMessage
+ set SUBSTATUS_MIST, [hl]
+ jp UseItemText
+; f4b8
+
+
+DireHit: ; f4b8
+ ld hl, PlayerSubStatus4
+ bit SUBSTATUS_FOCUS_ENERGY, [hl]
+ jp nz, WontHaveAnyEffect_NotUsedMessage
+ set SUBSTATUS_FOCUS_ENERGY, [hl]
+ jp UseItemText
+; f4c5
+
+
+XAttack:
+XDefend:
+XSpeed:
+XSpecial: ; f4c5
+ call UseItemText
+
+ ld a, [CurItem]
+ ld hl, .x_item_table
+
+.loop
+ cp [hl]
+ jr z, .got_it
+ inc hl
+ inc hl
+ jr .loop
+
+.got_it
+ inc hl
+ ld b, [hl]
+ xor a
+ ld [hBattleTurn], a
+ ld [AttackMissed], a
+ ld [EffectFailed], a
+ callba CheckIfStatCanBeRaised
+ call WaitSFX
+
+ callba BattleCommand_StatUpMessage
+ callba BattleCommand_StatUpFailText
+
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ ld c, HAPPINESS_USEDXITEM
+ callba ChangeHappiness
+ ret
+; f504
+
+.x_item_table ; f504
+ db X_ATTACK, ATTACK
+ db X_DEFEND, DEFENSE
+ db X_SPEED, SPEED
+ db X_SPECIAL, SP_ATTACK
+; f50c
+
+
+PokeFlute: ; f50c
+ ld a, [wBattleMode]
+ and a
+ jr nz, .dummy
+.dummy
+
+ xor a
+ ld [wd002], a
+
+ ld b, $ff ^ SLP
+
+ ld hl, PartyMon1Status
+ call .CureSleep
+
+ ld a, [wBattleMode]
+ cp WILD_BATTLE
+ jr z, .skip_otrainer
+ ld hl, OTPartyMon1Status
+ call .CureSleep
+.skip_otrainer
+
+ ld hl, BattleMonStatus
+ ld a, [hl]
+ and b
+ ld [hl], a
+ ld hl, EnemyMonStatus
+ ld a, [hl]
+ and b
+ ld [hl], a
+
+ ld a, [wd002]
+ and a
+ ld hl, .CatchyTune
+ jp z, PrintText
+ ld hl, .PlayedTheFlute
+ call PrintText
+
+ ld a, [Danger]
+ and 1 << DANGER_ON_F
+ jr nz, .dummy2
+.dummy2
+ ld hl, .AllSleepingMonWokeUp
+ jp PrintText
+
+
+.CureSleep:
+ ld de, PARTYMON_STRUCT_LENGTH
+ ld c, PARTY_LENGTH
+
+.loop
+ ld a, [hl]
+ push af
+ and SLP
+ jr z, .not_asleep
+ ld a, 1
+ ld [wd002], a
+.not_asleep
+ pop af
+ and b
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
+; f56c
+
+
+.CatchyTune: ; 0xf56c
+ ; Played the # FLUTE. Now, that's a catchy tune!
+ text_jump UnknownText_0x1c5bf9
+ db "@"
+; 0xf571
+
+.AllSleepingMonWokeUp: ; 0xf571
+ ; All sleeping #MON woke up.
+ text_jump UnknownText_0x1c5c28
+ db "@"
+; 0xf576
+
+.PlayedTheFlute: ; 0xf576
+ ; played the # FLUTE.@ @
+ text_jump UnknownText_0x1c5c44
+ start_asm
+ ld a, [wBattleMode]
+ and a
+ jr nz, .battle
+
+ push de
+ ld de, SFX_POKEFLUTE
+ call WaitPlaySFX
+ call WaitSFX
+ pop de
+
+.battle
+ jp PokeFluteTerminatorCharacter
+; f58f
+
+
+BlueCard: ; f58f
+ ld hl, .bluecardtext
+ jp MenuTextBoxWaitButton
+
+.bluecardtext
+ text_jump UnknownText_0x1c5c5e
+ db "@"
+; f59a
+
+
+CoinCase: ; f59a
+ ld hl, .coincasetext
+ jp MenuTextBoxWaitButton
+
+.coincasetext
+ text_jump UnknownText_0x1c5c7b
+ db "@"
+; f5a5
+
+
+OldRod: ; f5a5
+ ld e, $0
+ jr UseRod
+; f5a9
+
+GoodRod: ; f5a9
+ ld e, $1
+ jr UseRod
+; f5ad
+
+SuperRod: ; f5ad
+ ld e, $2
+ jr UseRod
+; f5b1
+
+UseRod: ; f5b1
+ callba FishFunction
+ ret
+; f5b8
+
+
+Itemfinder: ; f5b8
+ callba ItemFinder
+ ret
+; f5bf
+
+
+MaxElixer:
+PPUp:
+Ether:
+MaxEther:
+Elixer:
+Mysteryberry: ; f5bf
+ ld a, [CurItem]
+ ld [wd002], a
+
+.loop
+ ; Party Screen opens to choose on which Pkmn to use the Item
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
+ jp c, PPRestoreItem_Cancel
+
+.loop2
+ ld a, [wd002]
+ cp MAX_ELIXER
+ jp z, Elixer_RestorePPofAllMoves
+ cp ELIXER
+ jp z, Elixer_RestorePPofAllMoves
+
+ ld hl, TextJump_RaiseThePPOfWhichMove
+ ld a, [wd002]
+ cp PP_UP
+ jr z, .ppup
+ ld hl, TextJump_RestoreThePPOfWhichMove
+
+.ppup
+ call PrintText
+
+ ld a, [CurMoveNum]
+ push af
+ xor a
+ ld [CurMoveNum], a
+ ld a, $2
+ ld [wMoveSelectionMenuType], a
+ callba MoveSelectionScreen
+ pop bc
+
+ ld a, b
+ ld [CurMoveNum], a
+ jr nz, .loop
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call GetMthMoveOfNthPartymon
+
+ push hl
+ ld a, [hl]
+ ld [wd265], a
+ call GetMoveName
+ call CopyName1
+ pop hl
+
+ ld a, [wd002]
+ cp PP_UP
+ jp nz, Not_PP_Up
+
+ ld a, [hl]
+ cp SKETCH
+ jr z, .CantUsePPUpOnSketch
+
+ ld bc, $0015
+ add hl, bc
+ ld a, [hl]
+ cp 3 << 6 ; have 3 PP Ups already been used?
+ jr c, .do_ppup
+
+.CantUsePPUpOnSketch:
+.pp_is_maxed_out
+ ld hl, TextJump_PPIsMaxedOut
+ call PrintText
+ jr .loop2
+
+.do_ppup
+ ld a, [hl]
+ add 1 << 6 ; increase PP Up count by 1
+ ld [hl], a
+ ld a, $1
+ ld [wd265], a
+ call ApplyPPUp
+ call Play_SFX_FULL_HEAL
+
+ ld hl, TextJump_PPsIncreased
+ call PrintText
+
+FinishPPRestore: ; f64c
+ call ClearPalettes
+ jp UseDisposableItem
+; f652
+
+BattleRestorePP: ; f652
+ ld a, [wBattleMode]
+ and a
+ jr z, .not_in_battle
+ ld a, [CurPartyMon]
+ ld b, a
+ ld a, [CurBattleMon]
+ cp b
+ jr nz, .not_in_battle
+ ld a, [PlayerSubStatus5]
+ bit SUBSTATUS_TRANSFORMED, a
+ jr nz, .not_in_battle
+ call .UpdateBattleMonPP
+
+.not_in_battle
+ call Play_SFX_FULL_HEAL
+ ld hl, UnknownText_0xf739
+ call PrintText
+ jr FinishPPRestore
+
+.UpdateBattleMonPP:
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld de, BattleMonMoves
+ ld b, NUM_MOVES
+.loop
+ ld a, [de]
+ and a
+ jr z, .done
+ cp [hl]
+ jr nz, .next
+ push hl
+ push de
+ push bc
+ rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves
+ inc de
+ endr
+ ld bc, MON_PP - MON_MOVES
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ pop bc
+ pop de
+ pop hl
+
+.next
+ inc hl
+ inc de
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+; f6a7
+
+Not_PP_Up: ; f6a7
+ call RestorePP
+ jr nz, BattleRestorePP
+ jp PPRestoreItem_NoEffect
+; f6af
+
+Elixer_RestorePPofAllMoves: ; f6af
+ xor a
+ ld hl, wMenuCursorY
+ ld [hli], a
+ ld [hl], a
+ ld b, NUM_MOVES
+.moveLoop
+ push bc
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call GetMthMoveOfNthPartymon
+ ld a, [hl]
+ and a
+ jr z, .next
+
+ call RestorePP
+ jr z, .next
+ ld hl, wMenuCursorX
+ inc [hl]
+
+.next
+ ld hl, wMenuCursorY
+ inc [hl]
+ pop bc
+ dec b
+ jr nz, .moveLoop
+ ld a, [wMenuCursorX]
+ and a
+ jp nz, BattleRestorePP
+
+PPRestoreItem_NoEffect: ; f6dd
+ call WontHaveAnyEffectMessage
+
+PPRestoreItem_Cancel: ; f6e0
+ call ClearPalettes
+ xor a
+ ld [wItemEffectSucceeded], a
+ ret
+; f6e8
+
+RestorePP: ; f6e8
+ xor a ; PARTYMON
+ ld [MonType], a
+ call GetMaxPPOfMove
+ ld hl, PartyMon1PP
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call GetMthMoveOfNthPartymon
+ ld a, [wd265]
+ ld b, a
+ ld a, [hl]
+ and (1 << 6) - 1
+ cp b
+ jr nc, .dont_restore
+
+ ld a, [wd002]
+ cp MAX_ELIXER
+ jr z, .restore_all
+ cp MAX_ETHER
+ jr z, .restore_all
+
+ ld c, 5
+ cp MYSTERYBERRY
+ jr z, .restore_some
+
+ ld c, 10
+
+.restore_some
+ ld a, [hl]
+ and (1 << 6) - 1
+ add c
+ cp b
+ jr nc, .restore_all
+ ld b, a
+
+.restore_all
+ ld a, [hl]
+ and 3 << 6
+ or b
+ ld [hl], a
+ ret
+
+.dont_restore
+ xor a
+ ret
+; f725
+
+TextJump_RaiseThePPOfWhichMove: ; 0xf725
+ ; Raise the PP of which move?
+ text_jump Text_RaiseThePPOfWhichMove
+ db "@"
+; 0xf72a
+
+TextJump_RestoreThePPOfWhichMove: ; 0xf72a
+ ; Restore the PP of which move?
+ text_jump Text_RestoreThePPOfWhichMove
+ db "@"
+; 0xf72f
+
+TextJump_PPIsMaxedOut: ; 0xf72f
+ ; 's PP is maxed out.
+ text_jump Text_PPIsMaxedOut
+ db "@"
+; 0xf734
+
+TextJump_PPsIncreased: ; 0xf734
+ ; 's PP increased.
+ text_jump Text_PPsIncreased
+ db "@"
+; 0xf739
+
+UnknownText_0xf739: ; 0xf739
+ ; PP was restored.
+ text_jump UnknownText_0x1c5cf1
+ db "@"
+; 0xf73e
+
+
+Squirtbottle: ; f73e
+ callba _Squirtbottle
+ ret
+; f745
+
+
+CardKey: ; f745
+ callba _CardKey
+ ret
+; f74c
+
+
+BasementKey: ; f74c
+ callba _BasementKey
+ ret
+; f753
+
+
+SacredAsh: ; f753
+ callba _SacredAsh
+ ld a, [wItemEffectSucceeded]
+ cp $1
+ ret nz
+ call UseDisposableItem
+ ret
+; f763
+
+
+NormalBox: ; f763
+ ld c, DECOFLAG_SILVER_TROPHY_DOLL
+ jr OpenBox
+; f767
+
+GorgeousBox: ; f767
+ ld c, DECOFLAG_GOLD_TROPHY_DOLL
+OpenBox: ; f769
+ callba SetSpecificDecorationFlag
+
+ ld hl, .text
+ call PrintText
+
+ jp UseDisposableItem
+; f778
+
+.text ; 0xf778
+ ; There was a trophy inside!
+ text_jump UnknownText_0x1c5d03
+ db "@"
+; 0xf77d
+
+Brightpowder:
+Item19:
+LuckyPunch:
+MetalPowder:
+Nugget:
+Item2D:
+Item32:
+ExpShare:
+SilverLeaf:
+RedScale:
+Secretpotion:
+SSTicket:
+MysteryEgg:
+ClearBell:
+SilverWing:
+QuickClaw:
+GoldLeaf:
+SoftSand:
+SharpBeak:
+PoisonBarb:
+KingsRock:
+RedApricorn:
+Tinymushroom:
+BigMushroom:
+Silverpowder:
+BluApricorn:
+Item5A:
+AmuletCoin:
+YlwApricorn:
+GrnApricorn:
+CleanseTag:
+MysticWater:
+Twistedspoon:
+WhtApricorn:
+Blackbelt:
+BlkApricorn:
+Item64:
+PnkApricorn:
+Blackglasses:
+Slowpoketail:
+PinkBow:
+Stick:
+SmokeBall:
+Nevermeltice:
+Magnet:
+Pearl:
+BigPearl:
+Everstone:
+SpellTag:
+GsBall:
+MiracleSeed:
+ThickClub:
+FocusBand:
+Item78:
+HardStone:
+LuckyEgg:
+MachinePart:
+EggTicket:
+LostItem:
+Stardust:
+StarPiece:
+Pass:
+Item87:
+Item88:
+Item89:
+Charcoal:
+ScopeLens:
+Item8D:
+Item8E:
+MetalCoat:
+DragonFang:
+Item91:
+Leftovers:
+Item93:
+Item94:
+Item95:
+DragonScale:
+BerserkGene:
+Item99:
+Item9A:
+Item9B:
+FlowerMail:
+ItemA2:
+LightBall:
+PolkadotBow:
+ItemAB:
+UpGrade:
+ItemB0:
+RainbowWing:
+ItemB3:
+TeruSama: ; f77d
+ jp IsntTheTimeMessage
+; f780
+
+
+Play_SFX_FULL_HEAL: ; f780
+ push de
+ ld de, SFX_FULL_HEAL
+ call WaitPlaySFX
+ pop de
+ ret
+; f789
+
+UseItemText: ; f789
+ ld hl, UsedItemText
+ call PrintText
+ call Play_SFX_FULL_HEAL
+ call WaitPressAorB_BlinkCursor
+UseDisposableItem: ; f795
+ ld hl, NumItems
+ ld a, 1
+ ld [wItemQuantityChangeBuffer], a
+ jp TossItem
+; f7a0
+
+UseBallInTrainerBattle: ; f7a0
+ call ReturnToBattle_UseBall
+ ld de, ANIM_THROW_POKE_BALL
+ ld a, e
+ ld [FXAnimID], a
+ ld a, d
+ ld [FXAnimID + 1], a
+ xor a
+ ld [wBattleAnimParam], a
+ ld [hBattleTurn], a
+ ld [wNumHits], a
+ predef PlayBattleAnim
+ ld hl, BlockedTheBallText
+ call PrintText
+ ld hl, DontBeAThiefText
+ call PrintText
+ jr UseDisposableItem
+; f7ca
+
+WontHaveAnyEffect_NotUsedMessage: ; f7ca
+ ld hl, WontHaveAnyEffectText
+ call PrintText
+
+ ; Item wasn't used.
+ ld a, $2
+ ld [wItemEffectSucceeded], a
+ ret
+; f7d6
+
+LooksBitterMessage: ; f7d6
+ ld hl, LooksBitterText
+ jp PrintText
+; f7dc
+
+Ball_BoxIsFullMessage: ; f7dc
+ ld hl, Ball_BoxIsFullText
+ call PrintText
+
+ ; Item wasn't used.
+ ld a, $2
+ ld [wItemEffectSucceeded], a
+ ret
+; f7e8
+
+CantUseOnEggMessage: ; f7e8
+ ld hl, CantUseOnEggText
+ jr CantUseItemMessage
+
+IsntTheTimeMessage: ; f7ed
+ ld hl, IsntTheTimeText
+ jr CantUseItemMessage
+
+WontHaveAnyEffectMessage: ; f7f2
+ ld hl, WontHaveAnyEffectText
+ jr CantUseItemMessage
+
+BelongsToSomeoneElseMessage: ; f7f7
+ ld hl, BelongsToSomeoneElseText
+ jr CantUseItemMessage
+
+CyclingIsntAllowedMessage: ; f7fc
+ ld hl, CyclingIsntAllowedText
+ jr CantUseItemMessage
+
+CantGetOnYourBikeMessage: ; f801
+ ld hl, CantGetOnYourBikeText
+
+CantUseItemMessage: ; f804
+; Item couldn't be used.
+ xor a
+ ld [wItemEffectSucceeded], a
+ jp PrintText
+; f80b
+
+LooksBitterText: ; 0xf80b
+ ; It looks bitter…
+ text_jump UnknownText_0x1c5d3e
+ db "@"
+; 0xf810
+
+CantUseOnEggText: ; 0xf810
+ ; That can't be used on an EGG.
+ text_jump UnknownText_0x1c5d50
+ db "@"
+; 0xf815
+
+IsntTheTimeText: ; 0xf815
+ ; OAK: ! This isn't the time to use that!
+ text_jump UnknownText_0x1c5d6e
+ db "@"
+; 0xf81a
+
+BelongsToSomeoneElseText: ; 0xf81a
+ ; That belongs to someone else!
+ text_jump UnknownText_0x1c5d97
+ db "@"
+; 0xf81f
+
+WontHaveAnyEffectText: ; 0xf81f
+ ; It won't have any effect.
+ text_jump UnknownText_0x1c5db6
+ db "@"
+; 0xf824
+
+BlockedTheBallText: ; 0xf824
+ ; The trainer blocked the BALL!
+ text_jump UnknownText_0x1c5dd0
+ db "@"
+; 0xf829
+
+DontBeAThiefText: ; 0xf829
+ ; Don't be a thief!
+ text_jump UnknownText_0x1c5def
+ db "@"
+; 0xf82e
+
+CyclingIsntAllowedText: ; 0xf82e
+ ; Cycling isn't allowed here.
+ text_jump UnknownText_0x1c5e01
+ db "@"
+; 0xf833
+
+CantGetOnYourBikeText: ; 0xf833
+ ; Can't get on your @ now.
+ text_jump UnknownText_0x1c5e1d
+ db "@"
+; 0xf838
+
+Ball_BoxIsFullText: ; 0xf838
+ ; The #MON BOX is full. That can't be used now.
+ text_jump UnknownText_0x1c5e3a
+ db "@"
+; 0xf83d
+
+UsedItemText: ; 0xf83d
+ ; used the@ .
+ text_jump UnknownText_0x1c5e68
+ db "@"
+; 0xf842
+
+GotOnTheItemText: ; 0xf842
+ ; got on the@ .
+ text_jump UnknownText_0x1c5e7b
+ db "@"
+; 0xf847
+
+GotOffTheItemText: ; 0xf847
+ ; got off@ the @ .
+ text_jump UnknownText_0x1c5e90
+ db "@"
+; 0xf84c
+
+
+ApplyPPUp: ; f84c
+ ld a, MON_MOVES
+ call GetPartyParamLocation
+ push hl
+ ld de, Buffer1
+ predef FillPP
+ pop hl
+ ld bc, MON_PP - MON_MOVES
+ add hl, bc
+ ld de, Buffer1
+ ld b, 0
+.loop
+ inc b
+ ld a, b
+ cp NUM_MOVES + 1
+ ret z
+ ld a, [wd265]
+ dec a
+ jr nz, .use
+ ld a, [wMenuCursorY]
+ inc a
+ cp b
+ jr nz, .skip
+
+.use
+ ld a, [hl]
+ and 3 << 6
+ ld a, [de] ; wasted cycle
+ call nz, ComputeMaxPP
+
+.skip
+ inc hl
+ inc de
+ jr .loop
+; f881
+
+
+
+ComputeMaxPP: ; f881
+ push bc
+ ; Divide the base PP by 5.
+ ld a, [de]
+ ld [hDividend + 3], a
+ xor a
+ ld [hDividend], a
+ ld [hDividend + 1], a
+ ld [hDividend + 2], a
+ ld a, 5
+ ld [hDivisor], a
+ ld b, 4
+ call Divide
+ ; Get the number of PP, which are bits 6 and 7 of the PP value stored in RAM.
+ ld a, [hl]
+ ld b, a
+ swap a
+ and $f
+ srl a
+ srl a
+ ld c, a
+ ; If this value is 0, we are done
+ and a
+ jr z, .NoPPUp
+
+.loop
+ ; Normally, a move with 40 PP would have 64 PP with three PP Ups.
+ ; Since this would overflow into bit 6, we prevent that from happening
+ ; by decreasing the extra amount of PP each PP Up provides, resulting
+ ; in a maximum of 61.
+ ld a, [hQuotient + 2]
+ cp $8
+ jr c, .okay
+ ld a, $7
+
+.okay
+ add b
+ ld b, a
+ ld a, [wd265]
+ dec a
+ jr z, .NoPPUp
+ dec c
+ jr nz, .loop
+
+.NoPPUp:
+ ld [hl], b
+ pop bc
+ ret
+; f8b9
+
+RestoreAllPP: ; f8b9
+ ld a, MON_PP
+ call GetPartyParamLocation
+ push hl
+ ld a, MON_MOVES
+ call GetPartyParamLocation
+ pop de
+ xor a ; PARTYMON
+ ld [wMenuCursorY], a
+ ld [MonType], a
+ ld c, NUM_MOVES
+.loop
+ ld a, [hli]
+ and a
+ ret z
+ push hl
+ push de
+ push bc
+ call GetMaxPPOfMove
+ pop bc
+ pop de
+ ld a, [de]
+ and 3 << 6
+ ld b, a
+ ld a, [wd265]
+ add b
+ ld [de], a
+ inc de
+ ld hl, wMenuCursorY
+ inc [hl]
+ pop hl
+ dec c
+ jr nz, .loop
+ ret
+; f8ec
+
+
+GetMaxPPOfMove: ; f8ec
+ ld a, [StringBuffer1 + 0]
+ push af
+ ld a, [StringBuffer1 + 1]
+ push af
+
+ ld a, [MonType]
+ and a
+
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ jr z, .got_partymon ; PARTYMON
+
+ ld hl, OTPartyMon1Moves
+ dec a
+ jr z, .got_partymon ; OTPARTYMON
+
+ ld hl, TempMonMoves
+ dec a
+ jr z, .got_nonpartymon ; BOXMON
+
+ ld hl, TempMonMoves ; Wasted cycles
+ dec a
+ jr z, .got_nonpartymon ; TEMPMON
+
+ ld hl, BattleMonMoves ; WILDMON
+
+.got_nonpartymon ; BOXMON, TEMPMON, WILDMON
+ call GetMthMoveOfCurrentMon
+ jr .gotdatmove
+
+.got_partymon ; PARTYMON, OTPARTYMON
+ call GetMthMoveOfNthPartymon
+
+.gotdatmove
+ ld a, [hl]
+ dec a
+
+ push hl
+ ld hl, Moves + MOVE_PP
+ ld bc, MOVE_LENGTH
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ ld b, a
+ ld de, StringBuffer1
+ ld [de], a
+ pop hl
+
+ push bc
+ ld bc, MON_PP - MON_MOVES
+ ld a, [MonType]
+ cp WILDMON
+ jr nz, .notwild
+ ld bc, EnemyMonPP - EnemyMonMoves
+.notwild
+ add hl, bc
+ ld a, [hl]
+ and 3 << 6
+ pop bc
+
+ or b
+ ld hl, StringBuffer1 + 1
+ ld [hl], a
+ xor a
+ ld [wd265], a
+ ld a, b ; this gets lost anyway
+ call ComputeMaxPP
+ ld a, [hl]
+ and (1 << 6) - 1
+ ld [wd265], a
+
+ pop af
+ ld [StringBuffer1 + 1], a
+ pop af
+ ld [StringBuffer1 + 0], a
+ ret
+; f963
+
+GetMthMoveOfNthPartymon: ; f963
+ ld a, [CurPartyMon]
+ call AddNTimes
+
+GetMthMoveOfCurrentMon: ; f969
+ ld a, [wMenuCursorY]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ret
+; f971
+
+INCLUDE "engine/pokeball_wobble.asm"
diff --git a/engine/knows_move.asm b/engine/knows_move.asm
new file mode 100644
index 000000000..4ec3da347
--- /dev/null
+++ b/engine/knows_move.asm
@@ -0,0 +1,25 @@
+KnowsMove: ; f9ea
+ ld a, MON_MOVES
+ call GetPartyParamLocation
+ ld a, [wPutativeTMHMMove]
+ ld b, a
+ ld c, NUM_MOVES
+.loop
+ ld a, [hli]
+ cp b
+ jr z, .knows_move
+ dec c
+ jr nz, .loop
+ and a
+ ret
+
+.knows_move
+ ld hl, .Text_knows
+ call PrintText
+ scf
+ ret
+
+.Text_knows: ; 0xfa06
+ ; knows @ .
+ text_jump UnknownText_0x1c5ea8
+ db "@"
diff --git a/engine/landmarks.asm b/engine/landmarks.asm
index 5e904eae8..75605bbd9 100644
--- a/engine/landmarks.asm
+++ b/engine/landmarks.asm
@@ -47,7 +47,7 @@ GetLandmarkName:: ; 0x1ca8a5
; 0x1ca8c3
-INCLUDE "data/landmarks.asm"
+INCLUDE "data/maps/landmarks.asm"
RegionCheck: ; 0x1caea1
diff --git a/engine/link.asm b/engine/link.asm
index 7bca8b891..619d5bae3 100755
--- a/engine/link.asm
+++ b/engine/link.asm
@@ -2034,7 +2034,7 @@ Function28f09: ; 28f09
ret
; 28f24
-INCLUDE "engine/trade/animation.asm"
+INCLUDE "engine/trade_animation.asm"
Special_CheckTimeCapsuleCompatibility: ; 29bfb
; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar:
@@ -2577,7 +2577,18 @@ Special_CableClubCheckWhichChris: ; 29f47
ret
; 29f54
-GFX_29f54: ; 29f54
+UnusedGen1LinkCommsBorderGFX: ; 29f54
; unreferenced
-INCBIN "gfx/unknown/unused_border.2bpp"
+INCBIN "gfx/trade/unused_gen_1_border_tiles.2bpp"
; 29fe4
+
+Function29fe4: ; unreferenced
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ ld d, $0
+ ld b, CHECK_FLAG
+ predef FlagPredef
+ call CloseSRAM
+ ld a, c
+ and a
+ ret
diff --git a/engine/map_objects.asm b/engine/map_objects.asm
index 162ea22df..4b8adb75f 100644
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -1,7 +1,5 @@
-
INCLUDE "data/facings.asm"
-
INCLUDE "data/map_objects.asm"
diff --git a/engine/map_objects_2.asm b/engine/map_objects_2.asm
new file mode 100644
index 000000000..3c9a9773c
--- /dev/null
+++ b/engine/map_objects_2.asm
@@ -0,0 +1,70 @@
+LoadObjectMasks: ; 2454f
+ ld hl, wObjectMasks
+ xor a
+ ld bc, NUM_OBJECTS
+ call ByteFill
+ nop
+ ld bc, MapObjects
+ ld de, wObjectMasks
+ xor a
+.loop
+ push af
+ push bc
+ push de
+ call GetObjectTimeMask
+ jr c, .next
+ call CheckObjectFlag
+.next
+ pop de
+ ld [de], a
+ inc de
+ pop bc
+ ld hl, OBJECT_LENGTH
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop af
+ inc a
+ cp NUM_OBJECTS
+ jr nz, .loop
+ ret
+
+CheckObjectFlag: ; 2457d (9:457d)
+ ld hl, MAPOBJECT_SPRITE
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .masked
+ ld hl, MAPOBJECT_EVENT_FLAG
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ cp -1
+ jr nz, .check
+ ld a, e
+ cp -1
+ jr z, .unmasked
+ jr .masked
+.check
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ld a, c
+ and a
+ jr nz, .masked
+.unmasked
+ xor a
+ ret
+
+.masked
+ ld a, -1
+ scf
+ ret
+
+GetObjectTimeMask: ; 245a7 (9:45a7)
+ call CheckObjectTime
+ ld a, -1
+ ret c
+ xor a
+ ret
diff --git a/engine/map_palettes.asm b/engine/map_palettes.asm
new file mode 100644
index 000000000..ffeef7bf6
--- /dev/null
+++ b/engine/map_palettes.asm
@@ -0,0 +1,86 @@
+SwapTextboxPalettes:: ; 4c000
+ hlcoord 0, 0
+ decoord 0, 0, AttrMap
+ ld b, SCREEN_HEIGHT
+.loop
+ push bc
+ ld c, SCREEN_WIDTH
+.innerloop
+ ld a, [hl]
+ push hl
+ srl a
+ jr c, .UpperNybble
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ and $f
+ jr .next
+
+.UpperNybble:
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and $f
+
+.next
+ pop hl
+ ld [de], a
+ res 7, [hl]
+ inc hl
+ inc de
+ dec c
+ jr nz, .innerloop
+ pop bc
+ dec b
+ jr nz, .loop
+ ret
+
+ScrollBGMapPalettes:: ; 4c03f
+ ld hl, BGMapBuffer
+ ld de, BGMapPalBuffer
+.loop
+ ld a, [hl]
+ push hl
+ srl a
+ jr c, .UpperNybble
+
+; .LowerNybble
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ and $f
+ jr .next
+
+.UpperNybble:
+ ld hl, TilesetPalettes
+ add [hl]
+ ld l, a
+ ld a, [TilesetPalettes + 1]
+ adc $0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and $f
+
+.next
+ pop hl
+ ld [de], a
+ res 7, [hl]
+ inc hl
+ inc de
+ dec c
+ jr nz, .loop
+ ret
diff --git a/engine/map_setup.asm b/engine/map_setup.asm
index 5de4f30da..72fe9c07f 100644
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -356,7 +356,7 @@ CheckReplaceKrisSprite: ; 154f7
ld a, [PlayerState]
cp PLAYER_NORMAL
jr z, .nope
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
jr z, .nope
cp PLAYER_SURF
jr z, .surfing
diff --git a/engine/mart.asm b/engine/mart.asm
index 6bcec4c55..b091c9ef1 100755
--- a/engine/mart.asm
+++ b/engine/mart.asm
@@ -99,23 +99,7 @@ RooftopSale: ; 15ac4
ret
; 15aee
-RooftopSaleData1: ; 15aee
- db 5
- dbw POKE_BALL, 150
- dbw GREAT_BALL, 500
- dbw SUPER_POTION, 500
- dbw FULL_HEAL, 500
- dbw REVIVE, 1200
- db -1
-RooftopSaleData2: ; 15aff
- db 5
- dbw HYPER_POTION, 1000
- dbw FULL_RESTORE, 2000
- dbw FULL_HEAL, 500
- dbw ULTRA_BALL, 1000
- dbw PROTEIN, 7800
- db -1
-; 15b10
+INCLUDE "data/items/rooftop_sale.asm"
LoadMartPointer: ; 15b10
ld a, b
@@ -355,15 +339,7 @@ ReadMart: ; 15c25
ret
; 15c51
-BargainShopData: ; 15c51
- db 5
- dbw NUGGET, 4500
- dbw PEARL, 650
- dbw BIG_PEARL, 3500
- dbw STARDUST, 900
- dbw STAR_PIECE, 4600
- db -1
-; 15c62
+INCLUDE "data/items/bargain_shop.asm"
BuyMenu: ; 15c62
diff --git a/engine/menu_2.asm b/engine/menu_2.asm
new file mode 100644
index 000000000..13568f3c5
--- /dev/null
+++ b/engine/menu_2.asm
@@ -0,0 +1,263 @@
+PlaceMenuItemName: ; 0x24ab4
+ push de
+ ld a, [MenuSelection]
+ ld [wNamedObjectIndexBuffer], a
+ call GetItemName
+ pop hl
+ call PlaceString
+ ret
+
+PlaceMenuItemQuantity: ; 0x24ac3
+ push de
+ ld a, [MenuSelection]
+ ld [CurItem], a
+ callba _CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ pop hl
+ and a
+ jr nz, .done
+ ld de, $15
+ add hl, de
+ ld [hl], "×"
+ inc hl
+ ld de, MenuSelectionQuantity
+ lb bc, 1, 2
+ call PrintNum
+
+.done
+ ret
+
+PlaceMoneyTopRight: ; 24ae8
+ ld hl, MenuDataHeader_0x24b15
+ call CopyMenuDataHeader
+ jr PlaceMoneyDataHeader
+
+PlaceMoneyBottomLeft: ; 24af0
+ ld hl, MenuDataHeader_0x24b1d
+ call CopyMenuDataHeader
+ jr PlaceMoneyDataHeader
+
+PlaceMoneyAtTopLeftOfTextbox: ; 24af8
+ ld hl, MenuDataHeader_0x24b15
+ lb de, 0, 11
+ call OffsetMenuDataHeader
+
+PlaceMoneyDataHeader: ; 24b01
+ call MenuBox
+ call MenuBoxCoord2Tile
+ ld de, SCREEN_WIDTH + 1
+ add hl, de
+ ld de, Money
+ lb bc, PRINTNUM_MONEY | 3, 6
+ call PrintNum
+ ret
+
+MenuDataHeader_0x24b15: ; 0x24b15
+ db $40 ; flags
+ db 00, 11 ; start coords
+ db 02, 19 ; end coords
+ dw NULL
+ db 1 ; default option
+
+MenuDataHeader_0x24b1d: ; 0x24b1d
+ db $40 ; flags
+ db 11, 00 ; start coords
+ db 13, 08 ; end coords
+ dw NULL
+ db 1 ; default option
+
+Special_DisplayCoinCaseBalance: ; 24b25
+ ; Place a text box of size 1x7 at 11, 0.
+ hlcoord 11, 0
+ ld b, 1
+ ld c, 7
+ call TextBox
+ hlcoord 12, 0
+ ld de, CoinString
+ call PlaceString
+ hlcoord 17, 1
+ ld de, ShowMoney_TerminatorString
+ call PlaceString
+ ld de, Coins
+ lb bc, 2, 4
+ hlcoord 13, 1
+ call PrintNum
+ ret
+
+Special_DisplayMoneyAndCoinBalance: ; 24b4e
+ hlcoord 5, 0
+ ld b, 3
+ ld c, 13
+ call TextBox
+ hlcoord 6, 1
+ ld de, MoneyString
+ call PlaceString
+ hlcoord 12, 1
+ ld de, Money
+ lb bc, PRINTNUM_MONEY | 3, 6
+ call PrintNum
+ hlcoord 6, 3
+ ld de, CoinString
+ call PlaceString
+ hlcoord 15, 3
+ ld de, Coins
+ lb bc, 2, 4
+ call PrintNum
+ ret
+
+MoneyString: ; 24b83
+ db "MONEY@"
+CoinString: ; 24b89
+ db "COIN@"
+ShowMoney_TerminatorString: ; 24b8e
+ db "@"
+
+Function24b8f: ; 24b8f
+; unreferenced, related to safari?
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ hlcoord 0, 0
+ ld b, 3
+ ld c, 7
+ call TextBox
+ hlcoord 1, 1
+ ld de, wSafariTimeRemaining
+ lb bc, 2, 3
+ call PrintNum
+ hlcoord 4, 1
+ ld de, .slash_500
+ call PlaceString
+ hlcoord 1, 3
+ ld de, .booru_ko
+ call PlaceString
+ hlcoord 5, 3
+ ld de, wSafariBallsRemaining
+ lb bc, 1, 2
+ call PrintNum
+ pop af
+ ld [Options], a
+ ret
+
+.slash_500 ; 24bcf
+ db "/500@"
+.booru_ko ; 24bd4
+ db "ボール こ@"
+
+StartMenu_DrawBugContestStatusBox: ; 24bdc
+ hlcoord 0, 0
+ ld b, 5
+ ld c, 17
+ call TextBox
+ ret
+
+StartMenu_PrintBugContestStatus: ; 24be7
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call StartMenu_DrawBugContestStatusBox
+ hlcoord 1, 5
+ ld de, .Balls_EN
+ call PlaceString
+ hlcoord 8, 5
+ ld de, wParkBallsRemaining
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 2
+ call PrintNum
+ hlcoord 1, 1
+ ld de, .CAUGHT
+ call PlaceString
+ ld a, [wContestMon]
+ and a
+ ld de, .None
+ jr z, .no_contest_mon
+ ld [wd265], a
+ call GetPokemonName
+
+.no_contest_mon
+ hlcoord 8, 1
+ call PlaceString
+ ld a, [wContestMon]
+ and a
+ jr z, .skip_level
+ hlcoord 1, 3
+ ld de, .LEVEL
+ call PlaceString
+ ld a, [wContestMonLevel]
+ ld h, b
+ ld l, c
+ inc hl
+ ld c, 3
+ call Print8BitNumRightAlign
+
+.skip_level
+ pop af
+ ld [Options], a
+ ret
+
+.Balls_JP: ; 24c43
+ db "ボール こ@"
+.CAUGHT: ; 24c4b
+ db "CAUGHT@"
+.Balls_EN: ; 24c52
+ db "BALLS:@"
+.None: ; 24c59
+ db "None@"
+.LEVEL: ; 24c5e
+ db "LEVEL@"
+
+FindApricornsInBag: ; 24c64
+; Checks the bag for Apricorns.
+ ld hl, Buffer1
+ xor a
+ ld [hli], a
+ dec a
+ ld bc, 10
+ call ByteFill
+
+ ld hl, .ApricornBalls
+.loop
+ ld a, [hl]
+ cp -1
+ jr z, .done
+ push hl
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ pop hl
+ jr nc, .nope
+ ld a, [hl]
+ call .addtobuffer
+.nope
+ inc hl
+ inc hl
+ jr .loop
+
+.done
+ ld a, [Buffer1]
+ and a
+ ret nz
+ scf
+ ret
+
+.addtobuffer ; 24c94
+ push hl
+ ld hl, Buffer1
+ inc [hl]
+ ld e, [hl]
+ ld d, 0
+ add hl, de
+ ld [hl], a
+ pop hl
+ ret
+
+.ApricornBalls: ; 24ca0
+ db RED_APRICORN, LEVEL_BALL
+ db BLU_APRICORN, LURE_BALL
+ db YLW_APRICORN, MOON_BALL
+ db GRN_APRICORN, FRIEND_BALL
+ db WHT_APRICORN, FAST_BALL
+ db BLK_APRICORN, HEAVY_BALL
+ db PNK_APRICORN, LOVE_BALL
+ db -1
diff --git a/engine/mon_icons.asm b/engine/mon_icons.asm
index 70c439863..18dc4f94b 100755
--- a/engine/mon_icons.asm
+++ b/engine/mon_icons.asm
@@ -466,7 +466,7 @@ ReadMonMenuIcon: ; 8eab3
; 8eac4
-INCLUDE "data/mon_menu_icons.asm"
+INCLUDE "data/pokemon/menu_icons.asm"
INCLUDE "gfx/icon_pointers.asm"
diff --git a/engine/mon_stats.asm b/engine/mon_stats.asm
new file mode 100644
index 000000000..ec468be16
--- /dev/null
+++ b/engine/mon_stats.asm
@@ -0,0 +1,486 @@
+DrawPlayerHP: ; 50b0a
+ ld a, $1
+ jr DrawHP
+
+DrawEnemyHP: ; 50b0e
+ ld a, $2
+
+DrawHP: ; 50b10
+ ld [wWhichHPBar], a
+ push hl
+ push bc
+ ; box mons have full HP
+ ld a, [MonType]
+ cp BOXMON
+ jr z, .at_least_1_hp
+
+ ld a, [TempMonHP]
+ ld b, a
+ ld a, [TempMonHP + 1]
+ ld c, a
+
+; Any HP?
+ or b
+ jr nz, .at_least_1_hp
+
+ xor a
+ ld c, a
+ ld e, a
+ ld a, 6
+ ld d, a
+ jp .fainted
+
+.at_least_1_hp
+ ld a, [TempMonMaxHP]
+ ld d, a
+ ld a, [TempMonMaxHP + 1]
+ ld e, a
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .not_boxmon
+
+ ld b, d
+ ld c, e
+
+.not_boxmon
+ predef ComputeHPBarPixels
+ ld a, 6
+ ld d, a
+ ld c, a
+
+.fainted
+ ld a, c
+ pop bc
+ ld c, a
+ pop hl
+ push de
+ push hl
+ push hl
+ call DrawBattleHPBar
+ pop hl
+
+; Print HP
+ bccoord 1, 1, 0
+ add hl, bc
+ ld de, TempMonHP
+ ld a, [MonType]
+ cp BOXMON
+ jr nz, .not_boxmon_2
+ ld de, TempMonMaxHP
+.not_boxmon_2
+ lb bc, 2, 3
+ call PrintNum
+
+ ld a, "/"
+ ld [hli], a
+
+; Print max HP
+ ld de, TempMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+ pop hl
+ pop de
+ ret
+
+PrintTempMonStats: ; 50b7b
+; Print TempMon's stats at hl, with spacing bc.
+ push bc
+ push hl
+ ld de, .StatNames
+ call PlaceString
+ pop hl
+ pop bc
+ add hl, bc
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld de, TempMonAttack
+ lb bc, 2, 3
+ call .PrintStat
+ ld de, TempMonDefense
+ call .PrintStat
+ ld de, TempMonSpclAtk
+ call .PrintStat
+ ld de, TempMonSpclDef
+ call .PrintStat
+ ld de, TempMonSpeed
+ jp PrintNum
+
+.PrintStat: ; 50bab
+ push hl
+ call PrintNum
+ pop hl
+ ld de, SCREEN_WIDTH * 2
+ add hl, de
+ ret
+
+.StatNames: ; 50bb5
+ db "ATTACK"
+ next "DEFENSE"
+ next "SPCL.ATK"
+ next "SPCL.DEF"
+ next "SPEED"
+ next "@"
+
+GetGender: ; 50bdd
+; Return the gender of a given monster (CurPartyMon/CurOTMon/CurWildMon).
+; When calling this function, a should be set to an appropriate MonType value.
+
+; return values:
+; a = 1: f = nc|nz; male
+; a = 0: f = nc|z; female
+; f = c: genderless
+
+; This is determined by comparing the Attack and Speed DVs
+; with the species' gender ratio.
+
+; Figure out what type of monster struct we're looking at.
+
+; 0: PartyMon
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [MonType]
+ and a
+ jr z, .PartyMon
+
+; 1: OTPartyMon
+ ld hl, OTPartyMon1DVs
+ dec a
+ jr z, .PartyMon
+
+; 2: sBoxMon
+ ld hl, sBoxMon1DVs
+ ld bc, BOXMON_STRUCT_LENGTH
+ dec a
+ jr z, .sBoxMon
+
+; 3: Unknown
+ ld hl, TempMonDVs
+ dec a
+ jr z, .DVs
+
+; else: WildMon
+ ld hl, EnemyMonDVs
+ jr .DVs
+
+; Get our place in the party/box.
+
+.PartyMon:
+.sBoxMon
+ ld a, [CurPartyMon]
+ call AddNTimes
+
+.DVs:
+
+; sBoxMon data is read directly from SRAM.
+ ld a, [MonType]
+ cp BOXMON
+ ld a, 1
+ call z, GetSRAMBank
+
+; Attack DV
+ ld a, [hli]
+ and $f0
+ ld b, a
+; Speed DV
+ ld a, [hl]
+ and $f0
+ swap a
+
+; Put our DVs together.
+ or b
+ ld b, a
+
+; Close SRAM if we were dealing with a sBoxMon.
+ ld a, [MonType]
+ cp BOXMON
+ call z, CloseSRAM
+
+; We need the gender ratio to do anything with this.
+ push bc
+ ld a, [CurPartySpecies]
+ dec a
+ ld hl, BaseData + BASE_GENDER
+ ld bc, BASE_DATA_SIZE
+ call AddNTimes
+ pop bc
+
+ ld a, BANK(BaseData)
+ call GetFarByte
+
+; The higher the ratio, the more likely the monster is to be female.
+
+ cp GENDERLESS
+ jr z, .Genderless
+
+ and a ; GENDER_F0?
+ jr z, .Male
+
+ cp GENDER_F100
+ jr z, .Female
+
+; Values below the ratio are male, and vice versa.
+ cp b
+ jr c, .Male
+
+.Female:
+ xor a
+ ret
+
+.Male:
+ ld a, 1
+ and a
+ ret
+
+.Genderless:
+ scf
+ ret
+
+ListMovePP: ; 50c50
+ ld a, [wNumMoves]
+ inc a
+ ld c, a
+ ld a, NUM_MOVES
+ sub c
+ ld b, a
+ push hl
+ ld a, [Buffer1]
+ ld e, a
+ ld d, $0
+ ld a, $3e ; P
+ call .load_loop
+ ld a, b
+ and a
+ jr z, .skip
+ ld c, a
+ ld a, "-"
+ call .load_loop
+
+.skip
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ ld d, h
+ ld e, l
+ ld hl, TempMonMoves
+ ld b, 0
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ push bc
+ push hl
+ push de
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ push af
+ ld [hl], b
+ push hl
+ callab GetMaxPPOfMove
+ pop hl
+ pop af
+ ld [hl], a
+ pop de
+ pop hl
+ push hl
+ ld bc, TempMonPP - (TempMonMoves + 1)
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ ld [StringBuffer1 + 4], a
+ ld h, d
+ ld l, e
+ push hl
+ ld de, StringBuffer1 + 4
+ lb bc, 1, 2
+ call PrintNum
+ ld a, "/"
+ ld [hli], a
+ ld de, wd265
+ lb bc, 1, 2
+ call PrintNum
+ pop hl
+ ld a, [Buffer1]
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ pop bc
+ inc b
+ ld a, b
+ cp NUM_MOVES
+ jr nz, .loop
+
+.done
+ ret
+
+.load_loop ; 50cc9
+ ld [hli], a
+ ld [hld], a
+ add hl, de
+ dec c
+ jr nz, .load_loop
+ ret
+
+Function50cd0: ; 50cd0
+; XXX
+.loop
+ ld [hl], $32
+ inc hl
+ ld [hl], $3e
+ dec hl
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
+
+Predef22: ; unreferenced predef
+ push hl
+ push hl
+ ld hl, PartyMonNicknames
+ ld a, [CurPartyMon]
+ call GetNick
+ pop hl
+ call PlaceString
+ call CopyPkmnToTempMon
+ pop hl
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ push hl
+ ld bc, -12
+ add hl, bc
+ ld b, $0
+ call DrawEnemyHP
+ pop hl
+ ld bc, 5
+ add hl, bc
+ push de
+ call PrintLevel
+ pop de
+
+.egg
+ ret
+
+PlaceStatusString: ; 50d0a
+ push de
+ inc de
+ inc de
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ or b
+ pop de
+ jr nz, PlaceNonFaintStatus
+ push de
+ ld de, FntString
+ call CopyStatusString
+ pop de
+ ld a, $1
+ and a
+ ret
+
+FntString: ; 50d22
+ db "FNT@"
+
+CopyStatusString: ; 50d25
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ ret
+
+PlaceNonFaintStatus: ; 50d2e
+ push de
+ ld a, [de]
+ ld de, PsnString
+ bit PSN, a
+ jr nz, .place
+ ld de, BrnString
+ bit BRN, a
+ jr nz, .place
+ ld de, FrzString
+ bit FRZ, a
+ jr nz, .place
+ ld de, ParString
+ bit PAR, a
+ jr nz, .place
+ ld de, SlpString
+ and SLP
+ jr z, .no_status
+
+.place
+ call CopyStatusString
+ ld a, $1
+ and a
+
+.no_status
+ pop de
+ ret
+
+SlpString: db "SLP@"
+PsnString: db "PSN@"
+BrnString: db "BRN@"
+FrzString: db "FRZ@"
+ParString: db "PAR@"
+
+ListMoves: ; 50d6f
+; List moves at hl, spaced every [Buffer1] tiles.
+ ld de, wListMoves_MoveIndicesBuffer
+ ld b, $0
+.moves_loop
+ ld a, [de]
+ inc de
+ and a
+ jr z, .no_more_moves
+ push de
+ push hl
+ push hl
+ ld [CurSpecies], a
+ ld a, MOVE_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ ld de, StringBuffer1
+ pop hl
+ push bc
+ call PlaceString
+ pop bc
+ ld a, b
+ ld [wNumMoves], a
+ inc b
+ pop hl
+ push bc
+ ld a, [Buffer1]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ pop bc
+ pop de
+ ld a, b
+ cp NUM_MOVES
+ jr z, .done
+ jr .moves_loop
+
+.no_more_moves
+ ld a, b
+.nonmove_loop
+ push af
+ ld [hl], "-"
+ ld a, [Buffer1]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ pop af
+ inc a
+ cp NUM_MOVES
+ jr nz, .nonmove_loop
+
+.done
+ ret
diff --git a/engine/mysterygift.asm b/engine/mystery_gift.asm
index 8204ab332..8204ab332 100755
--- a/engine/mysterygift.asm
+++ b/engine/mystery_gift.asm
diff --git a/engine/mysterygift2.asm b/engine/mystery_gift_2.asm
index dc0baf39c..dc0baf39c 100755
--- a/engine/mysterygift2.asm
+++ b/engine/mystery_gift_2.asm
diff --git a/engine/new_pokedex_entry.asm b/engine/new_pokedex_entry.asm
new file mode 100644
index 000000000..012052530
--- /dev/null
+++ b/engine/new_pokedex_entry.asm
@@ -0,0 +1,52 @@
+NewPokedexEntry: ; fb877
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ call LowVolume
+ call ClearBGPalettes
+ call ClearTileMap
+ call UpdateSprites
+ call ClearSprites
+ ld a, [wPokedexStatus]
+ push af
+ ld a, [hSCX]
+ add $5
+ ld [hSCX], a
+ xor a
+ ld [wPokedexStatus], a
+ callba _NewPokedexEntry
+ call WaitPressAorB_BlinkCursor
+ ld a, $1
+ ld [wPokedexStatus], a
+ callba DisplayDexEntry
+ call WaitPressAorB_BlinkCursor
+ pop af
+ ld [wPokedexStatus], a
+ call MaxVolume
+ call RotateThreePalettesRight
+ ld a, [hSCX]
+ add -5 ; 251 ; NUM_POKEMON
+ ld [hSCX], a
+ call .ReturnFromDexRegistration
+ pop af
+ ld [hMapAnims], a
+ ret
+; fb8c8
+
+.ReturnFromDexRegistration: ; fb8c8
+ call ClearTileMap
+ call LoadFontsExtra
+ call LoadStandardFont
+ callba Pokedex_PlaceFrontpicTopLeftCorner
+ call WaitBGMap2
+ callba GetEnemyMonDVs
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hl]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; fb8f1
diff --git a/engine/npc_movement.asm b/engine/npc_movement.asm
index 9a18cdcb1..e102cc554 100755
--- a/engine/npc_movement.asm
+++ b/engine/npc_movement.asm
@@ -7,7 +7,8 @@ Function6ec1: ; 6ec1
ld hl, OBJECT_FLAGS1
add hl, bc
- bit 4, [hl] ; lost
+ bit 4, [hl] ; lost, uncomment next line to fix
+; jr nz, .resume
push hl
push bc
call Function6f2c
diff --git a/engine/overworld.asm b/engine/overworld.asm
index 73115e479..a085d1d5a 100755
--- a/engine/overworld.asm
+++ b/engine/overworld.asm
@@ -389,8 +389,8 @@ AddSpriteGFX: ; 142e5
LoadSpriteGFX: ; 14306
-; Bug: b is not preserved, so
-; it's useless as a next count.
+; Bug: b is not preserved, so it's useless as a next count.
+; Uncomment the lines below to fix.
ld hl, UsedSprites
ld b, SPRITE_GFX_LIST_CAPACITY
@@ -409,7 +409,9 @@ LoadSpriteGFX: ; 14306
ret
.LoadSprite:
+ ; push bc
call GetSprite
+ ; pop bc
ld a, l
ret
; 1431e
@@ -721,6 +723,6 @@ INCLUDE "data/emote_headers.asm"
INCLUDE "data/sprite_mons.asm"
-INCLUDE "data/outdoor_sprites.asm"
+INCLUDE "data/maps/outdoor_sprites.asm"
INCLUDE "gfx/sprite_headers.asm"
diff --git a/engine/pack.asm b/engine/pack.asm
index e10b70e12..858548771 100644
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -1315,10 +1315,10 @@ DrawPackGFX: ; 1089d
; 108cc
PackGFXPointers: ; 108cc
- dw PackGFX + $f0 * 1
- dw PackGFX + $f0 * 3
- dw PackGFX + $f0 * 0
- dw PackGFX + $f0 * 2
+ dw PackGFX + (15 tiles) * 1
+ dw PackGFX + (15 tiles) * 3
+ dw PackGFX + (15 tiles) * 0
+ dw PackGFX + (15 tiles) * 2
; 108d4
Pack_InterpretJoypad: ; 108d4 (4:48d4)
diff --git a/engine/pack_f.asm b/engine/pack_f.asm
new file mode 100644
index 000000000..f71e43db8
--- /dev/null
+++ b/engine/pack_f.asm
@@ -0,0 +1,20 @@
+DrawKrisPackGFX: ; 48e81
+ ld hl, PackFGFXPointers
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, VTiles2 tile $50
+ lb bc, BANK(PackFGFX), 15
+ call Request2bpp
+ ret
+
+PackFGFXPointers: ; 48e93
+ dw PackFGFX + (15 tiles) * 1
+ dw PackFGFX + (15 tiles) * 3
+ dw PackFGFX + (15 tiles) * 0
+ dw PackFGFX + (15 tiles) * 2
+
+PackFGFX: ; 48e9b
+INCBIN "gfx/pack/pack_f.2bpp"
diff --git a/engine/place_graphics.asm b/engine/place_graphics.asm
new file mode 100644
index 000000000..d72364776
--- /dev/null
+++ b/engine/place_graphics.asm
@@ -0,0 +1,56 @@
+PlaceGraphic: ; 2ef6e
+; Fill wBoxAlignment-aligned box width b height c
+; with iterating tile starting from hGraphicStartTile at hl.
+; Predef $13
+
+ ld de, SCREEN_WIDTH
+
+ ld a, [wBoxAlignment]
+ and a
+ jr nz, .right
+
+ ld a, [hGraphicStartTile]
+.x1
+ push bc
+ push hl
+
+.y1
+ ld [hl], a
+ add hl, de
+ inc a
+ dec c
+ jr nz, .y1
+
+ pop hl
+ inc hl
+ pop bc
+ dec b
+ jr nz, .x1
+ ret
+
+.right
+; Right-aligned.
+ push bc
+ ld b, 0
+ dec c
+ add hl, bc
+ pop bc
+
+ ld a, [hGraphicStartTile]
+.x2
+ push bc
+ push hl
+
+.y2
+ ld [hl], a
+ add hl, de
+ inc a
+ dec c
+ jr nz, .y2
+
+ pop hl
+ dec hl
+ pop bc
+ dec b
+ jr nz, .x2
+ ret
diff --git a/engine/play_slow_cry.asm b/engine/play_slow_cry.asm
new file mode 100644
index 000000000..322fd21cc
--- /dev/null
+++ b/engine/play_slow_cry.asm
@@ -0,0 +1,31 @@
+PlaySlowCry: ; fb841
+ ld a, [ScriptVar]
+ call LoadCryHeader
+ jr c, .done
+
+ ld hl, CryPitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, -$140
+ add hl, bc
+ ld a, l
+ ld [CryPitch], a
+ ld a, h
+ ld [CryPitch + 1], a
+ ld hl, CryLength
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld bc, $60
+ add hl, bc
+ ld a, l
+ ld [CryLength], a
+ ld a, h
+ ld [CryLength + 1], a
+ callba _PlayCryHeader
+ call WaitSFX
+
+.done
+ ret
+; fb877
diff --git a/engine/player_gfx.asm b/engine/player_gfx.asm
new file mode 100644
index 000000000..1af444d73
--- /dev/null
+++ b/engine/player_gfx.asm
@@ -0,0 +1,263 @@
+Function88248: ; 88248
+; XXX
+ ld c, CAL
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .okay
+ ld c, KAREN
+
+.okay
+ ld a, c
+ ld [TrainerClass], a
+ ret
+
+MovePlayerPicRight: ; 88258
+ hlcoord 6, 4
+ ld de, 1
+ jr MovePlayerPic
+
+MovePlayerPicLeft: ; 88260
+ hlcoord 13, 4
+ ld de, -1
+ ; fallthrough
+
+MovePlayerPic: ; 88266
+; Move player pic at hl by de * 7 tiles.
+ ld c, $8
+.loop
+ push bc
+ push hl
+ push de
+ xor a
+ ld [hBGMapMode], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ xor a
+ ld [hBGMapThird], a
+ call WaitBGMap
+ call DelayFrame
+ pop de
+ pop hl
+ add hl, de
+ pop bc
+ dec c
+ ret z
+ push hl
+ push bc
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ lb bc, 7, 7
+ call ClearBox
+ pop bc
+ pop hl
+ jr .loop
+
+ShowPlayerNamingChoices: ; 88297
+ ld hl, ChrisNameMenuHeader
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotGender
+ ld hl, KrisNameMenuHeader
+.GotGender:
+ call LoadMenuDataHeader
+ call VerticalMenu
+ ld a, [wMenuCursorY]
+ dec a
+ call CopyNameFromMenu
+ call CloseWindow
+ ret
+
+ChrisNameMenuHeader: ; 882b5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw .MaleNames
+ db 1 ; ????
+ db 0 ; default option
+
+.MaleNames: ; 882be
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+MalePlayerNameArray: ; 882c9
+ db "CHRIS@"
+ db "MAT@"
+ db "ALLAN@"
+ db "JON@"
+ db 2 ; displacement
+ db " NAME @" ; title
+
+KrisNameMenuHeader: ; 882e5
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 11, 10 ; end coords
+ dw .FemaleNames
+ db 1 ; ????
+ db 0 ; default option
+
+.FemaleNames: ; 882ee
+ db $91 ; flags
+ db 5 ; items
+ db "NEW NAME@"
+FemalePlayerNameArray: ; 882f9
+ db "KRIS@"
+ db "AMANDA@"
+ db "JUANA@"
+ db "JODI@"
+ db 2 ; displacement
+ db " NAME @" ; title
+
+GetPlayerNameArray: ; 88318 This Function is never called
+ ld hl, PlayerName
+ ld de, MalePlayerNameArray
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .done
+ ld de, FemalePlayerNameArray
+
+.done
+ call InitName
+ ret
+
+GetPlayerIcon: ; 8832c
+; Get the player icon corresponding to gender
+
+; Male
+ ld de, ChrisSpriteGFX
+ ld b, BANK(ChrisSpriteGFX)
+
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .done
+
+; Female
+ ld de, KrisSpriteGFX
+ ld b, BANK(KrisSpriteGFX)
+
+.done
+ ret
+
+GetCardPic: ; 8833e
+ ld hl, ChrisCardPic
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotClass
+ ld hl, KrisCardPic
+.GotClass:
+ ld de, VTiles2 tile $00
+ ld bc, $23 tiles
+ ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)
+ call FarCopyBytes
+ ld hl, CardGFX
+ ld de, VTiles2 tile $23
+ ld bc, 6 tiles
+ ld a, BANK(CardGFX)
+ call FarCopyBytes
+ ret
+
+ChrisCardPic: ; 88365
+INCBIN "gfx/trainer_card/chris_card.2bpp"
+
+KrisCardPic: ; 88595
+INCBIN "gfx/trainer_card/kris_card.2bpp"
+
+CardGFX: ; 887c5
+INCBIN "gfx/trainer_card/trainer_card.2bpp"
+
+GetPlayerBackpic: ; 88825
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, GetChrisBackpic
+ call GetKrisBackpic
+ ret
+
+GetChrisBackpic: ; 88830
+ ld hl, ChrisBackpic
+ ld b, BANK(ChrisBackpic)
+ ld de, VTiles2 tile $31
+ ld c, 7 * 7
+ predef DecompressPredef
+ ret
+
+HOF_LoadTrainerFrontpic: ; 88840
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld e, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotClass
+ ld e, 1
+
+.GotClass:
+ ld a, e
+ ld [TrainerClass], a
+ ld de, ChrisPic
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotPic
+ ld de, KrisPic
+
+.GotPic:
+ ld hl, VTiles2
+ ld b, BANK(ChrisPic) ; BANK(KrisPic)
+ ld c, 7 * 7
+ call Get2bpp
+ call WaitBGMap
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+DrawIntroPlayerPic: ; 88874
+; Draw the player pic at (6,4).
+
+; Get class
+ ld e, CHRIS
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotClass
+ ld e, KRIS
+.GotClass:
+ ld a, e
+ ld [TrainerClass], a
+
+; Load pic
+ ld de, ChrisPic
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .GotPic
+ ld de, KrisPic
+.GotPic:
+ ld hl, VTiles2
+ ld b, BANK(ChrisPic) ; BANK(KrisPic)
+ ld c, 7 * 7 ; dimensions
+ call Get2bpp
+
+; Draw
+ xor a
+ ld [hGraphicStartTile], a
+ hlcoord 6, 4
+ lb bc, 7, 7
+ predef PlaceGraphic
+ ret
+
+ChrisPic: ; 888a9
+INCBIN "gfx/player/chris.2bpp"
+
+KrisPic: ; 88bb9
+INCBIN "gfx/player/kris.2bpp"
+
+GetKrisBackpic: ; 88ec9
+; Kris's backpic is uncompressed.
+ ld de, KrisBackpic
+ ld hl, VTiles2 tile $31
+ lb bc, BANK(KrisBackpic), 7 * 7 ; dimensions
+ call Get2bpp
+ ret
+
+KrisBackpic: ; 88ed6
+INCBIN "gfx/player/kris_back.2bpp"
diff --git a/engine/player_gfx_2.asm b/engine/player_gfx_2.asm
new file mode 100644
index 000000000..d6e7791a3
--- /dev/null
+++ b/engine/player_gfx_2.asm
@@ -0,0 +1,5 @@
+ChrisBackpic: ; 2ba1a
+INCBIN "gfx/player/chris_back.2bpp.lz"
+
+DudeBackpic: ; 2bbaa
+INCBIN "gfx/battle/dude.2bpp.lz"
diff --git a/engine/player_movement.asm b/engine/player_movement.asm
index 7ccb36551..34ca81fe9 100755
--- a/engine/player_movement.asm
+++ b/engine/player_movement.asm
@@ -42,7 +42,7 @@ DoPlayerMovement:: ; 80000
jr z, .Surf
cp PLAYER_BIKE
jr z, .Normal
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
jr z, .Ice
.Normal:
@@ -409,6 +409,8 @@ DoPlayerMovement:: ; 80000
; making bumps silent.
ld a, [WalkingDirection]
+ ; cp STANDING
+ ; jr z, .not_warp
ld e, a
ld d, 0
ld hl, .EdgeWarps
@@ -420,6 +422,7 @@ DoPlayerMovement:: ; 80000
ld a, 1
ld [wd041], a
ld a, [WalkingDirection]
+ ; This is in the wrong place.
cp STANDING
jr z, .not_warp
@@ -750,11 +753,10 @@ DoPlayerMovement:: ; 80000
; 803ca
.BikeCheck: ; 803ca
-
ld a, [PlayerState]
cp PLAYER_BIKE
ret z
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
ret
; 803d3
@@ -824,7 +826,7 @@ CheckStandingOnIce:: ; 80404
call CheckIceTile
jr nc, .yep
ld a, [PlayerState]
- cp PLAYER_SLIP
+ cp PLAYER_SKATE
jr nz, .not_ice
.yep
diff --git a/items/pokeball_wobble.asm b/engine/pokeball_wobble.asm
index 7fb4d3e38..7fb4d3e38 100755
--- a/items/pokeball_wobble.asm
+++ b/engine/pokeball_wobble.asm
diff --git a/engine/pokedex.asm b/engine/pokedex.asm
index c60396a40..a7a7a4860 100644
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -1709,9 +1709,9 @@ Pokedex_ABCMode: ; 40c30
ret
-INCLUDE "data/pokedex/order_alpha.asm"
+INCLUDE "data/pokemon/dex_order_alpha.asm"
-INCLUDE "data/pokedex/order_new.asm"
+INCLUDE "data/pokemon/dex_order_new.asm"
Pokedex_DisplayModeDescription: ; 40e5b
diff --git a/engine/pokedex_3.asm b/engine/pokedex_3.asm
new file mode 100644
index 000000000..3414252c1
--- /dev/null
+++ b/engine/pokedex_3.asm
@@ -0,0 +1,162 @@
+LoadSGBPokedexGFX: ; 1ddf1c
+ ld hl, SGBPokedexGFX_LZ
+ ld de, VTiles2 tile $31
+ call Decompress
+ ret
+
+LoadSGBPokedexGFX2: ; 1ddf26 (77:5f26)
+ ld hl, SGBPokedexGFX_LZ
+ ld de, VTiles2 tile $31
+ lb bc, BANK(SGBPokedexGFX_LZ), $3a
+ call DecompressRequest2bpp
+ ret
+
+SGBPokedexGFX_LZ: ; 1ddf33
+INCBIN "gfx/pokedex/sgb.2bpp.lz"
+
+LoadQuestionMarkPic: ; 1de0d7
+ ld hl, .QuestionMarkLZ
+ ld de, sScratch
+ call Decompress
+ ret
+
+.QuestionMarkLZ: ; 1de0e1
+INCBIN "gfx/pics/questionmark/front.2bpp.lz"
+
+DrawPokedexListWindow: ; 1de171 (77:6171)
+ ld a, $32
+ hlcoord 0, 17
+ ld bc, 12
+ call ByteFill
+ hlcoord 0, 1
+ lb bc, 15, 11
+ call ClearBox
+ ld a, $34
+ hlcoord 0, 0
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 16
+ ld bc, 11
+ call ByteFill
+ hlcoord 5, 0
+ ld [hl], $3f
+ hlcoord 5, 16
+ ld [hl], $40
+ ld a, [wCurrentDexMode]
+ cp DEXMODE_OLD
+ jr z, .OldMode
+; scroll bar
+ hlcoord 11, 0
+ ld [hl], $50
+ ld a, $51
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT - 3
+ call Bank77_FillColumn
+ ld [hl], $52
+ jr .Done
+
+.OldMode:
+; no scroll bar
+ hlcoord 11, 0
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT - 3
+ call Bank77_FillColumn
+ ld [hl], $68
+.Done:
+ ret
+
+DrawPokedexSearchResultsWindow: ; 1de1d1 (77:61d1)
+ ld a, $34
+ hlcoord 0, 0
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 10
+ ld bc, 11
+ call ByteFill
+ hlcoord 5, 0
+ ld [hl], $3f
+ hlcoord 5, 10
+ ld [hl], $40
+ hlcoord 11, 0
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 1
+ ld b, SCREEN_HEIGHT / 2
+ call Bank77_FillColumn
+ ld [hl], $68
+ ld a, $34
+ hlcoord 0, 11
+ ld bc, 11
+ call ByteFill
+ ld a, $39
+ hlcoord 0, 17
+ ld bc, 11
+ call ByteFill
+ hlcoord 11, 11
+ ld [hl], $66
+ ld a, $67
+ hlcoord 11, 12
+ ld b, 5
+ call Bank77_FillColumn
+ ld [hl], $68
+ hlcoord 0, 12
+ lb bc, 5, 11
+ call ClearBox
+ ld de, .esults_D
+ hlcoord 0, 12
+ call PlaceString
+ ret
+
+.esults_D ; 1de23c
+; (SEARCH R)
+ db "ESULTS"
+ next ""
+; (### FOUN)
+ next "D!@"
+
+DrawDexEntryScreenRightEdge: ; 1de247
+ ld a, [hBGMapAddress]
+ ld l, a
+ ld a, [hBGMapAddress + 1]
+ ld h, a
+ push hl
+ inc hl
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [hBGMapAddress + 1], a
+ hlcoord 19, 0
+ ld [hl], $66
+ hlcoord 19, 1
+ ld a, $67
+ ld b, 15
+ call Bank77_FillColumn
+ ld [hl], $68
+ hlcoord 19, 17
+ ld [hl], $3c
+ xor a
+ ld b, SCREEN_HEIGHT
+ hlcoord 19, 0, AttrMap
+ call Bank77_FillColumn
+ call WaitBGMap2
+ pop hl
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [hBGMapAddress + 1], a
+ ret
+
+Bank77_FillColumn: ; 1de27f
+ push de
+ ld de, SCREEN_WIDTH
+.loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop
+ pop de
+ ret
diff --git a/engine/pokegear.asm b/engine/pokegear.asm
index 561ece400..bf2c2b40e 100755
--- a/engine/pokegear.asm
+++ b/engine/pokegear.asm
@@ -2338,44 +2338,7 @@ HasVisitedSpawn: ; 91c50
; 91c5e
-Flypoints: ; 91c5e
-; landmark, spawn point
- const_def
-flypoint: MACRO
- const FLY_\1
- db \2, SPAWN_\1
-ENDM
-; Johto
- flypoint NEW_BARK, NEW_BARK_TOWN
- flypoint CHERRYGROVE, CHERRYGROVE_CITY
- flypoint VIOLET, VIOLET_CITY
- flypoint AZALEA, AZALEA_TOWN
- flypoint GOLDENROD, GOLDENROD_CITY
- flypoint ECRUTEAK, ECRUTEAK_CITY
- flypoint OLIVINE, OLIVINE_CITY
- flypoint CIANWOOD, CIANWOOD_CITY
- flypoint MAHOGANY, MAHOGANY_TOWN
- flypoint LAKE, LAKE_OF_RAGE
- flypoint BLACKTHORN, BLACKTHORN_CITY
- flypoint MT_SILVER, SILVER_CAVE
-; Kanto
-
-KANTO_FLYPOINT EQU const_value
- flypoint PALLET, PALLET_TOWN
- flypoint VIRIDIAN, VIRIDIAN_CITY
- flypoint PEWTER, PEWTER_CITY
- flypoint CERULEAN, CERULEAN_CITY
- flypoint VERMILION, VERMILION_CITY
- flypoint ROCK_TUNNEL, ROCK_TUNNEL
- flypoint LAVENDER, LAVENDER_TOWN
- flypoint CELADON, CELADON_CITY
- flypoint SAFFRON, SAFFRON_CITY
- flypoint FUCHSIA, FUCHSIA_CITY
- flypoint CINNABAR, CINNABAR_ISLAND
- flypoint INDIGO, INDIGO_PLATEAU
- db -1
-
-; 91c8f
+INCLUDE "data/flypoints.asm"
ret_91c8f: ; 91c8f
ret
@@ -2872,19 +2835,7 @@ TownMapPals: ; 91f13
ret
.PalMap:
-townmappals: MACRO
-rept _NARG / 2
- dn \2, \1
- shift
- shift
-endr
-endm
- townmappals 1, 1, 1, 2, 2, 2, 0, 0, 1, 1, 3, 1, 4, 5, 4, 5
- townmappals 1, 1, 1, 2, 2, 2, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0
- townmappals 1, 1, 1, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
- townmappals 0, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0
- townmappals 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0
- townmappals 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0
+INCLUDE "data/palettes/town_map.asm"
; 91f7b
TownMapMon: ; 91f7b
diff --git a/engine/pokegear_2.asm b/engine/pokegear_2.asm
new file mode 100644
index 000000000..a5cceecfd
--- /dev/null
+++ b/engine/pokegear_2.asm
@@ -0,0 +1,25 @@
+TownMap_ConvertLineBreakCharacters: ; 1de2c5
+ ld hl, StringBuffer1
+.loop
+ ld a, [hl]
+ cp "@"
+ jr z, .end
+ cp "%"
+ jr z, .line_break
+ cp "¯"
+ jr z, .line_break
+ inc hl
+ jr .loop
+
+.line_break
+ ld [hl], "<LNBRK>"
+
+.end
+ ld de, StringBuffer1
+ hlcoord 9, 0
+ call PlaceString
+ ret
+
+
+PokegearGFX: ; 1de2e4
+INCBIN "gfx/pokegear/pokegear.2bpp.lz"
diff --git a/engine/pokerus.asm b/engine/pokerus.asm
new file mode 100644
index 000000000..3e5e094e4
--- /dev/null
+++ b/engine/pokerus.asm
@@ -0,0 +1,160 @@
+GivePokerusAndConvertBerries: ; 2ed44
+ call ConvertBerriesToBerryJuice
+ ld hl, PartyMon1PokerusStatus
+ ld a, [PartyCount]
+ ld b, a
+ ld de, PARTYMON_STRUCT_LENGTH
+; Check to see if any of your Pokemon already has Pokerus.
+; If so, sample its spread through your party.
+; This means that you cannot get Pokerus de novo while
+; a party member has an active infection.
+.loopMons
+ ld a, [hl]
+ and $f
+ jr nz, .TrySpreadPokerus
+ add hl, de
+ dec b
+ jr nz, .loopMons
+
+; If we haven't been to Goldenrod City at least once,
+; prevent the contraction of Pokerus.
+ ld hl, StatusFlags2
+ bit 6, [hl]
+ ret z
+ call Random
+ ld a, [hRandomAdd]
+ and a
+ ret nz
+ ld a, [hRandomSub]
+ cp $3
+ ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
+ ld a, [PartyCount]
+ ld b, a
+.randomMonSelectLoop
+ call Random
+ and $7
+ cp b
+ jr nc, .randomMonSelectLoop
+ ld hl, PartyMon1PokerusStatus
+ call GetPartyLocation ; get pokerus byte of random mon
+ ld a, [hl]
+ and $f0
+ ret nz ; if it already has pokerus, do nothing
+.randomPokerusLoop ; Simultaneously sample the strain and duration
+ call Random
+ and a
+ jr z, .randomPokerusLoop
+ ld b, a
+ and $f0
+ jr z, .load_pkrs
+ ld a, b
+ and $7
+ inc a
+.load_pkrs
+ ld b, a ; this should come before the label
+ swap b
+ and $3
+ inc a
+ add b
+ ld [hl], a
+ ret
+
+.TrySpreadPokerus:
+ call Random
+ cp 1 + 33 percent
+ ret nc ; 1/3 chance
+
+ ld a, [PartyCount]
+ cp 1
+ ret z ; only one mon, nothing to do
+
+ ld c, [hl]
+ ld a, b
+ cp 2
+ jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
+
+ call Random
+ cp 1 + 50 percent
+ jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
+.checkFollowingMonsLoop
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .infectMon
+ ld c, a
+ and $3
+ ret z ; if mon has cured pokerus, stop searching
+ dec b ; go on to next mon
+ ld a, b
+ cp 1
+ jr nz, .checkFollowingMonsLoop ; no more mons left
+ ret
+
+.checkPreviousMonsLoop
+ ld a, [PartyCount]
+ cp b
+ ret z ; no more mons
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ ld a, [hl]
+ and a
+ jr z, .infectMon
+ ld c, a
+ and $3
+ ret z ; if mon has cured pokerus, stop searching
+ inc b ; go on to next mon
+ jr .checkPreviousMonsLoop
+
+.infectMon
+ ld a, c
+ and $f0
+ ld b, a
+ ld a, c
+ swap a
+ and $3
+ inc a
+ add b
+ ld [hl], a
+ ret
+
+; any berry held by a Shuckle may be converted to berry juice
+ConvertBerriesToBerryJuice: ; 2ede6
+ ld hl, StatusFlags2
+ bit 6, [hl]
+ ret z
+ call Random
+ cp $10
+ ret nc ; 1/16 chance
+ ld hl, PartyMons
+ ld a, [PartyCount]
+.partyMonLoop
+ push af
+ push hl
+ ld a, [hl]
+ cp SHUCKLE
+ jr nz, .loopMon
+ ld bc, MON_ITEM
+ add hl, bc
+ ld a, [hl]
+ cp BERRY
+ jr z, .convertToJuice
+
+.loopMon
+ pop hl
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .partyMonLoop
+ ret
+
+.convertToJuice
+ ld a, BERRY_JUICE
+ ld [hl], a
+ pop hl
+ pop af
+ ret
diff --git a/engine/pokerus_tick.asm b/engine/pokerus_tick.asm
new file mode 100644
index 000000000..3c97fdc5e
--- /dev/null
+++ b/engine/pokerus_tick.asm
@@ -0,0 +1,26 @@
+ApplyPokerusTick: ; 13988
+; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured.
+ ld hl, PartyMon1PokerusStatus ; PartyMon1 + MON_PKRS
+ ld a, [PartyCount]
+ and a
+ ret z ; make sure it's not wasting time on an empty party
+ ld c, a
+.loop
+ ld a, [hl]
+ and $f ; lower nybble is the number of days remaining
+ jr z, .next ; if already 0, skip
+ sub b ; subtract the number of days
+ jr nc, .ok ; max(result, 0)
+ xor a
+.ok
+ ld d, a ; back up this value because we need to preserve the strain (upper nybble)
+ ld a, [hl]
+ and $f0
+ add d
+ ld [hl], a ; this prevents a cured pokemon from recontracting pokerus
+.next
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
diff --git a/engine/print_party.asm b/engine/print_party.asm
new file mode 100755
index 000000000..9bf98767b
--- /dev/null
+++ b/engine/print_party.asm
@@ -0,0 +1,362 @@
+PrintPage1: ; 1dc1b0
+ hlcoord 0, 0
+ decoord 0, 0, wPrinterTileMapBuffer
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ hlcoord 17, 1, wPrinterTileMapBuffer
+ ld a, $62
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 17, 2, wPrinterTileMapBuffer
+ ld a, $64
+ ld [hli], a
+ inc a
+ ld [hl], a
+ hlcoord 1, 9, wPrinterTileMapBuffer
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ hlcoord 1, 10, wPrinterTileMapBuffer
+ ld a, $61
+ ld [hli], a
+ ld [hl], a
+ hlcoord 2, 11, wPrinterTileMapBuffer
+ lb bc, 5, 18
+ call ClearBox
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 1 ; get page 1
+ callba GetDexEntryPagePointer
+ pop af
+ ld a, b
+ hlcoord 1, 11, wPrinterTileMapBuffer
+ call nz, FarString
+ hlcoord 19, 0, wPrinterTileMapBuffer
+ ld [hl], $35
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld b, $f
+.column_loop
+ ld [hl], $37
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ ld [hl], $3a
+ ret
+; 1dc213
+
+PrintPage2: ; 1dc213
+ hlcoord 0, 0, wPrinterTileMapBuffer
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, wPrinterTileMapBuffer
+ ld a, $36
+ ld b, 6
+ call .FillColumn
+ hlcoord 19, 0, wPrinterTileMapBuffer
+ ld a, $37
+ ld b, 6
+ call .FillColumn
+ hlcoord 0, 6, wPrinterTileMapBuffer
+ ld [hl], $38
+ inc hl
+ ld a, $39
+ ld bc, SCREEN_HEIGHT
+ call ByteFill
+ ld [hl], $3a
+ hlcoord 0, 7, wPrinterTileMapBuffer
+ ld bc, SCREEN_WIDTH
+ ld a, $32
+ call ByteFill
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ push af
+ ld a, [wd265]
+ ld b, a
+ ld c, 2 ; get page 2
+ callba GetDexEntryPagePointer
+ pop af
+ hlcoord 1, 1, wPrinterTileMapBuffer
+ ld a, b
+ call nz, FarString
+ ret
+; 1dc26a
+
+.FillColumn: ; 1dc26a
+ push de
+ ld de, SCREEN_WIDTH
+.column_loop
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .column_loop
+ pop de
+ ret
+; 1dc275
+
+GBPrinterStrings:
+GBPrinterString_Null: db "@"
+GBPrinterString_CheckingLink: next " CHECKING LINK...@"
+GBPrinterString_Transmitting: next " TRANSMITTING...@"
+GBPrinterString_Printing: next " PRINTING...@"
+GBPrinterString_PrinterError1:
+ db " Printer Error 1"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError2:
+ db " Printer Error 2"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError3:
+ db " Printer Error 3"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+GBPrinterString_PrinterError4:
+ db " Printer Error 4"
+ next ""
+ next "Check the Game Boy"
+ next "Printer Manual."
+ db "@"
+; 1dc381
+
+PrintPartyMonPage1: ; 1dc381
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+
+ ld de, GBPrinterHPIcon
+ ld hl, VTiles2 tile $71
+ lb bc, BANK(GBPrinterHPIcon), 1
+ call Request1bpp
+
+ ld de, GBPrinterLvIcon
+ ld hl, VTiles2 tile $6e
+ lb bc, BANK(GBPrinterLvIcon), 1
+ call Request1bpp
+
+ ld de, ShinyIconGFX
+ ld hl, VTiles2 tile $3f
+ lb bc, BANK(ShinyIconGFX), 1
+ call Get2bpp
+
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 7
+ ld b, 9
+ ld c, 18
+ call TextBox
+ hlcoord 8, 2
+ ld a, [TempMonLevel]
+ call PrintLevel_Force3Digits
+ hlcoord 12, 2
+ ld [hl], "◀" ; Filled left triangle
+ inc hl
+ ld de, TempMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ ld [CurSpecies], a
+ ld hl, PartyMonNicknames
+ call Function1dc50e
+ hlcoord 8, 4
+ call PlaceString
+ hlcoord 9, 6
+ ld [hl], "/"
+ call GetPokemonName
+ hlcoord 10, 6
+ call PlaceString
+ hlcoord 8, 0
+ ld [hl], "№"
+ inc hl
+ ld [hl], "."
+ inc hl
+ ld de, wd265
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ hlcoord 1, 9
+ ld de, String1dc550
+ call PlaceString
+ ld hl, PartyMonOT
+ call Function1dc50e
+ hlcoord 4, 9
+ call PlaceString
+ hlcoord 1, 11
+ ld de, String1dc559
+ call PlaceString
+ hlcoord 4, 11
+ ld de, TempMonID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ hlcoord 1, 14
+ ld de, String1dc554
+ call PlaceString
+ hlcoord 7, 14
+ ld a, [TempMonMoves + 0]
+ call Function1dc51a
+ call Function1dc52c
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ ld hl, wBoxAlignment
+ xor a
+ ld [hl], a
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr z, .asm_1dc469
+ inc [hl]
+
+.asm_1dc469
+ hlcoord 0, 0
+ call _PrepMonFrontpic
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc47b
+
+PrintPartyMonPage2: ; 1dc47b
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call LoadFontsBattleExtra
+ xor a
+ ld [MonType], a
+ callba CopyPkmnToTempMon
+ hlcoord 0, 0
+ ld b, 15
+ ld c, 18
+ call TextBox
+ ld bc, SCREEN_WIDTH
+ decoord 0, 0
+ hlcoord 0, 1
+ call CopyBytes
+ hlcoord 7, 0
+ ld a, [TempMonMoves + 1]
+ call Function1dc51a
+ hlcoord 7, 2
+ ld a, [TempMonMoves + 2]
+ call Function1dc51a
+ hlcoord 7, 4
+ ld a, [TempMonMoves + 3]
+ call Function1dc51a
+ hlcoord 7, 7
+ ld de, String1dc55d
+ call PlaceString
+ hlcoord 16, 7
+ ld de, TempMonAttack
+ call .PrintTempMonStats
+ hlcoord 16, 9
+ ld de, TempMonDefense
+ call .PrintTempMonStats
+ hlcoord 16, 11
+ ld de, TempMonSpclAtk
+ call .PrintTempMonStats
+ hlcoord 16, 13
+ ld de, TempMonSpclDef
+ call .PrintTempMonStats
+ hlcoord 16, 15
+ ld de, TempMonSpeed
+ call .PrintTempMonStats
+ call WaitBGMap
+ ld b, SCGB_STATS_SCREEN_HP_PALS
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 1dc507
+
+.PrintTempMonStats: ; 1dc507
+ lb bc, 2, 3
+ call PrintNum
+ ret
+; 1dc50e
+
+Function1dc50e: ; 1dc50e
+ ld bc, NAME_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ret
+; 1dc51a
+
+Function1dc51a: ; 1dc51a
+ and a
+ jr z, .no_move
+
+ ld [wd265], a
+ call GetMoveName
+ jr .got_string
+
+.no_move
+ ld de, String1dc584
+
+.got_string
+ call PlaceString
+ ret
+; 1dc52c
+
+Function1dc52c: ; 1dc52c
+ callba GetGender
+ ld a, " "
+ jr c, .got_gender
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
+
+.got_gender
+ hlcoord 17, 2
+ ld [hl], a
+ ld bc, TempMonDVs
+ callba CheckShininess
+ ret nc
+ hlcoord 18, 2
+ ld [hl], "<SHINY>"
+ ret
+; 1dc550
+
+String1dc550: ; 1dc550
+ db "OT/@"
+
+String1dc554: ; 1dc554
+ db "MOVE@"
+
+String1dc559: ; 1dc559
+ db "<ID>№.@"
+
+String1dc55d: ; 1dc55d
+ db "ATTACK"
+ next "DEFENSE"
+ next "SPCL.ATK"
+ next "SPCL.DEF"
+ next "SPEED"
+ db "@"
+
+String1dc584: ; 1dc584
+ db "------------@"
+; 1dc591
+
+GBPrinterHPIcon: ; 1dc591
+INCBIN "gfx/printer/hp.1bpp"
+
+GBPrinterLvIcon: ; 1dc599
+INCBIN "gfx/printer/lv.1bpp"
diff --git a/engine/printer.asm b/engine/printer.asm
index 7dd2d4f4a..777ea9269 100755
--- a/engine/printer.asm
+++ b/engine/printer.asm
@@ -1,4 +1,4 @@
-INCLUDE "engine/printer/serial.asm"
+INCLUDE "engine/printer_serial.asm"
SendScreenToPrinter: ; 843f0
.loop
diff --git a/engine/printer/serial.asm b/engine/printer_serial.asm
index 6909a38b2..6909a38b2 100755
--- a/engine/printer/serial.asm
+++ b/engine/printer_serial.asm
diff --git a/engine/printhoursmins.asm b/engine/printhoursmins.asm
new file mode 100644
index 000000000..711ff89b6
--- /dev/null
+++ b/engine/printhoursmins.asm
@@ -0,0 +1,64 @@
+Function1dd6a9: ; 1dd6a9
+; XXX
+ ld a, b
+ ld b, c
+ ld c, a
+ push bc
+ push de
+ ld hl, sp+$2
+ ld d, h
+ ld e, l
+ pop hl
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ pop bc
+ ret
+
+PrintHoursMins ; 1dd6bb (77:56bb)
+; Hours in b, minutes in c
+ ld a, b
+ cp 12
+ push af
+ jr c, .AM
+ jr z, .PM
+ sub 12
+ jr .PM
+.AM:
+ or a
+ jr nz, .PM
+ ld a, 12
+.PM:
+ ld b, a
+; Crazy stuff happening with the stack
+ push bc
+ ld hl, sp+$1
+ push de
+ push hl
+ pop de
+ pop hl
+ ld [hl], " "
+ lb bc, 1, 2
+ call PrintNum
+ ld [hl], ":"
+ inc hl
+ ld d, h
+ ld e, l
+ ld hl, sp+$0
+ push de
+ push hl
+ pop de
+ pop hl
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ pop bc
+ ld de, String_AM
+ pop af
+ jr c, .place_am_pm
+ ld de, String_PM
+.place_am_pm
+ inc hl
+ call PlaceString
+ ret
+
+String_AM: db "AM@" ; 1dd6fc
+String_PM: db "PM@" ; 1dd6ff
diff --git a/engine/prof_oaks_pc.asm b/engine/prof_oaks_pc.asm
index 05ff2b691..69949940b 100755
--- a/engine/prof_oaks_pc.asm
+++ b/engine/prof_oaks_pc.asm
@@ -1,4 +1,3 @@
-
ProfOaksPC: ; 0x265d3
ld hl, OakPCText1
call MenuTextBox
@@ -100,31 +99,26 @@ endr
ret
OakRatings: ; 0x2667f
-oakrating: MACRO
- db \1
- dw \2, \3
-endm
-
; if you caught at most this many, play this sound, load this text
- oakrating 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01
- oakrating 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02
- oakrating 34, SFX_DEX_FANFARE_20_49, OakRating03
- oakrating 49, SFX_DEX_FANFARE_20_49, OakRating04
- oakrating 64, SFX_DEX_FANFARE_50_79, OakRating05
- oakrating 79, SFX_DEX_FANFARE_50_79, OakRating06
- oakrating 94, SFX_DEX_FANFARE_80_109, OakRating07
- oakrating 109, SFX_DEX_FANFARE_80_109, OakRating08
- oakrating 124, SFX_CAUGHT_MON, OakRating09
- oakrating 139, SFX_CAUGHT_MON, OakRating10
- oakrating 154, SFX_DEX_FANFARE_140_169, OakRating11
- oakrating 169, SFX_DEX_FANFARE_140_169, OakRating12
- oakrating 184, SFX_DEX_FANFARE_170_199, OakRating13
- oakrating 199, SFX_DEX_FANFARE_170_199, OakRating14
- oakrating 214, SFX_DEX_FANFARE_200_229, OakRating15
- oakrating 229, SFX_DEX_FANFARE_200_229, OakRating16
- oakrating 239, SFX_DEX_FANFARE_230_PLUS, OakRating17
- oakrating 248, SFX_DEX_FANFARE_230_PLUS, OakRating18
- oakrating 255, SFX_DEX_FANFARE_230_PLUS, OakRating19
+ dbww 9, SFX_DEX_FANFARE_LESS_THAN_20, OakRating01
+ dbww 19, SFX_DEX_FANFARE_LESS_THAN_20, OakRating02
+ dbww 34, SFX_DEX_FANFARE_20_49, OakRating03
+ dbww 49, SFX_DEX_FANFARE_20_49, OakRating04
+ dbww 64, SFX_DEX_FANFARE_50_79, OakRating05
+ dbww 79, SFX_DEX_FANFARE_50_79, OakRating06
+ dbww 94, SFX_DEX_FANFARE_80_109, OakRating07
+ dbww 109, SFX_DEX_FANFARE_80_109, OakRating08
+ dbww 124, SFX_CAUGHT_MON, OakRating09
+ dbww 139, SFX_CAUGHT_MON, OakRating10
+ dbww 154, SFX_DEX_FANFARE_140_169, OakRating11
+ dbww 169, SFX_DEX_FANFARE_140_169, OakRating12
+ dbww 184, SFX_DEX_FANFARE_170_199, OakRating13
+ dbww 199, SFX_DEX_FANFARE_170_199, OakRating14
+ dbww 214, SFX_DEX_FANFARE_200_229, OakRating15
+ dbww 229, SFX_DEX_FANFARE_200_229, OakRating16
+ dbww 239, SFX_DEX_FANFARE_230_PLUS, OakRating17
+ dbww 248, SFX_DEX_FANFARE_230_PLUS, OakRating18
+ dbww 255, SFX_DEX_FANFARE_230_PLUS, OakRating19
OakPCText1: ; 0x266de
text_jump _OakPCText1
diff --git a/engine/radio.asm b/engine/radio.asm
index feded7616..58e953e55 100644
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -1578,7 +1578,6 @@ BuenasPassword4:
.greater_than_11
call Random
maskbits NUM_PASSWORD_CATEGORIES
- and x
cp NUM_PASSWORD_CATEGORIES
jr nc, .greater_than_11
; Store it in the high nybble of e.
diff --git a/trainers/read_attributes.asm b/engine/read_trainer_attributes.asm
index dfb8d3682..dfb8d3682 100644
--- a/trainers/read_attributes.asm
+++ b/engine/read_trainer_attributes.asm
diff --git a/trainers/read_party.asm b/engine/read_trainer_party.asm
index 9b7727a84..9b7727a84 100755
--- a/trainers/read_party.asm
+++ b/engine/read_trainer_party.asm
diff --git a/engine/save.asm b/engine/save.asm
index 74b0626c8..65339e0bb 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -500,12 +500,12 @@ HallOfFame_InitSaveIfNeeded: ; 14da0
; 14da9
ValidateSave: ; 14da9
- ld a, BANK(s1_a008)
+ ld a, BANK(sCheckValue1) ; BANK(sCheckValue2)
call GetSRAMBank
- ld a, 99
- ld [s1_a008], a
- ld a, " "
- ld [s1_ad0f], a
+ ld a, SAVE_CHECK_VALUE_1
+ ld [sCheckValue1], a
+ ld a, SAVE_CHECK_VALUE_2
+ ld [sCheckValue2], a
jp CloseSRAM
; 14dbb
@@ -568,12 +568,12 @@ SaveChecksum: ; 14e13
; 14e2d
ValidateBackupSave: ; 14e2d
- ld a, BANK(s0_b208)
+ ld a, BANK(sBackupCheckValue1) ; BANK(sBackupCheckValue2)
call GetSRAMBank
- ld a, 99
- ld [s0_b208], a
- ld a, " "
- ld [s0_bf0f], a
+ ld a, SAVE_CHECK_VALUE_1
+ ld [sBackupCheckValue1], a
+ ld a, SAVE_CHECK_VALUE_2
+ ld [sBackupCheckValue2], a
call CloseSRAM
ret
; 14e40
@@ -731,13 +731,13 @@ INCLUDE "data/default_options.asm"
CheckPrimarySaveFile: ; 14f84
- ld a, BANK(s1_a008)
+ ld a, BANK(sCheckValue1) ; BANK(sCheckValue2)
call GetSRAMBank
- ld a, [s1_a008]
- cp 99
+ ld a, [sCheckValue1]
+ cp SAVE_CHECK_VALUE_1
jr nz, .nope
- ld a, [s1_ad0f]
- cp " "
+ ld a, [sCheckValue2]
+ cp SAVE_CHECK_VALUE_2
jr nz, .nope
ld hl, sOptions
ld de, Options
@@ -753,13 +753,13 @@ CheckPrimarySaveFile: ; 14f84
; 14faf
CheckBackupSaveFile: ; 14faf
- ld a, BANK(s0_b208)
+ ld a, BANK(sBackupCheckValue1) ; BANK(sBackupCheckValue2)
call GetSRAMBank
- ld a, [s0_b208]
- cp 99
+ ld a, [sBackupCheckValue1]
+ cp SAVE_CHECK_VALUE_1
jr nz, .nope
- ld a, [s0_bf0f]
- cp " "
+ ld a, [sBackupCheckValue2]
+ cp SAVE_CHECK_VALUE_2
jr nz, .nope
ld hl, sBackupOptions
ld de, Options
diff --git a/engine/selectmenu.asm b/engine/select_menu.asm
index 5d3b5ff0a..5d3b5ff0a 100755
--- a/engine/selectmenu.asm
+++ b/engine/select_menu.asm
diff --git a/engine/sgb_layouts.asm b/engine/sgb_layouts.asm
new file mode 100644
index 000000000..e59fb19d8
--- /dev/null
+++ b/engine/sgb_layouts.asm
@@ -0,0 +1,636 @@
+Predef_LoadSGBLayout: ; 864c
+; LoadSGBLayout
+ call CheckCGB
+ jp nz, Predef_LoadSGBLayoutCGB
+
+ ld a, b
+ cp SCGB_RAM
+ jr nz, .not_ram
+ ld a, [SGBPredef]
+.not_ram
+ cp SCGB_PARTY_MENU_HP_PALS
+ jp z, SGB_ApplyPartyMenuHPPals
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, .Jumptable
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .Finish
+ push de
+ jp hl
+; 866f
+
+.Jumptable: ; 866f
+ dw .SGB_BattleGrayscale
+ dw .SGB_BattleColors
+ dw .SGB_PokegearPals
+ dw .SGB_StatsScreenHPPals
+ dw .SGB_Pokedex
+ dw .SGB_SlotMachine
+ dw .SGB06
+ dw .SGB07
+ dw .SGB_Diploma
+ dw .SGB_MapPals
+ dw .SGB_PartyMenu
+ dw .SGB_Evolution
+ dw .SGB0c
+ dw .SGB0d
+ dw .SGB_MoveList
+ dw .SGB0f
+ dw .SGB_PokedexSearchOption
+ dw .SGB11
+ dw .SGB12
+ dw .SGB13
+ dw .SGB_PackPals
+ dw .SGB_TrainerCard
+ dw .SGB_PokedexUnownMode
+ dw .SGB_BillsPC
+ dw .SGB_UnownPuzzle
+ dw .SGB19
+ dw .SGB_PlayerOrMonFrontpicPals
+ dw .SGB_TradeTube
+ dw .SGB_TrainerOrMonFrontpicPals
+ dw .SGB_MysteryGift
+ dw .SGB1e
+; 86ad
+
+.SGB_BattleGrayscale: ; 86ad
+ ld hl, PalPacket_9c66
+ ld de, BlkPacket_9aa6
+ ret
+; 86b4
+
+.SGB_BattleColors: ; 86b4
+ ld hl, BlkPacket_9aa6
+ call PushSGBPals_
+
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+
+ ld a, [PlayerHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, HPBarPals
+ add hl, de
+
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+
+ ld a, [EnemyHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+
+ ld de, HPBarPals
+ add hl, de
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+
+ ld hl, PalPacket_9cf6
+ ld de, wSGBPals + $10
+ ld bc, $10
+ call CopyBytes
+
+ call GetBattlemonBackpicPalettePointer
+
+ ld a, [hli]
+ ld [wSGBPals + $13], a
+ ld a, [hli]
+ ld [wSGBPals + $14], a
+ ld a, [hli]
+ ld [wSGBPals + $15], a
+ ld a, [hl]
+ ld [wSGBPals + $16], a
+ call GetEnemyFrontpicPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + $19], a
+ ld a, [hli]
+ ld [wSGBPals + $1a], a
+ ld a, [hli]
+ ld [wSGBPals + $1b], a
+ ld a, [hl]
+ ld [wSGBPals + $1c], a
+
+ ld hl, wSGBPals
+ ld de, wSGBPals + $10
+ ld a, SCGB_BATTLE_COLORS
+ ld [SGBPredef], a
+ ret
+; 873c
+
+.SGB_MoveList: ; 873c
+ ld hl, PalPacket_9bd6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+
+ ld hl, wSGBPals + 1
+ ld [hl], $10
+ inc hl
+ inc hl
+
+ ld a, [PlayerHPPal]
+ add $2f
+ ld [hl], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ad6
+ ret
+; 875c
+
+.SGB_PokegearPals: ; 875c
+ ld hl, PalPacket_9c76
+ ld de, BlkPacket_9a86
+ ret
+; 8763
+
+.SGB_StatsScreenHPPals: ; 8763
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [wCurHPPal]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ ld de, HPBarPals
+ add hl, de
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ac6
+ ret
+; 87ab
+
+.SGB_PartyMenu: ; 87ab
+ ld hl, PalPacket_9c56
+ ld de, wSGBPals + 1
+ ret
+; 87b2
+
+.SGB_Pokedex: ; 87b2
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, wSGBPals + 3
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld a, [CurPartySpecies]
+ call GetMonPalettePointer_
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ae6
+ ret
+; 87e9
+
+.SGB_BillsPC: ; 87e9
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, wSGBPals + 3
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 9], a
+ ld a, [hli]
+ ld [wSGBPals + 10], a
+ ld a, [hli]
+ ld [wSGBPals + 11], a
+ ld a, [hl]
+ ld [wSGBPals + 12], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9ae6
+ ret
+; 8823
+
+.SGB_PokedexUnownMode: ; 8823
+ call .SGB_Pokedex
+ ld de, BlkPacket_9af6
+ ret
+; 882a
+
+.SGB_PokedexSearchOption: ; 882a
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, wSGBPals + 3
+ ld [hl], $9f
+ inc hl
+ ld [hl], $2a
+ inc hl
+ ld [hl], $5a
+ inc hl
+ ld [hl], $19
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 884b
+
+.SGB_PackPals: ; 884b
+ ld hl, PalPacket_9c36
+ ld de, BlkPacket_9a86
+ ret
+; 8852
+
+.SGB_SlotMachine: ; 8852
+ ld hl, PalPacket_9c96
+ ld de, BlkPacket_9b06
+ ret
+; 8859
+
+.SGB06: ; 8859
+ ld hl, PalPacket_9ca6
+ ld de, BlkPacket_9b76
+ ret
+; 8860
+
+.SGB_Diploma:
+.SGB_MysteryGift: ; 8860
+ ld hl, PalPacket_9cb6
+ ld de, BlkPacket_9a86
+ ret
+; 8867
+
+.SGB07: ; 8867
+ ld b, 0
+ ld hl, .BlkPacketTable_SGB07
+rept 4
+ add hl, bc
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 8878
+
+.BlkPacketTable_SGB07: ; 8878
+ dw BlkPacket_9a86, PalPacket_9be6
+ dw BlkPacket_9a96, PalPacket_9c06
+ dw BlkPacket_9a86, PalPacket_9c16
+; 8884
+
+.SGB0c: ; 8884
+ ld hl, PalPacket_9b96
+ ld de, BlkPacket_9b56
+ ld a, SCGB_DIPLOMA
+ ld [SGBPredef], a
+ ret
+; 8890
+
+.SGB13: ; 8890
+ ld hl, PalPacket_9ba6
+ ld de, BlkPacket_9b86
+ ret
+; 8897
+
+.SGB0f: ; 8897
+ ld hl, PalPacket_9c46
+ ld de, BlkPacket_9a86
+ ret
+; 889e
+
+.SGB11: ; 889e
+ ld hl, BlkPacket_9a86
+ ld de, PlayerLightScreenCount
+ ld bc, $10
+ call CopyBytes
+ ld hl, PalPacket_9bb6
+ ld de, BlkPacket_9a86
+ ret
+; 88b1
+
+.SGB_MapPals: ; 88b1
+ ld hl, PalPacket_9bd6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ call .GetMapPalsIndex
+ ld hl, wSGBPals + 1
+ ld [hld], a
+ ld de, BlkPacket_9a86
+ ld a, SCGB_MAPPALS
+ ld [SGBPredef], a
+ ret
+; 88cd
+
+.SGB_Evolution: ; 88cd
+ push bc
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ pop bc
+ ld a, c
+ and a
+ jr z, .partymon
+ ; Egg
+ ld hl, wSGBPals + 3
+ ; RGB 7, 7, 7
+ ld [hl], $e7
+ inc hl
+ ld [hl], $1c
+ inc hl
+ ; RGB 2, 3, 3
+ ld [hl], $62
+ inc hl
+ ld [hl], $c
+ jr .done
+
+.partymon
+ ld hl, PartyMon1DVs
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld c, l
+ ld b, h
+ ld a, [PlayerHPPal]
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+
+.done
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 891a
+
+.SGB0d:
+.SGB_TrainerCard: ; 891a
+ ld hl, PalPacket_9cb6
+ ld de, BlkPacket_9a86
+ ret
+; 8921
+
+.SGB_UnownPuzzle: ; 8921
+ ld hl, PalPacket_9bc6
+ ld de, BlkPacket_9a86
+ ret
+; 8928
+
+.SGB12: ; 8928
+ ld hl, PalPacket_9bd6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld hl, BlkPacket_9a86
+ ld de, wSGBPals + $10
+ ld bc, $10
+ call CopyBytes
+ call .GetMapPalsIndex
+ ld hl, wSGBPals + 1
+ ld [hl], a
+ ld hl, wSGBPals + 3
+ ld [hl], $2e
+ ld hl, wSGBPals + $13
+ ld a, 5
+ ld [hli], a
+ ld a, [wMenuBorderLeftCoord]
+ ld [hli], a
+ ld a, [wMenuBorderTopCoord]
+ ld [hli], a
+ ld a, [wMenuBorderRightCoord]
+ ld [hli], a
+ ld a, [wMenuBorderBottomCoord]
+ ld [hl], a
+ ld hl, wSGBPals
+ ld de, wSGBPals + $10
+ ret
+; 8969
+
+.SGB1e: ; 8969
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld de, PokemonPalettes
+ add hl, de
+ ld a, [wcf65]
+ and 3
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 89a6
+
+.SGB19: ; 89a6
+ ld hl, PalPacket_9cd6
+ ld de, BlkPacket_9a86
+ ret
+; 89ad
+
+.SGB_PlayerOrMonFrontpicPals: ; 89ad
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetPlayerOrMonPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 89d9
+
+.SGB_TradeTube: ; 89d9
+ ld hl, PalPacket_9cc6
+ ld de, BlkPacket_9a86
+ ret
+; 89e0
+
+.SGB_TrainerOrMonFrontpicPals: ; 89e0
+ ld hl, PalPacket_9ce6
+ ld de, wSGBPals
+ ld bc, $10
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld bc, TempMonDVs
+ call GetFrontpicPalettePointer
+ ld a, [hli]
+ ld [wSGBPals + 3], a
+ ld a, [hli]
+ ld [wSGBPals + 4], a
+ ld a, [hli]
+ ld [wSGBPals + 5], a
+ ld a, [hl]
+ ld [wSGBPals + 6], a
+ ld hl, wSGBPals
+ ld de, BlkPacket_9a86
+ ret
+; 8a0c
+
+.GetMapPalsIndex: ; 8a0c
+ ld a, [TimeOfDayPal]
+ cp NITE_F
+ jr c, .morn_day
+ ld a, $19
+ ret
+
+.morn_day
+ ld a, [wPermission]
+ cp ROUTE
+ jr z, .route
+ cp CAVE
+ jr z, .cave
+ cp DUNGEON
+ jr z, .cave
+ cp PERM_5
+ jr z, .perm5
+ cp GATE
+ jr z, .gate
+ ld a, [MapGroup]
+ ld e, a
+ ld d, 0
+ ld hl, .SGBRoofPalInds
+ add hl, de
+ ld a, [hl]
+ ret
+
+.route
+ ld a, $00
+ ret
+
+.cave
+ ld a, $18
+ ret
+
+.perm5
+ ld a, $06
+ ret
+
+.gate
+ ld a, $03
+ ret
+; 8a45
+
+.SGBRoofPalInds: ; 8a45
+ db $00 ; Unused
+ db $12 ; Olivine
+ db $14 ; Mahogany
+ db $18 ; Various Dungeons
+ db $11 ; Ecruteak
+ db $15 ; Blackthorn
+ db $09 ; Cinnabar
+ db $04 ; Cerulean
+ db $0f ; Azalea
+ db $16 ; Lake Of Rage
+ db $0e ; Violet
+ db $10 ; Goldenrod
+ db $06 ; Vermilion
+ db $01 ; Palette
+ db $03 ; Pewter
+ db $06 ; Fast Ship
+ db $0b ; Indigo Plateau
+ db $08 ; Fuchsia
+ db $05 ; Lavender
+ db $17 ; Silver Cave Outside
+ db $08 ; Pokemon Center 2F
+ db $07 ; Celadon
+ db $13 ; Cianwood
+ db $02 ; Viridian
+ db $0c ; New Bark
+ db $0a ; Saffron
+ db $0d ; Cherrygrove
+; 8a60
+
+.Finish: ; 8a60
+ push de
+ call PushSGBPals_
+ pop hl
+ jp PushSGBPals_
+; 8a68
diff --git a/engine/spawn_points.asm b/engine/spawn_points.asm
index 5f9c07558..b8637da17 100644
--- a/engine/spawn_points.asm
+++ b/engine/spawn_points.asm
@@ -1,5 +1,5 @@
-INCLUDE "data/spawn_points.asm"
+INCLUDE "data/maps/spawn_points.asm"
LoadSpawnPoint: ; 1531f
diff --git a/engine/square_root.asm b/engine/square_root.asm
new file mode 100644
index 000000000..496f66c83
--- /dev/null
+++ b/engine/square_root.asm
@@ -0,0 +1,30 @@
+GetSquareRoot: ; 13b87
+; Return the square root of de in b.
+
+; Rather than calculating the result, we take the index of the
+; first value in a table of squares that isn't lower than de.
+
+ ld hl, Squares
+ ld b, 0
+.loop
+; Make sure we don't go past the end of the table.
+ inc b
+ ld a, b
+ cp $ff
+ ret z
+
+; Iterate over the table until b**2 >= de.
+ ld a, [hli]
+ sub e
+ ld a, [hli]
+ sbc d
+
+ jr c, .loop
+ ret
+
+Squares: ; 13b98
+root set 1
+ rept $ff
+ dw root*root
+root set root+1
+ endr
diff --git a/engine/start_battle.asm b/engine/start_battle.asm
new file mode 100644
index 000000000..51f46b3f2
--- /dev/null
+++ b/engine/start_battle.asm
@@ -0,0 +1,197 @@
+ShowLinkBattleParticipants: ; 2ee18
+; If we're not in a communications room,
+; we don't need to be here.
+ ld a, [wLinkMode]
+ and a
+ ret z
+
+ callba _ShowLinkBattleParticipants
+ ld c, 150
+ call DelayFrames
+ call ClearTileMap
+ call ClearSprites
+ ret
+
+FindFirstAliveMonAndStartBattle: ; 2ee2f
+ xor a
+ ld [hMapAnims], a
+ call DelayFrame
+ ld b, 6
+ ld hl, PartyMon1HP
+ ld de, PARTYMON_STRUCT_LENGTH - 1
+
+.loop
+ ld a, [hli]
+ or [hl]
+ jr nz, .okay
+ add hl, de
+ dec b
+ jr nz, .loop
+
+.okay
+ ld de, MON_LEVEL - MON_HP
+ add hl, de
+ ld a, [hl]
+ ld [BattleMonLevel], a
+ predef Predef_StartBattle
+ callba _LoadBattleFontsHPBar
+ ld a, 1
+ ld [hBGMapMode], a
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ ld [hWY], a
+ ld [rWY], a
+ ld [hMapAnims], a
+ ret
+
+PlayBattleMusic: ; 2ee6c
+ push hl
+ push de
+ push bc
+
+ xor a
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ call MaxVolume
+
+ ld a, [BattleType]
+ cp BATTLETYPE_SUICUNE
+ ld de, MUSIC_SUICUNE_BATTLE
+ jp z, .done
+ cp BATTLETYPE_ROAMING
+ jp z, .done
+
+ ; Are we fighting a trainer?
+ ld a, [OtherTrainerClass]
+ and a
+ jr nz, .trainermusic
+
+ callba RegionCheck
+ ld a, e
+ and a
+ jr nz, .kantowild
+
+ ld de, MUSIC_JOHTO_WILD_BATTLE
+ ld a, [TimeOfDay]
+ cp NITE_F
+ jr nz, .done
+ ld de, MUSIC_JOHTO_WILD_BATTLE_NIGHT
+ jr .done
+
+.kantowild
+ ld de, MUSIC_KANTO_WILD_BATTLE
+ jr .done
+
+.trainermusic
+ ld de, MUSIC_CHAMPION_BATTLE
+ cp CHAMPION
+ jr z, .done
+ cp RED
+ jr z, .done
+
+ ; really, they should have included admins and scientists here too...
+ ld de, MUSIC_ROCKET_BATTLE
+ cp GRUNTM
+ jr z, .done
+ cp GRUNTF
+ jr z, .done
+
+ ld de, MUSIC_KANTO_GYM_LEADER_BATTLE
+ callba IsKantoGymLeader
+ jr c, .done
+
+ ld de, MUSIC_JOHTO_GYM_LEADER_BATTLE
+ callba IsJohtoGymLeader
+ jr c, .done
+
+ ld de, MUSIC_RIVAL_BATTLE
+ ld a, [OtherTrainerClass]
+ cp RIVAL1
+ jr z, .done
+ cp RIVAL2
+ jr nz, .othertrainer
+
+ ld a, [OtherTrainerID]
+ cp RIVAL2_2_CHIKORITA ; Rival in Indigo Plateau
+ jr c, .done
+ ld de, MUSIC_CHAMPION_BATTLE
+ jr .done
+
+.othertrainer
+ ld a, [wLinkMode]
+ and a
+ jr nz, .johtotrainer
+
+ callba RegionCheck
+ ld a, e
+ and a
+ jr nz, .kantotrainer
+
+.johtotrainer
+ ld de, MUSIC_JOHTO_TRAINER_BATTLE
+ jr .done
+
+.kantotrainer
+ ld de, MUSIC_KANTO_TRAINER_BATTLE
+
+.done
+ call PlayMusic
+
+ pop bc
+ pop de
+ pop hl
+ ret
+
+ClearBattleRAM: ; 2ef18
+ xor a
+ ld [wPlayerAction], a
+ ld [wBattleResult], a
+
+ ld hl, wPartyMenuCursor
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+ ld [wMenuScrollPosition], a
+ ld [CriticalHit], a
+ ld [BattleMonSpecies], a
+ ld [wBattleParticipantsNotFainted], a
+ ld [CurBattleMon], a
+ ld [wForcedSwitch], a
+ ld [TimeOfDayPal], a
+ ld [PlayerTurnsTaken], a
+ ld [EnemyTurnsTaken], a
+ ld [EvolvableFlags], a
+
+ ld hl, PlayerHPPal
+ ld [hli], a
+ ld [hl], a
+
+ ld hl, BattleMonDVs
+ ld [hli], a
+ ld [hl], a
+
+ ld hl, EnemyMonDVs
+ ld [hli], a
+ ld [hl], a
+
+; Clear the entire BattleMons area
+ ld hl, wBattle
+ ld bc, wBattleEnd - wBattle
+ xor a
+ call ByteFill
+
+ callab ResetEnemyStatLevels
+
+ call ClearWindowData
+
+ ld hl, hBGMapAddress
+ xor a
+ ld [hli], a
+ ld [hl], VBGMap0 / $100
+ ret
diff --git a/engine/startmenu.asm b/engine/start_menu.asm
index 871da86be..871da86be 100755
--- a/engine/startmenu.asm
+++ b/engine/start_menu.asm
diff --git a/engine/switch_party_mons.asm b/engine/switch_party_mons.asm
new file mode 100644
index 000000000..cde9c82b2
--- /dev/null
+++ b/engine/switch_party_mons.asm
@@ -0,0 +1,145 @@
+_SwitchPartyMons:
+ ld a, [wd0e3]
+ dec a
+ ld [Buffer3], a
+ ld b, a
+ ld a, [wMenuCursorY]
+ dec a
+ ld [Buffer2], a
+ cp b
+ jr z, .skip
+ call .SwapMonAndMail
+ ld a, [Buffer3]
+ call .ClearSprite
+ ld a, [Buffer2]
+ call .ClearSprite
+.skip
+ ret
+
+.ClearSprite: ; 50f34 (14:4f34)
+ push af
+ hlcoord 0, 1
+ ld bc, 2 * SCREEN_WIDTH
+ call AddNTimes
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ pop af
+ ld hl, Sprites
+ ld bc, $10
+ call AddNTimes
+ ld de, $4
+ ld c, $4
+.gfx_loop
+ ld [hl], $a0
+ add hl, de
+ dec c
+ jr nz, .gfx_loop
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+ ret
+
+.SwapMonAndMail: ; 50f62 (14:4f62)
+ push hl
+ push de
+ push bc
+ ld bc, PartySpecies
+ ld a, [Buffer2]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [Buffer3]
+ ld l, a
+ ld h, $0
+ add hl, bc
+ ld a, [hl]
+ push af
+ ld a, [de]
+ ld [hl], a
+ pop af
+ ld [de], a
+ ld a, [Buffer2]
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld de, wd002
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, [Buffer3]
+ ld hl, PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ pop de
+ push hl
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ pop de
+ ld hl, wd002
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, [Buffer2]
+ ld hl, PartyMonOT
+ call SkipNames
+ push hl
+ call .CopyNameTowd002
+ ld a, [Buffer3]
+ ld hl, PartyMonOT
+ call SkipNames
+ pop de
+ push hl
+ call .CopyName
+ pop de
+ ld hl, wd002
+ call .CopyName
+ ld hl, PartyMonNicknames
+ ld a, [Buffer2]
+ call SkipNames
+ push hl
+ call .CopyNameTowd002
+ ld hl, PartyMonNicknames
+ ld a, [Buffer3]
+ call SkipNames
+ pop de
+ push hl
+ call .CopyName
+ pop de
+ ld hl, wd002
+ call .CopyName
+ ld hl, sPartyMail
+ ld a, [Buffer2]
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld de, wd002
+ ld bc, MAIL_STRUCT_LENGTH
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ call CopyBytes
+ ld hl, sPartyMail
+ ld a, [Buffer3]
+ ld bc, MAIL_STRUCT_LENGTH
+ call AddNTimes
+ pop de
+ push hl
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+ pop de
+ ld hl, wd002
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.CopyNameTowd002: ; 51036 (14:5036)
+ ld de, wd002
+
+.CopyName: ; 51039 (14:5039)
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
diff --git a/engine/tempmon.asm b/engine/tempmon.asm
new file mode 100644
index 000000000..332cb0c6c
--- /dev/null
+++ b/engine/tempmon.asm
@@ -0,0 +1,127 @@
+CopyPkmnToTempMon: ; 5084a
+; gets the BaseData of a Pkmn
+; and copys the PkmnStructure to TempMon
+
+ ld a, [CurPartyMon]
+ ld e, a
+ call GetPkmnSpecies
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+
+ ld a, [MonType]
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ and a
+ jr z, .copywholestruct
+ ld hl, OTPartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ cp OTPARTYMON
+ jr z, .copywholestruct
+ ld bc, BOXMON_STRUCT_LENGTH
+ callab CopyBoxmonToTempMon
+ jr .done
+
+.copywholestruct
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, TempMon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+
+.done
+ ret
+
+CalcwBufferMonStats: ; 5088b
+ ld bc, wBufferMon
+ jr _TempMonStatsCalculation
+
+CalcTempmonStats: ; 50890
+ ld bc, TempMon
+_TempMonStatsCalculation: ; 50893
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_STAT_EXP - 1
+ add hl, bc
+ push bc
+ ld b, $1
+ predef CalcPkmnStats
+ pop bc
+ ld hl, MON_HP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr nz, .not_egg
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ jr .zero_status
+
+.not_egg
+ push bc
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld bc, 2
+ call CopyBytes
+ pop bc
+
+.zero_status
+ ld hl, MON_STATUS
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+
+GetPkmnSpecies: ; 508d5
+; [MonType] has the type of the Pkmn
+; e = Nr. of Pkmn (i.e. [CurPartyMon])
+
+ ld a, [MonType]
+ and a ; PARTYMON
+ jr z, .partymon
+ cp OTPARTYMON
+ jr z, .otpartymon
+ cp BOXMON
+ jr z, .boxmon
+ cp TEMPMON
+ jr z, .breedmon
+ ; WILDMON
+
+.partymon
+ ld hl, PartySpecies
+ jr .done
+
+.otpartymon
+ ld hl, OTPartySpecies
+ jr .done
+
+.boxmon
+ ld a, BANK(sBoxSpecies)
+ call GetSRAMBank
+ ld hl, sBoxSpecies
+ call .done
+ call CloseSRAM
+ ret
+
+.breedmon
+ ld a, [wBreedMon1Species]
+ jr .done2
+
+.done
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+
+.done2
+ ld [CurPartySpecies], a
+ ret
diff --git a/engine/time_capsule.asm b/engine/time_capsule.asm
new file mode 100755
index 000000000..577b2dce8
--- /dev/null
+++ b/engine/time_capsule.asm
@@ -0,0 +1,147 @@
+; These functions seem to be related to backwards compatibility
+
+ValidateOTTrademon: ; fb57e
+ ld a, [wd003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [wd003]
+ inc a
+ ld c, a
+ ld b, 0
+ ld hl, OTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp EGG
+ jr z, .matching_or_egg
+ cp [hl]
+ jr nz, .abnormal
+
+.matching_or_egg
+ ld b, h
+ ld c, l
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MAX_LEVEL + 1
+ jr nc, .abnormal
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr nz, .normal
+ ld hl, OTPartySpecies
+ ld a, [wd003]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hl]
+
+ ; Magnemite and Magneton's types changed
+ ; from Electric to Electric/Steel.
+ cp MAGNEMITE
+ jr z, .normal
+ cp MAGNETON
+ jr z, .normal
+
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, wLinkOTPartyMonTypes
+ add hl, bc
+ add hl, bc
+ ld a, [BaseType1]
+ cp [hl]
+ jr nz, .abnormal
+ inc hl
+ ld a, [BaseType2]
+ cp [hl]
+ jr nz, .abnormal
+
+.normal
+ and a
+ ret
+
+.abnormal
+ scf
+ ret
+; fb5dd
+
+Functionfb5dd: ; fb5dd
+ ld a, [wd002]
+ ld d, a
+ ld a, [PartyCount]
+ ld b, a
+ ld c, $0
+.loop
+ ld a, c
+ cp d
+ jr z, .next
+ push bc
+ ld a, c
+ ld hl, PartyMon1HP
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .done
+
+.next
+ inc c
+ dec b
+ jr nz, .loop
+ ld a, [wd003]
+ ld hl, OTPartyMon1HP
+ call GetPartyLocation
+ ld a, [hli]
+ or [hl]
+ jr nz, .done
+ scf
+ ret
+
+.done
+ and a
+ ret
+; fb60d
+
+PlaceTradePartnerNamesAndParty: ; fb60d
+ hlcoord 4, 0
+ ld de, PlayerName
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 4, 8
+ ld de, OTPlayerName
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 7, 1
+ ld de, PartySpecies
+ call .PlaceSpeciesNames
+ hlcoord 7, 9
+ ld de, OTPartySpecies
+.PlaceSpeciesNames: ; fb634
+ ld c, $0
+.loop
+ ld a, [de]
+ cp -1
+ ret z
+ ld [wd265], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ld [hProduct], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ inc c
+ jr .loop
+; fb656
+
+INCLUDE "data/time_capsule/special_stats.asm"
diff --git a/engine/time_capsule/conversion.asm b/engine/time_capsule/conversion.asm
deleted file mode 100755
index eb8896355..000000000
--- a/engine/time_capsule/conversion.asm
+++ /dev/null
@@ -1,277 +0,0 @@
-; These functions seem to be related to backwards compatibility
-
-ValidateOTTrademon: ; fb57e
- ld a, [wd003]
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- push hl
- ld a, [wd003]
- inc a
- ld c, a
- ld b, 0
- ld hl, OTPartyCount
- add hl, bc
- ld a, [hl]
- pop hl
- cp EGG
- jr z, .matching_or_egg
- cp [hl]
- jr nz, .abnormal
-
-.matching_or_egg
- ld b, h
- ld c, l
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MAX_LEVEL + 1
- jr nc, .abnormal
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr nz, .normal
- ld hl, OTPartySpecies
- ld a, [wd003]
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hl]
-
- ; Magnemite and Magneton's types changed
- ; from Electric to Electric/Steel.
- cp MAGNEMITE
- jr z, .normal
- cp MAGNETON
- jr z, .normal
-
- ld [CurSpecies], a
- call GetBaseData
- ld hl, wLinkOTPartyMonTypes
- add hl, bc
- add hl, bc
- ld a, [BaseType1]
- cp [hl]
- jr nz, .abnormal
- inc hl
- ld a, [BaseType2]
- cp [hl]
- jr nz, .abnormal
-
-.normal
- and a
- ret
-
-.abnormal
- scf
- ret
-; fb5dd
-
-Functionfb5dd: ; fb5dd
- ld a, [wd002]
- ld d, a
- ld a, [PartyCount]
- ld b, a
- ld c, $0
-.loop
- ld a, c
- cp d
- jr z, .next
- push bc
- ld a, c
- ld hl, PartyMon1HP
- call GetPartyLocation
- pop bc
- ld a, [hli]
- or [hl]
- jr nz, .done
-
-.next
- inc c
- dec b
- jr nz, .loop
- ld a, [wd003]
- ld hl, OTPartyMon1HP
- call GetPartyLocation
- ld a, [hli]
- or [hl]
- jr nz, .done
- scf
- ret
-
-.done
- and a
- ret
-; fb60d
-
-PlaceTradePartnerNamesAndParty: ; fb60d
- hlcoord 4, 0
- ld de, PlayerName
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 4, 8
- ld de, OTPlayerName
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 7, 1
- ld de, PartySpecies
- call .PlaceSpeciesNames
- hlcoord 7, 9
- ld de, OTPartySpecies
-.PlaceSpeciesNames: ; fb634
- ld c, $0
-.loop
- ld a, [de]
- cp -1
- ret z
- ld [wd265], a
- push bc
- push hl
- push de
- push hl
- ld a, c
- ld [hProduct], a
- call GetPokemonName
- pop hl
- call PlaceString
- pop de
- inc de
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- inc c
- jr .loop
-; fb656
-
-
-INCLUDE "data/time_capsule/special_stats.asm"
-
-
-INCLUDE "event/name_rater.asm"
-
-
-PlaySlowCry: ; fb841
- ld a, [ScriptVar]
- call LoadCryHeader
- jr c, .done
-
- ld hl, CryPitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, -$140
- add hl, bc
- ld a, l
- ld [CryPitch], a
- ld a, h
- ld [CryPitch + 1], a
- ld hl, CryLength
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld bc, $60
- add hl, bc
- ld a, l
- ld [CryLength], a
- ld a, h
- ld [CryLength + 1], a
- callba _PlayCryHeader
- call WaitSFX
-
-.done
- ret
-; fb877
-
-NewPokedexEntry: ; fb877
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- call LowVolume
- call ClearBGPalettes
- call ClearTileMap
- call UpdateSprites
- call ClearSprites
- ld a, [wPokedexStatus]
- push af
- ld a, [hSCX]
- add $5
- ld [hSCX], a
- xor a
- ld [wPokedexStatus], a
- callba _NewPokedexEntry
- call WaitPressAorB_BlinkCursor
- ld a, $1
- ld [wPokedexStatus], a
- callba DisplayDexEntry
- call WaitPressAorB_BlinkCursor
- pop af
- ld [wPokedexStatus], a
- call MaxVolume
- call RotateThreePalettesRight
- ld a, [hSCX]
- add -5 ; 251 ; NUM_POKEMON
- ld [hSCX], a
- call .ReturnFromDexRegistration
- pop af
- ld [hMapAnims], a
- ret
-; fb8c8
-
-.ReturnFromDexRegistration: ; fb8c8
- call ClearTileMap
- call LoadFontsExtra
- call LoadStandardFont
- callba Pokedex_PlaceFrontpicTopLeftCorner
- call WaitBGMap2
- callba GetEnemyMonDVs
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hl]
- ld [TempMonDVs + 1], a
- ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
- ret
-; fb8f1
-
-ConvertMon_2to1: ; fb8f1
-; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
- push bc
- push hl
- ld a, [wd265]
- ld b, a
- ld c, 0
- ld hl, Pokered_MonIndices
-.loop
- inc c
- ld a, [hli]
- cp b
- jr nz, .loop
- ld a, c
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb908
-
-ConvertMon_1to2: ; fb908
-; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
- push bc
- push hl
- ld a, [wd265]
- dec a
- ld hl, Pokered_MonIndices
- ld b, 0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- pop hl
- pop bc
- ret
-; fb91c
-
-
-INCLUDE "data/time_capsule/mon_order.asm"
diff --git a/engine/time_capsule_2.asm b/engine/time_capsule_2.asm
new file mode 100644
index 000000000..5da72e7c8
--- /dev/null
+++ b/engine/time_capsule_2.asm
@@ -0,0 +1,39 @@
+ConvertMon_2to1: ; fb8f1
+; Takes the Gen-2 Pokemon number stored in wd265, finds it in the Pokered_MonIndices table, and returns its index in wd265.
+ push bc
+ push hl
+ ld a, [wd265]
+ ld b, a
+ ld c, 0
+ ld hl, Pokered_MonIndices
+.loop
+ inc c
+ ld a, [hli]
+ cp b
+ jr nz, .loop
+ ld a, c
+ ld [wd265], a
+ pop hl
+ pop bc
+ ret
+; fb908
+
+ConvertMon_1to2: ; fb908
+; Takes the Gen-1 Pokemon number stored in wd265 and returns the corresponding value from Pokered_MonIndices in wd265.
+ push bc
+ push hl
+ ld a, [wd265]
+ dec a
+ ld hl, Pokered_MonIndices
+ ld b, 0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ pop hl
+ pop bc
+ ret
+; fb91c
+
+
+INCLUDE "data/time_capsule/mon_order.asm"
diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm
index 263a83fc1..a4a07bc4d 100644
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -1,3 +1,7 @@
+Predef35: ; 8c000
+Predef36:
+ ret
+
UpdateTimeOfDayPal:: ; 8c001
call UpdateTime
ld a, [TimeOfDay]
@@ -196,10 +200,6 @@ endr
ret
; 8c0e5
-brightlevel: MACRO
- db (\1 << 6) | (\2 << 4) | (\3 << 2) | \4
-ENDM
-
ReplaceTimeOfDayPals: ; 8c0e5
ld hl, .BrightnessLevels
ld a, [wMapTimeOfDay]
@@ -230,14 +230,14 @@ ReplaceTimeOfDayPals: ; 8c0e5
; 8c10f (23:410f)
.BrightnessLevels: ; 8c10f
- brightlevel 3, 2, 1, 0
- brightlevel 1, 1, 1, 1
- brightlevel 2, 2, 2, 2
- brightlevel 0, 0, 0, 0
- brightlevel 3, 3, 3, 3
- brightlevel 3, 2, 1, 0
- brightlevel 3, 2, 1, 0
- brightlevel 3, 2, 1, 0
+ dc 3, 2, 1, 0
+ dc 1, 1, 1, 1
+ dc 2, 2, 2, 2
+ dc 0, 0, 0, 0
+ dc 3, 3, 3, 3
+ dc 3, 2, 1, 0
+ dc 3, 2, 1, 0
+ dc 3, 2, 1, 0
; 8c117
GetTimePalette: ; 8c117
diff --git a/engine/timeset.asm b/engine/timeset.asm
index 2a578f998..09c5b3a75 100755
--- a/engine/timeset.asm
+++ b/engine/timeset.asm
@@ -40,7 +40,7 @@ InitClock: ; 90672 (24:4672)
call RotateFourPalettesRight
ld hl, Text_WokeUpOak
call PrintText
- ld hl, wc608
+ ld hl, wTimeSetBuffer
ld bc, 50
xor a
call ByteFill
diff --git a/engine/title.asm b/engine/title.asm
index 2073fdf58..ba7f34764 100644
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -399,84 +399,4 @@ INCBIN "gfx/title/crystal.2bpp.lz"
; 10fede
TitleScreenPalettes:
-; BG
- RGB 00, 00, 00
- RGB 19, 00, 00
- RGB 15, 08, 31
- RGB 15, 08, 31
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 15, 16, 31
- RGB 31, 01, 13
-
- RGB 00, 00, 00
- RGB 07, 07, 07
- RGB 31, 31, 31
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 13, 13, 13
- RGB 31, 31, 18
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 19, 19, 19
- RGB 29, 28, 12
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 25, 25, 25
- RGB 28, 25, 06
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 26, 21, 00
- RGB 02, 03, 30
-
- RGB 00, 00, 00
- RGB 11, 11, 19
- RGB 31, 31, 31
- RGB 00, 00, 00
-
-; OBJ
- RGB 00, 00, 00
- RGB 10, 00, 15
- RGB 17, 05, 22
- RGB 19, 09, 31
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
+INCLUDE "data/palettes/title.pal"
diff --git a/engine/trade/animation.asm b/engine/trade_animation.asm
index 7100bd558..7100bd558 100755
--- a/engine/trade/animation.asm
+++ b/engine/trade_animation.asm
diff --git a/engine/trademon_frontpic.asm b/engine/trademon_frontpic.asm
new file mode 100644
index 000000000..1641443ea
--- /dev/null
+++ b/engine/trademon_frontpic.asm
@@ -0,0 +1,38 @@
+GetTrademonFrontpic: ; 4d7fd
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef FrontpicPredef
+ ret
+
+AnimateTrademonFrontpic: ; 4d81e
+ ld a, [wOTTrademonSpecies]
+ call IsAPokemon
+ ret c
+ callba ShowOTTrademonStats
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ callba TradeAnim_ShowGetmonFrontpic
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef AnimateFrontpic
+ ret
diff --git a/engine/trainer_card.asm b/engine/trainer_card.asm
index fdf17acc9..6ed9f6ea6 100755
--- a/engine/trainer_card.asm
+++ b/engine/trainer_card.asm
@@ -448,7 +448,7 @@ TrainerCard_Page1_PrintGameTime: ; 25415 (9:5415)
ret nz
hlcoord 15, 12
ld a, [hl]
- xor $7f ^ $2e ; $7F (space) <--> $2E (colon)
+ xor " " ^ $2e ; alternate between space and small colon ($2e) tiles
ld [hl], a
ret
diff --git a/engine/trainer_scripts.asm b/engine/trainer_scripts.asm
new file mode 100644
index 000000000..33dab3b9e
--- /dev/null
+++ b/engine/trainer_scripts.asm
@@ -0,0 +1,31 @@
+TalkToTrainerScript:: ; 0xbe66a
+ faceplayer
+ trainerflagaction CHECK_FLAG
+ iftrue AlreadyBeatenTrainerScript
+ loadmemtrainer
+ encountermusic
+ jump StartBattleWithMapTrainerScript
+
+SeenByTrainerScript:: ; 0xbe675
+ loadmemtrainer
+ encountermusic
+ showemote EMOTE_SHOCK, LAST_TALKED, 30
+ callasm TrainerWalkToPlayer
+ applymovement2 MovementBuffer
+ writepersonxy LAST_TALKED
+ faceperson PLAYER, LAST_TALKED
+ jump StartBattleWithMapTrainerScript
+
+StartBattleWithMapTrainerScript: ; 0xbe68a
+ opentext
+ trainertext $0
+ waitbutton
+ closetext
+ loadmemtrainer
+ startbattle
+ reloadmapafterbattle
+ trainerflagaction SET_FLAG
+ loadvar wRunningTrainerBattleScript, -1
+
+AlreadyBeatenTrainerScript:
+ scripttalkafter
diff --git a/engine/unown_dex.asm b/engine/unown_dex.asm
new file mode 100755
index 000000000..6d14f8b3c
--- /dev/null
+++ b/engine/unown_dex.asm
@@ -0,0 +1,51 @@
+UpdateUnownDex: ; fba18
+ ld a, [UnownLetter]
+ ld c, a
+ ld b, NUM_UNOWN
+ ld hl, UnownDex
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ cp c
+ ret z
+ dec b
+ jr nz, .loop
+ ret
+
+.done
+ dec hl
+ ld [hl], c
+ ret
+; fba2e
+
+PrintUnownWord: ; fba2e (3e:7a2e)
+ hlcoord 4, 15
+ ld bc, 12
+ ld a, " "
+ call ByteFill
+ ld a, [wDexCurrentUnownIndex]
+ ld e, a
+ ld d, 0
+ ld hl, UnownDex
+ add hl, de
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, UnownWords
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ hlcoord 4, 15
+.loop
+ ld a, [de]
+ cp -1
+ ret z
+ inc de
+ ld [hli], a
+ jr .loop
+; fba5a (3e:7a5a)
+
+INCLUDE "data/unown_words.asm"
diff --git a/engine/unown_puzzle.asm b/engine/unown_puzzle.asm
index a1fed2520..3afe8a17d 100755
--- a/engine/unown_puzzle.asm
+++ b/engine/unown_puzzle.asm
@@ -1,7 +1,8 @@
-puzcoord EQUS "* 6 +"
PUZZLE_BORDER EQU $ee
PUZZLE_VOID EQU $ef
+puzcoord EQUS "* 6 +"
+
UnownPuzzle: ; e1190
ld a, [hInMenu]
push af
@@ -13,7 +14,7 @@ UnownPuzzle: ; e1190
xor a
ld [hBGMapMode], a
call DisableLCD
- ld hl, wMisc
+ ld hl, wMisc ; includes wPuzzlePieces
ld bc, wMiscEnd - wMisc
xor a
call ByteFill
diff --git a/engine/unowndex.asm b/engine/unowndex.asm
deleted file mode 100755
index 007dd9790..000000000
--- a/engine/unowndex.asm
+++ /dev/null
@@ -1,118 +0,0 @@
-UpdateUnownDex: ; fba18
- ld a, [UnownLetter]
- ld c, a
- ld b, NUM_UNOWN
- ld hl, UnownDex
-.loop
- ld a, [hli]
- and a
- jr z, .done
- cp c
- ret z
- dec b
- jr nz, .loop
- ret
-
-.done
- dec hl
- ld [hl], c
- ret
-; fba2e
-
-
-PrintUnownWord: ; fba2e (3e:7a2e)
- hlcoord 4, 15
- ld bc, 12
- ld a, " "
- call ByteFill
- ld a, [wDexCurrentUnownIndex]
- ld e, a
- ld d, 0
- ld hl, UnownDex
- add hl, de
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, UnownWords
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- hlcoord 4, 15
-.loop
- ld a, [de]
- cp -1
- ret z
- inc de
- ld [hli], a
- jr .loop
-; fba5a (3e:7a5a)
-
-UnownWords: ; fba5a
- dw UnownWord1
- dw UnownWord1
- dw UnownWord2
- dw UnownWord3
- dw UnownWord4
- dw UnownWord5
- dw UnownWord6
- dw UnownWord7
- dw UnownWord8
- dw UnownWord9
- dw UnownWord10
- dw UnownWord11
- dw UnownWord12
- dw UnownWord13
- dw UnownWord14
- dw UnownWord15
- dw UnownWord16
- dw UnownWord17
- dw UnownWord18
- dw UnownWord19
- dw UnownWord20
- dw UnownWord21
- dw UnownWord22
- dw UnownWord23
- dw UnownWord24
- dw UnownWord25
- dw UnownWord26
-; fba90
-
-unownword: macro
-x = 1
- rept STRLEN(\1)
- db STRSUB(\1, x, 1) - $40
-x = x + 1
- endr
- db -1
-endm
-
-
-UnownWord1: unownword "ANGRY"
-UnownWord2: unownword "BEAR"
-UnownWord3: unownword "CHASE"
-UnownWord4: unownword "DIRECT"
-UnownWord5: unownword "ENGAGE"
-UnownWord6: unownword "FIND"
-UnownWord7: unownword "GIVE"
-UnownWord8: unownword "HELP"
-UnownWord9: unownword "INCREASE"
-UnownWord10: unownword "JOIN"
-UnownWord11: unownword "KEEP"
-UnownWord12: unownword "LAUGH"
-UnownWord13: unownword "MAKE"
-UnownWord14: unownword "NUZZLE"
-UnownWord15: unownword "OBSERVE"
-UnownWord16: unownword "PERFORM"
-UnownWord17: unownword "QUICKEN"
-UnownWord18: unownword "REASSURE"
-UnownWord19: unownword "SEARCH"
-UnownWord20: unownword "TELL"
-UnownWord21: unownword "UNDO"
-UnownWord22: unownword "VANISH"
-UnownWord23: unownword "WANT"
-UnownWord24: unownword "XXXXX"
-UnownWord25: unownword "YIELD"
-UnownWord26: unownword "ZOOM"
-; fbb32
diff --git a/engine/unused_correct_party.asm b/engine/unused_correct_party.asm
new file mode 100644
index 000000000..dd2e1111c
--- /dev/null
+++ b/engine/unused_correct_party.asm
@@ -0,0 +1,229 @@
+CorrectErrorsInPlayerParty: ; unreferenced
+ ld hl, PartyCount
+ ld a, [hl]
+ and a
+ ret z
+
+ cp PARTY_LENGTH + 1
+ jr c, .party_length_okay
+ ld a, PARTY_LENGTH
+ ld [hl], a
+.party_length_okay
+ inc hl
+
+ ld b, a
+ ld c, 0
+.loop1
+ ld a, [hl]
+ and a
+ jr z, .invalid_species
+ cp NUM_POKEMON + 1
+ jr z, .invalid_species
+ cp EGG + 1
+ jr c, .next_species
+
+.invalid_species
+ ld [hl], SMEARGLE
+ push hl
+ push bc
+ ld a, c
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld [hl], SMEARGLE
+ pop bc
+ pop hl
+
+.next_species
+ inc hl
+ inc c
+ dec b
+ jr nz, .loop1
+ ld [hl], $ff
+
+ ld hl, PartyMon1
+ ld a, [PartyCount]
+ ld d, a
+ ld e, 0
+.loop2
+ push de
+ push hl
+ ld b, h
+ ld c, l
+ ld a, [hl]
+ and a
+ jr z, .invalid_species_2
+ cp NUM_POKEMON + 1
+ jr c, .check_level
+
+.invalid_species_2
+ ld [hl], SMEARGLE
+ push de
+ ld d, 0
+ ld hl, PartySpecies
+ add hl, de
+ pop de
+ ld a, SMEARGLE
+ ld [hl], a
+
+.check_level
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .invalid_level
+ ld a, [hl]
+ cp MAX_LEVEL
+ jr c, .load_level
+ ld a, MAX_LEVEL
+.invalid_level
+ ld [hl], a
+.load_level
+ ld [CurPartyLevel], a
+
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_STAT_EXP - 1
+ add hl, bc
+ ld b, $1
+ predef CalcPkmnStats
+ pop hl
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop de
+ inc e
+ dec d
+ jr nz, .loop2
+
+ ld de, PartyMonNicknames
+ ld a, [PartyCount]
+ ld b, a
+ ld c, 0
+.loop3
+ push bc
+ call .GetLengthOfStringWith6CharCap
+ push de
+ callba CheckStringForErrors
+ pop hl
+ pop bc
+ jr nc, .valid_nickname
+
+ push bc
+ push hl
+ ld hl, PartySpecies
+ push bc
+ ld b, 0
+ add hl, bc
+ pop bc
+ ld a, [hl]
+ cp EGG
+ ld hl, .TAMAGO
+ jr z, .got_nickname
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+.got_nickname
+ pop de
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ pop bc
+
+.valid_nickname
+ inc c
+ dec b
+ jr nz, .loop3
+
+ ld de, PartyMonOT
+ ld a, [PartyCount]
+ ld b, a
+ ld c, 0
+.loop4
+ push bc
+ call .GetLengthOfStringWith6CharCap
+ push de
+ callba CheckStringForErrors
+ pop hl
+ jr nc, .valid_ot_name
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+.valid_ot_name
+ pop bc
+ inc c
+ dec b
+ jr nz, .loop4
+
+ ld hl, PartyMon1Moves
+ ld a, [PartyCount]
+ ld b, a
+.loop5
+ push hl
+ ld c, NUM_MOVES
+ ld a, [hl]
+ and a
+ jr z, .invalid_move
+ cp NUM_ATTACKS + 1
+ jr c, .moves_loop
+.invalid_move
+ ld [hl], POUND
+
+.moves_loop
+ ld a, [hl]
+ and a
+ jr z, .fill_invalid_moves
+ cp NUM_ATTACKS + 1
+ jr c, .next_move
+
+.fill_invalid_moves
+ xor a
+ ld [hli], a
+ dec c
+ jr nz, .fill_invalid_moves
+ jr .next_pokemon
+
+.next_move
+ inc hl
+ dec c
+ jr nz, .moves_loop
+
+.next_pokemon
+ pop hl
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop5
+ ret
+; 13b6b
+
+.TAMAGO: ; 13b6b
+ db "タマゴ@@@"
+; 13b71
+
+.GetLengthOfStringWith6CharCap: ; 13b71
+ push de
+ ld c, 1
+ ld b, NAME_LENGTH_JAPANESE
+.search_loop
+ ld a, [de]
+ cp "@"
+ jr z, .done
+ inc de
+ inc c
+ dec b
+ jr nz, .search_loop
+ dec c
+ dec de
+ ld a, "@"
+ ld [de], a
+.done
+ pop de
+ ret
+; 13b87
diff --git a/engine/unused_title.asm b/engine/unused_title.asm
new file mode 100644
index 000000000..2075d86d9
--- /dev/null
+++ b/engine/unused_title.asm
@@ -0,0 +1,201 @@
+UnusedTitleScreen: ; 10c000
+
+ call ClearBGPalettes
+ call ClearTileMap
+ call DisableLCD
+
+; Turn BG Map update off
+ xor a
+ ld [hBGMapMode], a
+
+; Reset timing variables
+ ld hl, wJumptableIndex
+ ld [hli], a ; wJumptableIndex
+ ld [hli], a ; wIntroSceneFrameCounter
+ ld [hli], a ; wTitleScreenTimer
+ ld [hl], a ; wTitleScreenTimer + 1
+
+ ld hl, UnusedTitleBG_GFX
+ ld de, VTiles2
+ ld bc, VBGMap0 - VTiles2
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_GFX + $80 tiles
+ ld de, VTiles1
+ ld bc, VTiles2 - VTiles1
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_GFX
+ ld de, VTiles0
+ ld bc, VTiles1 - VTiles0
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_Tilemap
+ debgcoord 0, 0
+ ld bc, 32 * 32
+.copy
+ ld a, 0
+ ld [rVBK], a
+ ld a, [hli]
+ ld [de], a
+ ld a, 1
+ ld [rVBK], a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .copy
+
+ ld hl, UnusedTitleFG_OAM
+ ld de, Sprites
+ ld bc, $a0
+ call CopyBytes
+
+ call EnableLCD
+ ld a, [rLCDC]
+ set 1, a
+ set 2, a
+ ld [rLCDC], a
+
+ call DelayFrame
+
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, UnusedTitleBG_Palettes
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_Palettes
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ ld hl, UnusedTitleBG_Palettes
+ ld de, BGPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ ld hl, UnusedTitleFG_Palettes
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, $1
+ ld [hCGBPalUpdate], a
+
+ ld de, MUSIC_TITLE
+ call PlayMusic
+
+ ret
+; 10c0b1
+
+UnusedTitleBG_GFX: ; 10c0b1
+INCBIN "gfx/title/old_bg.2bpp"
+; 10d0b1
+
+UnusedTitleBG_Tilemap: ; 10d0b1
+; 32x32 (tile, attributes)
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+ db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
+; 10d8b1
+
+UnusedTitleBG_Palettes: ; 10d8b1
+INCLUDE "data/palettes/unused_title/bg.pal"
+
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 20, 04, 20
+ RGB 16, 08, 16
+ RGB 24, 00, 24
+
+rept 54
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+endr
+; 10dab1
+
+UnusedTitleFG_GFX: ; 10dab1
+INCBIN "gfx/title/old_fg.2bpp"
+; 10eab1
+
+UnusedTitleFG_Palettes: ; 10eab1
+INCLUDE "data/palettes/unused_title/ob.pal"
+; 10ecb1
+
+UnusedTitleFG_OAM: ; 10ecb1
+ db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01
+ db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01
+
+ db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00
+ db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00
+
+ db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00
+ db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00
+
+ db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02
+ db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02
+
+ db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01
+ db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01
+; 10ed51
+
+
+Function10ed51: ; 10ed51
+ call _TitleScreen
+.loop
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ ld b, a
+ and 1
+ jr nz, .done
+ call SuicuneFrameIterator
+ call DelayFrame
+ jr .loop
+.done
+ ret
+; 10ed67
diff --git a/event/buena.asm b/event/buena.asm
index 4802943f9..2cb3b5a63 100644
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -288,9 +288,15 @@ Buena_PrizeMenu: ; 8b0e2
dba .prizepoints
; 8b129
+NUM_BUENA_PRIZES EQU 9 ; ((BuenaPrizeItemsEnd - BuenaPrizeItems) / 2)
+
.indices ; 8b129
- db 9
- db 1, 2, 3, 4, 5, 6, 7, 8, 9
+ db NUM_BUENA_PRIZES
+x = 1
+rept NUM_BUENA_PRIZES
+ db x
+x = x + 1
+endr
db -1
; 8b134
@@ -319,7 +325,7 @@ Buena_PrizeMenu: ; 8b0e2
Buena_getprize: ; 8b154
dec a
- ld hl, .prizes
+ ld hl, BuenaPrizeItems
ld b, 0
ld c, a
add hl, bc
@@ -327,14 +333,4 @@ Buena_getprize: ; 8b154
ret
; 8b15e
-.prizes ; 8b15e
- db ULTRA_BALL, 2
- db FULL_RESTORE, 2
- db NUGGET, 3
- db RARE_CANDY, 3
- db PROTEIN, 5
- db IRON, 5
- db CARBOS, 5
- db CALCIUM, 5
- db HP_UP, 5
-; 8b170
+INCLUDE "data/items/buena_prizes.asm"
diff --git a/event/buena_menu.asm b/event/buena_menu.asm
new file mode 100644
index 000000000..b453da783
--- /dev/null
+++ b/event/buena_menu.asm
@@ -0,0 +1,58 @@
+AskRememberPassword: ; 4ae12
+ call .DoMenu
+ ld a, $0
+ jr c, .okay
+ ld a, $1
+
+.okay
+ ld [ScriptVar], a
+ ret
+
+.DoMenu: ; 4ae1f
+ lb bc, 14, 7
+ push bc
+ ld hl, YesNoMenuDataHeader
+ call CopyMenuDataHeader
+ pop bc
+ ld a, b
+ ld [wMenuBorderLeftCoord], a
+ add $5
+ ld [wMenuBorderRightCoord], a
+ ld a, c
+ ld [wMenuBorderTopCoord], a
+ add $4
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ call VerticalMenu
+ push af
+ ld c, 15
+ call DelayFrames
+ call Buena_ExitMenu
+ pop af
+ jr c, .refused
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .refused
+ and a
+ ret
+
+.refused
+ ld a, $2
+ ld [wMenuCursorY], a
+ scf
+ ret
+
+Buena_ExitMenu: ; 4ae5e
+ ld a, [hOAMUpdate]
+ push af
+ call ExitMenu
+ call UpdateSprites
+ xor a
+ ld [hOAMUpdate], a
+ call DelayFrame
+ ld a, $1
+ ld [hOAMUpdate], a
+ call ApplyTilemap
+ pop af
+ ld [hOAMUpdate], a
+ ret
diff --git a/event/bug_contest/caught_mon.asm b/event/bug_contest/caught_mon.asm
new file mode 100644
index 000000000..729033d8b
--- /dev/null
+++ b/event/bug_contest/caught_mon.asm
@@ -0,0 +1,38 @@
+BugContest_SetCaughtContestMon: ; e6ce
+ ld a, [wContestMon]
+ and a
+ jr z, .firstcatch
+ ld [wd265], a
+ callba DisplayAlreadyCaughtText
+ callba DisplayCaughtContestMonStats
+ lb bc, 14, 7
+ call PlaceYesNoBox
+ ret c
+
+.firstcatch
+ call .generatestats
+ ld a, [TempEnemyMonSpecies]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, .caughttext
+ call PrintText
+ ret
+
+.generatestats ; e6fd
+ ld a, [TempEnemyMonSpecies]
+ ld [CurSpecies], a
+ ld [CurPartySpecies], a
+ call GetBaseData
+ xor a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, wContestMon
+ call ByteFill
+ xor a
+ ld [MonType], a
+ ld hl, wContestMon
+ jp GeneratePartyMonStats
+
+.caughttext ; 0xe71d
+ ; Caught @ !
+ text_jump UnknownText_0x1c10c0
+ db "@"
diff --git a/event/bug_contest/contest.asm b/event/bug_contest/contest.asm
new file mode 100644
index 000000000..2cb88ad30
--- /dev/null
+++ b/event/bug_contest/contest.asm
@@ -0,0 +1,43 @@
+Special_GiveParkBalls: ; 135db
+ xor a
+ ld [wContestMon], a
+ ld a, 20
+ ld [wParkBallsRemaining], a
+ callba StartBugContestTimer
+ ret
+
+BugCatchingContestBattleScript:: ; 0x135eb
+ writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
+ randomwildmon
+ startbattle
+ reloadmapafterbattle
+ copybytetovar wParkBallsRemaining
+ iffalse BugCatchingContestOutOfBallsScript
+ end
+
+BugCatchingContestOverScript:: ; 0x135f8
+ playsound SFX_ELEVATOR_END
+ opentext
+ writetext BugCatchingContestText_BeeepTimesUp
+ waitbutton
+ jump BugCatchingContestReturnToGateScript
+
+BugCatchingContestOutOfBallsScript: ; 0x13603
+ playsound SFX_ELEVATOR_END
+ opentext
+ writetext BugCatchingContestText_ContestIsOver
+ waitbutton
+
+BugCatchingContestReturnToGateScript: ; 0x1360b
+ closetext
+ jumpstd bugcontestresultswarp
+
+BugCatchingContestText_BeeepTimesUp: ; 0x1360f
+ ; ANNOUNCER: BEEEP! Time's up!
+ text_jump UnknownText_0x1bd2ca
+ db "@"
+
+BugCatchingContestText_ContestIsOver: ; 0x13614
+ ; ANNOUNCER: The Contest is over!
+ text_jump UnknownText_0x1bd2e7
+ db "@"
diff --git a/event/bug_contest_2.asm b/event/bug_contest/contest_2.asm
index 493c69d0c..493c69d0c 100755
--- a/event/bug_contest_2.asm
+++ b/event/bug_contest/contest_2.asm
diff --git a/event/bug_contest/display_stats.asm b/event/bug_contest/display_stats.asm
new file mode 100644
index 000000000..d6ad3997e
--- /dev/null
+++ b/event/bug_contest/display_stats.asm
@@ -0,0 +1,107 @@
+DisplayCaughtContestMonStats: ; cc000
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call LoadFontsBattleExtra
+
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+
+ hlcoord 0, 0
+ ld b, 4
+ ld c, 13
+ call TextBox
+
+ hlcoord 0, 6
+ ld b, 4
+ ld c, 13
+ call TextBox
+
+ hlcoord 2, 0
+ ld de, .Stock
+ call PlaceString
+
+ hlcoord 2, 6
+ ld de, .This
+ call PlaceString
+
+ hlcoord 5, 4
+ ld de, .Health
+ call PlaceString
+
+ hlcoord 5, 10
+ ld de, .Health
+ call PlaceString
+
+ ld a, [wContestMon]
+ ld [wd265], a
+ call GetPokemonName
+ ld de, StringBuffer1
+ hlcoord 1, 2
+ call PlaceString
+
+ ld h, b
+ ld l, c
+ ld a, [wContestMonLevel]
+ ld [TempMonLevel], a
+ call PrintLevel
+
+ ld de, EnemyMonNick
+ hlcoord 1, 8
+ call PlaceString
+
+ ld h, b
+ ld l, c
+ ld a, [EnemyMonLevel]
+ ld [TempMonLevel], a
+ call PrintLevel
+
+ hlcoord 11, 4
+ ld de, wContestMonMaxHP
+ lb bc, 2, 3
+ call PrintNum
+
+ hlcoord 11, 10
+ ld de, EnemyMonMaxHP
+ call PrintNum
+
+ ld hl, SwitchMonText
+ call PrintText
+
+ pop af
+ ld [Options], a
+
+ call WaitBGMap
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ call SetPalettes
+ ret
+
+.Health:
+ db "HEALTH@"
+.Stock:
+ db " STOCK ", $4a, " @"
+.This:
+ db " THIS ", $4a, " @"
+
+SwitchMonText: ; cc0c2
+ ; Switch #MON?
+ text_jump UnknownText_0x1c10cf
+ db "@"
+
+DisplayAlreadyCaughtText: ; cc0c7
+ call GetPokemonName
+ ld hl, .AlreadyCaughtText
+ jp PrintText
+
+.AlreadyCaughtText: ; 0xcc0d0
+ ; You already caught a @ .
+ text_jump UnknownText_0x1c10dd
+ db "@"
+
+Predef2F:
+Predef38:
+Predef39: ; cc0d5
+ ret
diff --git a/event/bug_contest_judging.asm b/event/bug_contest/judging.asm
index a7a9eb022..a7a9eb022 100755
--- a/event/bug_contest_judging.asm
+++ b/event/bug_contest/judging.asm
diff --git a/event/catch_tutorial.asm b/event/catch_tutorial.asm
new file mode 100644
index 000000000..8340d8c13
--- /dev/null
+++ b/event/catch_tutorial.asm
@@ -0,0 +1,81 @@
+CatchTutorial:: ; 4e554
+ ld a, [BattleType]
+ dec a
+ ld c, a
+ ld hl, .dw
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.dw ; 4e564 (13:6564)
+ dw .DudeTutorial
+ dw .DudeTutorial
+ dw .DudeTutorial
+
+.DudeTutorial: ; 4e56a (13:656a)
+; Back up your name to your Mom's name.
+ ld hl, PlayerName
+ ld de, MomsName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+; Copy Dude's name to your name
+ ld hl, .Dude
+ ld de, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+
+ call .LoadDudeData
+
+ xor a
+ ld [hJoyDown], a
+ ld [hJoyPressed], a
+ ld a, [Options]
+ push af
+ and $f8
+ add $3
+ ld [Options], a
+ ld hl, .AutoInput
+ ld a, BANK(.AutoInput)
+ call StartAutoInput
+ callab StartBattle
+ call StopAutoInput
+ pop af
+
+ ld [Options], a
+ ld hl, MomsName
+ ld de, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+
+.LoadDudeData: ; 4e5b7 (13:65b7)
+ ld hl, wDudeNumItems
+ ld [hl], 1
+ inc hl
+ ld [hl], POTION
+ inc hl
+ ld [hl], 1
+ inc hl
+ ld [hl], -1
+ ld hl, wDudeNumKeyItems
+ ld [hl], 0
+ inc hl
+ ld [hl], -1
+ ld hl, wDudeNumBalls
+ ld a, 1
+ ld [hli], a
+ ld a, POKE_BALL ; 5
+ ld [hli], a
+ ld [hli], a
+ ld [hl], -1
+ ret
+
+.Dude: ; 4e5da
+ db "DUDE@"
+
+.AutoInput: ; 4e5df
+ db NO_INPUT, $ff ; end
diff --git a/event/catch_tutorial_input.asm b/event/catch_tutorial_input.asm
new file mode 100644
index 000000000..9d2a03db2
--- /dev/null
+++ b/event/catch_tutorial_input.asm
@@ -0,0 +1,43 @@
+_DudeAutoInput_A:: ; 1de28a
+ ld hl, DudeAutoInput_A
+ jr _DudeAutoInput
+
+_DudeAutoInput_RightA: ; 1de28f
+ ld hl, DudeAutoInput_RightA
+ jr _DudeAutoInput
+
+_DudeAutoInput_DownA: ; 1de294
+ ld hl, DudeAutoInput_DownA
+ jr _DudeAutoInput
+
+_DudeAutoInput: ; 1de299
+ ld a, BANK(DudeAutoInputs)
+ call StartAutoInput
+ ret
+
+DudeAutoInputs:
+
+DudeAutoInput_A: ; 1de29f
+ db NO_INPUT, $50
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
+
+DudeAutoInput_RightA: ; 1de2a5
+ db NO_INPUT, $08
+ db D_RIGHT, $00
+ db NO_INPUT, $08
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
+
+DudeAutoInput_DownA: ; 1de2af
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db D_DOWN, $00
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db NO_INPUT, $fe
+ db A_BUTTON, $00
+ db NO_INPUT, $ff ; end
diff --git a/event/celebi.asm b/event/celebi.asm
index c9be9cb39..ab0a333f2 100755
--- a/event/celebi.asm
+++ b/event/celebi.asm
@@ -124,12 +124,13 @@ CelebiEvent_SpawnLeaf: ; 49944
; 49962
SpecialCelebiLeafGFX: ; 49962
-INCBIN "gfx/special/celebi/leaf.2bpp"
+INCBIN "gfx/overworld/cut_grass.2bpp"
+
SpecialCelebiGFX: ; 499a2
-INCBIN "gfx/special/celebi/1.2bpp"
-INCBIN "gfx/special/celebi/2.2bpp"
-INCBIN "gfx/special/celebi/3.2bpp"
-INCBIN "gfx/special/celebi/4.2bpp"
+INCBIN "gfx/overworld/celebi/1.2bpp"
+INCBIN "gfx/overworld/celebi/2.2bpp"
+INCBIN "gfx/overworld/celebi/3.2bpp"
+INCBIN "gfx/overworld/celebi/4.2bpp"
UpdateCelebiPosition: ; 49aa2 (12:5aa2)
diff --git a/engine/healmachineanim.asm b/event/heal_machine_anim.asm
index 4f543c0b3..4f543c0b3 100755
--- a/engine/healmachineanim.asm
+++ b/event/heal_machine_anim.asm
diff --git a/event/itemball.asm b/event/itemball.asm
deleted file mode 100755
index ed0c6a9e0..000000000
--- a/event/itemball.asm
+++ /dev/null
@@ -1,54 +0,0 @@
-FindItemInBallScript:: ; 0x122ce
- callasm .TryReceiveItem
- iffalse .no_room
- disappear LAST_TALKED
- opentext
- writetext .text_found
- playsound SFX_ITEM
- pause 60
- itemnotify
- closetext
- end
-; 0x122e3
-
-.no_room ; 0x122e3
- opentext
- writetext .text_found
- waitbutton
- writetext .text_bag_full
- waitbutton
- closetext
- end
-; 0x122ee
-
-.text_found ; 0x122ee
- ; found @ !
- text_jump UnknownText_0x1c0a1c
- db "@"
-; 0x122f3
-
-.text_bag_full ; 0x122f3
- ; But can't carry any more items.
- text_jump UnknownText_0x1c0a2c
- db "@"
-; 0x122f8
-
-.TryReceiveItem: ; 122f8
- xor a
- ld [ScriptVar], a
- ld a, [EngineBuffer1]
- ld [wNamedObjectIndexBuffer], a
- call GetItemName
- ld hl, StringBuffer3
- call CopyName2
- ld a, [EngineBuffer1]
- ld [CurItem], a
- ld a, [CurFruit]
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- call ReceiveItem
- ret nc
- ld a, $1
- ld [ScriptVar], a
- ret
-; 12324
diff --git a/event/lucky_number.asm b/event/lucky_number.asm
new file mode 100644
index 000000000..8cec7599d
--- /dev/null
+++ b/event/lucky_number.asm
@@ -0,0 +1,226 @@
+Special_CheckForLuckyNumberWinners: ; 4d87a
+ xor a
+ ld [ScriptVar], a
+ ld [wFoundMatchingIDInParty], a
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld d, a
+ ld hl, PartyMon1ID
+ ld bc, PartySpecies
+.PartyLoop:
+ ld a, [bc]
+ inc bc
+ cp EGG
+ call nz, .CompareLuckyNumberToMonID
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .PartyLoop
+ ld a, BANK(sBox)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ and a
+ jr z, .SkipOpenBox
+ ld d, a
+ ld hl, sBoxMon1ID
+ ld bc, sBoxSpecies
+.OpenBoxLoop:
+ ld a, [bc]
+ inc bc
+ cp EGG
+ jr z, .SkipOpenBoxMon
+ call .CompareLuckyNumberToMonID
+ jr nc, .SkipOpenBoxMon
+ ld a, 1
+ ld [wFoundMatchingIDInParty], a
+
+.SkipOpenBoxMon:
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .OpenBoxLoop
+
+.SkipOpenBox:
+ call CloseSRAM
+ ld c, $0
+.BoxesLoop:
+ ld a, [wCurBox]
+ and $f
+ cp c
+ jr z, .SkipBox
+ ld hl, .BoxBankAddresses
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ call GetSRAMBank
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a ; hl now contains the address of the loaded box in SRAM
+ ld a, [hl]
+ and a
+ jr z, .SkipBox ; no mons in this box
+ push bc
+ ld b, h
+ ld c, l
+ inc bc
+ ld de, sBoxMon1ID - sBox
+ add hl, de
+ ld d, a
+.BoxNLoop:
+ ld a, [bc]
+ inc bc
+ cp EGG
+ jr z, .SkipBoxMon
+
+ call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately
+ jr nc, .SkipBoxMon
+ ld a, 1
+ ld [wFoundMatchingIDInParty], a
+
+.SkipBoxMon:
+ push bc
+ ld bc, BOXMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec d
+ jr nz, .BoxNLoop
+ pop bc
+
+.SkipBox:
+ inc c
+ ld a, c
+ cp NUM_BOXES
+ jr c, .BoxesLoop
+
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z ; found nothing
+ callba TrainerRankings_LuckyNumberShow
+ ld a, [wFoundMatchingIDInParty]
+ and a
+ push af
+ ld a, [CurPartySpecies]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld hl, .FoundPartymonText
+ pop af
+ jr z, .print
+ ld hl, .FoundBoxmonText
+
+.print
+ jp PrintText
+
+.CompareLuckyNumberToMonID: ; 4d939
+ push bc
+ push de
+ push hl
+ ld d, h
+ ld e, l
+ ld hl, Buffer1
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ld hl, LuckyNumberDigit1Buffer
+ ld de, wLuckyIDNumber
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ld b, 5
+ ld c, 0
+ ld hl, LuckyNumberDigit5Buffer
+ ld de, Buffer5
+.loop
+ ld a, [de]
+ cp [hl]
+ jr nz, .done
+ dec de
+ dec hl
+ inc c
+ dec b
+ jr nz, .loop
+
+.done
+ pop hl
+ push hl
+ ld de, -6
+ add hl, de
+ ld a, [hl]
+ pop hl
+ pop de
+ push af
+ ld a, c
+ ld b, 1
+ cp 5
+ jr z, .okay
+ ld b, 2
+ cp 3
+ jr nc, .okay
+ ld b, 3
+ cp 2
+ jr nz, .nomatch
+
+.okay
+ inc b
+ ld a, [ScriptVar]
+ and a
+ jr z, .bettermatch
+ cp b
+ jr c, .nomatch
+
+.bettermatch
+ dec b
+ ld a, b
+ ld [ScriptVar], a
+ pop bc
+ ld a, b
+ ld [CurPartySpecies], a
+ pop bc
+ scf
+ ret
+
+.nomatch
+ pop bc
+ pop bc
+ and a
+ ret
+
+.BoxBankAddresses: ; 4d99f
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
+ dba sBox10
+ dba sBox11
+ dba sBox12
+ dba sBox13
+ dba sBox14
+
+.FoundPartymonText: ; 0x4d9c9
+ ; Congratulations! We have a match with the ID number of @ in your party.
+ text_jump UnknownText_0x1c1261
+ db "@"
+
+.FoundBoxmonText: ; 0x4d9ce
+ ; Congratulations! We have a match with the ID number of @ in your PC BOX.
+ text_jump UnknownText_0x1c12ae
+ db "@"
+
+Special_PrintTodaysLuckyNumber: ; 4d9d3
+ ld hl, StringBuffer3
+ ld de, wLuckyIDNumber
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ld a, "@"
+ ld [StringBuffer3 + 5], a
+ ret
diff --git a/event/misc_scripts.asm b/event/misc_scripts.asm
new file mode 100755
index 000000000..97372a57a
--- /dev/null
+++ b/event/misc_scripts.asm
@@ -0,0 +1,62 @@
+Script_AbortBugContest: ; 0x122c1
+ checkflag ENGINE_BUG_CONTEST_TIMER
+ iffalse .finish
+ setflag ENGINE_DAILY_BUG_CONTEST
+ special ContestReturnMons
+.finish
+ end
+
+FindItemInBallScript:: ; 0x122ce
+ callasm .TryReceiveItem
+ iffalse .no_room
+ disappear LAST_TALKED
+ opentext
+ writetext .text_found
+ playsound SFX_ITEM
+ pause 60
+ itemnotify
+ closetext
+ end
+; 0x122e3
+
+.no_room ; 0x122e3
+ opentext
+ writetext .text_found
+ waitbutton
+ writetext .text_bag_full
+ waitbutton
+ closetext
+ end
+; 0x122ee
+
+.text_found ; 0x122ee
+ ; found @ !
+ text_jump UnknownText_0x1c0a1c
+ db "@"
+; 0x122f3
+
+.text_bag_full ; 0x122f3
+ ; But can't carry any more items.
+ text_jump UnknownText_0x1c0a2c
+ db "@"
+; 0x122f8
+
+.TryReceiveItem: ; 122f8
+ xor a
+ ld [ScriptVar], a
+ ld a, [EngineBuffer1]
+ ld [wNamedObjectIndexBuffer], a
+ call GetItemName
+ ld hl, StringBuffer3
+ call CopyName2
+ ld a, [EngineBuffer1]
+ ld [CurItem], a
+ ld a, [CurFruit]
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, NumItems
+ call ReceiveItem
+ ret nc
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 12324
diff --git a/event/misc_scripts_2.asm b/event/misc_scripts_2.asm
new file mode 100644
index 000000000..c4c51d5e6
--- /dev/null
+++ b/event/misc_scripts_2.asm
@@ -0,0 +1,51 @@
+RepelWoreOffScript:: ; 0x13619
+ opentext
+ writetext .text
+ waitbutton
+ closetext
+ end
+
+.text ; 0x13620
+ ; REPEL's effect wore off.
+ text_jump UnknownText_0x1bd308
+ db "@"
+
+HiddenItemScript:: ; 0x13625
+ opentext
+ copybytetovar EngineBuffer3
+ itemtotext 0, 0
+ writetext .found_text
+ giveitem ITEM_FROM_MEM
+ iffalse .bag_full
+ callasm SetMemEvent
+ specialsound
+ itemnotify
+ jump .finish
+
+.bag_full ; 0x1363e
+ buttonsound
+ writetext .no_room_text
+ waitbutton
+
+.finish ; 13643
+ closetext
+ end
+
+.found_text ; 0x13645
+ ; found @ !
+ text_jump UnknownText_0x1bd321
+ db "@"
+
+.no_room_text ; 0x1364a
+ ; But has no space left…
+ text_jump UnknownText_0x1bd331
+ db "@"
+
+SetMemEvent: ; 1364f
+ ld hl, EngineBuffer1
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ld b, SET_FLAG
+ call EventFlagAction
+ ret
diff --git a/event/mom_phone.asm b/event/mom_phone.asm
index 0d7a2366f..aab4abe4b 100755
--- a/event/mom_phone.asm
+++ b/event/mom_phone.asm
@@ -1,3 +1,6 @@
+NUM_MOM_ITEMS_1 EQUS "((MomItems_1End - MomItems_1) / 8)"
+NUM_MOM_ITEMS_2 EQUS "((MomItems_2End - MomItems_2) / 8)"
+
const_value = 1
const MOM_ITEM
const MOM_DOLL
@@ -57,7 +60,7 @@ MomTriesToBuySomething:: ; fcfec
CheckBalance_MomItem2: ; fd044
ld a, [wWhichMomItem]
- cp 10
+ cp NUM_MOM_ITEMS_2
jr nc, .nope
call GetItemFromMom
ld a, [hli]
@@ -100,7 +103,7 @@ CheckBalance_MomItem2: ; fd044
.exact
call .AddMoney
- ld a, 5
+ ld a, NUM_MOM_ITEMS_1
call RandomRange
inc a
ld [wWhichMomItemSet], a
@@ -195,7 +198,7 @@ GetItemFromMom: ; fd117
.zero
ld a, [wWhichMomItem]
- cp 10 ; length of MomItems_2
+ cp NUM_MOM_ITEMS_2
jr c, .ok
xor a
@@ -212,7 +215,7 @@ endr
ret
; fd136
-INCLUDE "data/mom_phone_items.asm"
+INCLUDE "data/items/mom_phone.asm"
db 0, 0, 0 ; XXX
diff --git a/event/move_tutor.asm b/event/move_tutor.asm
new file mode 100644
index 000000000..b26114dd0
--- /dev/null
+++ b/event/move_tutor.asm
@@ -0,0 +1,103 @@
+Special_MoveTutor: ; 4925b
+ call FadeToMenu
+ call ClearBGPalettes
+ call ClearScreen
+ call DelayFrame
+ ld b, SCGB_PACKPALS
+ call GetSGBLayout
+ xor a
+ ld [wItemAttributeParamBuffer], a
+ call .GetMoveTutorMove
+ ld [wd265], a
+ ld [wPutativeTMHMMove], a
+ call GetMoveName
+ call CopyName1
+ callba ChooseMonToLearnTMHM
+ jr c, .cancel
+ jr .enter_loop
+
+.loop
+ callba ChooseMonToLearnTMHM_NoRefresh
+ jr c, .cancel
+.enter_loop
+ call CheckCanLearnMoveTutorMove
+ jr nc, .loop
+ xor a
+ ld [ScriptVar], a
+ jr .quit
+
+.cancel
+ ld a, -1
+ ld [ScriptVar], a
+.quit
+ call CloseSubmenu
+ ret
+
+.GetMoveTutorMove: ; 492a5
+ ld a, [ScriptVar]
+ cp 1
+ jr z, .flamethrower
+ cp 2
+ jr z, .thunderbolt
+ ld a, ICE_BEAM
+ ret
+
+.flamethrower
+ ld a, FLAMETHROWER
+ ret
+
+.thunderbolt
+ ld a, THUNDERBOLT
+ ret
+
+CheckCanLearnMoveTutorMove: ; 492b9
+ ld hl, .MenuDataHeader
+ call LoadMenuDataHeader
+
+ predef CanLearnTMHMMove
+
+ push bc
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ call GetNick
+ pop bc
+
+ ld a, c
+ and a
+ jr nz, .can_learn
+ push de
+ ld de, SFX_WRONG
+ call PlaySFX
+ pop de
+ ld a, BANK(Text_TMHMNotCompatible)
+ ld hl, Text_TMHMNotCompatible
+ call FarPrintText
+ jr .didnt_learn
+
+.can_learn
+ callab KnowsMove
+ jr c, .didnt_learn
+
+ predef LearnMove
+ ld a, b
+ and a
+ jr z, .didnt_learn
+
+ ld c, HAPPINESS_LEARNMOVE
+ callab ChangeHappiness
+ jr .learned
+
+.didnt_learn
+ call ExitMenu
+ and a
+ ret
+
+.learned
+ call ExitMenu
+ scf
+ ret
+
+.MenuDataHeader: ; 0x4930a
+ db $40 ; flags
+ db 12, 00 ; start coords
+ db 17, 19 ; end coords
diff --git a/event/photo.asm b/event/photo.asm
deleted file mode 100755
index fea57a368..000000000
--- a/event/photo.asm
+++ /dev/null
@@ -1,295 +0,0 @@
-UnownPrinter: ; 16be4
- ld a, [UnownDex]
- and a
- ret z
-
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- ld a, [Options]
- push af
- set NO_TEXT_SCROLL, a
- ld [Options], a
- call ClearBGPalettes
- call ClearTileMap
-
- ld de, UnownDexATile
- ld hl, VTiles1 tile $6f
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- ld de, UnownDexBTile
- ld hl, VTiles1 tile $75
- lb bc, BANK(UnownDexBTile), 1
- call Request1bpp
-
- hlcoord 0, 0
- lb bc, 3, 18
- call TextBox
-
- hlcoord 0, 5
- lb bc, 7, 7
- call TextBox
-
- hlcoord 0, 14
- lb bc, 2, 18
- call TextBox
-
- hlcoord 1, 2
- ld de, AlphRuinsStampString
- call PlaceString
-
- hlcoord 1, 16
- ld de, UnownDexDoWhatString
- call PlaceString
-
- hlcoord 10, 6
- ld de, UnownDexMenuString
- call PlaceString
-
- xor a
- ld [wJumptableIndex], a
- call .UpdateUnownFrontpic
- call WaitBGMap
-
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [TempMonDVs], a
- ld [TempMonDVs + 1], a
-
- ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- call SetPalettes
-
-.joy_loop
- call JoyTextDelay
-
- ld a, [hJoyPressed]
- and B_BUTTON
- jr nz, .pressed_b
-
- ld a, [hJoyPressed]
- and A_BUTTON
- jr nz, .pressed_a
-
- call .LeftRight
- call DelayFrame
- jr .joy_loop
-
-.pressed_a
- ld a, [wJumptableIndex]
- push af
- callba PrintUnownStamp
- call RestartMapMusic
- pop af
- ld [wJumptableIndex], a
- jr .joy_loop
-
-.pressed_b
- pop af
- ld [Options], a
- pop af
- ld [hInMenu], a
- call ReturnToMapFromSubmenu
- ret
-; 16ca0
-
-.LeftRight: ; 16ca0
- ld a, [hJoyLast]
- and D_RIGHT
- jr nz, .press_right
- ld a, [hJoyLast]
- and D_LEFT
- jr nz, .press_left
- ret
-
-.press_left
- ld hl, wJumptableIndex
- ld a, [hl]
- and a
- jr nz, .wrap_around_left
- ld [hl], 26 + 1
-.wrap_around_left
- dec [hl]
- jr .return
-
-.press_right
- ld hl, wJumptableIndex
- ld a, [hl]
- cp 26
- jr c, .wrap_around_right
- ld [hl], -1
-.wrap_around_right
- inc [hl]
-
-.return
- call .UpdateUnownFrontpic
- ret
-; 16cc8
-
-.UpdateUnownFrontpic: ; 16cc8
- ld a, [wJumptableIndex]
- cp 26
- jr z, .vacant
- inc a
- ld [UnownLetter], a
- ld a, UNOWN
- ld [CurPartySpecies], a
- xor a
- ld [wBoxAlignment], a
- ld de, VTiles2
- predef GetFrontpic
- call .Load2bppToSRAM
- hlcoord 1, 6
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- ld de, VTiles2 tile $31
- callba RotateUnownFrontpic
- ret
-
-.Load2bppToSRAM: ; 16cff
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- ld a, BANK(sScratch)
- call GetSRAMBank
- ld de, wDecompressScratch
- ld hl, sScratch
- ld a, [hROMBank]
- ld b, a
- ld c, $31
- call Get2bpp
- call CloseSRAM
-
- pop af
- ld [rSVBK], a
- ret
-
-.vacant
- hlcoord 1, 6
- lb bc, 7, 7
- call ClearBox
- hlcoord 1, 9
- ld de, UnownDexVacantString
- call PlaceString
- xor a
- call GetSRAMBank
- ld hl, sScratch
- ld bc, $31 tiles
- xor a
- call ByteFill
- ld hl, VTiles2 tile $31
- ld de, sScratch
- ld c, $31
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- call CloseSRAM
- ld c, 20
- call DelayFrames
- ret
-; 16d57
-
-AlphRuinsStampString:
- db " ALPH RUINS STAMP@"
-
-UnownDexDoWhatString:
- db "Do what?@"
-
-UnownDexMenuString:
- db "♂ PRINT"
- next "♀ CANCEL"
- next "← PREVIOUS"
- next "→ NEXT"
- db "@"
-
-UnownDexVacantString:
- db "VACANT@"
-; 16d9c
-
-UnownDexATile: ; 16d9c
-INCBIN "gfx/unknown/bold_a.1bpp"
-UnownDexBTile: ; 16da4
-INCBIN "gfx/unknown/bold_b.1bpp"
-; 16dac
-
-PlaceUnownPrinterFrontpic: ; 16dac
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- hlcoord 7, 11
- ld a, $31
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- ret
-; 16dc7
-
-PhotoStudio: ; 16dc7
- ld hl, .Text_AskWhichMon
- call PrintText
- callba SelectMonFromParty
- jr c, .cancel
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
-
- ld hl, .Text_HoldStill
- call PrintText
- call DisableSpriteUpdates
- callba PrintPartymon
- call ReturnToMapWithSpeechTextbox
- ld a, [hPrinter]
- and a
- jr nz, .cancel
- ld hl, .Text_Presto
- jr .print_text
-
-.cancel
- ld hl, .Text_NoPicture
- jr .print_text
-
-.egg
- ld hl, .Text_Egg
-
-.print_text
- call PrintText
- ret
-; 16e04
-
-.Text_AskWhichMon: ; 0x16e04
- ; Which #MON should I photo- graph?
- text_jump UnknownText_0x1be024
- db "@"
-; 0x16e09
-
-.Text_HoldStill: ; 0x16e09
- ; All righty. Hold still for a bit.
- text_jump UnknownText_0x1be047
- db "@"
-; 0x16e0e
-
-.Text_Presto: ; 0x16e0e
- ; Presto! All done. Come again, OK?
- text_jump UnknownText_0x1be06a
- db "@"
-; 0x16e13
-
-.Text_NoPicture: ; 0x16e13
- ; Oh, no picture? Come again, OK?
- text_jump UnknownText_0x1c0000
- db "@"
-; 0x16e18
-
-.Text_Egg: ; 0x16e18
- ; An EGG? My talent is worth more…
- text_jump UnknownText_0x1c0021
- db "@"
-; 0x16e1d
diff --git a/event/poisonstep_pals.asm b/event/poisonstep_pals.asm
new file mode 100644
index 000000000..c556ba498
--- /dev/null
+++ b/event/poisonstep_pals.asm
@@ -0,0 +1,48 @@
+LoadPoisonBGPals: ; cbcdd
+ call .LoadPals
+ ld a, [hCGB]
+ and a
+ ret nz
+ ret ; ????
+
+.LoadPals: ; cbce5
+ ld a, [hCGB]
+ and a
+ jr nz, .cgb
+ ld a, [TimeOfDayPal]
+ and $3
+ cp $3
+ ld a, %00000000
+ jr z, .convert_pals
+ ld a, %10101010
+
+.convert_pals
+ call DmgToCgbBGPals
+ ld c, 4
+ call DelayFrames
+ callba _UpdateTimePals
+ ret
+
+.cgb
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld c, $20
+.loop
+; RGB 28, 21, 31
+ ld a, (palred 28 + palgreen 21 + palblue 31) % $100
+ ld [hli], a
+ ld a, (palred 28 + palgreen 21 + palblue 31) / $100
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ld c, 4
+ call DelayFrames
+ callba _UpdateTimePals
+ ret
diff --git a/event/print_photo.asm b/event/print_photo.asm
new file mode 100755
index 000000000..448910355
--- /dev/null
+++ b/event/print_photo.asm
@@ -0,0 +1,61 @@
+PhotoStudio: ; 16dc7
+ ld hl, .Text_AskWhichMon
+ call PrintText
+ callba SelectMonFromParty
+ jr c, .cancel
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+
+ ld hl, .Text_HoldStill
+ call PrintText
+ call DisableSpriteUpdates
+ callba PrintPartymon
+ call ReturnToMapWithSpeechTextbox
+ ld a, [hPrinter]
+ and a
+ jr nz, .cancel
+ ld hl, .Text_Presto
+ jr .print_text
+
+.cancel
+ ld hl, .Text_NoPicture
+ jr .print_text
+
+.egg
+ ld hl, .Text_Egg
+
+.print_text
+ call PrintText
+ ret
+; 16e04
+
+.Text_AskWhichMon: ; 0x16e04
+ ; Which #MON should I photo- graph?
+ text_jump UnknownText_0x1be024
+ db "@"
+; 0x16e09
+
+.Text_HoldStill: ; 0x16e09
+ ; All righty. Hold still for a bit.
+ text_jump UnknownText_0x1be047
+ db "@"
+; 0x16e0e
+
+.Text_Presto: ; 0x16e0e
+ ; Presto! All done. Come again, OK?
+ text_jump UnknownText_0x1be06a
+ db "@"
+; 0x16e13
+
+.Text_NoPicture: ; 0x16e13
+ ; Oh, no picture? Come again, OK?
+ text_jump UnknownText_0x1c0000
+ db "@"
+; 0x16e18
+
+.Text_Egg: ; 0x16e18
+ ; An EGG? My talent is worth more…
+ text_jump UnknownText_0x1c0021
+ db "@"
+; 0x16e1d
diff --git a/event/print_unown.asm b/event/print_unown.asm
new file mode 100644
index 000000000..5e0162bad
--- /dev/null
+++ b/event/print_unown.asm
@@ -0,0 +1,233 @@
+UnownPrinter: ; 16be4
+ ld a, [UnownDex]
+ and a
+ ret z
+
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ ld a, [Options]
+ push af
+ set NO_TEXT_SCROLL, a
+ ld [Options], a
+ call ClearBGPalettes
+ call ClearTileMap
+
+ ld de, UnownDexATile
+ ld hl, VTiles1 tile $6f
+ lb bc, BANK(UnownDexBTile), 1
+ call Request1bpp
+
+ ld de, UnownDexBTile
+ ld hl, VTiles1 tile $75
+ lb bc, BANK(UnownDexBTile), 1
+ call Request1bpp
+
+ hlcoord 0, 0
+ lb bc, 3, 18
+ call TextBox
+
+ hlcoord 0, 5
+ lb bc, 7, 7
+ call TextBox
+
+ hlcoord 0, 14
+ lb bc, 2, 18
+ call TextBox
+
+ hlcoord 1, 2
+ ld de, AlphRuinsStampString
+ call PlaceString
+
+ hlcoord 1, 16
+ ld de, UnownDexDoWhatString
+ call PlaceString
+
+ hlcoord 10, 6
+ ld de, UnownDexMenuString
+ call PlaceString
+
+ xor a
+ ld [wJumptableIndex], a
+ call .UpdateUnownFrontpic
+ call WaitBGMap
+
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [TempMonDVs], a
+ ld [TempMonDVs + 1], a
+
+ ld b, SCGB_TRAINER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ call SetPalettes
+
+.joy_loop
+ call JoyTextDelay
+
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jr nz, .pressed_b
+
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jr nz, .pressed_a
+
+ call .LeftRight
+ call DelayFrame
+ jr .joy_loop
+
+.pressed_a
+ ld a, [wJumptableIndex]
+ push af
+ callba PrintUnownStamp
+ call RestartMapMusic
+ pop af
+ ld [wJumptableIndex], a
+ jr .joy_loop
+
+.pressed_b
+ pop af
+ ld [Options], a
+ pop af
+ ld [hInMenu], a
+ call ReturnToMapFromSubmenu
+ ret
+; 16ca0
+
+.LeftRight: ; 16ca0
+ ld a, [hJoyLast]
+ and D_RIGHT
+ jr nz, .press_right
+ ld a, [hJoyLast]
+ and D_LEFT
+ jr nz, .press_left
+ ret
+
+.press_left
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ and a
+ jr nz, .wrap_around_left
+ ld [hl], 26 + 1
+.wrap_around_left
+ dec [hl]
+ jr .return
+
+.press_right
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ cp 26
+ jr c, .wrap_around_right
+ ld [hl], -1
+.wrap_around_right
+ inc [hl]
+
+.return
+ call .UpdateUnownFrontpic
+ ret
+; 16cc8
+
+.UpdateUnownFrontpic: ; 16cc8
+ ld a, [wJumptableIndex]
+ cp 26
+ jr z, .vacant
+ inc a
+ ld [UnownLetter], a
+ ld a, UNOWN
+ ld [CurPartySpecies], a
+ xor a
+ ld [wBoxAlignment], a
+ ld de, VTiles2
+ predef GetFrontpic
+ call .Load2bppToSRAM
+ hlcoord 1, 6
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ ld de, VTiles2 tile $31
+ callba RotateUnownFrontpic
+ ret
+
+.Load2bppToSRAM: ; 16cff
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+
+ ld a, BANK(sScratch)
+ call GetSRAMBank
+ ld de, wDecompressScratch
+ ld hl, sScratch
+ ld a, [hROMBank]
+ ld b, a
+ ld c, $31
+ call Get2bpp
+ call CloseSRAM
+
+ pop af
+ ld [rSVBK], a
+ ret
+
+.vacant
+ hlcoord 1, 6
+ lb bc, 7, 7
+ call ClearBox
+ hlcoord 1, 9
+ ld de, UnownDexVacantString
+ call PlaceString
+ xor a
+ call GetSRAMBank
+ ld hl, sScratch
+ ld bc, $31 tiles
+ xor a
+ call ByteFill
+ ld hl, VTiles2 tile $31
+ ld de, sScratch
+ ld c, $31
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ld c, 20
+ call DelayFrames
+ ret
+; 16d57
+
+AlphRuinsStampString:
+ db " ALPH RUINS STAMP@"
+
+UnownDexDoWhatString:
+ db "Do what?@"
+
+UnownDexMenuString:
+ db "♂ PRINT"
+ next "♀ CANCEL"
+ next "← PREVIOUS"
+ next "→ NEXT"
+ db "@"
+
+UnownDexVacantString:
+ db "VACANT@"
+; 16d9c
+
+UnownDexATile: ; 16d9c
+INCBIN "gfx/printer/bold_a.1bpp"
+UnownDexBTile: ; 16da4
+INCBIN "gfx/printer/bold_b.1bpp"
+; 16dac
+
+PlaceUnownPrinterFrontpic: ; 16dac
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ hlcoord 7, 11
+ ld a, $31
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ ret
+; 16dc7
diff --git a/event/print_unown_2.asm b/event/print_unown_2.asm
new file mode 100644
index 000000000..057db5176
--- /dev/null
+++ b/event/print_unown_2.asm
@@ -0,0 +1,111 @@
+RotateUnownFrontpic: ; e0000
+; something to do with Unown printer
+ push de
+ xor a
+ call GetSRAMBank
+ ld hl, sScratch
+ ld bc, 0
+.loop
+ push bc
+ push hl
+ push bc
+ ld de, wd002
+ call .Copy
+ call .Rotate
+ ld hl, UnownPrinter_OverworldMapRectangle
+ pop bc
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, wd012
+ call .Copy
+ pop hl
+ ld bc, $10
+ add hl, bc
+ pop bc
+ inc c
+ ld a, c
+ cp 7 * 7
+ jr c, .loop
+
+ ld hl, OverworldMap
+ ld de, sScratch
+ ld bc, 7 * 7 tiles
+ call CopyBytes
+ pop hl
+ ld de, sScratch
+ ld c, 7 * 7
+ ld a, [hROMBank]
+ ld b, a
+ call Get2bpp
+ call CloseSRAM
+ ret
+
+.Copy: ; e004e
+ ld c, $10
+.loop_copy
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop_copy
+ ret
+
+.Rotate: ; e0057
+ ld hl, wd012
+ ld e, %10000000
+ ld d, 8
+.loop_decompress
+ push hl
+ ld hl, wd002
+ call .CountSetBit
+ pop hl
+ ld a, b
+ ld [hli], a
+ push hl
+ ld hl, wd003
+ call .CountSetBit
+ pop hl
+ ld a, b
+ ld [hli], a
+ srl e
+ dec d
+ jr nz, .loop_decompress
+ ret
+
+.CountSetBit: ; e0078
+ ld b, 0
+ ld c, 8
+.loop_count
+ ld a, [hli]
+ and e
+ jr z, .clear
+ scf
+ jr .apply
+
+.clear
+ and a
+
+.apply
+ rr b
+ inc hl
+ dec c
+ jr nz, .loop_count
+ ret
+
+overworldmaprect: MACRO
+y = 0
+rept \1
+x = \1 * (\2 +- 1) + y
+rept \2
+ dw OverworldMap tile x
+x = x +- \2
+endr
+y = y + 1
+endr
+endm
+
+UnownPrinter_OverworldMapRectangle: ; e008b
+ overworldmaprect 7, 7
diff --git a/event/special.asm b/event/special.asm
index f1228abc6..71323499e 100755
--- a/event/special.asm
+++ b/event/special.asm
@@ -229,3 +229,7 @@ CopyPokemonName_Buffer1_Buffer3: ; 746e
ld de, StringBuffer3
ld bc, PKMN_NAME_LENGTH
jp CopyBytes
+
+Predef1: ; 747a
+; not used
+ ret
diff --git a/event/std_collision.asm b/event/std_collision.asm
new file mode 100644
index 000000000..17b1e49b2
--- /dev/null
+++ b/event/std_collision.asm
@@ -0,0 +1,29 @@
+CheckFacingTileForStd:: ; 1365b
+; Checks to see if the tile you're facing has a std script associated with it. If so, executes the script and returns carry.
+ ld a, c
+ ld de, 3
+ ld hl, TileCollisionStdScripts
+ call IsInArray
+ jr nc, .notintable
+
+ ld a, jumpstd_command
+ ld [wJumpStdScriptBuffer], a
+ inc hl
+ ld a, [hli]
+ ld [wJumpStdScriptBuffer + 1], a
+ ld a, [hli]
+ ld [wJumpStdScriptBuffer + 2], a
+ ld a, BANK(Script_JumpStdFromRAM)
+ ld hl, Script_JumpStdFromRAM
+ call CallScript
+ scf
+ ret
+
+.notintable
+ xor a
+ ret
+
+INCLUDE "data/collision_stdscripts.asm"
+
+Script_JumpStdFromRAM: ; 0x1369a
+ jump wJumpStdScriptBuffer
diff --git a/event/unown.asm b/event/unown.asm
index efd4c74f5..1be858bd6 100644
--- a/event/unown.asm
+++ b/event/unown.asm
@@ -1,5 +1,3 @@
-
-
SpecialHoOhChamber: ; 0x8addb
ld hl, PartySpecies
ld a, [hl]
diff --git a/gfx/card_flip/card_flip.tilemap b/gfx/card_flip/card_flip.tilemap
new file mode 100644
index 000000000..f6cdbefb1
--- /dev/null
+++ b/gfx/card_flip/card_flip.tilemap
Binary files differ
diff --git a/gfx/credits.asm b/gfx/credits.asm
new file mode 100644
index 000000000..2477bd562
--- /dev/null
+++ b/gfx/credits.asm
@@ -0,0 +1,7 @@
+CreditsBorderGFX: INCBIN "gfx/credits/border.2bpp"
+
+CreditsMonsGFX:
+CreditsPichuGFX: INCBIN "gfx/credits/pichu.2bpp"
+CreditsSmoochumGFX: INCBIN "gfx/credits/smoochum.2bpp"
+CreditsDittoGFX: INCBIN "gfx/credits/ditto.2bpp"
+CreditsIgglybuffGFX: INCBIN "gfx/credits/igglybuff.2bpp"
diff --git a/gfx/emotes.asm b/gfx/emotes.asm
new file mode 100644
index 000000000..1de06de2c
--- /dev/null
+++ b/gfx/emotes.asm
@@ -0,0 +1,12 @@
+ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
+QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
+HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
+SadEmote: INCBIN "gfx/emotes/sad.2bpp"
+HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
+BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
+SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
+FishEmote: INCBIN "gfx/emotes/fish.2bpp"
+JumpShadowGFX: INCBIN "gfx/overworld/shadow.2bpp"
+FishingRodGFX: INCBIN "gfx/overworld/fishing_rod.2bpp"
+BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp"
+GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp"
diff --git a/gfx/font.asm b/gfx/font.asm
index f2efefd37..867619a9c 100755
--- a/gfx/font.asm
+++ b/gfx/font.asm
@@ -50,16 +50,16 @@ TownMapGFX: ; f8ba0
INCBIN "gfx/pokegear/town_map.2bpp.lz"
; f8ea4
-WeekdayKanjiGFX: ; unused kanji
-INCBIN "gfx/font/weekday_kanji.2bpp"
+UnusedWeekdayKanjiGFX: ; unused kanji
+INCBIN "gfx/font/unused_weekday_kanji.2bpp"
; f8f24
OverworldPhoneIconGFX: ; f8f24
-INCBIN "gfx/mobile/overworld_phone_icon.2bpp"
+INCBIN "gfx/font/overworld_phone_icon.2bpp"
; f8f34
-GFX_f8f34: ; unused bold letters + unown chars
-INCBIN "gfx/unknown/bold_font.1bpp"
+UnusedBoldFontGFX: ; unused bold letters + unown chars
+INCBIN "gfx/font/unused_bold_font.1bpp"
; f9204
TextBoxSpaceGFX: ; f9204
diff --git a/gfx/mobile/overworld_phone_icon.png b/gfx/font/overworld_phone_icon.png
index 9e13a121b..9e13a121b 100644
--- a/gfx/mobile/overworld_phone_icon.png
+++ b/gfx/font/overworld_phone_icon.png
Binary files differ
diff --git a/gfx/unknown/bold_font.png b/gfx/font/unused_bold_font.png
index e02b91ce2..e02b91ce2 100644
--- a/gfx/unknown/bold_font.png
+++ b/gfx/font/unused_bold_font.png
Binary files differ
diff --git a/gfx/font/weekday_kanji.png b/gfx/font/unused_weekday_kanji.png
index 6eeb69b11..6eeb69b11 100644
--- a/gfx/font/weekday_kanji.png
+++ b/gfx/font/unused_weekday_kanji.png
Binary files differ
diff --git a/gfx/unknown/ascii_font.png b/gfx/mobile/ascii_font.png
index 1c32d2bda..1c32d2bda 100644
--- a/gfx/unknown/ascii_font.png
+++ b/gfx/mobile/ascii_font.png
Binary files differ
diff --git a/gfx/unknown/down_arrow.png b/gfx/mobile/down_arrow.png
index 9eaaadd2d..9eaaadd2d 100644
--- a/gfx/unknown/down_arrow.png
+++ b/gfx/mobile/down_arrow.png
Binary files differ
diff --git a/gfx/unknown/egg_animated.2bpp.lz.3eaf004f b/gfx/mobile/electro_ball.2bpp.lz.3eaf004f
index b4fabff15..b4fabff15 100644
--- a/gfx/unknown/egg_animated.2bpp.lz.3eaf004f
+++ b/gfx/mobile/electro_ball.2bpp.lz.3eaf004f
Binary files differ
diff --git a/gfx/unknown/egg_animated.png b/gfx/mobile/electro_ball.png
index 3e1c0bb46..3e1c0bb46 100644
--- a/gfx/unknown/egg_animated.png
+++ b/gfx/mobile/electro_ball.png
Binary files differ
diff --git a/gfx/unknown/egg_animated_nonmatching.png b/gfx/mobile/electro_ball_nonmatching.png
index 44ea166ef..44ea166ef 100755
--- a/gfx/unknown/egg_animated_nonmatching.png
+++ b/gfx/mobile/electro_ball_nonmatching.png
Binary files differ
diff --git a/gfx/unknown/mobile_splash.attrmap b/gfx/mobile/mobile_splash.attrmap
index 86666b3fd..86666b3fd 100644
--- a/gfx/unknown/mobile_splash.attrmap
+++ b/gfx/mobile/mobile_splash.attrmap
Binary files differ
diff --git a/gfx/unknown/mobile_splash.png b/gfx/mobile/mobile_splash.png
index d54b68cdf..d54b68cdf 100755
--- a/gfx/unknown/mobile_splash.png
+++ b/gfx/mobile/mobile_splash.png
Binary files differ
diff --git a/gfx/unknown/mobile_splash.tilemap b/gfx/mobile/mobile_splash.tilemap
index 81818e531..81818e531 100644
--- a/gfx/unknown/mobile_splash.tilemap
+++ b/gfx/mobile/mobile_splash.tilemap
Binary files differ
diff --git a/gfx/unknown/pichu_animated.2bpp.lz.5d6d2ad4 b/gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4
index 4d50c6bcf..4d50c6bcf 100644
--- a/gfx/unknown/pichu_animated.2bpp.lz.5d6d2ad4
+++ b/gfx/mobile/pichu_animated.2bpp.lz.5d6d2ad4
Binary files differ
diff --git a/gfx/unknown/pichu_animated.png b/gfx/mobile/pichu_animated.png
index 2832fdb6a..2832fdb6a 100644
--- a/gfx/unknown/pichu_animated.png
+++ b/gfx/mobile/pichu_animated.png
Binary files differ
diff --git a/gfx/unknown/up_arrow.png b/gfx/mobile/up_arrow.png
index e8b43de99..e8b43de99 100644
--- a/gfx/unknown/up_arrow.png
+++ b/gfx/mobile/up_arrow.png
Binary files differ
diff --git a/gfx/special/celebi/1.png b/gfx/overworld/celebi/1.png
index bd07ec8c4..bd07ec8c4 100644
--- a/gfx/special/celebi/1.png
+++ b/gfx/overworld/celebi/1.png
Binary files differ
diff --git a/gfx/special/celebi/2.png b/gfx/overworld/celebi/2.png
index c83a8788a..c83a8788a 100644
--- a/gfx/special/celebi/2.png
+++ b/gfx/overworld/celebi/2.png
Binary files differ
diff --git a/gfx/special/celebi/3.png b/gfx/overworld/celebi/3.png
index 6233fc56d..6233fc56d 100644
--- a/gfx/special/celebi/3.png
+++ b/gfx/overworld/celebi/3.png
Binary files differ
diff --git a/gfx/special/celebi/4.png b/gfx/overworld/celebi/4.png
index 6233fc56d..6233fc56d 100644
--- a/gfx/special/celebi/4.png
+++ b/gfx/overworld/celebi/4.png
Binary files differ
diff --git a/gfx/overworld_font.asm b/gfx/overworld_font.asm
new file mode 100644
index 000000000..203b18fa0
--- /dev/null
+++ b/gfx/overworld_font.asm
@@ -0,0 +1,17 @@
+LoadOverworldFont:: ; 106594
+ ld de, .font
+ ld hl, VTiles1
+ lb bc, BANK(.font), $80
+ call Get2bpp
+ ld de, .space
+ ld hl, VTiles2 tile $7f
+ lb bc, BANK(.space), 1
+ call Get2bpp
+ ret
+; 1065ad
+
+.font
+INCBIN "gfx/font/overworld.2bpp"
+
+.space
+INCBIN "gfx/font/space.2bpp"
diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm
index aa32fbe94..2f348fbfb 100644
--- a/gfx/pics/animation.asm
+++ b/gfx/pics/animation.asm
@@ -1,6 +1,5 @@
; Pic animation arrangement.
-
AnimateMon_Slow_Normal: ; d0000
hlcoord 12, 0
ld a, [wBattleMode]
@@ -53,23 +52,18 @@ AnimateMon_Unused: ; d003a
ret
; d0042
-
-POKEANIM: MACRO
+pokeanim: MACRO
rept _NARG
-
; Workaround for a bug where macro args can't come after the start of a symbol
if !def(\1_POKEANIM)
\1_POKEANIM equs "PokeAnim_\1_"
endc
-
db (\1_POKEANIM - PokeAnim_SetupCommands) / 2
shift
endr
-
db (PokeAnim_Finish_ - PokeAnim_SetupCommands) / 2
ENDM
-
PokeAnims: ; d0042
dw .Slow
dw .Normal
@@ -81,15 +75,15 @@ PokeAnims: ; d0042
dw .Egg1
dw .Egg2
-.Slow: POKEANIM StereoCry, Setup2, Play
-.Normal: POKEANIM StereoCry, Setup, Play
-.Menu: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
-.Trade: POKEANIM Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play
-.Evolve: POKEANIM Extra, Play, SetWait, Wait, CryNoWait, Setup, Play
-.Hatch: POKEANIM Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
-.Unused: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
-.Egg1: POKEANIM Setup, Play
-.Egg2: POKEANIM Extra, Play
+.Slow: pokeanim StereoCry, Setup2, Play
+.Normal: pokeanim StereoCry, Setup, Play
+.Menu: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
+.Trade: pokeanim Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play
+.Evolve: pokeanim Extra, Play, SetWait, Wait, CryNoWait, Setup, Play
+.Hatch: pokeanim Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
+.Unused: pokeanim CryNoWait, Setup, Play, SetWait, Wait, Extra, Play
+.Egg1: pokeanim Setup, Play
+.Egg2: pokeanim Extra, Play
AnimateFrontpic: ; d008e
diff --git a/gfx/pics/pic_pointers.asm b/gfx/pics/pic_pointers.asm
index 2a6a2699a..58631e09a 100644
--- a/gfx/pics/pic_pointers.asm
+++ b/gfx/pics/pic_pointers.asm
@@ -1,511 +1,511 @@
PicPointers::
; entries correspond to constants/pokemon_constants.asm, two apiece
- add_pic BulbasaurFrontpic
- add_pic BulbasaurBackpic
- add_pic IvysaurFrontpic
- add_pic IvysaurBackpic
- add_pic VenusaurFrontpic
- add_pic VenusaurBackpic
- add_pic CharmanderFrontpic
- add_pic CharmanderBackpic
- add_pic CharmeleonFrontpic
- add_pic CharmeleonBackpic
- add_pic CharizardFrontpic
- add_pic CharizardBackpic
- add_pic SquirtleFrontpic
- add_pic SquirtleBackpic
- add_pic WartortleFrontpic
- add_pic WartortleBackpic
- add_pic BlastoiseFrontpic
- add_pic BlastoiseBackpic
- add_pic CaterpieFrontpic
- add_pic CaterpieBackpic
- add_pic MetapodFrontpic
- add_pic MetapodBackpic
- add_pic ButterfreeFrontpic
- add_pic ButterfreeBackpic
- add_pic WeedleFrontpic
- add_pic WeedleBackpic
- add_pic KakunaFrontpic
- add_pic KakunaBackpic
- add_pic BeedrillFrontpic
- add_pic BeedrillBackpic
- add_pic PidgeyFrontpic
- add_pic PidgeyBackpic
- add_pic PidgeottoFrontpic
- add_pic PidgeottoBackpic
- add_pic PidgeotFrontpic
- add_pic PidgeotBackpic
- add_pic RattataFrontpic
- add_pic RattataBackpic
- add_pic RaticateFrontpic
- add_pic RaticateBackpic
- add_pic SpearowFrontpic
- add_pic SpearowBackpic
- add_pic FearowFrontpic
- add_pic FearowBackpic
- add_pic EkansFrontpic
- add_pic EkansBackpic
- add_pic ArbokFrontpic
- add_pic ArbokBackpic
- add_pic PikachuFrontpic
- add_pic PikachuBackpic
- add_pic RaichuFrontpic
- add_pic RaichuBackpic
- add_pic SandshrewFrontpic
- add_pic SandshrewBackpic
- add_pic SandslashFrontpic
- add_pic SandslashBackpic
- add_pic NidoranFFrontpic
- add_pic NidoranFBackpic
- add_pic NidorinaFrontpic
- add_pic NidorinaBackpic
- add_pic NidoqueenFrontpic
- add_pic NidoqueenBackpic
- add_pic NidoranMFrontpic
- add_pic NidoranMBackpic
- add_pic NidorinoFrontpic
- add_pic NidorinoBackpic
- add_pic NidokingFrontpic
- add_pic NidokingBackpic
- add_pic ClefairyFrontpic
- add_pic ClefairyBackpic
- add_pic ClefableFrontpic
- add_pic ClefableBackpic
- add_pic VulpixFrontpic
- add_pic VulpixBackpic
- add_pic NinetalesFrontpic
- add_pic NinetalesBackpic
- add_pic JigglypuffFrontpic
- add_pic JigglypuffBackpic
- add_pic WigglytuffFrontpic
- add_pic WigglytuffBackpic
- add_pic ZubatFrontpic
- add_pic ZubatBackpic
- add_pic GolbatFrontpic
- add_pic GolbatBackpic
- add_pic OddishFrontpic
- add_pic OddishBackpic
- add_pic GloomFrontpic
- add_pic GloomBackpic
- add_pic VileplumeFrontpic
- add_pic VileplumeBackpic
- add_pic ParasFrontpic
- add_pic ParasBackpic
- add_pic ParasectFrontpic
- add_pic ParasectBackpic
- add_pic VenonatFrontpic
- add_pic VenonatBackpic
- add_pic VenomothFrontpic
- add_pic VenomothBackpic
- add_pic DiglettFrontpic
- add_pic DiglettBackpic
- add_pic DugtrioFrontpic
- add_pic DugtrioBackpic
- add_pic MeowthFrontpic
- add_pic MeowthBackpic
- add_pic PersianFrontpic
- add_pic PersianBackpic
- add_pic PsyduckFrontpic
- add_pic PsyduckBackpic
- add_pic GolduckFrontpic
- add_pic GolduckBackpic
- add_pic MankeyFrontpic
- add_pic MankeyBackpic
- add_pic PrimeapeFrontpic
- add_pic PrimeapeBackpic
- add_pic GrowlitheFrontpic
- add_pic GrowlitheBackpic
- add_pic ArcanineFrontpic
- add_pic ArcanineBackpic
- add_pic PoliwagFrontpic
- add_pic PoliwagBackpic
- add_pic PoliwhirlFrontpic
- add_pic PoliwhirlBackpic
- add_pic PoliwrathFrontpic
- add_pic PoliwrathBackpic
- add_pic AbraFrontpic
- add_pic AbraBackpic
- add_pic KadabraFrontpic
- add_pic KadabraBackpic
- add_pic AlakazamFrontpic
- add_pic AlakazamBackpic
- add_pic MachopFrontpic
- add_pic MachopBackpic
- add_pic MachokeFrontpic
- add_pic MachokeBackpic
- add_pic MachampFrontpic
- add_pic MachampBackpic
- add_pic BellsproutFrontpic
- add_pic BellsproutBackpic
- add_pic WeepinbellFrontpic
- add_pic WeepinbellBackpic
- add_pic VictreebelFrontpic
- add_pic VictreebelBackpic
- add_pic TentacoolFrontpic
- add_pic TentacoolBackpic
- add_pic TentacruelFrontpic
- add_pic TentacruelBackpic
- add_pic GeodudeFrontpic
- add_pic GeodudeBackpic
- add_pic GravelerFrontpic
- add_pic GravelerBackpic
- add_pic GolemFrontpic
- add_pic GolemBackpic
- add_pic PonytaFrontpic
- add_pic PonytaBackpic
- add_pic RapidashFrontpic
- add_pic RapidashBackpic
- add_pic SlowpokeFrontpic
- add_pic SlowpokeBackpic
- add_pic SlowbroFrontpic
- add_pic SlowbroBackpic
- add_pic MagnemiteFrontpic
- add_pic MagnemiteBackpic
- add_pic MagnetonFrontpic
- add_pic MagnetonBackpic
- add_pic FarfetchDFrontpic
- add_pic FarfetchDBackpic
- add_pic DoduoFrontpic
- add_pic DoduoBackpic
- add_pic DodrioFrontpic
- add_pic DodrioBackpic
- add_pic SeelFrontpic
- add_pic SeelBackpic
- add_pic DewgongFrontpic
- add_pic DewgongBackpic
- add_pic GrimerFrontpic
- add_pic GrimerBackpic
- add_pic MukFrontpic
- add_pic MukBackpic
- add_pic ShellderFrontpic
- add_pic ShellderBackpic
- add_pic CloysterFrontpic
- add_pic CloysterBackpic
- add_pic GastlyFrontpic
- add_pic GastlyBackpic
- add_pic HaunterFrontpic
- add_pic HaunterBackpic
- add_pic GengarFrontpic
- add_pic GengarBackpic
- add_pic OnixFrontpic
- add_pic OnixBackpic
- add_pic DrowzeeFrontpic
- add_pic DrowzeeBackpic
- add_pic HypnoFrontpic
- add_pic HypnoBackpic
- add_pic KrabbyFrontpic
- add_pic KrabbyBackpic
- add_pic KinglerFrontpic
- add_pic KinglerBackpic
- add_pic VoltorbFrontpic
- add_pic VoltorbBackpic
- add_pic ElectrodeFrontpic
- add_pic ElectrodeBackpic
- add_pic ExeggcuteFrontpic
- add_pic ExeggcuteBackpic
- add_pic ExeggutorFrontpic
- add_pic ExeggutorBackpic
- add_pic CuboneFrontpic
- add_pic CuboneBackpic
- add_pic MarowakFrontpic
- add_pic MarowakBackpic
- add_pic HitmonleeFrontpic
- add_pic HitmonleeBackpic
- add_pic HitmonchanFrontpic
- add_pic HitmonchanBackpic
- add_pic LickitungFrontpic
- add_pic LickitungBackpic
- add_pic KoffingFrontpic
- add_pic KoffingBackpic
- add_pic WeezingFrontpic
- add_pic WeezingBackpic
- add_pic RhyhornFrontpic
- add_pic RhyhornBackpic
- add_pic RhydonFrontpic
- add_pic RhydonBackpic
- add_pic ChanseyFrontpic
- add_pic ChanseyBackpic
- add_pic TangelaFrontpic
- add_pic TangelaBackpic
- add_pic KangaskhanFrontpic
- add_pic KangaskhanBackpic
- add_pic HorseaFrontpic
- add_pic HorseaBackpic
- add_pic SeadraFrontpic
- add_pic SeadraBackpic
- add_pic GoldeenFrontpic
- add_pic GoldeenBackpic
- add_pic SeakingFrontpic
- add_pic SeakingBackpic
- add_pic StaryuFrontpic
- add_pic StaryuBackpic
- add_pic StarmieFrontpic
- add_pic StarmieBackpic
- add_pic MrMimeFrontpic
- add_pic MrMimeBackpic
- add_pic ScytherFrontpic
- add_pic ScytherBackpic
- add_pic JynxFrontpic
- add_pic JynxBackpic
- add_pic ElectabuzzFrontpic
- add_pic ElectabuzzBackpic
- add_pic MagmarFrontpic
- add_pic MagmarBackpic
- add_pic PinsirFrontpic
- add_pic PinsirBackpic
- add_pic TaurosFrontpic
- add_pic TaurosBackpic
- add_pic MagikarpFrontpic
- add_pic MagikarpBackpic
- add_pic GyaradosFrontpic
- add_pic GyaradosBackpic
- add_pic LaprasFrontpic
- add_pic LaprasBackpic
- add_pic DittoFrontpic
- add_pic DittoBackpic
- add_pic EeveeFrontpic
- add_pic EeveeBackpic
- add_pic VaporeonFrontpic
- add_pic VaporeonBackpic
- add_pic JolteonFrontpic
- add_pic JolteonBackpic
- add_pic FlareonFrontpic
- add_pic FlareonBackpic
- add_pic PorygonFrontpic
- add_pic PorygonBackpic
- add_pic OmanyteFrontpic
- add_pic OmanyteBackpic
- add_pic OmastarFrontpic
- add_pic OmastarBackpic
- add_pic KabutoFrontpic
- add_pic KabutoBackpic
- add_pic KabutopsFrontpic
- add_pic KabutopsBackpic
- add_pic AerodactylFrontpic
- add_pic AerodactylBackpic
- add_pic SnorlaxFrontpic
- add_pic SnorlaxBackpic
- add_pic ArticunoFrontpic
- add_pic ArticunoBackpic
- add_pic ZapdosFrontpic
- add_pic ZapdosBackpic
- add_pic MoltresFrontpic
- add_pic MoltresBackpic
- add_pic DratiniFrontpic
- add_pic DratiniBackpic
- add_pic DragonairFrontpic
- add_pic DragonairBackpic
- add_pic DragoniteFrontpic
- add_pic DragoniteBackpic
- add_pic MewtwoFrontpic
- add_pic MewtwoBackpic
- add_pic MewFrontpic
- add_pic MewBackpic
- add_pic ChikoritaFrontpic
- add_pic ChikoritaBackpic
- add_pic BayleefFrontpic
- add_pic BayleefBackpic
- add_pic MeganiumFrontpic
- add_pic MeganiumBackpic
- add_pic CyndaquilFrontpic
- add_pic CyndaquilBackpic
- add_pic QuilavaFrontpic
- add_pic QuilavaBackpic
- add_pic TyphlosionFrontpic
- add_pic TyphlosionBackpic
- add_pic TotodileFrontpic
- add_pic TotodileBackpic
- add_pic CroconawFrontpic
- add_pic CroconawBackpic
- add_pic FeraligatrFrontpic
- add_pic FeraligatrBackpic
- add_pic SentretFrontpic
- add_pic SentretBackpic
- add_pic FurretFrontpic
- add_pic FurretBackpic
- add_pic HoothootFrontpic
- add_pic HoothootBackpic
- add_pic NoctowlFrontpic
- add_pic NoctowlBackpic
- add_pic LedybaFrontpic
- add_pic LedybaBackpic
- add_pic LedianFrontpic
- add_pic LedianBackpic
- add_pic SpinarakFrontpic
- add_pic SpinarakBackpic
- add_pic AriadosFrontpic
- add_pic AriadosBackpic
- add_pic CrobatFrontpic
- add_pic CrobatBackpic
- add_pic ChinchouFrontpic
- add_pic ChinchouBackpic
- add_pic LanturnFrontpic
- add_pic LanturnBackpic
- add_pic PichuFrontpic
- add_pic PichuBackpic
- add_pic CleffaFrontpic
- add_pic CleffaBackpic
- add_pic IgglybuffFrontpic
- add_pic IgglybuffBackpic
- add_pic TogepiFrontpic
- add_pic TogepiBackpic
- add_pic TogeticFrontpic
- add_pic TogeticBackpic
- add_pic NatuFrontpic
- add_pic NatuBackpic
- add_pic XatuFrontpic
- add_pic XatuBackpic
- add_pic MareepFrontpic
- add_pic MareepBackpic
- add_pic FlaaffyFrontpic
- add_pic FlaaffyBackpic
- add_pic AmpharosFrontpic
- add_pic AmpharosBackpic
- add_pic BellossomFrontpic
- add_pic BellossomBackpic
- add_pic MarillFrontpic
- add_pic MarillBackpic
- add_pic AzumarillFrontpic
- add_pic AzumarillBackpic
- add_pic SudowoodoFrontpic
- add_pic SudowoodoBackpic
- add_pic PolitoedFrontpic
- add_pic PolitoedBackpic
- add_pic HoppipFrontpic
- add_pic HoppipBackpic
- add_pic SkiploomFrontpic
- add_pic SkiploomBackpic
- add_pic JumpluffFrontpic
- add_pic JumpluffBackpic
- add_pic AipomFrontpic
- add_pic AipomBackpic
- add_pic SunkernFrontpic
- add_pic SunkernBackpic
- add_pic SunfloraFrontpic
- add_pic SunfloraBackpic
- add_pic YanmaFrontpic
- add_pic YanmaBackpic
- add_pic WooperFrontpic
- add_pic WooperBackpic
- add_pic QuagsireFrontpic
- add_pic QuagsireBackpic
- add_pic EspeonFrontpic
- add_pic EspeonBackpic
- add_pic UmbreonFrontpic
- add_pic UmbreonBackpic
- add_pic MurkrowFrontpic
- add_pic MurkrowBackpic
- add_pic SlowkingFrontpic
- add_pic SlowkingBackpic
- add_pic MisdreavusFrontpic
- add_pic MisdreavusBackpic
+ dba_pic BulbasaurFrontpic
+ dba_pic BulbasaurBackpic
+ dba_pic IvysaurFrontpic
+ dba_pic IvysaurBackpic
+ dba_pic VenusaurFrontpic
+ dba_pic VenusaurBackpic
+ dba_pic CharmanderFrontpic
+ dba_pic CharmanderBackpic
+ dba_pic CharmeleonFrontpic
+ dba_pic CharmeleonBackpic
+ dba_pic CharizardFrontpic
+ dba_pic CharizardBackpic
+ dba_pic SquirtleFrontpic
+ dba_pic SquirtleBackpic
+ dba_pic WartortleFrontpic
+ dba_pic WartortleBackpic
+ dba_pic BlastoiseFrontpic
+ dba_pic BlastoiseBackpic
+ dba_pic CaterpieFrontpic
+ dba_pic CaterpieBackpic
+ dba_pic MetapodFrontpic
+ dba_pic MetapodBackpic
+ dba_pic ButterfreeFrontpic
+ dba_pic ButterfreeBackpic
+ dba_pic WeedleFrontpic
+ dba_pic WeedleBackpic
+ dba_pic KakunaFrontpic
+ dba_pic KakunaBackpic
+ dba_pic BeedrillFrontpic
+ dba_pic BeedrillBackpic
+ dba_pic PidgeyFrontpic
+ dba_pic PidgeyBackpic
+ dba_pic PidgeottoFrontpic
+ dba_pic PidgeottoBackpic
+ dba_pic PidgeotFrontpic
+ dba_pic PidgeotBackpic
+ dba_pic RattataFrontpic
+ dba_pic RattataBackpic
+ dba_pic RaticateFrontpic
+ dba_pic RaticateBackpic
+ dba_pic SpearowFrontpic
+ dba_pic SpearowBackpic
+ dba_pic FearowFrontpic
+ dba_pic FearowBackpic
+ dba_pic EkansFrontpic
+ dba_pic EkansBackpic
+ dba_pic ArbokFrontpic
+ dba_pic ArbokBackpic
+ dba_pic PikachuFrontpic
+ dba_pic PikachuBackpic
+ dba_pic RaichuFrontpic
+ dba_pic RaichuBackpic
+ dba_pic SandshrewFrontpic
+ dba_pic SandshrewBackpic
+ dba_pic SandslashFrontpic
+ dba_pic SandslashBackpic
+ dba_pic NidoranFFrontpic
+ dba_pic NidoranFBackpic
+ dba_pic NidorinaFrontpic
+ dba_pic NidorinaBackpic
+ dba_pic NidoqueenFrontpic
+ dba_pic NidoqueenBackpic
+ dba_pic NidoranMFrontpic
+ dba_pic NidoranMBackpic
+ dba_pic NidorinoFrontpic
+ dba_pic NidorinoBackpic
+ dba_pic NidokingFrontpic
+ dba_pic NidokingBackpic
+ dba_pic ClefairyFrontpic
+ dba_pic ClefairyBackpic
+ dba_pic ClefableFrontpic
+ dba_pic ClefableBackpic
+ dba_pic VulpixFrontpic
+ dba_pic VulpixBackpic
+ dba_pic NinetalesFrontpic
+ dba_pic NinetalesBackpic
+ dba_pic JigglypuffFrontpic
+ dba_pic JigglypuffBackpic
+ dba_pic WigglytuffFrontpic
+ dba_pic WigglytuffBackpic
+ dba_pic ZubatFrontpic
+ dba_pic ZubatBackpic
+ dba_pic GolbatFrontpic
+ dba_pic GolbatBackpic
+ dba_pic OddishFrontpic
+ dba_pic OddishBackpic
+ dba_pic GloomFrontpic
+ dba_pic GloomBackpic
+ dba_pic VileplumeFrontpic
+ dba_pic VileplumeBackpic
+ dba_pic ParasFrontpic
+ dba_pic ParasBackpic
+ dba_pic ParasectFrontpic
+ dba_pic ParasectBackpic
+ dba_pic VenonatFrontpic
+ dba_pic VenonatBackpic
+ dba_pic VenomothFrontpic
+ dba_pic VenomothBackpic
+ dba_pic DiglettFrontpic
+ dba_pic DiglettBackpic
+ dba_pic DugtrioFrontpic
+ dba_pic DugtrioBackpic
+ dba_pic MeowthFrontpic
+ dba_pic MeowthBackpic
+ dba_pic PersianFrontpic
+ dba_pic PersianBackpic
+ dba_pic PsyduckFrontpic
+ dba_pic PsyduckBackpic
+ dba_pic GolduckFrontpic
+ dba_pic GolduckBackpic
+ dba_pic MankeyFrontpic
+ dba_pic MankeyBackpic
+ dba_pic PrimeapeFrontpic
+ dba_pic PrimeapeBackpic
+ dba_pic GrowlitheFrontpic
+ dba_pic GrowlitheBackpic
+ dba_pic ArcanineFrontpic
+ dba_pic ArcanineBackpic
+ dba_pic PoliwagFrontpic
+ dba_pic PoliwagBackpic
+ dba_pic PoliwhirlFrontpic
+ dba_pic PoliwhirlBackpic
+ dba_pic PoliwrathFrontpic
+ dba_pic PoliwrathBackpic
+ dba_pic AbraFrontpic
+ dba_pic AbraBackpic
+ dba_pic KadabraFrontpic
+ dba_pic KadabraBackpic
+ dba_pic AlakazamFrontpic
+ dba_pic AlakazamBackpic
+ dba_pic MachopFrontpic
+ dba_pic MachopBackpic
+ dba_pic MachokeFrontpic
+ dba_pic MachokeBackpic
+ dba_pic MachampFrontpic
+ dba_pic MachampBackpic
+ dba_pic BellsproutFrontpic
+ dba_pic BellsproutBackpic
+ dba_pic WeepinbellFrontpic
+ dba_pic WeepinbellBackpic
+ dba_pic VictreebelFrontpic
+ dba_pic VictreebelBackpic
+ dba_pic TentacoolFrontpic
+ dba_pic TentacoolBackpic
+ dba_pic TentacruelFrontpic
+ dba_pic TentacruelBackpic
+ dba_pic GeodudeFrontpic
+ dba_pic GeodudeBackpic
+ dba_pic GravelerFrontpic
+ dba_pic GravelerBackpic
+ dba_pic GolemFrontpic
+ dba_pic GolemBackpic
+ dba_pic PonytaFrontpic
+ dba_pic PonytaBackpic
+ dba_pic RapidashFrontpic
+ dba_pic RapidashBackpic
+ dba_pic SlowpokeFrontpic
+ dba_pic SlowpokeBackpic
+ dba_pic SlowbroFrontpic
+ dba_pic SlowbroBackpic
+ dba_pic MagnemiteFrontpic
+ dba_pic MagnemiteBackpic
+ dba_pic MagnetonFrontpic
+ dba_pic MagnetonBackpic
+ dba_pic FarfetchDFrontpic
+ dba_pic FarfetchDBackpic
+ dba_pic DoduoFrontpic
+ dba_pic DoduoBackpic
+ dba_pic DodrioFrontpic
+ dba_pic DodrioBackpic
+ dba_pic SeelFrontpic
+ dba_pic SeelBackpic
+ dba_pic DewgongFrontpic
+ dba_pic DewgongBackpic
+ dba_pic GrimerFrontpic
+ dba_pic GrimerBackpic
+ dba_pic MukFrontpic
+ dba_pic MukBackpic
+ dba_pic ShellderFrontpic
+ dba_pic ShellderBackpic
+ dba_pic CloysterFrontpic
+ dba_pic CloysterBackpic
+ dba_pic GastlyFrontpic
+ dba_pic GastlyBackpic
+ dba_pic HaunterFrontpic
+ dba_pic HaunterBackpic
+ dba_pic GengarFrontpic
+ dba_pic GengarBackpic
+ dba_pic OnixFrontpic
+ dba_pic OnixBackpic
+ dba_pic DrowzeeFrontpic
+ dba_pic DrowzeeBackpic
+ dba_pic HypnoFrontpic
+ dba_pic HypnoBackpic
+ dba_pic KrabbyFrontpic
+ dba_pic KrabbyBackpic
+ dba_pic KinglerFrontpic
+ dba_pic KinglerBackpic
+ dba_pic VoltorbFrontpic
+ dba_pic VoltorbBackpic
+ dba_pic ElectrodeFrontpic
+ dba_pic ElectrodeBackpic
+ dba_pic ExeggcuteFrontpic
+ dba_pic ExeggcuteBackpic
+ dba_pic ExeggutorFrontpic
+ dba_pic ExeggutorBackpic
+ dba_pic CuboneFrontpic
+ dba_pic CuboneBackpic
+ dba_pic MarowakFrontpic
+ dba_pic MarowakBackpic
+ dba_pic HitmonleeFrontpic
+ dba_pic HitmonleeBackpic
+ dba_pic HitmonchanFrontpic
+ dba_pic HitmonchanBackpic
+ dba_pic LickitungFrontpic
+ dba_pic LickitungBackpic
+ dba_pic KoffingFrontpic
+ dba_pic KoffingBackpic
+ dba_pic WeezingFrontpic
+ dba_pic WeezingBackpic
+ dba_pic RhyhornFrontpic
+ dba_pic RhyhornBackpic
+ dba_pic RhydonFrontpic
+ dba_pic RhydonBackpic
+ dba_pic ChanseyFrontpic
+ dba_pic ChanseyBackpic
+ dba_pic TangelaFrontpic
+ dba_pic TangelaBackpic
+ dba_pic KangaskhanFrontpic
+ dba_pic KangaskhanBackpic
+ dba_pic HorseaFrontpic
+ dba_pic HorseaBackpic
+ dba_pic SeadraFrontpic
+ dba_pic SeadraBackpic
+ dba_pic GoldeenFrontpic
+ dba_pic GoldeenBackpic
+ dba_pic SeakingFrontpic
+ dba_pic SeakingBackpic
+ dba_pic StaryuFrontpic
+ dba_pic StaryuBackpic
+ dba_pic StarmieFrontpic
+ dba_pic StarmieBackpic
+ dba_pic MrMimeFrontpic
+ dba_pic MrMimeBackpic
+ dba_pic ScytherFrontpic
+ dba_pic ScytherBackpic
+ dba_pic JynxFrontpic
+ dba_pic JynxBackpic
+ dba_pic ElectabuzzFrontpic
+ dba_pic ElectabuzzBackpic
+ dba_pic MagmarFrontpic
+ dba_pic MagmarBackpic
+ dba_pic PinsirFrontpic
+ dba_pic PinsirBackpic
+ dba_pic TaurosFrontpic
+ dba_pic TaurosBackpic
+ dba_pic MagikarpFrontpic
+ dba_pic MagikarpBackpic
+ dba_pic GyaradosFrontpic
+ dba_pic GyaradosBackpic
+ dba_pic LaprasFrontpic
+ dba_pic LaprasBackpic
+ dba_pic DittoFrontpic
+ dba_pic DittoBackpic
+ dba_pic EeveeFrontpic
+ dba_pic EeveeBackpic
+ dba_pic VaporeonFrontpic
+ dba_pic VaporeonBackpic
+ dba_pic JolteonFrontpic
+ dba_pic JolteonBackpic
+ dba_pic FlareonFrontpic
+ dba_pic FlareonBackpic
+ dba_pic PorygonFrontpic
+ dba_pic PorygonBackpic
+ dba_pic OmanyteFrontpic
+ dba_pic OmanyteBackpic
+ dba_pic OmastarFrontpic
+ dba_pic OmastarBackpic
+ dba_pic KabutoFrontpic
+ dba_pic KabutoBackpic
+ dba_pic KabutopsFrontpic
+ dba_pic KabutopsBackpic
+ dba_pic AerodactylFrontpic
+ dba_pic AerodactylBackpic
+ dba_pic SnorlaxFrontpic
+ dba_pic SnorlaxBackpic
+ dba_pic ArticunoFrontpic
+ dba_pic ArticunoBackpic
+ dba_pic ZapdosFrontpic
+ dba_pic ZapdosBackpic
+ dba_pic MoltresFrontpic
+ dba_pic MoltresBackpic
+ dba_pic DratiniFrontpic
+ dba_pic DratiniBackpic
+ dba_pic DragonairFrontpic
+ dba_pic DragonairBackpic
+ dba_pic DragoniteFrontpic
+ dba_pic DragoniteBackpic
+ dba_pic MewtwoFrontpic
+ dba_pic MewtwoBackpic
+ dba_pic MewFrontpic
+ dba_pic MewBackpic
+ dba_pic ChikoritaFrontpic
+ dba_pic ChikoritaBackpic
+ dba_pic BayleefFrontpic
+ dba_pic BayleefBackpic
+ dba_pic MeganiumFrontpic
+ dba_pic MeganiumBackpic
+ dba_pic CyndaquilFrontpic
+ dba_pic CyndaquilBackpic
+ dba_pic QuilavaFrontpic
+ dba_pic QuilavaBackpic
+ dba_pic TyphlosionFrontpic
+ dba_pic TyphlosionBackpic
+ dba_pic TotodileFrontpic
+ dba_pic TotodileBackpic
+ dba_pic CroconawFrontpic
+ dba_pic CroconawBackpic
+ dba_pic FeraligatrFrontpic
+ dba_pic FeraligatrBackpic
+ dba_pic SentretFrontpic
+ dba_pic SentretBackpic
+ dba_pic FurretFrontpic
+ dba_pic FurretBackpic
+ dba_pic HoothootFrontpic
+ dba_pic HoothootBackpic
+ dba_pic NoctowlFrontpic
+ dba_pic NoctowlBackpic
+ dba_pic LedybaFrontpic
+ dba_pic LedybaBackpic
+ dba_pic LedianFrontpic
+ dba_pic LedianBackpic
+ dba_pic SpinarakFrontpic
+ dba_pic SpinarakBackpic
+ dba_pic AriadosFrontpic
+ dba_pic AriadosBackpic
+ dba_pic CrobatFrontpic
+ dba_pic CrobatBackpic
+ dba_pic ChinchouFrontpic
+ dba_pic ChinchouBackpic
+ dba_pic LanturnFrontpic
+ dba_pic LanturnBackpic
+ dba_pic PichuFrontpic
+ dba_pic PichuBackpic
+ dba_pic CleffaFrontpic
+ dba_pic CleffaBackpic
+ dba_pic IgglybuffFrontpic
+ dba_pic IgglybuffBackpic
+ dba_pic TogepiFrontpic
+ dba_pic TogepiBackpic
+ dba_pic TogeticFrontpic
+ dba_pic TogeticBackpic
+ dba_pic NatuFrontpic
+ dba_pic NatuBackpic
+ dba_pic XatuFrontpic
+ dba_pic XatuBackpic
+ dba_pic MareepFrontpic
+ dba_pic MareepBackpic
+ dba_pic FlaaffyFrontpic
+ dba_pic FlaaffyBackpic
+ dba_pic AmpharosFrontpic
+ dba_pic AmpharosBackpic
+ dba_pic BellossomFrontpic
+ dba_pic BellossomBackpic
+ dba_pic MarillFrontpic
+ dba_pic MarillBackpic
+ dba_pic AzumarillFrontpic
+ dba_pic AzumarillBackpic
+ dba_pic SudowoodoFrontpic
+ dba_pic SudowoodoBackpic
+ dba_pic PolitoedFrontpic
+ dba_pic PolitoedBackpic
+ dba_pic HoppipFrontpic
+ dba_pic HoppipBackpic
+ dba_pic SkiploomFrontpic
+ dba_pic SkiploomBackpic
+ dba_pic JumpluffFrontpic
+ dba_pic JumpluffBackpic
+ dba_pic AipomFrontpic
+ dba_pic AipomBackpic
+ dba_pic SunkernFrontpic
+ dba_pic SunkernBackpic
+ dba_pic SunfloraFrontpic
+ dba_pic SunfloraBackpic
+ dba_pic YanmaFrontpic
+ dba_pic YanmaBackpic
+ dba_pic WooperFrontpic
+ dba_pic WooperBackpic
+ dba_pic QuagsireFrontpic
+ dba_pic QuagsireBackpic
+ dba_pic EspeonFrontpic
+ dba_pic EspeonBackpic
+ dba_pic UmbreonFrontpic
+ dba_pic UmbreonBackpic
+ dba_pic MurkrowFrontpic
+ dba_pic MurkrowBackpic
+ dba_pic SlowkingFrontpic
+ dba_pic SlowkingBackpic
+ dba_pic MisdreavusFrontpic
+ dba_pic MisdreavusBackpic
; Unown pics have their own table. See UnownPicPointers
dbw -1, -1
dbw -1, -1
- add_pic WobbuffetFrontpic
- add_pic WobbuffetBackpic
- add_pic GirafarigFrontpic
- add_pic GirafarigBackpic
- add_pic PinecoFrontpic
- add_pic PinecoBackpic
- add_pic ForretressFrontpic
- add_pic ForretressBackpic
- add_pic DunsparceFrontpic
- add_pic DunsparceBackpic
- add_pic GligarFrontpic
- add_pic GligarBackpic
- add_pic SteelixFrontpic
- add_pic SteelixBackpic
- add_pic SnubbullFrontpic
- add_pic SnubbullBackpic
- add_pic GranbullFrontpic
- add_pic GranbullBackpic
- add_pic QwilfishFrontpic
- add_pic QwilfishBackpic
- add_pic ScizorFrontpic
- add_pic ScizorBackpic
- add_pic ShuckleFrontpic
- add_pic ShuckleBackpic
- add_pic HeracrossFrontpic
- add_pic HeracrossBackpic
- add_pic SneaselFrontpic
- add_pic SneaselBackpic
- add_pic TeddiursaFrontpic
- add_pic TeddiursaBackpic
- add_pic UrsaringFrontpic
- add_pic UrsaringBackpic
- add_pic SlugmaFrontpic
- add_pic SlugmaBackpic
- add_pic MagcargoFrontpic
- add_pic MagcargoBackpic
- add_pic SwinubFrontpic
- add_pic SwinubBackpic
- add_pic PiloswineFrontpic
- add_pic PiloswineBackpic
- add_pic CorsolaFrontpic
- add_pic CorsolaBackpic
- add_pic RemoraidFrontpic
- add_pic RemoraidBackpic
- add_pic OctilleryFrontpic
- add_pic OctilleryBackpic
- add_pic DelibirdFrontpic
- add_pic DelibirdBackpic
- add_pic MantineFrontpic
- add_pic MantineBackpic
- add_pic SkarmoryFrontpic
- add_pic SkarmoryBackpic
- add_pic HoundourFrontpic
- add_pic HoundourBackpic
- add_pic HoundoomFrontpic
- add_pic HoundoomBackpic
- add_pic KingdraFrontpic
- add_pic KingdraBackpic
- add_pic PhanpyFrontpic
- add_pic PhanpyBackpic
- add_pic DonphanFrontpic
- add_pic DonphanBackpic
- add_pic Porygon2Frontpic
- add_pic Porygon2Backpic
- add_pic StantlerFrontpic
- add_pic StantlerBackpic
- add_pic SmeargleFrontpic
- add_pic SmeargleBackpic
- add_pic TyrogueFrontpic
- add_pic TyrogueBackpic
- add_pic HitmontopFrontpic
- add_pic HitmontopBackpic
- add_pic SmoochumFrontpic
- add_pic SmoochumBackpic
- add_pic ElekidFrontpic
- add_pic ElekidBackpic
- add_pic MagbyFrontpic
- add_pic MagbyBackpic
- add_pic MiltankFrontpic
- add_pic MiltankBackpic
- add_pic BlisseyFrontpic
- add_pic BlisseyBackpic
- add_pic RaikouFrontpic
- add_pic RaikouBackpic
- add_pic EnteiFrontpic
- add_pic EnteiBackpic
- add_pic SuicuneFrontpic
- add_pic SuicuneBackpic
- add_pic LarvitarFrontpic
- add_pic LarvitarBackpic
- add_pic PupitarFrontpic
- add_pic PupitarBackpic
- add_pic TyranitarFrontpic
- add_pic TyranitarBackpic
- add_pic LugiaFrontpic
- add_pic LugiaBackpic
- add_pic HoOhFrontpic
- add_pic HoOhBackpic
- add_pic CelebiFrontpic
- add_pic CelebiBackpic
+ dba_pic WobbuffetFrontpic
+ dba_pic WobbuffetBackpic
+ dba_pic GirafarigFrontpic
+ dba_pic GirafarigBackpic
+ dba_pic PinecoFrontpic
+ dba_pic PinecoBackpic
+ dba_pic ForretressFrontpic
+ dba_pic ForretressBackpic
+ dba_pic DunsparceFrontpic
+ dba_pic DunsparceBackpic
+ dba_pic GligarFrontpic
+ dba_pic GligarBackpic
+ dba_pic SteelixFrontpic
+ dba_pic SteelixBackpic
+ dba_pic SnubbullFrontpic
+ dba_pic SnubbullBackpic
+ dba_pic GranbullFrontpic
+ dba_pic GranbullBackpic
+ dba_pic QwilfishFrontpic
+ dba_pic QwilfishBackpic
+ dba_pic ScizorFrontpic
+ dba_pic ScizorBackpic
+ dba_pic ShuckleFrontpic
+ dba_pic ShuckleBackpic
+ dba_pic HeracrossFrontpic
+ dba_pic HeracrossBackpic
+ dba_pic SneaselFrontpic
+ dba_pic SneaselBackpic
+ dba_pic TeddiursaFrontpic
+ dba_pic TeddiursaBackpic
+ dba_pic UrsaringFrontpic
+ dba_pic UrsaringBackpic
+ dba_pic SlugmaFrontpic
+ dba_pic SlugmaBackpic
+ dba_pic MagcargoFrontpic
+ dba_pic MagcargoBackpic
+ dba_pic SwinubFrontpic
+ dba_pic SwinubBackpic
+ dba_pic PiloswineFrontpic
+ dba_pic PiloswineBackpic
+ dba_pic CorsolaFrontpic
+ dba_pic CorsolaBackpic
+ dba_pic RemoraidFrontpic
+ dba_pic RemoraidBackpic
+ dba_pic OctilleryFrontpic
+ dba_pic OctilleryBackpic
+ dba_pic DelibirdFrontpic
+ dba_pic DelibirdBackpic
+ dba_pic MantineFrontpic
+ dba_pic MantineBackpic
+ dba_pic SkarmoryFrontpic
+ dba_pic SkarmoryBackpic
+ dba_pic HoundourFrontpic
+ dba_pic HoundourBackpic
+ dba_pic HoundoomFrontpic
+ dba_pic HoundoomBackpic
+ dba_pic KingdraFrontpic
+ dba_pic KingdraBackpic
+ dba_pic PhanpyFrontpic
+ dba_pic PhanpyBackpic
+ dba_pic DonphanFrontpic
+ dba_pic DonphanBackpic
+ dba_pic Porygon2Frontpic
+ dba_pic Porygon2Backpic
+ dba_pic StantlerFrontpic
+ dba_pic StantlerBackpic
+ dba_pic SmeargleFrontpic
+ dba_pic SmeargleBackpic
+ dba_pic TyrogueFrontpic
+ dba_pic TyrogueBackpic
+ dba_pic HitmontopFrontpic
+ dba_pic HitmontopBackpic
+ dba_pic SmoochumFrontpic
+ dba_pic SmoochumBackpic
+ dba_pic ElekidFrontpic
+ dba_pic ElekidBackpic
+ dba_pic MagbyFrontpic
+ dba_pic MagbyBackpic
+ dba_pic MiltankFrontpic
+ dba_pic MiltankBackpic
+ dba_pic BlisseyFrontpic
+ dba_pic BlisseyBackpic
+ dba_pic RaikouFrontpic
+ dba_pic RaikouBackpic
+ dba_pic EnteiFrontpic
+ dba_pic EnteiBackpic
+ dba_pic SuicuneFrontpic
+ dba_pic SuicuneBackpic
+ dba_pic LarvitarFrontpic
+ dba_pic LarvitarBackpic
+ dba_pic PupitarFrontpic
+ dba_pic PupitarBackpic
+ dba_pic TyranitarFrontpic
+ dba_pic TyranitarBackpic
+ dba_pic LugiaFrontpic
+ dba_pic LugiaBackpic
+ dba_pic HoOhFrontpic
+ dba_pic HoOhBackpic
+ dba_pic CelebiFrontpic
+ dba_pic CelebiBackpic
dbw -1, -1 ; unused
dbw -1, -1 ; unused
- add_pic EggPic
+ dba_pic EggPic
dbw -1, -1 ; unused
diff --git a/gfx/pics/unown_pic_pointers.asm b/gfx/pics/unown_pic_pointers.asm
index c5072c903..1ae0da6b6 100644
--- a/gfx/pics/unown_pic_pointers.asm
+++ b/gfx/pics/unown_pic_pointers.asm
@@ -1,54 +1,54 @@
UnownPicPointers::
; entries correspond to Unown letters, two apiece
- add_pic UnownAFrontpic
- add_pic UnownABackpic
- add_pic UnownBFrontpic
- add_pic UnownBBackpic
- add_pic UnownCFrontpic
- add_pic UnownCBackpic
- add_pic UnownDFrontpic
- add_pic UnownDBackpic
- add_pic UnownEFrontpic
- add_pic UnownEBackpic
- add_pic UnownFFrontpic
- add_pic UnownFBackpic
- add_pic UnownGFrontpic
- add_pic UnownGBackpic
- add_pic UnownHFrontpic
- add_pic UnownHBackpic
- add_pic UnownIFrontpic
- add_pic UnownIBackpic
- add_pic UnownJFrontpic
- add_pic UnownJBackpic
- add_pic UnownKFrontpic
- add_pic UnownKBackpic
- add_pic UnownLFrontpic
- add_pic UnownLBackpic
- add_pic UnownMFrontpic
- add_pic UnownMBackpic
- add_pic UnownNFrontpic
- add_pic UnownNBackpic
- add_pic UnownOFrontpic
- add_pic UnownOBackpic
- add_pic UnownPFrontpic
- add_pic UnownPBackpic
- add_pic UnownQFrontpic
- add_pic UnownQBackpic
- add_pic UnownRFrontpic
- add_pic UnownRBackpic
- add_pic UnownSFrontpic
- add_pic UnownSBackpic
- add_pic UnownTFrontpic
- add_pic UnownTBackpic
- add_pic UnownUFrontpic
- add_pic UnownUBackpic
- add_pic UnownVFrontpic
- add_pic UnownVBackpic
- add_pic UnownWFrontpic
- add_pic UnownWBackpic
- add_pic UnownXFrontpic
- add_pic UnownXBackpic
- add_pic UnownYFrontpic
- add_pic UnownYBackpic
- add_pic UnownZFrontpic
- add_pic UnownZBackpic
+ dba_pic UnownAFrontpic
+ dba_pic UnownABackpic
+ dba_pic UnownBFrontpic
+ dba_pic UnownBBackpic
+ dba_pic UnownCFrontpic
+ dba_pic UnownCBackpic
+ dba_pic UnownDFrontpic
+ dba_pic UnownDBackpic
+ dba_pic UnownEFrontpic
+ dba_pic UnownEBackpic
+ dba_pic UnownFFrontpic
+ dba_pic UnownFBackpic
+ dba_pic UnownGFrontpic
+ dba_pic UnownGBackpic
+ dba_pic UnownHFrontpic
+ dba_pic UnownHBackpic
+ dba_pic UnownIFrontpic
+ dba_pic UnownIBackpic
+ dba_pic UnownJFrontpic
+ dba_pic UnownJBackpic
+ dba_pic UnownKFrontpic
+ dba_pic UnownKBackpic
+ dba_pic UnownLFrontpic
+ dba_pic UnownLBackpic
+ dba_pic UnownMFrontpic
+ dba_pic UnownMBackpic
+ dba_pic UnownNFrontpic
+ dba_pic UnownNBackpic
+ dba_pic UnownOFrontpic
+ dba_pic UnownOBackpic
+ dba_pic UnownPFrontpic
+ dba_pic UnownPBackpic
+ dba_pic UnownQFrontpic
+ dba_pic UnownQBackpic
+ dba_pic UnownRFrontpic
+ dba_pic UnownRBackpic
+ dba_pic UnownSFrontpic
+ dba_pic UnownSBackpic
+ dba_pic UnownTFrontpic
+ dba_pic UnownTBackpic
+ dba_pic UnownUFrontpic
+ dba_pic UnownUBackpic
+ dba_pic UnownVFrontpic
+ dba_pic UnownVBackpic
+ dba_pic UnownWFrontpic
+ dba_pic UnownWBackpic
+ dba_pic UnownXFrontpic
+ dba_pic UnownXBackpic
+ dba_pic UnownYFrontpic
+ dba_pic UnownYBackpic
+ dba_pic UnownZFrontpic
+ dba_pic UnownZBackpic
diff --git a/gfx/unknown/bold_a.png b/gfx/printer/bold_a.png
index 56252c423..56252c423 100644
--- a/gfx/unknown/bold_a.png
+++ b/gfx/printer/bold_a.png
Binary files differ
diff --git a/gfx/unknown/bold_b.png b/gfx/printer/bold_b.png
index 8ce07a03c..8ce07a03c 100644
--- a/gfx/unknown/bold_b.png
+++ b/gfx/printer/bold_b.png
Binary files differ
diff --git a/gfx/mobile/hp.png b/gfx/printer/hp.png
index 908141634..908141634 100644
--- a/gfx/mobile/hp.png
+++ b/gfx/printer/hp.png
Binary files differ
diff --git a/gfx/mobile/lv.png b/gfx/printer/lv.png
index 5176fc585..5176fc585 100644
--- a/gfx/mobile/lv.png
+++ b/gfx/printer/lv.png
Binary files differ
diff --git a/gfx/special/celebi/leaf.png b/gfx/special/celebi/leaf.png
deleted file mode 100644
index b10e0cf8c..000000000
--- a/gfx/special/celebi/leaf.png
+++ /dev/null
Binary files differ
diff --git a/gfx/sprites.asm b/gfx/sprites.asm
index f7740d6a6..318f7506e 100644
--- a/gfx/sprites.asm
+++ b/gfx/sprites.asm
@@ -1,108 +1,108 @@
SECTION "Sprites 1", ROMX
-ChrisSpriteGFX: INCBIN "gfx/sprites/chris.2bpp" ; c0000
-ChrisBikeSpriteGFX: INCBIN "gfx/sprites/chris_bike.2bpp" ; c0180
-GameboyKidSpriteGFX: INCBIN "gfx/sprites/gameboy_kid.2bpp" ; c0300
-SilverSpriteGFX: INCBIN "gfx/sprites/silver.2bpp" ; c03c0
-OakSpriteGFX: INCBIN "gfx/sprites/oak.2bpp" ; c0540
-RedSpriteGFX: INCBIN "gfx/sprites/red.2bpp" ; c06c0
-BlueSpriteGFX: INCBIN "gfx/sprites/blue.2bpp" ; c0840
-BillSpriteGFX: INCBIN "gfx/sprites/bill.2bpp" ; c09c0
-ElderSpriteGFX: INCBIN "gfx/sprites/elder.2bpp" ; c0b40
-JanineSpriteGFX: INCBIN "gfx/sprites/janine.2bpp" ; c0cc0
-KurtSpriteGFX: INCBIN "gfx/sprites/kurt.2bpp" ; c0e40
-MomSpriteGFX: INCBIN "gfx/sprites/mom.2bpp" ; c0fc0
-BlaineSpriteGFX: INCBIN "gfx/sprites/blaine.2bpp" ; c1140
-RedsMomSpriteGFX: INCBIN "gfx/sprites/reds_mom.2bpp" ; c12c0
-DaisySpriteGFX: INCBIN "gfx/sprites/daisy.2bpp" ; c1440
-ElmSpriteGFX: INCBIN "gfx/sprites/elm.2bpp" ; c15c0
-WillSpriteGFX: INCBIN "gfx/sprites/will.2bpp" ; c1740
-FalknerSpriteGFX: INCBIN "gfx/sprites/falkner.2bpp" ; c1800
-WhitneySpriteGFX: INCBIN "gfx/sprites/whitney.2bpp" ; c1980
-BugsySpriteGFX: INCBIN "gfx/sprites/bugsy.2bpp" ; c1b00
-MortySpriteGFX: INCBIN "gfx/sprites/morty.2bpp" ; c1c80
-ChuckSpriteGFX: INCBIN "gfx/sprites/chuck.2bpp" ; c1e00
-JasmineSpriteGFX: INCBIN "gfx/sprites/jasmine.2bpp" ; c1f80
-PryceSpriteGFX: INCBIN "gfx/sprites/pryce.2bpp" ; c2100
-ClairSpriteGFX: INCBIN "gfx/sprites/clair.2bpp" ; c2280
-BrockSpriteGFX: INCBIN "gfx/sprites/brock.2bpp" ; c2400
-KarenSpriteGFX: INCBIN "gfx/sprites/karen.2bpp" ; c2580
-BrunoSpriteGFX: INCBIN "gfx/sprites/bruno.2bpp" ; c2640
-MistySpriteGFX: INCBIN "gfx/sprites/misty.2bpp" ; c27c0
-LanceSpriteGFX: INCBIN "gfx/sprites/lance.2bpp" ; c2940
-SurgeSpriteGFX: INCBIN "gfx/sprites/surge.2bpp" ; c2ac0
-ErikaSpriteGFX: INCBIN "gfx/sprites/erika.2bpp" ; c2c40
-KogaSpriteGFX: INCBIN "gfx/sprites/koga.2bpp" ; c2dc0
-SabrinaSpriteGFX: INCBIN "gfx/sprites/sabrina.2bpp" ; c2f40
-CooltrainerMSpriteGFX: INCBIN "gfx/sprites/cooltrainer_m.2bpp" ; c30c0
-CooltrainerFSpriteGFX: INCBIN "gfx/sprites/cooltrainer_f.2bpp" ; c3240
-BugCatcherSpriteGFX: INCBIN "gfx/sprites/bug_catcher.2bpp" ; c33c0
-TwinSpriteGFX: INCBIN "gfx/sprites/twin.2bpp" ; c3540
-YoungsterSpriteGFX: INCBIN "gfx/sprites/youngster.2bpp" ; c36c0
-LassSpriteGFX: INCBIN "gfx/sprites/lass.2bpp" ; c3840
-TeacherSpriteGFX: INCBIN "gfx/sprites/teacher.2bpp" ; c39c0
-BuenaSpriteGFX: INCBIN "gfx/sprites/buena.2bpp" ; c3b40
-SuperNerdSpriteGFX: INCBIN "gfx/sprites/super_nerd.2bpp" ; c3cc0
-RockerSpriteGFX: INCBIN "gfx/sprites/rocker.2bpp" ; c3e40
+ChrisSpriteGFX:: INCBIN "gfx/sprites/chris.2bpp" ; c0000
+ChrisBikeSpriteGFX:: INCBIN "gfx/sprites/chris_bike.2bpp" ; c0180
+GameboyKidSpriteGFX:: INCBIN "gfx/sprites/gameboy_kid.2bpp" ; c0300
+SilverSpriteGFX:: INCBIN "gfx/sprites/silver.2bpp" ; c03c0
+OakSpriteGFX:: INCBIN "gfx/sprites/oak.2bpp" ; c0540
+RedSpriteGFX:: INCBIN "gfx/sprites/red.2bpp" ; c06c0
+BlueSpriteGFX:: INCBIN "gfx/sprites/blue.2bpp" ; c0840
+BillSpriteGFX:: INCBIN "gfx/sprites/bill.2bpp" ; c09c0
+ElderSpriteGFX:: INCBIN "gfx/sprites/elder.2bpp" ; c0b40
+JanineSpriteGFX:: INCBIN "gfx/sprites/janine.2bpp" ; c0cc0
+KurtSpriteGFX:: INCBIN "gfx/sprites/kurt.2bpp" ; c0e40
+MomSpriteGFX:: INCBIN "gfx/sprites/mom.2bpp" ; c0fc0
+BlaineSpriteGFX:: INCBIN "gfx/sprites/blaine.2bpp" ; c1140
+RedsMomSpriteGFX:: INCBIN "gfx/sprites/reds_mom.2bpp" ; c12c0
+DaisySpriteGFX:: INCBIN "gfx/sprites/daisy.2bpp" ; c1440
+ElmSpriteGFX:: INCBIN "gfx/sprites/elm.2bpp" ; c15c0
+WillSpriteGFX:: INCBIN "gfx/sprites/will.2bpp" ; c1740
+FalknerSpriteGFX:: INCBIN "gfx/sprites/falkner.2bpp" ; c1800
+WhitneySpriteGFX:: INCBIN "gfx/sprites/whitney.2bpp" ; c1980
+BugsySpriteGFX:: INCBIN "gfx/sprites/bugsy.2bpp" ; c1b00
+MortySpriteGFX:: INCBIN "gfx/sprites/morty.2bpp" ; c1c80
+ChuckSpriteGFX:: INCBIN "gfx/sprites/chuck.2bpp" ; c1e00
+JasmineSpriteGFX:: INCBIN "gfx/sprites/jasmine.2bpp" ; c1f80
+PryceSpriteGFX:: INCBIN "gfx/sprites/pryce.2bpp" ; c2100
+ClairSpriteGFX:: INCBIN "gfx/sprites/clair.2bpp" ; c2280
+BrockSpriteGFX:: INCBIN "gfx/sprites/brock.2bpp" ; c2400
+KarenSpriteGFX:: INCBIN "gfx/sprites/karen.2bpp" ; c2580
+BrunoSpriteGFX:: INCBIN "gfx/sprites/bruno.2bpp" ; c2640
+MistySpriteGFX:: INCBIN "gfx/sprites/misty.2bpp" ; c27c0
+LanceSpriteGFX:: INCBIN "gfx/sprites/lance.2bpp" ; c2940
+SurgeSpriteGFX:: INCBIN "gfx/sprites/surge.2bpp" ; c2ac0
+ErikaSpriteGFX:: INCBIN "gfx/sprites/erika.2bpp" ; c2c40
+KogaSpriteGFX:: INCBIN "gfx/sprites/koga.2bpp" ; c2dc0
+SabrinaSpriteGFX:: INCBIN "gfx/sprites/sabrina.2bpp" ; c2f40
+CooltrainerMSpriteGFX:: INCBIN "gfx/sprites/cooltrainer_m.2bpp" ; c30c0
+CooltrainerFSpriteGFX:: INCBIN "gfx/sprites/cooltrainer_f.2bpp" ; c3240
+BugCatcherSpriteGFX:: INCBIN "gfx/sprites/bug_catcher.2bpp" ; c33c0
+TwinSpriteGFX:: INCBIN "gfx/sprites/twin.2bpp" ; c3540
+YoungsterSpriteGFX:: INCBIN "gfx/sprites/youngster.2bpp" ; c36c0
+LassSpriteGFX:: INCBIN "gfx/sprites/lass.2bpp" ; c3840
+TeacherSpriteGFX:: INCBIN "gfx/sprites/teacher.2bpp" ; c39c0
+BuenaSpriteGFX:: INCBIN "gfx/sprites/buena.2bpp" ; c3b40
+SuperNerdSpriteGFX:: INCBIN "gfx/sprites/super_nerd.2bpp" ; c3cc0
+RockerSpriteGFX:: INCBIN "gfx/sprites/rocker.2bpp" ; c3e40
SECTION "Sprites 2", ROMX
-PokefanMSpriteGFX: INCBIN "gfx/sprites/pokefan_m.2bpp" ; c4000
-PokefanFSpriteGFX: INCBIN "gfx/sprites/pokefan_f.2bpp" ; c4180
-GrampsSpriteGFX: INCBIN "gfx/sprites/gramps.2bpp" ; c4300
-GrannySpriteGFX: INCBIN "gfx/sprites/granny.2bpp" ; c4480
-SwimmerGuySpriteGFX: INCBIN "gfx/sprites/swimmer_guy.2bpp" ; c4600
-SwimmerGirlSpriteGFX: INCBIN "gfx/sprites/swimmer_girl.2bpp" ; c4780
-BigSnorlaxSpriteGFX: INCBIN "gfx/sprites/big_snorlax.2bpp" ; c4900
-SurfingPikachuSpriteGFX: INCBIN "gfx/sprites/surfing_pikachu.2bpp" ; c4980
-RocketSpriteGFX: INCBIN "gfx/sprites/rocket.2bpp" ; c4b00
-RocketGirlSpriteGFX: INCBIN "gfx/sprites/rocket_girl.2bpp" ; c4c80
-NurseSpriteGFX: INCBIN "gfx/sprites/nurse.2bpp" ; c4e00
-LinkReceptionistSpriteGFX: INCBIN "gfx/sprites/link_receptionist.2bpp" ; c4ec0
-ClerkSpriteGFX: INCBIN "gfx/sprites/clerk.2bpp" ; c5040
-FisherSpriteGFX: INCBIN "gfx/sprites/fisher.2bpp" ; c51c0
-FishingGuruSpriteGFX: INCBIN "gfx/sprites/fishing_guru.2bpp" ; c5340
-ScientistSpriteGFX: INCBIN "gfx/sprites/scientist.2bpp" ; c54c0
-KimonoGirlSpriteGFX: INCBIN "gfx/sprites/kimono_girl.2bpp" ; c5640
-SageSpriteGFX: INCBIN "gfx/sprites/sage.2bpp" ; c57c0
-UnusedGuySpriteGFX: INCBIN "gfx/sprites/unused_guy.2bpp" ; c5940
-GentlemanSpriteGFX: INCBIN "gfx/sprites/gentleman.2bpp" ; c5ac0
-BlackBeltSpriteGFX: INCBIN "gfx/sprites/black_belt.2bpp" ; c5c40
-ReceptionistSpriteGFX: INCBIN "gfx/sprites/receptionist.2bpp" ; c5dc0
-OfficerSpriteGFX: INCBIN "gfx/sprites/officer.2bpp" ; c5f40
-CalSpriteGFX: INCBIN "gfx/sprites/cal.2bpp" ; c60c0
-SlowpokeSpriteGFX: INCBIN "gfx/sprites/slowpoke.2bpp" ; c6240
-CaptainSpriteGFX: INCBIN "gfx/sprites/captain.2bpp" ; c6280
-BigLaprasSpriteGFX: INCBIN "gfx/sprites/big_lapras.2bpp" ; c6400
-GymGuySpriteGFX: INCBIN "gfx/sprites/gym_guy.2bpp" ; c6480
-SailorSpriteGFX: INCBIN "gfx/sprites/sailor.2bpp" ; c6600
-BikerSpriteGFX: INCBIN "gfx/sprites/biker.2bpp" ; c6780
-PharmacistSpriteGFX: INCBIN "gfx/sprites/pharmacist.2bpp" ; c6900
-MonsterSpriteGFX: INCBIN "gfx/sprites/monster.2bpp" ; c6a80
-FairySpriteGFX: INCBIN "gfx/sprites/fairy.2bpp" ; c6c00
-BirdSpriteGFX: INCBIN "gfx/sprites/bird.2bpp" ; c6d80
-DragonSpriteGFX: INCBIN "gfx/sprites/dragon.2bpp" ; c6f00
-BigOnixSpriteGFX: INCBIN "gfx/sprites/big_onix.2bpp" ; c7080
-N64SpriteGFX: INCBIN "gfx/sprites/n64.2bpp" ; c7140
-SudowoodoSpriteGFX: INCBIN "gfx/sprites/sudowoodo.2bpp" ; c7180
-SurfSpriteGFX: INCBIN "gfx/sprites/surf.2bpp" ; c7200
-PokeBallSpriteGFX: INCBIN "gfx/sprites/poke_ball.2bpp" ; c7380
-PokedexSpriteGFX: INCBIN "gfx/sprites/pokedex.2bpp" ; c7500
-PaperSpriteGFX: INCBIN "gfx/sprites/paper.2bpp" ; c7680
-VirtualBoySpriteGFX: INCBIN "gfx/sprites/virtual_boy.2bpp" ; c7800
-OldLinkReceptionistSpriteGFX: INCBIN "gfx/sprites/old_link_receptionist.2bpp" ; c7840
-RockSpriteGFX: INCBIN "gfx/sprites/rock.2bpp" ; c7880
-BoulderSpriteGFX: INCBIN "gfx/sprites/boulder.2bpp" ; c78c0
-SnesSpriteGFX: INCBIN "gfx/sprites/snes.2bpp" ; c7900
-FamicomSpriteGFX: INCBIN "gfx/sprites/famicom.2bpp" ; c7940
-FruitTreeSpriteGFX: INCBIN "gfx/sprites/fruit_tree.2bpp" ; c7980
-GoldTrophySpriteGFX: INCBIN "gfx/sprites/gold_trophy.2bpp" ; c79c0
-SilverTrophySpriteGFX: INCBIN "gfx/sprites/silver_trophy.2bpp" ; c7a00
-KrisSpriteGFX: INCBIN "gfx/sprites/kris.2bpp" ; c7a40
-KrisBikeSpriteGFX: INCBIN "gfx/sprites/kris_bike.2bpp" ; c7bc0
-KurtOutsideSpriteGFX: INCBIN "gfx/sprites/kurt_outside.2bpp" ; c7d40
-SuicuneSpriteGFX: INCBIN "gfx/sprites/suicune.2bpp" ; c7e00
-EnteiSpriteGFX: INCBIN "gfx/sprites/entei.2bpp" ; c7e40
-RaikouSpriteGFX: INCBIN "gfx/sprites/raikou.2bpp" ; c7e80
-StandingYoungsterSpriteGFX: INCBIN "gfx/sprites/standing_youngster.2bpp" ; c7ec0
+PokefanMSpriteGFX:: INCBIN "gfx/sprites/pokefan_m.2bpp" ; c4000
+PokefanFSpriteGFX:: INCBIN "gfx/sprites/pokefan_f.2bpp" ; c4180
+GrampsSpriteGFX:: INCBIN "gfx/sprites/gramps.2bpp" ; c4300
+GrannySpriteGFX:: INCBIN "gfx/sprites/granny.2bpp" ; c4480
+SwimmerGuySpriteGFX:: INCBIN "gfx/sprites/swimmer_guy.2bpp" ; c4600
+SwimmerGirlSpriteGFX:: INCBIN "gfx/sprites/swimmer_girl.2bpp" ; c4780
+BigSnorlaxSpriteGFX:: INCBIN "gfx/sprites/big_snorlax.2bpp" ; c4900
+SurfingPikachuSpriteGFX:: INCBIN "gfx/sprites/surfing_pikachu.2bpp" ; c4980
+RocketSpriteGFX:: INCBIN "gfx/sprites/rocket.2bpp" ; c4b00
+RocketGirlSpriteGFX:: INCBIN "gfx/sprites/rocket_girl.2bpp" ; c4c80
+NurseSpriteGFX:: INCBIN "gfx/sprites/nurse.2bpp" ; c4e00
+LinkReceptionistSpriteGFX:: INCBIN "gfx/sprites/link_receptionist.2bpp" ; c4ec0
+ClerkSpriteGFX:: INCBIN "gfx/sprites/clerk.2bpp" ; c5040
+FisherSpriteGFX:: INCBIN "gfx/sprites/fisher.2bpp" ; c51c0
+FishingGuruSpriteGFX:: INCBIN "gfx/sprites/fishing_guru.2bpp" ; c5340
+ScientistSpriteGFX:: INCBIN "gfx/sprites/scientist.2bpp" ; c54c0
+KimonoGirlSpriteGFX:: INCBIN "gfx/sprites/kimono_girl.2bpp" ; c5640
+SageSpriteGFX:: INCBIN "gfx/sprites/sage.2bpp" ; c57c0
+UnusedGuySpriteGFX:: INCBIN "gfx/sprites/unused_guy.2bpp" ; c5940
+GentlemanSpriteGFX:: INCBIN "gfx/sprites/gentleman.2bpp" ; c5ac0
+BlackBeltSpriteGFX:: INCBIN "gfx/sprites/black_belt.2bpp" ; c5c40
+ReceptionistSpriteGFX:: INCBIN "gfx/sprites/receptionist.2bpp" ; c5dc0
+OfficerSpriteGFX:: INCBIN "gfx/sprites/officer.2bpp" ; c5f40
+CalSpriteGFX:: INCBIN "gfx/sprites/cal.2bpp" ; c60c0
+SlowpokeSpriteGFX:: INCBIN "gfx/sprites/slowpoke.2bpp" ; c6240
+CaptainSpriteGFX:: INCBIN "gfx/sprites/captain.2bpp" ; c6280
+BigLaprasSpriteGFX:: INCBIN "gfx/sprites/big_lapras.2bpp" ; c6400
+GymGuySpriteGFX:: INCBIN "gfx/sprites/gym_guy.2bpp" ; c6480
+SailorSpriteGFX:: INCBIN "gfx/sprites/sailor.2bpp" ; c6600
+BikerSpriteGFX:: INCBIN "gfx/sprites/biker.2bpp" ; c6780
+PharmacistSpriteGFX:: INCBIN "gfx/sprites/pharmacist.2bpp" ; c6900
+MonsterSpriteGFX:: INCBIN "gfx/sprites/monster.2bpp" ; c6a80
+FairySpriteGFX:: INCBIN "gfx/sprites/fairy.2bpp" ; c6c00
+BirdSpriteGFX:: INCBIN "gfx/sprites/bird.2bpp" ; c6d80
+DragonSpriteGFX:: INCBIN "gfx/sprites/dragon.2bpp" ; c6f00
+BigOnixSpriteGFX:: INCBIN "gfx/sprites/big_onix.2bpp" ; c7080
+N64SpriteGFX:: INCBIN "gfx/sprites/n64.2bpp" ; c7140
+SudowoodoSpriteGFX:: INCBIN "gfx/sprites/sudowoodo.2bpp" ; c7180
+SurfSpriteGFX:: INCBIN "gfx/sprites/surf.2bpp" ; c7200
+PokeBallSpriteGFX:: INCBIN "gfx/sprites/poke_ball.2bpp" ; c7380
+PokedexSpriteGFX:: INCBIN "gfx/sprites/pokedex.2bpp" ; c7500
+PaperSpriteGFX:: INCBIN "gfx/sprites/paper.2bpp" ; c7680
+VirtualBoySpriteGFX:: INCBIN "gfx/sprites/virtual_boy.2bpp" ; c7800
+OldLinkReceptionistSpriteGFX:: INCBIN "gfx/sprites/old_link_receptionist.2bpp" ; c7840
+RockSpriteGFX:: INCBIN "gfx/sprites/rock.2bpp" ; c7880
+BoulderSpriteGFX:: INCBIN "gfx/sprites/boulder.2bpp" ; c78c0
+SnesSpriteGFX:: INCBIN "gfx/sprites/snes.2bpp" ; c7900
+FamicomSpriteGFX:: INCBIN "gfx/sprites/famicom.2bpp" ; c7940
+FruitTreeSpriteGFX:: INCBIN "gfx/sprites/fruit_tree.2bpp" ; c7980
+GoldTrophySpriteGFX:: INCBIN "gfx/sprites/gold_trophy.2bpp" ; c79c0
+SilverTrophySpriteGFX:: INCBIN "gfx/sprites/silver_trophy.2bpp" ; c7a00
+KrisSpriteGFX:: INCBIN "gfx/sprites/kris.2bpp" ; c7a40
+KrisBikeSpriteGFX:: INCBIN "gfx/sprites/kris_bike.2bpp" ; c7bc0
+KurtOutsideSpriteGFX:: INCBIN "gfx/sprites/kurt_outside.2bpp" ; c7d40
+SuicuneSpriteGFX:: INCBIN "gfx/sprites/suicune.2bpp" ; c7e00
+EnteiSpriteGFX:: INCBIN "gfx/sprites/entei.2bpp" ; c7e40
+RaikouSpriteGFX:: INCBIN "gfx/sprites/raikou.2bpp" ; c7e80
+StandingYoungsterSpriteGFX:: INCBIN "gfx/sprites/standing_youngster.2bpp" ; c7ec0
diff --git a/gfx/unknown/unused_border.png b/gfx/trade/unused_gen_1_border_tiles.png
index d3ac169fc..d3ac169fc 100644
--- a/gfx/unknown/unused_border.png
+++ b/gfx/trade/unused_gen_1_border_tiles.png
Binary files differ
diff --git a/gfx/trainer_pic_pointers.asm b/gfx/trainer_pic_pointers.asm
index fb1fe0755..201b44200 100644
--- a/gfx/trainer_pic_pointers.asm
+++ b/gfx/trainer_pic_pointers.asm
@@ -1,69 +1,69 @@
TrainerPicPointers::
; entries correspond to trainer classes (see constants/trainer_constants.asm)
- add_pic FalknerPic
- add_pic WhitneyPic
- add_pic BugsyPic
- add_pic MortyPic
- add_pic PrycePic
- add_pic JasminePic
- add_pic ChuckPic
- add_pic ClairPic
- add_pic Rival1Pic
- add_pic PokemonProfPic
- add_pic WillPic
- add_pic CalPic
- add_pic BrunoPic
- add_pic KarenPic
- add_pic KogaPic
- add_pic ChampionPic
- add_pic BrockPic
- add_pic MistyPic
- add_pic LtSurgePic
- add_pic ScientistPic
- add_pic ErikaPic
- add_pic YoungsterPic
- add_pic SchoolboyPic
- add_pic BirdKeeperPic
- add_pic LassPic
- add_pic JaninePic
- add_pic CooltrainermPic
- add_pic CooltrainerfPic
- add_pic BeautyPic
- add_pic PokemaniacPic
- add_pic GruntmPic
- add_pic GentlemanPic
- add_pic SkierPic
- add_pic TeacherPic
- add_pic SabrinaPic
- add_pic BugCatcherPic
- add_pic FisherPic
- add_pic SwimmermPic
- add_pic SwimmerfPic
- add_pic SailorPic
- add_pic SuperNerdPic
- add_pic Rival2Pic
- add_pic GuitaristPic
- add_pic HikerPic
- add_pic BikerPic
- add_pic BlainePic
- add_pic BurglarPic
- add_pic FirebreatherPic
- add_pic JugglerPic
- add_pic BlackbeltTPic
- add_pic ExecutivemPic
- add_pic PsychicTPic
- add_pic PicnickerPic
- add_pic CamperPic
- add_pic ExecutivefPic
- add_pic SagePic
- add_pic MediumPic
- add_pic BoarderPic
- add_pic PokefanmPic
- add_pic KimonoGirlPic
- add_pic TwinsPic
- add_pic PokefanfPic
- add_pic RedPic
- add_pic BluePic
- add_pic OfficerPic
- add_pic GruntfPic
- add_pic MysticalmanPic
+ dba_pic FalknerPic
+ dba_pic WhitneyPic
+ dba_pic BugsyPic
+ dba_pic MortyPic
+ dba_pic PrycePic
+ dba_pic JasminePic
+ dba_pic ChuckPic
+ dba_pic ClairPic
+ dba_pic Rival1Pic
+ dba_pic PokemonProfPic
+ dba_pic WillPic
+ dba_pic CalPic
+ dba_pic BrunoPic
+ dba_pic KarenPic
+ dba_pic KogaPic
+ dba_pic ChampionPic
+ dba_pic BrockPic
+ dba_pic MistyPic
+ dba_pic LtSurgePic
+ dba_pic ScientistPic
+ dba_pic ErikaPic
+ dba_pic YoungsterPic
+ dba_pic SchoolboyPic
+ dba_pic BirdKeeperPic
+ dba_pic LassPic
+ dba_pic JaninePic
+ dba_pic CooltrainermPic
+ dba_pic CooltrainerfPic
+ dba_pic BeautyPic
+ dba_pic PokemaniacPic
+ dba_pic GruntmPic
+ dba_pic GentlemanPic
+ dba_pic SkierPic
+ dba_pic TeacherPic
+ dba_pic SabrinaPic
+ dba_pic BugCatcherPic
+ dba_pic FisherPic
+ dba_pic SwimmermPic
+ dba_pic SwimmerfPic
+ dba_pic SailorPic
+ dba_pic SuperNerdPic
+ dba_pic Rival2Pic
+ dba_pic GuitaristPic
+ dba_pic HikerPic
+ dba_pic BikerPic
+ dba_pic BlainePic
+ dba_pic BurglarPic
+ dba_pic FirebreatherPic
+ dba_pic JugglerPic
+ dba_pic BlackbeltTPic
+ dba_pic ExecutivemPic
+ dba_pic PsychicTPic
+ dba_pic PicnickerPic
+ dba_pic CamperPic
+ dba_pic ExecutivefPic
+ dba_pic SagePic
+ dba_pic MediumPic
+ dba_pic BoarderPic
+ dba_pic PokefanmPic
+ dba_pic KimonoGirlPic
+ dba_pic TwinsPic
+ dba_pic PokefanfPic
+ dba_pic RedPic
+ dba_pic BluePic
+ dba_pic OfficerPic
+ dba_pic GruntfPic
+ dba_pic MysticalmanPic
diff --git a/home.asm b/home.asm
index 670f63f95..dc03faa2c 100644
--- a/home.asm
+++ b/home.asm
@@ -1,17 +1,23 @@
INCLUDE "includes.asm"
+
SECTION "NULL", ROM0
NULL::
+
INCLUDE "rst.asm"
+
+
INCLUDE "interrupts.asm"
+
SECTION "Header", ROM0
Start::
nop
jp _Start
+
SECTION "Home", ROM0
INCLUDE "home/init.asm"
@@ -40,9 +46,9 @@ INCLUDE "home/map.asm"
InexplicablyEmptyFunction:: ; 2d43
; Inexplicably empty.
; Seen in PredefPointers.
- rept 16
+rept 16
nop
- endr
+endr
ret
; 2d54
@@ -765,300 +771,7 @@ GetWeekday:: ; 3376
INCLUDE "home/pokedex_flags.asm"
-NamesPointers:: ; 33ab
- dba PokemonNames
- dba MoveNames
- dbw 0, 0
- dba ItemNames
- dbw 0, PartyMonOT
- dbw 0, OTPartyMonOT
- dba TrainerClassNames
- dbw $4, $4b52 ; within PackMenuGFX
-; 33c3
-
-GetName:: ; 33c3
-; Return name CurSpecies from name list wNamedObjectTypeBuffer in StringBuffer1.
-
- ld a, [hROMBank]
- push af
- push hl
- push bc
- push de
-
- ld a, [wNamedObjectTypeBuffer]
- cp PKMN_NAME
- jr nz, .NotPokeName
-
- ld a, [CurSpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, PKMN_NAME_LENGTH
- add hl, de
- ld e, l
- ld d, h
- jr .done
-
-.NotPokeName:
- ld a, [wNamedObjectTypeBuffer]
- dec a
- ld e, a
- ld d, 0
- ld hl, NamesPointers
- add hl, de
- add hl, de
- add hl, de
- ld a, [hli]
- rst Bankswitch
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- ld a, [CurSpecies]
- dec a
- call GetNthString
-
- ld de, StringBuffer1
- ld bc, ITEM_NAME_LENGTH
- call CopyBytes
-
-.done
- ld a, e
- ld [wUnusedD102], a
- ld a, d
- ld [wUnusedD102 + 1], a
-
- pop de
- pop bc
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3411
-
-GetNthString:: ; 3411
-; Return the address of the
-; ath string starting from hl.
-
- and a
- ret z
-
- push bc
- ld b, a
- ld c, "@"
-.readChar
- ld a, [hli]
- cp c
- jr nz, .readChar
- dec b
- jr nz, .readChar
- pop bc
- ret
-; 3420
-
-GetBasePokemonName:: ; 3420
-; Discards gender (Nidoran).
-
- push hl
- call GetPokemonName
-
- ld hl, StringBuffer1
-.loop
- ld a, [hl]
- cp "@"
- jr z, .quit
- cp "♂"
- jr z, .end
- cp "♀"
- jr z, .end
- inc hl
- jr .loop
-.end
- ld [hl], "@"
-.quit
- pop hl
- ret
-
-; 343b
-
-GetPokemonName:: ; 343b
-; Get Pokemon name wd265.
-
- ld a, [hROMBank]
- push af
- push hl
- ld a, BANK(PokemonNames)
- rst Bankswitch
-
-; Each name is ten characters
- ld a, [wd265]
- dec a
- ld d, 0
- ld e, a
- ld h, 0
- ld l, a
- add hl, hl ; hl = hl * 4
- add hl, hl ; hl = hl * 4
- add hl, de ; hl = (hl*4) + de
- add hl, hl ; hl = (5*hl) + (5*hl)
- ld de, PokemonNames
- add hl, de
-
-; Terminator
- ld de, StringBuffer1
- push de
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld hl, StringBuffer1 + PKMN_NAME_LENGTH - 1
- ld [hl], "@"
- pop de
-
- pop hl
- pop af
- rst Bankswitch
- ret
-; 3468
-
-GetItemName:: ; 3468
-; Get item name wd265.
-
- push hl
- push bc
- ld a, [wd265]
-
- cp TM01
- jr nc, .TM
-
- ld [CurSpecies], a
- ld a, ITEM_NAME
- ld [wNamedObjectTypeBuffer], a
- call GetName
- jr .Copied
-.TM:
- call GetTMHMName
-.Copied:
- ld de, StringBuffer1
- pop bc
- pop hl
- ret
-; 3487
-
-GetTMHMName:: ; 3487
-; Get TM/HM name by item id wd265.
-
- push hl
- push de
- push bc
- ld a, [wd265]
- push af
-
-; TM/HM prefix
- cp HM01
- push af
- jr c, .TM
-
- ld hl, .HMText
- ld bc, .HMTextEnd - .HMText
- jr .asm_34a1
-
-.TM:
- ld hl, .TMText
- ld bc, .TMTextEnd - .TMText
-
-.asm_34a1
- ld de, StringBuffer1
- call CopyBytes
-
-; TM/HM number
- push de
- ld a, [wd265]
- ld c, a
- callab GetTMHMNumber
- pop de
-
-; HM numbers start from 51, not 1
- pop af
- ld a, c
- jr c, .asm_34b9
- sub NUM_TMS
-.asm_34b9
-
-; Divide and mod by 10 to get the top and bottom digits respectively
- ld b, "0"
-.mod10
- sub 10
- jr c, .asm_34c2
- inc b
- jr .mod10
-.asm_34c2
- add 10
-
- push af
- ld a, b
- ld [de], a
- inc de
- pop af
-
- ld b, "0"
- add b
- ld [de], a
-
-; End the string
- inc de
- ld a, "@"
- ld [de], a
-
- pop af
- ld [wd265], a
- pop bc
- pop de
- pop hl
- ret
-
-.TMText:
- db "TM"
-.TMTextEnd:
- db "@"
-
-.HMText:
- db "HM"
-.HMTextEnd:
- db "@"
-; 34df
-
-IsHM:: ; 34df
- cp HM01
- jr c, .NotHM
- scf
- ret
-.NotHM:
- and a
- ret
-; 34e7
-
-IsHMMove:: ; 34e7
- ld hl, HMMoves
- ld de, 1
- jp IsInArray
-
-
-INCLUDE "data/hm_moves.asm"
-
-
-GetMoveName:: ; 34f8
- push hl
-
- ld a, MOVE_NAME
- ld [wNamedObjectTypeBuffer], a
-
- ld a, [wNamedObjectIndexBuffer] ; move id
- ld [CurSpecies], a
-
- call GetName
- ld de, StringBuffer1
-
- pop hl
- ret
-; 350c
+INCLUDE "home/names.asm"
ScrollingMenu:: ; 350c
call CopyMenuData2
@@ -1270,270 +983,7 @@ HandleStoneQueue:: ; 3567
ret
; 3600
-CheckTrainerBattle2:: ; 3600
-
- ld a, [hROMBank]
- push af
-
- call SwitchToMapScriptHeaderBank
- call CheckTrainerBattle
-
- pop bc
- ld a, b
- rst Bankswitch
- ret
-; 360d
-
-CheckTrainerBattle:: ; 360d
-; Check if any trainer on the map sees the player and wants to battle.
-
-; Skip the player object.
- ld a, 1
- ld de, MapObjects + OBJECT_LENGTH
-
-.loop
-
-; Start a battle if the object:
-
- push af
- push de
-
-; Has a sprite
- ld hl, MAPOBJECT_SPRITE
- add hl, de
- ld a, [hl]
- and a
- jr z, .next
-
-; Is a trainer
- ld hl, MAPOBJECT_COLOR
- add hl, de
- ld a, [hl]
- and $f
- cp $2
- jr nz, .next
-
-; Is visible on the map
- ld hl, MAPOBJECT_OBJECT_STRUCT_ID
- add hl, de
- ld a, [hl]
- cp -1
- jr z, .next
-
-; Is facing the player...
- call GetObjectStruct
- call FacingPlayerDistance_bc
- jr nc, .next
-
-; ...within their sight range
- ld hl, MAPOBJECT_RANGE
- add hl, de
- ld a, [hl]
- cp b
- jr c, .next
-
-; And hasn't already been beaten
- push bc
- push de
- ld hl, MAPOBJECT_SCRIPT_POINTER
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- pop de
- pop bc
- and a
- jr z, .startbattle
-
-.next
- pop de
- ld hl, OBJECT_LENGTH
- add hl, de
- ld d, h
- ld e, l
-
- pop af
- inc a
- cp NUM_OBJECTS
- jr nz, .loop
- xor a
- ret
-
-.startbattle
- pop de
- pop af
- ld [hLastTalked], a
- ld a, b
- ld [EngineBuffer2], a
- ld a, c
- ld [EngineBuffer3], a
- jr LoadTrainer_continue
-; 3674
-
-TalkToTrainer:: ; 3674
- ld a, 1
- ld [EngineBuffer2], a
- ld a, -1
- ld [EngineBuffer3], a
-
-LoadTrainer_continue:: ; 367e
- call GetMapScriptHeaderBank
- ld [EngineBuffer1], a
-
- ld a, [hLastTalked]
- call GetMapObject
-
- ld hl, MAPOBJECT_SCRIPT_POINTER
- add hl, bc
- ld a, [EngineBuffer1]
- call GetFarHalfword
- ld de, wTempTrainerHeader
- ld bc, wTempTrainerHeaderEnd - wTempTrainerHeader
- ld a, [EngineBuffer1]
- call FarCopyBytes
- xor a
- ld [wRunningTrainerBattleScript], a
- scf
- ret
-; 36a5
-
-FacingPlayerDistance_bc:: ; 36a5
-
- push de
- call FacingPlayerDistance
- ld b, d
- ld c, e
- pop de
- ret
-; 36ad
-
-FacingPlayerDistance:: ; 36ad
-; Return carry if the sprite at bc is facing the player,
-; and its distance in d.
-
- ld hl, OBJECT_NEXT_MAP_X ; x
- add hl, bc
- ld d, [hl]
-
- ld hl, OBJECT_NEXT_MAP_Y ; y
- add hl, bc
- ld e, [hl]
-
- ld a, [PlayerStandingMapX]
- cp d
- jr z, .CheckY
-
- ld a, [PlayerStandingMapY]
- cp e
- jr z, .CheckX
-
- and a
- ret
-
-.CheckY:
- ld a, [PlayerStandingMapY]
- sub e
- jr z, .NotFacing
- jr nc, .Above
-
-; Below
- cpl
- inc a
- ld d, a
- ld e, OW_UP
- jr .CheckFacing
-
-.Above:
- ld d, a
- ld e, OW_DOWN
- jr .CheckFacing
-
-.CheckX:
- ld a, [PlayerStandingMapX]
- sub d
- jr z, .NotFacing
- jr nc, .Left
-
-; Right
- cpl
- inc a
- ld d, a
- ld e, OW_LEFT
- jr .CheckFacing
-
-.Left:
- ld d, a
- ld e, OW_RIGHT
-
-.CheckFacing:
- call GetSpriteDirection
- cp e
- jr nz, .NotFacing
- scf
- ret
-
-.NotFacing:
- and a
- ret
-; 36f5
-
-CheckTrainerFlag:: ; 36f5
- push bc
- ld hl, OBJECT_MAP_OBJECT_INDEX
- add hl, bc
- ld a, [hl]
- call GetMapObject
- ld hl, MAPOBJECT_SCRIPT_POINTER
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call GetFarHalfword
- ld d, h
- ld e, l
- push de
- ld b, CHECK_FLAG
- call EventFlagAction
- pop de
- ld a, c
- and a
- pop bc
- ret
-; 3718
-
-PrintWinLossText:: ; 3718
- ld a, [BattleType]
- cp BATTLETYPE_CANLOSE
- jr .canlose ; ??????????
-
-; unreferenced
- ld hl, wWinTextPointer
- jr .ok
-
-.canlose
- ld a, [wBattleResult]
- ld hl, wWinTextPointer
- and $f
- jr z, .ok
- ld hl, wLossTextPointer
-
-.ok
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call GetMapScriptHeaderBank
- call FarPrintText
- call WaitBGMap
- call WaitPressAorB_BlinkCursor
- ret
-; 3741
+INCLUDE "home/trainers.asm"
IsAPokemon:: ; 3741
; Return carry if species a is not a Pokemon.
diff --git a/home/hm_moves.asm b/home/hm_moves.asm
new file mode 100644
index 000000000..c4233d094
--- /dev/null
+++ b/home/hm_moves.asm
@@ -0,0 +1,27 @@
+; HM moves can't be forgotten
+
+IsHM:: ; 34df
+ cp HM01
+ jr c, .NotHM
+ scf
+ ret
+.NotHM:
+ and a
+ ret
+; 34e7
+
+IsHMMove:: ; 34e7
+ ld hl, .HMMoves
+ ld de, 1
+ jp IsInArray
+
+.HMMoves: ; 34f0
+ db CUT
+ db FLY
+ db SURF
+ db STRENGTH
+ db FLASH
+ db WATERFALL
+ db WHIRLPOOL
+ db -1 ; end
+; 34f8
diff --git a/home/names.asm b/home/names.asm
new file mode 100644
index 000000000..bd90f7828
--- /dev/null
+++ b/home/names.asm
@@ -0,0 +1,278 @@
+NamesPointers:: ; 33ab
+; entries correspond to GetName constants (see constants/misc_constants.asm)
+ dba PokemonNames
+ dba MoveNames
+ dbw 0, 0
+ dba ItemNames
+ dbw 0, PartyMonOT
+ dbw 0, OTPartyMonOT
+ dba TrainerClassNames
+ dbw $4, $4b52 ; within PackMenuGFX
+; 33c3
+
+GetName:: ; 33c3
+; Return name CurSpecies from name list wNamedObjectTypeBuffer in StringBuffer1.
+
+ ld a, [hROMBank]
+ push af
+ push hl
+ push bc
+ push de
+
+ ld a, [wNamedObjectTypeBuffer]
+ cp PKMN_NAME
+ jr nz, .NotPokeName
+
+ ld a, [CurSpecies]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, PKMN_NAME_LENGTH
+ add hl, de
+ ld e, l
+ ld d, h
+ jr .done
+
+.NotPokeName:
+ ld a, [wNamedObjectTypeBuffer]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, NamesPointers
+ add hl, de
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ rst Bankswitch
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ ld a, [CurSpecies]
+ dec a
+ call GetNthString
+
+ ld de, StringBuffer1
+ ld bc, ITEM_NAME_LENGTH
+ call CopyBytes
+
+.done
+ ld a, e
+ ld [wUnusedD102], a
+ ld a, d
+ ld [wUnusedD102 + 1], a
+
+ pop de
+ pop bc
+ pop hl
+ pop af
+ rst Bankswitch
+ ret
+; 3411
+
+GetNthString:: ; 3411
+; Return the address of the
+; ath string starting from hl.
+
+ and a
+ ret z
+
+ push bc
+ ld b, a
+ ld c, "@"
+.readChar
+ ld a, [hli]
+ cp c
+ jr nz, .readChar
+ dec b
+ jr nz, .readChar
+ pop bc
+ ret
+; 3420
+
+GetBasePokemonName:: ; 3420
+; Discards gender (Nidoran).
+
+ push hl
+ call GetPokemonName
+
+ ld hl, StringBuffer1
+.loop
+ ld a, [hl]
+ cp "@"
+ jr z, .quit
+ cp "♂"
+ jr z, .end
+ cp "♀"
+ jr z, .end
+ inc hl
+ jr .loop
+.end
+ ld [hl], "@"
+.quit
+ pop hl
+ ret
+
+; 343b
+
+GetPokemonName:: ; 343b
+; Get Pokemon name wd265.
+
+ ld a, [hROMBank]
+ push af
+ push hl
+ ld a, BANK(PokemonNames)
+ rst Bankswitch
+
+; Each name is ten characters
+ ld a, [wd265]
+ dec a
+ ld d, 0
+ ld e, a
+ ld h, 0
+ ld l, a
+ add hl, hl ; hl = hl * 4
+ add hl, hl ; hl = hl * 4
+ add hl, de ; hl = (hl*4) + de
+ add hl, hl ; hl = (5*hl) + (5*hl)
+ ld de, PokemonNames
+ add hl, de
+
+; Terminator
+ ld de, StringBuffer1
+ push de
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld hl, StringBuffer1 + PKMN_NAME_LENGTH - 1
+ ld [hl], "@"
+ pop de
+
+ pop hl
+ pop af
+ rst Bankswitch
+ ret
+; 3468
+
+GetItemName:: ; 3468
+; Get item name wd265.
+
+ push hl
+ push bc
+ ld a, [wd265]
+
+ cp TM01
+ jr nc, .TM
+
+ ld [CurSpecies], a
+ ld a, ITEM_NAME
+ ld [wNamedObjectTypeBuffer], a
+ call GetName
+ jr .Copied
+.TM:
+ call GetTMHMName
+.Copied:
+ ld de, StringBuffer1
+ pop bc
+ pop hl
+ ret
+; 3487
+
+GetTMHMName:: ; 3487
+; Get TM/HM name by item id wd265.
+
+ push hl
+ push de
+ push bc
+ ld a, [wd265]
+ push af
+
+; TM/HM prefix
+ cp HM01
+ push af
+ jr c, .TM
+
+ ld hl, .HMText
+ ld bc, .HMTextEnd - .HMText
+ jr .asm_34a1
+
+.TM:
+ ld hl, .TMText
+ ld bc, .TMTextEnd - .TMText
+
+.asm_34a1
+ ld de, StringBuffer1
+ call CopyBytes
+
+; TM/HM number
+ push de
+ ld a, [wd265]
+ ld c, a
+ callab GetTMHMNumber
+ pop de
+
+; HM numbers start from 51, not 1
+ pop af
+ ld a, c
+ jr c, .asm_34b9
+ sub NUM_TMS
+.asm_34b9
+
+; Divide and mod by 10 to get the top and bottom digits respectively
+ ld b, "0"
+.mod10
+ sub 10
+ jr c, .asm_34c2
+ inc b
+ jr .mod10
+.asm_34c2
+ add 10
+
+ push af
+ ld a, b
+ ld [de], a
+ inc de
+ pop af
+
+ ld b, "0"
+ add b
+ ld [de], a
+
+; End the string
+ inc de
+ ld a, "@"
+ ld [de], a
+
+ pop af
+ ld [wd265], a
+ pop bc
+ pop de
+ pop hl
+ ret
+
+.TMText:
+ db "TM"
+.TMTextEnd:
+ db "@"
+
+.HMText:
+ db "HM"
+.HMTextEnd:
+ db "@"
+; 34df
+
+INCLUDE "home/hm_moves.asm"
+
+GetMoveName:: ; 34f8
+ push hl
+
+ ld a, MOVE_NAME
+ ld [wNamedObjectTypeBuffer], a
+
+ ld a, [wNamedObjectIndexBuffer] ; move id
+ ld [CurSpecies], a
+
+ call GetName
+ ld de, StringBuffer1
+
+ pop hl
+ ret
+; 350c
diff --git a/home/text.asm b/home/text.asm
index a70424048..3401eba50 100644
--- a/home/text.asm
+++ b/home/text.asm
@@ -8,9 +8,6 @@ TEXTBOX_INNERX EQU TEXTBOX_X + 1
TEXTBOX_Y EQU SCREEN_HEIGHT - TEXTBOX_HEIGHT
TEXTBOX_INNERY EQU TEXTBOX_Y + 2
-TEXTBOX_PAL EQU 7
-
-
ClearBox:: ; fb6
; Fill a c*b box at hl with blank tiles.
@@ -51,7 +48,7 @@ ClearTileMap:: ; fc8
ClearScreen:: ; fdb
- ld a, TEXTBOX_PAL
+ ld a, PAL_BG_TEXT
hlcoord 0, 0, AttrMap
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call ByteFill
@@ -133,7 +130,7 @@ TextBoxPalette:: ; 1024
inc b
inc c
inc c
- ld a, TEXTBOX_PAL
+ ld a, PAL_BG_TEXT
.col
push bc
push hl
@@ -230,42 +227,42 @@ dict2: macro
._\@:
endm
- dict "<DAY>", Char15
- dict "<LINE>", LineChar
- dict "<NEXT>", NextLineChar
- dict TX_FAR, TextFar
- dict $00, NullChar
- dict $4c, Char4C
- dict $4b, Char4B
- dict "<PARA>", Paragraph
- dict "<MOM>", PrintMomsName
- dict "<PLAYER>", PrintPlayerName
- dict "<RIVAL>", PrintRivalName
- dict $35, Char35
- dict $36, Char36
- dict $37, Char37
- dict "<RED>", PrintRedsName
- dict "<GREEN>", PrintGreensName
- dict "#", PlacePOKe
- dict "<PC>", PCChar
- dict "<ROCKET>", RocketChar
- dict "<TM>", TMChar
- dict "<TRNER>", TrainerChar
- dict $23, PlaceKougeki
- dict "<LNBRK>", Char22
- dict "<CONT>", ContText
- dict "<......>", SixDotsChar
- dict "<DONE>", DoneText
- dict "<PROMPT>", PromptText
- dict "<PKMN>", PlacePKMN
- dict "<POKE>", PlacePOKE
- dict $25, NextChar
- dict2 $1f, " "
- dict "<DEXEND>", PlaceDexEnd
- dict "<TARGET>", PlaceMoveTargetsName
- dict "<USER>", PlaceMoveUsersName
- dict "<ENEMY>", PlaceEnemysName
- dict "<PLAY_G>", PlaceGenderedPlayerName
+ dict "<DAY>", Char15
+ dict "<LINE>", LineChar
+ dict "<NEXT>", NextLineChar
+ dict TX_FAR, TextFar
+ dict $00, NullChar
+ dict $4c, Char4C
+ dict $4b, Char4B
+ dict "<PARA>", Paragraph
+ dict "<MOM>", PrintMomsName
+ dict "<PLAYER>", PrintPlayerName
+ dict "<RIVAL>", PrintRivalName
+ dict $35, Char35
+ dict $36, Char36
+ dict $37, Char37
+ dict "<RED>", PrintRedsName
+ dict "<GREEN>", PrintGreensName
+ dict "#", PlacePOKe
+ dict "<PC>", PCChar
+ dict "<ROCKET>", RocketChar
+ dict "<TM>", TMChar
+ dict "<TRNER>", TrainerChar
+ dict "<KOUGEKI>", PlaceKougeki
+ dict "<LNBRK>", Char22
+ dict "<CONT>", ContText
+ dict "<......>", SixDotsChar
+ dict "<DONE>", DoneText
+ dict "<PROMPT>", PromptText
+ dict "<PKMN>", PlacePKMN
+ dict "<POKE>", PlacePOKE
+ dict "%", NextChar
+ dict2 "¯", " "
+ dict "<DEXEND>", PlaceDexEnd
+ dict "<TARGET>", PlaceMoveTargetsName
+ dict "<USER>", PlaceMoveUsersName
+ dict "<ENEMY>", PlaceEnemysName
+ dict "<PLAY_G>", PlaceGenderedPlayerName
cp "゚"
jr z, .place ; should be .diacritic
diff --git a/home/time.asm b/home/time.asm
index 338168752..abdd34fe2 100644
--- a/home/time.asm
+++ b/home/time.asm
@@ -49,19 +49,16 @@ GetClock:: ; 5b7
ld [hl], RTC_S
ld a, [de]
maskbits 60
- and x
ld [hRTCSeconds], a
ld [hl], RTC_M
ld a, [de]
maskbits 60
- and x
ld [hRTCMinutes], a
ld [hl], RTC_H
ld a, [de]
maskbits 24
- and x
ld [hRTCHours], a
ld [hl], RTC_DL
diff --git a/home/trainers.asm b/home/trainers.asm
new file mode 100644
index 000000000..857a95629
--- /dev/null
+++ b/home/trainers.asm
@@ -0,0 +1,263 @@
+CheckTrainerBattle2:: ; 3600
+ ld a, [hROMBank]
+ push af
+
+ call SwitchToMapScriptHeaderBank
+ call CheckTrainerBattle
+
+ pop bc
+ ld a, b
+ rst Bankswitch
+ ret
+; 360d
+
+CheckTrainerBattle:: ; 360d
+; Check if any trainer on the map sees the player and wants to battle.
+
+; Skip the player object.
+ ld a, 1
+ ld de, MapObjects + OBJECT_LENGTH
+
+.loop
+
+; Start a battle if the object:
+
+ push af
+ push de
+
+; Has a sprite
+ ld hl, MAPOBJECT_SPRITE
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .next
+
+; Is a trainer
+ ld hl, MAPOBJECT_COLOR
+ add hl, de
+ ld a, [hl]
+ and $f
+ cp $2
+ jr nz, .next
+
+; Is visible on the map
+ ld hl, MAPOBJECT_OBJECT_STRUCT_ID
+ add hl, de
+ ld a, [hl]
+ cp -1
+ jr z, .next
+
+; Is facing the player...
+ call GetObjectStruct
+ call FacingPlayerDistance_bc
+ jr nc, .next
+
+; ...within their sight range
+ ld hl, MAPOBJECT_RANGE
+ add hl, de
+ ld a, [hl]
+ cp b
+ jr c, .next
+
+; And hasn't already been beaten
+ push bc
+ push de
+ ld hl, MAPOBJECT_SCRIPT_POINTER
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ld a, c
+ pop de
+ pop bc
+ and a
+ jr z, .startbattle
+
+.next
+ pop de
+ ld hl, OBJECT_LENGTH
+ add hl, de
+ ld d, h
+ ld e, l
+
+ pop af
+ inc a
+ cp NUM_OBJECTS
+ jr nz, .loop
+ xor a
+ ret
+
+.startbattle
+ pop de
+ pop af
+ ld [hLastTalked], a
+ ld a, b
+ ld [EngineBuffer2], a
+ ld a, c
+ ld [EngineBuffer3], a
+ jr LoadTrainer_continue
+; 3674
+
+TalkToTrainer:: ; 3674
+ ld a, 1
+ ld [EngineBuffer2], a
+ ld a, -1
+ ld [EngineBuffer3], a
+
+LoadTrainer_continue:: ; 367e
+ call GetMapScriptHeaderBank
+ ld [EngineBuffer1], a
+
+ ld a, [hLastTalked]
+ call GetMapObject
+
+ ld hl, MAPOBJECT_SCRIPT_POINTER
+ add hl, bc
+ ld a, [EngineBuffer1]
+ call GetFarHalfword
+ ld de, wTempTrainerHeader
+ ld bc, wTempTrainerHeaderEnd - wTempTrainerHeader
+ ld a, [EngineBuffer1]
+ call FarCopyBytes
+ xor a
+ ld [wRunningTrainerBattleScript], a
+ scf
+ ret
+; 36a5
+
+FacingPlayerDistance_bc:: ; 36a5
+
+ push de
+ call FacingPlayerDistance
+ ld b, d
+ ld c, e
+ pop de
+ ret
+; 36ad
+
+FacingPlayerDistance:: ; 36ad
+; Return carry if the sprite at bc is facing the player,
+; and its distance in d.
+
+ ld hl, OBJECT_NEXT_MAP_X ; x
+ add hl, bc
+ ld d, [hl]
+
+ ld hl, OBJECT_NEXT_MAP_Y ; y
+ add hl, bc
+ ld e, [hl]
+
+ ld a, [PlayerStandingMapX]
+ cp d
+ jr z, .CheckY
+
+ ld a, [PlayerStandingMapY]
+ cp e
+ jr z, .CheckX
+
+ and a
+ ret
+
+.CheckY:
+ ld a, [PlayerStandingMapY]
+ sub e
+ jr z, .NotFacing
+ jr nc, .Above
+
+; Below
+ cpl
+ inc a
+ ld d, a
+ ld e, OW_UP
+ jr .CheckFacing
+
+.Above:
+ ld d, a
+ ld e, OW_DOWN
+ jr .CheckFacing
+
+.CheckX:
+ ld a, [PlayerStandingMapX]
+ sub d
+ jr z, .NotFacing
+ jr nc, .Left
+
+; Right
+ cpl
+ inc a
+ ld d, a
+ ld e, OW_LEFT
+ jr .CheckFacing
+
+.Left:
+ ld d, a
+ ld e, OW_RIGHT
+
+.CheckFacing:
+ call GetSpriteDirection
+ cp e
+ jr nz, .NotFacing
+ scf
+ ret
+
+.NotFacing:
+ and a
+ ret
+; 36f5
+
+CheckTrainerFlag:: ; 36f5
+ push bc
+ ld hl, OBJECT_MAP_OBJECT_INDEX
+ add hl, bc
+ ld a, [hl]
+ call GetMapObject
+ ld hl, MAPOBJECT_SCRIPT_POINTER
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapScriptHeaderBank
+ call GetFarHalfword
+ ld d, h
+ ld e, l
+ push de
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ pop de
+ ld a, c
+ and a
+ pop bc
+ ret
+; 3718
+
+PrintWinLossText:: ; 3718
+ ld a, [BattleType]
+ cp BATTLETYPE_CANLOSE
+ jr .canlose ; ??????????
+
+; unreferenced
+ ld hl, wWinTextPointer
+ jr .ok
+
+.canlose
+ ld a, [wBattleResult]
+ ld hl, wWinTextPointer
+ and $f
+ jr z, .ok
+ ld hl, wLossTextPointer
+
+.ok
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call GetMapScriptHeaderBank
+ call FarPrintText
+ call WaitBGMap
+ call WaitPressAorB_BlinkCursor
+ ret
+; 3741
diff --git a/items/item_effects.asm b/items/item_effects.asm
deleted file mode 100644
index 562bf873c..000000000
--- a/items/item_effects.asm
+++ /dev/null
@@ -1,3313 +0,0 @@
-_DoItemEffect:: ; e722
- ld a, [CurItem]
- ld [wd265], a
- call GetItemName
- call CopyName1
- ld a, 1
- ld [wItemEffectSucceeded], a
- ld a, [CurItem]
- dec a
- ld hl, ItemEffects
- rst JumpTable
- ret
-; e73c
-
-
-ItemEffects: ; e73c
- dw MasterBall
- dw UltraBall
- dw Brightpowder
- dw GreatBall
- dw PokeBall
- dw TownMap
- dw Bicycle
- dw MoonStone
- dw Antidote
- dw BurnHeal
- dw IceHeal
- dw Awakening
- dw ParlyzHeal
- dw FullRestore
- dw MaxPotion
- dw HyperPotion
- dw SuperPotion
- dw Potion
- dw EscapeRope
- dw Repel
- dw MaxElixer
- dw FireStone
- dw Thunderstone
- dw WaterStone
- dw Item19
- dw HPUp
- dw Protein
- dw Iron
- dw Carbos
- dw LuckyPunch
- dw Calcium
- dw RareCandy
- dw XAccuracy
- dw LeafStone
- dw MetalPowder
- dw Nugget
- dw PokeDoll
- dw FullHeal
- dw Revive
- dw MaxRevive
- dw GuardSpec
- dw SuperRepel
- dw MaxRepel
- dw DireHit
- dw Item2D
- dw FreshWater
- dw SodaPop
- dw Lemonade
- dw XAttack
- dw Item32
- dw XDefend
- dw XSpeed
- dw XSpecial
- dw CoinCase
- dw Itemfinder
- dw PokeFlute
- dw ExpShare
- dw OldRod
- dw GoodRod
- dw SilverLeaf
- dw SuperRod
- dw PPUp
- dw Ether
- dw MaxEther
- dw Elixer
- dw RedScale
- dw Secretpotion
- dw SSTicket
- dw MysteryEgg
- dw ClearBell
- dw SilverWing
- dw MoomooMilk
- dw QuickClaw
- dw Psncureberry
- dw GoldLeaf
- dw SoftSand
- dw SharpBeak
- dw Przcureberry
- dw BurntBerry
- dw IceBerry
- dw PoisonBarb
- dw KingsRock
- dw BitterBerry
- dw MintBerry
- dw RedApricorn
- dw Tinymushroom
- dw BigMushroom
- dw Silverpowder
- dw BluApricorn
- dw Item5A
- dw AmuletCoin
- dw YlwApricorn
- dw GrnApricorn
- dw CleanseTag
- dw MysticWater
- dw Twistedspoon
- dw WhtApricorn
- dw Blackbelt
- dw BlkApricorn
- dw Item64
- dw PnkApricorn
- dw Blackglasses
- dw Slowpoketail
- dw PinkBow
- dw Stick
- dw SmokeBall
- dw Nevermeltice
- dw Magnet
- dw Miracleberry
- dw Pearl
- dw BigPearl
- dw Everstone
- dw SpellTag
- dw Ragecandybar
- dw GsBall
- dw BlueCard
- dw MiracleSeed
- dw ThickClub
- dw FocusBand
- dw Item78
- dw Energypowder
- dw EnergyRoot
- dw HealPowder
- dw RevivalHerb
- dw HardStone
- dw LuckyEgg
- dw CardKey
- dw MachinePart
- dw EggTicket
- dw LostItem
- dw Stardust
- dw StarPiece
- dw BasementKey
- dw Pass
- dw Item87
- dw Item88
- dw Item89
- dw Charcoal
- dw BerryJuice
- dw ScopeLens
- dw Item8D
- dw Item8E
- dw MetalCoat
- dw DragonFang
- dw Item91
- dw Leftovers
- dw Item93
- dw Item94
- dw Item95
- dw Mysteryberry
- dw DragonScale
- dw BerserkGene
- dw Item99
- dw Item9A
- dw Item9B
- dw SacredAsh
- dw HeavyBall
- dw FlowerMail
- dw LevelBall
- dw LureBall
- dw FastBall
- dw ItemA2
- dw LightBall
- dw FriendBall
- dw MoonBall
- dw LoveBall
- dw NormalBox
- dw GorgeousBox
- dw SunStone
- dw PolkadotBow
- dw ItemAB
- dw UpGrade
- dw Berry
- dw GoldBerry
- dw Squirtbottle
- dw ItemB0
- dw ParkBall
- dw RainbowWing
- dw ItemB3
-; e8a2
-
-
-MasterBall:
-UltraBall:
-GreatBall:
-PokeBall:
-HeavyBall:
-LevelBall:
-LureBall:
-FastBall:
-FriendBall:
-MoonBall:
-LoveBall:
-ParkBall: ; e8a2
- ld a, [wBattleMode]
- dec a
- jp nz, UseBallInTrainerBattle
-
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr nz, .room_in_party
-
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld a, [sBoxCount]
- cp MONS_PER_BOX
- call CloseSRAM
- jp z, Ball_BoxIsFullMessage
-
-.room_in_party
- xor a
- ld [wWildMon], a
- ld a, [CurItem]
- cp PARK_BALL
- call nz, ReturnToBattle_UseBall
-
- ld hl, Options
- res NO_TEXT_SCROLL, [hl]
- ld hl, UsedItemText
- call PrintText
-
- ld a, [EnemyMonCatchRate]
- ld b, a
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jp z, .catch_without_fail
- ld a, [CurItem]
- cp MASTER_BALL
- jp z, .catch_without_fail
- ld a, [CurItem]
- ld c, a
- ld hl, BallMultiplierFunctionTable
-
-.get_multiplier_loop
- ld a, [hli]
- cp $ff
- jr z, .skip_or_return_from_ball_fn
- cp c
- jr z, .call_ball_function
- inc hl
- inc hl
- jr .get_multiplier_loop
-
-.call_ball_function
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .skip_or_return_from_ball_fn
- push de
- jp hl
-
-.skip_or_return_from_ball_fn
- ld a, [CurItem]
- cp LEVEL_BALL
- ld a, b
- jp z, .skip_hp_calc
-
- ld a, b
- ld [hMultiplicand + 2], a
-
- ld hl, EnemyMonHP
- ld b, [hl]
- inc hl
- ld c, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld e, [hl]
- sla c
- rl b
-
- ld h, d
- ld l, e
- add hl, de
- add hl, de
- ld d, h
- ld e, l
- ld a, d
- and a
- jr z, .okay_1
-
- srl d
- rr e
- srl d
- rr e
- srl b
- rr c
- srl b
- rr c
-
- ld a, c
- and a
- jr nz, .okay_1
- ld c, $1
-.okay_1
- ld b, e
-
- push bc
- ld a, b
- sub c
- ld [hMultiplier], a
- xor a
- ld [hDividend + 0], a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- call Multiply
- pop bc
-
- ld a, b
- ld [hDivisor], a
- ld b, $4
- call Divide
-
- ld a, [hQuotient + 2]
- and a
- jr nz, .statuscheck
- ld a, 1
-.statuscheck
-; This routine is buggy. It was intended that SLP and FRZ provide a higher
-; catch rate than BRN/PSN/PAR, which in turn provide a higher catch rate than
-; no status effect at all. But instead, it makes BRN/PSN/PAR provide no
-; benefit.
-; Uncomment the line below to fix this.
- ld b, a
- ld a, [EnemyMonStatus]
- and 1 << FRZ | SLP
- ld c, 10
- jr nz, .addstatus
- ; ld a, [EnemyMonStatus]
- and a
- ld c, 5
- jr nz, .addstatus
- ld c, 0
-.addstatus
- ld a, b
- add c
- jr nc, .max_1
- ld a, $ff
-.max_1
-
- ld d, a
- push de
-
- ; BUG: callba overwrites a,
- ; and GetItemHeldEffect takes b anyway.
-
- ; This is probably the reason
- ; the HELD_CATCH_CHANCE effect
- ; is never used.
-
- ; Uncomment the line below to fix.
-
- ld a, [BattleMonItem]
-; ld b, a
- callba GetItemHeldEffect
- ld a, b
- cp HELD_CATCH_CHANCE
-
- pop de
- ld a, d
-
- jr nz, .skip_hp_calc
- add c
- jr nc, .skip_hp_calc
- ld a, $ff
-.skip_hp_calc
-
- ld b, a
- ld [Buffer1], a
- call Random
-
- cp b
- ld a, 0
- jr z, .catch_without_fail
- jr nc, .fail_to_catch
-
-.catch_without_fail
- ld a, [EnemyMonSpecies]
-
-.fail_to_catch
- ld [wWildMon], a
- ld c, 20
- call DelayFrames
-
- ld a, [CurItem]
- cp POKE_BALL + 1 ; Assumes Master/Ultra/Great come before
- jr c, .not_kurt_ball
- ld a, POKE_BALL
-.not_kurt_ball
- ld [wBattleAnimParam], a
-
- ld de, ANIM_THROW_POKE_BALL
- ld a, e
- ld [FXAnimID], a
- ld a, d
- ld [FXAnimID + 1], a
- xor a
- ld [hBattleTurn], a
- ld [Buffer2], a
- ld [wNumHits], a
- predef PlayBattleAnim
-
- ld a, [wWildMon]
- and a
- jr nz, .caught
- ld a, [Buffer2]
- cp $1
- ld hl, Text_NoShake
- jp z, .shake_and_break_free
- cp $2
- ld hl, Text_OneShake
- jp z, .shake_and_break_free
- cp $3
- ld hl, Text_TwoShakes
- jp z, .shake_and_break_free
- cp $4
- ld hl, Text_ThreeShakes
- jp z, .shake_and_break_free
-.caught
-
- ld hl, EnemyMonStatus
- ld a, [hli]
- push af
- inc hl
- ld a, [hli]
- push af
- ld a, [hl]
- push af
- push hl
- ld hl, EnemyMonItem
- ld a, [hl]
- push af
- push hl
- ld hl, EnemySubStatus5
- ld a, [hl]
- push af
- set SUBSTATUS_TRANSFORMED, [hl]
- bit SUBSTATUS_TRANSFORMED, a
- jr nz, .ditto
- jr .not_ditto
-
-.ditto
- ld a, DITTO
- ld [TempEnemyMonSpecies], a
- jr .load_data
-
-.not_ditto
- set SUBSTATUS_TRANSFORMED, [hl]
- ld hl, wEnemyBackupDVs
- ld a, [EnemyMonDVs]
- ld [hli], a
- ld a, [EnemyMonDVs + 1]
- ld [hl], a
-
-.load_data
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld a, [EnemyMonLevel]
- ld [CurPartyLevel], a
- callba LoadEnemyMon
-
- pop af
- ld [EnemySubStatus5], a
-
- pop hl
- pop af
- ld [hl], a
- pop hl
- pop af
- ld [hld], a
- pop af
- ld [hld], a
- dec hl
- pop af
- ld [hl], a
-
- ld hl, EnemySubStatus5
- bit SUBSTATUS_TRANSFORMED, [hl]
- jr nz, .Transformed
- ld hl, wWildMonMoves
- ld de, EnemyMonMoves
- ld bc, NUM_MOVES
- call CopyBytes
-
- ld hl, wWildMonPP
- ld de, EnemyMonPP
- ld bc, NUM_MOVES
- call CopyBytes
-.Transformed:
-
- ld a, [EnemyMonSpecies]
- ld [wWildMon], a
- ld [CurPartySpecies], a
- ld [wd265], a
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jp z, .FinishTutorial
-
- callba TrainerRankings_WildMonsCaught
-
- ld hl, Text_GotchaMonWasCaught
- call PrintText
-
- call ClearSprites
-
- ld a, [wd265]
- dec a
- call CheckCaughtMon
-
- ld a, c
- push af
- ld a, [wd265]
- dec a
- call SetSeenAndCaughtMon
- pop af
- and a
- jr nz, .skip_pokedex
-
- call CheckReceivedDex
- jr z, .skip_pokedex
-
- ld hl, Text_AddedToPokedex
- call PrintText
-
- call ClearSprites
-
- ld a, [EnemyMonSpecies]
- ld [wd265], a
- predef NewPokedexEntry
-
-.skip_pokedex
- ld a, [BattleType]
- cp BATTLETYPE_CONTEST
- jp z, .catch_bug_contest_mon
- cp BATTLETYPE_CELEBI
- jr nz, .not_celebi
- ld hl, wBattleResult
- set 6, [hl]
-.not_celebi
-
- ld a, [PartyCount]
- cp PARTY_LENGTH
- jr z, .SendToPC
-
- xor a ; PARTYMON
- ld [MonType], a
- call ClearSprites
-
- predef TryAddMonToParty
-
- callba SetCaughtData
-
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipPartyMonFriendBall
-
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Happiness
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
-
- ld a, FRIEND_BALL_HAPPINESS
- ld [hl], a
-.SkipPartyMonFriendBall:
-
- ld hl, Text_AskNicknameNewlyCaughtMon
- call PrintText
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
-
- call YesNoBox
- jp c, .return_from_capture
-
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
-
- ld d, h
- ld e, l
- push de
- xor a ; PARTYMON
- ld [MonType], a
- ld b, 0
- callba NamingScreen
-
- call RotateThreePalettesRight
-
- call LoadStandardFont
-
- pop hl
- ld de, StringBuffer1
- call InitName
-
- jp .return_from_capture
-
-.SendToPC:
- call ClearSprites
-
- predef SentPkmnIntoBox
-
- callba SetBoxMonCaughtData
-
- ld a, BANK(sBoxCount)
- call GetSRAMBank
-
- ld a, [sBoxCount]
- cp MONS_PER_BOX
- jr nz, .BoxNotFullYet
- ld hl, wBattleResult
- set 7, [hl]
-.BoxNotFullYet:
- ld a, [CurItem]
- cp FRIEND_BALL
- jr nz, .SkipBoxMonFriendBall
- ; Bug: overwrites the happiness of the first mon in the box!
- ld a, FRIEND_BALL_HAPPINESS
- ld [sBoxMon1Happiness], a
-.SkipBoxMonFriendBall:
- call CloseSRAM
-
- ld hl, Text_AskNicknameNewlyCaughtMon
- call PrintText
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
-
- call YesNoBox
- jr c, .SkipBoxMonNickname
-
- xor a
- ld [CurPartyMon], a
- ld a, BOXMON
- ld [MonType], a
- ld de, wMonOrItemNameBuffer
- ld b, $0
- callba NamingScreen
-
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
-
- ld hl, wMonOrItemNameBuffer
- ld de, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
- ld hl, sBoxMonNicknames
- ld de, StringBuffer1
- call InitName
-
- call CloseSRAM
-
-.SkipBoxMonNickname:
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
-
- ld hl, sBoxMonNicknames
- ld de, wMonOrItemNameBuffer
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
- call CloseSRAM
-
- ld hl, Text_SentToBillsPC
- call PrintText
-
- call RotateThreePalettesRight
- call LoadStandardFont
- jr .return_from_capture
-
-.catch_bug_contest_mon
- callba BugContest_SetCaughtContestMon
- jr .return_from_capture
-
-.FinishTutorial:
- ld hl, Text_GotchaMonWasCaught
-
-.shake_and_break_free
- call PrintText
- call ClearSprites
-
-.return_from_capture
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- ret z
- cp BATTLETYPE_DEBUG
- ret z
- cp BATTLETYPE_CONTEST
- jr z, .used_park_ball
-
- ld a, [wWildMon]
- and a
- jr z, .toss
-
- call ClearBGPalettes
- call ClearTileMap
-
-.toss
- ld hl, NumItems
- inc a
- ld [wItemQuantityChangeBuffer], a
- jp TossItem
-
-.used_park_ball
- ld hl, wParkBallsRemaining
- dec [hl]
- ret
-; ec0a
-
-
-BallMultiplierFunctionTable:
-; table of routines that increase or decrease the catch rate based on
-; which ball is used in a certain situation.
- dbw ULTRA_BALL, UltraBallMultiplier
- dbw GREAT_BALL, GreatBallMultiplier
- dbw SAFARI_BALL, SafariBallMultiplier ; Safari Ball, leftover from RBY
- dbw HEAVY_BALL, HeavyBallMultiplier
- dbw LEVEL_BALL, LevelBallMultiplier
- dbw LURE_BALL, LureBallMultiplier
- dbw FAST_BALL, FastBallMultiplier
- dbw MOON_BALL, MoonBallMultiplier
- dbw LOVE_BALL, LoveBallMultiplier
- dbw PARK_BALL, ParkBallMultiplier
- db $ff
-
-UltraBallMultiplier:
-; multiply catch rate by 2
- sla b
- ret nc
- ld b, $ff
- ret
-
-SafariBallMultiplier:
-GreatBallMultiplier:
-ParkBallMultiplier:
-; multiply catch rate by 1.5
- ld a, b
- srl a
- add b
- ld b, a
- ret nc
- ld b, $ff
- ret
-
-GetPokedexEntryBank:
- push hl
- push de
- ld a, [EnemyMonSpecies]
- rlca
- rlca
- and 3
- ld hl, .PokedexEntryBanks
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- pop de
- pop hl
- ret
-
-.PokedexEntryBanks:
-
-GLOBAL PokedexEntries1
-GLOBAL PokedexEntries2
-GLOBAL PokedexEntries3
-GLOBAL PokedexEntries4
-
- db BANK(PokedexEntries1)
- db BANK(PokedexEntries2)
- db BANK(PokedexEntries3)
- db BANK(PokedexEntries4)
-
-HeavyBallMultiplier:
-; subtract 20 from catch rate if weight < 102.4 kg
-; else add 0 to catch rate if weight < 204.8 kg
-; else add 20 to catch rate if weight < 307.2 kg
-; else add 30 to catch rate if weight < 409.6 kg
-; else add 40 to catch rate (never happens)
- ld a, [EnemyMonSpecies]
- ld hl, PokedexDataPointerTable
- dec a
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, BANK(PokedexDataPointerTable)
- call GetFarHalfword
-
-.SkipText:
- call GetPokedexEntryBank
- call GetFarByte
- inc hl
- cp "@"
- jr nz, .SkipText
-
- call GetPokedexEntryBank
- push bc
- inc hl
- inc hl
- call GetFarHalfword
-
- srl h
- rr l
- ld b, h
- ld c, l
-
- rept 4
- srl b
- rr c
- endr
- call .subbc
-
- srl b
- rr c
- call .subbc
-
- ld a, h
- pop bc
- jr .compare
-
-.subbc
- ; subtract bc from hl
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- pop bc
- ret
-
-.compare
- ld c, a
- cp 1024 >> 8 ; 102.4 kg
- jr c, .lightmon
-
- ld hl, .WeightsTable
-.lookup
- ld a, c
- cp [hl]
- jr c, .heavymon
- inc hl
- inc hl
- jr .lookup
-
-.heavymon
- inc hl
- ld a, b
- add [hl]
- ld b, a
- ret nc
- ld b, $ff
- ret
-
-.lightmon
- ld a, b
- sub 20
- ld b, a
- ret nc
- ld b, $1
- ret
-
-.WeightsTable:
-; weight factor, boost
- db 2048 >> 8, 0
- db 3072 >> 8, 20
- db 4096 >> 8, 30
- db 65280 >> 8, 40
-
-LureBallMultiplier:
-; multiply catch rate by 3 if this is a fishing rod battle
- ld a, [BattleType]
- cp BATTLETYPE_FISH
- ret nz
-
- ld a, b
- add a
- jr c, .max
-
- add b
- jr nc, .done
-.max
- ld a, $ff
-.done
- ld b, a
- ret
-
-MoonBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 4 if mon evolves with moon stone
-; Reality: no boost
-
-GLOBAL EvosAttacks
-GLOBAL EvosAttacksPointers
-
- push bc
- ld a, [TempEnemyMonSpecies]
- dec a
- ld c, a
- ld b, 0
- ld hl, EvosAttacksPointers
- add hl, bc
- add hl, bc
- ld a, BANK(EvosAttacksPointers)
- call GetFarHalfword
- pop bc
-
- push bc
- ld a, BANK(EvosAttacks)
- call GetFarByte
- cp EVOLVE_ITEM
- pop bc
- ret nz
-
- inc hl
- inc hl
- inc hl
-
-; Moon Stone's constant from Pokémon Red is used.
-; No Pokémon evolve with Burn Heal,
-; so Moon Balls always have a catch rate of 1×.
- push bc
- ld a, BANK(EvosAttacks)
- call GetFarByte
- cp MOON_STONE_RED ; BURN_HEAL
- pop bc
- ret nz
-
- sla b
- jr c, .max
- sla b
- jr nc, .done
-.max
- ld b, $ff
-.done
- ret
-
-LoveBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 8 if mons are of same species, different sex
-; Reality: multiply catch rate by 8 if mons are of same species, same sex
-
- ; does species match?
- ld a, [TempEnemyMonSpecies]
- ld c, a
- ld a, [TempBattleMonSpecies]
- cp c
- ret nz
-
- ; check player mon species
- push bc
- ld a, [TempBattleMonSpecies]
- ld [CurPartySpecies], a
- xor a ; PARTYMON
- ld [MonType], a
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- callba GetGender
- jr c, .done1 ; no effect on genderless
-
- ld d, 0 ; male
- jr nz, .playermale
- inc d ; female
-.playermale
-
- ; check wild mon species
- push de
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld a, WILDMON
- ld [MonType], a
- callba GetGender
- jr c, .done2 ; no effect on genderless
-
- ld d, 0 ; male
- jr nz, .wildmale
- inc d ; female
-.wildmale
-
- ld a, d
- pop de
- cp d
- pop bc
- ret nz ; for the intended effect, this should be "ret z"
-
- sla b
- jr c, .max
- sla b
- jr c, .max
- sla b
- ret nc
-.max
- ld b, $ff
- ret
-
-.done2
- pop de
-
-.done1
- pop bc
- ret
-
-FastBallMultiplier:
-; This function is buggy.
-; Intent: multiply catch rate by 4 if enemy mon is in one of the three
-; FleeMons tables.
-; Reality: multiply catch rate by 4 if enemy mon is one of the first three in
-; the first FleeMons table.
- ld a, [TempEnemyMonSpecies]
- ld c, a
- ld hl, FleeMons
- ld d, 3
-
-.loop
- ld a, BANK(FleeMons)
- call GetFarByte
-
- inc hl
- cp -1
- jr z, .next
- cp c
- jr nz, .next ; for the intended effect, this should be "jr nz, .loop"
- sla b
- jr c, .max
-
- sla b
- ret nc
-
-.max
- ld b, $ff
- ret
-
-.next
- dec d
- jr nz, .loop
- ret
-
-LevelBallMultiplier:
-; multiply catch rate by 8 if player mon level / 4 > enemy mon level
-; multiply catch rate by 4 if player mon level / 2 > enemy mon level
-; multiply catch rate by 2 if player mon level > enemy mon level
- ld a, [BattleMonLevel]
- ld c, a
- ld a, [EnemyMonLevel]
- cp c
- ret nc ; if player is lower level, we're done here
- sla b
- jr c, .max
-
- srl c
- cp c
- ret nc ; if player/2 is lower level, we're done here
- sla b
- jr c, .max
-
- srl c
- cp c
- ret nc ; if player/4 is lower level, we're done here
- sla b
- ret nc
-
-.max
- ld b, $ff
- ret
-
-; These two texts were carried over from gen 1.
-; They are not used in gen 2, and are dummied out.
-
-Text_RBY_CatchMarowak: ; 0xedab
- ; It dodged the thrown BALL! This #MON can't be caught!
- text_jump UnknownText_0x1c5a5a
- db "@"
-; 0xedb0
-
-Text_RBY_NoShake: ; 0xedb0
- ; You missed the #MON!
- text_jump UnknownText_0x1c5a90
- db "@"
-; 0xedb5
-
-Text_NoShake: ; 0xedb5
- ; Oh no! The #MON broke free!
- text_jump UnknownText_0x1c5aa6
- db "@"
-; 0xedba
-
-Text_OneShake: ; 0xedba
- ; Aww! It appeared to be caught!
- text_jump UnknownText_0x1c5ac3
- db "@"
-; 0xedbf
-
-Text_TwoShakes: ; 0xedbf
- ; Aargh! Almost had it!
- text_jump UnknownText_0x1c5ae3
- db "@"
-; 0xedc4
-
-Text_ThreeShakes: ; 0xedc4
- ; Shoot! It was so close too!
- text_jump UnknownText_0x1c5afa
- db "@"
-; 0xedc9
-
-Text_GotchaMonWasCaught: ; 0xedc9
- ; Gotcha! @ was caught!@ @
- text_jump UnknownText_0x1c5b17
- start_asm
- call WaitSFX
- push bc
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- ld de, MUSIC_CAPTURE
- call PlayMusic
- pop bc
- ld hl, TextJump_Waitbutton
- ret
-; ede6
-
-TextJump_Waitbutton: ; 0xede6
- ; @
- text_jump Text_Waitbutton_2
- db "@"
-; 0xedeb
-
-Text_SentToBillsPC: ; 0xedeb
- ; was sent to BILL's PC.
- text_jump UnknownText_0x1c5b38
- db "@"
-; 0xedf0
-
-Text_AddedToPokedex: ; 0xedf0
- ; 's data was newly added to the #DEX.@ @
- text_jump UnknownText_0x1c5b53
- db "@"
-; 0xedf5
-
-Text_AskNicknameNewlyCaughtMon: ; 0xedf5
- ; Give a nickname to @ ?
- text_jump UnknownText_0x1c5b7f
- db "@"
-; 0xedfa
-
-ReturnToBattle_UseBall: ; edfa (3:6dfa)
- callba _ReturnToBattle_UseBall
- ret
-
-TownMap: ; ee01
- callba PokegearMap
- ret
-; ee08
-
-
-Bicycle: ; ee08
- callba BikeFunction
- ret
-; ee0f
-
-
-MoonStone:
-FireStone:
-Thunderstone:
-WaterStone:
-LeafStone:
-SunStone: ; ee0f
- ld b, PARTYMENUACTION_EVO_STONE
- call UseItem_SelectMon
-
- jp c, .DecidedNotToUse
-
- ld a, MON_ITEM
- call GetPartyParamLocation
-
- ld a, [hl]
- cp EVERSTONE
- jr z, .NoEffect
-
- ld a, $1
- ld [wForceEvolution], a
- callba EvolvePokemon
-
- ld a, [wMonTriedToEvolve]
- and a
- jr z, .NoEffect
-
- jp UseDisposableItem
-
-.NoEffect:
- call WontHaveAnyEffectMessage
-
-.DecidedNotToUse:
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; ee3d
-
-
-HPUp:
-Protein:
-Iron:
-Carbos:
-Calcium: ; ee3d
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, RareCandy_StatBooster_ExitMenu
-
- call RareCandy_StatBooster_GetParameters
-
- call GetStatExpRelativePointer
-
- ld a, MON_STAT_EXP
- call GetPartyParamLocation
-
- add hl, bc
- ld a, [hl]
- cp 100
- jr nc, NoEffectMessage
-
- add 10
- ld [hl], a
- call UpdateStatsAfterItem
-
- call GetStatExpRelativePointer
-
- ld hl, StatStrings
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, StringBuffer2
- ld bc, ITEM_NAME_LENGTH
- call CopyBytes
-
- call Play_SFX_FULL_HEAL
-
- ld hl, Text_StatRose
- call PrintText
-
- ld c, HAPPINESS_USEDITEM
- callba ChangeHappiness
-
- jp UseDisposableItem
-
-
-NoEffectMessage: ; ee83
- ld hl, WontHaveAnyEffectText
- call PrintText
- jp ClearPalettes
-; ee8c
-
-
-UpdateStatsAfterItem: ; ee8c
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld d, h
- ld e, l
- ld a, MON_STAT_EXP - 1
- call GetPartyParamLocation
- ld b, $1
- predef_jump CalcPkmnStats
-; ee9f
-
-RareCandy_StatBooster_ExitMenu: ; ee9f
- xor a
- ld [wItemEffectSucceeded], a
- jp ClearPalettes
-; eea6
-
-
-Text_StatRose: ; 0xeea6
- ; 's @ rose.
- text_jump UnknownText_0x1c5b9a
- db "@"
-; 0xeeab
-
-
-StatStrings: ; eeab
- dw .health
- dw .attack
- dw .defense
- dw .speed
- dw .special
-
-.health db "HEALTH@"
-.attack db "ATTACK@"
-.defense db "DEFENSE@"
-.speed db "SPEED@"
-.special db "SPECIAL@"
-; eed9
-
-
-GetStatExpRelativePointer: ; eed9
- ld a, [CurItem]
- ld hl, Table_eeeb
-.next
- cp [hl]
- inc hl
- jr z, .got_it
- inc hl
- jr .next
-
-.got_it
- ld a, [hl]
- ld c, a
- ld b, 0
- ret
-; eeeb
-
-Table_eeeb: ; eeeb
- db HP_UP, MON_HP_EXP - MON_STAT_EXP
- db PROTEIN, MON_ATK_EXP - MON_STAT_EXP
- db IRON, MON_DEF_EXP - MON_STAT_EXP
- db CARBOS, MON_SPD_EXP - MON_STAT_EXP
- db CALCIUM, MON_SPC_EXP - MON_STAT_EXP
-; eef5
-
-
-RareCandy_StatBooster_GetParameters: ; eef5
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- ld [wd265], a
- ld a, MON_LEVEL
- call GetPartyParamLocation
- ld a, [hl]
- ld [CurPartyLevel], a
- call GetBaseData
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- ret
-; 0xef14
-
-
-RareCandy: ; ef14
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, RareCandy_StatBooster_ExitMenu
-
- call RareCandy_StatBooster_GetParameters
-
- ld a, MON_LEVEL
- call GetPartyParamLocation
-
- ld a, [hl]
- cp MAX_LEVEL
- jp nc, NoEffectMessage
-
- inc a
- ld [hl], a
- ld [CurPartyLevel], a
- push de
- ld d, a
- callba CalcExpAtLevel
-
- pop de
- ld a, MON_EXP
- call GetPartyParamLocation
-
- ld a, [hMultiplicand]
- ld [hli], a
- ld a, [hMultiplicand + 1]
- ld [hli], a
- ld a, [hMultiplicand + 2]
- ld [hl], a
-
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
- push bc
- call UpdateStatsAfterItem
-
- ld a, MON_MAXHP + 1
- call GetPartyParamLocation
-
- pop bc
- ld a, [hld]
- sub c
- ld c, a
- ld a, [hl]
- sbc b
- ld b, a
- dec hl
- ld a, [hl]
- add c
- ld [hld], a
- ld a, [hl]
- adc b
- ld [hl], a
- callba LevelUpHappinessMod
-
- ld a, PARTYMENUTEXT_LEVEL_UP
- call ItemActionText
-
- xor a ; PARTYMON
- ld [MonType], a
- predef CopyPkmnToTempMon
-
- hlcoord 9, 0
- ld b, 10
- ld c, 9
- call TextBox
-
- hlcoord 11, 1
- ld bc, $0004
- predef PrintTempMonStats
-
- call WaitPressAorB_BlinkCursor
-
- xor a ; PARTYMON
- ld [MonType], a
- ld a, [CurPartySpecies]
- ld [wd265], a
- predef LearnLevelMoves
-
- xor a
- ld [wForceEvolution], a
- callba EvolvePokemon
-
- jp UseDisposableItem
-; efad
-
-
-HealPowder: ; efad
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
-
- jp c, StatusHealer_ExitMenu
-
- call UseStatusHealer
-
- cp $0
- jr nz, .asm_efc9
- ld c, HAPPINESS_BITTERPOWDER
- callba ChangeHappiness
-
- call LooksBitterMessage
-
- ld a, $0
-
-.asm_efc9
- jp StatusHealer_Jumptable
-; efcc
-
-
-Antidote:
-BurnHeal:
-IceHeal:
-Awakening:
-ParlyzHeal:
-FullHeal:
-Psncureberry:
-Przcureberry:
-BurntBerry:
-IceBerry:
-MintBerry:
-Miracleberry: ; efcc
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
-FullyHealStatus: ; efd4
- call UseStatusHealer
- jp StatusHealer_Jumptable
-; efda
-
-
-UseStatusHealer: ; efda (3:6fda)
- call IsMonFainted
- ld a, $1
- ret z
- call GetItemHealingAction
- ld a, MON_STATUS
- call GetPartyParamLocation
- ld a, [hl]
- and c
- jr nz, .good
- call IsItemUsedOnConfusedMon
- ld a, $1
- ret nc
- ld b, PARTYMENUTEXT_HEAL_CONFUSION
-.good
- xor a
- ld [hl], a
- ld a, b
- ld [PartyMenuActionText], a
- call HealStatus
- call Play_SFX_FULL_HEAL
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, $0
- ret
-
-IsItemUsedOnConfusedMon: ; f009 (3:7009)
- call IsItemUsedOnBattleMon
- jr nc, .nope
- ld a, [PlayerSubStatus3]
- bit SUBSTATUS_CONFUSED, a
- jr z, .nope
- ld a, c
- cp $ff
- jr nz, .nope
- scf
- ret
-
-.nope
- and a
- ret
-
-BattlemonRestoreHealth: ; f01e (3:701e)
- call IsItemUsedOnBattleMon
- ret nc
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [BattleMonHP], a
- ld a, [hld]
- ld [BattleMonHP + 1], a
- ret
-
-HealStatus: ; f030 (3:7030)
- call IsItemUsedOnBattleMon
- ret nc
- xor a
- ld [BattleMonStatus], a
- ld hl, PlayerSubStatus5
- res SUBSTATUS_TOXIC, [hl]
- ld hl, PlayerSubStatus1
- res SUBSTATUS_NIGHTMARE, [hl]
- call GetItemHealingAction
- ld a, c
- cp %11111111
- jr nz, .not_full_heal
- ld hl, PlayerSubStatus3
- res SUBSTATUS_CONFUSED, [hl]
-.not_full_heal
- push bc
- callba CalcPlayerStats
- pop bc
- ret
-
-GetItemHealingAction: ; f058 (3:7058)
- push hl
- ld a, [CurItem]
- ld hl, .healingactions
- ld bc, 3
-.next
- cp [hl]
- jr z, .found_it
- add hl, bc
- jr .next
-
-.found_it
- inc hl
- ld b, [hl]
- inc hl
- ld a, [hl]
- ld c, a
- cp %11111111
- pop hl
- ret
-; f071 (3:7071)
-
-.healingactions ; f071
-; item, party menu action text, status
- db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
- db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
- db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
- db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP
- db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
- db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111
- db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111
- db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111
- db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
- db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
- db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
- db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
- db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP
- db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111
- db -1, 0, 0
-; f09e
-
-StatusHealer_Jumptable: ; f09e (3:709e)
- ld hl, .dw
- rst JumpTable
- ret
-
-.dw ; f0a3 (3:70a3)
- dw StatusHealer_ClearPalettes
- dw StatusHealer_NoEffect
- dw StatusHealer_ExitMenu
-
-
-RevivalHerb: ; f0a9
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call RevivePokemon
- cp 0
- jr nz, .asm_f0c5
-
- ld c, HAPPINESS_REVIVALHERB
- callba ChangeHappiness
- call LooksBitterMessage
- ld a, 0
-
-.asm_f0c5
- jp StatusHealer_Jumptable
-; f0c8
-
-
-Revive:
-MaxRevive: ; f0c8
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call RevivePokemon
- jp StatusHealer_Jumptable
-; f0d6
-
-
-RevivePokemon: ; f0d6
- call IsMonFainted
- ld a, 1
- ret nz
- ld a, [wBattleMode]
- and a
- jr z, .skip_to_revive
-
- ld a, [CurPartyMon]
- ld c, a
- ld d, 0
- ld hl, wBattleParticipantsIncludingFainted
- ld b, CHECK_FLAG
- predef FlagPredef
- ld a, c
- and a
- jr z, .skip_to_revive
-
- ld a, [CurPartyMon]
- ld c, a
- ld hl, wBattleParticipantsNotFainted
- ld b, SET_FLAG
- predef FlagPredef
-
-.skip_to_revive
- xor a
- ld [Danger], a
- ld a, [CurItem]
- cp REVIVE
- jr z, .revive_half_hp
-
- call ReviveFullHP
- jr .finish_revive
-
-.revive_half_hp
- call ReviveHalfHP
-
-.finish_revive
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_REVIVE
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-; f128
-
-
-FullRestore: ; f128
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, StatusHealer_ExitMenu
-
- call IsMonFainted
- jp z, StatusHealer_NoEffect
-
- call IsMonAtFullHealth
- jr c, .NotAtFullHealth
-
- jp FullyHealStatus
-
-.NotAtFullHealth:
- call .FullRestore
- jp StatusHealer_Jumptable
-; f144
-
-
-.FullRestore: ; f144
- xor a
- ld [Danger], a
- call ReviveFullHP
- ld a, MON_STATUS
- call GetPartyParamLocation
- xor a
- ld [hli], a
- ld [hl], a
- call HealStatus
- call BattlemonRestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-; f16a
-
-
-BitterBerry: ; f16a
- ld hl, PlayerSubStatus3
- bit SUBSTATUS_CONFUSED, [hl]
- ld a, 1
- jr z, .done
-
- res SUBSTATUS_CONFUSED, [hl]
- xor a
- ld [hBattleTurn], a
- call UseItemText
-
- ld hl, ConfusedNoMoreText
- call StdBattleTextBox
-
- ld a, 0
-
-.done
- jp StatusHealer_Jumptable
-; f186
-
-
-MaxPotion:
-HyperPotion:
-SuperPotion:
-Potion:
-FreshWater:
-SodaPop:
-Lemonade:
-MoomooMilk:
-Ragecandybar:
-BerryJuice:
-Berry:
-GoldBerry: ; f186
- call ItemRestoreHP
- jp StatusHealer_Jumptable
-; f18c
-
-
-Energypowder: ; f18c
- ld c, HAPPINESS_BITTERPOWDER
- jr EnergypowderEnergyRootCommon
-; f190
-
-EnergyRoot: ; f190
- ld c, HAPPINESS_ENERGYROOT
-; f192
-
-EnergypowderEnergyRootCommon: ; f192
- push bc
- call ItemRestoreHP
- pop bc
- cp 0
- jr nz, .skip_happiness
-
- callba ChangeHappiness
- call LooksBitterMessage
- ld a, 0
-
-.skip_happiness
- jp StatusHealer_Jumptable
-; f1a9
-
-
-ItemRestoreHP: ; f1a9 (3:71a9)
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- ld a, 2
- ret c
-
- call IsMonFainted
- ld a, 1
- ret z
-
- call IsMonAtFullHealth
- ld a, 1
- ret nc
-
- xor a
- ld [Danger], a
- call GetHealingItemAmount
- call RestoreHealth
- call BattlemonRestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- ld [PartyMenuActionText], a
- call ItemActionTextWaitButton
- call UseDisposableItem
- ld a, 0
- ret
-
-HealHP_SFX_GFX: ; f1db (3:71db)
- push de
- ld de, SFX_POTION
- call WaitPlaySFX
- pop de
- ld a, [CurPartyMon]
- hlcoord 11, 0
- ld bc, SCREEN_WIDTH * 2
- call AddNTimes
- ld a, $2
- ld [wWhichHPBar], a
- predef_jump AnimateHPBar
-
-UseItem_SelectMon: ; f1f9 (3:71f9)
- call .SelectMon
- ret c
-
- ld a, [CurPartySpecies]
- cp EGG
- jr nz, .not_egg
-
- call CantUseOnEggMessage
- scf
- ret
-
-.not_egg
- and a
- ret
-
-.SelectMon: ; f20b (3:720b)
- ld a, b
- ld [PartyMenuActionText], a
- push hl
- push de
- push bc
- call ClearBGPalettes
- call ChoosePkmnToUseItemOn
- pop bc
- pop de
- pop hl
- ret
-
-ChoosePkmnToUseItemOn: ; f21c (3:721c)
- callba LoadPartyMenuGFX
- callba InitPartyMenuWithCancel
- callba InitPartyMenuGFX
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- callba PartyMenuSelect
- ret
-
-ItemActionText: ; f24a (3:724a)
- ld [PartyMenuActionText], a
- ld a, [CurPartySpecies]
- push af
- ld a, [CurPartyMon]
- push af
- push hl
- push de
- push bc
- callba WritePartyMenuTilemap
- callba PrintPartyMenuActionText
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- pop bc
- pop de
- pop hl
- pop af
- ld [CurPartyMon], a
- pop af
- ld [CurPartySpecies], a
- ret
-
-ItemActionTextWaitButton: ; f279 (3:7279)
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, TileMapEnd - TileMap
- ld a, " "
- call ByteFill
- ld a, [PartyMenuActionText]
- call ItemActionText
- ld a, $1
- ld [hBGMapMode], a
- ld c, 50
- call DelayFrames
- jp WaitPressAorB_BlinkCursor
-
-StatusHealer_NoEffect: ; f299 (3:7299)
- call WontHaveAnyEffectMessage
- jr StatusHealer_ClearPalettes
-
-StatusHealer_ExitMenu: ; f29e (3:729e)
- xor a
- ld [wItemEffectSucceeded], a
-StatusHealer_ClearPalettes: ; f2a2 (3:72a2)
- call ClearPalettes
- ret
-
-IsItemUsedOnBattleMon: ; f2a6 (3:72a6)
- ld a, [wBattleMode]
- and a
- ret z
- ld a, [CurPartyMon]
- push hl
- ld hl, CurBattleMon
- cp [hl]
- pop hl
- jr nz, .nope
- scf
- ret
-
-.nope
- xor a
- ret
-
-ReviveHalfHP: ; f2ba (3:72ba)
- call LoadHPFromBuffer1
- srl d
- rr e
- jr ContinueRevive
-
-ReviveFullHP: ; f2c3 (3:72c3)
- call LoadHPFromBuffer1
-ContinueRevive: ; f2c6 (3:72c6)
- ld a, MON_HP
- call GetPartyParamLocation
- ld [hl], d
- inc hl
- ld [hl], e
- jp LoadCurHPIntoBuffer5
-
-RestoreHealth: ; f2d1 (3:72d1)
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld a, [hl]
- add e
- ld [hld], a
- ld a, [hl]
- adc d
- ld [hl], a
- jr c, .full_hp
- call LoadCurHPIntoBuffer5
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld d, h
- ld e, l
- ld a, MON_MAXHP + 1
- call GetPartyParamLocation
- ld a, [de]
- sub [hl]
- dec de
- dec hl
- ld a, [de]
- sbc [hl]
- jr c, .finish
-.full_hp
- call ReviveFullHP
-.finish
- ret
-
-RemoveHP: ; f2f9 (3:72f9)
- ld a, MON_HP + 1
- call GetPartyParamLocation
- ld a, [hl]
- sub e
- ld [hld], a
- ld a, [hl]
- sbc d
- ld [hl], a
- jr nc, .okay
- xor a
- ld [hld], a
- ld [hl], a
-.okay
- call LoadCurHPIntoBuffer5
- ret
-
-IsMonFainted: ; f30d (3:730d)
- push de
- call LoadMaxHPToBuffer1
- call LoadCurHPToBuffer3
- call LoadHPFromBuffer3
- ld a, d
- or e
- pop de
- ret
-
-IsMonAtFullHealth: ; f31b (3:731b)
- call LoadHPFromBuffer3
- ld h, d
- ld l, e
- call LoadHPFromBuffer1
- ld a, l
- sub e
- ld a, h
- sbc d
- ret
-
-LoadCurHPIntoBuffer5: ; f328 (3:7328)
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer6], a
- ld a, [hl]
- ld [Buffer5], a
- ret
-; f336 (3:7336)
-
-LoadHPIntoBuffer5: ; f336
- ld a, d
- ld [Buffer6], a
- ld a, e
- ld [Buffer5], a
- ret
-; f33f
-
-LoadHPFromBuffer5: ; f33f
- ld a, [Buffer6]
- ld d, a
- ld a, [Buffer5]
- ld e, a
- ret
-; f348
-
-LoadCurHPToBuffer3: ; f348 (3:7348)
- ld a, MON_HP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer4], a
- ld a, [hl]
- ld [Buffer3], a
- ret
-
-LoadHPFromBuffer3: ; f356 (3:7356)
- ld a, [Buffer4]
- ld d, a
- ld a, [Buffer3]
- ld e, a
- ret
-
-LoadMaxHPToBuffer1: ; f35f (3:735f)
- push hl
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld [Buffer2], a
- ld a, [hl]
- ld [Buffer1], a
- pop hl
- ret
-
-LoadHPFromBuffer1: ; f36f (3:736f)
- ld a, [Buffer2]
- ld d, a
- ld a, [Buffer1]
- ld e, a
- ret
-
-GetOneFifthMaxHP: ; f378 (3:7378)
- push bc
- ld a, MON_MAXHP
- call GetPartyParamLocation
- ld a, [hli]
- ld [hDividend + 0], a
- ld a, [hl]
- ld [hDividend + 1], a
- ld a, 5
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 1]
- ld d, a
- ld a, [hQuotient + 2]
- ld e, a
- pop bc
- ret
-
-GetHealingItemAmount: ; f395 (3:7395)
- push hl
- ld a, [CurItem]
- ld hl, .Healing
- ld d, a
-.next
- ld a, [hli]
- cp -1
- jr z, .NotFound
- cp d
- jr z, .done
- inc hl
- inc hl
- jr .next
-
-.NotFound:
- scf
-.done
- ld e, [hl]
- inc hl
- ld d, [hl]
- pop hl
- ret
-; f3af (3:73af)
-
-.Healing: ; f3af
- dbw FRESH_WATER, 50
- dbw SODA_POP, 60
- dbw LEMONADE, 80
- dbw HYPER_POTION, 200
- dbw SUPER_POTION, 50
- dbw POTION, 20
- dbw MAX_POTION, 999
- dbw FULL_RESTORE, 999
- dbw MOOMOO_MILK, 100
- dbw BERRY, 10
- dbw GOLD_BERRY, 30
- dbw ENERGYPOWDER, 50
- dbw ENERGY_ROOT, 200
- dbw RAGECANDYBAR, 20
- dbw BERRY_JUICE, 20
- dbw -1, 0
-; f3df
-
-Softboiled_MilkDrinkFunction: ; f3df (3:73df)
-; Softboiled/Milk Drink in the field
- ld a, [wPartyMenuCursor]
- dec a
- ld b, a
- call .SelectMilkDrinkRecipient ; select pokemon
- jr c, .skip
- ld a, b
- ld [CurPartyMon], a
- call IsMonFainted
- call GetOneFifthMaxHP
- call RemoveHP
- push bc
- call HealHP_SFX_GFX
- pop bc
- call GetOneFifthMaxHP
- ld a, c
- ld [CurPartyMon], a
- call IsMonFainted
- call RestoreHealth
- call HealHP_SFX_GFX
- ld a, PARTYMENUTEXT_HEAL_HP
- call ItemActionText
- call JoyWaitAorB
-.skip
- ld a, b
- inc a
- ld [wPartyMenuCursor], a
- ret
-
-.SelectMilkDrinkRecipient: ; f419 (3:7419)
-.loop
- push bc
- ld a, PARTYMENUACTION_HEALING_ITEM
- ld [PartyMenuActionText], a
- call ChoosePkmnToUseItemOn
- pop bc
- jr c, .set_carry
- ld a, [wPartyMenuCursor]
- dec a
- ld c, a
- ld a, b
- cp c
- jr z, .cant_use ; chose the same mon as user
- ld a, c
- ld [CurPartyMon], a
- call IsMonFainted
- jr z, .cant_use
- call IsMonAtFullHealth
- jr nc, .cant_use
- xor a
- ret
-
-.set_carry
- scf
- ret
-
-.cant_use
- push bc
- ld hl, .Text_CantBeUsed
- call MenuTextBoxBackup
- pop bc
- jr .loop
-; f44a (3:744a)
-
-.Text_CantBeUsed: ; 0xf44a
- ; That can't be used on this #MON.
- text_jump UnknownText_0x1c5bac
- db "@"
-; 0xf44f
-
-
-EscapeRope: ; f44f
- xor a
- ld [wItemEffectSucceeded], a
- callba EscapeRopeFunction
-
- ld a, [wItemEffectSucceeded]
- cp 1
- call z, UseDisposableItem
- ret
-; f462
-
-
-SuperRepel: ; f462
- ld b, 200
- jr UseRepel
-; f466
-
-MaxRepel: ; f466
- ld b, 250
- jr UseRepel
-; f466
-
-Repel: ; f46a
- ld b, 100
-; f46c
-
-UseRepel: ; f46c
- ld a, [wRepelEffect]
- and a
- ld hl, TextJump_RepelUsedEarlierIsStillInEffect
- jp nz, PrintText
-
- ld a, b
- ld [wRepelEffect], a
- jp UseItemText
-
-
-TextJump_RepelUsedEarlierIsStillInEffect: ; 0xf47d
- ; The REPEL used earlier is still in effect.
- text_jump Text_RepelUsedEarlierIsStillInEffect
- db "@"
-; 0xf482
-
-
-XAccuracy: ; f482
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_X_ACCURACY, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_X_ACCURACY, [hl]
- jp UseItemText
-; f48f
-
-
-PokeDoll: ; f48f
- ld a, [wBattleMode]
- dec a
- jr nz, .asm_f4a6
- inc a
- ld [wForcedSwitch], a
- ld a, [wBattleResult]
- and 3 << 6
- or $2
- ld [wBattleResult], a
- jp UseItemText
-
-.asm_f4a6
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; f4ab
-
-
-GuardSpec: ; f4ab
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_MIST, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_MIST, [hl]
- jp UseItemText
-; f4b8
-
-
-DireHit: ; f4b8
- ld hl, PlayerSubStatus4
- bit SUBSTATUS_FOCUS_ENERGY, [hl]
- jp nz, WontHaveAnyEffect_NotUsedMessage
- set SUBSTATUS_FOCUS_ENERGY, [hl]
- jp UseItemText
-; f4c5
-
-
-XAttack:
-XDefend:
-XSpeed:
-XSpecial: ; f4c5
- call UseItemText
-
- ld a, [CurItem]
- ld hl, .x_item_table
-
-.loop
- cp [hl]
- jr z, .got_it
- inc hl
- inc hl
- jr .loop
-
-.got_it
- inc hl
- ld b, [hl]
- xor a
- ld [hBattleTurn], a
- ld [AttackMissed], a
- ld [EffectFailed], a
- callba CheckIfStatCanBeRaised
- call WaitSFX
-
- callba BattleCommand_StatUpMessage
- callba BattleCommand_StatUpFailText
-
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- ld c, HAPPINESS_USEDXITEM
- callba ChangeHappiness
- ret
-; f504
-
-.x_item_table ; f504
- db X_ATTACK, ATTACK
- db X_DEFEND, DEFENSE
- db X_SPEED, SPEED
- db X_SPECIAL, SP_ATTACK
-; f50c
-
-
-PokeFlute: ; f50c
- ld a, [wBattleMode]
- and a
- jr nz, .dummy
-.dummy
-
- xor a
- ld [wd002], a
-
- ld b, $ff ^ SLP
-
- ld hl, PartyMon1Status
- call .CureSleep
-
- ld a, [wBattleMode]
- cp WILD_BATTLE
- jr z, .skip_otrainer
- ld hl, OTPartyMon1Status
- call .CureSleep
-.skip_otrainer
-
- ld hl, BattleMonStatus
- ld a, [hl]
- and b
- ld [hl], a
- ld hl, EnemyMonStatus
- ld a, [hl]
- and b
- ld [hl], a
-
- ld a, [wd002]
- and a
- ld hl, .CatchyTune
- jp z, PrintText
- ld hl, .PlayedTheFlute
- call PrintText
-
- ld a, [Danger]
- and $80
- jr nz, .dummy2
-.dummy2
- ld hl, .AllSleepingMonWokeUp
- jp PrintText
-
-
-.CureSleep:
- ld de, PARTYMON_STRUCT_LENGTH
- ld c, PARTY_LENGTH
-
-.loop
- ld a, [hl]
- push af
- and SLP
- jr z, .not_asleep
- ld a, 1
- ld [wd002], a
-.not_asleep
- pop af
- and b
- ld [hl], a
- add hl, de
- dec c
- jr nz, .loop
- ret
-; f56c
-
-
-.CatchyTune: ; 0xf56c
- ; Played the # FLUTE. Now, that's a catchy tune!
- text_jump UnknownText_0x1c5bf9
- db "@"
-; 0xf571
-
-.AllSleepingMonWokeUp: ; 0xf571
- ; All sleeping #MON woke up.
- text_jump UnknownText_0x1c5c28
- db "@"
-; 0xf576
-
-.PlayedTheFlute: ; 0xf576
- ; played the # FLUTE.@ @
- text_jump UnknownText_0x1c5c44
- start_asm
- ld a, [wBattleMode]
- and a
- jr nz, .battle
-
- push de
- ld de, SFX_POKEFLUTE
- call WaitPlaySFX
- call WaitSFX
- pop de
-
-.battle
- jp PokeFluteTerminatorCharacter
-; f58f
-
-
-BlueCard: ; f58f
- ld hl, .bluecardtext
- jp MenuTextBoxWaitButton
-
-.bluecardtext
- text_jump UnknownText_0x1c5c5e
- db "@"
-; f59a
-
-
-CoinCase: ; f59a
- ld hl, .coincasetext
- jp MenuTextBoxWaitButton
-
-.coincasetext
- text_jump UnknownText_0x1c5c7b
- db "@"
-; f5a5
-
-
-OldRod: ; f5a5
- ld e, $0
- jr UseRod
-; f5a9
-
-GoodRod: ; f5a9
- ld e, $1
- jr UseRod
-; f5ad
-
-SuperRod: ; f5ad
- ld e, $2
- jr UseRod
-; f5b1
-
-UseRod: ; f5b1
- callba FishFunction
- ret
-; f5b8
-
-
-Itemfinder: ; f5b8
- callba ItemFinder
- ret
-; f5bf
-
-
-MaxElixer:
-PPUp:
-Ether:
-MaxEther:
-Elixer:
-Mysteryberry: ; f5bf
- ld a, [CurItem]
- ld [wd002], a
-
-.loop
- ; Party Screen opens to choose on which Pkmn to use the Item
- ld b, PARTYMENUACTION_HEALING_ITEM
- call UseItem_SelectMon
- jp c, PPRestoreItem_Cancel
-
-.loop2
- ld a, [wd002]
- cp MAX_ELIXER
- jp z, Elixer_RestorePPofAllMoves
- cp ELIXER
- jp z, Elixer_RestorePPofAllMoves
-
- ld hl, TextJump_RaiseThePPOfWhichMove
- ld a, [wd002]
- cp PP_UP
- jr z, .ppup
- ld hl, TextJump_RestoreThePPOfWhichMove
-
-.ppup
- call PrintText
-
- ld a, [CurMoveNum]
- push af
- xor a
- ld [CurMoveNum], a
- ld a, $2
- ld [wMoveSelectionMenuType], a
- callba MoveSelectionScreen
- pop bc
-
- ld a, b
- ld [CurMoveNum], a
- jr nz, .loop
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
-
- push hl
- ld a, [hl]
- ld [wd265], a
- call GetMoveName
- call CopyName1
- pop hl
-
- ld a, [wd002]
- cp PP_UP
- jp nz, Not_PP_Up
-
- ld a, [hl]
- cp SKETCH
- jr z, .CantUsePPUpOnSketch
-
- ld bc, $0015
- add hl, bc
- ld a, [hl]
- cp 3 << 6 ; have 3 PP Ups already been used?
- jr c, .do_ppup
-
-.CantUsePPUpOnSketch:
-.pp_is_maxed_out
- ld hl, TextJump_PPIsMaxedOut
- call PrintText
- jr .loop2
-
-.do_ppup
- ld a, [hl]
- add 1 << 6 ; increase PP Up count by 1
- ld [hl], a
- ld a, $1
- ld [wd265], a
- call ApplyPPUp
- call Play_SFX_FULL_HEAL
-
- ld hl, TextJump_PPsIncreased
- call PrintText
-
-FinishPPRestore: ; f64c
- call ClearPalettes
- jp UseDisposableItem
-; f652
-
-BattleRestorePP: ; f652
- ld a, [wBattleMode]
- and a
- jr z, .not_in_battle
- ld a, [CurPartyMon]
- ld b, a
- ld a, [CurBattleMon]
- cp b
- jr nz, .not_in_battle
- ld a, [PlayerSubStatus5]
- bit SUBSTATUS_TRANSFORMED, a
- jr nz, .not_in_battle
- call .UpdateBattleMonPP
-
-.not_in_battle
- call Play_SFX_FULL_HEAL
- ld hl, UnknownText_0xf739
- call PrintText
- jr FinishPPRestore
-
-.UpdateBattleMonPP:
- ld a, [CurPartyMon]
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld de, BattleMonMoves
- ld b, NUM_MOVES
-.loop
- ld a, [de]
- and a
- jr z, .done
- cp [hl]
- jr nz, .next
- push hl
- push de
- push bc
- rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves
- inc de
- endr
- ld bc, MON_PP - MON_MOVES
- add hl, bc
- ld a, [hl]
- ld [de], a
- pop bc
- pop de
- pop hl
-
-.next
- inc hl
- inc de
- dec b
- jr nz, .loop
-
-.done
- ret
-; f6a7
-
-Not_PP_Up: ; f6a7
- call RestorePP
- jr nz, BattleRestorePP
- jp PPRestoreItem_NoEffect
-; f6af
-
-Elixer_RestorePPofAllMoves: ; f6af
- xor a
- ld hl, wMenuCursorY
- ld [hli], a
- ld [hl], a
- ld b, NUM_MOVES
-.moveLoop
- push bc
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
- ld a, [hl]
- and a
- jr z, .next
-
- call RestorePP
- jr z, .next
- ld hl, wMenuCursorX
- inc [hl]
-
-.next
- ld hl, wMenuCursorY
- inc [hl]
- pop bc
- dec b
- jr nz, .moveLoop
- ld a, [wMenuCursorX]
- and a
- jp nz, BattleRestorePP
-
-PPRestoreItem_NoEffect: ; f6dd
- call WontHaveAnyEffectMessage
-
-PPRestoreItem_Cancel: ; f6e0
- call ClearPalettes
- xor a
- ld [wItemEffectSucceeded], a
- ret
-; f6e8
-
-RestorePP: ; f6e8
- xor a ; PARTYMON
- ld [MonType], a
- call GetMaxPPOfMove
- ld hl, PartyMon1PP
- ld bc, PARTYMON_STRUCT_LENGTH
- call GetMthMoveOfNthPartymon
- ld a, [wd265]
- ld b, a
- ld a, [hl]
- and (1 << 6) - 1
- cp b
- jr nc, .dont_restore
-
- ld a, [wd002]
- cp MAX_ELIXER
- jr z, .restore_all
- cp MAX_ETHER
- jr z, .restore_all
-
- ld c, 5
- cp MYSTERYBERRY
- jr z, .restore_some
-
- ld c, 10
-
-.restore_some
- ld a, [hl]
- and (1 << 6) - 1
- add c
- cp b
- jr nc, .restore_all
- ld b, a
-
-.restore_all
- ld a, [hl]
- and 3 << 6
- or b
- ld [hl], a
- ret
-
-.dont_restore
- xor a
- ret
-; f725
-
-TextJump_RaiseThePPOfWhichMove: ; 0xf725
- ; Raise the PP of which move?
- text_jump Text_RaiseThePPOfWhichMove
- db "@"
-; 0xf72a
-
-TextJump_RestoreThePPOfWhichMove: ; 0xf72a
- ; Restore the PP of which move?
- text_jump Text_RestoreThePPOfWhichMove
- db "@"
-; 0xf72f
-
-TextJump_PPIsMaxedOut: ; 0xf72f
- ; 's PP is maxed out.
- text_jump Text_PPIsMaxedOut
- db "@"
-; 0xf734
-
-TextJump_PPsIncreased: ; 0xf734
- ; 's PP increased.
- text_jump Text_PPsIncreased
- db "@"
-; 0xf739
-
-UnknownText_0xf739: ; 0xf739
- ; PP was restored.
- text_jump UnknownText_0x1c5cf1
- db "@"
-; 0xf73e
-
-
-Squirtbottle: ; f73e
- callba _Squirtbottle
- ret
-; f745
-
-
-CardKey: ; f745
- callba _CardKey
- ret
-; f74c
-
-
-BasementKey: ; f74c
- callba _BasementKey
- ret
-; f753
-
-
-SacredAsh: ; f753
- callba _SacredAsh
- ld a, [wItemEffectSucceeded]
- cp $1
- ret nz
- call UseDisposableItem
- ret
-; f763
-
-
-NormalBox: ; f763
- ld c, DECOFLAG_SILVER_TROPHY_DOLL
- jr OpenBox
-; f767
-
-GorgeousBox: ; f767
- ld c, DECOFLAG_GOLD_TROPHY_DOLL
-OpenBox: ; f769
- callba SetSpecificDecorationFlag
-
- ld hl, .text
- call PrintText
-
- jp UseDisposableItem
-; f778
-
-.text ; 0xf778
- ; There was a trophy inside!
- text_jump UnknownText_0x1c5d03
- db "@"
-; 0xf77d
-
-Brightpowder:
-Item19:
-LuckyPunch:
-MetalPowder:
-Nugget:
-Item2D:
-Item32:
-ExpShare:
-SilverLeaf:
-RedScale:
-Secretpotion:
-SSTicket:
-MysteryEgg:
-ClearBell:
-SilverWing:
-QuickClaw:
-GoldLeaf:
-SoftSand:
-SharpBeak:
-PoisonBarb:
-KingsRock:
-RedApricorn:
-Tinymushroom:
-BigMushroom:
-Silverpowder:
-BluApricorn:
-Item5A:
-AmuletCoin:
-YlwApricorn:
-GrnApricorn:
-CleanseTag:
-MysticWater:
-Twistedspoon:
-WhtApricorn:
-Blackbelt:
-BlkApricorn:
-Item64:
-PnkApricorn:
-Blackglasses:
-Slowpoketail:
-PinkBow:
-Stick:
-SmokeBall:
-Nevermeltice:
-Magnet:
-Pearl:
-BigPearl:
-Everstone:
-SpellTag:
-GsBall:
-MiracleSeed:
-ThickClub:
-FocusBand:
-Item78:
-HardStone:
-LuckyEgg:
-MachinePart:
-EggTicket:
-LostItem:
-Stardust:
-StarPiece:
-Pass:
-Item87:
-Item88:
-Item89:
-Charcoal:
-ScopeLens:
-Item8D:
-Item8E:
-MetalCoat:
-DragonFang:
-Item91:
-Leftovers:
-Item93:
-Item94:
-Item95:
-DragonScale:
-BerserkGene:
-Item99:
-Item9A:
-Item9B:
-FlowerMail:
-ItemA2:
-LightBall:
-PolkadotBow:
-ItemAB:
-UpGrade:
-ItemB0:
-RainbowWing:
-ItemB3:
-TeruSama: ; f77d
- jp IsntTheTimeMessage
-; f780
-
-
-Play_SFX_FULL_HEAL: ; f780
- push de
- ld de, SFX_FULL_HEAL
- call WaitPlaySFX
- pop de
- ret
-; f789
-
-UseItemText: ; f789
- ld hl, UsedItemText
- call PrintText
- call Play_SFX_FULL_HEAL
- call WaitPressAorB_BlinkCursor
-UseDisposableItem: ; f795
- ld hl, NumItems
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- jp TossItem
-; f7a0
-
-UseBallInTrainerBattle: ; f7a0
- call ReturnToBattle_UseBall
- ld de, ANIM_THROW_POKE_BALL
- ld a, e
- ld [FXAnimID], a
- ld a, d
- ld [FXAnimID + 1], a
- xor a
- ld [wBattleAnimParam], a
- ld [hBattleTurn], a
- ld [wNumHits], a
- predef PlayBattleAnim
- ld hl, BlockedTheBallText
- call PrintText
- ld hl, DontBeAThiefText
- call PrintText
- jr UseDisposableItem
-; f7ca
-
-WontHaveAnyEffect_NotUsedMessage: ; f7ca
- ld hl, WontHaveAnyEffectText
- call PrintText
-
- ; Item wasn't used.
- ld a, $2
- ld [wItemEffectSucceeded], a
- ret
-; f7d6
-
-LooksBitterMessage: ; f7d6
- ld hl, LooksBitterText
- jp PrintText
-; f7dc
-
-Ball_BoxIsFullMessage: ; f7dc
- ld hl, Ball_BoxIsFullText
- call PrintText
-
- ; Item wasn't used.
- ld a, $2
- ld [wItemEffectSucceeded], a
- ret
-; f7e8
-
-CantUseOnEggMessage: ; f7e8
- ld hl, CantUseOnEggText
- jr CantUseItemMessage
-
-IsntTheTimeMessage: ; f7ed
- ld hl, IsntTheTimeText
- jr CantUseItemMessage
-
-WontHaveAnyEffectMessage: ; f7f2
- ld hl, WontHaveAnyEffectText
- jr CantUseItemMessage
-
-BelongsToSomeoneElseMessage: ; f7f7
- ld hl, BelongsToSomeoneElseText
- jr CantUseItemMessage
-
-CyclingIsntAllowedMessage: ; f7fc
- ld hl, CyclingIsntAllowedText
- jr CantUseItemMessage
-
-CantGetOnYourBikeMessage: ; f801
- ld hl, CantGetOnYourBikeText
-
-CantUseItemMessage: ; f804
-; Item couldn't be used.
- xor a
- ld [wItemEffectSucceeded], a
- jp PrintText
-; f80b
-
-LooksBitterText: ; 0xf80b
- ; It looks bitter…
- text_jump UnknownText_0x1c5d3e
- db "@"
-; 0xf810
-
-CantUseOnEggText: ; 0xf810
- ; That can't be used on an EGG.
- text_jump UnknownText_0x1c5d50
- db "@"
-; 0xf815
-
-IsntTheTimeText: ; 0xf815
- ; OAK: ! This isn't the time to use that!
- text_jump UnknownText_0x1c5d6e
- db "@"
-; 0xf81a
-
-BelongsToSomeoneElseText: ; 0xf81a
- ; That belongs to someone else!
- text_jump UnknownText_0x1c5d97
- db "@"
-; 0xf81f
-
-WontHaveAnyEffectText: ; 0xf81f
- ; It won't have any effect.
- text_jump UnknownText_0x1c5db6
- db "@"
-; 0xf824
-
-BlockedTheBallText: ; 0xf824
- ; The trainer blocked the BALL!
- text_jump UnknownText_0x1c5dd0
- db "@"
-; 0xf829
-
-DontBeAThiefText: ; 0xf829
- ; Don't be a thief!
- text_jump UnknownText_0x1c5def
- db "@"
-; 0xf82e
-
-CyclingIsntAllowedText: ; 0xf82e
- ; Cycling isn't allowed here.
- text_jump UnknownText_0x1c5e01
- db "@"
-; 0xf833
-
-CantGetOnYourBikeText: ; 0xf833
- ; Can't get on your @ now.
- text_jump UnknownText_0x1c5e1d
- db "@"
-; 0xf838
-
-Ball_BoxIsFullText: ; 0xf838
- ; The #MON BOX is full. That can't be used now.
- text_jump UnknownText_0x1c5e3a
- db "@"
-; 0xf83d
-
-UsedItemText: ; 0xf83d
- ; used the@ .
- text_jump UnknownText_0x1c5e68
- db "@"
-; 0xf842
-
-GotOnTheItemText: ; 0xf842
- ; got on the@ .
- text_jump UnknownText_0x1c5e7b
- db "@"
-; 0xf847
-
-GotOffTheItemText: ; 0xf847
- ; got off@ the @ .
- text_jump UnknownText_0x1c5e90
- db "@"
-; 0xf84c
-
-
-ApplyPPUp: ; f84c
- ld a, MON_MOVES
- call GetPartyParamLocation
- push hl
- ld de, Buffer1
- predef FillPP
- pop hl
- ld bc, MON_PP - MON_MOVES
- add hl, bc
- ld de, Buffer1
- ld b, 0
-.loop
- inc b
- ld a, b
- cp NUM_MOVES + 1
- ret z
- ld a, [wd265]
- dec a
- jr nz, .use
- ld a, [wMenuCursorY]
- inc a
- cp b
- jr nz, .skip
-
-.use
- ld a, [hl]
- and 3 << 6
- ld a, [de] ; wasted cycle
- call nz, ComputeMaxPP
-
-.skip
- inc hl
- inc de
- jr .loop
-; f881
-
-
-
-ComputeMaxPP: ; f881
- push bc
- ; Divide the base PP by 5.
- ld a, [de]
- ld [hDividend + 3], a
- xor a
- ld [hDividend], a
- ld [hDividend + 1], a
- ld [hDividend + 2], a
- ld a, 5
- ld [hDivisor], a
- ld b, 4
- call Divide
- ; Get the number of PP, which are bits 6 and 7 of the PP value stored in RAM.
- ld a, [hl]
- ld b, a
- swap a
- and $f
- srl a
- srl a
- ld c, a
- ; If this value is 0, we are done
- and a
- jr z, .NoPPUp
-
-.loop
- ; Normally, a move with 40 PP would have 64 PP with three PP Ups.
- ; Since this would overflow into bit 6, we prevent that from happening
- ; by decreasing the extra amount of PP each PP Up provides, resulting
- ; in a maximum of 61.
- ld a, [hQuotient + 2]
- cp $8
- jr c, .okay
- ld a, $7
-
-.okay
- add b
- ld b, a
- ld a, [wd265]
- dec a
- jr z, .NoPPUp
- dec c
- jr nz, .loop
-
-.NoPPUp:
- ld [hl], b
- pop bc
- ret
-; f8b9
-
-RestoreAllPP: ; f8b9
- ld a, MON_PP
- call GetPartyParamLocation
- push hl
- ld a, MON_MOVES
- call GetPartyParamLocation
- pop de
- xor a ; PARTYMON
- ld [wMenuCursorY], a
- ld [MonType], a
- ld c, NUM_MOVES
-.loop
- ld a, [hli]
- and a
- ret z
- push hl
- push de
- push bc
- call GetMaxPPOfMove
- pop bc
- pop de
- ld a, [de]
- and 3 << 6
- ld b, a
- ld a, [wd265]
- add b
- ld [de], a
- inc de
- ld hl, wMenuCursorY
- inc [hl]
- pop hl
- dec c
- jr nz, .loop
- ret
-; f8ec
-
-
-GetMaxPPOfMove: ; f8ec
- ld a, [StringBuffer1 + 0]
- push af
- ld a, [StringBuffer1 + 1]
- push af
-
- ld a, [MonType]
- and a
-
- ld hl, PartyMon1Moves
- ld bc, PARTYMON_STRUCT_LENGTH
- jr z, .got_partymon ; PARTYMON
-
- ld hl, OTPartyMon1Moves
- dec a
- jr z, .got_partymon ; OTPARTYMON
-
- ld hl, TempMonMoves
- dec a
- jr z, .got_nonpartymon ; BOXMON
-
- ld hl, TempMonMoves ; Wasted cycles
- dec a
- jr z, .got_nonpartymon ; TEMPMON
-
- ld hl, BattleMonMoves ; WILDMON
-
-.got_nonpartymon ; BOXMON, TEMPMON, WILDMON
- call GetMthMoveOfCurrentMon
- jr .gotdatmove
-
-.got_partymon ; PARTYMON, OTPARTYMON
- call GetMthMoveOfNthPartymon
-
-.gotdatmove
- ld a, [hl]
- dec a
-
- push hl
- ld hl, Moves + MOVE_PP
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- ld b, a
- ld de, StringBuffer1
- ld [de], a
- pop hl
-
- push bc
- ld bc, MON_PP - MON_MOVES
- ld a, [MonType]
- cp WILDMON
- jr nz, .notwild
- ld bc, EnemyMonPP - EnemyMonMoves
-.notwild
- add hl, bc
- ld a, [hl]
- and 3 << 6
- pop bc
-
- or b
- ld hl, StringBuffer1 + 1
- ld [hl], a
- xor a
- ld [wd265], a
- ld a, b ; this gets lost anyway
- call ComputeMaxPP
- ld a, [hl]
- and (1 << 6) - 1
- ld [wd265], a
-
- pop af
- ld [StringBuffer1 + 1], a
- pop af
- ld [StringBuffer1 + 0], a
- ret
-; f963
-
-GetMthMoveOfNthPartymon: ; f963
- ld a, [CurPartyMon]
- call AddNTimes
-
-GetMthMoveOfCurrentMon: ; f969
- ld a, [wMenuCursorY]
- ld c, a
- ld b, 0
- add hl, bc
- ret
-; f971
-
-INCLUDE "items/pokeball_wobble.asm"
diff --git a/lib/mobile/main.asm b/lib/mobile/main.asm
index a122d2472..0d2003f2e 100644
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -2,7 +2,7 @@
charmap "<CR>", $d
-INCLUDE "gbhw.asm"
+INCLUDE "constants/hardware_constants.asm"
SECTION "Main", ROMX
diff --git a/macros.asm b/macros.asm
index 9b7bdf78c..48c2ceca4 100644
--- a/macros.asm
+++ b/macros.asm
@@ -1,320 +1,26 @@
INCLUDE "macros/enum.asm"
-INCLUDE "macros/basestats.asm"
-INCLUDE "macros/event.asm"
-INCLUDE "macros/sound.asm"
-INCLUDE "macros/text.asm"
INCLUDE "macros/charmap.asm"
-INCLUDE "macros/move_anim.asm"
-INCLUDE "macros/movement.asm"
-INCLUDE "macros/map.asm"
-INCLUDE "macros/pic.asm"
INCLUDE "macros/predef.asm"
INCLUDE "macros/rst.asm"
-INCLUDE "macros/mobile.asm"
-INCLUDE "macros/trainer.asm"
-INCLUDE "macros/trade_anim.asm"
+INCLUDE "macros/data.asm"
+INCLUDE "macros/code.asm"
+INCLUDE "macros/coords.asm"
+INCLUDE "macros/color.asm"
+INCLUDE "macros/base_stats.asm"
INCLUDE "macros/tilesets.asm"
-RGB: MACRO
-rept _NARG / 3
- dw ((\3) << 10) + ((\2) << 5) + (\1)
- shift
- shift
- shift
-endr
- ENDM
+INCLUDE "macros/scripts/audio.asm"
+INCLUDE "macros/scripts/maps.asm"
+INCLUDE "macros/scripts/event.asm"
+INCLUDE "macros/scripts/text.asm"
+INCLUDE "macros/scripts/movement.asm"
+INCLUDE "macros/scripts/effect_commands.asm"
+INCLUDE "macros/scripts/move_anim.asm"
+INCLUDE "macros/scripts/trade_anim.asm"
+INCLUDE "macros/scripts/gfx_anim.asm"
percent EQUS "* $ff / 100"
-
-dwb: MACRO
- dw \1
- db \2
- ENDM
-
-dbw: MACRO
- db \1
- dw \2
- ENDM
-
-dbbw: MACRO
- db \1, \2
- dw \3
- ENDM
-
-dbww: MACRO
- db \1
- dw \2, \3
- ENDM
-
-dbwww: MACRO
- db \1
- dw \2, \3, \4
- ENDM
-
-dn: MACRO
- rept _NARG / 2
- db (\1) << 4 + (\2)
- shift
- shift
- endr
- ENDM
-
-dx: MACRO
-x = 8 * ((\1) - 1)
- rept \1
- db ((\2) >> x) & $ff
-x = x + -8
- endr
- ENDM
-
-dt: MACRO ; three-byte (big-endian)
- dx 3, \1
- ENDM
-
-dd: MACRO ; four-byte (big-endian)
- dx 4, \1
- ENDM
-
-bigdw: MACRO ; big-endian word
- dx 2, \1
- ENDM
-
-dba: MACRO ; dbw bank, address
- rept _NARG
- dbw BANK(\1), \1
- shift
- endr
- ENDM
-
-dab: MACRO ; dwb address, bank
- rept _NARG
- dwb \1, BANK(\1)
- shift
- endr
- ENDM
-
-lb: MACRO ; r, hi, lo
- ld \1, (\2 & $ff) << 8 + (\3 & $ff)
- ENDM
-
-ln: MACRO ; r, hi, lo
- ld \1, (\2 & $f) << 4 + (\3 & $f)
- ENDM
-
-bccoord equs "coord bc,"
-decoord equs "coord de,"
-hlcoord equs "coord hl,"
-
-coord: MACRO
-; register, x, y[, origin]
- if _NARG < 4
- ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2)
- else
- ld \1, \4 + SCREEN_WIDTH * (\3) + (\2)
- endc
- ENDM
-
-dwcoord: MACRO
- rept _NARG / 2
- dw TileMap + SCREEN_WIDTH * (\2) + (\1)
- shift
- shift
- endr
- ENDM
-
-ldcoord_a: MACRO
- if _NARG < 3
- ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a
- else
- ld [\3 + SCREEN_WIDTH * (\2) + (\1)], a
- endc
- ENDM
-
-lda_coord: MACRO
- if _NARG < 3
- ld a, [TileMap + SCREEN_WIDTH * (\2) + (\1)]
- else
- ld a, [\3 + SCREEN_WIDTH * (\2) + (\1)]
- endc
- ENDM
-
-; pic animations
-frame: MACRO
- db \1
-x = \2
-IF _NARG > 2
-rept _NARG +- 2
-x = x | (1 << (\3 + 1))
- shift
-endr
-endc
- db x
- ENDM
-setrepeat: MACRO
- db $fe
- db \1
- ENDM
-dorepeat: MACRO
- db $fd
- db \1
- ENDM
-endanim: MACRO
- db $ff
- ENDM
-
-
-delanim: MACRO
- db $fc
- ENDM
-dorestart: MACRO
- db $fe
- ENDM
-
-sine_wave: MACRO
-; \1: amplitude
-
-x = 0
- rept $20
- ; Round up.
- dw (sin(x) + (sin(x) & $ff)) >> 8
-x = x + (\1) * $40000
- endr
-ENDM
-
-
-bcd: MACRO
- rept _NARG
- dn ((\1) % 100) / 10, (\1) % 10
- shift
- endr
-ENDM
-
-tiles EQUS "* $10"
-tile EQUS "+ $10 *"
-
-partymon: MACRO
- db \1
- db \2
- db \3, \4, \5, \6
- dw \7
- dt \8
-rept 8
- shift
-endr
-rept 5
- bigdw \1
- shift
-endr
- db \1, \2
- db \3, \4, \5, \6
-rept 6
- shift
-endr
- db \1
- db \2, \3, \4
- db \5
- db \6, \7
-rept 7
- shift
-endr
-rept 7
- bigdw \1
- shift
-endr
- db \1
-ENDM
-
-palettes EQUS "* 8"
-palette EQUS "+ 8 *"
-
-ldpixel: MACRO
-if _NARG >= 5
- lb \1, \2 * 8 + \4, \3 * 8 + \5
-else
- lb \1, \2 * 8, \3 * 8
-endc
-endm
-
-depixel EQUS "ldpixel de,"
-bcpixel EQUS "ldpixel bc,"
-
-dbpixel: MACRO
-if _NARG >= 4
- db \1 * 8 + \3, \2 * 8 + \4
-else
- db \1 * 8, \2 * 8
-endc
-endm
-
-bgcoord: MACRO
-IF _NARG >= 4
- ld \1, \3 * $20 + \2 + \4
-ELSE
- ld \1, \3 * $20 + \2 + VBGMap0
-ENDC
-ENDM
-
-hlbgcoord EQUS "bgcoord hl,"
-debgcoord EQUS "bgcoord de,"
-bcbgcoord EQUS "bgcoord bc,"
-bgrows EQUS "* $20"
-
-palred EQUS "$0001 *"
-palgreen EQUS "$0020 *"
-palblue EQUS "$0400 *"
-
-dsprite: MACRO
-; conditional segment is there because not every instance of
-; this macro is directly OAM
-if _NARG >= 7 ; y tile, y pxl, x tile, x pxl, vtile offset, flags, palette
- db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, (\6 << 3) + (\7 & 7)
-else
- db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
-endc
-endm
-
-jumptable: MACRO
- ld a, [\2]
- ld e, a
- ld d, 0
- ld hl, \1
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-endm
-
-maskbits: macro
-; returns to x
-; usage in rejection sampling
-; .loop
-; call Random
-; maskbits 30
-; and x
-; cp 30
-; jr nc, .loop
-
-x = 1
-rept 8
-IF \1 > x
-x = (x + 1) * 2 +- 1
-ENDC
-endr
-endm
-
-homecall: MACRO
- ld a, [hROMBank]
- push af
- ld a, BANK(\1)
- rst Bankswitch
-
- call \1
-
- pop af
- rst Bankswitch
-ENDM
-
+tiles EQUS "* LEN_2BPP_TILE"
+tile EQUS "+ LEN_2BPP_TILE *"
diff --git a/macros/base_stats.asm b/macros/base_stats.asm
new file mode 100644
index 000000000..f7c841634
--- /dev/null
+++ b/macros/base_stats.asm
@@ -0,0 +1,67 @@
+; Used in data/pokemon/base_stats/*.asm
+
+define: macro
+if !def(\1)
+\1 equs \2
+endc
+endm
+
+const_value = 0
+
+add_tm: MACRO
+if !def(TM01)
+TM01 = const_value
+ enum_start 1
+endc
+ define _\@_1, "TM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
+
+add_hm: MACRO
+if !def(HM01)
+HM01 = const_value
+endc
+ define _\@_1, "HM_\1"
+ const _\@_1
+ enum \1_TMNUM
+ENDM
+
+add_mt: MACRO
+ enum \1_TMNUM
+ENDM
+
+; N TMs/HMs need (N+7)/8 bytes for their bit flags.
+; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits.
+tmhm: MACRO
+tms1 = 0
+tms2 = 0
+tms3 = 0
+rept _NARG
+ if def(\1_TMNUM)
+ if \1_TMNUM < 24 + 1
+tms1 = tms1 | (1 << ((\1_TMNUM) - 1))
+ elif \1_TMNUM < 48 + 1
+tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24))
+ else
+tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48))
+ endc
+ else
+ fail "\1 is not a TM, HM, or move tutor move"
+ endc
+ shift
+endr
+
+rept 3
+ db tms1 & $ff
+tms1 = tms1 >> 8
+endr
+rept 3
+ db tms2 & $ff
+tms2 = tms2 >> 8
+endr
+rept 2
+ db tms3 & $ff
+tms3 = tms3 >> 8
+endr
+ENDM
diff --git a/macros/basestats.asm b/macros/basestats.asm
deleted file mode 100644
index f3e98b64a..000000000
--- a/macros/basestats.asm
+++ /dev/null
@@ -1,65 +0,0 @@
-define: macro
-if !def(\1)
-\1 equs \2
-endc
-endm
-
-const_value = 0
-
-add_tm: MACRO
-if !def(TM01)
-TM01 = const_value
- enum_start 1
-endc
- define _\@_1, "TM_\1"
- const _\@_1
- enum \1_TMNUM
-ENDM
-
-add_hm: MACRO
-if !def(HM01)
-HM01 = const_value
-endc
- define _\@_1, "HM_\1"
- const _\@_1
- enum \1_TMNUM
-ENDM
-
-add_mt: MACRO
- enum \1_TMNUM
-ENDM
-
-; N TMs/HMs need (N+7)/8 bytes for their bit flags.
-; The rgbasm integers tms1, tms2, tms3 each hold 3 bytes, or 24 bits.
-tmhm: MACRO
-tms1 = 0
-tms2 = 0
-tms3 = 0
-rept _NARG
- if def(\1_TMNUM)
- if \1_TMNUM < 24 + 1
-tms1 = tms1 | (1 << ((\1_TMNUM) - 1))
- elif \1_TMNUM < 48 + 1
-tms2 = tms2 | (1 << ((\1_TMNUM) - 1 - 24))
- else
-tms3 = tms3 | (1 << ((\1_TMNUM) - 1 - 48))
- endc
- else
- fail "\1 is not a TM, HM, or move tutor move"
- endc
- shift
-endr
-
-rept 3
- db tms1 & $ff
-tms1 = tms1 >> 8
-endr
-rept 3
- db tms2 & $ff
-tms2 = tms2 >> 8
-endr
-rept 2
- db tms3 & $ff
-tms3 = tms3 >> 8
-endr
-ENDM
diff --git a/macros/charmap.asm b/macros/charmap.asm
index b936b0953..fd2d371fd 100644
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -1,208 +1,209 @@
; Control characters
- charmap "<START>", $00
- charmap "<PLAY_G>", $14 ; gendered PlayerName; same as "<PLAYER>" in English
- charmap "<DAY>", $15
- charmap "¯", $1f ; soft linebreak
- charmap "<LNBRK>", $22
- charmap "<POKE>", $24 ; "<PO><KE>"
- charmap "%", $25
- charmap "<RED>", $38 ; RedsName
- charmap "<GREEN>", $39 ; GreensName
- charmap "<ENEMY>", $3f
- charmap "<MOM>", $49 ; MomsName
- charmap "<PKMN>", $4a ; "<PK><MN>"
- charmap "<NEXT>", $4e
- charmap "<LINE>", $4f
-
- charmap "@", $50
- charmap "<PARA>", $51
- charmap "<PLAYER>", $52 ; PlayerName
- charmap "<RIVAL>", $53
- charmap "#", $54
- charmap "<CONT>", $55
- charmap "<......>", $56 ; "……"
- charmap "<DONE>", $57
- charmap "<PROMPT>", $58
- charmap "<TARGET>", $59
- charmap "<USER>", $5a
- charmap "<PC>", $5b ; "PC"
- charmap "<TM>", $5c ; "TM"
- charmap "<TRNER>", $5d ; "TRAINER"
- charmap "<ROCKET>", $5e ; "ROCKET"
- charmap "<DEXEND>", $5f
-
-; Actual characters (from gfx/misc/font_extra.png)
-
- charmap "<BOLD_A>", $60 ; unused
- charmap "<BOLD_B>", $61 ; unused
- charmap "<BOLD_C>", $62 ; unused
- charmap "<BOLD_D>", $63 ; unused
- charmap "<BOLD_E>", $64 ; unused
- charmap "<BOLD_F>", $65 ; unused
- charmap "<BOLD_G>", $66 ; unused
- charmap "<BOLD_H>", $67 ; unused
- charmap "<BOLD_I>", $68 ; unused
- charmap "<BOLD_V>", $69
- charmap "<BOLD_S>", $6a
- charmap "<BOLD_L>", $6b ; unused
- charmap "<BOLD_M>", $6c ; unused
- charmap "<COLON>", $6d ; colon with tinier dots than ":"
- charmap "ぃ", $6e ; hiragana small i, unused
- charmap "ぅ", $6f ; hiragana small u, unused
- charmap "<PO>", $70
- charmap "<KE>", $71
- charmap "<``>", $72 ; opening quote
- charmap "<''>", $73 ; closing quote
- charmap "·", $74 ; middle dot, unused
- charmap "…", $75 ; ellipsis
- charmap "ぁ", $76 ; hiragana small a, unused
- charmap "ぇ", $77 ; hiragana small e, unused
- charmap "ぉ", $78 ; hiragana small o, unused
-
- charmap "┌", $79
- charmap "─", $7a
- charmap "┐", $7b
- charmap "│", $7c
- charmap "└", $7d
- charmap "┘", $7e
- charmap " ", $7f
-
-; Actual characters (from gfx/misc/font_battle_extra.png)
-
- charmap "<LV>", $6e
-
- charmap "<ど>", $70 ; hiragana small do, unused
- charmap "◀", $71
- charmap "『", $72 ; Japanese opening quote, unused
- charmap "<ID>", $73
- charmap "№", $74
+ charmap "<START>", $00
+ charmap "<PLAY_G>", $14 ; gendered PlayerName; same as "<PLAYER>" in English
+ charmap "<DAY>", $15
+ charmap "¯", $1f ; soft linebreak
+ charmap "<LNBRK>", $22
+ charmap "<KOUGEKI>", $23 ; "こうげき"
+ charmap "<POKE>", $24 ; "<PO><KE>"
+ charmap "%", $25
+ charmap "<RED>", $38 ; RedsName
+ charmap "<GREEN>", $39 ; GreensName
+ charmap "<ENEMY>", $3f
+ charmap "<MOM>", $49 ; MomsName
+ charmap "<PKMN>", $4a ; "<PK><MN>"
+ charmap "<NEXT>", $4e
+ charmap "<LINE>", $4f
+
+ charmap "@", $50 ; string terminator
+ charmap "<PARA>", $51
+ charmap "<PLAYER>", $52 ; PlayerName
+ charmap "<RIVAL>", $53
+ charmap "#", $54 ; "POKé"
+ charmap "<CONT>", $55
+ charmap "<......>", $56 ; "……"
+ charmap "<DONE>", $57
+ charmap "<PROMPT>", $58
+ charmap "<TARGET>", $59
+ charmap "<USER>", $5a
+ charmap "<PC>", $5b ; "PC"
+ charmap "<TM>", $5c ; "TM"
+ charmap "<TRNER>", $5d ; "TRAINER"
+ charmap "<ROCKET>", $5e ; "ROCKET"
+ charmap "<DEXEND>", $5f
+
+; Actual characters (from gfx/font/font_extra.png)
+
+ charmap "<BOLD_A>", $60 ; unused
+ charmap "<BOLD_B>", $61 ; unused
+ charmap "<BOLD_C>", $62 ; unused
+ charmap "<BOLD_D>", $63 ; unused
+ charmap "<BOLD_E>", $64 ; unused
+ charmap "<BOLD_F>", $65 ; unused
+ charmap "<BOLD_G>", $66 ; unused
+ charmap "<BOLD_H>", $67 ; unused
+ charmap "<BOLD_I>", $68 ; unused
+ charmap "<BOLD_V>", $69
+ charmap "<BOLD_S>", $6a
+ charmap "<BOLD_L>", $6b ; unused
+ charmap "<BOLD_M>", $6c ; unused
+ charmap "<COLON>", $6d ; colon with tinier dots than ":"
+ charmap "ぃ", $6e ; hiragana small i, unused
+ charmap "ぅ", $6f ; hiragana small u, unused
+ charmap "<PO>", $70
+ charmap "<KE>", $71
+ charmap "<``>", $72 ; opening quote
+ charmap "<''>", $73 ; closing quote
+ charmap "·", $74 ; middle dot, unused
+ charmap "…", $75 ; ellipsis
+ charmap "ぁ", $76 ; hiragana small a, unused
+ charmap "ぇ", $77 ; hiragana small e, unused
+ charmap "ぉ", $78 ; hiragana small o, unused
+
+ charmap "┌", $79
+ charmap "─", $7a
+ charmap "┐", $7b
+ charmap "│", $7c
+ charmap "└", $7d
+ charmap "┘", $7e
+ charmap " ", $7f
+
+; Actual characters (from gfx/font/font_battle_extra.png)
+
+ charmap "<LV>", $6e
+
+ charmap "<ど>", $70 ; hiragana small do, unused
+ charmap "◀", $71
+ charmap "『", $72 ; Japanese opening quote, unused
+ charmap "<ID>", $73
+ charmap "№", $74
; Actual characters (from other graphics files)
- charmap "|", $31 ; from gfx/stats/stats_tiles
-
- charmap "<SHINY>", $3f ; gfx/stats/shiny
-
- charmap "<BLACK>", $60 ; from gfx/mobile/phone_tiles.2bpp
- charmap "▲", $61 ; gfx/font/up_arrow.png
- charmap "<PHONE>", $62 ; gfx/mobile/overworld_phone_icon.2bpp
- charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp
-
- charmap "′", $6e ; gfx/font/feet_inches.png
- charmap "″", $6f ; gfx/font/feet_inches.png
-
-; Actual characters (from gfx/misc/font.png)
-
- charmap "A", $80
- charmap "B", $81
- charmap "C", $82
- charmap "D", $83
- charmap "E", $84
- charmap "F", $85
- charmap "G", $86
- charmap "H", $87
- charmap "I", $88
- charmap "J", $89
- charmap "K", $8a
- charmap "L", $8b
- charmap "M", $8c
- charmap "N", $8d
- charmap "O", $8e
- charmap "P", $8f
- charmap "Q", $90
- charmap "R", $91
- charmap "S", $92
- charmap "T", $93
- charmap "U", $94
- charmap "V", $95
- charmap "W", $96
- charmap "X", $97
- charmap "Y", $98
- charmap "Z", $99
-
- charmap "(", $9a
- charmap ")", $9b
- charmap ":", $9c
- charmap ";", $9d
- charmap "[", $9e
- charmap "]", $9f
-
- charmap "a", $a0
- charmap "b", $a1
- charmap "c", $a2
- charmap "d", $a3
- charmap "e", $a4
- charmap "f", $a5
- charmap "g", $a6
- charmap "h", $a7
- charmap "i", $a8
- charmap "j", $a9
- charmap "k", $aa
- charmap "l", $ab
- charmap "m", $ac
- charmap "n", $ad
- charmap "o", $ae
- charmap "p", $af
- charmap "q", $b0
- charmap "r", $b1
- charmap "s", $b2
- charmap "t", $b3
- charmap "u", $b4
- charmap "v", $b5
- charmap "w", $b6
- charmap "x", $b7
- charmap "y", $b8
- charmap "z", $b9
-
- charmap "Ä", $c0
- charmap "Ö", $c1
- charmap "Ü", $c2
- charmap "ä", $c3
- charmap "ö", $c4
- charmap "ü", $c5
-
- charmap "'d", $d0
- charmap "'l", $d1
- charmap "'m", $d2
- charmap "'r", $d3
- charmap "'s", $d4
- charmap "'t", $d5
- charmap "'v", $d6
-
- charmap "←", $df
- charmap "'", $e0
- charmap "<PK>", $e1
- charmap "<MN>", $e2
- charmap "-", $e3
-
- charmap "?", $e6
- charmap "!", $e7
- charmap ".", $e8
- charmap "&", $e9
-
- charmap "é", $ea
- charmap "→", $eb
- charmap "▷", $ec
- charmap "▶", $ed
- charmap "▼", $ee
- charmap "♂", $ef
- charmap "¥", $f0
- charmap "×", $f1
- charmap "<DOT>", $f2 ; same as "." in English
- charmap "/", $f3
- charmap ",", $f4
- charmap "♀", $f5
-
- charmap "0", $f6
- charmap "1", $f7
- charmap "2", $f8
- charmap "3", $f9
- charmap "4", $fa
- charmap "5", $fb
- charmap "6", $fc
- charmap "7", $fd
- charmap "8", $fe
- charmap "9", $ff
+ charmap "|", $31 ; from gfx/stats/stats_tiles
+
+ charmap "<SHINY>", $3f ; gfx/stats/shiny
+
+ charmap "<BLACK>", $60 ; from gfx/mobile/phone_tiles.2bpp
+ charmap "▲", $61 ; gfx/font/up_arrow.png
+ charmap "<PHONE>", $62 ; gfx/font/overworld_phone_icon.2bpp
+ charmap "_", $62 ; from gfx/battle/hp_exp_bar_border.1bpp
+
+ charmap "′", $6e ; gfx/font/feet_inches.png
+ charmap "″", $6f ; gfx/font/feet_inches.png
+
+; Actual characters (from gfx/font/font.png)
+
+ charmap "A", $80
+ charmap "B", $81
+ charmap "C", $82
+ charmap "D", $83
+ charmap "E", $84
+ charmap "F", $85
+ charmap "G", $86
+ charmap "H", $87
+ charmap "I", $88
+ charmap "J", $89
+ charmap "K", $8a
+ charmap "L", $8b
+ charmap "M", $8c
+ charmap "N", $8d
+ charmap "O", $8e
+ charmap "P", $8f
+ charmap "Q", $90
+ charmap "R", $91
+ charmap "S", $92
+ charmap "T", $93
+ charmap "U", $94
+ charmap "V", $95
+ charmap "W", $96
+ charmap "X", $97
+ charmap "Y", $98
+ charmap "Z", $99
+
+ charmap "(", $9a
+ charmap ")", $9b
+ charmap ":", $9c
+ charmap ";", $9d
+ charmap "[", $9e
+ charmap "]", $9f
+
+ charmap "a", $a0
+ charmap "b", $a1
+ charmap "c", $a2
+ charmap "d", $a3
+ charmap "e", $a4
+ charmap "f", $a5
+ charmap "g", $a6
+ charmap "h", $a7
+ charmap "i", $a8
+ charmap "j", $a9
+ charmap "k", $aa
+ charmap "l", $ab
+ charmap "m", $ac
+ charmap "n", $ad
+ charmap "o", $ae
+ charmap "p", $af
+ charmap "q", $b0
+ charmap "r", $b1
+ charmap "s", $b2
+ charmap "t", $b3
+ charmap "u", $b4
+ charmap "v", $b5
+ charmap "w", $b6
+ charmap "x", $b7
+ charmap "y", $b8
+ charmap "z", $b9
+
+ charmap "Ä", $c0
+ charmap "Ö", $c1
+ charmap "Ü", $c2
+ charmap "ä", $c3
+ charmap "ö", $c4
+ charmap "ü", $c5
+
+ charmap "'d", $d0
+ charmap "'l", $d1
+ charmap "'m", $d2
+ charmap "'r", $d3
+ charmap "'s", $d4
+ charmap "'t", $d5
+ charmap "'v", $d6
+
+ charmap "←", $df
+ charmap "'", $e0
+ charmap "<PK>", $e1
+ charmap "<MN>", $e2
+ charmap "-", $e3
+
+ charmap "?", $e6
+ charmap "!", $e7
+ charmap ".", $e8
+ charmap "&", $e9
+
+ charmap "é", $ea
+ charmap "→", $eb
+ charmap "▷", $ec
+ charmap "▶", $ed
+ charmap "▼", $ee
+ charmap "♂", $ef
+ charmap "¥", $f0
+ charmap "×", $f1
+ charmap "<DOT>", $f2 ; same as "." in English
+ charmap "/", $f3
+ charmap ",", $f4
+ charmap "♀", $f5
+
+ charmap "0", $f6
+ charmap "1", $f7
+ charmap "2", $f8
+ charmap "3", $f9
+ charmap "4", $fa
+ charmap "5", $fb
+ charmap "6", $fc
+ charmap "7", $fd
+ charmap "8", $fe
+ charmap "9", $ff
; Japanese kana, for those bits of text that were not translated to English
diff --git a/macros/code.asm b/macros/code.asm
new file mode 100644
index 000000000..5e247e9a3
--- /dev/null
+++ b/macros/code.asm
@@ -0,0 +1,55 @@
+; Syntactic sugar macros
+
+lb: MACRO ; r, hi, lo
+ ld \1, (\2 & $ff) << 8 + (\3 & $ff)
+ ENDM
+
+ln: MACRO ; r, hi, lo
+ ld \1, (\2 & $f) << 4 + (\3 & $f)
+ ENDM
+
+ldpixel: MACRO
+if _NARG >= 5
+ lb \1, \2 * 8 + \4, \3 * 8 + \5
+else
+ lb \1, \2 * 8, \3 * 8
+endc
+endm
+
+depixel EQUS "ldpixel de,"
+bcpixel EQUS "ldpixel bc,"
+
+
+; Design patterns
+
+jumptable: MACRO
+ ld a, [\2]
+ ld e, a
+ ld d, 0
+ ld hl, \1
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+endm
+
+; Many mobile functions were dummied out in localization.
+mobile EQUS "ret"
+
+maskbits: macro
+; example usage in rejection sampling:
+; .loop
+; call Random
+; maskbits 30
+; cp 30
+; jr nc, .loop
+x = 1
+rept 8
+IF \1 > x
+x = (x + 1) * 2 +- 1
+ENDC
+endr
+ and x
+endm
diff --git a/macros/color.asm b/macros/color.asm
new file mode 100644
index 000000000..35d69fe6f
--- /dev/null
+++ b/macros/color.asm
@@ -0,0 +1,15 @@
+RGB: MACRO
+rept _NARG / 3
+ dw ((\3) << 10) + ((\2) << 5) + (\1)
+ shift
+ shift
+ shift
+endr
+ENDM
+
+palettes EQUS "* 8"
+palette EQUS "+ 8 *"
+
+palred EQUS "$0001 *"
+palgreen EQUS "$0020 *"
+palblue EQUS "$0400 *"
diff --git a/macros/coords.asm b/macros/coords.asm
new file mode 100644
index 000000000..2a672c3d0
--- /dev/null
+++ b/macros/coords.asm
@@ -0,0 +1,51 @@
+bccoord equs "coord bc,"
+decoord equs "coord de,"
+hlcoord equs "coord hl,"
+
+coord: MACRO
+; register, x, y[, origin]
+ if _NARG < 4
+ ld \1, TileMap + SCREEN_WIDTH * (\3) + (\2)
+ else
+ ld \1, \4 + SCREEN_WIDTH * (\3) + (\2)
+ endc
+ ENDM
+
+dwcoord: MACRO
+ rept _NARG / 2
+ dw TileMap + SCREEN_WIDTH * (\2) + (\1)
+ shift
+ shift
+ endr
+ ENDM
+
+ldcoord_a: MACRO
+ if _NARG < 3
+ ld [TileMap + SCREEN_WIDTH * (\2) + (\1)], a
+ else
+ ld [\3 + SCREEN_WIDTH * (\2) + (\1)], a
+ endc
+ ENDM
+
+lda_coord: MACRO
+ if _NARG < 3
+ ld a, [TileMap + SCREEN_WIDTH * (\2) + (\1)]
+ else
+ ld a, [\3 + SCREEN_WIDTH * (\2) + (\1)]
+ endc
+ ENDM
+
+
+bgrows EQUS "* $20" ; SCREEN_WIDTH
+
+hlbgcoord EQUS "bgcoord hl,"
+debgcoord EQUS "bgcoord de,"
+bcbgcoord EQUS "bgcoord bc,"
+
+bgcoord: MACRO
+IF _NARG >= 4
+ ld \1, \3 bgrows + \2 + \4
+ELSE
+ ld \1, \3 bgrows + \2 + VBGMap0
+ENDC
+ENDM
diff --git a/macros/data.asm b/macros/data.asm
new file mode 100644
index 000000000..cf4af0338
--- /dev/null
+++ b/macros/data.asm
@@ -0,0 +1,121 @@
+; Constant data (db, dw, dl) macros
+
+dwb: MACRO
+ dw \1
+ db \2
+ ENDM
+
+dbw: MACRO
+ db \1
+ dw \2
+ ENDM
+
+dbbw: MACRO
+ db \1, \2
+ dw \3
+ ENDM
+
+dbww: MACRO
+ db \1
+ dw \2, \3
+ ENDM
+
+dbwww: MACRO
+ db \1
+ dw \2, \3, \4
+ ENDM
+
+dn: MACRO ; nybbles
+ rept _NARG / 2
+ db ((\1) << 4) | (\2)
+ shift
+ shift
+ endr
+ ENDM
+
+dc: MACRO ; "crumbs"
+ rept _NARG / 4
+ db ((\1) << 6) | ((\2) << 4) | ((\3) << 2) | (\4)
+ shift
+ shift
+ shift
+ shift
+ endr
+ ENDM
+
+dx: MACRO
+x = 8 * ((\1) - 1)
+ rept \1
+ db ((\2) >> x) & $ff
+x = x + -8
+ endr
+ ENDM
+
+dt: MACRO ; three-byte (big-endian)
+ dx 3, \1
+ ENDM
+
+dd: MACRO ; four-byte (big-endian)
+ dx 4, \1
+ ENDM
+
+bigdw: MACRO ; big-endian word
+ dx 2, \1
+ ENDM
+
+dba: MACRO ; dbw bank, address
+ rept _NARG
+ dbw BANK(\1), \1
+ shift
+ endr
+ ENDM
+
+dab: MACRO ; dwb address, bank
+ rept _NARG
+ dwb \1, BANK(\1)
+ shift
+ endr
+ ENDM
+
+dba_pic: MACRO ; dbw bank, address
+ db BANK(\1) - PICS_FIX
+ dw \1
+ENDM
+
+
+dbpixel: MACRO
+if _NARG >= 4
+ db \1 * 8 + \3, \2 * 8 + \4
+else
+ db \1 * 8, \2 * 8
+endc
+endm
+
+dsprite: MACRO
+; conditional segment is there because not every instance of
+; this macro is directly OAM
+if _NARG >= 7 ; y tile, y pxl, x tile, x pxl, vtile offset, flags, palette
+ db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, (\6 << 3) + (\7 & 7)
+else
+ db (\1 * 8) % $100 + \2, (\3 * 8) % $100 + \4, \5, \6
+endc
+endm
+
+
+sine_wave: MACRO
+; \1: amplitude
+x = 0
+ rept $20
+ ; Round up.
+ dw (sin(x) + (sin(x) & $ff)) >> 8
+x = x + (\1) * $40000
+ endr
+ENDM
+
+
+bcd: MACRO
+ rept _NARG
+ dn ((\1) % 100) / 10, (\1) % 10
+ shift
+ endr
+ENDM
diff --git a/macros/event.asm b/macros/event.asm
deleted file mode 100644
index b00b6a6da..000000000
--- a/macros/event.asm
+++ /dev/null
@@ -1,1069 +0,0 @@
-; ScriptCommandTable indexes (see engine/scripting.asm)
- enum_start
-
- enum scall_command
-scall: macro
- db scall_command
- dw \1 ; pointer
- endm
-
- enum farscall_command
-farscall: macro
- db farscall_command
- dba \1
- endm
-
- enum ptcall_command
-ptcall: macro
- db ptcall_command
- dw \1 ; pointer
- endm
-
- enum jump_command
-jump: macro
- db jump_command
- dw \1 ; pointer
- endm
-
- enum farjump_command
-farjump: macro
- db farjump_command
- dba \1
- endm
-
- enum ptjump_command
-ptjump: macro
- db ptjump_command
- dw \1 ; pointer
- endm
-
- enum if_equal_command
-if_equal: macro
- db if_equal_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum if_not_equal_command
-if_not_equal: macro
- db if_not_equal_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum iffalse_command
-iffalse: macro
- db iffalse_command
- dw \1 ; pointer
- endm
-
- enum iftrue_command
-iftrue: macro
- db iftrue_command
- dw \1 ; pointer
- endm
-
- enum if_greater_than_command
-if_greater_than: macro
- db if_greater_than_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum if_less_than_command
-if_less_than: macro
- db if_less_than_command
- db \1 ; byte
- dw \2 ; pointer
- endm
-
- enum jumpstd_command
-jumpstd: macro
- db jumpstd_command
- dw \1 ; predefined_script
- endm
-
- enum callstd_command
-callstd: macro
- db callstd_command
- dw \1 ; predefined_script
- endm
-
- enum callasm_command
-callasm: macro
- db callasm_command
- dba \1
- endm
-
- enum special_command
-special: macro
- db special_command
- dw (\1Special - SpecialsPointers) / 3
- endm
-
-add_special: MACRO
-\1Special::
- dba \1
-ENDM
-
- enum ptcallasm_command
-ptcallasm: macro
- db ptcallasm_command
- dw \1 ; asm
- endm
-
- enum checkmaptriggers_command
-checkmaptriggers: macro
- db checkmaptriggers_command
- map \1 ; map
- endm
-
- enum domaptrigger_command
-domaptrigger: macro
- db domaptrigger_command
- map \1 ; map
- db \2 ; trigger_id
- endm
-
- enum checktriggers_command
-checktriggers: macro
- db checktriggers_command
- endm
-
- enum dotrigger_command
-dotrigger: macro
- db dotrigger_command
- db \1 ; trigger_id
- endm
-
- enum writebyte_command
-writebyte: macro
- db writebyte_command
- db \1 ; value
- endm
-
- enum addvar_command
-addvar: macro
- db addvar_command
- db \1 ; value
- endm
-
- enum random_command
-random: macro
- db random_command
- db \1 ; input
- endm
-
- enum checkver_command
-checkver: macro
- db checkver_command
- endm
-
- enum copybytetovar_command
-copybytetovar: macro
- db copybytetovar_command
- dw \1 ; address
- endm
-
- enum copyvartobyte_command
-copyvartobyte: macro
- db copyvartobyte_command
- dw \1 ; address
- endm
-
- enum loadvar_command
-loadvar: macro
- db loadvar_command
- dw \1 ; address
- db \2 ; value
- endm
-
- enum checkcode_command
-checkcode: macro
- db checkcode_command
- db \1 ; variable_id
- endm
-
- enum writevarcode_command
-writevarcode: macro
- db writevarcode_command
- db \1 ; variable_id
- endm
-
- enum writecode_command
-writecode: macro
- db writecode_command
- db \1 ; variable_id
- db \2 ; value
- endm
-
- enum giveitem_command
-giveitem: macro
- db giveitem_command
- db \1 ; item
-if _NARG == 2
- db \2 ; quantity
-else
- db 1
-endc
- endm
-
- enum takeitem_command
-takeitem: macro
- db takeitem_command
- db \1 ; item
-if _NARG == 2
- db \2 ; quantity
-else
- db 1
-endc
- endm
-
- enum checkitem_command
-checkitem: macro
- db checkitem_command
- db \1 ; item
- endm
-
- enum givemoney_command
-givemoney: macro
- db givemoney_command
- db \1 ; account
- dt \2 ; money
- endm
-
- enum takemoney_command
-takemoney: macro
- db takemoney_command
- db \1 ; account
- dt \2 ; money
- endm
-
- enum checkmoney_command
-checkmoney: macro
- db checkmoney_command
- db \1 ; account
- dt \2 ; money
- endm
-
- enum givecoins_command
-givecoins: macro
- db givecoins_command
- dw \1 ; coins
- endm
-
- enum takecoins_command
-takecoins: macro
- db takecoins_command
- dw \1 ; coins
- endm
-
- enum checkcoins_command
-checkcoins: macro
- db checkcoins_command
- dw \1 ; coins
- endm
-
- enum addcellnum_command
-addcellnum: macro
- db addcellnum_command
- db \1 ; person
- endm
-
- enum delcellnum_command
-delcellnum: macro
- db delcellnum_command
- db \1 ; person
- endm
-
- enum checkcellnum_command
-checkcellnum: macro
- db checkcellnum_command
- db \1 ; person
- endm
-
- enum checktime_command
-checktime: macro
- db checktime_command
- db \1 ; time
- endm
-
-checkmorn EQUS "checktime MORN"
-checkday EQUS "checktime DAY"
-checknite EQUS "checktime NITE"
-
- enum checkpoke_command
-checkpoke: macro
- db checkpoke_command
- db \1 ; pkmn
- endm
-
- enum givepoke_command
-givepoke: macro
- db givepoke_command
- db \1 ; pokemon
- db \2 ; level
- if _NARG >= 3
- db \3 ; item
- if _NARG >= 4
- db \4 ; trainer
- if \4
- dw \5 ; trainer_name_pointer
- dw \6 ; pkmn_nickname
- endc
- else
- db 0
- endc
- else
- db 0, 0
- endc
- endm
-
- enum giveegg_command
-giveegg: macro
- db giveegg_command
- db \1 ; pkmn
- db \2 ; level
- endm
-
- enum givepokeitem_command
-givepokeitem: macro
- db givepokeitem_command
- dw \1 ; pointer
- endm
-
- enum checkpokeitem_command
-checkpokeitem: macro
- db checkpokeitem_command
- dw \1 ; pointer
- endm
-
- enum checkevent_command
-checkevent: macro
- db checkevent_command
- dw \1 ; event_flag
- endm
-
- enum clearevent_command
-clearevent: macro
- db clearevent_command
- dw \1 ; event_flag
- endm
-
- enum setevent_command
-setevent: macro
- db setevent_command
- dw \1 ; event_flag
- endm
-
- enum checkflag_command
-checkflag: macro
- db checkflag_command
- dw \1 ; engine_flag
- endm
-
- enum clearflag_command
-clearflag: macro
- db clearflag_command
- dw \1 ; engine_flag
- endm
-
- enum setflag_command
-setflag: macro
- db setflag_command
- dw \1 ; engine_flag
- endm
-
- enum wildon_command
-wildon: macro
- db wildon_command
- endm
-
- enum wildoff_command
-wildoff: macro
- db wildoff_command
- endm
-
- enum xycompare_command
-xycompare: macro
- db xycompare_command
- dw \1 ; pointer
- endm
-
- enum warpmod_command
-warpmod: macro
- db warpmod_command
- db \1 ; warp_id
- map \2 ; map
- endm
-
- enum blackoutmod_command
-blackoutmod: macro
- db blackoutmod_command
- map \1 ; map
- endm
-
- enum warp_command
-warp: macro
- db warp_command
- map \1 ; map
- db \2 ; x
- db \3 ; y
- endm
-
- enum readmoney_command
-readmoney: macro
- db readmoney_command
- db \1 ; account
- db \2 ; memory
- endm
-
- enum readcoins_command
-readcoins: macro
- db readcoins_command
- db \1 ; memory
- endm
-
- enum RAM2MEM_command
-RAM2MEM: macro
- db RAM2MEM_command
- db \1 ; memory
- endm
-
- enum pokenamemem_command
-pokenamemem: macro
- db pokenamemem_command
- db \1 ; pokemon
- db \2 ; memory
- endm
-
- enum itemtotext_command
-itemtotext: macro
- db itemtotext_command
- db \1 ; item
- db \2 ; memory
- endm
-
- enum mapnametotext_command
-mapnametotext: macro
- db mapnametotext_command
- db \1 ; memory
- endm
-
- enum trainertotext_command
-trainertotext: macro
- db trainertotext_command
- db \1 ; trainer_id
- db \2 ; trainer_group
- db \3 ; memory
- endm
-
- enum stringtotext_command
-stringtotext: macro
- db stringtotext_command
- dw \1 ; text_pointer
- db \2 ; memory
- endm
-
- enum itemnotify_command
-itemnotify: macro
- db itemnotify_command
- endm
-
- enum pocketisfull_command
-pocketisfull: macro
- db pocketisfull_command
- endm
-
- enum opentext_command
-opentext: macro
- db opentext_command
- endm
-
- enum refreshscreen_command
-refreshscreen: macro
- db refreshscreen_command
- db \1 ; dummy
- endm
-
- enum closetext_command
-closetext: macro
- db closetext_command
- endm
-
- enum loadbytec2cf_command
-loadbytec2cf: macro
- db loadbytec2cf_command
- db \1 ; byte
- endm
-
- enum farwritetext_command
-farwritetext: macro
- db farwritetext_command
- dba \1
- endm
-
- enum writetext_command
-writetext: macro
- db writetext_command
- dw \1 ; text_pointer
- endm
-
- enum repeattext_command
-repeattext: macro
- db repeattext_command
- db \1 ; byte
- db \2 ; byte
- endm
-
- enum yesorno_command
-yesorno: macro
- db yesorno_command
- endm
-
- enum loadmenudata_command
-loadmenudata: macro
- db loadmenudata_command
- dw \1 ; data
- endm
-
- enum closewindow_command
-closewindow: macro
- db closewindow_command
- endm
-
- enum jumptextfaceplayer_command
-jumptextfaceplayer: macro
- db jumptextfaceplayer_command
- dw \1 ; text_pointer
- endm
-
-; IF _CRYSTAL
- enum farjumptext_command
-farjumptext: macro
- db farjumptext_command
- dba \1
- endm
-; ENDC
-
- enum jumptext_command
-jumptext: macro
- db jumptext_command
- dw \1 ; text_pointer
- endm
-
- enum waitbutton_command
-waitbutton: macro
- db waitbutton_command
- endm
-
- enum buttonsound_command
-buttonsound: macro
- db buttonsound_command
- endm
-
- enum pokepic_command
-pokepic: macro
- db pokepic_command
- db \1 ; pokemon
- endm
-
- enum closepokepic_command
-closepokepic: macro
- db closepokepic_command
- endm
-
- enum _2dmenu_command
-_2dmenu: macro
- db _2dmenu_command
- endm
-
- enum verticalmenu_command
-verticalmenu: macro
- db verticalmenu_command
- endm
-
- enum loadpikachudata_command
-loadpikachudata: macro
- db loadpikachudata_command
- endm
-
- enum randomwildmon_command
-randomwildmon: macro
- db randomwildmon_command
- endm
-
- enum loadmemtrainer_command
-loadmemtrainer: macro
- db loadmemtrainer_command
- endm
-
- enum loadwildmon_command
-loadwildmon: macro
- db loadwildmon_command
- db \1 ; pokemon
- db \2 ; level
- endm
-
- enum loadtrainer_command
-loadtrainer: macro
- db loadtrainer_command
- db \1 ; trainer_group
- db \2 ; trainer_id
- endm
-
- enum startbattle_command
-startbattle: macro
- db startbattle_command
- endm
-
- enum reloadmapafterbattle_command
-reloadmapafterbattle: macro
- db reloadmapafterbattle_command
- endm
-
- enum catchtutorial_command
-catchtutorial: macro
- db catchtutorial_command
- db \1 ; byte
- endm
-
- enum trainertext_command
-trainertext: macro
- db trainertext_command
- db \1 ; which_text
- endm
-
- enum trainerflagaction_command
-trainerflagaction: macro
- db trainerflagaction_command
- db \1 ; action
- endm
-
- enum winlosstext_command
-winlosstext: macro
- db winlosstext_command
- dw \1 ; win_text_pointer
- dw \2 ; loss_text_pointer
- endm
-
- enum scripttalkafter_command
-scripttalkafter: macro
- db scripttalkafter_command
- endm
-
- enum end_if_just_battled_command
-end_if_just_battled: macro
- db end_if_just_battled_command
- endm
-
- enum check_just_battled_command
-check_just_battled: macro
- db check_just_battled_command
- endm
-
- enum setlasttalked_command
-setlasttalked: macro
- db setlasttalked_command
- db \1 ; person
- endm
-
- enum applymovement_command
-applymovement: macro
- db applymovement_command
- db \1 ; person
- dw \2 ; data
- endm
-
- enum applymovement2_command
-applymovement2: macro
- db applymovement2_command
- dw \1 ; data
- endm
-
- enum faceplayer_command
-faceplayer: macro
- db faceplayer_command
- endm
-
- enum faceperson_command
-faceperson: macro
- db faceperson_command
- db \1 ; person1
- db \2 ; person2
- endm
-
- enum variablesprite_command
-variablesprite: macro
- db variablesprite_command
- db \1 - SPRITE_VARS ; byte
- db \2 ; sprite
- endm
-
- enum disappear_command
-disappear: macro
- db disappear_command
- db \1 ; person
- endm
-
- enum appear_command
-appear: macro
- db appear_command
- db \1 ; person
- endm
-
- enum follow_command
-follow: macro
- db follow_command
- db \1 ; person2
- db \2 ; person1
- endm
-
- enum stopfollow_command
-stopfollow: macro
- db stopfollow_command
- endm
-
- enum moveperson_command
-moveperson: macro
- db moveperson_command
- db \1 ; person
- db \2 ; x
- db \3 ; y
- endm
-
- enum writepersonxy_command
-writepersonxy: macro
- db writepersonxy_command
- db \1 ; person
- endm
-
- enum loademote_command
-loademote: macro
- db loademote_command
- db \1 ; bubble
- endm
-
- enum showemote_command
-showemote: macro
- db showemote_command
- db \1 ; bubble
- db \2 ; person
- db \3 ; time
- endm
-
- enum spriteface_command
-spriteface: macro
- db spriteface_command
- db \1 ; person
- db \2 ; facing
- endm
-
- enum follownotexact_command
-follownotexact: macro
- db follownotexact_command
- db \1 ; person2
- db \2 ; person1
- endm
-
- enum earthquake_command
-earthquake: macro
- db earthquake_command
- db \1 ; param
- endm
-
- enum changemap_command
-changemap: macro
- db changemap_command
- db \1 ; map_bank
- dw \2 ; map_data_pointer
- endm
-
- enum changeblock_command
-changeblock: macro
- db changeblock_command
- db \1 ; x
- db \2 ; y
- db \3 ; block
- endm
-
- enum reloadmap_command
-reloadmap: macro
- db reloadmap_command
- endm
-
- enum reloadmappart_command
-reloadmappart: macro
- db reloadmappart_command
- endm
-
- enum writecmdqueue_command
-writecmdqueue: macro
- db writecmdqueue_command
- dw \1 ; queue_pointer
- endm
-
- enum delcmdqueue_command
-delcmdqueue: macro
- db delcmdqueue_command
- db \1 ; byte
- endm
-
- enum playmusic_command
-playmusic: macro
- db playmusic_command
- dw \1 ; music_pointer
- endm
-
- enum encountermusic_command
-encountermusic: macro
- db encountermusic_command
- endm
-
- enum musicfadeout_command
-musicfadeout: macro
- db musicfadeout_command
- dw \1 ; music
- db \2 ; fadetime
- endm
-
- enum playmapmusic_command
-playmapmusic: macro
- db playmapmusic_command
- endm
-
- enum dontrestartmapmusic_command
-dontrestartmapmusic: macro
- db dontrestartmapmusic_command
- endm
-
- enum cry_command
-cry: macro
- db cry_command
- dw \1 ; cry_id
- endm
-
- enum playsound_command
-playsound: macro
- db playsound_command
- dw \1 ; sound_pointer
- endm
-
- enum waitsfx_command
-waitsfx: macro
- db waitsfx_command
- endm
-
- enum warpsound_command
-warpsound: macro
- db warpsound_command
- endm
-
- enum specialsound_command
-specialsound: macro
- db specialsound_command
- endm
-
- enum passtoengine_command
-passtoengine: macro
- db passtoengine_command
- db \1 ; data_pointer
- endm
-
- enum newloadmap_command
-newloadmap: macro
- db newloadmap_command
- db \1 ; which_method
- endm
-
- enum pause_command
-pause: macro
- db pause_command
- db \1 ; length
- endm
-
- enum deactivatefacing_command
-deactivatefacing: macro
- db deactivatefacing_command
- db \1 ; time
- endm
-
- enum priorityjump_command
-priorityjump: macro
- db priorityjump_command
- dw \1 ; pointer
- endm
-
- enum warpcheck_command
-warpcheck: macro
- db warpcheck_command
- endm
-
- enum ptpriorityjump_command
-ptpriorityjump: macro
- db ptpriorityjump_command
- dw \1 ; pointer
- endm
-
- enum return_command
-return: macro
- db return_command
- endm
-
- enum end_command
-end: macro
- db end_command
- endm
-
- enum reloadandreturn_command
-reloadandreturn: macro
- db reloadandreturn_command
- db \1 ; which_method
- endm
-
- enum end_all_command
-end_all: macro
- db end_all_command
- endm
-
- enum pokemart_command
-pokemart: macro
- db pokemart_command
- db \1 ; dialog_id
- dw \2 ; mart_id
- endm
-
- enum elevator_command
-elevator: macro
- db elevator_command
- dw \1 ; floor_list_pointer
- endm
-
- enum trade_command
-trade: macro
- db trade_command
- db \1 ; trade_id
- endm
-
- enum askforphonenumber_command
-askforphonenumber: macro
- db askforphonenumber_command
- db \1 ; number
- endm
-
- enum phonecall_command
-phonecall: macro
- db phonecall_command
- dw \1 ; caller_name
- endm
-
- enum hangup_command
-hangup: macro
- db hangup_command
- endm
-
- enum describedecoration_command
-describedecoration: macro
- db describedecoration_command
- db \1 ; byte
- endm
-
- enum fruittree_command
-fruittree: macro
- db fruittree_command
- db \1 ; tree_id
- endm
-
- enum specialphonecall_command
-specialphonecall: macro
- db specialphonecall_command
- dw \1 ; call_id
- endm
-
- enum checkphonecall_command
-checkphonecall: macro
- db checkphonecall_command
- endm
-
- enum verbosegiveitem_command
-verbosegiveitem: macro
- db verbosegiveitem_command
- db \1 ; item
-if _NARG == 2
- db \2 ; quantity
-else
- db 1
-endc
- endm
-
- enum verbosegiveitem2_command
-verbosegiveitem2: macro
- db verbosegiveitem2_command
- db \1 ; item
- db \2 ; var
- endm
-
- enum swarm_command
-swarm: macro
- db swarm_command
- db \1 ; flag
- map \2 ; map
- endm
-
- enum halloffame_command
-halloffame: macro
- db halloffame_command
- endm
-
- enum credits_command
-credits: macro
- db credits_command
- endm
-
- enum warpfacing_command
-warpfacing: macro
- db warpfacing_command
- db \1 ; facing
- map \2 ; map
- db \3 ; x
- db \4 ; y
- endm
-
- enum battletowertext_command
-battletowertext: macro
- db battletowertext_command
- db \1 ; memory
- endm
-
- enum landmarktotext_command
-landmarktotext: macro
- db landmarktotext_command
- db \1 ; id
- db \2 ; memory
- endm
-
- enum trainerclassname_command
-trainerclassname: macro
- db trainerclassname_command
- db \1 ; id
- db \2 ; memory
- endm
-
- enum name_command
-name: macro
- db name_command
- db \1 ; type
- db \2 ; id
- db \3 ; memory
- endm
-
- enum wait_command
-wait: macro
- db wait_command
- db \1 ; duration
- endm
-
- enum check_save_command
-check_save: macro
- db check_save_command
- endm
diff --git a/macros/map.asm b/macros/map.asm
deleted file mode 100644
index f153806da..000000000
--- a/macros/map.asm
+++ /dev/null
@@ -1,211 +0,0 @@
-map: macro
-;\1: map id
- db GROUP_\1, MAP_\1
-endm
-
-maptrigger: macro
-;\1: script pointer
- dw \1, 0
-endm
-
-warp_def: macro
-;\1: y: top to bottom, starts at 0
-;\2: x: left to right, starts at 0
-;\3: warp destination: starts at 1
-;\4: map id: from constants/map_constants.asm
- db \1, \2, \3
- map \4
-endm
-
-xy_trigger: macro
-;\1: number: controlled by dotrigger/domaptrigger
-;\2: y: top to bottom, starts at 0
-;\3: x: left to right, starts at 0
-;\4: script pointer
- db \1, \2, \3, $0
- dw \4
- db $0, $0
-endm
-
-signpost: macro
-;\1: y: top to bottom, starts at 0
-;\2: x: left to right, starts at 0
-;\3: function: a SIGNPOST_* constant
-;\4: script pointer
- db \1, \2, \3
- dw \4
-endm
-
-person_event: macro
-;\1: sprite: a SPRITE_* constant
-;\2: y: top to bottom, starts at 0
-;\3: x: left to right, starts at 0
-;\4: movement function: a SPRITEMOVEDATA_* constant
-;\5, \6: movement radius: y, x
-;\7: clock hour: ???
-;\8: clock daytime: sum of MORN, DAY, and/or NITE, or 0 for always
-;\9: color: a PAL_NPC_* constant, or 0 for sprite default
-;\10: function: a PERSONTYPE_* constant
-;\11: sight range: applies to PERSONTYPE_TRAINER
-;\12: script pointer
-;\13: event flag: an EVENT_* constant, or 0 for always
- db \1, \2 + 4, \3 + 4, \4
- dn \5, \6
- db \7, \8
- shift
- dn \8, \9
- shift
- db \9
- shift
- dw \9
- shift
- dw \9
-endm
-
-
-newgroup: macro
-const_value = const_value + 1
- enum_start 1
-endm
-
-mapgroup: macro
-;\1: map id
-;\2: height: in blocks
-;\3: width: in blocks
-GROUP_\1 EQU const_value
- enum MAP_\1
-\1_HEIGHT EQU \2
-\1_WIDTH EQU \3
-endm
-
-
-map_header: macro
-;\1: map label
-;\2: tileset: a TILESET_* constant
-;\3: permission: TOWN, ROUTE, INDOOR, CAVE, PERM_5, GATE, or DUNGEON
-;\4: location: from constants/landmark_constants.asm
-;\5: music: a MUSIC_* constant
-;\6: phone service flag: 1 to prevent phone calls
-;\7: time of day: a PALETTE_* constant
-;\8: fishing group: a FISHGROUP_* constant
-\1_MapHeader:
- db BANK(\1_SecondMapHeader), \2, \3
- dw \1_SecondMapHeader
- db \4, \5
- dn \6, \7
- db \8
-endm
-
-
-map_header_2: macro
-;\1: map label
-;\2: map id
-;\3: border block
-;\4: connections: sum of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
-\1_SecondMapHeader::
- db \3
- db \2_HEIGHT, \2_WIDTH
- db BANK(\1_BlockData)
- dw \1_BlockData
- db BANK(\1_MapScriptHeader)
- dw \1_MapScriptHeader
- dw \1_MapEventHeader
- db \4
-endm
-
-connection: macro
-if "\1" == "north"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: x
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + \2_WIDTH * (\2_HEIGHT - 3) + \5
- dw OverworldMap + \4 + 3
- db \6
- db \2_WIDTH
- db \2_HEIGHT * 2 - 1
- db (\4 - \5) * -2
- dw OverworldMap + \2_HEIGHT * (\2_WIDTH + 6) + 1
-endc
-
-if "\1" == "south"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: x
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + \5
- dw OverworldMap + (\7_HEIGHT + 3) * (\7_WIDTH + 6) + \4 + 3
- db \6
- db \2_WIDTH
- db 0
- db (\4 - \5) * -2
- dw OverworldMap + \2_WIDTH + 7
-endc
-
-if "\1" == "west"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: y
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + (\2_WIDTH * \5) + \2_WIDTH - 3
- dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3)
- db \6
- db \2_WIDTH
- db (\4 - \5) * -2
- db \2_WIDTH * 2 - 1
- dw OverworldMap + \2_WIDTH * 2 + 6
-endc
-
-if "\1" == "east"
-;\2: map id
-;\3: map label (eventually will be rolled into map id)
-;\4: y
-;\5: offset?
-;\6: strip length
-;\7: this map id
- map \2
- dw \3_BlockData + (\2_WIDTH * \5)
- dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3 + 1) - 3
- db \6
- db \2_WIDTH
- db (\4 - \5) * -2
- db 0
- dw OverworldMap + \2_WIDTH + 7
-endc
-endm
-
-
-itemball: macro
-;\1: item: from constants/item_constants.asm
-;\2: quantity: default 1
-if _NARG == 2
- db \1, \2
-else
- db \1, 1
-endc
-endm
-
-elevfloor: macro
-;\1: floor: a FLOOR_* constant
-;\2: warp destination: starts at 1
-;\3: map id
- db \1, \2
- map \3
-ENDM
-
-stonetable: macro
-;\1: warp id
-;\2: person_event id
-;\3: script pointer
- db \1, \2
- dw \3
-endm
diff --git a/macros/mobile.asm b/macros/mobile.asm
deleted file mode 100644
index 06b40d694..000000000
--- a/macros/mobile.asm
+++ /dev/null
@@ -1,2 +0,0 @@
-; Many mobile functions were dummied out in localization.
-mobile EQUS "ret"
diff --git a/macros/move_anim.asm b/macros/move_anim.asm
deleted file mode 100644
index 9859fbd50..000000000
--- a/macros/move_anim.asm
+++ /dev/null
@@ -1,294 +0,0 @@
-anim_wait: macro
-if \1 >= $d0
- flip out
-endc
- db \1
- endm
-
-; BattleAnimCommands indexes (see battle/anim_commands.asm)
- enum_start $d0
-
- enum anim_obj_command ; d0
-anim_obj: macro
- db anim_obj_command
- db \1 ; obj
- db (\2 << 3) + \3 ; x
- db (\4 << 3) + \5 ; y
- db \6 ; param
- endm
-
- enum anim_1gfx_command ; d1
-anim_1gfx: macro
- db anim_1gfx_command
- db \1 ; gfx1
- endm
-
- enum anim_2gfx_command ; d2
-anim_2gfx: macro
- db anim_2gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- endm
-
- enum anim_3gfx_command ; d3
-anim_3gfx: macro
- db anim_3gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- endm
-
- enum anim_4gfx_command ; d4
-anim_4gfx: macro
- db anim_4gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- db \4 ; gfx4
- endm
-
- enum anim_5gfx_command ; d5
-anim_5gfx: macro
- db anim_5gfx_command
- db \1 ; gfx1
- db \2 ; gfx2
- db \3 ; gfx3
- db \4 ; gfx4
- db \5 ; gfx5
- endm
-
- enum anim_incobj_command ; d6
-anim_incobj: macro
- db anim_incobj_command
- db \1 ; id
- endm
-
- enum anim_setobj_command ; d7
-anim_setobj: macro
- db anim_setobj_command
- db \1 ; id
- db \2 ; obj
- endm
-
- enum anim_incbgeffect_command ; d8
-anim_incbgeffect: macro
- db anim_incbgeffect_command
- db \1 ; effect
- endm
-
- enum anim_enemyfeetobj_command ; d9
-anim_enemyfeetobj: macro
- db anim_enemyfeetobj_command
- endm
-
- enum anim_playerheadobj_command ; da
-anim_playerheadobj: macro
- db anim_playerheadobj_command
- endm
-
- enum anim_checkpokeball_command ; db
-anim_checkpokeball: macro
- db anim_checkpokeball_command
- endm
-
- enum anim_transform_command ; dc
-anim_transform: macro
- db anim_transform_command
- endm
-
- enum anim_raisesub_command ; dd
-anim_raisesub: macro
- db anim_raisesub_command
- endm
-
- enum anim_dropsub_command ; de
-anim_dropsub: macro
- db anim_dropsub_command
- endm
-
- enum anim_resetobp0_command ; df
-anim_resetobp0: macro
- db anim_resetobp0_command
- endm
-
- enum anim_sound_command ; e0
-anim_sound: macro
- db anim_sound_command
- db (\1 << 2) | \2 ; duration, tracks
- db \3 ; id
- endm
-
- enum anim_cry_command ; e1
-anim_cry: macro
- db anim_cry_command
- db \1 ; pitch
- endm
-
- enum anim_minimizeopp_command ; e2
-anim_minimizeopp: macro
- db anim_minimizeopp_command
- endm
-
- enum anim_oamon_command ; e3
-anim_oamon: macro
- db anim_oamon_command
- endm
-
- enum anim_oamoff_command ; e4
-anim_oamoff: macro
- db anim_oamoff_command
- endm
-
- enum anim_clearobjs_command ; e5
-anim_clearobjs: macro
- db anim_clearobjs_command
- endm
-
- enum anim_beatup_command ; e6
-anim_beatup: macro
- db anim_beatup_command
- endm
-
- enum anim_0xe7_command ; e7
-anim_0xe7: macro
- db anim_0xe7_command
- endm
-
- enum anim_updateactorpic_command ; e8
-anim_updateactorpic: macro
- db anim_updateactorpic_command
- endm
-
- enum anim_minimize_command ; e9
-anim_minimize: macro
- db anim_minimize_command
- endm
-
- enum anim_0xea_command ; ea
-anim_0xea: macro
- db anim_0xea_command
- endm
-
- enum anim_0xeb_command ; eb
-anim_0xeb: macro
- db anim_0xeb_command
- endm
-
- enum anim_0xec_command ; ec
-anim_0xec: macro
- db anim_0xec_command
- endm
-
- enum anim_0xed_command ; ed
-anim_0xed: macro
- db anim_0xed_command
- endm
-
- enum anim_if_param_and_command ; ee
-anim_if_param_and: macro
- db anim_if_param_and_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_jumpuntil_command ; ef
-anim_jumpuntil: macro
- db anim_jumpuntil_command
- dw \1 ; address
- endm
-
- enum anim_bgeffect_command ; f0
-anim_bgeffect: macro
- db anim_bgeffect_command
- db \1 ; effect
- db \2 ; unknown
- db \3 ; unknown
- db \4 ; unknown
- endm
-
- enum anim_bgp_command ; f1
-anim_bgp: macro
- db anim_bgp_command
- db \1 ; colors
- endm
-
- enum anim_obp0_command ; f2
-anim_obp0: macro
- db anim_obp0_command
- db \1 ; colors
- endm
-
- enum anim_obp1_command ; f3
-anim_obp1: macro
- db anim_obp1_command
- db \1 ; colors
- endm
-
- enum anim_clearsprites_command ; f4
-anim_clearsprites: macro
- db anim_clearsprites_command
- endm
-
- enum anim_0xf5_command ; f5
-anim_0xf5: macro
- db anim_0xf5_command
- endm
-
- enum anim_0xf6_command ; f6
-anim_0xf6: macro
- db anim_0xf6_command
- endm
-
- enum anim_0xf7_command ; f7
-anim_0xf7: macro
- db anim_0xf7_command
- endm
-
- enum anim_if_param_equal_command ; f8
-anim_if_param_equal: macro
- db anim_if_param_equal_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_setvar_command ; f9
-anim_setvar: macro
- db anim_setvar_command
- db \1 ; value
- endm
-
- enum anim_incvar_command ; fa
-anim_incvar: macro
- db anim_incvar_command
- endm
-
- enum anim_if_var_equal_command ; fb
-anim_if_var_equal: macro
- db anim_if_var_equal_command
- db \1 ; value
- dw \2 ; address
- endm
-
- enum anim_jump_command ; fc
-anim_jump: macro
- db anim_jump_command
- dw \1 ; address
- endm
-
- enum anim_loop_command ; fd
-anim_loop: macro
- db anim_loop_command
- db \1 ; count
- dw \2 ; address
- endm
-
- enum anim_call_command ; fe
-anim_call: macro
- db anim_call_command
- dw \1 ; address
- endm
-
- enum anim_ret_command ; ff
-anim_ret: macro
- db anim_ret_command
- endm
diff --git a/macros/movement.asm b/macros/movement.asm
deleted file mode 100644
index a2acf1356..000000000
--- a/macros/movement.asm
+++ /dev/null
@@ -1,247 +0,0 @@
-; MovementPointers indexes (see engine/movement.asm)
- enum_start
-
-; Directional movements
-
- enum movement_turn_head
-turn_head: macro
- db movement_turn_head | \1 ; $00
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_step
-turn_step: macro
- db movement_turn_step | \1 ; $04
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slow_step
-slow_step: macro
- db movement_slow_step | \1; $08
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_step
-step: macro
- db movement_step | \1 ; $0c
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_big_step
-big_step: macro
- db movement_big_step | \1 ; $10
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slow_slide_step
-slow_slide_step: macro
- db movement_slow_slide_step | \1 ; $14
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slide_step
-slide_step: macro
- db movement_slide_step | \1 ; $18
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_fast_slide_step
-fast_slide_step: macro
- db movement_fast_slide_step | \1 ; $1c
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_away
-turn_away: macro
- db movement_turn_away | \1 ; $20
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_in
-turn_in: macro
- db movement_turn_in | \1 ; $24
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_turn_waterfall
-turn_waterfall: macro
- db movement_turn_waterfall | \1 ; $28
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_slow_jump_step
-slow_jump_step: macro
- db movement_slow_jump_step | \1 ; $2c
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_jump_step
-jump_step: macro
- db movement_jump_step | \1 ; $30
- endm
-
-__enum__ = __enum__ + 3
-
- enum movement_fast_jump_step
-fast_jump_step: macro
- db movement_fast_jump_step | \1 ; $34
- endm
-
-__enum__ = __enum__ + 3
-
-; Control
- enum movement_remove_sliding
-remove_sliding: macro
- db movement_remove_sliding ; $38
- endm
-
- enum movement_set_sliding
-set_sliding: macro
- db movement_set_sliding ; $39
- endm
-
- enum movement_remove_fixed_facing
-remove_fixed_facing: macro
- db movement_remove_fixed_facing ; $3a
- endm
-
- enum movement_fix_facing
-fix_facing: macro
- db movement_fix_facing ; $3b
- endm
-
- enum movement_show_person
-show_person: macro
- db movement_show_person ; $3c
- endm
-
- enum movement_hide_person
-hide_person: macro
- db movement_hide_person ; $3d
- endm
-
-; Sleep
-
- enum movement_step_sleep
-step_sleep: macro
-if \1 <= 8
- db movement_step_sleep + \1 - 1
-else
- db movement_step_sleep + 8, \1
-endc
-endm
-
-__enum__ = __enum__ + 8
-
- enum movement_step_end
-step_end: macro
- db movement_step_end ; $47
- endm
-
-; Whatever Movement_48 is, it takes a one-byte parameter
- enum movement_step_48
-step_48: macro
- db movement_step_48
- db \1
- endm
-
- enum movement_remove_person
-remove_person: macro
- db movement_remove_person ; $49
- endm
-
- enum movement_step_loop
-step_loop: macro
- db movement_step_loop ; $4a
- endm
-
- enum movement_step_4b
-step_4b: macro
- db movement_step_4b ; $4b
- endm
-
- enum movement_teleport_from
-teleport_from: macro
- db movement_teleport_from ; $4c
- endm
-
- enum movement_teleport_to
-teleport_to: macro
- db movement_teleport_to ; $4d
- endm
-
- enum movement_skyfall
-skyfall: macro
- db movement_skyfall ; $4e
- endm
-
- enum movement_step_dig
-step_dig: macro
- db movement_step_dig ; $4f
- db \1
- endm
-
- enum movement_step_bump
-step_bump: macro
- db movement_step_bump ; $50
- endm
-
- enum movement_fish_got_bite
-fish_got_bite: macro
- db movement_fish_got_bite ; $51
- endm
-
- enum movement_fish_cast_rod
-fish_cast_rod: macro
- db movement_fish_cast_rod ; $52
- endm
-
- enum movement_hide_emote
-hide_emote: macro
- db movement_hide_emote ; $53
- endm
-
- enum movement_show_emote
-show_emote: macro
- db movement_show_emote ; $54
- endm
-
- enum movement_step_shake
-step_shake: macro
- db movement_step_shake ; $55
- db \1 ; displacement
- endm
-
- enum movement_tree_shake
-tree_shake: macro
- db movement_tree_shake
- endm
-
- enum movement_rock_smash
-rock_smash: macro
- db movement_rock_smash ; $57
- db \1
- endm
-
- enum movement_return_dig
-return_dig: macro
- db movement_return_dig ; $58
- db \1
- endm
-
- enum movement_skyfall_top
-skyfall_top: macro
- db movement_skyfall_top ; $59
- endm
diff --git a/macros/pic.asm b/macros/pic.asm
deleted file mode 100644
index f06c6cd4f..000000000
--- a/macros/pic.asm
+++ /dev/null
@@ -1,4 +0,0 @@
-add_pic: MACRO
- db BANK(\1) - PICS_FIX
- dw \1
-ENDM
diff --git a/macros/rst.asm b/macros/rst.asm
index 50259c968..fe7e42723 100644
--- a/macros/rst.asm
+++ b/macros/rst.asm
@@ -15,3 +15,15 @@ callab: MACRO ; address, bank
ld a, BANK(\1)
rst FarCall
ENDM
+
+homecall: MACRO
+ ld a, [hROMBank]
+ push af
+ ld a, BANK(\1)
+ rst Bankswitch
+
+ call \1
+
+ pop af
+ rst Bankswitch
+ENDM
diff --git a/macros/scripts/audio.asm b/macros/scripts/audio.asm
new file mode 100644
index 000000000..3766785ba
--- /dev/null
+++ b/macros/scripts/audio.asm
@@ -0,0 +1,265 @@
+note: MACRO
+ dn (\1), (\2) - 1
+ ENDM
+
+sound: macro
+ note \1, \2
+ db \3 ; intensity
+ dw \4 ; frequency
+ endm
+
+noise: macro
+ note \1, \2 ; duration
+ db \3 ; intensity
+ db \4 ; frequency
+ endm
+
+musicheader: macro
+ ; number of tracks, track idx, address
+ dbw ((\1 - 1) << 6) + (\2 - 1), \3
+ endm
+
+cry_header: macro
+ dw \1, \2, \3
+ endm
+
+; MusicCommands indexes (see audio/engine.asm)
+ enum_start $d8
+
+ enum notetype_cmd ; $d8
+octave: macro
+ db notetype_cmd - (\1)
+ endm
+
+notetype: macro
+ db notetype_cmd
+ db \1 ; note_length
+ if _NARG >= 2
+ db \2 ; intensity
+ endc
+ endm
+
+ enum pitchoffset_cmd ; $d9
+pitchoffset: macro
+ db pitchoffset_cmd
+ dn \1, \2 - 1 ; octave, key
+ endm
+
+ enum tempo_cmd ; $da
+tempo: macro
+ db tempo_cmd
+ bigdw \1 ; tempo
+ endm
+
+ enum dutycycle_cmd ; $db
+dutycycle: macro
+ db dutycycle_cmd
+ db \1 ; duty_cycle
+ endm
+
+ enum intensity_cmd ; $dc
+intensity: macro
+ db intensity_cmd
+ db \1 ; intensity
+ endm
+
+ enum soundinput_cmd ; $dd
+soundinput: macro
+ db soundinput_cmd
+ db \1 ; input
+ endm
+
+ enum sound_duty_cmd ; $de
+sound_duty: macro
+ db sound_duty_cmd
+ db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
+ endm
+
+ enum togglesfx_cmd ; $df
+togglesfx: macro
+ db togglesfx_cmd
+ endm
+
+ enum slidepitchto_cmd ; $e0
+slidepitchto: macro
+ db slidepitchto_cmd
+ db \1 - 1 ; duration
+ dn \2, \3 ; octave, pitch
+ endm
+
+ enum vibrato_cmd ; $e1
+vibrato: macro
+ db vibrato_cmd
+ db \1 ; delay
+ db \2 ; extent
+ endm
+
+ enum unknownmusic0xe2_cmd ; $e2
+unknownmusic0xe2: macro
+ db unknownmusic0xe2_cmd
+ db \1 ; unknown
+ endm
+
+ enum togglenoise_cmd ; $e3
+togglenoise: macro
+ db togglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum panning_cmd ; $e4
+panning: macro
+ db panning_cmd
+ db \1 ; tracks
+ endm
+
+ enum volume_cmd ; $e5
+volume: macro
+ db volume_cmd
+ db \1 ; volume
+ endm
+
+ enum tone_cmd ; $e6
+tone: macro
+ db tone_cmd
+ bigdw \1 ; tone
+ endm
+
+ enum unknownmusic0xe7_cmd ; $e7
+unknownmusic0xe7: macro
+ db unknownmusic0xe7_cmd
+ db \1 ; unknown
+ endm
+
+ enum unknownmusic0xe8_cmd ; $e8
+unknownmusic0xe8: macro
+ db unknownmusic0xe8_cmd
+ db \1 ; unknown
+ endm
+
+ enum tempo_relative_cmd ; $e9
+tempo_relative: macro
+ db tempo_relative_cmd
+ bigdw \1 ; value
+ endm
+
+ enum restartchannel_cmd ; $ea
+restartchannel: macro
+ db restartchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum newsong_cmd ; $eb
+newsong: macro
+ db newsong_cmd
+ bigdw \1 ; id
+ endm
+
+ enum sfxpriorityon_cmd ; $ec
+sfxpriorityon: macro
+ db sfxpriorityon_cmd
+ endm
+
+ enum sfxpriorityoff_cmd ; $ed
+sfxpriorityoff: macro
+ db sfxpriorityoff_cmd
+ endm
+
+ enum unknownmusic0xee_cmd ; $ee
+unknownmusic0xee: macro
+ db unknownmusic0xee_cmd
+ dw \1 ; address
+ endm
+
+ enum stereopanning_cmd ; $ef
+stereopanning: macro
+ db stereopanning_cmd
+ db \1 ; tracks
+ endm
+
+ enum sfxtogglenoise_cmd ; $f0
+sfxtogglenoise: macro
+ db sfxtogglenoise_cmd
+ db \1 ; id
+ endm
+
+ enum music0xf1_cmd ; $f1
+music0xf1: macro
+ db music0xf1_cmd
+ endm
+
+ enum music0xf2_cmd ; $f2
+music0xf2: macro
+ db music0xf2_cmd
+ endm
+
+ enum music0xf3_cmd ; $f3
+music0xf3: macro
+ db music0xf3_cmd
+ endm
+
+ enum music0xf4_cmd ; $f4
+music0xf4: macro
+ db music0xf4_cmd
+ endm
+
+ enum music0xf5_cmd ; $f5
+music0xf5: macro
+ db music0xf5_cmd
+ endm
+
+ enum music0xf6_cmd ; $f6
+music0xf6: macro
+ db music0xf6_cmd
+ endm
+
+ enum music0xf7_cmd ; $f7
+music0xf7: macro
+ db music0xf7_cmd
+ endm
+
+ enum music0xf8_cmd ; $f8
+music0xf8: macro
+ db music0xf8_cmd
+ endm
+
+ enum unknownmusic0xf9_cmd ; $f9
+unknownmusic0xf9: macro
+ db unknownmusic0xf9_cmd
+ endm
+
+ enum setcondition_cmd ; $fa
+setcondition: macro
+ db setcondition_cmd
+ db \1 ; condition
+ endm
+
+ enum jumpif_cmd ; $fb
+jumpif: macro
+ db jumpif_cmd
+ db \1 ; condition
+ dw \2 ; address
+ endm
+
+ enum jumpchannel_cmd ; $fc
+jumpchannel: macro
+ db jumpchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum loopchannel_cmd ; $fd
+loopchannel: macro
+ db loopchannel_cmd
+ db \1 ; count
+ dw \2 ; address
+ endm
+
+ enum callchannel_cmd ; $fe
+callchannel: macro
+ db callchannel_cmd
+ dw \1 ; address
+ endm
+
+ enum endchannel_cmd ; $ff
+endchannel: macro
+ db endchannel_cmd
+ endm
diff --git a/macros/scripts/effect_commands.asm b/macros/scripts/effect_commands.asm
new file mode 100644
index 000000000..4fd2475b7
--- /dev/null
+++ b/macros/scripts/effect_commands.asm
@@ -0,0 +1,187 @@
+command: macro
+ enum \1_command
+\1 equs "db \1_command"
+endm
+
+; BattleCommandPointers indexes (see battle/effect_commands.asm)
+ enum_start 1
+ command checkturn ; 01
+ command checkobedience ; 02
+ command usedmovetext ; 03
+ command doturn ; 04
+ command critical ; 05
+ command damagestats ; 06
+ command stab ; 07
+ command damagevariation ; 08
+ command checkhit ; 09
+ command lowersub ; 0a
+ command hittargetnosub ; 0b
+ command raisesub ; 0c
+ command failuretext ; 0d
+ command checkfaint ; 0e
+ command criticaltext ; 0f
+ command supereffectivetext ; 10
+ command checkdestinybond ; 11
+ command buildopponentrage ; 12
+ command poisontarget ; 13
+ command sleeptarget ; 14
+ command draintarget ; 15
+ command eatdream ; 16
+ command burntarget ; 17
+ command freezetarget ; 18
+ command paralyzetarget ; 19
+ command selfdestruct ; 1a
+ command mirrormove ; 1b
+ command statup ; 1c
+ command statdown ; 1d
+ command payday ; 1e
+ command conversion ; 1f
+ command resetstats ; 20
+ command storeenergy ; 21
+ command unleashenergy ; 22
+ command forceswitch ; 23
+ command endloop ; 24
+ command flinchtarget ; 25
+ command ohko ; 26
+ command recoil ; 27
+ command mist ; 28
+ command focusenergy ; 29
+ command confuse ; 2a
+ command confusetarget ; 2b
+ command heal ; 2c
+ command transform ; 2d
+ command screen ; 2e
+ command poison ; 2f
+ command paralyze ; 30
+ command substitute ; 31
+ command rechargenextturn ; 32
+ command mimic ; 33
+ command metronome ; 34
+ command leechseed ; 35
+ command splash ; 36
+ command disable ; 37
+ command cleartext ; 38
+ command charge ; 39
+ command checkcharge ; 3a
+ command traptarget ; 3b
+ command effect0x3c ; 3c
+ command rampage ; 3d
+ command checkrampage ; 3e
+ command constantdamage ; 3f
+ command counter ; 40
+ command encore ; 41
+ command painsplit ; 42
+ command snore ; 43
+ command conversion2 ; 44
+ command lockon ; 45
+ command sketch ; 46
+ command defrostopponent ; 47
+ command sleeptalk ; 48
+ command destinybond ; 49
+ command spite ; 4a
+ command falseswipe ; 4b
+ command healbell ; 4c
+ command kingsrock ; 4d
+ command triplekick ; 4e
+ command kickcounter ; 4f
+ command thief ; 50
+ command arenatrap ; 51
+ command nightmare ; 52
+ command defrost ; 53
+ command curse ; 54
+ command protect ; 55
+ command spikes ; 56
+ command foresight ; 57
+ command perishsong ; 58
+ command startsandstorm ; 59
+ command endure ; 5a
+ command checkcurl ; 5b
+ command rolloutpower ; 5c
+ command effect0x5d ; 5d
+ command furycutter ; 5e
+ command attract ; 5f
+ command happinesspower ; 60
+ command present ; 61
+ command damagecalc ; 62
+ command frustrationpower ; 63
+ command safeguard ; 64
+ command checksafeguard ; 65
+ command getmagnitude ; 66
+ command batonpass ; 67
+ command pursuit ; 68
+ command clearhazards ; 69
+ command healmorn ; 6a
+ command healday ; 6b
+ command healnite ; 6c
+ command hiddenpower ; 6d
+ command startrain ; 6e
+ command startsun ; 6f
+ command attackup ; 70
+ command defenseup ; 71
+ command speedup ; 72
+ command specialattackup ; 73
+ command specialdefenseup ; 74
+ command accuracyup ; 75
+ command evasionup ; 76
+ command attackup2 ; 77
+ command defenseup2 ; 78
+ command speedup2 ; 79
+ command specialattackup2 ; 7a
+ command specialdefenseup2 ; 7b
+ command accuracyup2 ; 7c
+ command evasionup2 ; 7d
+ command attackdown ; 7e
+ command defensedown ; 7f
+ command speeddown ; 80
+ command specialattackdown ; 81
+ command specialdefensedown ; 82
+ command accuracydown ; 83
+ command evasiondown ; 84
+ command attackdown2 ; 85
+ command defensedown2 ; 86
+ command speeddown2 ; 87
+ command specialattackdown2 ; 88
+ command specialdefensedown2 ; 89
+ command accuracydown2 ; 8a
+ command evasiondown2 ; 8b
+ command statupmessage ; 8c
+ command statdownmessage ; 8d
+ command statupfailtext ; 8e
+ command statdownfailtext ; 8f
+ command effectchance ; 90
+ command statdownanim ; 91
+ command statupanim ; 92
+ command switchturn ; 93
+ command fakeout ; 94
+ command bellydrum ; 95
+ command psychup ; 96
+ command rage ; 97
+ command doubleflyingdamage ; 98
+ command doubleundergrounddamage ; 99
+ command mirrorcoat ; 9a
+ command checkfuturesight ; 9b
+ command futuresight ; 9c
+ command doubleminimizedamage ; 9d
+ command skipsuncharge ; 9e
+ command thunderaccuracy ; 9f
+ command teleport ; a0
+ command beatup ; a1
+ command ragedamage ; a2
+ command resettypematchup ; a3
+ command allstatsup ; a4
+ command effect0xa5 ; a5
+ command raisesubnoanim ; a6
+ command lowersubnoanim ; a7
+ command effect0xa8 ; a8
+ command clearmissdamage ; a9
+ command movedelay ; aa
+ command hittarget ; ab
+ command tristatuschance ; ac
+ command supereffectivelooptext ; ad
+ command startloop ; ae
+ command curl ; af
+
+__enum__ set $fe
+
+ command endturn ; fe
+ command endmove ; ff
diff --git a/macros/scripts/event.asm b/macros/scripts/event.asm
new file mode 100644
index 000000000..c40d6f8fd
--- /dev/null
+++ b/macros/scripts/event.asm
@@ -0,0 +1,1069 @@
+; ScriptCommandTable indexes (see engine/scripting.asm)
+ enum_start
+
+ enum scall_command ; $00
+scall: macro
+ db scall_command
+ dw \1 ; pointer
+ endm
+
+ enum farscall_command ; $01
+farscall: macro
+ db farscall_command
+ dba \1
+ endm
+
+ enum ptcall_command ; $02
+ptcall: macro
+ db ptcall_command
+ dw \1 ; pointer
+ endm
+
+ enum jump_command ; $03
+jump: macro
+ db jump_command
+ dw \1 ; pointer
+ endm
+
+ enum farjump_command ; $04
+farjump: macro
+ db farjump_command
+ dba \1
+ endm
+
+ enum ptjump_command ; $05
+ptjump: macro
+ db ptjump_command
+ dw \1 ; pointer
+ endm
+
+ enum if_equal_command ; $06
+if_equal: macro
+ db if_equal_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum if_not_equal_command ; $07
+if_not_equal: macro
+ db if_not_equal_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum iffalse_command ; $08
+iffalse: macro
+ db iffalse_command
+ dw \1 ; pointer
+ endm
+
+ enum iftrue_command ; $09
+iftrue: macro
+ db iftrue_command
+ dw \1 ; pointer
+ endm
+
+ enum if_greater_than_command ; $0a
+if_greater_than: macro
+ db if_greater_than_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum if_less_than_command ; $0b
+if_less_than: macro
+ db if_less_than_command
+ db \1 ; byte
+ dw \2 ; pointer
+ endm
+
+ enum jumpstd_command ; $0c
+jumpstd: macro
+ db jumpstd_command
+ dw \1 ; predefined_script
+ endm
+
+ enum callstd_command ; $0d
+callstd: macro
+ db callstd_command
+ dw \1 ; predefined_script
+ endm
+
+ enum callasm_command ; $0e
+callasm: macro
+ db callasm_command
+ dba \1
+ endm
+
+ enum special_command ; $0f
+special: macro
+ db special_command
+ dw (\1Special - SpecialsPointers) / 3
+ endm
+
+add_special: MACRO
+\1Special::
+ dba \1
+ENDM
+
+ enum ptcallasm_command ; $10
+ptcallasm: macro
+ db ptcallasm_command
+ dw \1 ; asm
+ endm
+
+ enum checkmaptriggers_command ; $11
+checkmaptriggers: macro
+ db checkmaptriggers_command
+ map \1 ; map
+ endm
+
+ enum domaptrigger_command ; $12
+domaptrigger: macro
+ db domaptrigger_command
+ map \1 ; map
+ db \2 ; trigger_id
+ endm
+
+ enum checktriggers_command ; $13
+checktriggers: macro
+ db checktriggers_command
+ endm
+
+ enum dotrigger_command ; $14
+dotrigger: macro
+ db dotrigger_command
+ db \1 ; trigger_id
+ endm
+
+ enum writebyte_command ; $15
+writebyte: macro
+ db writebyte_command
+ db \1 ; value
+ endm
+
+ enum addvar_command ; $16
+addvar: macro
+ db addvar_command
+ db \1 ; value
+ endm
+
+ enum random_command ; $17
+random: macro
+ db random_command
+ db \1 ; input
+ endm
+
+ enum checkver_command ; $18
+checkver: macro
+ db checkver_command
+ endm
+
+ enum copybytetovar_command ; $19
+copybytetovar: macro
+ db copybytetovar_command
+ dw \1 ; address
+ endm
+
+ enum copyvartobyte_command ; $1a
+copyvartobyte: macro
+ db copyvartobyte_command
+ dw \1 ; address
+ endm
+
+ enum loadvar_command ; $1b
+loadvar: macro
+ db loadvar_command
+ dw \1 ; address
+ db \2 ; value
+ endm
+
+ enum checkcode_command ; $1c
+checkcode: macro
+ db checkcode_command
+ db \1 ; variable_id
+ endm
+
+ enum writevarcode_command ; $1d
+writevarcode: macro
+ db writevarcode_command
+ db \1 ; variable_id
+ endm
+
+ enum writecode_command ; $1e
+writecode: macro
+ db writecode_command
+ db \1 ; variable_id
+ db \2 ; value
+ endm
+
+ enum giveitem_command ; $1f
+giveitem: macro
+ db giveitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum takeitem_command ; $20
+takeitem: macro
+ db takeitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum checkitem_command ; $21
+checkitem: macro
+ db checkitem_command
+ db \1 ; item
+ endm
+
+ enum givemoney_command ; $22
+givemoney: macro
+ db givemoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum takemoney_command ; $23
+takemoney: macro
+ db takemoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum checkmoney_command ; $24
+checkmoney: macro
+ db checkmoney_command
+ db \1 ; account
+ dt \2 ; money
+ endm
+
+ enum givecoins_command ; $25
+givecoins: macro
+ db givecoins_command
+ dw \1 ; coins
+ endm
+
+ enum takecoins_command ; $26
+takecoins: macro
+ db takecoins_command
+ dw \1 ; coins
+ endm
+
+ enum checkcoins_command ; $27
+checkcoins: macro
+ db checkcoins_command
+ dw \1 ; coins
+ endm
+
+ enum addcellnum_command ; $28
+addcellnum: macro
+ db addcellnum_command
+ db \1 ; person
+ endm
+
+ enum delcellnum_command ; $29
+delcellnum: macro
+ db delcellnum_command
+ db \1 ; person
+ endm
+
+ enum checkcellnum_command ; $2a
+checkcellnum: macro
+ db checkcellnum_command
+ db \1 ; person
+ endm
+
+ enum checktime_command ; $2b
+checktime: macro
+ db checktime_command
+ db \1 ; time
+ endm
+
+checkmorn EQUS "checktime MORN"
+checkday EQUS "checktime DAY"
+checknite EQUS "checktime NITE"
+
+ enum checkpoke_command ; $2c
+checkpoke: macro
+ db checkpoke_command
+ db \1 ; pkmn
+ endm
+
+ enum givepoke_command ; $2d
+givepoke: macro
+ db givepoke_command
+ db \1 ; pokemon
+ db \2 ; level
+ if _NARG >= 3
+ db \3 ; item
+ if _NARG >= 4
+ db \4 ; trainer
+ if \4
+ dw \5 ; trainer_name_pointer
+ dw \6 ; pkmn_nickname
+ endc
+ else
+ db 0
+ endc
+ else
+ db 0, 0
+ endc
+ endm
+
+ enum giveegg_command ; $2e
+giveegg: macro
+ db giveegg_command
+ db \1 ; pkmn
+ db \2 ; level
+ endm
+
+ enum givepokeitem_command ; $2f
+givepokeitem: macro
+ db givepokeitem_command
+ dw \1 ; pointer
+ endm
+
+ enum checkpokeitem_command ; $30
+checkpokeitem: macro
+ db checkpokeitem_command
+ dw \1 ; pointer
+ endm
+
+ enum checkevent_command ; $31
+checkevent: macro
+ db checkevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum clearevent_command ; $32
+clearevent: macro
+ db clearevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum setevent_command ; $33
+setevent: macro
+ db setevent_command
+ dw \1 ; event_flag
+ endm
+
+ enum checkflag_command ; $34
+checkflag: macro
+ db checkflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum clearflag_command ; $35
+clearflag: macro
+ db clearflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum setflag_command ; $36
+setflag: macro
+ db setflag_command
+ dw \1 ; engine_flag
+ endm
+
+ enum wildon_command ; $37
+wildon: macro
+ db wildon_command
+ endm
+
+ enum wildoff_command ; $38
+wildoff: macro
+ db wildoff_command
+ endm
+
+ enum xycompare_command ; $39
+xycompare: macro
+ db xycompare_command
+ dw \1 ; pointer
+ endm
+
+ enum warpmod_command ; $3a
+warpmod: macro
+ db warpmod_command
+ db \1 ; warp_id
+ map \2 ; map
+ endm
+
+ enum blackoutmod_command ; $3b
+blackoutmod: macro
+ db blackoutmod_command
+ map \1 ; map
+ endm
+
+ enum warp_command ; $3c
+warp: macro
+ db warp_command
+ map \1 ; map
+ db \2 ; x
+ db \3 ; y
+ endm
+
+ enum readmoney_command ; $3d
+readmoney: macro
+ db readmoney_command
+ db \1 ; account
+ db \2 ; memory
+ endm
+
+ enum readcoins_command ; $3e
+readcoins: macro
+ db readcoins_command
+ db \1 ; memory
+ endm
+
+ enum RAM2MEM_command ; $3f
+RAM2MEM: macro
+ db RAM2MEM_command
+ db \1 ; memory
+ endm
+
+ enum pokenamemem_command ; $40
+pokenamemem: macro
+ db pokenamemem_command
+ db \1 ; pokemon
+ db \2 ; memory
+ endm
+
+ enum itemtotext_command ; $41
+itemtotext: macro
+ db itemtotext_command
+ db \1 ; item
+ db \2 ; memory
+ endm
+
+ enum mapnametotext_command ; $42
+mapnametotext: macro
+ db mapnametotext_command
+ db \1 ; memory
+ endm
+
+ enum trainertotext_command ; $43
+trainertotext: macro
+ db trainertotext_command
+ db \1 ; trainer_id
+ db \2 ; trainer_group
+ db \3 ; memory
+ endm
+
+ enum stringtotext_command ; $44
+stringtotext: macro
+ db stringtotext_command
+ dw \1 ; text_pointer
+ db \2 ; memory
+ endm
+
+ enum itemnotify_command ; $45
+itemnotify: macro
+ db itemnotify_command
+ endm
+
+ enum pocketisfull_command ; $46
+pocketisfull: macro
+ db pocketisfull_command
+ endm
+
+ enum opentext_command ; $47
+opentext: macro
+ db opentext_command
+ endm
+
+ enum refreshscreen_command ; $48
+refreshscreen: macro
+ db refreshscreen_command
+ db \1 ; dummy
+ endm
+
+ enum closetext_command ; $49
+closetext: macro
+ db closetext_command
+ endm
+
+ enum loadbytec2cf_command ; $4a
+loadbytec2cf: macro
+ db loadbytec2cf_command
+ db \1 ; byte
+ endm
+
+ enum farwritetext_command ; $4b
+farwritetext: macro
+ db farwritetext_command
+ dba \1
+ endm
+
+ enum writetext_command ; $4c
+writetext: macro
+ db writetext_command
+ dw \1 ; text_pointer
+ endm
+
+ enum repeattext_command ; $4d
+repeattext: macro
+ db repeattext_command
+ db \1 ; byte
+ db \2 ; byte
+ endm
+
+ enum yesorno_command ; $4e
+yesorno: macro
+ db yesorno_command
+ endm
+
+ enum loadmenudata_command ; $4f
+loadmenudata: macro
+ db loadmenudata_command
+ dw \1 ; data
+ endm
+
+ enum closewindow_command ; $50
+closewindow: macro
+ db closewindow_command
+ endm
+
+ enum jumptextfaceplayer_command ; $51
+jumptextfaceplayer: macro
+ db jumptextfaceplayer_command
+ dw \1 ; text_pointer
+ endm
+
+; IF _CRYSTAL
+ enum farjumptext_command ; $52
+farjumptext: macro
+ db farjumptext_command
+ dba \1
+ endm
+; ENDC
+
+ enum jumptext_command ; $53
+jumptext: macro
+ db jumptext_command
+ dw \1 ; text_pointer
+ endm
+
+ enum waitbutton_command ; $54
+waitbutton: macro
+ db waitbutton_command
+ endm
+
+ enum buttonsound_command ; $55
+buttonsound: macro
+ db buttonsound_command
+ endm
+
+ enum pokepic_command ; $56
+pokepic: macro
+ db pokepic_command
+ db \1 ; pokemon
+ endm
+
+ enum closepokepic_command ; $57
+closepokepic: macro
+ db closepokepic_command
+ endm
+
+ enum _2dmenu_command ; $58
+_2dmenu: macro
+ db _2dmenu_command
+ endm
+
+ enum verticalmenu_command ; $59
+verticalmenu: macro
+ db verticalmenu_command
+ endm
+
+ enum loadpikachudata_command ; $5a
+loadpikachudata: macro
+ db loadpikachudata_command
+ endm
+
+ enum randomwildmon_command ; $5b
+randomwildmon: macro
+ db randomwildmon_command
+ endm
+
+ enum loadmemtrainer_command ; $5c
+loadmemtrainer: macro
+ db loadmemtrainer_command
+ endm
+
+ enum loadwildmon_command ; $5d
+loadwildmon: macro
+ db loadwildmon_command
+ db \1 ; pokemon
+ db \2 ; level
+ endm
+
+ enum loadtrainer_command ; $5e
+loadtrainer: macro
+ db loadtrainer_command
+ db \1 ; trainer_group
+ db \2 ; trainer_id
+ endm
+
+ enum startbattle_command ; $5f
+startbattle: macro
+ db startbattle_command
+ endm
+
+ enum reloadmapafterbattle_command ; $60
+reloadmapafterbattle: macro
+ db reloadmapafterbattle_command
+ endm
+
+ enum catchtutorial_command ; $61
+catchtutorial: macro
+ db catchtutorial_command
+ db \1 ; byte
+ endm
+
+ enum trainertext_command ; $62
+trainertext: macro
+ db trainertext_command
+ db \1 ; which_text
+ endm
+
+ enum trainerflagaction_command ; $63
+trainerflagaction: macro
+ db trainerflagaction_command
+ db \1 ; action
+ endm
+
+ enum winlosstext_command ; $64
+winlosstext: macro
+ db winlosstext_command
+ dw \1 ; win_text_pointer
+ dw \2 ; loss_text_pointer
+ endm
+
+ enum scripttalkafter_command ; $65
+scripttalkafter: macro
+ db scripttalkafter_command
+ endm
+
+ enum end_if_just_battled_command ; $66
+end_if_just_battled: macro
+ db end_if_just_battled_command
+ endm
+
+ enum check_just_battled_command ; $67
+check_just_battled: macro
+ db check_just_battled_command
+ endm
+
+ enum setlasttalked_command ; $68
+setlasttalked: macro
+ db setlasttalked_command
+ db \1 ; person
+ endm
+
+ enum applymovement_command ; $69
+applymovement: macro
+ db applymovement_command
+ db \1 ; person
+ dw \2 ; data
+ endm
+
+ enum applymovement2_command ; $6a
+applymovement2: macro
+ db applymovement2_command
+ dw \1 ; data
+ endm
+
+ enum faceplayer_command ; $6b
+faceplayer: macro
+ db faceplayer_command
+ endm
+
+ enum faceperson_command ; $6c
+faceperson: macro
+ db faceperson_command
+ db \1 ; person1
+ db \2 ; person2
+ endm
+
+ enum variablesprite_command ; $6d
+variablesprite: macro
+ db variablesprite_command
+ db \1 - SPRITE_VARS ; byte
+ db \2 ; sprite
+ endm
+
+ enum disappear_command ; $6e
+disappear: macro
+ db disappear_command
+ db \1 ; person
+ endm
+
+ enum appear_command ; $6f
+appear: macro
+ db appear_command
+ db \1 ; person
+ endm
+
+ enum follow_command ; $70
+follow: macro
+ db follow_command
+ db \1 ; person2
+ db \2 ; person1
+ endm
+
+ enum stopfollow_command ; $71
+stopfollow: macro
+ db stopfollow_command
+ endm
+
+ enum moveperson_command ; $72
+moveperson: macro
+ db moveperson_command
+ db \1 ; person
+ db \2 ; x
+ db \3 ; y
+ endm
+
+ enum writepersonxy_command ; $73
+writepersonxy: macro
+ db writepersonxy_command
+ db \1 ; person
+ endm
+
+ enum loademote_command ; $74
+loademote: macro
+ db loademote_command
+ db \1 ; bubble
+ endm
+
+ enum showemote_command ; $75
+showemote: macro
+ db showemote_command
+ db \1 ; bubble
+ db \2 ; person
+ db \3 ; time
+ endm
+
+ enum spriteface_command ; $76
+spriteface: macro
+ db spriteface_command
+ db \1 ; person
+ db \2 ; facing
+ endm
+
+ enum follownotexact_command ; $77
+follownotexact: macro
+ db follownotexact_command
+ db \1 ; person2
+ db \2 ; person1
+ endm
+
+ enum earthquake_command ; $78
+earthquake: macro
+ db earthquake_command
+ db \1 ; param
+ endm
+
+ enum changemap_command ; $79
+changemap: macro
+ db changemap_command
+ db \1 ; map_bank
+ dw \2 ; map_data_pointer
+ endm
+
+ enum changeblock_command ; $7a
+changeblock: macro
+ db changeblock_command
+ db \1 ; x
+ db \2 ; y
+ db \3 ; block
+ endm
+
+ enum reloadmap_command ; $7b
+reloadmap: macro
+ db reloadmap_command
+ endm
+
+ enum reloadmappart_command ; $7c
+reloadmappart: macro
+ db reloadmappart_command
+ endm
+
+ enum writecmdqueue_command ; $7d
+writecmdqueue: macro
+ db writecmdqueue_command
+ dw \1 ; queue_pointer
+ endm
+
+ enum delcmdqueue_command ; $7e
+delcmdqueue: macro
+ db delcmdqueue_command
+ db \1 ; byte
+ endm
+
+ enum playmusic_command ; $7f
+playmusic: macro
+ db playmusic_command
+ dw \1 ; music_pointer
+ endm
+
+ enum encountermusic_command ; $80
+encountermusic: macro
+ db encountermusic_command
+ endm
+
+ enum musicfadeout_command ; $81
+musicfadeout: macro
+ db musicfadeout_command
+ dw \1 ; music
+ db \2 ; fadetime
+ endm
+
+ enum playmapmusic_command ; $82
+playmapmusic: macro
+ db playmapmusic_command
+ endm
+
+ enum dontrestartmapmusic_command ; $83
+dontrestartmapmusic: macro
+ db dontrestartmapmusic_command
+ endm
+
+ enum cry_command ; $84
+cry: macro
+ db cry_command
+ dw \1 ; cry_id
+ endm
+
+ enum playsound_command ; $85
+playsound: macro
+ db playsound_command
+ dw \1 ; sound_pointer
+ endm
+
+ enum waitsfx_command ; $86
+waitsfx: macro
+ db waitsfx_command
+ endm
+
+ enum warpsound_command ; $87
+warpsound: macro
+ db warpsound_command
+ endm
+
+ enum specialsound_command ; $88
+specialsound: macro
+ db specialsound_command
+ endm
+
+ enum passtoengine_command ; $89
+passtoengine: macro
+ db passtoengine_command
+ db \1 ; data_pointer
+ endm
+
+ enum newloadmap_command ; $8a
+newloadmap: macro
+ db newloadmap_command
+ db \1 ; which_method
+ endm
+
+ enum pause_command ; $8b
+pause: macro
+ db pause_command
+ db \1 ; length
+ endm
+
+ enum deactivatefacing_command ; $8c
+deactivatefacing: macro
+ db deactivatefacing_command
+ db \1 ; time
+ endm
+
+ enum priorityjump_command ; $8d
+priorityjump: macro
+ db priorityjump_command
+ dw \1 ; pointer
+ endm
+
+ enum warpcheck_command ; $8e
+warpcheck: macro
+ db warpcheck_command
+ endm
+
+ enum ptpriorityjump_command ; $8f
+ptpriorityjump: macro
+ db ptpriorityjump_command
+ dw \1 ; pointer
+ endm
+
+ enum return_command ; $90
+return: macro
+ db return_command
+ endm
+
+ enum end_command ; $91
+end: macro
+ db end_command
+ endm
+
+ enum reloadandreturn_command ; $92
+reloadandreturn: macro
+ db reloadandreturn_command
+ db \1 ; which_method
+ endm
+
+ enum end_all_command ; $93
+end_all: macro
+ db end_all_command
+ endm
+
+ enum pokemart_command ; $94
+pokemart: macro
+ db pokemart_command
+ db \1 ; dialog_id
+ dw \2 ; mart_id
+ endm
+
+ enum elevator_command ; $95
+elevator: macro
+ db elevator_command
+ dw \1 ; floor_list_pointer
+ endm
+
+ enum trade_command ; $96
+trade: macro
+ db trade_command
+ db \1 ; trade_id
+ endm
+
+ enum askforphonenumber_command ; $97
+askforphonenumber: macro
+ db askforphonenumber_command
+ db \1 ; number
+ endm
+
+ enum phonecall_command ; $98
+phonecall: macro
+ db phonecall_command
+ dw \1 ; caller_name
+ endm
+
+ enum hangup_command ; $99
+hangup: macro
+ db hangup_command
+ endm
+
+ enum describedecoration_command ; $9a
+describedecoration: macro
+ db describedecoration_command
+ db \1 ; byte
+ endm
+
+ enum fruittree_command ; $9b
+fruittree: macro
+ db fruittree_command
+ db \1 ; tree_id
+ endm
+
+ enum specialphonecall_command ; $9c
+specialphonecall: macro
+ db specialphonecall_command
+ dw \1 ; call_id
+ endm
+
+ enum checkphonecall_command ; $9d
+checkphonecall: macro
+ db checkphonecall_command
+ endm
+
+ enum verbosegiveitem_command ; $9e
+verbosegiveitem: macro
+ db verbosegiveitem_command
+ db \1 ; item
+if _NARG == 2
+ db \2 ; quantity
+else
+ db 1
+endc
+ endm
+
+ enum verbosegiveitem2_command ; $9f
+verbosegiveitem2: macro
+ db verbosegiveitem2_command
+ db \1 ; item
+ db \2 ; var
+ endm
+
+ enum swarm_command ; $a0
+swarm: macro
+ db swarm_command
+ db \1 ; flag
+ map \2 ; map
+ endm
+
+ enum halloffame_command ; $a1
+halloffame: macro
+ db halloffame_command
+ endm
+
+ enum credits_command ; $a2
+credits: macro
+ db credits_command
+ endm
+
+ enum warpfacing_command ; $a3
+warpfacing: macro
+ db warpfacing_command
+ db \1 ; facing
+ map \2 ; map
+ db \3 ; x
+ db \4 ; y
+ endm
+
+ enum battletowertext_command ; $a4
+battletowertext: macro
+ db battletowertext_command
+ db \1 ; memory
+ endm
+
+ enum landmarktotext_command ; $a5
+landmarktotext: macro
+ db landmarktotext_command
+ db \1 ; id
+ db \2 ; memory
+ endm
+
+ enum trainerclassname_command ; $a6
+trainerclassname: macro
+ db trainerclassname_command
+ db \1 ; id
+ db \2 ; memory
+ endm
+
+ enum name_command ; $a7
+name: macro
+ db name_command
+ db \1 ; type
+ db \2 ; id
+ db \3 ; memory
+ endm
+
+ enum wait_command ; $a8
+wait: macro
+ db wait_command
+ db \1 ; duration
+ endm
+
+ enum check_save_command ; $a9
+check_save: macro
+ db check_save_command
+ endm
diff --git a/macros/scripts/gfx_anim.asm b/macros/scripts/gfx_anim.asm
new file mode 100644
index 000000000..a3fa710a0
--- /dev/null
+++ b/macros/scripts/gfx_anim.asm
@@ -0,0 +1,44 @@
+; pic + oam animations
+
+frame: macro
+ db \1
+x = \2
+if _NARG > 2
+rept _NARG +- 2
+x = x | (1 << (\3 + 1))
+ shift
+endr
+endc
+ db x
+ endm
+
+ enum_start $fc
+
+ enum delanim_command ; $fc
+delanim: macro ; used for oam
+ db delanim_command
+ endm
+
+ enum dorepeat_command ; $fd
+dorepeat: macro
+ db dorepeat_command
+ db \1 ; #
+ endm
+
+ enum setrepeat_command ; $fe
+setrepeat: macro
+ db setrepeat_command
+ db \1 ; #
+ endm
+
+ enum endanim_command ; $ff
+endanim: macro
+ db endanim_command
+ endm
+
+__enum__ = $fe
+
+ enum dorestart_command ; $fe
+dorestart: macro ; used for oam
+ db dorestart_command
+ endm
diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm
new file mode 100644
index 000000000..6c1e0b6b6
--- /dev/null
+++ b/macros/scripts/maps.asm
@@ -0,0 +1,108 @@
+map: macro
+;\1: map id
+ db GROUP_\1, MAP_\1
+endm
+
+
+maptrigger: macro
+;\1: script pointer
+ dw \1, 0
+endm
+
+warp_def: macro
+;\1: y: top to bottom, starts at 0
+;\2: x: left to right, starts at 0
+;\3: warp destination: starts at 1
+;\4: map id: from constants/map_constants.asm
+ db \1, \2, \3
+ map \4
+endm
+
+xy_trigger: macro
+;\1: number: controlled by dotrigger/domaptrigger
+;\2: y: top to bottom, starts at 0
+;\3: x: left to right, starts at 0
+;\4: script pointer
+ db \1, \2, \3, $0
+ dw \4
+ db $0, $0
+endm
+
+signpost: macro
+;\1: y: top to bottom, starts at 0
+;\2: x: left to right, starts at 0
+;\3: function: a SIGNPOST_* constant
+;\4: script pointer
+ db \1, \2, \3
+ dw \4
+endm
+
+person_event: macro
+;\1: sprite: a SPRITE_* constant
+;\2: y: top to bottom, starts at 0
+;\3: x: left to right, starts at 0
+;\4: movement function: a SPRITEMOVEDATA_* constant
+;\5, \6: movement radius: y, x
+;\7, \8: hour1 and hour2: control the hours a person_event is visible (0-23)
+; * if hour1 < hour2, the person_event will only appear from hour1 to hour2
+; * if hour1 > hour2, the person_event will not appear from hour2 to hour1
+; * if hour1 == hour2, the person_event will always appear
+; * if hour1 == -1, hour2 is treated as a time-of-day value:
+; a combo of MORN, DAY, and/or NITE, or -1 to always appear
+;\9: color: a PAL_NPC_* constant, or 0 for sprite default
+;\10: function: a PERSONTYPE_* constant
+;\11: sight range: applies to PERSONTYPE_TRAINER
+;\12: script pointer
+;\13: event flag: an EVENT_* constant, or 0 for always
+ db \1, \2 + 4, \3 + 4, \4
+ dn \5, \6
+ db \7, \8
+ shift
+ dn \8, \9
+ shift
+ db \9
+ shift
+ dw \9
+ shift
+ dw \9
+endm
+
+
+trainer: macro
+;\1: flag: an EVENT_BEAT_* constant
+;\2: trainer group
+;\3: trainer id
+;\4: seen text
+;\5: win text
+;\6: loss text
+;\7: after-battle text
+ dw \1
+ db \2, \3
+ dw \4, \5, \6, \7
+endm
+
+itemball: macro
+;\1: item: from constants/item_constants.asm
+;\2: quantity: default 1
+if _NARG == 2
+ db \1, \2
+else
+ db \1, 1
+endc
+endm
+
+elevfloor: macro
+;\1: floor: a FLOOR_* constant
+;\2: warp destination: starts at 1
+;\3: map id
+ db \1, \2
+ map \3
+ENDM
+
+stonetable: macro
+;\1: warp id
+;\2: person_event id
+;\3: script pointer
+ db \1, \2
+ dw \3
+endm
diff --git a/macros/scripts/move_anim.asm b/macros/scripts/move_anim.asm
new file mode 100644
index 000000000..7714bb09a
--- /dev/null
+++ b/macros/scripts/move_anim.asm
@@ -0,0 +1,294 @@
+anim_wait: macro
+if \1 >= $d0
+ flip out
+endc
+ db \1
+ endm
+
+; BattleAnimCommands indexes (see battle/anim_commands.asm)
+ enum_start $d0
+
+ enum anim_obj_command ; $d0
+anim_obj: macro
+ db anim_obj_command
+ db \1 ; obj
+ db (\2 << 3) + \3 ; x
+ db (\4 << 3) + \5 ; y
+ db \6 ; param
+ endm
+
+ enum anim_1gfx_command ; $d1
+anim_1gfx: macro
+ db anim_1gfx_command
+ db \1 ; gfx1
+ endm
+
+ enum anim_2gfx_command ; $d2
+anim_2gfx: macro
+ db anim_2gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ endm
+
+ enum anim_3gfx_command ; $d3
+anim_3gfx: macro
+ db anim_3gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ endm
+
+ enum anim_4gfx_command ; $d4
+anim_4gfx: macro
+ db anim_4gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ endm
+
+ enum anim_5gfx_command ; $d5
+anim_5gfx: macro
+ db anim_5gfx_command
+ db \1 ; gfx1
+ db \2 ; gfx2
+ db \3 ; gfx3
+ db \4 ; gfx4
+ db \5 ; gfx5
+ endm
+
+ enum anim_incobj_command ; $d6
+anim_incobj: macro
+ db anim_incobj_command
+ db \1 ; id
+ endm
+
+ enum anim_setobj_command ; $d7
+anim_setobj: macro
+ db anim_setobj_command
+ db \1 ; id
+ db \2 ; obj
+ endm
+
+ enum anim_incbgeffect_command ; $d8
+anim_incbgeffect: macro
+ db anim_incbgeffect_command
+ db \1 ; effect
+ endm
+
+ enum anim_enemyfeetobj_command ; $d9
+anim_enemyfeetobj: macro
+ db anim_enemyfeetobj_command
+ endm
+
+ enum anim_playerheadobj_command ; $da
+anim_playerheadobj: macro
+ db anim_playerheadobj_command
+ endm
+
+ enum anim_checkpokeball_command ; $db
+anim_checkpokeball: macro
+ db anim_checkpokeball_command
+ endm
+
+ enum anim_transform_command ; $dc
+anim_transform: macro
+ db anim_transform_command
+ endm
+
+ enum anim_raisesub_command ; $dd
+anim_raisesub: macro
+ db anim_raisesub_command
+ endm
+
+ enum anim_dropsub_command ; $de
+anim_dropsub: macro
+ db anim_dropsub_command
+ endm
+
+ enum anim_resetobp0_command ; $df
+anim_resetobp0: macro
+ db anim_resetobp0_command
+ endm
+
+ enum anim_sound_command ; $e0
+anim_sound: macro
+ db anim_sound_command
+ db (\1 << 2) | \2 ; duration, tracks
+ db \3 ; id
+ endm
+
+ enum anim_cry_command ; $e1
+anim_cry: macro
+ db anim_cry_command
+ db \1 ; pitch
+ endm
+
+ enum anim_minimizeopp_command ; $e2
+anim_minimizeopp: macro
+ db anim_minimizeopp_command
+ endm
+
+ enum anim_oamon_command ; $e3
+anim_oamon: macro
+ db anim_oamon_command
+ endm
+
+ enum anim_oamoff_command ; $e4
+anim_oamoff: macro
+ db anim_oamoff_command
+ endm
+
+ enum anim_clearobjs_command ; $e5
+anim_clearobjs: macro
+ db anim_clearobjs_command
+ endm
+
+ enum anim_beatup_command ; $e6
+anim_beatup: macro
+ db anim_beatup_command
+ endm
+
+ enum anim_0xe7_command ; $e7
+anim_0xe7: macro
+ db anim_0xe7_command
+ endm
+
+ enum anim_updateactorpic_command ; $e8
+anim_updateactorpic: macro
+ db anim_updateactorpic_command
+ endm
+
+ enum anim_minimize_command ; $e9
+anim_minimize: macro
+ db anim_minimize_command
+ endm
+
+ enum anim_0xea_command ; $ea
+anim_0xea: macro
+ db anim_0xea_command
+ endm
+
+ enum anim_0xeb_command ; $eb
+anim_0xeb: macro
+ db anim_0xeb_command
+ endm
+
+ enum anim_0xec_command ; $ec
+anim_0xec: macro
+ db anim_0xec_command
+ endm
+
+ enum anim_0xed_command ; $ed
+anim_0xed: macro
+ db anim_0xed_command
+ endm
+
+ enum anim_if_param_and_command ; $ee
+anim_if_param_and: macro
+ db anim_if_param_and_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_jumpuntil_command ; $ef
+anim_jumpuntil: macro
+ db anim_jumpuntil_command
+ dw \1 ; address
+ endm
+
+ enum anim_bgeffect_command ; $f0
+anim_bgeffect: macro
+ db anim_bgeffect_command
+ db \1 ; effect
+ db \2 ; unknown
+ db \3 ; unknown
+ db \4 ; unknown
+ endm
+
+ enum anim_bgp_command ; $f1
+anim_bgp: macro
+ db anim_bgp_command
+ db \1 ; colors
+ endm
+
+ enum anim_obp0_command ; $f2
+anim_obp0: macro
+ db anim_obp0_command
+ db \1 ; colors
+ endm
+
+ enum anim_obp1_command ; $f3
+anim_obp1: macro
+ db anim_obp1_command
+ db \1 ; colors
+ endm
+
+ enum anim_clearsprites_command ; $f4
+anim_clearsprites: macro
+ db anim_clearsprites_command
+ endm
+
+ enum anim_0xf5_command ; $f5
+anim_0xf5: macro
+ db anim_0xf5_command
+ endm
+
+ enum anim_0xf6_command ; $f6
+anim_0xf6: macro
+ db anim_0xf6_command
+ endm
+
+ enum anim_0xf7_command ; $f7
+anim_0xf7: macro
+ db anim_0xf7_command
+ endm
+
+ enum anim_if_param_equal_command ; $f8
+anim_if_param_equal: macro
+ db anim_if_param_equal_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_setvar_command ; $f9
+anim_setvar: macro
+ db anim_setvar_command
+ db \1 ; value
+ endm
+
+ enum anim_incvar_command ; $fa
+anim_incvar: macro
+ db anim_incvar_command
+ endm
+
+ enum anim_if_var_equal_command ; $fb
+anim_if_var_equal: macro
+ db anim_if_var_equal_command
+ db \1 ; value
+ dw \2 ; address
+ endm
+
+ enum anim_jump_command ; $fc
+anim_jump: macro
+ db anim_jump_command
+ dw \1 ; address
+ endm
+
+ enum anim_loop_command ; $fd
+anim_loop: macro
+ db anim_loop_command
+ db \1 ; count
+ dw \2 ; address
+ endm
+
+ enum anim_call_command ; $fe
+anim_call: macro
+ db anim_call_command
+ dw \1 ; address
+ endm
+
+ enum anim_ret_command ; $ff
+anim_ret: macro
+ db anim_ret_command
+ endm
diff --git a/macros/scripts/movement.asm b/macros/scripts/movement.asm
new file mode 100644
index 000000000..28be559a3
--- /dev/null
+++ b/macros/scripts/movement.asm
@@ -0,0 +1,246 @@
+; MovementPointers indexes (see engine/movement.asm)
+ enum_start
+
+; Directional movements
+
+ enum movement_turn_head ; $00
+turn_head: macro
+ db movement_turn_head | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_step ; $04
+turn_step: macro
+ db movement_turn_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_step ; $08
+slow_step: macro
+ db movement_slow_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_step ; $0c
+step: macro
+ db movement_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_big_step ; $10
+big_step: macro
+ db movement_big_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_slide_step ; $14
+slow_slide_step: macro
+ db movement_slow_slide_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slide_step ; $18
+slide_step: macro
+ db movement_slide_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_fast_slide_step ; $1c
+fast_slide_step: macro
+ db movement_fast_slide_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_away ; $20
+turn_away: macro
+ db movement_turn_away | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_in ; $24
+turn_in: macro
+ db movement_turn_in | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_turn_waterfall ; $28
+turn_waterfall: macro
+ db movement_turn_waterfall | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_slow_jump_step ; $2c
+slow_jump_step: macro
+ db movement_slow_jump_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_jump_step ; $30
+jump_step: macro
+ db movement_jump_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+ enum movement_fast_jump_step ; $34
+fast_jump_step: macro
+ db movement_fast_jump_step | \1
+ endm
+
+__enum__ = __enum__ + 3
+
+; Control
+ enum movement_remove_sliding ; $38
+remove_sliding: macro
+ db movement_remove_sliding
+ endm
+
+ enum movement_set_sliding ; $39
+set_sliding: macro
+ db movement_set_sliding
+ endm
+
+ enum movement_remove_fixed_facing ; $3a
+remove_fixed_facing: macro
+ db movement_remove_fixed_facing
+ endm
+
+ enum movement_fix_facing ; $3b
+fix_facing: macro
+ db movement_fix_facing
+ endm
+
+ enum movement_show_person ; $3c
+show_person: macro
+ db movement_show_person
+ endm
+
+ enum movement_hide_person ; $3d
+hide_person: macro
+ db movement_hide_person
+ endm
+
+; Sleep
+
+ enum movement_step_sleep ; $3e
+step_sleep: macro
+if \1 <= 8
+ db movement_step_sleep + \1 - 1
+else
+ db movement_step_sleep + 8, \1
+endc
+endm
+
+__enum__ = __enum__ + 8
+
+ enum movement_step_end ; $47
+step_end: macro
+ db movement_step_end
+ endm
+
+ enum movement_step_48 ; $48
+step_48: macro
+ db movement_step_48
+ db \1 ; ???
+ endm
+
+ enum movement_remove_person ; $49
+remove_person: macro
+ db movement_remove_person
+ endm
+
+ enum movement_step_loop ; $4a
+step_loop: macro
+ db movement_step_loop
+ endm
+
+ enum movement_step_4b ; $4b
+step_4b: macro
+ db movement_step_4b
+ endm
+
+ enum movement_teleport_from ; $4c
+teleport_from: macro
+ db movement_teleport_from
+ endm
+
+ enum movement_teleport_to ; $4d
+teleport_to: macro
+ db movement_teleport_to
+ endm
+
+ enum movement_skyfall ; $4e
+skyfall: macro
+ db movement_skyfall
+ endm
+
+ enum movement_step_dig ; $4f
+step_dig: macro
+ db movement_step_dig
+ db \1 ; length
+ endm
+
+ enum movement_step_bump ; $50
+step_bump: macro
+ db movement_step_bump
+ endm
+
+ enum movement_fish_got_bite ; $51
+fish_got_bite: macro
+ db movement_fish_got_bite
+ endm
+
+ enum movement_fish_cast_rod ; $52
+fish_cast_rod: macro
+ db movement_fish_cast_rod
+ endm
+
+ enum movement_hide_emote ; $53
+hide_emote: macro
+ db movement_hide_emote
+ endm
+
+ enum movement_show_emote ; $54
+show_emote: macro
+ db movement_show_emote
+ endm
+
+ enum movement_step_shake ; $55
+step_shake: macro
+ db movement_step_shake
+ db \1 ; displacement
+ endm
+
+ enum movement_tree_shake ; $56
+tree_shake: macro
+ db movement_tree_shake
+ endm
+
+ enum movement_rock_smash ; $57
+rock_smash: macro
+ db movement_rock_smash
+ db \1 ; length
+ endm
+
+ enum movement_return_dig ; $58
+return_dig: macro
+ db movement_return_dig
+ db \1 ; length
+ endm
+
+ enum movement_skyfall_top ; $59
+skyfall_top: macro
+ db movement_skyfall_top
+ endm
diff --git a/macros/scripts/text.asm b/macros/scripts/text.asm
new file mode 100644
index 000000000..839f78eb7
--- /dev/null
+++ b/macros/scripts/text.asm
@@ -0,0 +1,133 @@
+text EQUS "db \"<START>\"," ; Start writing text.
+next EQUS "db \"<NEXT>\"," ; Move a line down.
+line EQUS "db \"<LINE>\"," ; Start writing at the bottom line.
+page EQUS "db \"@\"," ; Start a new Pokédex page.
+para EQUS "db \"<PARA>\"," ; Start a new paragraph.
+cont EQUS "db \"<CONT>\"," ; Scroll to the next line.
+done EQUS "db \"<DONE>\"" ; End a text box.
+prompt EQUS "db \"<PROMPT>\"" ; Prompt the player to end a text box (initiating some other event).
+
+; TextCommands indexes (see home/text.asm)
+ enum_start $01
+
+ enum TX_RAM ; $01
+text_from_ram: MACRO
+ db TX_RAM
+ dw \1
+ ENDM
+
+ enum TX_BCD ; $02
+text_bcd: macro
+ db TX_BCD
+ dw \1
+ db \2
+ ENDM
+
+ enum TX_MOVE ; $03
+text_move: macro
+ db TX_MOVE
+ dw \1
+ ENDM
+
+ enum TX_BOX ; $04
+text_box: macro
+ db TX_BOX
+ dw \1
+ db \2, \3
+ ENDM
+
+ enum TX_LOW ; $05
+text_low: macro
+ db TX_LOW
+ endm
+
+ enum WAIT_BUTTON ; $06
+text_waitbutton: macro
+ db WAIT_BUTTON
+ endm
+
+ enum TX_SCROLL ; $07
+text_scroll: macro
+ db TX_SCROLL
+ endm
+
+ enum START_ASM ; $08
+start_asm: macro
+ db START_ASM
+ endm
+
+ enum TX_NUM ; $09
+deciram: macro
+ db TX_NUM
+ dw \1 ; address
+ dn \2, \3 ; bytes, digits
+ endm
+
+ enum TX_EXIT ; $0a
+interpret_data: macro
+ db TX_EXIT
+ endm
+
+ enum TX_SOUND_0B ; $0b
+sound_dex_fanfare_50_79: macro
+ db TX_SOUND_0B
+ endm
+
+ enum TX_DOTS ; $0c
+limited_interpret_data: macro
+ db TX_DOTS
+ db \1
+ endm
+
+ enum TX_LINK_WAIT_BUTTON ; $0d
+link_wait_button: macro
+ db TX_LINK_WAIT_BUTTON
+ endm
+
+ enum TX_SOUND_0E ; $0e
+sound_dex_fanfare_20_49: macro
+ db TX_SOUND_0E
+ endm
+
+ enum TX_SOUND_0F ; $0f
+sound_item: macro
+ db TX_SOUND_0F
+ endm
+
+ enum TX_SOUND_10 ; $10
+sound_caught_mon: macro
+ db TX_SOUND_10
+ endm
+
+ enum TX_SOUND_11 ; $11
+sound_dex_fanfare_80_109: macro
+ db TX_SOUND_11
+ endm
+
+ enum TX_SOUND_12 ; $12
+sound_fanfare: macro
+ db TX_SOUND_12
+ endm
+
+ enum TX_SOUND_13 ; $13
+sound_slot_machine_start: macro
+ db TX_SOUND_13
+ endm
+
+ enum TX_STRINGBUFFER ; $14
+text_buffer: macro
+ db TX_STRINGBUFFER
+ db \1
+ endm
+
+ enum TX_DAY ; $15
+current_day: macro
+ db TX_DAY
+ endm
+
+ enum TX_FAR ; $16
+text_jump: MACRO
+ db TX_FAR
+ dw \1
+ db BANK(\1)
+ ENDM
diff --git a/macros/scripts/trade_anim.asm b/macros/scripts/trade_anim.asm
new file mode 100644
index 000000000..4b0291eea
--- /dev/null
+++ b/macros/scripts/trade_anim.asm
@@ -0,0 +1,255 @@
+; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm)
+ enum_start
+
+ enum tradeanim_next_command ; $00
+tradeanim_next: macro
+ db tradeanim_next_command
+endm
+
+ enum tradeanim_show_givemon_data_command ; $01
+tradeanim_show_givemon_data: macro
+ db tradeanim_show_givemon_data_command
+endm
+
+ enum tradeanim_show_getmon_data_command ; $02
+tradeanim_show_getmon_data: macro
+ db tradeanim_show_getmon_data_command
+endm
+
+ enum tradeanim_enter_link_tube_command ; $03
+tradeanim_enter_link_tube: macro
+ db tradeanim_enter_link_tube_command
+endm
+
+__enum__ set $5
+
+ enum tradeanim_exit_link_tube_command ; $05
+tradeanim_exit_link_tube: macro
+ db tradeanim_exit_link_tube_command
+endm
+
+ enum tradeanim_tube_to_ot_command ; $06
+tradeanim_tube_to_ot: macro
+ db tradeanim_tube_to_ot_command
+endm
+
+__enum__ set $0e
+
+ enum tradeanim_tube_to_player_command ; $0e
+tradeanim_tube_to_player: macro
+ db tradeanim_tube_to_player_command
+endm
+
+__enum__ set $16
+
+ enum tradeanim_sent_to_ot_text_command ; $16
+tradeanim_sent_to_ot_text: macro
+ db tradeanim_sent_to_ot_text_command
+endm
+
+ enum tradeanim_ot_bids_farewell_command ; $17
+tradeanim_ot_bids_farewell: macro
+ db tradeanim_ot_bids_farewell_command
+endm
+
+ enum tradeanim_take_care_of_text_command ; $18
+tradeanim_take_care_of_text: macro
+ db tradeanim_take_care_of_text_command
+endm
+
+ enum tradeanim_ot_sends_text_1_command ; $19
+tradeanim_ot_sends_text_1: macro
+ db tradeanim_ot_sends_text_1_command
+endm
+
+ enum tradeanim_ot_sends_text_2_command ; $1a
+tradeanim_ot_sends_text_2: macro
+ db tradeanim_ot_sends_text_2_command
+endm
+
+ enum tradeanim_setup_givemon_scroll_command ; $1b
+tradeanim_setup_givemon_scroll: macro
+ db tradeanim_setup_givemon_scroll_command
+endm
+
+ enum tradeanim_do_givemon_scroll_command ; $1c
+tradeanim_do_givemon_scroll: macro
+ db tradeanim_do_givemon_scroll_command
+endm
+
+ enum tradeanim_frontpic_scroll_command ; $1d
+tradeanim_frontpic_scroll: macro
+ db tradeanim_frontpic_scroll_command
+endm
+
+ enum tradeanim_textbox_scroll_command ; $1e
+tradeanim_textbox_scroll: macro
+ db tradeanim_textbox_scroll_command
+endm
+
+ enum tradeanim_scroll_out_right_command ; $1f
+tradeanim_scroll_out_right: macro
+ db tradeanim_scroll_out_right_command
+endm
+
+__enum__ set $21
+
+ enum tradeanim_wait_80_command ; $21
+tradeanim_wait_80: macro
+ db tradeanim_wait_80_command
+endm
+
+ enum tradeanim_wait_40_command ; $22
+tradeanim_wait_40: macro
+ db tradeanim_wait_40_command
+endm
+
+ enum tradeanim_rocking_ball_command ; $23
+tradeanim_rocking_ball: macro
+ db tradeanim_rocking_ball_command
+endm
+
+ enum tradeanim_drop_ball_command ; $24
+tradeanim_drop_ball: macro
+ db tradeanim_drop_ball_command
+endm
+
+ enum tradeanim_wait_anim_command ; $25
+tradeanim_wait_anim: macro
+ db tradeanim_wait_anim_command
+endm
+
+__enum__ set $27
+
+ enum tradeanim_poof_command ; $27
+tradeanim_poof: macro
+ db tradeanim_poof_command
+endm
+
+ enum tradeanim_bulge_through_tube_command ; $28
+tradeanim_bulge_through_tube: macro
+ db tradeanim_bulge_through_tube_command
+endm
+
+ enum tradeanim_give_trademon_sfx_command ; $29
+tradeanim_give_trademon_sfx: macro
+ db tradeanim_give_trademon_sfx_command
+endm
+
+ enum tradeanim_get_trademon_sfx_command ; $2a
+tradeanim_get_trademon_sfx: macro
+ db tradeanim_get_trademon_sfx_command
+endm
+
+ enum tradeanim_end_command ; $2b
+tradeanim_end: macro
+ db tradeanim_end_command
+endm
+
+ enum tradeanim_animate_frontpic_command ; $2c
+tradeanim_animate_frontpic: macro
+ db tradeanim_animate_frontpic_command
+endm
+
+ enum tradeanim_wait_96_command ; $2d
+tradeanim_wait_96: macro
+ db tradeanim_wait_96_command
+endm
+
+ enum tradeanim_wait_80_if_ot_egg_command ; $2e
+tradeanim_wait_80_if_ot_egg: macro
+ db tradeanim_wait_80_if_ot_egg_command
+endm
+
+ enum tradeanim_wait_180_if_ot_egg_command ; $2f
+tradeanim_wait_180_if_ot_egg: macro
+ db tradeanim_wait_180_if_ot_egg_command
+endm
+
+
+; Mobile
+ enum_start $01
+
+ enum mobiletradeanim_showgivemon_command ; $01
+mobiletradeanim_showgivemon: macro
+ db mobiletradeanim_showgivemon_command
+endm
+
+ enum mobiletradeanim_02_command ; $02
+mobiletradeanim_02: macro
+ db mobiletradeanim_02_command
+endm
+
+ enum mobiletradeanim_sendmon_command ; $03
+mobiletradeanim_sendmon: macro
+ db mobiletradeanim_sendmon_command
+endm
+
+__enum__ set $05
+
+ enum mobiletradeanim_05_command ; $05
+mobiletradeanim_05: macro
+ db mobiletradeanim_05_command
+endm
+
+ enum mobiletradeanim_06_command ; $06
+mobiletradeanim_06: macro
+ db mobiletradeanim_06_command
+endm
+
+ enum mobiletradeanim_07_command ; $07
+mobiletradeanim_07: macro
+ db mobiletradeanim_07_command
+endm
+
+ enum mobiletradeanim_receivemon_command ; $08
+mobiletradeanim_receivemon: macro
+ db mobiletradeanim_receivemon_command
+endm
+
+__enum__ set $0b
+
+ enum mobiletradeanim_showgetmon_command ; $0b
+mobiletradeanim_showgetmon: macro
+ db mobiletradeanim_showgetmon_command
+endm
+
+ enum mobiletradeanim_end_command ; $0c
+mobiletradeanim_end: macro
+ db mobiletradeanim_end_command
+endm
+
+ enum mobiletradeanim_showgtsgivemon_command ; $0d
+mobiletradeanim_showgtsgivemon: macro
+ db mobiletradeanim_showgtsgivemon_command
+endm
+
+ enum mobiletradeanim_showgtsgetmon_command ; $0e
+mobiletradeanim_showgtsgetmon: macro
+ db mobiletradeanim_showgtsgetmon_command
+endm
+
+ enum mobiletradeanim_0f_command ; $0f
+mobiletradeanim_0f: macro
+ db mobiletradeanim_0f_command
+endm
+
+ enum mobiletradeanim_10_command ; $10
+mobiletradeanim_10: macro
+ db mobiletradeanim_10_command
+endm
+
+ enum mobiletradeanim_11_command ; $11
+mobiletradeanim_11: macro
+ db mobiletradeanim_11_command
+endm
+
+ enum mobiletradeanim_12_command ; $12
+mobiletradeanim_12: macro
+ db mobiletradeanim_12_command
+endm
+
+ enum mobiletradeanim_showoddegg_command ; $13
+mobiletradeanim_showoddegg: macro
+ db mobiletradeanim_showoddegg_command
+endm
diff --git a/macros/sound.asm b/macros/sound.asm
deleted file mode 100644
index bac979a5f..000000000
--- a/macros/sound.asm
+++ /dev/null
@@ -1,265 +0,0 @@
-note: MACRO
- dn (\1), (\2) - 1
- ENDM
-
-sound: macro
- note \1, \2
- db \3 ; intensity
- dw \4 ; frequency
- endm
-
-noise: macro
- note \1, \2 ; duration
- db \3 ; intensity
- db \4 ; frequency
- endm
-
-musicheader: macro
- ; number of tracks, track idx, address
- dbw ((\1 - 1) << 6) + (\2 - 1), \3
- endm
-
-cry_header: macro
- dw \1, \2, \3
- endm
-
-; MusicCommands indexes (see audio/engine.asm)
- enum_start $d8
-
- enum notetype_cmd
-octave: macro
- db notetype_cmd - (\1)
- endm
-
-notetype: macro
- db notetype_cmd
- db \1 ; note_length
- if _NARG >= 2
- db \2 ; intensity
- endc
- endm
-
- enum pitchoffset_cmd
-pitchoffset: macro
- db pitchoffset_cmd
- dn \1, \2 - 1 ; octave, key
- endm
-
- enum tempo_cmd
-tempo: macro
- db tempo_cmd
- bigdw \1 ; tempo
- endm
-
- enum dutycycle_cmd
-dutycycle: macro
- db dutycycle_cmd
- db \1 ; duty_cycle
- endm
-
- enum intensity_cmd
-intensity: macro
- db intensity_cmd
- db \1 ; intensity
- endm
-
- enum soundinput_cmd
-soundinput: macro
- db soundinput_cmd
- db \1 ; input
- endm
-
- enum sound_duty_cmd
-sound_duty: macro
- db sound_duty_cmd
- db \1 | (\2 << 2) | (\3 << 4) | (\4 << 6) ; duty sequence
- endm
-
- enum togglesfx_cmd
-togglesfx: macro
- db togglesfx_cmd
- endm
-
- enum slidepitchto_cmd
-slidepitchto: macro
- db slidepitchto_cmd
- db \1 - 1 ; duration
- dn \2, \3 ; octave, pitch
- endm
-
- enum vibrato_cmd
-vibrato: macro
- db vibrato_cmd
- db \1 ; delay
- db \2 ; extent
- endm
-
- enum unknownmusic0xe2_cmd
-unknownmusic0xe2: macro
- db unknownmusic0xe2_cmd
- db \1 ; unknown
- endm
-
- enum togglenoise_cmd
-togglenoise: macro
- db togglenoise_cmd
- db \1 ; id
- endm
-
- enum panning_cmd
-panning: macro
- db panning_cmd
- db \1 ; tracks
- endm
-
- enum volume_cmd
-volume: macro
- db volume_cmd
- db \1 ; volume
- endm
-
- enum tone_cmd
-tone: macro
- db tone_cmd
- bigdw \1 ; tone
- endm
-
- enum unknownmusic0xe7_cmd
-unknownmusic0xe7: macro
- db unknownmusic0xe7_cmd
- db \1 ; unknown
- endm
-
- enum unknownmusic0xe8_cmd
-unknownmusic0xe8: macro
- db unknownmusic0xe8_cmd
- db \1 ; unknown
- endm
-
- enum tempo_relative_cmd
-tempo_relative: macro
- db tempo_relative_cmd
- bigdw \1 ; value
- endm
-
- enum restartchannel_cmd
-restartchannel: macro
- db restartchannel_cmd
- dw \1 ; address
- endm
-
- enum newsong_cmd
-newsong: macro
- db newsong_cmd
- bigdw \1 ; id
- endm
-
- enum sfxpriorityon_cmd
-sfxpriorityon: macro
- db sfxpriorityon_cmd
- endm
-
- enum sfxpriorityoff_cmd
-sfxpriorityoff: macro
- db sfxpriorityoff_cmd
- endm
-
- enum unknownmusic0xee_cmd
-unknownmusic0xee: macro
- db unknownmusic0xee_cmd
- dw \1 ; address
- endm
-
- enum stereopanning_cmd
-stereopanning: macro
- db stereopanning_cmd
- db \1 ; tracks
- endm
-
- enum sfxtogglenoise_cmd
-sfxtogglenoise: macro
- db sfxtogglenoise_cmd
- db \1 ; id
- endm
-
- enum music0xf1_cmd
-music0xf1: macro
- db music0xf1_cmd
- endm
-
- enum music0xf2_cmd
-music0xf2: macro
- db music0xf2_cmd
- endm
-
- enum music0xf3_cmd
-music0xf3: macro
- db music0xf3_cmd
- endm
-
- enum music0xf4_cmd
-music0xf4: macro
- db music0xf4_cmd
- endm
-
- enum music0xf5_cmd
-music0xf5: macro
- db music0xf5_cmd
- endm
-
- enum music0xf6_cmd
-music0xf6: macro
- db music0xf6_cmd
- endm
-
- enum music0xf7_cmd
-music0xf7: macro
- db music0xf7_cmd
- endm
-
- enum music0xf8_cmd
-music0xf8: macro
- db music0xf8_cmd
- endm
-
- enum unknownmusic0xf9_cmd
-unknownmusic0xf9: macro
- db unknownmusic0xf9_cmd
- endm
-
- enum setcondition_cmd
-setcondition: macro
- db setcondition_cmd
- db \1 ; condition
- endm
-
- enum jumpif_cmd
-jumpif: macro
- db jumpif_cmd
- db \1 ; condition
- dw \2 ; address
- endm
-
- enum jumpchannel_cmd
-jumpchannel: macro
- db jumpchannel_cmd
- dw \1 ; address
- endm
-
- enum loopchannel_cmd
-loopchannel: macro
- db loopchannel_cmd
- db \1 ; count
- dw \2 ; address
- endm
-
- enum callchannel_cmd
-callchannel: macro
- db callchannel_cmd
- dw \1 ; address
- endm
-
- enum endchannel_cmd
-endchannel: macro
- db endchannel_cmd
- endm
diff --git a/macros/text.asm b/macros/text.asm
deleted file mode 100644
index e29f8a511..000000000
--- a/macros/text.asm
+++ /dev/null
@@ -1,133 +0,0 @@
-text EQUS "db $00," ; Start writing text.
-next EQUS "db $4e," ; Move a line down.
-line EQUS "db $4f," ; Start writing at the bottom line.
-page EQUS "db $50," ; Start a new Pokédex page.
-para EQUS "db $51," ; Start a new paragraph.
-cont EQUS "db $55," ; Scroll to the next line.
-done EQUS "db $57" ; End a text box.
-prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some other event).
-
-; TextCommands indexes (see home/text.asm)
- enum_start $01
-
- enum TX_RAM
-text_from_ram: MACRO
- db TX_RAM
- dw \1
- ENDM
-
- enum TX_BCD
-text_bcd: macro
- db TX_BCD
- dw \1
- db \2
- ENDM
-
- enum TX_MOVE
-text_move: macro
- db TX_MOVE
- dw \1
- ENDM
-
- enum TX_BOX
-text_box: macro
- db TX_BOX
- dw \1
- db \2, \3
- ENDM
-
- enum TX_LOW
-text_low: macro
- db TX_LOW
- endm
-
- enum WAIT_BUTTON
-text_waitbutton: macro
- db WAIT_BUTTON
- endm
-
- enum TX_SCROLL
-text_scroll: macro
- db TX_SCROLL
- endm
-
- enum START_ASM
-start_asm: macro
- db START_ASM
- endm
-
- enum TX_NUM
-deciram: macro
- db TX_NUM
- dw \1 ; address
- dn \2, \3 ; bytes, digits
- endm
-
- enum TX_EXIT
-interpret_data: macro
- db TX_EXIT
- endm
-
- enum TX_SOUND_0B
-sound_dex_fanfare_50_79: macro
- db TX_SOUND_0B
- endm
-
- enum TX_DOTS
-limited_interpret_data: macro
- db TX_DOTS
- db \1
- endm
-
- enum TX_LINK_WAIT_BUTTON
-link_wait_button: macro
- db TX_LINK_WAIT_BUTTON
- endm
-
- enum TX_SOUND_0E
-sound_dex_fanfare_20_49: macro
- db TX_SOUND_0E
- endm
-
- enum TX_SOUND_0F
-sound_item: macro
- db TX_SOUND_0F
- endm
-
- enum TX_SOUND_10
-sound_caught_mon: macro
- db TX_SOUND_10
- endm
-
- enum TX_SOUND_11
-sound_dex_fanfare_80_109: macro
- db TX_SOUND_11
- endm
-
- enum TX_SOUND_12
-sound_fanfare: macro
- db TX_SOUND_12
- endm
-
- enum TX_SOUND_13
-sound_slot_machine_start: macro
- db TX_SOUND_13
- endm
-
- enum TX_STRINGBUFFER
-text_buffer: macro
- db TX_STRINGBUFFER
- db \1
- endm
-
- enum TX_DAY
-current_day: macro
- db TX_DAY
- endm
-
- enum TX_FAR
-text_jump: MACRO
- db TX_FAR
- dw \1
- db BANK(\1)
- ENDM
diff --git a/macros/tilesets.asm b/macros/tilesets.asm
index 6a233254e..aeb1d8174 100755
--- a/macros/tilesets.asm
+++ b/macros/tilesets.asm
@@ -1,3 +1,5 @@
+; Used in tilesets/*.asm
+
tilepal: MACRO
; vram bank, pals
x = \1 << OAM_TILE_BANK
diff --git a/macros/trade_anim.asm b/macros/trade_anim.asm
deleted file mode 100755
index c38dc75d6..000000000
--- a/macros/trade_anim.asm
+++ /dev/null
@@ -1,255 +0,0 @@
-; DoTradeAnimation.JumpTable indexes (see engine/trade/animation.asm)
- enum_start
-
- enum tradeanim_next_command
-tradeanim_next: macro
- db tradeanim_next_command ; 00
-endm
-
- enum tradeanim_show_givemon_data_command
-tradeanim_show_givemon_data: macro
- db tradeanim_show_givemon_data_command ; 01
-endm
-
- enum tradeanim_show_getmon_data_command
-tradeanim_show_getmon_data: macro
- db tradeanim_show_getmon_data_command ; 02
-endm
-
- enum tradeanim_enter_link_tube_command
-tradeanim_enter_link_tube: macro
- db tradeanim_enter_link_tube_command ; 03
-endm
-
-__enum__ set $5
-
- enum tradeanim_exit_link_tube_command
-tradeanim_exit_link_tube: macro
- db tradeanim_exit_link_tube_command ; 05
-endm
-
- enum tradeanim_tube_to_ot_command
-tradeanim_tube_to_ot: macro
- db tradeanim_tube_to_ot_command ; 06
-endm
-
-__enum__ set $e
-
- enum tradeanim_tube_to_player_command
-tradeanim_tube_to_player: macro
- db tradeanim_tube_to_player_command ; 0e
-endm
-
-__enum__ set $16
-
- enum tradeanim_sent_to_ot_text_command
-tradeanim_sent_to_ot_text: macro
- db tradeanim_sent_to_ot_text_command ; 16
-endm
-
- enum tradeanim_ot_bids_farewell_command
-tradeanim_ot_bids_farewell: macro
- db tradeanim_ot_bids_farewell_command ; 17
-endm
-
- enum tradeanim_take_care_of_text_command
-tradeanim_take_care_of_text: macro
- db tradeanim_take_care_of_text_command ; 18
-endm
-
- enum tradeanim_ot_sends_text_1_command
-tradeanim_ot_sends_text_1: macro
- db tradeanim_ot_sends_text_1_command ; 19
-endm
-
- enum tradeanim_ot_sends_text_2_command
-tradeanim_ot_sends_text_2: macro
- db tradeanim_ot_sends_text_2_command ; 1a
-endm
-
- enum tradeanim_setup_givemon_scroll_command
-tradeanim_setup_givemon_scroll: macro
- db tradeanim_setup_givemon_scroll_command ; 1b
-endm
-
- enum tradeanim_do_givemon_scroll_command
-tradeanim_do_givemon_scroll: macro
- db tradeanim_do_givemon_scroll_command ; 1c
-endm
-
- enum tradeanim_frontpic_scroll_command
-tradeanim_frontpic_scroll: macro
- db tradeanim_frontpic_scroll_command ; 1d
-endm
-
- enum tradeanim_textbox_scroll_command
-tradeanim_textbox_scroll: macro
- db tradeanim_textbox_scroll_command ; 1e
-endm
-
- enum tradeanim_scroll_out_right_command
-tradeanim_scroll_out_right: macro
- db tradeanim_scroll_out_right_command ; 1f
-endm
-
-__enum__ set $21
-
- enum tradeanim_wait_80_command
-tradeanim_wait_80: macro
- db tradeanim_wait_80_command ; 21
-endm
-
- enum tradeanim_wait_40_command
-tradeanim_wait_40: macro
- db tradeanim_wait_40_command ; 22
-endm
-
- enum tradeanim_rocking_ball_command
-tradeanim_rocking_ball: macro
- db tradeanim_rocking_ball_command ; 23
-endm
-
- enum tradeanim_drop_ball_command
-tradeanim_drop_ball: macro
- db tradeanim_drop_ball_command ; 24
-endm
-
- enum tradeanim_wait_anim_command
-tradeanim_wait_anim: macro
- db tradeanim_wait_anim_command ; 25
-endm
-
-__enum__ set $27
-
- enum tradeanim_poof_command
-tradeanim_poof: macro
- db tradeanim_poof_command ; 27
-endm
-
- enum tradeanim_bulge_through_tube_command
-tradeanim_bulge_through_tube: macro
- db tradeanim_bulge_through_tube_command ; 28
-endm
-
- enum tradeanim_give_trademon_sfx_command
-tradeanim_give_trademon_sfx: macro
- db tradeanim_give_trademon_sfx_command ; 29
-endm
-
- enum tradeanim_get_trademon_sfx_command
-tradeanim_get_trademon_sfx: macro
- db tradeanim_get_trademon_sfx_command ; 2a
-endm
-
- enum tradeanim_end_command
-tradeanim_end: macro
- db tradeanim_end_command ; 2b
-endm
-
- enum tradeanim_animate_frontpic_command
-tradeanim_animate_frontpic: macro
- db tradeanim_animate_frontpic_command ; 2c
-endm
-
- enum tradeanim_wait_96_command
-tradeanim_wait_96: macro
- db tradeanim_wait_96_command ; 2d
-endm
-
- enum tradeanim_wait_80_if_ot_egg_command
-tradeanim_wait_80_if_ot_egg: macro
- db tradeanim_wait_80_if_ot_egg_command ; 2e
-endm
-
- enum tradeanim_wait_180_if_ot_egg_command
-tradeanim_wait_180_if_ot_egg: macro
- db tradeanim_wait_180_if_ot_egg_command ; 2f
-endm
-
-
-; Mobile
- enum_start 1
-
- enum mobiletradeanim_showgivemon_command
-mobiletradeanim_showgivemon: macro
- db mobiletradeanim_showgivemon_command ; 01
-endm
-
- enum mobiletradeanim_02_command
-mobiletradeanim_02: macro
- db mobiletradeanim_02_command ; 02
-endm
-
- enum mobiletradeanim_sendmon_command
-mobiletradeanim_sendmon: macro
- db mobiletradeanim_sendmon_command ; 03
-endm
-
-__enum__ set $05
-
- enum mobiletradeanim_05_command
-mobiletradeanim_05: macro
- db mobiletradeanim_05_command ; 05
-endm
-
- enum mobiletradeanim_06_command
-mobiletradeanim_06: macro
- db mobiletradeanim_06_command ; 06
-endm
-
- enum mobiletradeanim_07_command
-mobiletradeanim_07: macro
- db mobiletradeanim_07_command ; 07
-endm
-
- enum mobiletradeanim_receivemon_command
-mobiletradeanim_receivemon: macro
- db mobiletradeanim_receivemon_command ; 08
-endm
-
-__enum__ set $0b
-
- enum mobiletradeanim_showgetmon_command
-mobiletradeanim_showgetmon: macro
- db mobiletradeanim_showgetmon_command ; 0b
-endm
-
- enum mobiletradeanim_end_command
-mobiletradeanim_end: macro
- db mobiletradeanim_end_command ; 0c
-endm
-
- enum mobiletradeanim_showgtsgivemon_command
-mobiletradeanim_showgtsgivemon: macro
- db mobiletradeanim_showgtsgivemon_command ; 0d
-endm
-
- enum mobiletradeanim_showgtsgetmon_command
-mobiletradeanim_showgtsgetmon: macro
- db mobiletradeanim_showgtsgetmon_command ; 0e
-endm
-
- enum mobiletradeanim_0f_command
-mobiletradeanim_0f: macro
- db mobiletradeanim_0f_command ; 0f
-endm
-
- enum mobiletradeanim_10_command
-mobiletradeanim_10: macro
- db mobiletradeanim_10_command ; 10
-endm
-
- enum mobiletradeanim_11_command
-mobiletradeanim_11: macro
- db mobiletradeanim_11_command ; 11
-endm
-
- enum mobiletradeanim_12_command
-mobiletradeanim_12: macro
- db mobiletradeanim_12_command ; 12
-endm
-
- enum mobiletradeanim_showoddegg_command
-mobiletradeanim_showoddegg: macro
- db mobiletradeanim_showoddegg_command ; 13
-endm
diff --git a/macros/trainer.asm b/macros/trainer.asm
deleted file mode 100644
index 2e6c61884..000000000
--- a/macros/trainer.asm
+++ /dev/null
@@ -1,11 +0,0 @@
-trainerclass: MACRO
- enum \1
-const_value = 1
-ENDM
-
-trainer: MACRO
- ; flag, group, id, seen text, win text, lost text, talk-again text
- dw \1
- db \2, \3
- dw \4, \5, \6, \7
-ENDM
diff --git a/macros/wram.asm b/macros/wram.asm
index ce53dc5c7..7cead9158 100755
--- a/macros/wram.asm
+++ b/macros/wram.asm
@@ -1,3 +1,4 @@
+; Used in wram.asm
flag_array: MACRO
ds ((\1) + 7) / 8
@@ -15,7 +16,7 @@ box_struct: MACRO
\1DefExp:: dw
\1SpdExp:: dw
\1SpcExp:: dw
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
\1Happiness:: db
\1PokerusStatus:: db
@@ -60,7 +61,7 @@ red_box_struct: MACRO
\1DefenseExp:: dw
\1SpeedExp:: dw
\1SpecialExp:: dw
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
ENDM
@@ -81,7 +82,7 @@ battle_struct: MACRO
\1Item:: db
\1Moves:: ds NUM_MOVES
\1MovesEnd::
-\1DVs:: ds 2
+\1DVs:: dw
\1PP:: ds NUM_MOVES
\1Happiness:: db
\1Level:: db
@@ -103,7 +104,7 @@ ENDM
box: MACRO
\1::
-\1Count:: ds 1
+\1Count:: db
\1Species:: ds MONS_PER_BOX + 1
\1Mons::
\1Mon1:: box_struct \1Mon1
@@ -115,6 +116,18 @@ box: MACRO
ENDM
+map_connection_struct: MACRO
+\1ConnectedMapGroup:: db
+\1ConnectedMapNumber:: db
+\1ConnectionStripPointer:: dw
+\1ConnectionStripLocation:: dw
+\1ConnectionStripLength:: db
+\1ConnectedMapWidth:: db
+\1ConnectionStripYOffset:: db
+\1ConnectionStripXOffset:: db
+\1ConnectionWindow:: dw
+ENDM
+
channel_struct: MACRO
; Addreses are Channel1 (c101).
\1MusicID:: dw
@@ -134,14 +147,14 @@ channel_struct: MACRO
\1FrequencyHi:: db
\1Pitch:: db ; 0:rest 1-c:note
\1Octave:: db ; 7-0 (0 is highest)
-\1PitchOffset:: db ; raises existing octaves (to repeat phrases)
+\1PitchOffset:: db ; raises existing octaves (to repeat phrases)
\1NoteDuration:: db ; frames remaining for the current note
\1Field0x16:: ds 1 ; c117
ds 1 ; c118
\1LoopCount:: db
\1Tempo:: dw
\1Tracks:: db ; hi:left lo:right
-\1SFXDutyLoop:: ds 1 ; c11d
+\1SFXDutyLoop:: db ; c11d
\1VibratoDelayCount:: db ; initialized by \1VibratoDelay
\1VibratoDelay:: db ; number of frames a note plays until vibrato starts
\1VibratoExtent:: db
@@ -149,7 +162,7 @@ channel_struct: MACRO
\1PitchWheelTarget:: dw ; frequency endpoint for pitch wheel
\1PitchWheelAmount:: db ; c124
\1PitchWheelAmountFraction:: db ; c125
-\1Field0x25:: ds 1 ; c126
+\1Field0x25:: db ; c126
ds 1 ; c127
\1CryPitch:: dw
\1Field0x29:: ds 1
@@ -179,22 +192,13 @@ battle_tower_struct: MACRO
endm
mailmsg: MACRO
-\1Message:: ds MAIL_MSG_LENGTH
+\1Message:: ds MAIL_MSG_LENGTH
\1MessageEnd:: ds 1
-\1Author:: ds PLAYER_NAME_LENGTH
+\1Author:: ds PLAYER_NAME_LENGTH
\1AuthorNationality:: ds 2
-\1AuthorID:: ds 2
-\1Species:: ds 1
-\1Type:: ds 1
-\1End::
-endm
-
-hof_mon: MACRO
-\1Species:: ds 1
-\1ID:: ds 2
-\1DVs:: ds 2
-\1Level:: ds 1
-\1Nickname:: ds PKMN_NAME_LENGTH +- 1
+\1AuthorID:: dw
+\1Species:: db
+\1Type:: db
\1End::
endm
@@ -203,19 +207,27 @@ roam_struct: MACRO
\1Level:: db
\1MapGroup:: db
\1MapNumber:: db
-\1HP:: ds 1
-\1DVs:: ds 2
+\1HP:: db
+\1DVs:: dw
ENDM
bugcontestwinner: macro
-\1PersonID:: ds 1
-\1Mon:: ds 1
-\1Score:: ds 2
+\1PersonID:: db
+\1Mon:: db
+\1Score:: dw
+endm
+
+hof_mon: MACRO
+\1Species:: db
+\1ID:: dw
+\1DVs:: dw
+\1Level:: db
+\1Nickname:: ds PKMN_NAME_LENGTH +- 1
+\1End::
endm
hall_of_fame: MACRO
-\1::
-\1WinCount:: ds 1
+\1WinCount:: db
\1Mon1:: hof_mon \1Mon1
\1Mon2:: hof_mon \1Mon2
\1Mon3:: hof_mon \1Mon3
@@ -225,26 +237,34 @@ hall_of_fame: MACRO
\1End:: ds 1
ENDM
+link_battle_record: MACRO
+\1Name:: ds NAME_LENGTH +- 1
+\1ID:: dw
+\1Wins:: dw
+\1Losses:: dw
+\1Draws:: dw
+ENDM
+
trademon: MACRO
-\1Species:: ds 1 ; wc6d0 | wc702
+\1Species:: db ; wc6d0 | wc702
\1SpeciesName:: ds PKMN_NAME_LENGTH ; wc6d1 | wc703
-\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e
-\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719
-\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724
-\1DVs:: ds 2 ; wc6fd | wc72f
-\1ID:: ds 2 ; wc6ff | wc731
-\1CaughtData:: ds 1 ; wc701 | wc733
+\1Nickname:: ds PKMN_NAME_LENGTH ; wc6dc | wc70e
+\1SenderName:: ds NAME_LENGTH ; wc6e7 | wc719
+\1OTName:: ds NAME_LENGTH ; wc6f2 | wc724
+\1DVs:: dw ; wc6fd | wc72f
+\1ID:: dw ; wc6ff | wc731
+\1CaughtData:: db ; wc701 | wc733
\1End::
ENDM
move_struct: MACRO
-\1Animation:: ds 1
-\1Effect:: ds 1
-\1Power:: ds 1
-\1Type:: ds 1
-\1Accuracy:: ds 1
-\1PP:: ds 1
-\1EffectChance:: ds 1
+\1Animation:: db
+\1Effect:: db
+\1Power:: db
+\1Type:: db
+\1Accuracy:: db
+\1PP:: db
+\1EffectChance:: db
endm
slot_reel: MACRO
@@ -266,109 +286,109 @@ endm
object_struct: MACRO
\1Struct::
-\1Sprite:: ds 1
-\1MapObjectIndex:: ds 1
-\1SpriteTile:: ds 1
-\1MovementType:: ds 1
-\1Flags:: ds 2
-\1Palette:: ds 1
-\1Walking:: ds 1
-\1Direction:: ds 1
-\1StepType:: ds 1
-\1StepDuration:: ds 1
-\1Action:: ds 1
-\1ObjectStepFrame:: ds 1
-\1Facing:: ds 1
-\1StandingTile:: ds 1 ; collision
-\1LastTile:: ds 1 ; collision
-\1StandingMapX:: ds 1
-\1StandingMapY:: ds 1
-\1LastMapX:: ds 1
-\1LastMapY:: ds 1
-\1ObjectInitX:: ds 1
-\1ObjectInitY:: ds 1
-\1Radius:: ds 1
-\1SpriteX:: ds 1
-\1SpriteY:: ds 1
-\1SpriteXOffset:: ds 1
-\1SpriteYOffset:: ds 1
-\1MovementByteIndex:: ds 1
-\1Object28:: ds 1
-\1Object29:: ds 1
-\1Object30:: ds 1
-\1Object31:: ds 1
-\1Range:: ds 1
+\1Sprite:: db
+\1MapObjectIndex:: db
+\1SpriteTile:: db
+\1MovementType:: db
+\1Flags:: dw
+\1Palette:: db
+\1Walking:: db
+\1Direction:: db
+\1StepType:: db
+\1StepDuration:: db
+\1Action:: db
+\1ObjectStepFrame:: db
+\1Facing:: db
+\1StandingTile:: db ; collision
+\1LastTile:: db ; collision
+\1StandingMapX:: db
+\1StandingMapY:: db
+\1LastMapX:: db
+\1LastMapY:: db
+\1ObjectInitX:: db
+\1ObjectInitY:: db
+\1Radius:: db
+\1SpriteX:: db
+\1SpriteY:: db
+\1SpriteXOffset:: db
+\1SpriteYOffset:: db
+\1MovementByteIndex:: db
+\1Object28:: ds 1
+\1Object29:: ds 1
+\1Object30:: ds 1
+\1Object31:: ds 1
+\1Range:: db
ds 7
\1StructEnd::
ENDM
map_object: MACRO
\1Object::
-\1ObjectStructID:: ds 1
-\1ObjectSprite:: ds 1
-\1ObjectYCoord:: ds 1
-\1ObjectXCoord:: ds 1
-\1ObjectMovement:: ds 1
-\1ObjectRadius:: ds 1
-\1ObjectHour:: ds 1
-\1ObjectTimeOfDay:: ds 1
-\1ObjectColor:: ds 1
-\1ObjectRange:: ds 1
-\1ObjectScript:: ds 2
-\1ObjectEventFlag:: ds 2
+\1ObjectStructID:: db
+\1ObjectSprite:: db
+\1ObjectYCoord:: db
+\1ObjectXCoord:: db
+\1ObjectMovement:: db
+\1ObjectRadius:: db
+\1ObjectHour:: db
+\1ObjectTimeOfDay:: db
+\1ObjectColor:: db
+\1ObjectRange:: db
+\1ObjectScript:: dw
+\1ObjectEventFlag:: dw
ds 2
endm
sprite_anim_struct: MACRO
-\1Index:: ds 1 ; 0
-\1FramesetID:: ds 1 ; 1
-\1AnimSeqID:: ds 1 ; 2
-\1TileID:: ds 1 ; 3
-\1XCoord:: ds 1 ; 4
-\1YCoord:: ds 1 ; 5
-\1XOffset:: ds 1 ; 6
-\1YOffset:: ds 1 ; 7
-\1Duration:: ds 1 ; 8
-\1DurationOffset:: ds 1 ; 9
-\1FrameIndex:: ds 1 ; a
-\1Sprite0b:: ds 1
-\1Sprite0c:: ds 1
-\1Sprite0d:: ds 1
-\1Sprite0e:: ds 1
-\1Sprite0f:: ds 1
+\1Index:: db
+\1FramesetID:: db
+\1AnimSeqID:: db
+\1TileID:: db
+\1XCoord:: db
+\1YCoord:: db
+\1XOffset:: db
+\1YOffset:: db
+\1Duration:: db
+\1DurationOffset:: db
+\1FrameIndex:: db
+\1Sprite0b:: ds 1
+\1Sprite0c:: ds 1
+\1Sprite0d:: ds 1
+\1Sprite0e:: ds 1
+\1Sprite0f:: ds 1
ENDM
battle_anim_struct: MACRO
; Placeholder until we can figure out what it all means
-\1_Index:: ds 1
-\1_Anim01:: ds 1
-\1_Anim02:: ds 1
-\1_FramesetIndex:: ds 1
-\1_FunctionIndex:: ds 1
-\1_Anim05:: ds 1
-\1_TileID:: ds 1
-\1_XCoord:: ds 1
-\1_YCoord:: ds 1
-\1_XOffset:: ds 1
-\1_YOffset:: ds 1
-\1_Anim0b:: ds 1
-\1_Anim0c:: ds 1
-\1_Anim0d:: ds 1
-\1_AnonJumptableIndex:: ds 1
-\1_Anim0f:: ds 1
-\1_Anim10:: ds 1
-\1_Anim11:: ds 1
-\1_Anim12:: ds 1
-\1_Anim13:: ds 1
-\1_Anim14:: ds 1
-\1_Anim15:: ds 1
-\1_Anim16:: ds 1
-\1_Anim17:: ds 1
+\1_Index:: db
+\1_Anim01:: ds 1
+\1_Anim02:: ds 1
+\1_FramesetIndex:: db
+\1_FunctionIndex:: db
+\1_Anim05:: ds 1
+\1_TileID:: db
+\1_XCoord:: db
+\1_YCoord:: db
+\1_XOffset:: db
+\1_YOffset:: db
+\1_Anim0b:: ds 1
+\1_Anim0c:: ds 1
+\1_Anim0d:: ds 1
+\1_AnonJumptableIndex:: db
+\1_Anim0f:: ds 1
+\1_Anim10:: ds 1
+\1_Anim11:: ds 1
+\1_Anim12:: ds 1
+\1_Anim13:: ds 1
+\1_Anim14:: ds 1
+\1_Anim15:: ds 1
+\1_Anim16:: ds 1
+\1_Anim17:: ds 1
endm
battle_bg_effect: MACRO
-\1_Function:: ds 1
-\1_01:: ds 1
-\1_02:: ds 1
-\1_03:: ds 1
+\1_Function:: db
+\1_01:: ds 1
+\1_02:: ds 1
+\1_03:: ds 1
endm
diff --git a/main.asm b/main.asm
index 6da4dabc2..cfa9d9218 100644
--- a/main.asm
+++ b/main.asm
@@ -51,200 +51,16 @@ PushOAM: ; 403f
PushOAMEnd
INCLUDE "engine/map_objects.asm"
-
INCLUDE "engine/intro_menu.asm"
-
-ReanchorBGMap_NoOAMUpdate:: ; 6454
- call DelayFrame
- ld a, [hOAMUpdate]
- push af
-
- ld a, $1
- ld [hOAMUpdate], a
- ld a, [hBGMapMode]
- push af
- xor a
- ld [hBGMapMode], a
-
- call .ReanchorBGMap
-
- pop af
- ld [hBGMapMode], a
- pop af
- ld [hOAMUpdate], a
- ld hl, VramState
- set 6, [hl]
- ret
-
-.ReanchorBGMap:
- xor a
- ld [hLCDCPointer], a
- ld [hBGMapMode], a
- ld a, $90
- ld [hWY], a
- call OverworldTextModeSwitch
- ld a, VBGMap1 / $100
- call .LoadBGMapAddrIntoHRAM
- call _OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- callba LoadOW_BGPal7
- callba ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- xor a
- ld [hBGMapMode], a
- ld [hWY], a
- callba HDMATransfer_FillBGMap0WithBlack ; no need to farcall
- ld a, VBGMap0 / $100
- call .LoadBGMapAddrIntoHRAM
- xor a
- ld [wBGMapAnchor], a
- ld a, VBGMap0 / $100
- ld [wBGMapAnchor + 1], a
- xor a
- ld [hSCX], a
- ld [hSCY], a
- call ApplyBGMapAnchorToObjects
- ret
-
-.LoadBGMapAddrIntoHRAM: ; 64b9
- ld [hBGMapAddress + 1], a
- xor a
- ld [hBGMapAddress], a
- ret
-
-LoadFonts_NoOAMUpdate:: ; 64bf
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
-
- call .LoadGFX
-
- pop af
- ld [hOAMUpdate], a
- ret
-
-.LoadGFX:
- call LoadFontsExtra
- ld a, $90
- ld [hWY], a
- call SafeUpdateSprites
- call LoadStandardFont
- ret
-
-HDMATransfer_FillBGMap0WithBlack: ; 64db
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- ld a, "<BLACK>" ; $60
- ld hl, wDecompressScratch
- ld bc, wScratchAttrMap - wDecompressScratch
- call ByteFill
- ld a, wDecompressScratch / $100
- ld [rHDMA1], a
- ld a, wDecompressScratch % $100
- ld [rHDMA2], a
- ld a, (VBGMap0 % $8000) / $100
- ld [rHDMA3], a
- ld a, (VBGMap0 % $8000) % $100
- ld [rHDMA4], a
- ld a, $3f
- ld [hDMATransfer], a
- call DelayFrame
-
- pop af
- ld [rSVBK], a
- ret
-
+INCLUDE "engine/init_map.asm"
INCLUDE "engine/learn.asm"
-
-CheckNickErrors:: ; 669f
-; error-check monster nick before use
-; must be a peace offering to gamesharkers
-
-; input: de = nick location
-
- push bc
- push de
- ld b, PKMN_NAME_LENGTH
-
-.checkchar
-; end of nick?
- ld a, [de]
- cp "@" ; terminator
- jr z, .end
-
-; check if this char is a text command
- ld hl, .textcommands
- dec hl
-.loop
-; next entry
- inc hl
-; reached end of commands table?
- ld a, [hl]
- cp -1
- jr z, .done
-
-; is the current char between this value (inclusive)...
- ld a, [de]
- cp [hl]
- inc hl
- jr c, .loop
-; ...and this one?
- cp [hl]
- jr nc, .loop
-
-; replace it with a "?"
- ld a, "?"
- ld [de], a
- jr .loop
-
-.done
-; next char
- inc de
-; reached end of nick without finding a terminator?
- dec b
- jr nz, .checkchar
-
-; change nick to "?@"
- pop de
- push de
- ld a, "?"
- ld [de], a
- inc de
- ld a, "@"
- ld [de], a
-.end
-; if the nick has any errors at this point it's out of our hands
- pop de
- pop bc
- ret
-
-.textcommands ; 66cf
-; table defining which characters are actually text commands
-; format:
- ; ≥ <
- db "<START>", $04 + 1
- db "<PLAY_G>", $18 + 1
- db $1d, "%" + 1
- db $35, "<GREEN>" + 1
- db "<ENEMY>", "<ENEMY>" + 1
- db $49, "<TM>" + 1
- db "<ROCKET>", "┘" + 1
- db -1 ; end
-
+INCLUDE "engine/check_nick_errors.asm"
INCLUDE "engine/math.asm"
-INCLUDE "items/item_attributes.asm"
+INCLUDE "data/items/item_attributes.asm"
INCLUDE "engine/npc_movement.asm"
INCLUDE "event/happiness_egg.asm"
INCLUDE "event/special.asm"
-Predef1: ; 747a
-; not used
- ret
-
SECTION "bank2", ROMX
@@ -256,26 +72,7 @@ INCLUDE "engine/color.asm"
SECTION "bank3", ROMX
-CheckTime:: ; c000
- ld a, [TimeOfDay]
- ld hl, TimeOfDayTable
- ld de, 2
- call IsInArray
- inc hl
- ld c, [hl]
- ret c
-
- xor a
- ld c, a
- ret
-
-TimeOfDayTable: ; c012
- db MORN_F, MORN
- db DAY_F, DAY
- db NITE_F, NITE
- db NITE_F, NITE
- db -1
-
+INCLUDE "engine/check_time.asm"
INCLUDE "engine/specials.asm"
INCLUDE "engine/printnum.asm"
INCLUDE "engine/health.asm"
@@ -285,101 +82,10 @@ INCLUDE "engine/player_step.asm"
INCLUDE "engine/anim_hp_bar.asm"
INCLUDE "engine/move_mon.asm"
INCLUDE "engine/billspctop.asm"
-
-GetBreedMon1LevelGrowth: ; e698
- ld hl, wBreedMon1Stats
- ld de, TempMon
- ld bc, BOXMON_STRUCT_LENGTH
- call CopyBytes
- callab CalcLevel
- ld a, [wBreedMon1Level]
- ld b, a
- ld a, d
- ld e, a
- sub b
- ld d, a
- ret
-
-GetBreedMon2LevelGrowth: ; e6b3
- ld hl, wBreedMon2Stats
- ld de, TempMon
- ld bc, BOXMON_STRUCT_LENGTH
- call CopyBytes
- callab CalcLevel
- ld a, [wBreedMon2Level]
- ld b, a
- ld a, d
- ld e, a
- sub b
- ld d, a
- ret
-
-BugContest_SetCaughtContestMon: ; e6ce
- ld a, [wContestMon]
- and a
- jr z, .firstcatch
- ld [wd265], a
- callba DisplayAlreadyCaughtText
- callba DisplayCaughtContestMonStats
- lb bc, 14, 7
- call PlaceYesNoBox
- ret c
-
-.firstcatch
- call .generatestats
- ld a, [TempEnemyMonSpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, .caughttext
- call PrintText
- ret
-
-.generatestats ; e6fd
- ld a, [TempEnemyMonSpecies]
- ld [CurSpecies], a
- ld [CurPartySpecies], a
- call GetBaseData
- xor a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, wContestMon
- call ByteFill
- xor a
- ld [MonType], a
- ld hl, wContestMon
- jp GeneratePartyMonStats
-
-.caughttext ; 0xe71d
- ; Caught @ !
- text_jump UnknownText_0x1c10c0
- db "@"
-
-INCLUDE "items/item_effects.asm"
-
-KnowsMove: ; f9ea
- ld a, MON_MOVES
- call GetPartyParamLocation
- ld a, [wPutativeTMHMMove]
- ld b, a
- ld c, NUM_MOVES
-.loop
- ld a, [hli]
- cp b
- jr z, .knows_move
- dec c
- jr nz, .loop
- and a
- ret
-
-.knows_move
- ld hl, .Text_knows
- call PrintText
- scf
- ret
-
-.Text_knows: ; 0xfa06
- ; knows @ .
- text_jump UnknownText_0x1c5ea8
- db "@"
+INCLUDE "engine/get_breedmon_growth.asm"
+INCLUDE "event/bug_contest/caught_mon.asm"
+INCLUDE "engine/item_effects.asm"
+INCLUDE "engine/knows_move.asm"
SECTION "bank4", ROMX
@@ -388,213 +94,22 @@ INCLUDE "engine/pack.asm"
INCLUDE "engine/time.asm"
INCLUDE "engine/tmhm.asm"
INCLUDE "engine/namingscreen.asm"
-
-Script_AbortBugContest: ; 0x122c1
- checkflag ENGINE_BUG_CONTEST_TIMER
- iffalse .finish
- setflag ENGINE_DAILY_BUG_CONTEST
- special ContestReturnMons
-.finish
- end
-
-INCLUDE "event/itemball.asm"
-INCLUDE "engine/healmachineanim.asm"
+INCLUDE "event/misc_scripts.asm"
+INCLUDE "event/heal_machine_anim.asm"
INCLUDE "event/whiteout.asm"
INCLUDE "event/forced_movement.asm"
INCLUDE "event/itemfinder.asm"
-INCLUDE "engine/startmenu.asm"
-INCLUDE "engine/selectmenu.asm"
+INCLUDE "engine/start_menu.asm"
+INCLUDE "engine/select_menu.asm"
INCLUDE "event/elevator.asm"
-
-Special_GiveParkBalls: ; 135db
- xor a
- ld [wContestMon], a
- ld a, 20
- ld [wParkBallsRemaining], a
- callba StartBugContestTimer
- ret
-
-BugCatchingContestBattleScript:: ; 0x135eb
- writecode VAR_BATTLETYPE, BATTLETYPE_CONTEST
- randomwildmon
- startbattle
- reloadmapafterbattle
- copybytetovar wParkBallsRemaining
- iffalse BugCatchingContestOutOfBallsScript
- end
-
-BugCatchingContestOverScript:: ; 0x135f8
- playsound SFX_ELEVATOR_END
- opentext
- writetext BugCatchingContestText_BeeepTimesUp
- waitbutton
- jump BugCatchingContestReturnToGateScript
-
-BugCatchingContestOutOfBallsScript: ; 0x13603
- playsound SFX_ELEVATOR_END
- opentext
- writetext BugCatchingContestText_ContestIsOver
- waitbutton
-
-BugCatchingContestReturnToGateScript: ; 0x1360b
- closetext
- jumpstd bugcontestresultswarp
-
-BugCatchingContestText_BeeepTimesUp: ; 0x1360f
- ; ANNOUNCER: BEEEP! Time's up!
- text_jump UnknownText_0x1bd2ca
- db "@"
-
-BugCatchingContestText_ContestIsOver: ; 0x13614
- ; ANNOUNCER: The Contest is over!
- text_jump UnknownText_0x1bd2e7
- db "@"
-
-RepelWoreOffScript:: ; 0x13619
- opentext
- writetext .text
- waitbutton
- closetext
- end
-
-.text ; 0x13620
- ; REPEL's effect wore off.
- text_jump UnknownText_0x1bd308
- db "@"
-
-HiddenItemScript:: ; 0x13625
- opentext
- copybytetovar EngineBuffer3
- itemtotext 0, 0
- writetext .found_text
- giveitem ITEM_FROM_MEM
- iffalse .bag_full
- callasm SetMemEvent
- specialsound
- itemnotify
- jump .finish
-
-.bag_full ; 0x1363e
- buttonsound
- writetext .no_room_text
- waitbutton
-
-.finish ; 13643
- closetext
- end
-
-.found_text ; 0x13645
- ; found @ !
- text_jump UnknownText_0x1bd321
- db "@"
-
-.no_room_text ; 0x1364a
- ; But has no space left…
- text_jump UnknownText_0x1bd331
- db "@"
-
-SetMemEvent: ; 1364f
- ld hl, EngineBuffer1
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ld b, SET_FLAG
- call EventFlagAction
- ret
-
-CheckFacingTileForStd:: ; 1365b
-; Checks to see if the tile you're facing has a std script associated with it. If so, executes the script and returns carry.
- ld a, c
- ld de, 3
- ld hl, TileCollisionStdScripts
- call IsInArray
- jr nc, .notintable
-
- ld a, jumpstd_command
- ld [wJumpStdScriptBuffer], a
- inc hl
- ld a, [hli]
- ld [wJumpStdScriptBuffer + 1], a
- ld a, [hli]
- ld [wJumpStdScriptBuffer + 2], a
- ld a, BANK(Script_JumpStdFromRAM)
- ld hl, Script_JumpStdFromRAM
- call CallScript
- scf
- ret
-
-.notintable
- xor a
- ret
-
-INCLUDE "data/collision_stdscripts.asm"
-
-Script_JumpStdFromRAM: ; 0x1369a
- jump wJumpStdScriptBuffer
-
-INCLUDE "event/bug_contest_judging.asm"
-
-ApplyPokerusTick: ; 13988
-; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured.
- ld hl, PartyMon1PokerusStatus ; PartyMon1 + MON_PKRS
- ld a, [PartyCount]
- and a
- ret z ; make sure it's not wasting time on an empty party
- ld c, a
-.loop
- ld a, [hl]
- and $f ; lower nybble is the number of days remaining
- jr z, .next ; if already 0, skip
- sub b ; subtract the number of days
- jr nc, .ok ; max(result, 0)
- xor a
-.ok
- ld d, a ; back up this value because we need to preserve the strain (upper nybble)
- ld a, [hl]
- and $f0
- add d
- ld [hl], a ; this prevents a cured pokemon from recontracting pokerus
-.next
- ld de, PARTYMON_STRUCT_LENGTH
- add hl, de
- dec c
- jr nz, .loop
- ret
-
-INCLUDE "event/bug_contest_2.asm"
-
-INCLUDE "unknown/013a47.asm"
-
-GetSquareRoot: ; 13b87
-; Return the square root of de in b.
-
-; Rather than calculating the result, we take the index of the
-; first value in a table of squares that isn't lower than de.
-
- ld hl, Squares
- ld b, 0
-.loop
-; Make sure we don't go past the end of the table.
- inc b
- ld a, b
- cp $ff
- ret z
-
-; Iterate over the table until b**2 >= de.
- ld a, [hli]
- sub e
- ld a, [hli]
- sbc d
-
- jr c, .loop
- ret
-
-Squares: ; 13b98
-root set 1
- rept $ff
- dw root*root
-root set root+1
- endr
+INCLUDE "event/bug_contest/contest.asm"
+INCLUDE "event/misc_scripts_2.asm"
+INCLUDE "event/std_collision.asm"
+INCLUDE "event/bug_contest/judging.asm"
+INCLUDE "engine/pokerus_tick.asm"
+INCLUDE "event/bug_contest/contest_2.asm"
+INCLUDE "engine/unused_correct_party.asm"
+INCLUDE "engine/square_root.asm"
SECTION "bank5", ROMX
@@ -608,13 +123,12 @@ INCLUDE "engine/map_setup.asm"
INCLUDE "engine/pokecenter_pc.asm"
INCLUDE "engine/mart.asm"
INCLUDE "engine/money.asm"
-INCLUDE "items/marts.asm"
+INCLUDE "data/items/marts.asm"
INCLUDE "event/mom.asm"
INCLUDE "event/daycare.asm"
-INCLUDE "event/photo.asm"
-INCLUDE "engine/breeding/egg.asm"
-
-
+INCLUDE "event/print_unown.asm"
+INCLUDE "event/print_photo.asm"
+INCLUDE "engine/breeding.asm"
INCLUDE "tilesets/data.asm"
@@ -625,15 +139,7 @@ INCLUDE "engine/clock_reset.asm"
SECTION "bank9", ROMX
-StringBufferPointers:: ; 24000
- dw StringBuffer3
- dw StringBuffer4
- dw StringBuffer5
- dw StringBuffer2
- dw StringBuffer1
- dw EnemyMonNick
- dw BattleMonNick
-
+INCLUDE "data/text_buffers.asm"
INCLUDE "engine/menu.asm"
UpdateItemDescription: ; 0x244c3
@@ -651,345 +157,10 @@ UpdateItemDescription: ; 0x244c3
ret
INCLUDE "engine/pokepic.asm"
-
-LoadObjectMasks: ; 2454f
- ld hl, wObjectMasks
- xor a
- ld bc, NUM_OBJECTS
- call ByteFill
- nop
- ld bc, MapObjects
- ld de, wObjectMasks
- xor a
-.loop
- push af
- push bc
- push de
- call GetObjectTimeMask
- jr c, .next
- call CheckObjectFlag
-.next
- pop de
- ld [de], a
- inc de
- pop bc
- ld hl, OBJECT_LENGTH
- add hl, bc
- ld b, h
- ld c, l
- pop af
- inc a
- cp NUM_OBJECTS
- jr nz, .loop
- ret
-
-CheckObjectFlag: ; 2457d (9:457d)
- ld hl, MAPOBJECT_SPRITE
- add hl, bc
- ld a, [hl]
- and a
- jr z, .masked
- ld hl, MAPOBJECT_EVENT_FLAG
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- cp -1
- jr nz, .check
- ld a, e
- cp -1
- jr z, .unmasked
- jr .masked
-.check
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- and a
- jr nz, .masked
-.unmasked
- xor a
- ret
-
-.masked
- ld a, -1
- scf
- ret
-
-GetObjectTimeMask: ; 245a7 (9:45a7)
- call CheckObjectTime
- ld a, -1
- ret c
- xor a
- ret
-
+INCLUDE "engine/map_objects_2.asm"
INCLUDE "engine/scrolling_menu.asm"
INCLUDE "engine/switch_items.asm"
-
-PlaceMenuItemName: ; 0x24ab4
- push de
- ld a, [MenuSelection]
- ld [wNamedObjectIndexBuffer], a
- call GetItemName
- pop hl
- call PlaceString
- ret
-
-PlaceMenuItemQuantity: ; 0x24ac3
- push de
- ld a, [MenuSelection]
- ld [CurItem], a
- callba _CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- pop hl
- and a
- jr nz, .done
- ld de, $15
- add hl, de
- ld [hl], "×"
- inc hl
- ld de, MenuSelectionQuantity
- lb bc, 1, 2
- call PrintNum
-
-.done
- ret
-
-PlaceMoneyTopRight: ; 24ae8
- ld hl, MenuDataHeader_0x24b15
- call CopyMenuDataHeader
- jr PlaceMoneyDataHeader
-
-PlaceMoneyBottomLeft: ; 24af0
- ld hl, MenuDataHeader_0x24b1d
- call CopyMenuDataHeader
- jr PlaceMoneyDataHeader
-
-PlaceMoneyAtTopLeftOfTextbox: ; 24af8
- ld hl, MenuDataHeader_0x24b15
- lb de, 0, 11
- call OffsetMenuDataHeader
-
-PlaceMoneyDataHeader: ; 24b01
- call MenuBox
- call MenuBoxCoord2Tile
- ld de, SCREEN_WIDTH + 1
- add hl, de
- ld de, Money
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- ret
-
-MenuDataHeader_0x24b15: ; 0x24b15
- db $40 ; flags
- db 00, 11 ; start coords
- db 02, 19 ; end coords
- dw NULL
- db 1 ; default option
-
-MenuDataHeader_0x24b1d: ; 0x24b1d
- db $40 ; flags
- db 11, 00 ; start coords
- db 13, 08 ; end coords
- dw NULL
- db 1 ; default option
-
-Special_DisplayCoinCaseBalance: ; 24b25
- ; Place a text box of size 1x7 at 11, 0.
- hlcoord 11, 0
- ld b, 1
- ld c, 7
- call TextBox
- hlcoord 12, 0
- ld de, CoinString
- call PlaceString
- hlcoord 17, 1
- ld de, ShowMoney_TerminatorString
- call PlaceString
- ld de, Coins
- lb bc, 2, 4
- hlcoord 13, 1
- call PrintNum
- ret
-
-Special_DisplayMoneyAndCoinBalance: ; 24b4e
- hlcoord 5, 0
- ld b, 3
- ld c, 13
- call TextBox
- hlcoord 6, 1
- ld de, MoneyString
- call PlaceString
- hlcoord 12, 1
- ld de, Money
- lb bc, PRINTNUM_MONEY | 3, 6
- call PrintNum
- hlcoord 6, 3
- ld de, CoinString
- call PlaceString
- hlcoord 15, 3
- ld de, Coins
- lb bc, 2, 4
- call PrintNum
- ret
-
-MoneyString: ; 24b83
- db "MONEY@"
-CoinString: ; 24b89
- db "COIN@"
-ShowMoney_TerminatorString: ; 24b8e
- db "@"
-
-Function24b8f: ; 24b8f
-; unreferenced, related to safari?
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- hlcoord 0, 0
- ld b, 3
- ld c, 7
- call TextBox
- hlcoord 1, 1
- ld de, wSafariTimeRemaining
- lb bc, 2, 3
- call PrintNum
- hlcoord 4, 1
- ld de, .slash_500
- call PlaceString
- hlcoord 1, 3
- ld de, .booru_ko
- call PlaceString
- hlcoord 5, 3
- ld de, wSafariBallsRemaining
- lb bc, 1, 2
- call PrintNum
- pop af
- ld [Options], a
- ret
-
-.slash_500 ; 24bcf
- db "/500@"
-.booru_ko ; 24bd4
- db "ボール こ@"
-
-StartMenu_DrawBugContestStatusBox: ; 24bdc
- hlcoord 0, 0
- ld b, 5
- ld c, 17
- call TextBox
- ret
-
-StartMenu_PrintBugContestStatus: ; 24be7
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call StartMenu_DrawBugContestStatusBox
- hlcoord 1, 5
- ld de, .Balls_EN
- call PlaceString
- hlcoord 8, 5
- ld de, wParkBallsRemaining
- lb bc, PRINTNUM_RIGHTALIGN | 1, 2
- call PrintNum
- hlcoord 1, 1
- ld de, .CAUGHT
- call PlaceString
- ld a, [wContestMon]
- and a
- ld de, .None
- jr z, .no_contest_mon
- ld [wd265], a
- call GetPokemonName
-
-.no_contest_mon
- hlcoord 8, 1
- call PlaceString
- ld a, [wContestMon]
- and a
- jr z, .skip_level
- hlcoord 1, 3
- ld de, .LEVEL
- call PlaceString
- ld a, [wContestMonLevel]
- ld h, b
- ld l, c
- inc hl
- ld c, 3
- call Print8BitNumRightAlign
-
-.skip_level
- pop af
- ld [Options], a
- ret
-
-.Balls_JP: ; 24c43
- db "ボール こ@"
-.CAUGHT: ; 24c4b
- db "CAUGHT@"
-.Balls_EN: ; 24c52
- db "BALLS:@"
-.None: ; 24c59
- db "None@"
-.LEVEL: ; 24c5e
- db "LEVEL@"
-
-FindApricornsInBag: ; 24c64
-; Checks the bag for Apricorns.
- ld hl, Buffer1
- xor a
- ld [hli], a
- dec a
- ld bc, 10
- call ByteFill
-
- ld hl, .ApricornBalls
-.loop
- ld a, [hl]
- cp -1
- jr z, .done
- push hl
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- pop hl
- jr nc, .nope
- ld a, [hl]
- call .addtobuffer
-.nope
- inc hl
- inc hl
- jr .loop
-
-.done
- ld a, [Buffer1]
- and a
- ret nz
- scf
- ret
-
-.addtobuffer ; 24c94
- push hl
- ld hl, Buffer1
- inc [hl]
- ld e, [hl]
- ld d, 0
- add hl, de
- ld [hl], a
- pop hl
- ret
-
-.ApricornBalls: ; 24ca0
- db RED_APRICORN, LEVEL_BALL
- db BLU_APRICORN, LURE_BALL
- db YLW_APRICORN, MOON_BALL
- db GRN_APRICORN, FRIEND_BALL
- db WHT_APRICORN, FAST_BALL
- db BLK_APRICORN, HEAVY_BALL
- db PNK_APRICORN, LOVE_BALL
- db -1
-
+INCLUDE "engine/menu_2.asm"
INCLUDE "engine/mon_menu.asm"
INCLUDE "battle/menu.asm"
INCLUDE "engine/buy_sell_toss.asm"
@@ -997,16 +168,6 @@ INCLUDE "engine/trainer_card.asm"
INCLUDE "engine/prof_oaks_pc.asm"
INCLUDE "engine/decorations.asm"
-PadCoords_de: ; 27092
- ld a, d
- add 4
- ld d, a
- ld a, e
- add 4
- ld e, a
- call GetBlockLocation
- ret
-
LevelUpHappinessMod: ; 2709e
ld a, [CurPartyMon]
ld hl, PartyMon1CaughtLocation
@@ -1028,7 +189,7 @@ LevelUpHappinessMod: ; 2709e
callab ChangeHappiness
ret
-INCLUDE "trainers/dvs.asm"
+INCLUDE "data/trainers/trainer_dvs.asm"
_ReturnToBattle_UseBall: ; 2715c
call ClearBGPalettes
@@ -1050,91 +211,8 @@ _ReturnToBattle_UseBall: ; 2715c
call WaitBGMap
jp SetPalettes
-ConsumeHeldItem: ; 27192
- push hl
- push de
- push bc
- ld a, [hBattleTurn]
- and a
- ld hl, OTPartyMon1Item
- ld de, EnemyMonItem
- ld a, [CurOTMon]
- jr z, .theirturn
- ld hl, PartyMon1Item
- ld de, BattleMonItem
- ld a, [CurBattleMon]
-
-.theirturn
- push hl
- push af
- ld a, [de]
- ld b, a
- callba GetItemHeldEffect
- ld hl, .ConsumableEffects
-.loop
- ld a, [hli]
- cp b
- jr z, .ok
- inc a
- jr nz, .loop
- pop af
- pop hl
- pop bc
- pop de
- pop hl
- ret
-
-.ok
- xor a
- ld [de], a
- pop af
- pop hl
- call GetPartyLocation
- ld a, [hBattleTurn]
- and a
- jr nz, .ourturn
- ld a, [wBattleMode]
- dec a
- jr z, .done
-
-.ourturn
- ld [hl], $0
-
-.done
- pop bc
- pop de
- pop hl
- ret
-
-.ConsumableEffects: ; 271de
-; Consumable items?
- db HELD_BERRY
- db HELD_2
- db HELD_5
- db HELD_HEAL_POISON
- db HELD_HEAL_FREEZE
- db HELD_HEAL_BURN
- db HELD_HEAL_SLEEP
- db HELD_HEAL_PARALYZE
- db HELD_HEAL_STATUS
- db HELD_30
- db HELD_ATTACK_UP
- db HELD_DEFENSE_UP
- db HELD_SPEED_UP
- db HELD_SP_ATTACK_UP
- db HELD_SP_DEFENSE_UP
- db HELD_ACCURACY_UP
- db HELD_EVASION_UP
- db HELD_38
- db HELD_71
- db HELD_ESCAPE
- db HELD_CRITICAL_UP
- db -1
-
-MoveEffectsPointers: ; 271f4
+INCLUDE "engine/consume_held_item.asm"
INCLUDE "battle/moves/move_effects_pointers.asm"
-
-MoveEffects: ; 2732e
INCLUDE "battle/moves/move_effects.asm"
Kurt_SelectQuantity_InterpretJoypad: ; 27a28
@@ -1146,462 +224,23 @@ Kurt_SelectQuantity_InterpretJoypad: ; 27a28
SECTION "bankA", ROMX
INCLUDE "engine/link.asm"
-
-Function29fe4: ; unreferenced
- ld a, $0
- call GetSRAMBank
- ld d, $0
- ld b, CHECK_FLAG
- predef FlagPredef
- call CloseSRAM
- ld a, c
- and a
- ret
-
INCLUDE "engine/wildmons.asm"
INCLUDE "battle/link_result.asm"
-
-ChrisBackpic: ; 2ba1a
-INCBIN "gfx/player/chris_back.2bpp.lz"
-
-DudeBackpic: ; 2bbaa
-INCBIN "gfx/battle/dude.2bpp.lz"
+INCLUDE "engine/player_gfx_2.asm"
SECTION "bankB", ROMX
INCLUDE "battle/trainer_huds.asm"
-
-TrainerClassNames:: ; 2c1ef
-INCLUDE "text/trainer_class_names.asm"
-
+INCLUDE "data/trainers/trainer_class_names.asm"
INCLUDE "battle/ai/redundant.asm"
-
INCLUDE "event/move_deleter.asm"
-
-INCLUDE "engine/mysterygift2.asm"
-
+INCLUDE "engine/mystery_gift_2.asm"
INCLUDE "engine/tmhm2.asm"
-
-MoveDescriptions:: ; 2cb52
INCLUDE "battle/moves/move_descriptions.asm"
-
-GivePokerusAndConvertBerries: ; 2ed44
- call ConvertBerriesToBerryJuice
- ld hl, PartyMon1PokerusStatus
- ld a, [PartyCount]
- ld b, a
- ld de, PARTYMON_STRUCT_LENGTH
-; Check to see if any of your Pokemon already has Pokerus.
-; If so, sample its spread through your party.
-; This means that you cannot get Pokerus de novo while
-; a party member has an active infection.
-.loopMons
- ld a, [hl]
- and $f
- jr nz, .TrySpreadPokerus
- add hl, de
- dec b
- jr nz, .loopMons
-
-; If we haven't been to Goldenrod City at least once,
-; prevent the contraction of Pokerus.
- ld hl, StatusFlags2
- bit 6, [hl]
- ret z
- call Random
- ld a, [hRandomAdd]
- and a
- ret nz
- ld a, [hRandomSub]
- cp $3
- ret nc ; 3/65536 chance (00 00, 00 01 or 00 02)
- ld a, [PartyCount]
- ld b, a
-.randomMonSelectLoop
- call Random
- and $7
- cp b
- jr nc, .randomMonSelectLoop
- ld hl, PartyMon1PokerusStatus
- call GetPartyLocation ; get pokerus byte of random mon
- ld a, [hl]
- and $f0
- ret nz ; if it already has pokerus, do nothing
-.randomPokerusLoop ; Simultaneously sample the strain and duration
- call Random
- and a
- jr z, .randomPokerusLoop
- ld b, a
- and $f0
- jr z, .load_pkrs
- ld a, b
- and $7
- inc a
-.load_pkrs
- ld b, a ; this should come before the label
- swap b
- and $3
- inc a
- add b
- ld [hl], a
- ret
-
-.TrySpreadPokerus:
- call Random
- cp 1 + 33 percent
- ret nc ; 1/3 chance
-
- ld a, [PartyCount]
- cp 1
- ret z ; only one mon, nothing to do
-
- ld c, [hl]
- ld a, b
- cp 2
- jr c, .checkPreviousMonsLoop ; no more mons after this one, go backwards
-
- call Random
- cp 1 + 50 percent
- jr c, .checkPreviousMonsLoop ; 1/2 chance, go backwards
-.checkFollowingMonsLoop
- add hl, de
- ld a, [hl]
- and a
- jr z, .infectMon
- ld c, a
- and $3
- ret z ; if mon has cured pokerus, stop searching
- dec b ; go on to next mon
- ld a, b
- cp 1
- jr nz, .checkFollowingMonsLoop ; no more mons left
- ret
-
-.checkPreviousMonsLoop
- ld a, [PartyCount]
- cp b
- ret z ; no more mons
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- ld a, [hl]
- and a
- jr z, .infectMon
- ld c, a
- and $3
- ret z ; if mon has cured pokerus, stop searching
- inc b ; go on to next mon
- jr .checkPreviousMonsLoop
-
-.infectMon
- ld a, c
- and $f0
- ld b, a
- ld a, c
- swap a
- and $3
- inc a
- add b
- ld [hl], a
- ret
-
-; any berry held by a Shuckle may be converted to berry juice
-ConvertBerriesToBerryJuice: ; 2ede6
- ld hl, StatusFlags2
- bit 6, [hl]
- ret z
- call Random
- cp $10
- ret nc ; 1/16 chance
- ld hl, PartyMons
- ld a, [PartyCount]
-.partyMonLoop
- push af
- push hl
- ld a, [hl]
- cp SHUCKLE
- jr nz, .loopMon
- ld bc, MON_ITEM
- add hl, bc
- ld a, [hl]
- cp BERRY
- jr z, .convertToJuice
-
-.loopMon
- pop hl
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop af
- dec a
- jr nz, .partyMonLoop
- ret
-
-.convertToJuice
- ld a, BERRY_JUICE
- ld [hl], a
- pop hl
- pop af
- ret
-
-ShowLinkBattleParticipants: ; 2ee18
-; If we're not in a communications room,
-; we don't need to be here.
- ld a, [wLinkMode]
- and a
- ret z
-
- callba _ShowLinkBattleParticipants
- ld c, 150
- call DelayFrames
- call ClearTileMap
- call ClearSprites
- ret
-
-FindFirstAliveMonAndStartBattle: ; 2ee2f
- xor a
- ld [hMapAnims], a
- call DelayFrame
- ld b, 6
- ld hl, PartyMon1HP
- ld de, PARTYMON_STRUCT_LENGTH - 1
-
-.loop
- ld a, [hli]
- or [hl]
- jr nz, .okay
- add hl, de
- dec b
- jr nz, .loop
-
-.okay
- ld de, MON_LEVEL - MON_HP
- add hl, de
- ld a, [hl]
- ld [BattleMonLevel], a
- predef Predef_StartBattle
- callba _LoadBattleFontsHPBar
- ld a, 1
- ld [hBGMapMode], a
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- ld [hWY], a
- ld [rWY], a
- ld [hMapAnims], a
- ret
-
-PlayBattleMusic: ; 2ee6c
-
- push hl
- push de
- push bc
-
- xor a
- ld [MusicFade], a
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- call MaxVolume
-
- ld a, [BattleType]
- cp BATTLETYPE_SUICUNE
- ld de, MUSIC_SUICUNE_BATTLE
- jp z, .done
- cp BATTLETYPE_ROAMING
- jp z, .done
-
- ; Are we fighting a trainer?
- ld a, [OtherTrainerClass]
- and a
- jr nz, .trainermusic
-
- callba RegionCheck
- ld a, e
- and a
- jr nz, .kantowild
-
- ld de, MUSIC_JOHTO_WILD_BATTLE
- ld a, [TimeOfDay]
- cp NITE_F
- jr nz, .done
- ld de, MUSIC_JOHTO_WILD_BATTLE_NIGHT
- jr .done
-
-.kantowild
- ld de, MUSIC_KANTO_WILD_BATTLE
- jr .done
-
-.trainermusic
- ld de, MUSIC_CHAMPION_BATTLE
- cp CHAMPION
- jr z, .done
- cp RED
- jr z, .done
-
- ; really, they should have included admins and scientists here too...
- ld de, MUSIC_ROCKET_BATTLE
- cp GRUNTM
- jr z, .done
- cp GRUNTF
- jr z, .done
-
- ld de, MUSIC_KANTO_GYM_LEADER_BATTLE
- callba IsKantoGymLeader
- jr c, .done
-
- ld de, MUSIC_JOHTO_GYM_LEADER_BATTLE
- callba IsJohtoGymLeader
- jr c, .done
-
- ld de, MUSIC_RIVAL_BATTLE
- ld a, [OtherTrainerClass]
- cp RIVAL1
- jr z, .done
- cp RIVAL2
- jr nz, .othertrainer
-
- ld a, [OtherTrainerID]
- cp RIVAL2_2_CHIKORITA ; Rival in Indigo Plateau
- jr c, .done
- ld de, MUSIC_CHAMPION_BATTLE
- jr .done
-
-.othertrainer
- ld a, [wLinkMode]
- and a
- jr nz, .johtotrainer
-
- callba RegionCheck
- ld a, e
- and a
- jr nz, .kantotrainer
-
-.johtotrainer
- ld de, MUSIC_JOHTO_TRAINER_BATTLE
- jr .done
-
-.kantotrainer
- ld de, MUSIC_KANTO_TRAINER_BATTLE
-
-.done
- call PlayMusic
-
- pop bc
- pop de
- pop hl
- ret
-
-ClearBattleRAM: ; 2ef18
- xor a
- ld [wPlayerAction], a
- ld [wBattleResult], a
-
- ld hl, wPartyMenuCursor
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
- ld [wMenuScrollPosition], a
- ld [CriticalHit], a
- ld [BattleMonSpecies], a
- ld [wBattleParticipantsNotFainted], a
- ld [CurBattleMon], a
- ld [wForcedSwitch], a
- ld [TimeOfDayPal], a
- ld [PlayerTurnsTaken], a
- ld [EnemyTurnsTaken], a
- ld [EvolvableFlags], a
-
- ld hl, PlayerHPPal
- ld [hli], a
- ld [hl], a
-
- ld hl, BattleMonDVs
- ld [hli], a
- ld [hl], a
-
- ld hl, EnemyMonDVs
- ld [hli], a
- ld [hl], a
-
-; Clear the entire BattleMons area
- ld hl, wBattle
- ld bc, wBattleEnd - wBattle
- xor a
- call ByteFill
-
- callab ResetEnemyStatLevels
-
- call ClearWindowData
-
- ld hl, hBGMapAddress
- xor a
- ld [hli], a
- ld [hl], VBGMap0 / $100
- ret
-
-PlaceGraphic: ; 2ef6e
-; Fill wBoxAlignment-aligned box width b height c
-; with iterating tile starting from hGraphicStartTile at hl.
-; Predef $13
-
- ld de, SCREEN_WIDTH
-
- ld a, [wBoxAlignment]
- and a
- jr nz, .right
-
- ld a, [hGraphicStartTile]
-.x1
- push bc
- push hl
-
-.y1
- ld [hl], a
- add hl, de
- inc a
- dec c
- jr nz, .y1
-
- pop hl
- inc hl
- pop bc
- dec b
- jr nz, .x1
- ret
-
-.right
-; Right-aligned.
- push bc
- ld b, 0
- dec c
- add hl, bc
- pop bc
-
- ld a, [hGraphicStartTile]
-.x2
- push bc
- push hl
-
-.y2
- ld [hl], a
- add hl, de
- inc a
- dec c
- jr nz, .y2
-
- pop hl
- dec hl
- pop bc
- dec b
- jr nz, .x2
- ret
+INCLUDE "engine/pokerus.asm"
+INCLUDE "engine/start_battle.asm"
+INCLUDE "engine/place_graphics.asm"
SECTION "Effect Commands", ROMX
@@ -1613,11 +252,11 @@ SECTION "Enemy Trainers", ROMX
INCLUDE "battle/ai/items.asm"
INCLUDE "battle/ai/scoring.asm"
-INCLUDE "trainers/read_attributes.asm"
-INCLUDE "trainers/attributes.asm"
-INCLUDE "trainers/read_party.asm"
-INCLUDE "trainers/trainer_pointers.asm"
-INCLUDE "trainers/trainers.asm"
+INCLUDE "engine/read_trainer_attributes.asm"
+INCLUDE "data/trainers/trainer_attributes.asm"
+INCLUDE "engine/read_trainer_party.asm"
+INCLUDE "data/trainers/party_pointers.asm"
+INCLUDE "data/trainers/parties.asm"
SECTION "Battle Core", ROMX
@@ -1638,330 +277,37 @@ SECTION "bank11", ROMX
INCLUDE "engine/fruit_trees.asm"
INCLUDE "battle/ai/move.asm"
INCLUDE "engine/pokedex_2.asm"
-INCLUDE "data/pokedex/entry_pointers.asm"
+INCLUDE "data/pokemon/dex_entry_pointers.asm"
INCLUDE "engine/mail.asm"
SECTION "Crystal Unique", ROMX
INCLUDE "engine/init_gender.asm"
-
-DrawKrisPackGFX: ; 48e81
- ld hl, PackFGFXPointers
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld hl, VTiles2 tile $50
- lb bc, BANK(PackFGFX), 15
- call Request2bpp
- ret
-
-PackFGFXPointers: ; 48e93
- dw PackFGFX + (15 tiles) * 1
- dw PackFGFX + (15 tiles) * 3
- dw PackFGFX + (15 tiles) * 0
- dw PackFGFX + (15 tiles) * 2
-
-PackFGFX: ; 48e9b
-INCBIN "gfx/pack/pack_f.2bpp"
-
-Special_MoveTutor: ; 4925b
- call FadeToMenu
- call ClearBGPalettes
- call ClearScreen
- call DelayFrame
- ld b, SCGB_PACKPALS
- call GetSGBLayout
- xor a
- ld [wItemAttributeParamBuffer], a
- call .GetMoveTutorMove
- ld [wd265], a
- ld [wPutativeTMHMMove], a
- call GetMoveName
- call CopyName1
- callba ChooseMonToLearnTMHM
- jr c, .cancel
- jr .enter_loop
-
-.loop
- callba ChooseMonToLearnTMHM_NoRefresh
- jr c, .cancel
-.enter_loop
- call CheckCanLearnMoveTutorMove
- jr nc, .loop
- xor a
- ld [ScriptVar], a
- jr .quit
-
-.cancel
- ld a, -1
- ld [ScriptVar], a
-.quit
- call CloseSubmenu
- ret
-
-.GetMoveTutorMove: ; 492a5
- ld a, [ScriptVar]
- cp 1
- jr z, .flamethrower
- cp 2
- jr z, .thunderbolt
- ld a, ICE_BEAM
- ret
-
-.flamethrower
- ld a, FLAMETHROWER
- ret
-
-.thunderbolt
- ld a, THUNDERBOLT
- ret
-
-CheckCanLearnMoveTutorMove: ; 492b9
- ld hl, .MenuDataHeader
- call LoadMenuDataHeader
-
- predef CanLearnTMHMMove
-
- push bc
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- pop bc
-
- ld a, c
- and a
- jr nz, .can_learn
- push de
- ld de, SFX_WRONG
- call PlaySFX
- pop de
- ld a, BANK(Text_TMHMNotCompatible)
- ld hl, Text_TMHMNotCompatible
- call FarPrintText
- jr .didnt_learn
-
-.can_learn
- callab KnowsMove
- jr c, .didnt_learn
-
- predef LearnMove
- ld a, b
- and a
- jr z, .didnt_learn
-
- ld c, HAPPINESS_LEARNMOVE
- callab ChangeHappiness
- jr .learned
-
-.didnt_learn
- call ExitMenu
- and a
- ret
-
-.learned
- call ExitMenu
- scf
- ret
-
-.MenuDataHeader: ; 0x4930a
- db $40 ; flags
- db 12, 00 ; start coords
- db 17, 19 ; end coords
-
-INCLUDE "predef/crystal.asm"
-
-Unknown_4985a: ; unreferenced
- db $ab, $03, $57, $24, $ac, $0e, $13, $32
- db $be, $30, $5b, $4c, $47, $60, $ed, $f2
- db $ab, $03, $55, $26, $aa, $0a, $13, $3a
- db $be, $28, $33, $24, $6e, $71, $df, $b0
- db $a8, $00, $e5, $e0, $9a, $fc, $f4, $2c
- db $fe, $4c, $a3, $5e, $c6, $3a, $ab, $4d
- db $a8, $00, $b5, $b0, $de, $e8, $fc, $1c
- db $ba, $66, $f7, $0e, $ba, $5e, $43, $bd
-
+INCLUDE "engine/pack_f.asm"
+INCLUDE "event/move_tutor.asm"
+INCLUDE "engine/crystal_colors.asm"
INCLUDE "event/celebi.asm"
INCLUDE "engine/main_menu.asm"
-INCLUDE "misc/mobile_menu.asm"
+INCLUDE "mobile/mobile_menu.asm"
INCLUDE "engine/search.asm"
-INCLUDE "misc/mobile_12_2.asm"
-; mobile battle selection
-
-AskRememberPassword: ; 4ae12
- call .DoMenu
- ld a, $0
- jr c, .okay
- ld a, $1
-
-.okay
- ld [ScriptVar], a
- ret
-
-.DoMenu: ; 4ae1f
- lb bc, 14, 7
- push bc
- ld hl, YesNoMenuDataHeader
- call CopyMenuDataHeader
- pop bc
- ld a, b
- ld [wMenuBorderLeftCoord], a
- add $5
- ld [wMenuBorderRightCoord], a
- ld a, c
- ld [wMenuBorderTopCoord], a
- add $4
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- call VerticalMenu
- push af
- ld c, 15
- call DelayFrames
- call Buena_ExitMenu
- pop af
- jr c, .refused
- ld a, [wMenuCursorY]
- cp $2
- jr z, .refused
- and a
- ret
-
-.refused
- ld a, $2
- ld [wMenuCursorY], a
- scf
- ret
-
-Buena_ExitMenu: ; 4ae5e
- ld a, [hOAMUpdate]
- push af
- call ExitMenu
- call UpdateSprites
- xor a
- ld [hOAMUpdate], a
- call DelayFrame
- ld a, $1
- ld [hOAMUpdate], a
- call ApplyTilemap
- pop af
- ld [hOAMUpdate], a
- ret
+INCLUDE "mobile/mobile_12_2.asm"
+INCLUDE "event/buena_menu.asm"
SECTION "bank13", ROMX
-SwapTextboxPalettes:: ; 4c000
- hlcoord 0, 0
- decoord 0, 0, AttrMap
- ld b, SCREEN_HEIGHT
-.loop
- push bc
- ld c, SCREEN_WIDTH
-.innerloop
- ld a, [hl]
- push hl
- srl a
- jr c, .UpperNybble
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- and $f
- jr .next
-
-.UpperNybble:
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- swap a
- and $f
-
-.next
- pop hl
- ld [de], a
- res 7, [hl]
- inc hl
- inc de
- dec c
- jr nz, .innerloop
- pop bc
- dec b
- jr nz, .loop
- ret
-
-ScrollBGMapPalettes:: ; 4c03f
- ld hl, BGMapBuffer
- ld de, BGMapPalBuffer
-.loop
- ld a, [hl]
- push hl
- srl a
- jr c, .UpperNybble
-
-; .LowerNybble
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- and $f
- jr .next
-
-.UpperNybble:
- ld hl, TilesetPalettes
- add [hl]
- ld l, a
- ld a, [TilesetPalettes + 1]
- adc $0
- ld h, a
- ld a, [hl]
- swap a
- and $f
-
-.next
- pop hl
- ld [de], a
- res 7, [hl]
- inc hl
- inc de
- dec c
- jr nz, .loop
- ret
-
+INCLUDE "engine/map_palettes.asm"
INCLUDE "tilesets/palette_maps.asm"
-INCLUDE "data/collision_permissions.asm"
-
-EmptyAllSRAMBanks: ; 4cf1f
- ld a, $0
- call .EmptyBank
- ld a, $1
- call .EmptyBank
- ld a, $2
- call .EmptyBank
- ld a, $3
- call .EmptyBank
- ret
+Unknown_4ce05: ; unreferenced
+rept 26
+ db $06
+endr
+; 0x4ce1f
-.EmptyBank: ; 4cf34
- call GetSRAMBank
- ld hl, SRAM_Begin
- ld bc, SRAM_End - SRAM_Begin
- xor a
- call ByteFill
- call CloseSRAM
- ret
+INCLUDE "data/collision_permissions.asm"
+INCLUDE "engine/empty_sram.asm"
SaveMenu_LoadEDTile: ; 4cf45 (13:4f45)
ld a, [hCGB]
@@ -2042,18 +388,18 @@ endr
ret
CheckSave:: ; 4cffe
- ld a, BANK(s1_a008)
+ ld a, BANK(sCheckValue1) ; BANK(sCheckValue2)
call GetSRAMBank
- ld a, [s1_a008]
+ ld a, [sCheckValue1]
ld b, a
- ld a, [s1_ad0f]
+ ld a, [sCheckValue2]
ld c, a
call CloseSRAM
ld a, b
- cp 99
+ cp SAVE_CHECK_VALUE_1
jr nz, .ok
ld a, c
- cp " "
+ cp SAVE_CHECK_VALUE_2
jr nz, .ok
ld c, $1
ret
@@ -2062,7 +408,7 @@ CheckSave:: ; 4cffe
ld c, $0
ret
-INCLUDE "data/map_triggers.asm"
+INCLUDE "data/maps/map_triggers.asm"
_LoadMapPart:: ; 4d15b
ld hl, wMisc
@@ -2281,118 +627,9 @@ LinkTextbox2: ; 4d35b
ret
INCLUDE "engine/delete_save_change_clock.asm"
-
INCLUDE "tilesets/tileset_headers.asm"
-
-FlagPredef: ; 4d7c1
-; Perform action b on flag c in flag array hl.
-; If checking a flag, check flag array d:hl unless d is 0.
-
-; For longer flag arrays, see FlagAction.
-
- push hl
- push bc
-
-; Divide by 8 to get the byte we want.
- push bc
- srl c
- srl c
- srl c
- ld b, 0
- add hl, bc
- pop bc
-
-; Which bit we want from the byte
- ld a, c
- and 7
- ld c, a
-
-; Shift left until we can mask the bit
- ld a, 1
- jr z, .shifted
-.shift
- add a
- dec c
- jr nz, .shift
-.shifted
- ld c, a
-
-; What are we doing to this flag?
- dec b
- jr z, .set ; 1
- dec b
- jr z, .check ; 2
-
-.reset
- ld a, c
- cpl
- and [hl]
- ld [hl], a
- jr .done
-
-.set
- ld a, [hl]
- or c
- ld [hl], a
- jr .done
-
-.check
- ld a, d
- cp 0
- jr nz, .farcheck
-
- ld a, [hl]
- and c
- jr .done
-
-.farcheck
- call GetFarByte
- and c
-
-.done
- pop bc
- pop hl
- ld c, a
- ret
-
-GetTrademonFrontpic: ; 4d7fd
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef FrontpicPredef
- ret
-
-AnimateTrademonFrontpic: ; 4d81e
- ld a, [wOTTrademonSpecies]
- call IsAPokemon
- ret c
- callba ShowOTTrademonStats
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- callba TradeAnim_ShowGetmonFrontpic
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- hlcoord 7, 2
- ld d, $0
- ld e, ANIM_MON_TRADE
- predef AnimateFrontpic
- ret
+INCLUDE "engine/flag_predef.asm"
+INCLUDE "engine/trademon_frontpic.asm"
CheckPokerus: ; 4d860
; Return carry if a monster in your party has Pokerus
@@ -2420,779 +657,18 @@ CheckPokerus: ; 4d860
scf
ret
-Special_CheckForLuckyNumberWinners: ; 4d87a
- xor a
- ld [ScriptVar], a
- ld [wFoundMatchingIDInParty], a
- ld a, [PartyCount]
- and a
- ret z
- ld d, a
- ld hl, PartyMon1ID
- ld bc, PartySpecies
-.PartyLoop:
- ld a, [bc]
- inc bc
- cp EGG
- call nz, .CompareLuckyNumberToMonID
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .PartyLoop
- ld a, BANK(sBox)
- call GetSRAMBank
- ld a, [sBoxCount]
- and a
- jr z, .SkipOpenBox
- ld d, a
- ld hl, sBoxMon1ID
- ld bc, sBoxSpecies
-.OpenBoxLoop:
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .SkipOpenBoxMon
- call .CompareLuckyNumberToMonID
- jr nc, .SkipOpenBoxMon
- ld a, 1
- ld [wFoundMatchingIDInParty], a
-
-.SkipOpenBoxMon:
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .OpenBoxLoop
-
-.SkipOpenBox:
- call CloseSRAM
- ld c, $0
-.BoxesLoop:
- ld a, [wCurBox]
- and $f
- cp c
- jr z, .SkipBox
- ld hl, .BoxBankAddresses
- ld b, 0
- add hl, bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- call GetSRAMBank
- ld a, [hli]
- ld h, [hl]
- ld l, a ; hl now contains the address of the loaded box in SRAM
- ld a, [hl]
- and a
- jr z, .SkipBox ; no mons in this box
- push bc
- ld b, h
- ld c, l
- inc bc
- ld de, sBoxMon1ID - sBox
- add hl, de
- ld d, a
-.BoxNLoop:
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .SkipBoxMon
-
- call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately
- jr nc, .SkipBoxMon
- ld a, 1
- ld [wFoundMatchingIDInParty], a
-
-.SkipBoxMon:
- push bc
- ld bc, BOXMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec d
- jr nz, .BoxNLoop
- pop bc
-
-.SkipBox:
- inc c
- ld a, c
- cp NUM_BOXES
- jr c, .BoxesLoop
-
- call CloseSRAM
- ld a, [ScriptVar]
- and a
- ret z ; found nothing
- callba TrainerRankings_LuckyNumberShow
- ld a, [wFoundMatchingIDInParty]
- and a
- push af
- ld a, [CurPartySpecies]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld hl, .FoundPartymonText
- pop af
- jr z, .print
- ld hl, .FoundBoxmonText
-
-.print
- jp PrintText
-
-.CompareLuckyNumberToMonID: ; 4d939
- push bc
- push de
- push hl
- ld d, h
- ld e, l
- ld hl, Buffer1
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld hl, LuckyNumberDigit1Buffer
- ld de, wLuckyIDNumber
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld b, 5
- ld c, 0
- ld hl, LuckyNumberDigit5Buffer
- ld de, Buffer5
-.loop
- ld a, [de]
- cp [hl]
- jr nz, .done
- dec de
- dec hl
- inc c
- dec b
- jr nz, .loop
-
-.done
- pop hl
- push hl
- ld de, -6
- add hl, de
- ld a, [hl]
- pop hl
- pop de
- push af
- ld a, c
- ld b, 1
- cp 5
- jr z, .okay
- ld b, 2
- cp 3
- jr nc, .okay
- ld b, 3
- cp 2
- jr nz, .nomatch
-
-.okay
- inc b
- ld a, [ScriptVar]
- and a
- jr z, .bettermatch
- cp b
- jr c, .nomatch
-
-.bettermatch
- dec b
- ld a, b
- ld [ScriptVar], a
- pop bc
- ld a, b
- ld [CurPartySpecies], a
- pop bc
- scf
- ret
-
-.nomatch
- pop bc
- pop bc
- and a
- ret
-
-.BoxBankAddresses: ; 4d99f
- dba sBox1
- dba sBox2
- dba sBox3
- dba sBox4
- dba sBox5
- dba sBox6
- dba sBox7
- dba sBox8
- dba sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-
-.FoundPartymonText: ; 0x4d9c9
- ; Congratulations! We have a match with the ID number of @ in your party.
- text_jump UnknownText_0x1c1261
- db "@"
-
-.FoundBoxmonText: ; 0x4d9ce
- ; Congratulations! We have a match with the ID number of @ in your PC BOX.
- text_jump UnknownText_0x1c12ae
- db "@"
-
-Special_PrintTodaysLuckyNumber: ; 4d9d3
- ld hl, StringBuffer3
- ld de, wLuckyIDNumber
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ld a, "@"
- ld [StringBuffer3 + 5], a
- ret
-
-CheckPartyFullAfterContest: ; 4d9e5
- ld a, [wContestMon]
- and a
- jp z, .DidntCatchAnything
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld hl, PartyCount
- ld a, [hl]
- cp 6
- jp nc, .TryAddToBox
- inc a
- ld [hl], a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [wContestMon]
- ld [hli], a
- ld [CurSpecies], a
- ld a, $ff
- ld [hl], a
- ld hl, PartyMon1Species
- ld a, [PartyCount]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, wContestMon
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonOT
- call SkipNames
- ld d, h
- ld e, l
- ld hl, PlayerName
- call CopyBytes
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, wMonOrItemNameBuffer
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- call GiveANickname_YesNo
- jr c, .Party_SkipNickname
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- xor a
- ld [MonType], a
- ld de, wMonOrItemNameBuffer
- callab InitNickname
-
-.Party_SkipNickname:
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonNicknames
- call SkipNames
- ld d, h
- ld e, l
- ld hl, wMonOrItemNameBuffer
- call CopyBytes
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Level
- call GetPartyLocation
- ld a, [hl]
- ld [CurPartyLevel], a
- call SetCaughtData
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1CaughtLocation
- call GetPartyLocation
- ld a, [hl]
- and $80
- ld b, $13
- or b
- ld [hl], a
- xor a
- ld [wContestMon], a
- and a
- ld [ScriptVar], a
- ret
-
-.TryAddToBox: ; 4daa3
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld hl, sBoxCount
- ld a, [hl]
- cp MONS_PER_BOX
- call CloseSRAM
- jr nc, .BoxFull
- xor a
- ld [CurPartyMon], a
- ld hl, wContestMon
- ld de, wBufferMon
- ld bc, BOXMON_STRUCT_LENGTH
- call CopyBytes
- ld hl, PlayerName
- ld de, wBufferMonOT
- ld bc, NAME_LENGTH
- call CopyBytes
- callab InsertPokemonIntoBox
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- call GiveANickname_YesNo
- ld hl, StringBuffer1
- jr c, .Box_SkipNickname
- ld a, BOXMON
- ld [MonType], a
- ld de, wMonOrItemNameBuffer
- callab InitNickname
- ld hl, wMonOrItemNameBuffer
-
-.Box_SkipNickname:
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- ld de, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- call CloseSRAM
-
-.BoxFull:
- ld a, BANK(sBoxMon1Level)
- call GetSRAMBank
- ld a, [sBoxMon1Level]
- ld [CurPartyLevel], a
- call CloseSRAM
- call SetBoxMonCaughtData
- ld a, BANK(sBoxMon1CaughtLocation)
- call GetSRAMBank
- ld hl, sBoxMon1CaughtLocation
- ld a, [hl]
- and $80
- ld b, $13
- or b
- ld [hl], a
- call CloseSRAM
- xor a
- ld [wContestMon], a
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.DidntCatchAnything: ; 4db35
- ld a, $2
- ld [ScriptVar], a
- ret
-
-GiveANickname_YesNo: ; 4db3b
- ld hl, TextJump_GiveANickname
- call PrintText
- jp YesNoBox
-
-TextJump_GiveANickname: ; 0x4db44
- ; Give a nickname to the @ you received?
- text_jump UnknownText_0x1c12fc
- db "@"
-
-SetCaughtData: ; 4db49
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1CaughtLevel
- call GetPartyLocation
-SetBoxmonOrEggmonCaughtData: ; 4db53
- ld a, [TimeOfDay]
- inc a
- rrca
- rrca
- ld b, a
- ld a, [CurPartyLevel]
- or b
- ld [hli], a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- cp MAP_POKECENTER_2F
- jr nz, .NotPokecenter2F
- ld a, b
- cp GROUP_POKECENTER_2F
- jr nz, .NotPokecenter2F
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
-
-.NotPokecenter2F:
- call GetWorldMapLocation
- ld b, a
- ld a, [PlayerGender]
- rrca
- or b
- ld [hl], a
- ret
-
-SetBoxMonCaughtData: ; 4db83
- ld a, BANK(sBoxMon1CaughtLevel)
- call GetSRAMBank
- ld hl, sBoxMon1CaughtLevel
- call SetBoxmonOrEggmonCaughtData
- call CloseSRAM
- ret
-
-SetGiftBoxMonCaughtData: ; 4db92
- push bc
- ld a, BANK(sBoxMon1CaughtLevel)
- call GetSRAMBank
- ld hl, sBoxMon1CaughtLevel
- pop bc
- call SetGiftMonCaughtData
- call CloseSRAM
- ret
-
-SetGiftPartyMonCaughtData: ; 4dba3
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1CaughtLevel
- push bc
- call GetPartyLocation
- pop bc
-SetGiftMonCaughtData: ; 4dbaf
- xor a
- ld [hli], a
- ld a, $7e
- rrc b
- or b
- ld [hl], a
- ret
-
-SetEggMonCaughtData: ; 4dbb8 (13:5bb8)
- ld a, [CurPartyMon]
- ld hl, PartyMon1CaughtLevel
- call GetPartyLocation
- ld a, [CurPartyLevel]
- push af
- ld a, $1
- ld [CurPartyLevel], a
- call SetBoxmonOrEggmonCaughtData
- pop af
- ld [CurPartyLevel], a
- ret
-
+INCLUDE "event/lucky_number.asm"
+INCLUDE "engine/caught_data.asm"
INCLUDE "engine/search2.asm"
-
INCLUDE "engine/stats_screen.asm"
-
-CatchTutorial:: ; 4e554
- ld a, [BattleType]
- dec a
- ld c, a
- ld hl, .dw
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.dw ; 4e564 (13:6564)
- dw .DudeTutorial
- dw .DudeTutorial
- dw .DudeTutorial
-
-.DudeTutorial: ; 4e56a (13:656a)
-; Back up your name to your Mom's name.
- ld hl, PlayerName
- ld de, MomsName
- ld bc, NAME_LENGTH
- call CopyBytes
-; Copy Dude's name to your name
- ld hl, .Dude
- ld de, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
-
- call .LoadDudeData
-
- xor a
- ld [hJoyDown], a
- ld [hJoyPressed], a
- ld a, [Options]
- push af
- and $f8
- add $3
- ld [Options], a
- ld hl, .AutoInput
- ld a, BANK(.AutoInput)
- call StartAutoInput
- callab StartBattle
- call StopAutoInput
- pop af
-
- ld [Options], a
- ld hl, MomsName
- ld de, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
-.LoadDudeData: ; 4e5b7 (13:65b7)
- ld hl, wDudeNumItems
- ld [hl], 1
- inc hl
- ld [hl], POTION
- inc hl
- ld [hl], 1
- inc hl
- ld [hl], -1
- ld hl, wDudeNumKeyItems
- ld [hl], 0
- inc hl
- ld [hl], -1
- ld hl, wDudeNumBalls
- ld a, 1
- ld [hli], a
- ld a, POKE_BALL ; 5
- ld [hli], a
- ld [hli], a
- ld [hl], -1
- ret
-
-.Dude: ; 4e5da
- db "DUDE@"
-
-.AutoInput: ; 4e5df
- db NO_INPUT, $ff ; end
-
+INCLUDE "event/catch_tutorial.asm"
INCLUDE "engine/evolution_animation.asm"
-
-InitDisplayForHallOfFame: ; 4e881
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- call LoadStandardFont
- call LoadFontsBattleExtra
- hlbgcoord 0, 0
- ld bc, VBGMap1 - VBGMap0
- ld a, " "
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- xor a
- ld [hSCY], a
- ld [hSCX], a
- call EnableLCD
- ld hl, .SavingRecordDontTurnOff
- call PrintText
- call WaitBGMap2
- call SetPalettes
- ret
-
-.SavingRecordDontTurnOff: ; 0x4e8bd
- ; SAVING RECORD… DON'T TURN OFF!
- text_jump UnknownText_0x1bd39e
- db "@"
-
-InitDisplayForRedCredits: ; 4e8c2
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- call LoadStandardFont
- call LoadFontsBattleExtra
- hlbgcoord 0, 0
- ld bc, VBGMap1 - VBGMap0
- ld a, " "
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- ld hl, UnknBGPals
- ld c, 4 tiles
-.load_white_palettes
- ld a, (palred 31 + palgreen 31 + palblue 31) % $100
- ld [hli], a
- ld a, (palred 31 + palgreen 31 + palblue 31) / $100
- ld [hli], a
- dec c
- jr nz, .load_white_palettes
- xor a
- ld [hSCY], a
- ld [hSCX], a
- call EnableLCD
- call WaitBGMap2
- call SetPalettes
- ret
-
-ResetDisplayBetweenHallOfFameMons: ; 4e906
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, wDecompressScratch
- ld bc, wScratchAttrMap - wDecompressScratch
- ld a, " "
- call ByteFill
- hlbgcoord 0, 0
- ld de, wDecompressScratch
- ld b, 0
- ld c, 4 tiles
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-
-GetMobileOTTrainerClass: ; mobile function
- ld h, b
- ld l, c
- call .GetMobileOTTrainerClass
- ld c, a
- ret
-
-.GetMobileOTTrainerClass: ; 4e930
- ld a, [hli]
- xor [hl]
- ld c, a
- jr z, .skip_male_trainers
- srl c
- srl c
-.male_trainer_loop
- srl c
- ld a, c
- cp MaleTrainersEnd - MaleTrainers - 1
- jr nc, .male_trainer_loop
- inc c
-
-.skip_male_trainers
- ld a, [de]
- cp $1
- ld hl, MaleTrainers
- jr nz, .finished
-
- ld hl, FemaleTrainers
- ld a, c
- and a
- jr z, .finished
-
-.female_trainer_loop
- srl c
- ld a, c
- cp FemaleTrainersEnd - FemaleTrainers - 1
- jr nc, .female_trainer_loop
- inc c
-
-.finished
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-
-INCLUDE "trainers/gendered_trainers.asm"
-
+INCLUDE "engine/init_hof_credits.asm"
+INCLUDE "mobile/get_trainer_class.asm"
INCLUDE "battle/sliding_intro.asm"
-
-Mobile_PrintOpponentBattleMessage: ; 4ea0a
- ld a, c
- push af
- call SpeechTextBox
- call MobileTextBorder
- pop af
- dec a
- ld bc, $c
- ld hl, w5_MobileOpponentBattleMessages
- call AddNTimes
- ld de, wMobileOpponentBattleMessage
- ld bc, $c
- ld a, $5 ; BANK(w5_MobileOpponentBattleMessages)
- call FarCopyWRAM
-
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
-
- ld bc, wMobileOpponentBattleMessage
- decoord 1, 14
- callba PrintEZChatBattleMessage
-
- pop af
- ld [rSVBK], a
-
- ld c, 180
- call DelayFrames
- ret
-
-CheckBattleScene: ; 4ea44
-; Return carry if battle scene is turned off.
-
- ld a, 0
- ld hl, wLinkMode
- call GetFarWRAMByte
- cp LINK_MOBILE
- jr z, .mobile
-
- ld a, [Options]
- bit BATTLE_SCENE, a
- jr nz, .off
-
- and a
- ret
-
-.mobile
- ld a, [wcd2f]
- and a
- jr nz, .from_wram
-
- ld a, $4
- call GetSRAMBank
- ld a, [$a60c]
- ld c, a
- call CloseSRAM
-
- ld a, c
- bit 0, c
- jr z, .off
-
- and a
- ret
-
-.from_wram
- ld a, $5
- ld hl, w5_dc00
- call GetFarWRAMByte
- bit 0, a
- jr z, .off
-
- and a
- ret
-
-.off
- scf
- ret
-
-INCLUDE "misc/gbc_only.asm"
-
+INCLUDE "mobile/print_opp_message.asm"
+INCLUDE "engine/check_battle_scene.asm"
+INCLUDE "engine/gbc_only.asm"
INCLUDE "event/poke_seer.asm"
@@ -3205,1088 +681,17 @@ INCLUDE "event/squirtbottle.asm"
INCLUDE "event/card_key.asm"
INCLUDE "event/basement_key.asm"
INCLUDE "event/sacred_ash.asm"
-
-CopyPkmnToTempMon: ; 5084a
-; gets the BaseData of a Pkmn
-; and copys the PkmnStructure to TempMon
-
- ld a, [CurPartyMon]
- ld e, a
- call GetPkmnSpecies
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call GetBaseData
-
- ld a, [MonType]
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- and a
- jr z, .copywholestruct
- ld hl, OTPartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- cp OTPARTYMON
- jr z, .copywholestruct
- ld bc, BOXMON_STRUCT_LENGTH
- callab CopyBoxmonToTempMon
- jr .done
-
-.copywholestruct
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, TempMon
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
-
-.done
- ret
-
-CalcwBufferMonStats: ; 5088b
- ld bc, wBufferMon
- jr _TempMonStatsCalculation
-
-CalcTempmonStats: ; 50890
- ld bc, TempMon
-_TempMonStatsCalculation: ; 50893
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- ld [CurPartyLevel], a
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- ld hl, MON_STAT_EXP - 1
- add hl, bc
- push bc
- ld b, $1
- predef CalcPkmnStats
- pop bc
- ld hl, MON_HP
- add hl, bc
- ld d, h
- ld e, l
- ld a, [CurPartySpecies]
- cp EGG
- jr nz, .not_egg
- xor a
- ld [de], a
- inc de
- ld [de], a
- jr .zero_status
-
-.not_egg
- push bc
- ld hl, MON_MAXHP
- add hl, bc
- ld bc, 2
- call CopyBytes
- pop bc
-
-.zero_status
- ld hl, MON_STATUS
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- ret
-
-GetPkmnSpecies: ; 508d5
-; [MonType] has the type of the Pkmn
-; e = Nr. of Pkmn (i.e. [CurPartyMon])
-
- ld a, [MonType]
- and a ; PARTYMON
- jr z, .partymon
- cp OTPARTYMON
- jr z, .otpartymon
- cp BOXMON
- jr z, .boxmon
- cp TEMPMON
- jr z, .breedmon
- ; WILDMON
-
-.partymon
- ld hl, PartySpecies
- jr .done
-
-.otpartymon
- ld hl, OTPartySpecies
- jr .done
-
-.boxmon
- ld a, BANK(sBoxSpecies)
- call GetSRAMBank
- ld hl, sBoxSpecies
- call .done
- call CloseSRAM
- ret
-
-.breedmon
- ld a, [wBreedMon1Species]
- jr .done2
-
-.done
- ld d, 0
- add hl, de
- ld a, [hl]
-
-.done2
- ld [CurPartySpecies], a
- ret
-
+INCLUDE "engine/tempmon.asm"
INCLUDE "text/types.asm"
-
-Function50a28: ; 50a28
-; XXX
- ld hl, .Strings
- ld a, [TrainerClass]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, StringBuffer1
-.copy
- ld a, [hli]
- ld [de], a
- inc de
- cp "@"
- jr nz, .copy
- ret
-
-.Strings: ; 50a42
-; Untranslated trainer class names from Red.
- dw .Youngster
- dw .BugCatcher
- dw .Lass
- dw OTClassName
- dw .JrTrainerM
- dw .JrTrainerF
- dw .Pokemaniac
- dw .SuperNerd
- dw OTClassName
- dw OTClassName
- dw .Burglar
- dw .Engineer
- dw .Jack
- dw OTClassName
- dw .Swimmer
- dw OTClassName
- dw OTClassName
- dw .Beauty
- dw OTClassName
- dw .Rocker
- dw .Juggler
- dw OTClassName
- dw OTClassName
- dw .Blackbelt
- dw OTClassName
- dw .ProfOak
- dw .Chief
- dw .Scientist
- dw OTClassName
- dw .Rocket
- dw .CooltrainerM
- dw .CooltrainerF
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
- dw OTClassName
-
-.Youngster: db "たんパン@"
-.BugCatcher: db "むしとり@"
-.Lass: db "ミニスカ@"
-.JrTrainerM: db "ボーイ@"
-.JrTrainerF: db "ガール@"
-.Pokemaniac: db "マニア@"
-.SuperNerd: db "りかけい@"
-.Burglar: db "どろぼう@"
-.Engineer: db "ォヤジ@"
-.Jack: db "ジャック@"
-.Swimmer: db "かいパン@"
-.Beauty: db "おねえさん@"
-.Rocker: db "グループ@"
-.Juggler: db "ジャグラー@"
-.Blackbelt: db "からて@"
-.ProfOak: db "ォーキド@"
-.Chief: db "チーフ@"
-.Scientist: db "けんきゅういん@"
-.Rocket: db "だんいん@"
-.CooltrainerM: db "エりート♂@"
-.CooltrainerF: db "エりート♀@"
-
-DrawPlayerHP: ; 50b0a
- ld a, $1
- jr DrawHP
-
-DrawEnemyHP: ; 50b0e
- ld a, $2
-
-DrawHP: ; 50b10
- ld [wWhichHPBar], a
- push hl
- push bc
- ; box mons have full HP
- ld a, [MonType]
- cp BOXMON
- jr z, .at_least_1_hp
-
- ld a, [TempMonHP]
- ld b, a
- ld a, [TempMonHP + 1]
- ld c, a
-
-; Any HP?
- or b
- jr nz, .at_least_1_hp
-
- xor a
- ld c, a
- ld e, a
- ld a, 6
- ld d, a
- jp .fainted
-
-.at_least_1_hp
- ld a, [TempMonMaxHP]
- ld d, a
- ld a, [TempMonMaxHP + 1]
- ld e, a
- ld a, [MonType]
- cp BOXMON
- jr nz, .not_boxmon
-
- ld b, d
- ld c, e
-
-.not_boxmon
- predef ComputeHPBarPixels
- ld a, 6
- ld d, a
- ld c, a
-
-.fainted
- ld a, c
- pop bc
- ld c, a
- pop hl
- push de
- push hl
- push hl
- call DrawBattleHPBar
- pop hl
-
-; Print HP
- bccoord 1, 1, 0
- add hl, bc
- ld de, TempMonHP
- ld a, [MonType]
- cp BOXMON
- jr nz, .not_boxmon_2
- ld de, TempMonMaxHP
-.not_boxmon_2
- lb bc, 2, 3
- call PrintNum
-
- ld a, "/"
- ld [hli], a
-
-; Print max HP
- ld de, TempMonMaxHP
- lb bc, 2, 3
- call PrintNum
- pop hl
- pop de
- ret
-
-PrintTempMonStats: ; 50b7b
-; Print TempMon's stats at hl, with spacing bc.
- push bc
- push hl
- ld de, .StatNames
- call PlaceString
- pop hl
- pop bc
- add hl, bc
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld de, TempMonAttack
- lb bc, 2, 3
- call .PrintStat
- ld de, TempMonDefense
- call .PrintStat
- ld de, TempMonSpclAtk
- call .PrintStat
- ld de, TempMonSpclDef
- call .PrintStat
- ld de, TempMonSpeed
- jp PrintNum
-
-.PrintStat: ; 50bab
- push hl
- call PrintNum
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- ret
-
-.StatNames: ; 50bb5
- db "ATTACK"
- next "DEFENSE"
- next "SPCL.ATK"
- next "SPCL.DEF"
- next "SPEED"
- next "@"
-
-GetGender: ; 50bdd
-; Return the gender of a given monster (CurPartyMon/CurOTMon/CurWildMon).
-; When calling this function, a should be set to an appropriate MonType value.
-
-; return values:
-; a = 1: f = nc|nz; male
-; a = 0: f = nc|z; female
-; f = c: genderless
-
-; This is determined by comparing the Attack and Speed DVs
-; with the species' gender ratio.
-
-; Figure out what type of monster struct we're looking at.
-
-; 0: PartyMon
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [MonType]
- and a
- jr z, .PartyMon
-
-; 1: OTPartyMon
- ld hl, OTPartyMon1DVs
- dec a
- jr z, .PartyMon
-
-; 2: sBoxMon
- ld hl, sBoxMon1DVs
- ld bc, BOXMON_STRUCT_LENGTH
- dec a
- jr z, .sBoxMon
-
-; 3: Unknown
- ld hl, TempMonDVs
- dec a
- jr z, .DVs
-
-; else: WildMon
- ld hl, EnemyMonDVs
- jr .DVs
-
-; Get our place in the party/box.
-
-.PartyMon:
-.sBoxMon
- ld a, [CurPartyMon]
- call AddNTimes
-
-.DVs:
-
-; sBoxMon data is read directly from SRAM.
- ld a, [MonType]
- cp BOXMON
- ld a, 1
- call z, GetSRAMBank
-
-; Attack DV
- ld a, [hli]
- and $f0
- ld b, a
-; Speed DV
- ld a, [hl]
- and $f0
- swap a
-
-; Put our DVs together.
- or b
- ld b, a
-
-; Close SRAM if we were dealing with a sBoxMon.
- ld a, [MonType]
- cp BOXMON
- call z, CloseSRAM
-
-; We need the gender ratio to do anything with this.
- push bc
- ld a, [CurPartySpecies]
- dec a
- ld hl, BaseData + BASE_GENDER
- ld bc, BASE_DATA_SIZE
- call AddNTimes
- pop bc
-
- ld a, BANK(BaseData)
- call GetFarByte
-
-; The higher the ratio, the more likely the monster is to be female.
-
- cp $ff
- jr z, .Genderless
-
- and a
- jr z, .Male
-
- cp $fe
- jr z, .Female
-
-; Values below the ratio are male, and vice versa.
- cp b
- jr c, .Male
-
-.Female:
- xor a
- ret
-
-.Male:
- ld a, 1
- and a
- ret
-
-.Genderless:
- scf
- ret
-
-ListMovePP: ; 50c50
- ld a, [wNumMoves]
- inc a
- ld c, a
- ld a, NUM_MOVES
- sub c
- ld b, a
- push hl
- ld a, [Buffer1]
- ld e, a
- ld d, $0
- ld a, $3e ; P
- call .load_loop
- ld a, b
- and a
- jr z, .skip
- ld c, a
- ld a, "-"
- call .load_loop
-
-.skip
- pop hl
- inc hl
- inc hl
- inc hl
- ld d, h
- ld e, l
- ld hl, TempMonMoves
- ld b, 0
-.loop
- ld a, [hli]
- and a
- jr z, .done
- push bc
- push hl
- push de
- ld hl, wMenuCursorY
- ld a, [hl]
- push af
- ld [hl], b
- push hl
- callab GetMaxPPOfMove
- pop hl
- pop af
- ld [hl], a
- pop de
- pop hl
- push hl
- ld bc, TempMonPP - (TempMonMoves + 1)
- add hl, bc
- ld a, [hl]
- and $3f
- ld [StringBuffer1 + 4], a
- ld h, d
- ld l, e
- push hl
- ld de, StringBuffer1 + 4
- lb bc, 1, 2
- call PrintNum
- ld a, "/"
- ld [hli], a
- ld de, wd265
- lb bc, 1, 2
- call PrintNum
- pop hl
- ld a, [Buffer1]
- ld e, a
- ld d, 0
- add hl, de
- ld d, h
- ld e, l
- pop hl
- pop bc
- inc b
- ld a, b
- cp NUM_MOVES
- jr nz, .loop
-
-.done
- ret
-
-.load_loop ; 50cc9
- ld [hli], a
- ld [hld], a
- add hl, de
- dec c
- jr nz, .load_loop
- ret
-
-Function50cd0: ; 50cd0
-; XXX
-.loop
- ld [hl], $32
- inc hl
- ld [hl], $3e
- dec hl
- add hl, de
- dec c
- jr nz, .loop
- ret
-
-Predef22: ; unreferenced predef
- push hl
- push hl
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- pop hl
- call PlaceString
- call CopyPkmnToTempMon
- pop hl
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .egg
- push hl
- ld bc, -12
- add hl, bc
- ld b, $0
- call DrawEnemyHP
- pop hl
- ld bc, 5
- add hl, bc
- push de
- call PrintLevel
- pop de
-
-.egg
- ret
-
-PlaceStatusString: ; 50d0a
- push de
- inc de
- inc de
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- or b
- pop de
- jr nz, PlaceNonFaintStatus
- push de
- ld de, FntString
- call CopyStatusString
- pop de
- ld a, $1
- and a
- ret
-
-FntString: ; 50d22
- db "FNT@"
-
-CopyStatusString: ; 50d25
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- ret
-
-PlaceNonFaintStatus: ; 50d2e
- push de
- ld a, [de]
- ld de, PsnString
- bit PSN, a
- jr nz, .place
- ld de, BrnString
- bit BRN, a
- jr nz, .place
- ld de, FrzString
- bit FRZ, a
- jr nz, .place
- ld de, ParString
- bit PAR, a
- jr nz, .place
- ld de, SlpString
- and SLP
- jr z, .no_status
-
-.place
- call CopyStatusString
- ld a, $1
- and a
-
-.no_status
- pop de
- ret
-
-SlpString: db "SLP@"
-PsnString: db "PSN@"
-BrnString: db "BRN@"
-FrzString: db "FRZ@"
-ParString: db "PAR@"
-
-ListMoves: ; 50d6f
-; List moves at hl, spaced every [Buffer1] tiles.
- ld de, wListMoves_MoveIndicesBuffer
- ld b, $0
-.moves_loop
- ld a, [de]
- inc de
- and a
- jr z, .no_more_moves
- push de
- push hl
- push hl
- ld [CurSpecies], a
- ld a, MOVE_NAME
- ld [wNamedObjectTypeBuffer], a
- call GetName
- ld de, StringBuffer1
- pop hl
- push bc
- call PlaceString
- pop bc
- ld a, b
- ld [wNumMoves], a
- inc b
- pop hl
- push bc
- ld a, [Buffer1]
- ld c, a
- ld b, 0
- add hl, bc
- pop bc
- pop de
- ld a, b
- cp NUM_MOVES
- jr z, .done
- jr .moves_loop
-
-.no_more_moves
- ld a, b
-.nonmove_loop
- push af
- ld [hl], "-"
- ld a, [Buffer1]
- ld c, a
- ld b, 0
- add hl, bc
- pop af
- inc a
- cp NUM_MOVES
- jr nz, .nonmove_loop
-
-.done
- ret
-
-InitList: ; 50db9
- ld a, [wInitListType]
-
- cp INIT_ENEMYOT_LIST
- jr nz, .check_party_ot_name
- ld hl, OTPartyCount
- ld de, OTPartyMonOT
- ld a, ENEMY_OT_NAME
- jr .done
-
-.check_party_ot_name
- cp INIT_PLAYEROT_LIST
- jr nz, .check_mon_name
- ld hl, PartyCount
- ld de, PartyMonOT
- ld a, PARTY_OT_NAME
- jr .done
-
-.check_mon_name
- cp INIT_MON_LIST
- jr nz, .check_item_name
- ld hl, CurMart
- ld de, PokemonNames
- ld a, PKMN_NAME
- jr .done
-
-.check_item_name
- cp INIT_BAG_ITEM_LIST
- jr nz, .check_ob_item_name
- ld hl, NumItems
- ld de, ItemNames
- ld a, ITEM_NAME
- jr .done
-
-.check_ob_item_name
- ld hl, CurMart
- ld de, ItemNames
- ld a, ITEM_NAME
-.done
- ld [wNamedObjectTypeBuffer], a ; d265
- ld a, l
- ld [wListPointer], a
- ld a, h
- ld [wListPointer + 1], a
- ld a, e
- ld [wUnusedD102], a
- ld a, d
- ld [wUnusedD102 + 1], a
- ld bc, ItemAttributes ; ParseEnemyAction, HandleMapTimeAndJoypad, Music_LakeOfRage_Ch3, String_11a7c1 $67c1
- ld a, c
- ld [wItemAttributesPtr], a
- ld a, b
- ld [wItemAttributesPtr + 1], a
- ret
-
-CalcLevel: ; 50e1b
- ld a, [TempMonSpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld d, 1
-.next_level
- inc d
- ld a, d
- cp (MAX_LEVEL + 1) % $100
- jr z, .got_level
- call CalcExpAtLevel
- push hl
- ld hl, TempMonExp + 2
- ld a, [hProduct + 3]
- ld c, a
- ld a, [hld]
- sub c
- ld a, [hProduct + 2]
- ld c, a
- ld a, [hld]
- sbc c
- ld a, [hProduct + 1]
- ld c, a
- ld a, [hl]
- sbc c
- pop hl
- jr nc, .next_level
-
-.got_level
- dec d
- ret
-
-CalcExpAtLevel: ; 50e47
-; (a/b)*n**3 + c*n**2 + d*n - e
- ld a, [BaseGrowthRate]
- add a
- add a
- ld c, a
- ld b, 0
- ld hl, GrowthRates
- add hl, bc
-; Cube the level
- call .LevelSquared
- ld a, d
- ld [hMultiplier], a
- call Multiply
-
-; Multiply by a
- ld a, [hl]
- and $f0
- swap a
- ld [hMultiplier], a
- call Multiply
-; Divide by b
- ld a, [hli]
- and $f
- ld [hDivisor], a
- ld b, 4
- call Divide
-; Push the cubic term to the stack
- ld a, [hQuotient + 0]
- push af
- ld a, [hQuotient + 1]
- push af
- ld a, [hQuotient + 2]
- push af
-; Square the level and multiply by the lower 7 bits of c
- call .LevelSquared
- ld a, [hl]
- and $7f
- ld [hMultiplier], a
- call Multiply
-; Push the absolute value of the quadratic term to the stack
- ld a, [hProduct + 1]
- push af
- ld a, [hProduct + 2]
- push af
- ld a, [hProduct + 3]
- push af
- ld a, [hli]
- push af
-; Multiply the level by d
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, d
- ld [hMultiplicand + 2], a
- ld a, [hli]
- ld [hMultiplier], a
- call Multiply
-; Subtract e
- ld b, [hl]
- ld a, [hProduct + 3]
- sub b
- ld [hMultiplicand + 2], a
- ld b, $0
- ld a, [hProduct + 2]
- sbc b
- ld [hMultiplicand + 1], a
- ld a, [hProduct + 1]
- sbc b
- ld [hMultiplicand], a
-; If bit 7 of c is set, c is negative; otherwise, it's positive
- pop af
- and $80
- jr nz, .subtract
-; Add c*n**2 to (d*n - e)
- pop bc
- ld a, [hProduct + 3]
- add b
- ld [hMultiplicand + 2], a
- pop bc
- ld a, [hProduct + 2]
- adc b
- ld [hMultiplicand + 1], a
- pop bc
- ld a, [hProduct + 1]
- adc b
- ld [hMultiplicand], a
- jr .done_quadratic
-
-.subtract
-; Subtract c*n**2 from (d*n - e)
- pop bc
- ld a, [hProduct + 3]
- sub b
- ld [hMultiplicand + 2], a
- pop bc
- ld a, [hProduct + 2]
- sbc b
- ld [hMultiplicand + 1], a
- pop bc
- ld a, [hProduct + 1]
- sbc b
- ld [hMultiplicand], a
-
-.done_quadratic
-; Add (a/b)*n**3 to (d*n - e +/- c*n**2)
- pop bc
- ld a, [hProduct + 3]
- add b
- ld [hMultiplicand + 2], a
- pop bc
- ld a, [hProduct + 2]
- adc b
- ld [hMultiplicand + 1], a
- pop bc
- ld a, [hProduct + 1]
- adc b
- ld [hMultiplicand], a
- ret
-
-.LevelSquared: ; 50eed
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, d
- ld [hMultiplicand + 2], a
- ld [hMultiplier], a
- jp Multiply
-
-INCLUDE "data/growth_rates.asm"
-
-_SwitchPartyMons:
- ld a, [wd0e3]
- dec a
- ld [Buffer3], a
- ld b, a
- ld a, [wMenuCursorY]
- dec a
- ld [Buffer2], a
- cp b
- jr z, .skip
- call .SwapMonAndMail
- ld a, [Buffer3]
- call .ClearSprite
- ld a, [Buffer2]
- call .ClearSprite
-.skip
- ret
-
-.ClearSprite: ; 50f34 (14:4f34)
- push af
- hlcoord 0, 1
- ld bc, 2 * SCREEN_WIDTH
- call AddNTimes
- ld bc, 2 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- pop af
- ld hl, Sprites
- ld bc, $10
- call AddNTimes
- ld de, $4
- ld c, $4
-.gfx_loop
- ld [hl], $a0
- add hl, de
- dec c
- jr nz, .gfx_loop
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
- ret
-
-.SwapMonAndMail: ; 50f62 (14:4f62)
- push hl
- push de
- push bc
- ld bc, PartySpecies
- ld a, [Buffer2]
- ld l, a
- ld h, $0
- add hl, bc
- ld d, h
- ld e, l
- ld a, [Buffer3]
- ld l, a
- ld h, $0
- add hl, bc
- ld a, [hl]
- push af
- ld a, [de]
- ld [hl], a
- pop af
- ld [de], a
- ld a, [Buffer2]
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- push hl
- ld de, wd002
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, [Buffer3]
- ld hl, PartyMon1
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- pop de
- push hl
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- pop de
- ld hl, wd002
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, [Buffer2]
- ld hl, PartyMonOT
- call SkipNames
- push hl
- call .CopyNameTowd002
- ld a, [Buffer3]
- ld hl, PartyMonOT
- call SkipNames
- pop de
- push hl
- call .CopyName
- pop de
- ld hl, wd002
- call .CopyName
- ld hl, PartyMonNicknames
- ld a, [Buffer2]
- call SkipNames
- push hl
- call .CopyNameTowd002
- ld hl, PartyMonNicknames
- ld a, [Buffer3]
- call SkipNames
- pop de
- push hl
- call .CopyName
- pop de
- ld hl, wd002
- call .CopyName
- ld hl, sPartyMail
- ld a, [Buffer2]
- ld bc, MAIL_STRUCT_LENGTH
- call AddNTimes
- push hl
- ld de, wd002
- ld bc, MAIL_STRUCT_LENGTH
- ld a, BANK(sPartyMail)
- call GetSRAMBank
- call CopyBytes
- ld hl, sPartyMail
- ld a, [Buffer3]
- ld bc, MAIL_STRUCT_LENGTH
- call AddNTimes
- pop de
- push hl
- ld bc, MAIL_STRUCT_LENGTH
- call CopyBytes
- pop de
- ld hl, wd002
- ld bc, MAIL_STRUCT_LENGTH
- call CopyBytes
- call CloseSRAM
- pop bc
- pop de
- pop hl
- ret
-
-.CopyNameTowd002: ; 51036 (14:5036)
- ld de, wd002
-
-.CopyName: ; 51039 (14:5039)
- ld bc, NAME_LENGTH
- call CopyBytes
- ret
-
+INCLUDE "text/unused_gen_1_trainers.asm"
+INCLUDE "engine/mon_stats.asm"
+INCLUDE "engine/init_list.asm"
+INCLUDE "engine/experience.asm"
+INCLUDE "engine/switch_party_mons.asm"
INCLUDE "gfx/load_pics.asm"
-
INCLUDE "engine/move_mon_wo_mail.asm"
-
-INCLUDE "data/base_stats.asm"
-
-INCLUDE "data/pokemon_names.asm"
+INCLUDE "data/pokemon/base_stats.asm"
+INCLUDE "data/pokemon/pokemon_names.asm"
Unknown_53d84: ; unreferenced
db $1a, $15
@@ -4331,300 +736,19 @@ INCLUDE "event/halloffame.asm"
SECTION "bank22", ROMX
INCLUDE "event/kurt.asm"
-
-Function88248: ; 88248
-; XXX
- ld c, CAL
- ld a, [PlayerGender]
- bit 0, a
- jr z, .okay
- ld c, KAREN
-
-.okay
- ld a, c
- ld [TrainerClass], a
- ret
-
-MovePlayerPicRight: ; 88258
- hlcoord 6, 4
- ld de, 1
- jr MovePlayerPic
-
-MovePlayerPicLeft: ; 88260
- hlcoord 13, 4
- ld de, -1
- ; fallthrough
-
-MovePlayerPic: ; 88266
-; Move player pic at hl by de * 7 tiles.
- ld c, $8
-.loop
- push bc
- push hl
- push de
- xor a
- ld [hBGMapMode], a
- lb bc, 7, 7
- predef PlaceGraphic
- xor a
- ld [hBGMapThird], a
- call WaitBGMap
- call DelayFrame
- pop de
- pop hl
- add hl, de
- pop bc
- dec c
- ret z
- push hl
- push bc
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- lb bc, 7, 7
- call ClearBox
- pop bc
- pop hl
- jr .loop
-
-ShowPlayerNamingChoices: ; 88297
- ld hl, ChrisNameMenuHeader
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotGender
- ld hl, KrisNameMenuHeader
-.GotGender:
- call LoadMenuDataHeader
- call VerticalMenu
- ld a, [wMenuCursorY]
- dec a
- call CopyNameFromMenu
- call CloseWindow
- ret
-
-ChrisNameMenuHeader: ; 882b5
- db $40 ; flags
- db 00, 00 ; start coords
- db 11, 10 ; end coords
- dw .MaleNames
- db 1 ; ????
- db 0 ; default option
-
-.MaleNames: ; 882be
- db $91 ; flags
- db 5 ; items
- db "NEW NAME@"
-MalePlayerNameArray: ; 882c9
- db "CHRIS@"
- db "MAT@"
- db "ALLAN@"
- db "JON@"
- db 2 ; displacement
- db " NAME @" ; title
-
-KrisNameMenuHeader: ; 882e5
- db $40 ; flags
- db 00, 00 ; start coords
- db 11, 10 ; end coords
- dw .FemaleNames
- db 1 ; ????
- db 0 ; default option
-
-.FemaleNames: ; 882ee
- db $91 ; flags
- db 5 ; items
- db "NEW NAME@"
-FemalePlayerNameArray: ; 882f9
- db "KRIS@"
- db "AMANDA@"
- db "JUANA@"
- db "JODI@"
- db 2 ; displacement
- db " NAME @" ; title
-
-GetPlayerNameArray: ; 88318 This Function is never called
- ld hl, PlayerName
- ld de, MalePlayerNameArray
- ld a, [PlayerGender]
- bit 0, a
- jr z, .done
- ld de, FemalePlayerNameArray
-
-.done
- call InitName
- ret
-
-GetPlayerIcon: ; 8832c
-; Get the player icon corresponding to gender
-
-; Male
- ld de, ChrisSpriteGFX
- ld b, BANK(ChrisSpriteGFX)
-
- ld a, [PlayerGender]
- bit 0, a
- jr z, .done
-
-; Female
- ld de, KrisSpriteGFX
- ld b, BANK(KrisSpriteGFX)
-
-.done
- ret
-
-GetCardPic: ; 8833e
- ld hl, ChrisCardPic
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotClass
- ld hl, KrisCardPic
-.GotClass:
- ld de, VTiles2 tile $00
- ld bc, $23 tiles
- ld a, BANK(ChrisCardPic) ; BANK(KrisCardPic)
- call FarCopyBytes
- ld hl, CardGFX
- ld de, VTiles2 tile $23
- ld bc, 6 tiles
- ld a, BANK(CardGFX)
- call FarCopyBytes
- ret
-
-ChrisCardPic: ; 88365
-INCBIN "gfx/trainer_card/chris_card.2bpp"
-
-KrisCardPic: ; 88595
-INCBIN "gfx/trainer_card/kris_card.2bpp"
-
-CardGFX: ; 887c5
-INCBIN "gfx/trainer_card/trainer_card.2bpp"
-
-GetPlayerBackpic: ; 88825
- ld a, [PlayerGender]
- bit 0, a
- jr z, GetChrisBackpic
- call GetKrisBackpic
- ret
-
-GetChrisBackpic: ; 88830
- ld hl, ChrisBackpic
- ld b, BANK(ChrisBackpic)
- ld de, VTiles2 tile $31
- ld c, 7 * 7
- predef DecompressPredef
- ret
-
-HOF_LoadTrainerFrontpic: ; 88840
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld e, 0
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotClass
- ld e, 1
-
-.GotClass:
- ld a, e
- ld [TrainerClass], a
- ld de, ChrisPic
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotPic
- ld de, KrisPic
-
-.GotPic:
- ld hl, VTiles2
- ld b, BANK(ChrisPic) ; BANK(KrisPic)
- ld c, 7 * 7
- call Get2bpp
- call WaitBGMap
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-DrawIntroPlayerPic: ; 88874
-; Draw the player pic at (6,4).
-
-; Get class
- ld e, CHRIS
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotClass
- ld e, KRIS
-.GotClass:
- ld a, e
- ld [TrainerClass], a
-
-; Load pic
- ld de, ChrisPic
- ld a, [PlayerGender]
- bit 0, a
- jr z, .GotPic
- ld de, KrisPic
-.GotPic:
- ld hl, VTiles2
- ld b, BANK(ChrisPic) ; BANK(KrisPic)
- ld c, 7 * 7 ; dimensions
- call Get2bpp
-
-; Draw
- xor a
- ld [hGraphicStartTile], a
- hlcoord 6, 4
- lb bc, 7, 7
- predef PlaceGraphic
- ret
-
-ChrisPic: ; 888a9
-INCBIN "gfx/player/chris.2bpp"
-
-KrisPic: ; 88bb9
-INCBIN "gfx/player/kris.2bpp"
-
-GetKrisBackpic: ; 88ec9
-; Kris's backpic is uncompressed.
- ld de, KrisBackpic
- ld hl, VTiles2 tile $31
- lb bc, BANK(KrisBackpic), 7 * 7 ; dimensions
- call Get2bpp
- ret
-
-KrisBackpic: ; 88ed6
-INCBIN "gfx/player/kris_back.2bpp"
-
-String_89116:
- db "-----@"
-
-INCLUDE "misc/mobile_22.asm"
+INCLUDE "engine/player_gfx.asm"
+INCLUDE "mobile/mobile_22.asm"
INCLUDE "event/unown.asm"
INCLUDE "event/buena.asm"
INCLUDE "event/dratini.asm"
INCLUDE "event/battle_tower.asm"
-INCLUDE "misc/mobile_22_2.asm"
+INCLUDE "mobile/mobile_22_2.asm"
SECTION "bank23", ROMX
-Predef35: ; 8c000
-Predef36:
- ret
-
INCLUDE "engine/timeofdaypals.asm"
-INCLUDE "engine/battle_start.asm"
-
-Function8c7c9:
-; XXX
- ld a, $1
- ld [hBGMapMode], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ret
-
+INCLUDE "engine/battle_transition.asm"
INCLUDE "event/field_moves.asm"
INCLUDE "event/magnet_train.asm"
@@ -4683,95 +807,14 @@ SECTION "bank2F", ROMX
INCLUDE "engine/std_scripts.asm"
INCLUDE "engine/phone_scripts.asm"
-
-TalkToTrainerScript:: ; 0xbe66a
- faceplayer
- trainerflagaction CHECK_FLAG
- iftrue AlreadyBeatenTrainerScript
- loadmemtrainer
- encountermusic
- jump StartBattleWithMapTrainerScript
-
-SeenByTrainerScript:: ; 0xbe675
- loadmemtrainer
- encountermusic
- showemote EMOTE_SHOCK, LAST_TALKED, 30
- callasm TrainerWalkToPlayer
- applymovement2 MovementBuffer
- writepersonxy LAST_TALKED
- faceperson PLAYER, LAST_TALKED
- jump StartBattleWithMapTrainerScript
-
-StartBattleWithMapTrainerScript: ; 0xbe68a
- opentext
- trainertext $0
- waitbutton
- closetext
- loadmemtrainer
- startbattle
- reloadmapafterbattle
- trainerflagaction SET_FLAG
- loadvar wRunningTrainerBattleScript, -1
-
-AlreadyBeatenTrainerScript:
- scripttalkafter
-
-INCLUDE "gfx/sprites.asm"
+INCLUDE "engine/trainer_scripts.asm"
SECTION "bank32", ROMX
INCLUDE "battle/bg_effects.asm"
INCLUDE "battle/anims.asm"
-
-LoadPoisonBGPals: ; cbcdd
- call .LoadPals
- ld a, [hCGB]
- and a
- ret nz
- ret ; ????
-
-.LoadPals: ; cbce5
- ld a, [hCGB]
- and a
- jr nz, .cgb
- ld a, [TimeOfDayPal]
- and $3
- cp $3
- ld a, %00000000
- jr z, .convert_pals
- ld a, %10101010
-
-.convert_pals
- call DmgToCgbBGPals
- ld c, 4
- call DelayFrames
- callba _UpdateTimePals
- ret
-
-.cgb
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld c, $20
-.loop
-; RGB 28, 21, 31
- ld a, (palred 28 + palgreen 21 + palblue 31) % $100
- ld [hli], a
- ld a, (palred 28 + palgreen 21 + palblue 31) / $100
- ld [hli], a
- dec c
- jr nz, .loop
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ld c, 4
- call DelayFrames
- callba _UpdateTimePals
- ret
+INCLUDE "event/poisonstep_pals.asm"
TheEndGFX:: ; cbd2e
INCBIN "gfx/credits/theend.2bpp"
@@ -4779,114 +822,7 @@ INCBIN "gfx/credits/theend.2bpp"
SECTION "bank33", ROMX
-DisplayCaughtContestMonStats: ; cc000
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- call LoadFontsBattleExtra
-
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
-
- hlcoord 0, 0
- ld b, 4
- ld c, 13
- call TextBox
-
- hlcoord 0, 6
- ld b, 4
- ld c, 13
- call TextBox
-
- hlcoord 2, 0
- ld de, .Stock
- call PlaceString
-
- hlcoord 2, 6
- ld de, .This
- call PlaceString
-
- hlcoord 5, 4
- ld de, .Health
- call PlaceString
-
- hlcoord 5, 10
- ld de, .Health
- call PlaceString
-
- ld a, [wContestMon]
- ld [wd265], a
- call GetPokemonName
- ld de, StringBuffer1
- hlcoord 1, 2
- call PlaceString
-
- ld h, b
- ld l, c
- ld a, [wContestMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
- ld de, EnemyMonNick
- hlcoord 1, 8
- call PlaceString
-
- ld h, b
- ld l, c
- ld a, [EnemyMonLevel]
- ld [TempMonLevel], a
- call PrintLevel
-
- hlcoord 11, 4
- ld de, wContestMonMaxHP
- lb bc, 2, 3
- call PrintNum
-
- hlcoord 11, 10
- ld de, EnemyMonMaxHP
- call PrintNum
-
- ld hl, SwitchMonText
- call PrintText
-
- pop af
- ld [Options], a
-
- call WaitBGMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- call SetPalettes
- ret
-
-.Health:
- db "HEALTH@"
-.Stock:
- db " STOCK ", $4a, " @"
-.This:
- db " THIS ", $4a, " @"
-
-SwitchMonText: ; cc0c2
- ; Switch #MON?
- text_jump UnknownText_0x1c10cf
- db "@"
-
-DisplayAlreadyCaughtText: ; cc0c7
- call GetPokemonName
- ld hl, .AlreadyCaughtText
- jp PrintText
-
-.AlreadyCaughtText: ; 0xcc0d0
- ; You already caught a @ .
- text_jump UnknownText_0x1c10dd
- db "@"
-
-Predef2F:
-Predef38:
-Predef39: ; cc0d5
- ret
-
+INCLUDE "event/bug_contest/display_stats.asm"
INCLUDE "battle/anim_commands.asm"
INCLUDE "battle/anim_objects.asm"
@@ -4929,117 +865,7 @@ INCLUDE "gfx/pics/unown_frames.asm"
SECTION "bank38", ROMX
-RotateUnownFrontpic: ; e0000
-; something to do with Unown printer
- push de
- xor a
- call GetSRAMBank
- ld hl, sScratch
- ld bc, 0
-.loop
- push bc
- push hl
- push bc
- ld de, wd002
- call .Copy
- call .Rotate
- ld hl, UnownPrinter_OverworldMapRectangle
- pop bc
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld hl, wd012
- call .Copy
- pop hl
- ld bc, $10
- add hl, bc
- pop bc
- inc c
- ld a, c
- cp 7 * 7
- jr c, .loop
-
- ld hl, OverworldMap
- ld de, sScratch
- ld bc, 7 * 7 tiles
- call CopyBytes
- pop hl
- ld de, sScratch
- ld c, 7 * 7
- ld a, [hROMBank]
- ld b, a
- call Get2bpp
- call CloseSRAM
- ret
-
-.Copy: ; e004e
- ld c, $10
-.loop_copy
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop_copy
- ret
-
-.Rotate: ; e0057
- ld hl, wd012
- ld e, %10000000
- ld d, 8
-.loop_decompress
- push hl
- ld hl, wd002
- call .CountSetBit
- pop hl
- ld a, b
- ld [hli], a
- push hl
- ld hl, wd003
- call .CountSetBit
- pop hl
- ld a, b
- ld [hli], a
- srl e
- dec d
- jr nz, .loop_decompress
- ret
-
-.CountSetBit: ; e0078
- ld b, 0
- ld c, 8
-.loop_count
- ld a, [hli]
- and e
- jr z, .clear
- scf
- jr .apply
-
-.clear
- and a
-
-.apply
- rr b
- inc hl
- dec c
- jr nz, .loop_count
- ret
-
-overworldmaprect: MACRO
-y = 0
-rept \1
-x = \1 * (\2 +- 1) + y
-rept \2
- dw OverworldMap tile x
-x = x +- \2
-endr
-y = y + 1
-endr
-endm
-
-UnownPrinter_OverworldMapRectangle: ; e008b
- overworldmaprect 7, 7
+INCLUDE "event/print_unown_2.asm"
Unknown_e00ed:
; Graphics for an unused Game Corner
@@ -5067,8 +893,12 @@ INCLUDE "engine/crystal_intro.asm"
SECTION "bank3E", ROMX
INCLUDE "gfx/font.asm"
-INCLUDE "engine/time_capsule/conversion.asm"
-INCLUDE "engine/unowndex.asm"
+INCLUDE "engine/time_capsule.asm"
+INCLUDE "event/name_rater.asm"
+INCLUDE "engine/play_slow_cry.asm"
+INCLUDE "engine/new_pokedex_entry.asm"
+INCLUDE "engine/time_capsule_2.asm"
+INCLUDE "engine/unown_dex.asm"
INCLUDE "event/magikarp.asm"
INCLUDE "battle/hidden_power.asm"
INCLUDE "battle/misc.asm"
@@ -5081,41 +911,23 @@ INCLUDE "engine/npctrade.asm"
INCLUDE "event/mom_phone.asm"
-SECTION "mobile_40", ROMX
-
-INCLUDE "misc/mobile_40.asm"
+INCLUDE "mobile/mobile_40.asm"
SECTION "bank41", ROMX
-INCLUDE "misc/gfx_41.asm"
-
+INCLUDE "engine/dma_transfer.asm"
+INCLUDE "gfx/emotes.asm"
INCLUDE "engine/warp_connection.asm"
-INCLUDE "engine/mysterygift.asm"
+INCLUDE "engine/mystery_gift.asm"
INCLUDE "battle/used_move_text.asm"
-INCLUDE "misc/mobile_41.asm"
-
-LoadOverworldFont:: ; 106594
- ld de, .font
- ld hl, VTiles1
- lb bc, BANK(.font), $80
- call Get2bpp
- ld de, .space
- ld hl, VTiles2 tile $7f
- lb bc, BANK(.space), 1
- call Get2bpp
- ret
-; 1065ad
-
-.font
-INCBIN "gfx/font/overworld.2bpp"
-.space
-INCBIN "gfx/font/space.2bpp"
+INCLUDE "mobile/mobile_41.asm"
+INCLUDE "gfx/overworld_font.asm"
SECTION "mobile_42", ROMX
-INCLUDE "misc/mobile_42.asm"
+INCLUDE "mobile/mobile_42.asm"
SECTION "Intro Logo", ROMX
@@ -5126,26 +938,30 @@ INCBIN "gfx/intro/logo.2bpp.lz"
SECTION "bank43", ROMX
-INCLUDE "misc/unused_title.asm"
+INCLUDE "engine/unused_title.asm"
INCLUDE "engine/title.asm"
-INCLUDE "misc/mobile_45.asm"
-INCLUDE "misc/mobile_46.asm"
+
+
+INCLUDE "mobile/mobile_45.asm"
+
+
+INCLUDE "mobile/mobile_46.asm"
SECTION "battle_tower_47", ROMX
-INCLUDE "misc/battle_tower_47.asm"
+INCLUDE "mobile/battle_tower_47.asm"
SECTION "bank5B", ROMX
-INCLUDE "misc/mobile_5b.asm"
+INCLUDE "mobile/mobile_5b.asm"
INCLUDE "engine/link_trade.asm"
SECTION "mobile_5c", ROMX
-INCLUDE "misc/mobile_5c.asm"
+INCLUDE "mobile/mobile_5c.asm"
SECTION "Crystal Phone Text 2", ROMX
@@ -5165,7 +981,15 @@ _UpdateBattleHUDs:
callba FinishBattleAnim
ret
-INCLUDE "misc/mobile_5f.asm"
+
+SECTION "mobile_5e", ROMX
+
+INCLUDE "mobile/mobile_5e.asm"
+
+
+SECTION "bank5F", ROMX
+
+INCLUDE "mobile/mobile_5f.asm"
SECTION "Common Text 1", ROMX
@@ -5194,8 +1018,8 @@ INCLUDE "text/phone/trainers1.asm"
SECTION "bank72", ROMX
-INCLUDE "items/item_names.asm"
-INCLUDE "items/item_descriptions.asm"
+INCLUDE "data/items/item_names.asm"
+INCLUDE "data/items/item_descriptions.asm"
INCLUDE "battle/move_names.asm"
INCLUDE "engine/landmarks.asm"
@@ -5205,445 +1029,17 @@ SECTION "bank77", ROMX
UnownFont: ; 1dc000
INCBIN "gfx/font/unown_font.2bpp"
-INCLUDE "misc/printer_77.asm"
-
-MobileHPIcon: ; 1dc591
-INCBIN "gfx/mobile/hp.1bpp"
-
-MobileLvIcon: ; 1dc599
-INCBIN "gfx/mobile/lv.1bpp"
+INCLUDE "engine/print_party.asm"
SECTION "bank77_2", ROMX
-Function1dd6a9: ; 1dd6a9
-; XXX
- ld a, b
- ld b, c
- ld c, a
- push bc
- push de
- ld hl, sp+$2
- ld d, h
- ld e, l
- pop hl
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- pop bc
- ret
-
-PrintHoursMins ; 1dd6bb (77:56bb)
-; Hours in b, minutes in c
- ld a, b
- cp 12
- push af
- jr c, .AM
- jr z, .PM
- sub 12
- jr .PM
-.AM:
- or a
- jr nz, .PM
- ld a, 12
-.PM:
- ld b, a
-; Crazy stuff happening with the stack
- push bc
- ld hl, sp+$1
- push de
- push hl
- pop de
- pop hl
- ld [hl], " "
- lb bc, 1, 2
- call PrintNum
- ld [hl], ":"
- inc hl
- ld d, h
- ld e, l
- ld hl, sp+$0
- push de
- push hl
- pop de
- pop hl
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- pop bc
- ld de, String_AM
- pop af
- jr c, .place_am_pm
- ld de, String_PM
-.place_am_pm
- inc hl
- call PlaceString
- ret
-
-String_AM: db "AM@" ; 1dd6fc
-String_PM: db "PM@" ; 1dd6ff
-
+INCLUDE "engine/printhoursmins.asm"
INCLUDE "engine/diploma.asm"
-
-LoadSGBPokedexGFX: ; 1ddf1c
- ld hl, SGBPokedexGFX_LZ
- ld de, VTiles2 tile $31
- call Decompress
- ret
-
-LoadSGBPokedexGFX2: ; 1ddf26 (77:5f26)
- ld hl, SGBPokedexGFX_LZ
- ld de, VTiles2 tile $31
- lb bc, BANK(SGBPokedexGFX_LZ), $3a
- call DecompressRequest2bpp
- ret
-
-SGBPokedexGFX_LZ: ; 1ddf33
-INCBIN "gfx/pokedex/sgb.2bpp.lz"
-
-LoadQuestionMarkPic: ; 1de0d7
- ld hl, .QuestionMarkLZ
- ld de, sScratch
- call Decompress
- ret
-
-.QuestionMarkLZ: ; 1de0e1
-INCBIN "gfx/pics/questionmark/front.2bpp.lz"
-
-DrawPokedexListWindow: ; 1de171 (77:6171)
- ld a, $32
- hlcoord 0, 17
- ld bc, 12
- call ByteFill
- hlcoord 0, 1
- lb bc, 15, 11
- call ClearBox
- ld a, $34
- hlcoord 0, 0
- ld bc, 11
- call ByteFill
- ld a, $39
- hlcoord 0, 16
- ld bc, 11
- call ByteFill
- hlcoord 5, 0
- ld [hl], $3f
- hlcoord 5, 16
- ld [hl], $40
- ld a, [wCurrentDexMode]
- cp DEXMODE_OLD
- jr z, .OldMode
-; scroll bar
- hlcoord 11, 0
- ld [hl], $50
- ld a, $51
- hlcoord 11, 1
- ld b, SCREEN_HEIGHT - 3
- call Bank77_FillColumn
- ld [hl], $52
- jr .Done
-
-.OldMode:
-; no scroll bar
- hlcoord 11, 0
- ld [hl], $66
- ld a, $67
- hlcoord 11, 1
- ld b, SCREEN_HEIGHT - 3
- call Bank77_FillColumn
- ld [hl], $68
-.Done:
- ret
-
-DrawPokedexSearchResultsWindow: ; 1de1d1 (77:61d1)
- ld a, $34
- hlcoord 0, 0
- ld bc, 11
- call ByteFill
- ld a, $39
- hlcoord 0, 10
- ld bc, 11
- call ByteFill
- hlcoord 5, 0
- ld [hl], $3f
- hlcoord 5, 10
- ld [hl], $40
- hlcoord 11, 0
- ld [hl], $66
- ld a, $67
- hlcoord 11, 1
- ld b, SCREEN_HEIGHT / 2
- call Bank77_FillColumn
- ld [hl], $68
- ld a, $34
- hlcoord 0, 11
- ld bc, 11
- call ByteFill
- ld a, $39
- hlcoord 0, 17
- ld bc, 11
- call ByteFill
- hlcoord 11, 11
- ld [hl], $66
- ld a, $67
- hlcoord 11, 12
- ld b, 5
- call Bank77_FillColumn
- ld [hl], $68
- hlcoord 0, 12
- lb bc, 5, 11
- call ClearBox
- ld de, .esults_D
- hlcoord 0, 12
- call PlaceString
- ret
-
-.esults_D ; 1de23c
-; (SEARCH R)
- db "ESULTS"
- next ""
-; (### FOUN)
- next "D!@"
-
-DrawDexEntryScreenRightEdge: ; 1de247
- ld a, [hBGMapAddress]
- ld l, a
- ld a, [hBGMapAddress + 1]
- ld h, a
- push hl
- inc hl
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [hBGMapAddress + 1], a
- hlcoord 19, 0
- ld [hl], $66
- hlcoord 19, 1
- ld a, $67
- ld b, 15
- call Bank77_FillColumn
- ld [hl], $68
- hlcoord 19, 17
- ld [hl], $3c
- xor a
- ld b, SCREEN_HEIGHT
- hlcoord 19, 0, AttrMap
- call Bank77_FillColumn
- call WaitBGMap2
- pop hl
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [hBGMapAddress + 1], a
- ret
-
-Bank77_FillColumn: ; 1de27f
- push de
- ld de, SCREEN_WIDTH
-.loop
- ld [hl], a
- add hl, de
- dec b
- jr nz, .loop
- pop de
- ret
-
-_DudeAutoInput_A:: ; 1de28a
- ld hl, DudeAutoInput_A
- jr _DudeAutoInput
-
-_DudeAutoInput_RightA: ; 1de28f
- ld hl, DudeAutoInput_RightA
- jr _DudeAutoInput
-
-_DudeAutoInput_DownA: ; 1de294
- ld hl, DudeAutoInput_DownA
- jr _DudeAutoInput
-
-_DudeAutoInput: ; 1de299
- ld a, BANK(DudeAutoInputs)
- call StartAutoInput
- ret
-
-DudeAutoInputs:
-
-DudeAutoInput_A: ; 1de29f
- db NO_INPUT, $50
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-DudeAutoInput_RightA: ; 1de2a5
- db NO_INPUT, $08
- db D_RIGHT, $00
- db NO_INPUT, $08
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-DudeAutoInput_DownA: ; 1de2af
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db D_DOWN, $00
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db NO_INPUT, $fe
- db A_BUTTON, $00
- db NO_INPUT, $ff ; end
-
-TownMap_ConvertLineBreakCharacters: ; 1de2c5
- ld hl, StringBuffer1
-.loop
- ld a, [hl]
- cp "@"
- jr z, .end
- cp "%"
- jr z, .line_break
- cp "¯"
- jr z, .line_break
- inc hl
- jr .loop
-
-.line_break
- ld [hl], "<LNBRK>"
-
-.end
- ld de, StringBuffer1
- hlcoord 9, 0
- call PlaceString
- ret
-
-PokegearGFX: ; 1de2e4
-INCBIN "gfx/pokegear/pokegear.2bpp.lz"
-
-IsMailEuropean: ; 1de5c8
-; return 1 if French
-; return 2 if German
-; return 3 if Italian
-; return 4 if Spanish
-; return 0 if none of the above
- ld c, $0
- ld hl, sPartyMon1MailAuthorNationality - sPartyMon1Mail
- add hl, de
- ld a, [hli]
- cp "E"
- ret nz
- ld a, [hli]
- inc c
- cp "F"
- ret z
- inc c
- cp "G"
- ret z
- inc c
- cp "I"
- ret z
- inc c
- cp "S"
- ret z
- ld c, $0
- ret
-
-; The regular font.
-StandardEnglishFont: ; 1de5e6
-INCBIN "gfx/font/english.1bpp"
-
-; An extended font.
-FrenchGermanFont: ; 1de9e6
-INCBIN "gfx/font/french_german.1bpp"
-
-; An even more extended font.
-SpanishItalianFont: ; 1dede6
-INCBIN "gfx/font/spanish_italian.1bpp"
-
-HandleFrenchGermanMail: ; 1df1e6
-; called if mail is french or german
-; fix 's 't 'v
- ld b, sPartyMon1MailAuthor - sPartyMon1Mail
- ld h, d
- ld l, e
-.loop
- ld a, [hl]
- cp $dc ; 's in french/german font
- jr nz, .check_intermediate_chars
- ld a, "'s"
- jr .replace
-
-.check_intermediate_chars
- sub "'s"
- jr c, .dont_replace
- cp "'v" - "'s" + 1
- jr nc, .dont_replace
- add $cd
-
-.replace
- ld [hl], a
-
-.dont_replace
- inc hl
- dec b
- jr nz, .loop
- ret
-
-LireLeCourrierAnglais:
-DeutenEnglischenPost: ; 1df203
-; Cette fonction convertit certains des caractères anglais pour
-; leur équivalent dans le jeu de caractères français.
-; Diese Funktion wandelt bestimmte englische Zeichen, um ihre
-; Entsprechung in der Deutschen-Zeichensatz.
- ld b, sPartyMon1MailAuthor - sPartyMon1Mail
- ld h, d
- ld l, e
-.loop
- ld a, [hl]
- cp "'s"
- jr nz, .check_intermediate_chars
- ld a, $dc
- jr .replace
-
-.check_intermediate_chars
- sub $cd
- jr c, .dont_replace
- cp "'v" - "'s" + 1
- jr nc, .dont_replace
- add "'s"
-
-.replace
- ld [hl], a
-
-.dont_replace
- inc hl
- dec b
- jr nz, .loop
- ret
-
-HandleSpanishItalianMail: ; 1df220
-LeerCorreosIngleses:
-LeggiPostaInglese:
-; This function converts certain characters between
-; the English and Spanish/Italian character sets.
-; Esta función convierte ciertos caracteres entre
-; el juego de caracteres Inglés y Español.
-; Questa funzione converte alcuni caratteri tra
-; l'inglese e il set di caratteri italiani.
- ld b, sPartyMon1MailAuthor - sPartyMon1Mail
- ld h, d
- ld l, e
-.loop
- ld a, [hl]
- and $f0
- cp $d0
- jr nz, .dont_replace
- ld a, [hl]
- add $8
- and $f
- or $d0
- ld [hl], a
-
-.dont_replace
- inc hl
- dec b
- jr nz, .loop
- ret
+INCLUDE "engine/pokedex_3.asm"
+INCLUDE "event/catch_tutorial_input.asm"
+INCLUDE "engine/pokegear_2.asm"
+INCLUDE "engine/european_mail.asm"
SECTION "Battle Tower Text", ROMX
@@ -5656,50 +1052,9 @@ SECTION "Battle Tower Trainer Data", ROMX
INCLUDE "data/battle_tower_2.asm"
-SECTION "bank7D", ROMX
-
- db $cc, $6b, $1e ; XXX
-
-Function1f4003: ; 1f4003
-; XXX
- ld a, $6
- call GetSRAMBank
- ld hl, .unknown_data
- ld de, $a000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
-
-.unknown_data
-INCBIN "unknown/1f4018.bin"
-
-Function1f4dbe: ; 1f4dbe
-; XXX
- ld a, $6
- call GetSRAMBank
- ld hl, .unknown_data
- ld de, $a000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
-
-.unknown_data
-INCBIN "unknown/1f4dd3.bin"
-
-Function1f5d9f: ; 1f5d9f
- ld a, $6
- call GetSRAMBank
- ld hl, .unknown_data
- ld de, $a000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
+SECTION "Mobile News Data", ROMX
-.unknown_data
-INCBIN "unknown/1f5db4.bin"
+INCLUDE "mobile/news/news.asm"
SECTION "bank7E", ROMX
@@ -5711,10 +1066,10 @@ INCLUDE "engine/odd_eggs.asm"
SECTION "bank7F", ROMX
-SECTION "stadium2", ROMX
+SECTION "Mobile Stadium 2", ROMX
IF DEF(CRYSTAL11)
-INCBIN "misc/stadium2_2.bin"
+INCBIN "mobile/stadium/stadium2_2.bin"
ELSE
-INCBIN "misc/stadium2_1.bin"
+INCBIN "mobile/stadium/stadium2_1.bin"
ENDC
diff --git a/maps.asm b/maps.asm
index 80ded93fc..35ca4a835 100644
--- a/maps.asm
+++ b/maps.asm
@@ -89,7 +89,7 @@ INCLUDE "maps/VioletGym.asm"
INCLUDE "maps/EarlsPokemonAcademy.asm"
INCLUDE "maps/VioletNicknameSpeechHouse.asm"
INCLUDE "maps/VioletPokecenter1F.asm"
-INCLUDE "maps/VioletOnixTradeHouse.asm"
+INCLUDE "maps/VioletKylesHouse.asm"
INCLUDE "maps/Route32RuinsOfAlphGate.asm"
INCLUDE "maps/Route32Pokecenter1F.asm"
INCLUDE "maps/Route35GoldenrodGate.asm"
diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm
index 9238d5dbd..c6b188b8d 100644
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -60,7 +60,7 @@ ReceptionistScript_0x9e3e2:
opentext
writetext Text_BattleTowerWelcomesYou
buttonsound
- writebyte BATTLETOWERACTION_CHECK_EXPLANATION_READ ; if new save file: bit 1, [s1_be4f]
+ writebyte BATTLETOWERACTION_CHECK_EXPLANATION_READ ; if new save file: bit 1, [sBattleTowerSaveFileFlags]
special BattleTowerAction
if_not_equal $0, Script_Menu_ChallengeExplanationCancel
jump Script_BattleTowerIntroductionYesNo
@@ -85,7 +85,7 @@ Script_ChooseChallenge: ; 0x9e40f
special Special_TryQuickSave
iffalse Script_Menu_ChallengeExplanationCancel
dotrigger $1
- writebyte BATTLETOWERACTION_SET_EXPLANATION_READ ; set 1, [s1_be4f]
+ writebyte BATTLETOWERACTION_SET_EXPLANATION_READ ; set 1, [sBattleTowerSaveFileFlags]
special BattleTowerAction
special BattleTowerRoomMenu
if_equal $a, Script_Menu_ChallengeExplanationCancel
diff --git a/maps/BlackthornDragonSpeechHouse.asm b/maps/BlackthornDragonSpeechHouse.asm
index 1126e1d2d..7217e1050 100644
--- a/maps/BlackthornDragonSpeechHouse.asm
+++ b/maps/BlackthornDragonSpeechHouse.asm
@@ -9,24 +9,26 @@ BlackthornDragonSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-GrannyScript_0x195949:
- jumptextfaceplayer UnknownText_0x19595c
+BlackthornDragonSpeechHouseGrannyScript:
+ jumptextfaceplayer BlackthornDragonSpeechHouseGrannyText
-Dratini:
+BlackthornDragonSpeechHouseDratiniScript:
opentext
- writetext DratiniText
+ writetext BlackthornDragonSpeechHouseDratiniText
cry DRATINI
waitbutton
closetext
end
; unused
+BlackthornDragonSpeechHousePictureBookshelf:
jumpstd picturebookshelf
; unused
+BlackthornDragonSpeechHouseMagazineBookshelf:
jumpstd magazinebookshelf
-UnknownText_0x19595c:
+BlackthornDragonSpeechHouseGrannyText:
text "A clan of trainers"
line "who can freely"
@@ -41,7 +43,7 @@ UnknownText_0x19595c:
line "this town."
done
-DratiniText:
+BlackthornDragonSpeechHouseDratiniText:
text "DRATINI: Draa!"
done
@@ -62,5 +64,5 @@ BlackthornDragonSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x195949, -1
- person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Dratini, -1
+ person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornDragonSpeechHouseGrannyScript, -1
+ person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, BlackthornDragonSpeechHouseDratiniScript, -1
diff --git a/maps/BlackthornGym1F.asm b/maps/BlackthornGym1F.asm
index baae2fe8e..651d7e7ec 100644
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -93,9 +93,9 @@ BlackthornGymClairScript:
end
TrainerCooltrainermPaul:
- trainer EVENT_BEAT_COOLTRAINERM_PAUL, COOLTRAINERM, PAUL, CooltrainermPaulSeenText, CooltrainermPaulBeatenText, 0, CooltrainermPaulScript
+ trainer EVENT_BEAT_COOLTRAINERM_PAUL, COOLTRAINERM, PAUL, CooltrainermPaulSeenText, CooltrainermPaulBeatenText, 0, .Script
-CooltrainermPaulScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermPaulAfterBattleText
@@ -104,9 +104,9 @@ CooltrainermPaulScript:
end
TrainerCooltrainermMike:
- trainer EVENT_BEAT_COOLTRAINERM_MIKE, COOLTRAINERM, MIKE, CooltrainermMikeSeenText, CooltrainermMikeBeatenText, 0, CooltrainermMikeScript
+ trainer EVENT_BEAT_COOLTRAINERM_MIKE, COOLTRAINERM, MIKE, CooltrainermMikeSeenText, CooltrainermMikeBeatenText, 0, .Script
-CooltrainermMikeScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermMikeAfterBattleText
@@ -115,9 +115,9 @@ CooltrainermMikeScript:
end
TrainerCooltrainerfLola:
- trainer EVENT_BEAT_COOLTRAINERF_LOLA, COOLTRAINERF, LOLA, CooltrainerfLolaSeenText, CooltrainerfLolaBeatenText, 0, CooltrainerfLolaScript
+ trainer EVENT_BEAT_COOLTRAINERF_LOLA, COOLTRAINERF, LOLA, CooltrainerfLolaSeenText, CooltrainerfLolaBeatenText, 0, .Script
-CooltrainerfLolaScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfLolaAfterBattleText
diff --git a/maps/BlackthornGym2F.asm b/maps/BlackthornGym2F.asm
index 92b623b2a..3dd4a4d45 100644
--- a/maps/BlackthornGym2F.asm
+++ b/maps/BlackthornGym2F.asm
@@ -61,9 +61,9 @@ BlackthornGymBoulder:
jumpstd strengthboulder
TrainerCooltrainermCody:
- trainer EVENT_BEAT_COOLTRAINERM_CODY, COOLTRAINERM, CODY, CooltrainermCodySeenText, CooltrainermCodyBeatenText, 0, CooltrainermCodyScript
+ trainer EVENT_BEAT_COOLTRAINERM_CODY, COOLTRAINERM, CODY, CooltrainermCodySeenText, CooltrainermCodyBeatenText, 0, .Script
-CooltrainermCodyScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermCodyAfterBattleText
@@ -72,9 +72,9 @@ CooltrainermCodyScript:
end
TrainerCooltrainerfFran:
- trainer EVENT_BEAT_COOLTRAINERF_FRAN, COOLTRAINERF, FRAN, CooltrainerfFranSeenText, CooltrainerfFranBeatenText, 0, CooltrainerfFranScript
+ trainer EVENT_BEAT_COOLTRAINERF_FRAN, COOLTRAINERF, FRAN, CooltrainerfFranSeenText, CooltrainerfFranBeatenText, 0, .Script
-CooltrainerfFranScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfFranAfterBattleText
diff --git a/maps/BlackthornMart.asm b/maps/BlackthornMart.asm
index 972ae6f64..be7987a76 100644
--- a/maps/BlackthornMart.asm
+++ b/maps/BlackthornMart.asm
@@ -10,19 +10,19 @@ BlackthornMart_MapScriptHeader:
.MapCallbacks:
db 0
-ClerkScript_0x195a5d:
+BlackthornMartClerkScript:
opentext
pokemart MARTTYPE_STANDARD, MART_BLACKTHORN
closetext
end
-CooltrainerMScript_0x195a64:
- jumptextfaceplayer UnknownText_0x195a6a
+BlackthornMartCooltrainerMScript:
+ jumptextfaceplayer BlackthornMartCooltrainerMText
-BlackBeltScript_0x195a67:
- jumptextfaceplayer UnknownText_0x195ae9
+BlackthornMartBlackBeltScript:
+ jumptextfaceplayer BlackthornMartBlackBeltText
-UnknownText_0x195a6a:
+BlackthornMartCooltrainerMText:
text "You can't buy MAX"
line "REVIVE, but it"
@@ -36,7 +36,7 @@ UnknownText_0x195a6a:
line "needed for moves."
done
-UnknownText_0x195ae9:
+BlackthornMartBlackBeltText:
text "MAX REPEL keeps"
line "weak #MON away"
cont "from you."
@@ -63,6 +63,6 @@ BlackthornMart_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195a5d, -1
- person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195a64, -1
- person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x195a67, -1
+ person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornMartClerkScript, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornMartCooltrainerMScript, -1
+ person_event SPRITE_BLACK_BELT, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackthornMartBlackBeltScript, -1
diff --git a/maps/BlackthornPokecenter1F.asm b/maps/BlackthornPokecenter1F.asm
index 6da357319..b235d6143 100644
--- a/maps/BlackthornPokecenter1F.asm
+++ b/maps/BlackthornPokecenter1F.asm
@@ -11,19 +11,19 @@ BlackthornPokecenter1F_MapScriptHeader:
.MapCallbacks:
db 0
-NurseScript_0x195b79:
+BlackthornPokecenter1FNurseScript:
jumpstd pokecenternurse
-GentlemanScript_0x195b7c:
- jumptextfaceplayer UnknownText_0x195b85
+BlackthornPokecenter1FGentlemanScript:
+ jumptextfaceplayer BlackthornPokecenter1FGentlemanText
-TwinScript_0x195b7f:
- jumptextfaceplayer UnknownText_0x195bfd
+BlackthornPokecenter1FTwinScript:
+ jumptextfaceplayer BlackthornPokecenter1FTwinText
-CooltrainerMScript_0x195b82:
+BlackthornPokecenter1FCooltrainerMScript:
jumpstd happinesschecknpc
-UnknownText_0x195b85:
+BlackthornPokecenter1FGentlemanText:
text "Deep inside far-"
line "off INDIGO PLATEAU"
@@ -37,7 +37,7 @@ UnknownText_0x195b85:
line "the country."
done
-UnknownText_0x195bfd:
+BlackthornPokecenter1FTwinText:
text "There was this"
line "move I just had"
@@ -67,7 +67,7 @@ BlackthornPokecenter1F_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x195b79, -1
- person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x195b7c, -1
- person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x195b7f, -1
- person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x195b82, -1
+ person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FNurseScript, -1
+ person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FGentlemanScript, -1
+ person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FTwinScript, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BlackthornPokecenter1FCooltrainerMScript, -1
diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm
index 72cd935fc..58bc77983 100644
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -8,29 +8,29 @@ BluesHouse_MapScriptHeader:
.MapCallbacks:
db 0
-DaisyScript_0x19b0d0:
+DaisyScript:
faceplayer
opentext
checkcode VAR_HOUR
- if_equal $f, UnknownScript_0x19b0de
- writetext UnknownText_0x19b130
+ if_equal 15, .ThreePM
+ writetext DaisyHelloText
waitbutton
closetext
end
-UnknownScript_0x19b0de:
+.ThreePM:
checkflag ENGINE_TEA_IN_BLUES_HOUSE
- iftrue UnknownScript_0x19b11e
- writetext UnknownText_0x19b1b6
+ iftrue .AlreadyGroomedMon
+ writetext DaisyOfferGroomingText
yesorno
- iffalse UnknownScript_0x19b124
- writetext UnknownText_0x19b244
+ iffalse .Refused
+ writetext DaisyWhichMonText
waitbutton
special Special_DaisyMassage
- if_equal 0, UnknownScript_0x19b124
- if_equal 1, UnknownScript_0x19b12a
+ if_equal 0, .Refused
+ if_equal 1, .CantGroomEgg
setflag ENGINE_TEA_IN_BLUES_HOUSE
- writetext UnknownText_0x19b266
+ writetext DaisyAlrightText
waitbutton
closetext
special FadeOutPalettes
@@ -39,33 +39,33 @@ UnknownScript_0x19b0de:
special FadeInPalettes
special RestartMapMusic
opentext
- writetext UnknownText_0x19b296
+ writetext GroomedMonLooksContentText
special PlayCurMonCry
buttonsound
- writetext UnknownText_0x19b2aa
+ writetext DaisyAllDoneText
waitbutton
closetext
end
-UnknownScript_0x19b11e:
- writetext UnknownText_0x19b2fa
+.AlreadyGroomedMon:
+ writetext DaisyAlreadyGroomedText
waitbutton
closetext
end
-UnknownScript_0x19b124:
- writetext UnknownText_0x19b334
+.Refused:
+ writetext DaisyRefusedText
waitbutton
closetext
end
-UnknownScript_0x19b12a:
- writetext UnknownText_0x19b377
+.CantGroomEgg:
+ writetext DaisyCantGroomEggText
waitbutton
closetext
end
-UnknownText_0x19b130:
+DaisyHelloText:
text "DAISY: Hi! My kid"
line "brother is the GYM"
@@ -79,7 +79,7 @@ UnknownText_0x19b130:
line "for the trainers."
done
-UnknownText_0x19b1b6:
+DaisyOfferGroomingText:
text "DAISY: Hi! Good"
line "timing. I'm about"
cont "to have some tea."
@@ -94,24 +94,24 @@ UnknownText_0x19b1b6:
line "to groom one?"
done
-UnknownText_0x19b244:
+DaisyWhichMonText:
text "DAISY: Which one"
line "should I groom?"
done
-UnknownText_0x19b266:
+DaisyAlrightText:
text "DAISY: OK, I'll"
line "get it looking"
cont "nice in no time."
done
-UnknownText_0x19b296:
+GroomedMonLooksContentText:
text_from_ram StringBuffer3
text " looks"
line "content."
done
-UnknownText_0x19b2aa:
+DaisyAllDoneText:
text "DAISY: There you"
line "go! All done."
@@ -122,7 +122,7 @@ UnknownText_0x19b2aa:
line "#MON."
done
-UnknownText_0x19b2fa:
+DaisyAlreadyGroomedText:
text "DAISY: I always"
line "have tea around"
@@ -130,7 +130,7 @@ UnknownText_0x19b2fa:
line "join me."
done
-UnknownText_0x19b334:
+DaisyRefusedText:
text "DAISY: You don't"
line "want to have one"
@@ -138,7 +138,7 @@ UnknownText_0x19b334:
line "just have tea."
done
-UnknownText_0x19b377:
+DaisyCantGroomEggText:
text "DAISY: Oh, sorry."
line "I honestly can't"
cont "groom an EGG."
@@ -161,4 +161,4 @@ BluesHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaisyScript_0x19b0d0, -1
+ person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DaisyScript, -1
diff --git a/maps/CeladonCity.asm b/maps/CeladonCity.asm
index a46e01da5..14b1a2d70 100644
--- a/maps/CeladonCity.asm
+++ b/maps/CeladonCity.asm
@@ -21,8 +21,8 @@ CeladonCity_MapScriptHeader:
setflag ENGINE_FLYPOINT_CELADON
return
-FisherScript_0x1a9f43:
- jumptextfaceplayer UnknownText_0x1a9f7d
+CeladonCityFisherScript:
+ jumptextfaceplayer CeladonCityFisherText
CeladonCityPoliwrath:
opentext
@@ -32,26 +32,26 @@ CeladonCityPoliwrath:
closetext
end
-TeacherScript_0x1a9f50:
- jumptextfaceplayer UnknownText_0x1a9fde
+CeladonCityTeacher1Script:
+ jumptextfaceplayer CeladonCityTeacher1Text
-GrampsScript_0x1a9f53:
- jumptextfaceplayer UnknownText_0x1aa043
+CeladonCityGramps1Script:
+ jumptextfaceplayer CeladonCityGramps1Text
-GrampsScript_0x1a9f56:
- jumptextfaceplayer UnknownText_0x1aa0dc
+CeladonCityGramps2Script:
+ jumptextfaceplayer CeladonCityGramps2Text
-YoungsterScript_0x1a9f59:
- jumptextfaceplayer UnknownText_0x1aa115
+CeladonCityYoungster1Script:
+ jumptextfaceplayer CeladonCityYoungster1Text
-YoungsterScript_0x1a9f5c:
- jumptextfaceplayer UnknownText_0x1aa155
+CeladonCityYoungster2Script:
+ jumptextfaceplayer CeladonCityYoungster2Text
-TeacherScript_0x1a9f5f:
- jumptextfaceplayer UnknownText_0x1aa1bd
+CeladonCityTeacher2Script:
+ jumptextfaceplayer CeladonCityTeacher2Text
-LassScript_0x1a9f62:
- jumptextfaceplayer UnknownText_0x1aa306
+CeladonCityLassScript:
+ jumptextfaceplayer CeladonCityLassText
CeladonCitySign:
jumptext CeladonCitySignText
@@ -77,7 +77,7 @@ CeladonCityPokecenterSign:
CeladonCityHiddenPpUp:
dwb EVENT_CELADON_CITY_HIDDEN_PP_UP, PP_UP
-UnknownText_0x1a9f7d:
+CeladonCityFisherText:
text "This POLIWRATH is"
line "my partner."
@@ -90,7 +90,7 @@ CeladonCityPoliwrathText:
text "POLIWRATH: Croak!"
done
-UnknownText_0x1a9fde:
+CeladonCityTeacher1Text:
text "I lost at the slot"
line "machines again…"
@@ -101,7 +101,7 @@ UnknownText_0x1a9fde:
line "them out too."
done
-UnknownText_0x1aa043:
+CeladonCityGramps1Text:
text "GRIMER have been"
line "appearing lately."
@@ -116,7 +116,7 @@ UnknownText_0x1aa043:
cont "a serious problem…"
done
-UnknownText_0x1aa0dc:
+CeladonCityGramps2Text:
text "Nihihi! This GYM"
line "is great! Only"
@@ -124,7 +124,7 @@ UnknownText_0x1aa0dc:
line "here!"
done
-UnknownText_0x1aa115:
+CeladonCityYoungster1Text:
text "Want to know a"
line "secret?"
@@ -133,7 +133,7 @@ UnknownText_0x1aa115:
cont "door."
done
-UnknownText_0x1aa155:
+CeladonCityYoungster2Text:
text "They're holding an"
line "eating contest at"
cont "the restaurant."
@@ -143,7 +143,7 @@ UnknownText_0x1aa155:
cont "feel bloated…"
done
-UnknownText_0x1aa1bd:
+CeladonCityTeacher2Text:
text "CELADON DEPT.STORE"
line "has the biggest"
@@ -160,8 +160,8 @@ UnknownText_0x1aa1bd:
line "a sales clerk."
done
-; possibly unused
-UnknownText_0x1aa25b:
+; unused
+CeladonCityUnusedPokeComCenterText:
text "I love being"
line "surrounded by tall"
cont "buildings!"
@@ -179,7 +179,7 @@ UnknownText_0x1aa25b:
line "KANTO…"
done
-UnknownText_0x1aa306:
+CeladonCityLassText:
text "Looking at the"
line "ground while I was"
@@ -266,12 +266,12 @@ CeladonCity_MapEventHeader:
.PersonEvents:
db 9
- person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9f43, -1
+ person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonCityFisherScript, -1
person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonCityPoliwrath, -1
- person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f50, -1
- person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f53, -1
- person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9f56, -1
- person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f59, -1
- person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9f5c, -1
- person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a9f5f, -1
- person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x1a9f62, -1
+ person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonCityTeacher1Script, -1
+ person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, CeladonCityGramps1Script, -1
+ person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonCityGramps2Script, -1
+ person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonCityYoungster1Script, -1
+ person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonCityYoungster2Script, -1
+ person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonCityTeacher2Script, -1
+ person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonCityLassScript, -1
diff --git a/maps/CeladonDeptStore1F.asm b/maps/CeladonDeptStore1F.asm
index 60fc6064f..d8d1a1411 100644
--- a/maps/CeladonDeptStore1F.asm
+++ b/maps/CeladonDeptStore1F.asm
@@ -10,14 +10,14 @@ CeladonDeptStore1F_MapScriptHeader:
.MapCallbacks:
db 0
-ReceptionistScript_0x709e0:
- jumptextfaceplayer UnknownText_0x709ef
+CeladonDeptStore1FReceptionistScript:
+ jumptextfaceplayer CeladonDeptStore1FReceptionistText
-GentlemanScript_0x709e3:
- jumptextfaceplayer UnknownText_0x70a35
+CeladonDeptStore1FGentlemanScript:
+ jumptextfaceplayer CeladonDeptStore1FGentlemanText
-TeacherScript_0x709e6:
- jumptextfaceplayer UnknownText_0x70aa9
+CeladonDeptStore1FTeacherScript:
+ jumptextfaceplayer CeladonDeptStore1FTeacherText
CeladonDeptStore1FDirectory:
jumptext CeladonDeptStore1FDirectoryText
@@ -25,7 +25,7 @@ CeladonDeptStore1FDirectory:
CeladonDeptStore1FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x709ef:
+CeladonDeptStore1FReceptionistText:
text "Hello! Welcome to"
line "CELADON DEPT."
cont "STORE!"
@@ -34,7 +34,7 @@ UnknownText_0x709ef:
line "on the wall."
done
-UnknownText_0x70a35:
+CeladonDeptStore1FGentlemanText:
text "This DEPT.STORE is"
line "part of the same"
@@ -46,7 +46,7 @@ UnknownText_0x70a35:
cont "same time."
done
-UnknownText_0x70aa9:
+CeladonDeptStore1FTeacherText:
text "This is my first"
line "time here."
@@ -94,6 +94,6 @@ CeladonDeptStore1F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x709e0, -1
- person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x709e3, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x709e6, -1
+ person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore1FReceptionistScript, -1
+ person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonDeptStore1FGentlemanScript, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore1FTeacherScript, -1
diff --git a/maps/CeladonDeptStore2F.asm b/maps/CeladonDeptStore2F.asm
index f77747aea..c056a7143 100644
--- a/maps/CeladonDeptStore2F.asm
+++ b/maps/CeladonDeptStore2F.asm
@@ -25,11 +25,11 @@ ClerkScript_0x70bb5:
closetext
end
-PokefanMScript_0x70bbd:
- jumptextfaceplayer UnknownText_0x70bc9
+CeladonDeptStore2FPokefanMScript:
+ jumptextfaceplayer CeladonDeptStore2FPokefanMText
-YoungsterScript_0x70bc0:
- jumptextfaceplayer UnknownText_0x70c3e
+CeladonDeptStore2FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore2FYoungsterText
CeladonDeptStore2FDirectory:
jumptext CeladonDeptStore2FDirectoryText
@@ -37,7 +37,7 @@ CeladonDeptStore2FDirectory:
CeladonDeptStore2FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x70bc9:
+CeladonDeptStore2FPokefanMText:
text "I just recently"
line "became a trainer."
@@ -49,7 +49,7 @@ UnknownText_0x70bc9:
cont "convenient items."
done
-UnknownText_0x70c3e:
+CeladonDeptStore2FYoungsterText:
text "My dad's having a"
line "hard time learning"
@@ -90,5 +90,5 @@ CeladonDeptStore2F_MapEventHeader:
db 4
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bad, -1
person_event SPRITE_CLERK, 5, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70bb5, -1
- person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x70bbd, -1
- person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70bc0, -1
+ person_event SPRITE_POKEFAN_M, 2, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore2FPokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 2, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore2FYoungsterScript, -1
diff --git a/maps/CeladonDeptStore3F.asm b/maps/CeladonDeptStore3F.asm
index a4ff77955..72f4f26ea 100644
--- a/maps/CeladonDeptStore3F.asm
+++ b/maps/CeladonDeptStore3F.asm
@@ -19,29 +19,29 @@ ClerkScript_0x70d29:
closetext
end
-YoungsterScript_0x70d31:
- jumptextfaceplayer UnknownText_0x70d53
+CeladonDeptStore3FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore3FYoungsterText
-GameboyKidScript_0x70d34:
+CeladonDeptStore3FGameboyKid1Script:
faceplayer
opentext
- writetext UnknownText_0x70d86
+ writetext CeladonDeptStore3FGameboyKid1Text
waitbutton
closetext
spriteface CELADONDEPTSTORE3F_GAMEBOY_KID1, DOWN
end
-GameboyKidScript_0x70d3f:
+CeladonDeptStore3FGameboyKid2Script:
faceplayer
opentext
- writetext UnknownText_0x70dc7
+ writetext CeladonDeptStore3FGameboyKid2Text
waitbutton
closetext
spriteface CELADONDEPTSTORE3F_GAMEBOY_KID2, DOWN
end
-SuperNerdScript_0x70d4a:
- jumptextfaceplayer UnknownText_0x70e61
+CeladonDeptStore3FSuperNerdScript:
+ jumptextfaceplayer CeladonDeptStore3FSuperNerdText
CeladonDeptStore3FElevatorButton:
jumpstd elevatorbutton
@@ -49,7 +49,7 @@ CeladonDeptStore3FElevatorButton:
CeladonDeptStore3FDirectory:
jumptext CeladonDeptStore3FDirectoryText
-UnknownText_0x70d53:
+CeladonDeptStore3FYoungsterText:
text "I can't decide"
line "which #MON I"
@@ -57,7 +57,7 @@ UnknownText_0x70d53:
line "on…"
done
-UnknownText_0x70d86:
+CeladonDeptStore3FGameboyKid1Text:
text "Uh-oh! I traded my"
line "#MON without"
@@ -65,7 +65,7 @@ UnknownText_0x70d86:
line "GRADE from it."
done
-UnknownText_0x70dc7:
+CeladonDeptStore3FGameboyKid2Text:
text "Yeah! I'm finally"
line "getting a PORYGON!"
@@ -82,7 +82,7 @@ UnknownText_0x70dc7:
cont "ferent #MON!"
done
-UnknownText_0x70e61:
+CeladonDeptStore3FSuperNerdText:
text "The TM SHOP sells"
line "some rare moves."
done
@@ -115,7 +115,7 @@ CeladonDeptStore3F_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_CLERK, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70d29, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70d31, -1
- person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d34, -1
- person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x70d3f, -1
- person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70d4a, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FYoungsterScript, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FGameboyKid1Script, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FGameboyKid2Script, -1
+ person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore3FSuperNerdScript, -1
diff --git a/maps/CeladonDeptStore4F.asm b/maps/CeladonDeptStore4F.asm
index 7acaa69db..a31c98015 100644
--- a/maps/CeladonDeptStore4F.asm
+++ b/maps/CeladonDeptStore4F.asm
@@ -17,11 +17,11 @@ ClerkScript_0x70f0d:
closetext
end
-SuperNerdScript_0x70f15:
- jumptextfaceplayer UnknownText_0x70f21
+CeladonDeptStore4FSuperNerdScript:
+ jumptextfaceplayer CeladonDeptStore4FSuperNerdText
-YoungsterScript_0x70f18:
- jumptextfaceplayer UnknownText_0x70f55
+CeladonDeptStore4FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore4FYoungsterText
CeladonDeptStore4FDirectory:
jumptext CeladonDeptStore4FDirectoryText
@@ -29,13 +29,13 @@ CeladonDeptStore4FDirectory:
CeladonDeptStore4FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x70f21:
+CeladonDeptStore4FSuperNerdText:
text "I'm here to buy"
line "SURF MAIL to send"
cont "to my girlfriend."
done
-UnknownText_0x70f55:
+CeladonDeptStore4FYoungsterText:
text "This is the only"
line "place where you"
@@ -71,5 +71,5 @@ CeladonDeptStore4F_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x70f0d, -1
- person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x70f15, -1
- person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x70f18, -1
+ person_event SPRITE_SUPER_NERD, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore4FSuperNerdScript, -1
+ person_event SPRITE_YOUNGSTER, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonDeptStore4FYoungsterScript, -1
diff --git a/maps/CeladonDeptStore5F.asm b/maps/CeladonDeptStore5F.asm
index 6ee0fce13..d111c0c2c 100644
--- a/maps/CeladonDeptStore5F.asm
+++ b/maps/CeladonDeptStore5F.asm
@@ -26,14 +26,14 @@ ClerkScript_0x7100c:
closetext
end
-GentlemanScript_0x71014:
- jumptextfaceplayer UnknownText_0x71023
+CeladonDeptStore5FGentlemanScript:
+ jumptextfaceplayer CeladonDeptStore5FGentlemanText
-SailorScript_0x71017:
- jumptextfaceplayer UnknownText_0x71072
+CeladonDeptStore5FSailorScript:
+ jumptextfaceplayer CeladonDeptStore5FSailorText
-TeacherScript_0x7101a:
- jumptextfaceplayer UnknownText_0x710b6
+CeladonDeptStore5FTeacherScript:
+ jumptextfaceplayer CeladonDeptStore5FTeacherText
CeladonDeptStore5FDirectory:
jumptext CeladonDeptStore5FDirectoryText
@@ -41,7 +41,7 @@ CeladonDeptStore5FDirectory:
CeladonDeptStore5FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x71023:
+CeladonDeptStore5FGentlemanText:
text "I want to buy some"
line "items that raise"
@@ -50,7 +50,7 @@ UnknownText_0x71023:
cont "enough money…"
done
-UnknownText_0x71072:
+CeladonDeptStore5FSailorText:
text "I want PP UP, so I"
line "can raise the PP"
@@ -58,7 +58,7 @@ UnknownText_0x71072:
line "can't buy it…"
done
-UnknownText_0x710b6:
+CeladonDeptStore5FTeacherText:
text "Using items on"
line "them makes #-"
cont "MON happy."
@@ -93,6 +93,6 @@ CeladonDeptStore5F_MapEventHeader:
db 5
person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x71004, -1
person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7100c, -1
- person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71014, -1
- person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x71017, -1
- person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7101a, -1
+ person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore5FGentlemanScript, -1
+ person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonDeptStore5FSailorScript, -1
+ person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonDeptStore5FTeacherScript, -1
diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm
index a25b5e591..88f6b756e 100644
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -14,13 +14,13 @@ CeladonDeptStore6F_MapScriptHeader:
changeblock $c, $0, $3
return
-SuperNerdScript_0x7117a:
- jumptextfaceplayer UnknownText_0x712c7
+CeladonDeptStore6FSuperNerdScript:
+ jumptextfaceplayer CeladonDeptStore6FSuperNerdText
-YoungsterScript_0x7117d:
- jumptextfaceplayer UnknownText_0x71310
+CeladonDeptStore6FYoungsterScript:
+ jumptextfaceplayer CeladonDeptStore6FYoungsterText
-CeladonVendingMachine:
+CeladonDeptStore6FVendingMachine:
opentext
writetext CeladonVendingText
.Start:
@@ -98,7 +98,8 @@ CeladonVendingMachine:
CeladonDeptStore6FDirectory:
jumptext CeladonDeptStore6FDirectoryText
-UnknownScript_0x7124d:
+; unused
+CeladonDeptStore6FElevatorButton:
jumpstd elevatorbutton
CeladonVendingText:
@@ -125,7 +126,7 @@ CeladonVendingNoSpaceText:
line "room for stuff…"
done
-UnknownText_0x712c7:
+CeladonDeptStore6FSuperNerdText:
text "A vending machine"
line "with a prize rou-"
cont "lette…"
@@ -134,7 +135,7 @@ UnknownText_0x712c7:
line "those anymore."
done
-UnknownText_0x71310:
+CeladonDeptStore6FYoungsterText:
text "Aww! There's no"
line "games here!"
@@ -162,12 +163,12 @@ CeladonDeptStore6F_MapEventHeader:
db 6
signpost 0, 14, SIGNPOST_READ, CeladonDeptStore6FDirectory
signpost 0, 3, SIGNPOST_READ, CeladonDeptStore1FElevatorButton
- signpost 1, 8, SIGNPOST_UP, CeladonVendingMachine
- signpost 1, 9, SIGNPOST_UP, CeladonVendingMachine
- signpost 1, 10, SIGNPOST_UP, CeladonVendingMachine
- signpost 1, 11, SIGNPOST_UP, CeladonVendingMachine
+ signpost 1, 8, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
+ signpost 1, 9, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
+ signpost 1, 10, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
+ signpost 1, 11, SIGNPOST_UP, CeladonDeptStore6FVendingMachine
.PersonEvents:
db 2
- person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7117a, -1
- person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7117d, -1
+ person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeladonDeptStore6FSuperNerdScript, -1
+ person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonDeptStore6FYoungsterScript, -1
diff --git a/maps/CeladonDeptStoreElevator.asm b/maps/CeladonDeptStoreElevator.asm
index 2f3be1a3d..5af977699 100644
--- a/maps/CeladonDeptStoreElevator.asm
+++ b/maps/CeladonDeptStoreElevator.asm
@@ -5,20 +5,19 @@ CeladonDeptStoreElevator_MapScriptHeader:
.MapCallbacks:
db 0
-MapCeladonDeptStoreElevatorSignpost0Script:
+CeladonDeptStoreElevatorScript:
opentext
- elevator Elevator_0x713be
+ elevator CeladonDeptStoreElevatorData
closetext
- iffalse UnknownScript_0x713bd
+ iffalse .Done
pause 5
playsound SFX_ELEVATOR
earthquake 60
waitsfx
-UnknownScript_0x713bd:
+.Done:
end
-
-Elevator_0x713be:
+CeladonDeptStoreElevatorData:
db 6 ; floors
elevfloor FLOOR_1F, 4, CELADON_DEPT_STORE_1F
elevfloor FLOOR_2F, 3, CELADON_DEPT_STORE_2F
@@ -28,22 +27,21 @@ Elevator_0x713be:
elevfloor FLOOR_6F, 2, CELADON_DEPT_STORE_6F
db $ff ; end
-
CeladonDeptStoreElevator_MapEventHeader:
; filler
db 0, 0
.Warps:
db 2
- warp_def $3, $1, 255, CELADON_DEPT_STORE_1F
- warp_def $3, $2, 255, CELADON_DEPT_STORE_1F
+ warp_def $3, $1, -1, CELADON_DEPT_STORE_1F
+ warp_def $3, $2, -1, CELADON_DEPT_STORE_1F
.XYTriggers:
db 0
.Signposts:
db 1
- signpost 0, 3, SIGNPOST_READ, MapCeladonDeptStoreElevatorSignpost0Script
+ signpost 0, 3, SIGNPOST_READ, CeladonDeptStoreElevatorScript
.PersonEvents:
db 0
diff --git a/maps/CeladonGameCorner.asm b/maps/CeladonGameCorner.asm
index bd9b9b713..78e7c9e56 100644
--- a/maps/CeladonGameCorner.asm
+++ b/maps/CeladonGameCorner.asm
@@ -16,77 +16,77 @@ CeladonGameCorner_MapScriptHeader:
.MapCallbacks:
db 0
-ClerkScript_0x7211d:
+CeladonGameCornerClerkScript:
jumpstd gamecornercoinvendor
-ReceptionistScript_0x72120:
- jumptextfaceplayer UnknownText_0x721d0
+CeladonGameCornerReceptionistScript:
+ jumptextfaceplayer CeladonGameCornerReceptionistText
-PokefanMScript_0x72123:
+CeladonGameCornerPokefanMScript:
faceplayer
opentext
- writetext UnknownText_0x72215
+ writetext CeladonGameCornerPokefanMText
waitbutton
closetext
spriteface CELADONGAMECORNER_POKEFAN_M, LEFT
end
-TeacherScript_0x7212e:
+CeladonGameCornerTeacherScript:
faceplayer
opentext
- writetext UnknownText_0x72242
+ writetext CeladonGameCornerTeacherText
waitbutton
closetext
spriteface CELADONGAMECORNER_TEACHER, RIGHT
end
-FishingGuruScript_0x72139:
+CeladonGameCornerFishingGuruScript:
faceplayer
opentext
- writetext UnknownText_0x72295
+ writetext CeladonGameCornerFishingGuruText
waitbutton
closetext
spriteface CELADONGAMECORNER_FISHING_GURU, RIGHT
end
-FisherScript_0x72144:
+CeladonGameCornerFisherScript:
faceplayer
opentext
checkevent EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
- iftrue .UnknownScript_0x72169
- writetext UnknownText_0x722dc
+ iftrue .GotCoins
+ writetext CeladonGameCornerFisherText1
buttonsound
checkitem COIN_CASE
- iffalse UnknownScript_0x7217b
+ iffalse .NoCoinCase
checkcoins 9998
- if_equal $0, UnknownScript_0x72184
+ if_equal $0, .FullCoinCase
stringtotext .coinname, $1
- scall .UnknownScript_0x72172
+ scall .GiveCoins
givecoins 18
setevent EVENT_GOT_COINS_FROM_GAMBLER_AT_CELADON
-.UnknownScript_0x72169:
- writetext UnknownText_0x72345
+.GotCoins:
+ writetext CeladonGameCornerFisherText2
waitbutton
closetext
spriteface LAST_TALKED, LEFT
end
-.UnknownScript_0x72172:
+.GiveCoins:
jumpstd receiveitem
end
.coinname
db "COIN@"
-UnknownScript_0x7217b:
- writetext UnknownText_0x7238a
+.NoCoinCase:
+ writetext CeladonGameCornerFisherNoCoinCaseText
waitbutton
closetext
spriteface LAST_TALKED, LEFT
end
-UnknownScript_0x72184:
- writetext UnknownText_0x723d9
+.FullCoinCase:
+ writetext CeladonGameCornerFisherFullCoinCaseText
waitbutton
closetext
spriteface LAST_TALKED, LEFT
@@ -95,45 +95,45 @@ UnknownScript_0x72184:
CeladonGymGuyScript:
jumptextfaceplayer CeladonGymGuyText
-GrampsScript_0x72190:
+CeladonGameCornerGrampsScript:
faceplayer
opentext
- writetext UnknownText_0x724ad
+ writetext CeladonGameCornerGrampsText
waitbutton
closetext
spriteface CELADONGAMECORNER_GRAMPS, LEFT
end
-MapCeladonGameCornerSignpost36Script:
- jumptext UnknownText_0x724f3
+CeladonGameCornerPoster1Script:
+ jumptext CeladonGameCornerPoster1Text
-MapCeladonGameCornerSignpost37Script:
- jumptext UnknownText_0x72521
+CeladonGameCornerPoster2Script:
+ jumptext CeladonGameCornerPoster2Text
-MapCeladonGameCornerSignpost35Script:
+CeladonGameCornerLuckySlotMachineScript:
random $6
- if_equal $0, MapCeladonGameCornerSignpost16Script
+ if_equal $0, CeladonGameCornerSlotMachineScript
refreshscreen $0
writebyte $0
special Special_SlotMachine
closetext
end
-MapCeladonGameCornerSignpost16Script:
+CeladonGameCornerSlotMachineScript:
refreshscreen $0
writebyte $1
special Special_SlotMachine
closetext
end
-MapCeladonGameCornerSignpost11Script:
+CeladonGameCornerCardFlipScript:
refreshscreen $0
special Special_CardFlip
closetext
end
-MapCeladonGameCornerSignpost32Script:
- jumptext UnknownText_0x7254f
+CeladonGameCornerLighterScript:
+ jumptext CeladonGameCornerLighterText
MapCeladonGameCornerSignpost9Script:
opentext
@@ -149,7 +149,7 @@ MovementData_0x721cd:
turn_head LEFT
step_end
-UnknownText_0x721d0:
+CeladonGameCornerReceptionistText:
text "Welcome!"
para "You may exchange"
@@ -159,13 +159,13 @@ UnknownText_0x721d0:
line "next door."
done
-UnknownText_0x72215:
+CeladonGameCornerPokefanMText:
text "The slot machines"
line "are all state of"
cont "the art."
done
-UnknownText_0x72242:
+CeladonGameCornerTeacherText:
text "It's this machine"
line "I want."
@@ -176,7 +176,7 @@ UnknownText_0x72242:
line "today."
done
-UnknownText_0x72295:
+CeladonGameCornerFishingGuruText:
text "I think this slot"
line "machine will pay"
cont "out…"
@@ -185,7 +185,7 @@ UnknownText_0x72295:
line "among machines."
done
-UnknownText_0x722dc:
+CeladonGameCornerFisherText1:
text "Gahahaha!"
para "The coins just"
@@ -198,7 +198,7 @@ UnknownText_0x722dc:
line "with you!"
done
-UnknownText_0x72345:
+CeladonGameCornerFisherText2:
text "Gahahaha!"
para "It makes me feel"
@@ -208,7 +208,7 @@ UnknownText_0x72345:
line "people!"
done
-UnknownText_0x7238a:
+CeladonGameCornerFisherNoCoinCaseText:
text "Hey, you don't"
line "have a COIN CASE."
@@ -217,7 +217,7 @@ UnknownText_0x7238a:
cont "coins, kid?"
done
-UnknownText_0x723d9:
+CeladonGameCornerFisherFullCoinCaseText:
text "Hey, your COIN"
line "CASE is full, kid."
@@ -241,7 +241,7 @@ CeladonGymGuyText:
line "enough coins yet…"
done
-UnknownText_0x724ad:
+CeladonGameCornerGrampsText:
text "Hmmm… The odds are"
line "surely better for"
@@ -249,7 +249,7 @@ UnknownText_0x724ad:
line "but… What to do?"
done
-UnknownText_0x724f3:
+CeladonGameCornerPoster1Text:
text "Hey!"
para "Underneath this"
@@ -258,7 +258,7 @@ UnknownText_0x724f3:
para "There's nothing!"
done
-UnknownText_0x72521:
+CeladonGameCornerPoster2Text:
text "Hey!"
para "Underneath this"
@@ -267,7 +267,7 @@ UnknownText_0x72521:
para "There's nothing!"
done
-UnknownText_0x7254f:
+CeladonGameCornerLighterText:
text "There's a lighter"
line "here."
done
@@ -295,53 +295,53 @@ CeladonGameCorner_MapEventHeader:
.Signposts:
db 38
- signpost 6, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 7, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 8, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 9, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 10, 1, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 11, 1, SIGNPOST_LEFT, MapCeladonGameCornerSignpost11Script
- signpost 6, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 7, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 8, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
+ signpost 6, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 7, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 8, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 9, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 10, 1, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 11, 1, SIGNPOST_LEFT, CeladonGameCornerCardFlipScript
+ signpost 6, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 7, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 8, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
signpost 9, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost9Script
- signpost 10, 6, SIGNPOST_READ, MapCeladonGameCornerSignpost11Script
- signpost 11, 6, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost11Script
- signpost 6, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 9, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 7, SIGNPOST_READ, MapCeladonGameCornerSignpost16Script
- signpost 11, 7, SIGNPOST_LEFT, MapCeladonGameCornerSignpost35Script
- signpost 6, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 9, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 12, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 11, 12, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost35Script
- signpost 6, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 9, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 13, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 11, 13, SIGNPOST_LEFT, MapCeladonGameCornerSignpost35Script
- signpost 6, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 7, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 8, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost32Script
- signpost 9, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 10, 18, SIGNPOST_READ, MapCeladonGameCornerSignpost35Script
- signpost 11, 18, SIGNPOST_RIGHT, MapCeladonGameCornerSignpost35Script
- signpost 0, 15, SIGNPOST_READ, MapCeladonGameCornerSignpost36Script
- signpost 0, 9, SIGNPOST_READ, MapCeladonGameCornerSignpost37Script
+ signpost 10, 6, SIGNPOST_READ, CeladonGameCornerCardFlipScript
+ signpost 11, 6, SIGNPOST_RIGHT, CeladonGameCornerCardFlipScript
+ signpost 6, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 9, 7, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 7, SIGNPOST_READ, CeladonGameCornerSlotMachineScript
+ signpost 11, 7, SIGNPOST_LEFT, CeladonGameCornerLuckySlotMachineScript
+ signpost 6, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 9, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 12, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 11, 12, SIGNPOST_RIGHT, CeladonGameCornerLuckySlotMachineScript
+ signpost 6, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 9, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 13, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 11, 13, SIGNPOST_LEFT, CeladonGameCornerLuckySlotMachineScript
+ signpost 6, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 7, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 8, 18, SIGNPOST_READ, CeladonGameCornerLighterScript
+ signpost 9, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 10, 18, SIGNPOST_READ, CeladonGameCornerLuckySlotMachineScript
+ signpost 11, 18, SIGNPOST_RIGHT, CeladonGameCornerLuckySlotMachineScript
+ signpost 0, 15, SIGNPOST_READ, CeladonGameCornerPoster1Script
+ signpost 0, 9, SIGNPOST_READ, CeladonGameCornerPoster2Script
.PersonEvents:
db 9
- person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7211d, -1
- person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x72120, -1
- person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x72123, -1
- person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7212e, -1
- person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x72139, -1
- person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1
- person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x72144, -1
+ person_event SPRITE_CLERK, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerClerkScript, -1
+ person_event SPRITE_RECEPTIONIST, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerReceptionistScript, -1
+ person_event SPRITE_POKEFAN_M, 10, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGameCornerPokefanMScript, -1
+ person_event SPRITE_TEACHER, 7, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonGameCornerTeacherScript, -1
+ person_event SPRITE_FISHING_GURU, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerFishingGuruScript, -1
+ person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, DAY, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGameCornerFisherScript, -1
+ person_event SPRITE_FISHER, 10, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, NITE, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGameCornerFisherScript, -1
person_event SPRITE_GYM_GUY, 3, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonGymGuyScript, -1
- person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x72190, -1
+ person_event SPRITE_GRAMPS, 8, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonGameCornerGrampsScript, -1
diff --git a/maps/CeladonGym.asm b/maps/CeladonGym.asm
index 67b8a86fc..88fe6d8e0 100644
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -50,9 +50,9 @@ UnknownScript_0x72aae:
end
TrainerLassMichelle:
- trainer EVENT_BEAT_LASS_MICHELLE, LASS, MICHELLE, LassMichelleSeenText, LassMichelleBeatenText, 0, LassMichelleScript
+ trainer EVENT_BEAT_LASS_MICHELLE, LASS, MICHELLE, LassMichelleSeenText, LassMichelleBeatenText, 0, .Script
-LassMichelleScript:
+.Script:
end_if_just_battled
opentext
writetext LassMichelleAfterBattleText
@@ -61,9 +61,9 @@ LassMichelleScript:
end
TrainerPicnickerTanya:
- trainer EVENT_BEAT_PICNICKER_TANYA, PICNICKER, TANYA, PicnickerTanyaSeenText, PicnickerTanyaBeatenText, 0, PicnickerTanyaScript
+ trainer EVENT_BEAT_PICNICKER_TANYA, PICNICKER, TANYA, PicnickerTanyaSeenText, PicnickerTanyaBeatenText, 0, .Script
-PicnickerTanyaScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerTanyaAfterBattleText
@@ -72,9 +72,9 @@ PicnickerTanyaScript:
end
TrainerBeautyJulia:
- trainer EVENT_BEAT_BEAUTY_JULIA, BEAUTY, JULIA, BeautyJuliaSeenText, BeautyJuliaBeatenText, 0, BeautyJuliaScript
+ trainer EVENT_BEAT_BEAUTY_JULIA, BEAUTY, JULIA, BeautyJuliaSeenText, BeautyJuliaBeatenText, 0, .Script
-BeautyJuliaScript:
+.Script:
end_if_just_battled
opentext
writetext BeautyJuliaAfterBattleText
@@ -83,9 +83,9 @@ BeautyJuliaScript:
end
TrainerTwinsJoandzoe1:
- trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE1, TwinsJoandzoe1SeenText, TwinsJoandzoe1BeatenText, 0, TwinsJoandzoe1Script
+ trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE1, TwinsJoandzoe1SeenText, TwinsJoandzoe1BeatenText, 0, .Script
-TwinsJoandzoe1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsJoandzoe1AfterBattleText
@@ -94,9 +94,9 @@ TwinsJoandzoe1Script:
end
TrainerTwinsJoandzoe2:
- trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE2, TwinsJoandzoe2SeenText, TwinsJoandzoe2BeatenText, 0, TwinsJoandzoe2Script
+ trainer EVENT_BEAT_TWINS_JO_AND_ZOE, TWINS, JOANDZOE2, TwinsJoandzoe2SeenText, TwinsJoandzoe2BeatenText, 0, .Script
-TwinsJoandzoe2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsJoandzoe2AfterBattleText
diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm
index 95ede4ab7..60e636cae 100644
--- a/maps/CeladonMansion3F.asm
+++ b/maps/CeladonMansion3F.asm
@@ -65,11 +65,11 @@ UnknownScript_0x716b6:
closetext
end
-SuperNerdScript_0x716bc:
- jumptextfaceplayer UnknownText_0x71895
+CeladonMansion3FSuperNerdScript:
+ jumptextfaceplayer CeladonMansion3FSuperNerdText
-FisherScript_0x716bf:
- jumptextfaceplayer UnknownText_0x718ca
+CeladonMansion3FFisherScript:
+ jumptextfaceplayer CeladonMansion3FFisherText
MapCeladonMansion3FSignpost0Script:
jumptext UnknownText_0x7190b
@@ -145,7 +145,7 @@ UnknownText_0x71863:
cont "cel printing."
done
-UnknownText_0x71895:
+CeladonMansion3FSuperNerdText:
text "Who, me? I'm the"
line "PROGRAMMER."
@@ -153,7 +153,7 @@ UnknownText_0x71895:
line "machines!"
done
-UnknownText_0x718ca:
+CeladonMansion3FFisherText:
text "Aren't the TWINS"
line "adorable?"
@@ -214,5 +214,5 @@ CeladonMansion3F_MapEventHeader:
db 4
person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x71670, -1
person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x71696, -1
- person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x716bc, -1
- person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x716bf, -1
+ person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonMansion3FSuperNerdScript, -1
+ person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonMansion3FFisherScript, -1
diff --git a/maps/CeladonMansionRoof.asm b/maps/CeladonMansionRoof.asm
index 07ac72267..8857e93c9 100644
--- a/maps/CeladonMansionRoof.asm
+++ b/maps/CeladonMansionRoof.asm
@@ -8,13 +8,13 @@ CeladonMansionRoof_MapScriptHeader:
.MapCallbacks:
db 0
-FisherScript_0x71a39:
- jumptextfaceplayer UnknownText_0x71a3f
+CeladonMansionRoofFisherScript:
+ jumptextfaceplayer CeladonMansionRoofFisherText
MapCeladonMansionRoofSignpost0Script:
jumptext UnknownText_0x71aa1
-UnknownText_0x71a3f:
+CeladonMansionRoofFisherText:
text "High places--I do"
line "love them so!"
@@ -52,4 +52,4 @@ CeladonMansionRoof_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x71a39, -1
+ person_event SPRITE_FISHER, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonMansionRoofFisherScript, -1
diff --git a/maps/CeladonPokecenter1F.asm b/maps/CeladonPokecenter1F.asm
index 03912f623..086de9a86 100644
--- a/maps/CeladonPokecenter1F.asm
+++ b/maps/CeladonPokecenter1F.asm
@@ -18,11 +18,11 @@ NurseScript_0x71e22:
GentlemanScript_0x71e25:
jumpstd happinesschecknpc
-CooltrainerFScript_0x71e28:
- jumptextfaceplayer UnknownText_0x71e70
+CeladonPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer CeladonPokecenter1FCooltrainerFText
-PharmacistScript_0x71e2b:
- jumptextfaceplayer UnknownText_0x71ec1
+CeladonPokecenter1FPharmacistScript:
+ jumptextfaceplayer CeladonPokecenter1FPharmacistText
CeladonEusine:
faceplayer
@@ -72,7 +72,7 @@ CeladonEusine:
step DOWN
step_end
-UnknownText_0x71e70:
+CeladonPokecenter1FCooltrainerFText:
text "ERIKA is a master"
line "of grass #MON."
@@ -81,7 +81,7 @@ UnknownText_0x71e70:
cont "watch yourself."
done
-UnknownText_0x71ec1:
+CeladonPokecenter1FPharmacistText:
text "TEAM ROCKET's"
line "hideout is in the"
@@ -165,6 +165,6 @@ CeladonPokecenter1F_MapEventHeader:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x71e22, -1
person_event SPRITE_GENTLEMAN, 5, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x71e25, -1
- person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x71e2b, -1
- person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x71e28, -1
+ person_event SPRITE_PHARMACIST, 3, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeladonPokecenter1FPharmacistScript, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeladonPokecenter1FCooltrainerFScript, -1
person_event SPRITE_SUPER_NERD, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeladonEusine, EVENT_SET_WHEN_FOUGHT_HO_OH
diff --git a/maps/CeruleanCity.asm b/maps/CeruleanCity.asm
index 9c781cb43..55b3ff6d7 100644
--- a/maps/CeruleanCity.asm
+++ b/maps/CeruleanCity.asm
@@ -18,24 +18,24 @@ CeruleanCity_MapScriptHeader:
setflag ENGINE_FLYPOINT_CERULEAN
return
-CooltrainerMScript_0x184009:
+CeruleanCityCooltrainerMScript:
faceplayer
opentext
checkevent EVENT_RETURNED_MACHINE_PART
- iftrue UnknownScript_0x184017
- writetext UnknownText_0x1840bc
+ iftrue .ReturnedMachinePart
+ writetext CeruleanCityCooltrainerMText1
waitbutton
closetext
end
-UnknownScript_0x184017:
- writetext UnknownText_0x184144
+.ReturnedMachinePart:
+ writetext CeruleanCityCooltrainerMText2
waitbutton
closetext
end
-SuperNerdScript_0x18401d:
- jumptextfaceplayer UnknownText_0x1841a8
+CeruleanCitySuperNerdScript:
+ jumptextfaceplayer CeruleanCitySuperNerdText
CeruleanCitySlowbro:
opentext
@@ -45,15 +45,15 @@ CeruleanCitySlowbro:
closetext
end
-CooltrainerFScript_0x18402a:
+CeruleanCityCooltrainerFScript:
faceplayer
opentext
- writetext UnknownText_0x1841fa
+ writetext CeruleanCityCooltrainerFText1
waitbutton
closetext
spriteface CERULEANCITY_COOLTRAINER_F, LEFT
opentext
- writetext UnknownText_0x184229
+ writetext CeruleanCityCooltrainerFText2
waitbutton
closetext
opentext
@@ -62,41 +62,41 @@ CooltrainerFScript_0x18402a:
waitbutton
closetext
opentext
- writetext UnknownText_0x18424b
+ writetext CeruleanCityCooltrainerFText3
waitbutton
closetext
end
-FisherScript_0x18404a:
+CeruleanCityFisherScript:
faceplayer
opentext
checkevent EVENT_RETURNED_MACHINE_PART
- iftrue UnknownScript_0x184058
+ iftrue .ReturnedMachinePart
checkevent EVENT_MET_ROCKET_GRUNT_AT_CERULEAN_GYM
- iftrue UnknownScript_0x18405e
-UnknownScript_0x184058:
- writetext UnknownText_0x18424e
+ iftrue .MetCeruleanRocket
+.ReturnedMachinePart:
+ writetext CeruleanCityFisherText
waitbutton
closetext
end
-UnknownScript_0x18405e:
- writetext UnknownText_0x184275
+.MetCeruleanRocket:
+ writetext CeruleanCityFisherRocketTipText
waitbutton
closetext
end
-YoungsterScript_0x184064:
+CeruleanCityYoungsterScript:
faceplayer
opentext
- writetext UnknownText_0x1842a9
+ writetext CeruleanCityYoungsterText1
waitbutton
closetext
checkevent EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY
- iffalse UnknownScript_0x184072
+ iffalse .BerserkGenePingsItemfinder
end
-UnknownScript_0x184072:
+.BerserkGenePingsItemfinder:
waitsfx
playsound SFX_SECOND_PART_OF_ITEMFINDER
waitsfx
@@ -117,7 +117,7 @@ UnknownScript_0x184072:
showemote EMOTE_SHOCK, CERULEANCITY_YOUNGSTER, 15
spriteface CERULEANCITY_YOUNGSTER, LEFT
opentext
- writetext UnknownText_0x1842ee
+ writetext CeruleanCityYoungsterText2
waitbutton
closetext
end
@@ -149,7 +149,7 @@ CeruleanCityMartSign:
CeruleanCityHiddenBerserkGene:
dwb EVENT_FOUND_BERSERK_GENE_IN_CERULEAN_CITY, BERSERK_GENE
-UnknownText_0x1840bc:
+CeruleanCityCooltrainerMText1:
text "KANTO's POWER"
line "PLANT?"
@@ -164,7 +164,7 @@ UnknownText_0x1840bc:
cont "some sort there."
done
-UnknownText_0x184144:
+CeruleanCityCooltrainerMText2:
text "You're collecting"
line "every single kind"
cont "of #MON?"
@@ -174,7 +174,7 @@ UnknownText_0x184144:
cont "it sounds fun too."
done
-UnknownText_0x1841a8:
+CeruleanCitySuperNerdText:
text "The CAPE in the"
line "north is a good"
@@ -186,34 +186,34 @@ CeruleanCitySlowbroText:
text "SLOWBRO: Yarah?"
done
-UnknownText_0x1841fa:
+CeruleanCityCooltrainerFText1:
text "My SLOWBRO and I"
line "make an awesome"
cont "combination!"
done
-UnknownText_0x184229:
+CeruleanCityCooltrainerFText2:
text "SLOWBRO, show me"
line "your CONFUSION!"
done
-UnknownText_0x18424b:
+CeruleanCityCooltrainerFText3:
text "…"
done
-UnknownText_0x18424e:
+CeruleanCityFisherText:
text "I'm a huge fan of"
line "CERULEAN GYM's"
cont "MISTY."
done
-UnknownText_0x184275:
+CeruleanCityFisherRocketTipText:
text "I saw this shady"
line "guy go off toward"
cont "CERULEAN's CAPE."
done
-UnknownText_0x1842a9:
+CeruleanCityYoungsterText1:
text "There used to be a"
line "cave here that had"
@@ -221,7 +221,7 @@ UnknownText_0x1842a9:
line "#MON in it."
done
-UnknownText_0x1842ee:
+CeruleanCityYoungsterText2:
text "Ayuh?"
para "My ITEMFINDER is"
@@ -305,9 +305,9 @@ CeruleanCity_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x184009, -1
- person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x18401d, -1
+ person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanCityCooltrainerMScript, -1
+ person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanCitySuperNerdScript, -1
person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeruleanCitySlowbro, -1
- person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18402a, -1
- person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18404a, -1
- person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x184064, -1
+ person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanCityCooltrainerFScript, -1
+ person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeruleanCityFisherScript, -1
+ person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CeruleanCityYoungsterScript, -1
diff --git a/maps/CeruleanGym.asm b/maps/CeruleanGym.asm
index 4ae52bfa6..e7f9e9a1f 100644
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -86,9 +86,9 @@ MistyScript_0x188432:
end
TrainerSwimmerfDiana:
- trainer EVENT_BEAT_SWIMMERF_DIANA, SWIMMERF, DIANA, SwimmerfDianaSeenText, SwimmerfDianaBeatenText, 0, SwimmerfDianaScript
+ trainer EVENT_BEAT_SWIMMERF_DIANA, SWIMMERF, DIANA, SwimmerfDianaSeenText, SwimmerfDianaBeatenText, 0, .Script
-SwimmerfDianaScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfDianaAfterBattleText
@@ -97,9 +97,9 @@ SwimmerfDianaScript:
end
TrainerSwimmerfBriana:
- trainer EVENT_BEAT_SWIMMERF_BRIANA, SWIMMERF, BRIANA, SwimmerfBrianaSeenText, SwimmerfBrianaBeatenText, 0, SwimmerfBrianaScript
+ trainer EVENT_BEAT_SWIMMERF_BRIANA, SWIMMERF, BRIANA, SwimmerfBrianaSeenText, SwimmerfBrianaBeatenText, 0, .Script
-SwimmerfBrianaScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfBrianaAfterBattleText
@@ -108,9 +108,9 @@ SwimmerfBrianaScript:
end
TrainerSwimmermParker:
- trainer EVENT_BEAT_SWIMMERM_PARKER, SWIMMERM, PARKER, SwimmermParkerSeenText, SwimmermParkerBeatenText, 0, SwimmermParkerScript
+ trainer EVENT_BEAT_SWIMMERM_PARKER, SWIMMERM, PARKER, SwimmermParkerSeenText, SwimmermParkerBeatenText, 0, .Script
-SwimmermParkerScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermParkerAfterBattleText
diff --git a/maps/CeruleanGymBadgeSpeechHouse.asm b/maps/CeruleanGymBadgeSpeechHouse.asm
index c6cdd60ac..2eae4d404 100644
--- a/maps/CeruleanGymBadgeSpeechHouse.asm
+++ b/maps/CeruleanGymBadgeSpeechHouse.asm
@@ -8,10 +8,10 @@ CeruleanGymBadgeSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanMScript_0x188002:
- jumptextfaceplayer UnknownText_0x188005
+CeruleanGymBadgeSpeechHousePokefanMScript:
+ jumptextfaceplayer CeruleanGymBadgeSpeechHousePokefanMText
-UnknownText_0x188005:
+CeruleanGymBadgeSpeechHousePokefanMText:
text "Are you collecting"
line "KANTO GYM BADGES?"
done
@@ -33,4 +33,4 @@ CeruleanGymBadgeSpeechHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x188002, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CeruleanGymBadgeSpeechHousePokefanMScript, -1
diff --git a/maps/CeruleanPokecenter1F.asm b/maps/CeruleanPokecenter1F.asm
index 7933c6386..75990c9c8 100644
--- a/maps/CeruleanPokecenter1F.asm
+++ b/maps/CeruleanPokecenter1F.asm
@@ -21,8 +21,8 @@ SuperNerdScript_0x188212:
.mobile
jumptextfaceplayer UnknownText_0x18828c
-GymGuyScript_0x18821e:
- jumptextfaceplayer UnknownText_0x1882ff
+CeruleanPokecenter1FGymGuyScript:
+ jumptextfaceplayer CeruleanPokecenter1FGymGuyText
UnknownText_0x188221:
text "For battles, I'd"
@@ -48,7 +48,7 @@ UnknownText_0x18828c:
cont "nerve wracking."
done
-UnknownText_0x1882ff:
+CeruleanPokecenter1FGymGuyText:
text "The MAGNET TRAIN"
line "travels at over"
@@ -82,4 +82,4 @@ CeruleanPokecenter1F_MapEventHeader:
db 3
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18820f, -1
person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x188212, -1
- person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18821e, -1
+ person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanPokecenter1FGymGuyScript, -1
diff --git a/maps/CeruleanPoliceStation.asm b/maps/CeruleanPoliceStation.asm
index 452f35444..219efdca5 100644
--- a/maps/CeruleanPoliceStation.asm
+++ b/maps/CeruleanPoliceStation.asm
@@ -10,11 +10,11 @@ CeruleanPoliceStation_MapScriptHeader:
.MapCallbacks:
db 0
-FishingGuruScript_0x18804a:
- jumptextfaceplayer UnknownText_0x18805a
+CeruleanPoliceStationFishingGuruScript:
+ jumptextfaceplayer CeruleanPoliceStationFishingGuruText
-PokefanFScript_0x18804d:
- jumptextfaceplayer UnknownText_0x1880c3
+CeruleanPoliceStationPokefanFScript:
+ jumptextfaceplayer CeruleanPoliceStationPokefanFText
CeruleanDiglett:
opentext
@@ -24,7 +24,7 @@ CeruleanDiglett:
closetext
end
-UnknownText_0x18805a:
+CeruleanPoliceStationFishingGuruText:
text "I heard that some"
line "shady character is"
cont "skulking about."
@@ -34,7 +34,7 @@ UnknownText_0x18805a:
cont "to be a thief."
done
-UnknownText_0x1880c3:
+CeruleanPoliceStationPokefanFText:
text "We were held up by"
line "robbers before."
done
@@ -60,6 +60,6 @@ CeruleanPoliceStation_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x18804a, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18804d, -1
+ person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanPoliceStationFishingGuruScript, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanPoliceStationPokefanFScript, -1
person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, CeruleanDiglett, -1
diff --git a/maps/CeruleanTradeSpeechHouse.asm b/maps/CeruleanTradeSpeechHouse.asm
index 13c4b86ca..617f443e5 100644
--- a/maps/CeruleanTradeSpeechHouse.asm
+++ b/maps/CeruleanTradeSpeechHouse.asm
@@ -11,11 +11,11 @@ CeruleanTradeSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-GrannyScript_0x188133:
- jumptextfaceplayer UnknownText_0x18814d
+CeruleanTradeSpeechHouseGrannyScript:
+ jumptextfaceplayer CeruleanTradeSpeechHouseGrannyText
-GrampsScript_0x188136:
- jumptextfaceplayer UnknownText_0x18818a
+CeruleanTradeSpeechHouseGrampsScript:
+ jumptextfaceplayer CeruleanTradeSpeechHouseGrampsText
RhydonScript_0x188139:
opentext
@@ -33,14 +33,14 @@ ZubatScript_0x188143:
closetext
end
-UnknownText_0x18814d:
+CeruleanTradeSpeechHouseGrannyText:
text "My husband lives"
line "happily with #-"
cont "MON he got through"
cont "trades."
done
-UnknownText_0x18818a:
+CeruleanTradeSpeechHouseGrampsText:
text "Ah… I'm so happy…"
done
@@ -70,7 +70,7 @@ CeruleanTradeSpeechHouse_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x188133, -1
- person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x188136, -1
+ person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CeruleanTradeSpeechHouseGrannyScript, -1
+ person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CeruleanTradeSpeechHouseGrampsScript, -1
person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, RhydonScript_0x188139, -1
person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ZubatScript_0x188143, -1
diff --git a/maps/CherrygroveGymSpeechHouse.asm b/maps/CherrygroveGymSpeechHouse.asm
index fdc765707..9b918fc92 100644
--- a/maps/CherrygroveGymSpeechHouse.asm
+++ b/maps/CherrygroveGymSpeechHouse.asm
@@ -9,16 +9,16 @@ CherrygroveGymSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanMScript_0x196ae1:
- jumptextfaceplayer UnknownText_0x196aea
+CherrygroveGymSpeechHousePokefanMScript:
+ jumptextfaceplayer CherrygroveGymSpeechHousePokefanMText
-BugCatcherScript_0x196ae4:
- jumptextfaceplayer UnknownText_0x196b65
+CherrygroveGymSpeechHouseBugCatcherScript:
+ jumptextfaceplayer CherrygroveGymSpeechHouseBugCatcherText
CherrygroveGymSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x196aea:
+CherrygroveGymSpeechHousePokefanMText:
text "You're trying to"
line "see how good you"
@@ -32,7 +32,7 @@ UnknownText_0x196aea:
line "collect BADGES."
done
-UnknownText_0x196b65:
+CherrygroveGymSpeechHouseBugCatcherText:
text "When I get older,"
line "I'm going to be a"
cont "GYM LEADER!"
@@ -63,5 +63,5 @@ CherrygroveGymSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x196ae1, -1
- person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x196ae4, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CherrygroveGymSpeechHousePokefanMScript, -1
+ person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CherrygroveGymSpeechHouseBugCatcherScript, -1
diff --git a/maps/CherrygroveMart.asm b/maps/CherrygroveMart.asm
index 99e15d905..34e5da5f1 100644
--- a/maps/CherrygroveMart.asm
+++ b/maps/CherrygroveMart.asm
@@ -39,8 +39,8 @@ UnknownScript_0x19682b:
closetext
end
-YoungsterScript_0x196831:
- jumptextfaceplayer UnknownText_0x1968a0
+CherrygroveMartYoungsterScript:
+ jumptextfaceplayer CherrygroveMartYoungsterText
UnknownText_0x196834:
text "They're fresh out"
@@ -56,7 +56,7 @@ UnknownText_0x196873:
cont "catch #MON!"
done
-UnknownText_0x1968a0:
+CherrygroveMartYoungsterText:
text "When I was walking"
line "in the grass, a"
@@ -90,4 +90,4 @@ CherrygroveMart_MapEventHeader:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x19680a, -1
person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19681d, -1
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x196831, -1
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CherrygroveMartYoungsterScript, -1
diff --git a/maps/CherrygrovePokecenter1F.asm b/maps/CherrygrovePokecenter1F.asm
index e3c9893fa..0a03ba707 100644
--- a/maps/CherrygrovePokecenter1F.asm
+++ b/maps/CherrygrovePokecenter1F.asm
@@ -14,11 +14,11 @@ CherrygrovePokecenter1F_MapScriptHeader:
NurseScript_0x19696d:
jumpstd pokecenternurse
-FisherScript_0x196970:
- jumptextfaceplayer UnknownText_0x19698a
+CherrygrovePokecenter1FFisherScript:
+ jumptextfaceplayer CherrygrovePokecenter1FFisherText
-GentlemanScript_0x196973:
- jumptextfaceplayer UnknownText_0x1969c8
+CherrygrovePokecenter1FGentlemanScript:
+ jumptextfaceplayer CherrygrovePokecenter1FGentlemanText
TeacherScript_0x196976:
faceplayer
@@ -36,7 +36,7 @@ UnknownScript_0x196984:
closetext
end
-UnknownText_0x19698a:
+CherrygrovePokecenter1FFisherText:
text "It's great. I can"
line "store any number"
@@ -44,7 +44,7 @@ UnknownText_0x19698a:
line "it's all free."
done
-UnknownText_0x1969c8:
+CherrygrovePokecenter1FGentlemanText:
text "That PC is free"
line "for any trainer"
cont "to use."
@@ -87,6 +87,6 @@ CherrygrovePokecenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19696d, -1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x196970, -1
- person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x196973, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CherrygrovePokecenter1FFisherScript, -1
+ person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CherrygrovePokecenter1FGentlemanScript, -1
person_event SPRITE_TEACHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x196976, -1
diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm
index eb2036ece..80aac3499 100644
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -120,8 +120,8 @@ CianwoodCityPokefanM:
CianwoodCityLass:
jumptextfaceplayer CianwoodCityLassText
-UnknownScript_0x1a00bc:
- jumptextfaceplayer UnknownText_0x1a03cc
+CianwoodCityUnknownScript:
+ jumptextfaceplayer CianwoodCityUnknownText
CianwoodCitySign:
jumptext CianwoodCitySignText
@@ -267,7 +267,7 @@ CianwoodCityLassText:
done
; possibly unused
-UnknownText_0x1a03cc:
+CianwoodCityUnknownText:
text "There are several"
line "islands between"
cont "here and OLIVINE."
diff --git a/maps/CianwoodLugiaSpeechHouse.asm b/maps/CianwoodLugiaSpeechHouse.asm
index 9faa5e897..5e136bf71 100644
--- a/maps/CianwoodLugiaSpeechHouse.asm
+++ b/maps/CianwoodLugiaSpeechHouse.asm
@@ -10,19 +10,19 @@ CianwoodLugiaSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-TeacherScript_0x9e1b0:
- jumptextfaceplayer UnknownText_0x9e1bc
+CianwoodLugiaSpeechHouseTeacherScript:
+ jumptextfaceplayer CianwoodLugiaSpeechHouseTeacherText
-LassScript_0x9e1b3:
- jumptextfaceplayer UnknownText_0x9e23f
+CianwoodLugiaSpeechHouseLassScript:
+ jumptextfaceplayer CianwoodLugiaSpeechHouseLassText
-TwinScript_0x9e1b6:
- jumptextfaceplayer UnknownText_0x9e2a9
+CianwoodLugiaSpeechHouseTwinScript:
+ jumptextfaceplayer CianwoodLugiaSpeechHouseTwinText
CianwoodLugiaSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x9e1bc:
+CianwoodLugiaSpeechHouseTeacherText:
text "You came from"
line "OLIVINE?"
@@ -36,7 +36,7 @@ UnknownText_0x9e1bc:
cont "them."
done
-UnknownText_0x9e23f:
+CianwoodLugiaSpeechHouseLassText:
text "I heard that you"
line "can only see it if"
@@ -48,7 +48,7 @@ UnknownText_0x9e23f:
cont "creature."
done
-UnknownText_0x9e2a9:
+CianwoodLugiaSpeechHouseTwinText:
text "I've heard that"
line "the whirlpools"
@@ -80,6 +80,6 @@ CianwoodLugiaSpeechHouse_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9e1b0, -1
- person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9e1b3, -1
- person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TwinScript_0x9e1b6, -1
+ person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CianwoodLugiaSpeechHouseTeacherScript, -1
+ person_event SPRITE_LASS, 5, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CianwoodLugiaSpeechHouseLassScript, -1
+ person_event SPRITE_TWIN, 2, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CianwoodLugiaSpeechHouseTwinScript, -1
diff --git a/maps/CianwoodPokecenter1F.asm b/maps/CianwoodPokecenter1F.asm
index 4671836b7..bcc8e1256 100644
--- a/maps/CianwoodPokecenter1F.asm
+++ b/maps/CianwoodPokecenter1F.asm
@@ -14,8 +14,8 @@ CianwoodPokecenter1F_MapScriptHeader:
NurseScript_0x9dbcf:
jumpstd pokecenternurse
-LassScript_0x9dbd2:
- jumptextfaceplayer UnknownText_0x9dbed
+CianwoodPokecenter1FLassScript:
+ jumptextfaceplayer CianwoodPokecenter1FLassText
CianwoodGymGuyScript:
faceplayer
@@ -34,10 +34,10 @@ CianwoodGymGuyScript:
closetext
end
-SuperNerdScript_0x9dbea:
- jumptextfaceplayer UnknownText_0x9ded7
+CianwoodPokecenter1FSuperNerdScript:
+ jumptextfaceplayer CianwoodPokecenter1FSuperNerdText
-UnknownText_0x9dbed:
+CianwoodPokecenter1FLassText:
text "Did you meet the"
line "#MANIAC?"
@@ -117,7 +117,7 @@ UnknownText_0x9de66:
cont "gotta crank it up!"
done
-UnknownText_0x9ded7:
+CianwoodPokecenter1FSuperNerdText:
text "I love showing off"
line "the #MON that"
@@ -150,6 +150,6 @@ CianwoodPokecenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9dbcf, -1
- person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9dbd2, -1
+ person_event SPRITE_LASS, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CianwoodPokecenter1FLassScript, -1
person_event SPRITE_GYM_GUY, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CianwoodGymGuyScript, -1
- person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x9dbea, -1
+ person_event SPRITE_SUPER_NERD, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CianwoodPokecenter1FSuperNerdScript, -1
diff --git a/maps/CinnabarPokecenter1F.asm b/maps/CinnabarPokecenter1F.asm
index 97f240011..151b76b3e 100644
--- a/maps/CinnabarPokecenter1F.asm
+++ b/maps/CinnabarPokecenter1F.asm
@@ -13,13 +13,13 @@ CinnabarPokecenter1F_MapScriptHeader:
NurseScript_0x1ab32c:
jumpstd pokecenternurse
-CooltrainerFScript_0x1ab32f:
- jumptextfaceplayer UnknownText_0x1ab335
+CinnabarPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer CinnabarPokecenter1FCooltrainerFText
-FisherScript_0x1ab332:
- jumptextfaceplayer UnknownText_0x1ab37f
+CinnabarPokecenter1FFisherScript:
+ jumptextfaceplayer CinnabarPokecenter1FFisherText
-UnknownText_0x1ab335:
+CinnabarPokecenter1FCooltrainerFText:
text "CINNABAR GYM's"
line "BLAINE apparently"
@@ -28,7 +28,7 @@ UnknownText_0x1ab335:
cont "cave…"
done
-UnknownText_0x1ab37f:
+CinnabarPokecenter1FFisherText:
text "It's been a year"
line "since the volcano"
cont "erupted."
@@ -53,5 +53,5 @@ CinnabarPokecenter1F_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ab32c, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1ab32f, -1
- person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ab332, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CinnabarPokecenter1FCooltrainerFScript, -1
+ person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CinnabarPokecenter1FFisherScript, -1
diff --git a/maps/CopycatsHouse1F.asm b/maps/CopycatsHouse1F.asm
index af89fb903..8449b41bb 100644
--- a/maps/CopycatsHouse1F.asm
+++ b/maps/CopycatsHouse1F.asm
@@ -10,8 +10,8 @@ CopycatsHouse1F_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanMScript_0x18ad13:
- jumptextfaceplayer UnknownText_0x18ad34
+CopycatsHouse1FPokefanMScript:
+ jumptextfaceplayer CopycatsHouse1FPokefanMText
PokefanFScript_0x18ad16:
faceplayer
@@ -37,7 +37,7 @@ ClefairyScript_0x18ad2a:
closetext
end
-UnknownText_0x18ad34:
+CopycatsHouse1FPokefanMText:
text "My daughter likes"
line "to mimic people."
@@ -90,6 +90,6 @@ CopycatsHouse1F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x18ad13, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CopycatsHouse1FPokefanMScript, -1
person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x18ad16, -1
person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClefairyScript_0x18ad2a, -1
diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm
index f2e5aea81..96324b446 100644
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -17,9 +17,9 @@ DanceTheatre_MapScriptHeader:
db 0
TrainerKimono_girlNaoko2:
- trainer EVENT_BEAT_KIMONO_GIRL_NAOKO, KIMONO_GIRL, NAOKO2, Kimono_girlNaoko2SeenText, Kimono_girlNaoko2BeatenText, 0, Kimono_girlNaoko2Script
+ trainer EVENT_BEAT_KIMONO_GIRL_NAOKO, KIMONO_GIRL, NAOKO2, Kimono_girlNaoko2SeenText, Kimono_girlNaoko2BeatenText, 0, .Script
-Kimono_girlNaoko2Script:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlNaoko2AfterBattleText
@@ -28,9 +28,9 @@ Kimono_girlNaoko2Script:
end
TrainerKimono_girlSayo:
- trainer EVENT_BEAT_KIMONO_GIRL_SAYO, KIMONO_GIRL, SAYO, Kimono_girlSayoSeenText, Kimono_girlSayoBeatenText, 0, Kimono_girlSayoScript
+ trainer EVENT_BEAT_KIMONO_GIRL_SAYO, KIMONO_GIRL, SAYO, Kimono_girlSayoSeenText, Kimono_girlSayoBeatenText, 0, .Script
-Kimono_girlSayoScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlSayoAfterBattleText
@@ -39,9 +39,9 @@ Kimono_girlSayoScript:
end
TrainerKimono_girlZuki:
- trainer EVENT_BEAT_KIMONO_GIRL_ZUKI, KIMONO_GIRL, ZUKI, Kimono_girlZukiSeenText, Kimono_girlZukiBeatenText, 0, Kimono_girlZukiScript
+ trainer EVENT_BEAT_KIMONO_GIRL_ZUKI, KIMONO_GIRL, ZUKI, Kimono_girlZukiSeenText, Kimono_girlZukiBeatenText, 0, .Script
-Kimono_girlZukiScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlZukiAfterBattleText
@@ -50,9 +50,9 @@ Kimono_girlZukiScript:
end
TrainerKimono_girlKuni:
- trainer EVENT_BEAT_KIMONO_GIRL_KUNI, KIMONO_GIRL, KUNI, Kimono_girlKuniSeenText, Kimono_girlKuniBeatenText, 0, Kimono_girlKuniScript
+ trainer EVENT_BEAT_KIMONO_GIRL_KUNI, KIMONO_GIRL, KUNI, Kimono_girlKuniSeenText, Kimono_girlKuniBeatenText, 0, .Script
-Kimono_girlKuniScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlKuniAfterBattleText
@@ -61,9 +61,9 @@ Kimono_girlKuniScript:
end
TrainerKimono_girlMiki:
- trainer EVENT_BEAT_KIMONO_GIRL_MIKI, KIMONO_GIRL, MIKI, Kimono_girlMikiSeenText, Kimono_girlMikiBeatenText, 0, Kimono_girlMikiScript
+ trainer EVENT_BEAT_KIMONO_GIRL_MIKI, KIMONO_GIRL, MIKI, Kimono_girlMikiSeenText, Kimono_girlMikiBeatenText, 0, .Script
-Kimono_girlMikiScript:
+.Script:
end_if_just_battled
opentext
writetext Kimono_girlMikiAfterBattleText
@@ -128,11 +128,11 @@ RhydonScript_0x9951b:
closetext
end
-CooltrainerMScript_0x99525:
- jumptextfaceplayer UnknownText_0x99a24
+DanceTheatreCooltrainerMScript:
+ jumptextfaceplayer DanceTheatreCooltrainerMText
-GrannyScript_0x99528:
- jumptextfaceplayer UnknownText_0x99aaa
+DanceTheatreGrannyScript:
+ jumptextfaceplayer DanceTheatreGrannyText
MapDanceTheatreSignpost1Script:
jumptext UnknownText_0x99b79
@@ -298,7 +298,7 @@ UnknownText_0x99a0a:
line "gugogooh!"
done
-UnknownText_0x99a24:
+DanceTheatreCooltrainerMText:
text "That man's always"
line "with his RHYDON."
@@ -312,7 +312,7 @@ UnknownText_0x99a24:
cont "#MON?"
done
-UnknownText_0x99aaa:
+DanceTheatreGrannyText:
text "The KIMONO GIRLS"
line "are so beautiful…"
@@ -363,5 +363,5 @@ DanceTheatre_MapEventHeader:
person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_TRAINER, 0, TrainerKimono_girlMiki, -1
person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x994c6, -1
person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9951b, -1
- person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x99525, -1
- person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99528, -1
+ person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, DanceTheatreCooltrainerMScript, -1
+ person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DanceTheatreGrannyScript, -1
diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm
index ead75b1d8..88b66a289 100644
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -10,20 +10,20 @@ DarkCaveBlackthornEntrance_MapScriptHeader:
.MapCallbacks:
db 0
-PharmacistScript_0x18c720:
+DarkCaveBlackthornEntrancePharmacistScript:
faceplayer
opentext
checkevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
- iftrue UnknownScript_0x18c735
- writetext UnknownText_0x18c73f
+ iftrue .GotBlackglasses
+ writetext DarkCaveBlackthornEntrancePharmacistText1
buttonsound
verbosegiveitem BLACKGLASSES
- iffalse UnknownScript_0x18c739
+ iffalse .PackFull
setevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
-UnknownScript_0x18c735:
- writetext UnknownText_0x18c80c
+.GotBlackglasses:
+ writetext DarkCaveBlackthornEntrancePharmacistText2
waitbutton
-UnknownScript_0x18c739:
+.PackFull:
closetext
end
@@ -33,7 +33,7 @@ DarkCaveBlackthornEntranceRevive:
DarkCaveBlackthornEntranceTMSnore:
itemball TM_SNORE
-UnknownText_0x18c73f:
+DarkCaveBlackthornEntrancePharmacistText1:
text "Whoa! You startled"
line "me there!"
@@ -55,7 +55,7 @@ UnknownText_0x18c73f:
cont "you saw me, OK?"
done
-UnknownText_0x18c80c:
+DarkCaveBlackthornEntrancePharmacistText2:
text "BLACKGLASSES ups"
line "the power of dark-"
cont "type moves."
@@ -78,6 +78,6 @@ DarkCaveBlackthornEntrance_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PharmacistScript_0x18c720, -1
+ person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DarkCaveBlackthornEntrancePharmacistScript, -1
person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, DarkCaveBlackthornEntranceRevive, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, DarkCaveBlackthornEntranceTMSnore, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
diff --git a/maps/DiglettsCave.asm b/maps/DiglettsCave.asm
index 88aa1e90b..230610df5 100644
--- a/maps/DiglettsCave.asm
+++ b/maps/DiglettsCave.asm
@@ -8,14 +8,14 @@ DiglettsCave_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanMScript_0x74002:
- jumptextfaceplayer UnknownText_0x74008
+DiglettsCavePokefanMScript:
+ jumptextfaceplayer DiglettsCavePokefanMText
DiglettsCaveHiddenMaxRevive:
dwb EVENT_DIGLETTS_CAVE_HIDDEN_MAX_REVIVE, MAX_REVIVE
-UnknownText_0x74008:
+DiglettsCavePokefanMText:
text "A bunch of DIGLETT"
line "popped out of the"
@@ -45,4 +45,4 @@ DiglettsCave_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x74002, -1
+ person_event SPRITE_POKEFAN_M, 31, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, DiglettsCavePokefanMScript, -1
diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm
index d17c3c4a3..c41fb07ed 100644
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -84,9 +84,9 @@ DragonsDenB1F_ClairTrigger:
end
TrainerCooltrainermDarin:
- trainer EVENT_BEAT_COOLTRAINERM_DARIN, COOLTRAINERM, DARIN, CooltrainermDarinSeenText, CooltrainermDarinBeatenText, 0, CooltrainermDarinScript
+ trainer EVENT_BEAT_COOLTRAINERM_DARIN, COOLTRAINERM, DARIN, CooltrainermDarinSeenText, CooltrainermDarinBeatenText, 0, .Script
-CooltrainermDarinScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermDarinAfterBattleText
@@ -95,9 +95,9 @@ CooltrainermDarinScript:
end
TrainerCooltrainerfCara:
- trainer EVENT_BEAT_COOLTRAINERF_CARA, COOLTRAINERF, CARA, CooltrainerfCaraSeenText, CooltrainerfCaraBeatenText, 0, CooltrainerfCaraScript
+ trainer EVENT_BEAT_COOLTRAINERF_CARA, COOLTRAINERF, CARA, CooltrainerfCaraSeenText, CooltrainerfCaraBeatenText, 0, .Script
-CooltrainerfCaraScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfCaraAfterBattleText
@@ -106,9 +106,9 @@ CooltrainerfCaraScript:
end
TrainerTwinsLeaandpia1:
- trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia1SeenText, TwinsLeaandpia1BeatenText, 0, TwinsLeaandpia1Script
+ trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia1SeenText, TwinsLeaandpia1BeatenText, 0, .Script
-TwinsLeaandpia1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsLeaandpia1AfterBattleText
@@ -117,9 +117,9 @@ TwinsLeaandpia1Script:
end
TrainerTwinsLeaandpia2:
- trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia2SeenText, TwinsLeaandpia2BeatenText, 0, TwinsLeaandpia2Script
+ trainer EVENT_BEAT_TWINS_LEA_AND_PIA, TWINS, LEAANDPIA1, TwinsLeaandpia2SeenText, TwinsLeaandpia2BeatenText, 0, .Script
-TwinsLeaandpia2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsLeaandpia2AfterBattleText
diff --git a/maps/EarlsPokemonAcademy.asm b/maps/EarlsPokemonAcademy.asm
index 91d9689ef..f4df23dc1 100644
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -38,29 +38,29 @@ AcademyEarl:
closetext
end
-YoungsterScript_0x68a83:
- jumptextfaceplayer UnknownText_0x68d80
+EarlsPokemonAcademyYoungster1Script:
+ jumptextfaceplayer EarlsPokemonAcademyYoungster1Text
-GameboyKidScript_0x68a86:
+EarlsPokemonAcademyGameboyKid1Script:
faceplayer
opentext
- writetext UnknownText_0x68dda
+ writetext EarlsPokemonAcademyGameboyKid1Text
waitbutton
closetext
spriteface EARLSPOKEMONACADEMY_GAMEBOY_KID1, DOWN
end
-GameboyKidScript_0x68a91:
+EarlsPokemonAcademyGameboyKid2Script:
faceplayer
opentext
- writetext UnknownText_0x68e07
+ writetext EarlsPokemonAcademyGameboyKid2Text
waitbutton
closetext
spriteface EARLSPOKEMONACADEMY_GAMEBOY_KID2, DOWN
end
-YoungsterScript_0x68a9c:
- jumptextfaceplayer UnknownText_0x68e39
+EarlsPokemonAcademyYoungster2Script:
+ jumptextfaceplayer EarlsPokemonAcademyYoungster2Text
AcademyBlackboard:
opentext
@@ -231,7 +231,7 @@ UnknownText_0x68d31:
line "you must be!"
done
-UnknownText_0x68d80:
+EarlsPokemonAcademyYoungster1Text:
text "I'm taking notes"
line "of the teacher's"
cont "lecture."
@@ -241,19 +241,19 @@ UnknownText_0x68d80:
cont "blackboard too."
done
-UnknownText_0x68dda:
+EarlsPokemonAcademyGameboyKid1Text:
text "I traded my best"
line "#MON to the"
cont "guy beside me."
done
-UnknownText_0x68e07:
+EarlsPokemonAcademyGameboyKid2Text:
text "Huh? The #MON I"
line "just got is hold-"
cont "ing something!"
done
-UnknownText_0x68e39:
+EarlsPokemonAcademyYoungster2Text:
text "A #MON holding"
line "a BERRY will heal"
cont "itself in battle."
@@ -434,8 +434,8 @@ EarlsPokemonAcademy_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_FISHER, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, AcademyEarl, EVENT_EARLS_ACADEMY_EARL
- person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a83, -1
- person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a86, -1
- person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x68a91, -1
- person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x68a9c, -1
+ person_event SPRITE_YOUNGSTER, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyYoungster1Script, -1
+ person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyGameboyKid1Script, -1
+ person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyGameboyKid2Script, -1
+ person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EarlsPokemonAcademyYoungster2Script, -1
person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, AcademyNotebook, -1
diff --git a/maps/EcruteakCity.asm b/maps/EcruteakCity.asm
index 9e2c8fa08..8d742d07a 100644
--- a/maps/EcruteakCity.asm
+++ b/maps/EcruteakCity.asm
@@ -19,17 +19,17 @@ EcruteakCity_MapScriptHeader:
setflag ENGINE_FLYPOINT_ECRUTEAK
return
-GrampsScript_0x1a4009:
- jumptextfaceplayer UnknownText_0x1a4105
+EcruteakCityGramps1Script:
+ jumptextfaceplayer EcruteakCityGramps1Text
-GrampsScript_0x1a400c:
- jumptextfaceplayer UnknownText_0x1a4147
+EcruteakCityGramps2Script:
+ jumptextfaceplayer EcruteakCityGramps2Text
-GrampsScript_0x1a400f:
- jumptextfaceplayer UnknownText_0x1a43cb
+EcruteakCityGramps3Script:
+ jumptextfaceplayer EcruteakCityGramps3Text
-LassScript_0x1a4012:
- jumptextfaceplayer UnknownText_0x1a41db
+EcruteakCityLassScript:
+ jumptextfaceplayer EcruteakCityLassText
LassScript_0x1a4015:
faceplayer
@@ -63,8 +63,8 @@ UnknownScript_0x1a4037:
closetext
end
-YoungsterScript_0x1a403d:
- jumptextfaceplayer UnknownText_0x1a4386
+EcruteakCityYoungsterScript:
+ jumptextfaceplayer EcruteakCityYoungsterText
EcruteakCitySign:
jumptext EcruteakCitySignText
@@ -111,7 +111,7 @@ UnusedMissingDaughterText:
line "do…?"
done
-UnknownText_0x1a4105:
+EcruteakCityGramps1Text:
text "ECRUTEAK used to"
line "have two towers:"
@@ -119,7 +119,7 @@ UnknownText_0x1a4105:
line "east and west."
done
-UnknownText_0x1a4147:
+EcruteakCityGramps2Text:
text "Ah, child."
line "Have you learned"
@@ -134,7 +134,7 @@ UnknownText_0x1a4147:
cont "nice, I hear."
done
-UnknownText_0x1a41db:
+EcruteakCityLassText:
text "I'm going to prac-"
line "tice at the DANCE"
@@ -181,7 +181,7 @@ UnknownText_0x1a4325:
cont "night again."
done
-UnknownText_0x1a4386:
+EcruteakCityYoungsterText:
text "I hear #MON are"
line "rampaging at the"
@@ -189,7 +189,7 @@ UnknownText_0x1a4386:
line "like to see that."
done
-UnknownText_0x1a43cb:
+EcruteakCityGramps3Text:
text "In the distant"
line "past…"
@@ -297,10 +297,10 @@ EcruteakCity_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a4009, -1
- person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400c, -1
- person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4012, -1
+ person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakCityGramps1Script, -1
+ person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakCityGramps2Script, -1
+ person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, EcruteakCityLassScript, -1
person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a4015, -1
person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a4029, -1
- person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a403d, -1
- person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
+ person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, EcruteakCityYoungsterScript, -1
+ person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, EcruteakCityGramps3Script, EVENT_ECRUTEAK_CITY_GRAMPS
diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm
index d2bdc64eb..1b61ecfb2 100644
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -98,9 +98,9 @@ EcruteakGymClosed:
end
TrainerSageJeffrey:
- trainer EVENT_BEAT_SAGE_JEFFREY, SAGE, JEFFREY, SageJeffreySeenText, SageJeffreyBeatenText, 0, SageJeffreyScript
+ trainer EVENT_BEAT_SAGE_JEFFREY, SAGE, JEFFREY, SageJeffreySeenText, SageJeffreyBeatenText, 0, .Script
-SageJeffreyScript:
+.Script:
end_if_just_battled
opentext
writetext SageJeffreyAfterBattleText
@@ -109,9 +109,9 @@ SageJeffreyScript:
end
TrainerSagePing:
- trainer EVENT_BEAT_SAGE_PING, SAGE, PING, SagePingSeenText, SagePingBeatenText, 0, SagePingScript
+ trainer EVENT_BEAT_SAGE_PING, SAGE, PING, SagePingSeenText, SagePingBeatenText, 0, .Script
-SagePingScript:
+.Script:
end_if_just_battled
opentext
writetext SagePingAfterBattleText
@@ -120,9 +120,9 @@ SagePingScript:
end
TrainerMediumMartha:
- trainer EVENT_BEAT_MEDIUM_MARTHA, MEDIUM, MARTHA, MediumMarthaSeenText, MediumMarthaBeatenText, 0, MediumMarthaScript
+ trainer EVENT_BEAT_MEDIUM_MARTHA, MEDIUM, MARTHA, MediumMarthaSeenText, MediumMarthaBeatenText, 0, .Script
-MediumMarthaScript:
+.Script:
end_if_just_battled
opentext
writetext MediumMarthaAfterBattleText
@@ -131,9 +131,9 @@ MediumMarthaScript:
end
TrainerMediumGrace:
- trainer EVENT_BEAT_MEDIUM_GRACE, MEDIUM, GRACE, MediumGraceSeenText, MediumGraceBeatenText, 0, MediumGraceScript
+ trainer EVENT_BEAT_MEDIUM_GRACE, MEDIUM, GRACE, MediumGraceSeenText, MediumGraceBeatenText, 0, .Script
-MediumGraceScript:
+.Script:
end_if_just_battled
opentext
writetext MediumGraceAfterBattleText
diff --git a/maps/EcruteakHouse.asm b/maps/EcruteakHouse.asm
index 4cfc70927..2959ad3cc 100644
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -134,8 +134,8 @@ SageScript_0x980b0:
closetext
end
-GrampsScript_0x980c4:
- jumptextfaceplayer UnknownText_0x984ab
+EcruteakHouseGrampsScript:
+ jumptextfaceplayer EcruteakHouseGrampsText
MovementData_0x980c7:
fix_facing
@@ -266,7 +266,7 @@ UnknownText_0x9846f:
line "to the top!"
done
-UnknownText_0x984ab:
+EcruteakHouseGrampsText:
text "Two towers…"
line "Two #MON…"
@@ -302,4 +302,4 @@ EcruteakHouse_MapEventHeader:
person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1
person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2
person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
- person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+ person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakHouseGrampsScript, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
diff --git a/maps/EcruteakLugiaSpeechHouse.asm b/maps/EcruteakLugiaSpeechHouse.asm
index 4307a19c9..6ec0173ee 100644
--- a/maps/EcruteakLugiaSpeechHouse.asm
+++ b/maps/EcruteakLugiaSpeechHouse.asm
@@ -9,16 +9,16 @@ EcruteakLugiaSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-GrampsScript_0x99334:
- jumptextfaceplayer UnknownText_0x9933d
+EcruteakLugiaSpeechHouseGrampsScript:
+ jumptextfaceplayer EcruteakLugiaSpeechHouseGrampsText
-YoungsterScript_0x99337:
- jumptextfaceplayer UnknownText_0x993ec
+EcruteakLugiaSpeechHouseYoungsterScript:
+ jumptextfaceplayer EcruteakLugiaSpeechHouseYoungsterText
LugiaSpeechHouseRadio:
jumpstd radio2
-UnknownText_0x9933d:
+EcruteakLugiaSpeechHouseGrampsText:
text "This happened when"
line "I was young."
@@ -36,7 +36,7 @@ UnknownText_0x9933d:
line "and a dragon."
done
-UnknownText_0x993ec:
+EcruteakLugiaSpeechHouseYoungsterText:
text "Is there really a"
line "#MON that big?"
@@ -62,5 +62,5 @@ EcruteakLugiaSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x99334, -1
- person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x99337, -1
+ person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakLugiaSpeechHouseGrampsScript, -1
+ person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakLugiaSpeechHouseYoungsterScript, -1
diff --git a/maps/EcruteakMart.asm b/maps/EcruteakMart.asm
index deb35aeef..1747c1d57 100644
--- a/maps/EcruteakMart.asm
+++ b/maps/EcruteakMart.asm
@@ -16,13 +16,13 @@ ClerkScript_0x99c3b:
closetext
end
-SuperNerdScript_0x99c42:
- jumptextfaceplayer UnknownText_0x99c48
+EcruteakMartSuperNerdScript:
+ jumptextfaceplayer EcruteakMartSuperNerdText
-GrannyScript_0x99c45:
- jumptextfaceplayer UnknownText_0x99cd5
+EcruteakMartGrannyScript:
+ jumptextfaceplayer EcruteakMartGrannyText
-UnknownText_0x99c48:
+EcruteakMartSuperNerdText:
text "My EEVEE evolved"
line "into an ESPEON."
@@ -37,7 +37,7 @@ UnknownText_0x99c48:
line "same way…"
done
-UnknownText_0x99cd5:
+EcruteakMartGrannyText:
text "If you use REVIVE,"
line "a #MON that's"
@@ -63,5 +63,5 @@ EcruteakMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x99c3b, -1
- person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x99c42, -1
- person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x99c45, -1
+ person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, EcruteakMartSuperNerdScript, -1
+ person_event SPRITE_GRANNY, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, EcruteakMartGrannyScript, -1
diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm
index 284fa374d..e54a9e3cd 100644
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -116,8 +116,8 @@ SailorScript_0x751d0:
closetext
end
-SailorScript_0x751e4:
- jumptextfaceplayer UnknownText_0x753c0
+FastShip1FSailorScript:
+ jumptextfaceplayer FastShip1FSailorText
WorriedGrandpaTriggerRight:
moveperson FASTSHIP1F_GENTLEMAN, $14, $6
@@ -250,7 +250,7 @@ UnknownText_0x7534f:
cont "you're sleeping."
done
-UnknownText_0x753c0:
+FastShip1FSailorText:
text "The passengers are"
line "all trainers."
@@ -316,5 +316,5 @@ FastShip1F_MapEventHeader:
db 4
person_event SPRITE_SAILOR, 2, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x75160, -1
person_event SPRITE_SAILOR, 7, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751d0, -1
- person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x751e4, -1
+ person_event SPRITE_SAILOR, 17, 22, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FastShip1FSailorScript, -1
person_event SPRITE_GENTLEMAN, 6, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_FAST_SHIP_1F_GENTLEMAN
diff --git a/maps/FastShipB1F.asm b/maps/FastShipB1F.asm
index 951b1c737..0069b5a86 100644
--- a/maps/FastShipB1F.asm
+++ b/maps/FastShipB1F.asm
@@ -94,9 +94,9 @@ UnknownScript_0x767a0:
end
TrainerSailorJeff:
- trainer EVENT_BEAT_SAILOR_JEFF, SAILOR, JEFF, SailorJeffSeenText, SailorJeffBeatenText, 0, SailorJeffScript
+ trainer EVENT_BEAT_SAILOR_JEFF, SAILOR, JEFF, SailorJeffSeenText, SailorJeffBeatenText, 0, .Script
-SailorJeffScript:
+.Script:
end_if_just_battled
opentext
writetext SailorJeffAfterBattleText
@@ -105,9 +105,9 @@ SailorJeffScript:
end
TrainerPicnickerDebra:
- trainer EVENT_BEAT_PICNICKER_DEBRA, PICNICKER, DEBRA, PicnickerDebraSeenText, PicnickerDebraBeatenText, 0, PicnickerDebraScript
+ trainer EVENT_BEAT_PICNICKER_DEBRA, PICNICKER, DEBRA, PicnickerDebraSeenText, PicnickerDebraBeatenText, 0, .Script
-PicnickerDebraScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerDebraAfterBattleText
@@ -116,9 +116,9 @@ PicnickerDebraScript:
end
TrainerJugglerFritz:
- trainer EVENT_BEAT_JUGGLER_FRITZ, JUGGLER, FRITZ, JugglerFritzSeenText, JugglerFritzBeatenText, 0, JugglerFritzScript
+ trainer EVENT_BEAT_JUGGLER_FRITZ, JUGGLER, FRITZ, JugglerFritzSeenText, JugglerFritzBeatenText, 0, .Script
-JugglerFritzScript:
+.Script:
end_if_just_battled
opentext
writetext JugglerFritzAfterBattleText
@@ -127,9 +127,9 @@ JugglerFritzScript:
end
TrainerSailorGarrett:
- trainer EVENT_BEAT_SAILOR_GARRETT, SAILOR, GARRETT, SailorGarrettSeenText, SailorGarrettBeatenText, 0, SailorGarrettScript
+ trainer EVENT_BEAT_SAILOR_GARRETT, SAILOR, GARRETT, SailorGarrettSeenText, SailorGarrettBeatenText, 0, .Script
-SailorGarrettScript:
+.Script:
end_if_just_battled
opentext
writetext SailorGarrettAfterBattleText
@@ -138,9 +138,9 @@ SailorGarrettScript:
end
TrainerFisherJonah:
- trainer EVENT_BEAT_FISHER_JONAH, FISHER, JONAH, FisherJonahSeenText, FisherJonahBeatenText, 0, FisherJonahScript
+ trainer EVENT_BEAT_FISHER_JONAH, FISHER, JONAH, FisherJonahSeenText, FisherJonahBeatenText, 0, .Script
-FisherJonahScript:
+.Script:
end_if_just_battled
opentext
writetext FisherJonahAfterBattleText
@@ -149,9 +149,9 @@ FisherJonahScript:
end
TrainerBlackbeltWai:
- trainer EVENT_BEAT_BLACKBELT_WAI, BLACKBELT_T, WAI, BlackbeltWaiSeenText, BlackbeltWaiBeatenText, 0, BlackbeltWaiScript
+ trainer EVENT_BEAT_BLACKBELT_WAI, BLACKBELT_T, WAI, BlackbeltWaiSeenText, BlackbeltWaiBeatenText, 0, .Script
-BlackbeltWaiScript:
+.Script:
end_if_just_battled
opentext
writetext BlackbeltWaiAfterBattleText
@@ -160,9 +160,9 @@ BlackbeltWaiScript:
end
TrainerSailorKenneth:
- trainer EVENT_BEAT_SAILOR_KENNETH, SAILOR, KENNETH, SailorKennethSeenText, SailorKennethBeatenText, 0, SailorKennethScript
+ trainer EVENT_BEAT_SAILOR_KENNETH, SAILOR, KENNETH, SailorKennethSeenText, SailorKennethBeatenText, 0, .Script
-SailorKennethScript:
+.Script:
end_if_just_battled
opentext
writetext SailorKennethAfterBattleText
@@ -171,9 +171,9 @@ SailorKennethScript:
end
TrainerTeacherShirley:
- trainer EVENT_BEAT_TEACHER_SHIRLEY, TEACHER, SHIRLEY, TeacherShirleySeenText, TeacherShirleyBeatenText, 0, TeacherShirleyScript
+ trainer EVENT_BEAT_TEACHER_SHIRLEY, TEACHER, SHIRLEY, TeacherShirleySeenText, TeacherShirleyBeatenText, 0, .Script
-TeacherShirleyScript:
+.Script:
end_if_just_battled
opentext
writetext TeacherShirleyAfterBattleText
@@ -182,9 +182,9 @@ TeacherShirleyScript:
end
TrainerSchoolboyNate:
- trainer EVENT_BEAT_SCHOOLBOY_NATE, SCHOOLBOY, NATE, SchoolboyNateSeenText, SchoolboyNateBeatenText, 0, SchoolboyNateScript
+ trainer EVENT_BEAT_SCHOOLBOY_NATE, SCHOOLBOY, NATE, SchoolboyNateSeenText, SchoolboyNateBeatenText, 0, .Script
-SchoolboyNateScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyNateAfterBattleText
@@ -193,9 +193,9 @@ SchoolboyNateScript:
end
TrainerSchoolboyRicky:
- trainer EVENT_BEAT_SCHOOLBOY_RICKY, SCHOOLBOY, RICKY, SchoolboyRickySeenText, SchoolboyRickyBeatenText, 0, SchoolboyRickyScript
+ trainer EVENT_BEAT_SCHOOLBOY_RICKY, SCHOOLBOY, RICKY, SchoolboyRickySeenText, SchoolboyRickyBeatenText, 0, .Script
-SchoolboyRickyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyRickyAfterBattleText
diff --git a/maps/FastShipCabins_NNW_NNE_NE.asm b/maps/FastShipCabins_NNW_NNE_NE.asm
index 682fe8596..2f141db45 100644
--- a/maps/FastShipCabins_NNW_NNE_NE.asm
+++ b/maps/FastShipCabins_NNW_NNE_NE.asm
@@ -15,9 +15,9 @@ FastShipCabins_NNW_NNE_NE_MapScriptHeader:
db 0
TrainerCooltrainermSean:
- trainer EVENT_BEAT_COOLTRAINERM_SEAN, COOLTRAINERM, SEAN, CooltrainermSeanSeenText, CooltrainermSeanBeatenText, 0, CooltrainermSeanScript
+ trainer EVENT_BEAT_COOLTRAINERM_SEAN, COOLTRAINERM, SEAN, CooltrainermSeanSeenText, CooltrainermSeanBeatenText, 0, .Script
-CooltrainermSeanScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermSeanAfterBattleText
@@ -26,9 +26,9 @@ CooltrainermSeanScript:
end
TrainerCooltrainerfCarol:
- trainer EVENT_BEAT_COOLTRAINERF_CAROL, COOLTRAINERF, CAROL, CooltrainerfCarolSeenText, CooltrainerfCarolBeatenText, 0, CooltrainerfCarolScript
+ trainer EVENT_BEAT_COOLTRAINERF_CAROL, COOLTRAINERF, CAROL, CooltrainerfCarolSeenText, CooltrainerfCarolBeatenText, 0, .Script
-CooltrainerfCarolScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfCarolAfterBattleText
@@ -37,9 +37,9 @@ CooltrainerfCarolScript:
end
TrainerPokemaniacEthan:
- trainer EVENT_BEAT_POKEMANIAC_ETHAN, POKEMANIAC, ETHAN, PokemaniacEthanSeenText, PokemaniacEthanBeatenText, 0, PokemaniacEthanScript
+ trainer EVENT_BEAT_POKEMANIAC_ETHAN, POKEMANIAC, ETHAN, PokemaniacEthanSeenText, PokemaniacEthanBeatenText, 0, .Script
-PokemaniacEthanScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacEthanAfterBattleText
@@ -48,9 +48,9 @@ PokemaniacEthanScript:
end
TrainerHikerNoland:
- trainer EVENT_BEAT_HIKER_NOLAND, HIKER, NOLAND, HikerNolandSeenText, HikerNolandBeatenText, 0, HikerNolandScript
+ trainer EVENT_BEAT_HIKER_NOLAND, HIKER, NOLAND, HikerNolandSeenText, HikerNolandBeatenText, 0, .Script
-HikerNolandScript:
+.Script:
end_if_just_battled
opentext
writetext HikerNolandAfterBattleText
@@ -59,9 +59,9 @@ HikerNolandScript:
end
TrainerGentlemanEdward:
- trainer EVENT_BEAT_GENTLEMAN_EDWARD, GENTLEMAN, EDWARD, GentlemanEdwardSeenText, GentlemanEdwardBeatenText, 0, GentlemanEdwardScript
+ trainer EVENT_BEAT_GENTLEMAN_EDWARD, GENTLEMAN, EDWARD, GentlemanEdwardSeenText, GentlemanEdwardBeatenText, 0, .Script
-GentlemanEdwardScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanEdwardAfterBattleText
@@ -70,9 +70,9 @@ GentlemanEdwardScript:
end
TrainerBurglarCorey:
- trainer EVENT_BEAT_BURGLAR_COREY, BURGLAR, COREY, BurglarCoreySeenText, BurglarCoreyBeatenText, 0, BurglarCoreyScript
+ trainer EVENT_BEAT_BURGLAR_COREY, BURGLAR, COREY, BurglarCoreySeenText, BurglarCoreyBeatenText, 0, .Script
-BurglarCoreyScript:
+.Script:
end_if_just_battled
opentext
writetext BurglarCoreyAfterBattleText
diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
index c8fa4300b..8e0575964 100644
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -141,9 +141,9 @@ TwinScript_0x75f6d:
end
TrainerPokefanmColin:
- trainer EVENT_BEAT_POKEFANM_COLIN, POKEFANM, COLIN, PokefanmColinSeenText, PokefanmColinBeatenText, 0, PokefanmColinScript
+ trainer EVENT_BEAT_POKEFANM_COLIN, POKEFANM, COLIN, PokefanmColinSeenText, PokefanmColinBeatenText, 0, .Script
-PokefanmColinScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmColinAfterBattleText
@@ -152,9 +152,9 @@ PokefanmColinScript:
end
TrainerTwinsMegandpeg1:
- trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG1, TwinsMegandpeg1SeenText, TwinsMegandpeg1BeatenText, 0, TwinsMegandpeg1Script
+ trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG1, TwinsMegandpeg1SeenText, TwinsMegandpeg1BeatenText, 0, .Script
-TwinsMegandpeg1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsMegandpeg1AfterBattleText
@@ -163,9 +163,9 @@ TwinsMegandpeg1Script:
end
TrainerTwinsMegandpeg2:
- trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG2, TwinsMegandpeg2SeenText, TwinsMegandpeg2BeatenText, 0, TwinsMegandpeg2Script
+ trainer EVENT_BEAT_TWINS_MEG_AND_PEG, TWINS, MEGANDPEG2, TwinsMegandpeg2SeenText, TwinsMegandpeg2BeatenText, 0, .Script
-TwinsMegandpeg2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsMegandpeg2AfterBattleText
@@ -174,9 +174,9 @@ TwinsMegandpeg2Script:
end
TrainerPsychicRodney:
- trainer EVENT_BEAT_PSYCHIC_RODNEY, PSYCHIC_T, RODNEY, PsychicRodneySeenText, PsychicRodneyBeatenText, 0, PsychicRodneyScript
+ trainer EVENT_BEAT_PSYCHIC_RODNEY, PSYCHIC_T, RODNEY, PsychicRodneySeenText, PsychicRodneyBeatenText, 0, .Script
-PsychicRodneyScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicRodneyAfterBattleText
@@ -185,9 +185,9 @@ PsychicRodneyScript:
end
TrainerPokefanmJeremy:
- trainer EVENT_BEAT_POKEFANM_JEREMY, POKEFANM, JEREMY, PokefanmJeremySeenText, PokefanmJeremyBeatenText, 0, PokefanmJeremyScript
+ trainer EVENT_BEAT_POKEFANM_JEREMY, POKEFANM, JEREMY, PokefanmJeremySeenText, PokefanmJeremyBeatenText, 0, .Script
-PokefanmJeremyScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmJeremyAfterBattleText
@@ -196,9 +196,9 @@ PokefanmJeremyScript:
end
TrainerPokefanfGeorgia:
- trainer EVENT_BEAT_POKEFANF_GEORGIA, POKEFANF, GEORGIA, PokefanfGeorgiaSeenText, PokefanfGeorgiaBeatenText, 0, PokefanfGeorgiaScript
+ trainer EVENT_BEAT_POKEFANF_GEORGIA, POKEFANF, GEORGIA, PokefanfGeorgiaSeenText, PokefanfGeorgiaBeatenText, 0, .Script
-PokefanfGeorgiaScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanfGeorgiaAfterBattleText
@@ -207,9 +207,9 @@ PokefanfGeorgiaScript:
end
TrainerSupernerdShawn:
- trainer EVENT_BEAT_SUPER_NERD_SHAWN, SUPER_NERD, SHAWN, SupernerdShawnSeenText, SupernerdShawnBeatenText, 0, SupernerdShawnScript
+ trainer EVENT_BEAT_SUPER_NERD_SHAWN, SUPER_NERD, SHAWN, SupernerdShawnSeenText, SupernerdShawnBeatenText, 0, .Script
-SupernerdShawnScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdShawnAfterBattleText
diff --git a/maps/FastShipCabins_SW_SSW_NW.asm b/maps/FastShipCabins_SW_SSW_NW.asm
index 0cd7dbe90..b1430f1c4 100644
--- a/maps/FastShipCabins_SW_SSW_NW.asm
+++ b/maps/FastShipCabins_SW_SSW_NW.asm
@@ -12,9 +12,9 @@ FastShipCabins_SW_SSW_NW_MapScriptHeader:
db 0
TrainerFirebreatherLyle:
- trainer EVENT_BEAT_FIREBREATHER_LYLE, FIREBREATHER, LYLE, FirebreatherLyleSeenText, FirebreatherLyleBeatenText, 0, FirebreatherLyleScript
+ trainer EVENT_BEAT_FIREBREATHER_LYLE, FIREBREATHER, LYLE, FirebreatherLyleSeenText, FirebreatherLyleBeatenText, 0, .Script
-FirebreatherLyleScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherLyleAfterBattleText
@@ -23,9 +23,9 @@ FirebreatherLyleScript:
end
TrainerBug_catcherKen:
- trainer EVENT_BEAT_BUG_CATCHER_KEN, BUG_CATCHER, KEN, Bug_catcherKenSeenText, Bug_catcherKenBeatenText, 0, Bug_catcherKenScript
+ trainer EVENT_BEAT_BUG_CATCHER_KEN, BUG_CATCHER, KEN, Bug_catcherKenSeenText, Bug_catcherKenBeatenText, 0, .Script
-Bug_catcherKenScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherKenAfterBattleText
@@ -34,9 +34,9 @@ Bug_catcherKenScript:
end
TrainerBeautyCassie:
- trainer EVENT_BEAT_BEAUTY_CASSIE, BEAUTY, CASSIE, BeautyCassieSeenText, BeautyCassieBeatenText, 0, BeautyCassieScript
+ trainer EVENT_BEAT_BEAUTY_CASSIE, BEAUTY, CASSIE, BeautyCassieSeenText, BeautyCassieBeatenText, 0, .Script
-BeautyCassieScript:
+.Script:
end_if_just_battled
opentext
writetext BeautyCassieAfterBattleText
@@ -45,9 +45,9 @@ BeautyCassieScript:
end
TrainerGuitaristClyde:
- trainer EVENT_BEAT_GUITARIST_CLYDE, GUITARIST, CLYDE, GuitaristClydeSeenText, GuitaristClydeBeatenText, 0, GuitaristClydeScript
+ trainer EVENT_BEAT_GUITARIST_CLYDE, GUITARIST, CLYDE, GuitaristClydeSeenText, GuitaristClydeBeatenText, 0, .Script
-GuitaristClydeScript:
+.Script:
end_if_just_battled
special Mobile_DummyReturnFalse
iftrue .mobile
diff --git a/maps/FuchsiaBillSpeechHouse.asm b/maps/FuchsiaBillSpeechHouse.asm
index 9d415f2f8..2b420775b 100644
--- a/maps/FuchsiaBillSpeechHouse.asm
+++ b/maps/FuchsiaBillSpeechHouse.asm
@@ -9,19 +9,19 @@ FuchsiaBillSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanFScript_0x1963bd:
- jumptextfaceplayer UnknownText_0x1963c3
+FuchsiaBillSpeechHousePokefanFScript:
+ jumptextfaceplayer FuchsiaBillSpeechHousePokefanFText
-YoungsterScript_0x1963c0:
- jumptextfaceplayer UnknownText_0x1963f9
+FuchsiaBillSpeechHouseYoungsterScript:
+ jumptextfaceplayer FuchsiaBillSpeechHouseYoungsterText
-UnknownText_0x1963c3:
+FuchsiaBillSpeechHousePokefanFText:
text "My grandpa is at "
line "my brother BILL's"
cont "on CERULEAN CAPE."
done
-UnknownText_0x1963f9:
+FuchsiaBillSpeechHouseYoungsterText:
text "I saw these weird,"
line "slow #MON on"
cont "CYCLING ROAD."
@@ -44,5 +44,5 @@ FuchsiaBillSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x1963bd, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1963c0, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FuchsiaBillSpeechHousePokefanFScript, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FuchsiaBillSpeechHouseYoungsterScript, -1
diff --git a/maps/FuchsiaMart.asm b/maps/FuchsiaMart.asm
index 423dfdc1a..7e123e721 100644
--- a/maps/FuchsiaMart.asm
+++ b/maps/FuchsiaMart.asm
@@ -16,13 +16,13 @@ ClerkScript_0x195ce8:
closetext
end
-FisherScript_0x195cef:
- jumptextfaceplayer UnknownText_0x195cf5
+FuchsiaMartFisherScript:
+ jumptextfaceplayer FuchsiaMartFisherText
-CooltrainerFScript_0x195cf2:
- jumptextfaceplayer UnknownText_0x195d36
+FuchsiaMartCooltrainerFScript:
+ jumptextfaceplayer FuchsiaMartCooltrainerFText
-UnknownText_0x195cf5:
+FuchsiaMartFisherText:
text "I was hoping to"
line "buy some SAFARI"
@@ -30,7 +30,7 @@ UnknownText_0x195cf5:
line "but it's closed…"
done
-UnknownText_0x195d36:
+FuchsiaMartCooltrainerFText:
text "The SAFARI ZONE"
line "WARDEN's grand-"
cont "daughter lives in"
@@ -55,5 +55,5 @@ FuchsiaMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x195ce8, -1
- person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x195cef, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x195cf2, -1
+ person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FuchsiaMartFisherScript, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FuchsiaMartCooltrainerFScript, -1
diff --git a/maps/FuchsiaPokecenter1F.asm b/maps/FuchsiaPokecenter1F.asm
index 422661e0b..d275eaece 100644
--- a/maps/FuchsiaPokecenter1F.asm
+++ b/maps/FuchsiaPokecenter1F.asm
@@ -18,11 +18,11 @@ FuchsiaPokecenter1F_MapScriptHeader:
NurseScript_0x196459:
jumpstd pokecenternurse
-CooltrainerMScript_0x19645c:
- jumptextfaceplayer UnknownText_0x196494
+FuchsiaPokecenter1FCooltrainerMScript:
+ jumptextfaceplayer FuchsiaPokecenter1FCooltrainerMText
-CooltrainerFScript_0x19645f:
- jumptextfaceplayer UnknownText_0x1964dc
+FuchsiaPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer FuchsiaPokecenter1FCooltrainerFText
JanineImpersonatorScript_0x196462:
faceplayer
@@ -60,7 +60,7 @@ MovementData_0x196486:
turn_head DOWN
step_end
-UnknownText_0x196494:
+FuchsiaPokecenter1FCooltrainerMText:
text "Hey! You have a"
line "brand new kind of"
cont "#DEX."
@@ -69,7 +69,7 @@ UnknownText_0x196494:
line "that to you?"
done
-UnknownText_0x1964dc:
+FuchsiaPokecenter1FCooltrainerFText:
text "I got quite a"
line "shock at the GYM."
@@ -107,6 +107,6 @@ FuchsiaPokecenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, NurseScript_0x196459, -1
- person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x19645c, -1
- person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19645f, -1
+ person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FuchsiaPokecenter1FCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FuchsiaPokecenter1FCooltrainerFScript, -1
person_event SPRITE_JANINE_IMPERSONATOR, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, JanineImpersonatorScript_0x196462, -1
diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm
index 48959cac8..74aedf8a7 100644
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -6,13 +6,13 @@ const_value set 2
const GOLDENRODCITY_YOUNGSTER2
const GOLDENRODCITY_LASS
const GOLDENRODCITY_GRAMPS
+ const GOLDENRODCITY_ROCKETSCOUT
const GOLDENRODCITY_ROCKET1
const GOLDENRODCITY_ROCKET2
const GOLDENRODCITY_ROCKET3
const GOLDENRODCITY_ROCKET4
const GOLDENRODCITY_ROCKET5
const GOLDENRODCITY_ROCKET6
- const GOLDENRODCITY_ROCKET7
const GOLDENRODCITY_POKEFAN_M2
GoldenrodCity_MapScriptHeader:
@@ -160,11 +160,11 @@ MoveTutor:
closetext
end
-PokefanMScript_0x1989e3:
- jumptextfaceplayer UnknownText_0x198a69
+GoldenrodCityPokefanMScript:
+ jumptextfaceplayer GoldenrodCityPokefanMText
-YoungsterScript_0x1989e6:
- jumptextfaceplayer UnknownText_0x198aa9
+GoldenrodCityYoungster1Script:
+ jumptextfaceplayer GoldenrodCityYoungster1Text
CooltrainerFScript_0x1989e9:
faceplayer
@@ -198,43 +198,43 @@ CooltrainerFScript_0x1989fd:
closetext
end
-YoungsterScript_0x198a11:
- jumptextfaceplayer UnknownText_0x198c36
+GoldenrodCityYoungster2Script:
+ jumptextfaceplayer GoldenrodCityYoungster2Text
-LassScript_0x198a14:
- jumptextfaceplayer UnknownText_0x198c83
+GoldenrodCityLassScript:
+ jumptextfaceplayer GoldenrodCityLassText
-GrampsScript_0x198a17:
- jumptextfaceplayer UnknownText_0x198ccf
+GoldenrodCityGrampsScript:
+ jumptextfaceplayer GoldenrodCityGrampsText
-RocketScript_0x198a1a:
+GoldenrodCityRocketScoutScript:
opentext
- writetext UnknownText_0x198d0d
+ writetext GoldenrodCityRocketScoutText1
buttonsound
faceplayer
- writetext UnknownText_0x198d2a
+ writetext GoldenrodCityRocketScoutText2
waitbutton
closetext
- spriteface GOLDENRODCITY_ROCKET1, UP
+ spriteface GOLDENRODCITY_ROCKETSCOUT, UP
end
-RocketScript_0x198a29:
- jumptextfaceplayer UnknownText_0x198d4e
+GoldenrodCityRocket1Script:
+ jumptextfaceplayer GoldenrodCityRocket1Text
-RocketScript_0x198a2c:
- jumptextfaceplayer UnknownText_0x198d6d
+GoldenrodCityRocket2Script:
+ jumptextfaceplayer GoldenrodCityRocket2Text
-RocketScript_0x198a2f:
- jumptextfaceplayer UnknownText_0x198daa
+GoldenrodCityRocket3Script:
+ jumptextfaceplayer GoldenrodCityRocket3Text
-RocketScript_0x198a32:
- jumptextfaceplayer UnknownText_0x198de2
+GoldenrodCityRocket4Script:
+ jumptextfaceplayer GoldenrodCityRocket4Text
-RocketScript_0x198a35:
- jumptextfaceplayer UnknownText_0x198e1f
+GoldenrodCityRocket5Script:
+ jumptextfaceplayer GoldenrodCityRocket5Text
-RocketScript_0x198a38:
- jumptextfaceplayer UnknownText_0x198e4b
+GoldenrodCityRocket6Script:
+ jumptextfaceplayer GoldenrodCityRocket6Text
GoldenrodCityStationSign:
jumptext GoldenrodCityStationSignText
@@ -286,7 +286,7 @@ MovementData_0x198a63:
step UP
step_end
-UnknownText_0x198a69:
+GoldenrodCityPokefanMText:
text "They built the new"
line "RADIO TOWER to"
@@ -294,7 +294,7 @@ UnknownText_0x198a69:
line "creaky one."
done
-UnknownText_0x198aa9:
+GoldenrodCityYoungster1Text:
text "I know there's a"
line "new BIKE SHOP, but"
@@ -339,7 +339,7 @@ UnknownText_0x198c14:
line "works as a radio!"
done
-UnknownText_0x198c36:
+GoldenrodCityYoungster2Text:
text "E-he-he-he…"
para "I got in trouble"
@@ -349,7 +349,7 @@ UnknownText_0x198c36:
line "DEPT.STORE."
done
-UnknownText_0x198c83:
+GoldenrodCityLassText:
text "The man at that"
line "house rates your"
cont "#MON names."
@@ -358,7 +358,7 @@ UnknownText_0x198c83:
line "your #MON."
done
-UnknownText_0x198ccf:
+GoldenrodCityGrampsText:
text "Whew! This is one"
line "big town. I don't"
@@ -366,22 +366,22 @@ UnknownText_0x198ccf:
line "thing is."
done
-UnknownText_0x198d0d:
+GoldenrodCityRocketScoutText1:
text "So this is the"
line "RADIO TOWER…"
done
-UnknownText_0x198d2a:
+GoldenrodCityRocketScoutText2:
text "What do you want,"
line "you pest? Scram!"
done
-UnknownText_0x198d4e:
+GoldenrodCityRocket1Text:
text "Stay out of the"
line "way! Beat it!"
done
-UnknownText_0x198d6d:
+GoldenrodCityRocket2Text:
text "Take over the"
line "RADIO TOWER…"
@@ -389,7 +389,7 @@ UnknownText_0x198d6d:
line "your business!"
done
-UnknownText_0x198daa:
+GoldenrodCityRocket3Text:
text "#MON? They're"
line "nothing more than"
@@ -397,7 +397,7 @@ UnknownText_0x198daa:
line "money!"
done
-UnknownText_0x198de2:
+GoldenrodCityRocket4Text:
text "Our dream will"
line "soon come true…"
@@ -405,13 +405,13 @@ UnknownText_0x198de2:
line "struggle…"
done
-UnknownText_0x198e1f:
+GoldenrodCityRocket5Text:
text "Hey, brat! You"
line "don't belong here!"
cont "Get lost!"
done
-UnknownText_0x198e4b:
+GoldenrodCityRocket6Text:
text "Come taste the"
line "true terror of"
cont "TEAM ROCKET!"
@@ -596,18 +596,18 @@ GoldenrodCity_MapEventHeader:
.PersonEvents:
db 15
- person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityPokefanMScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityYoungster1Script, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
- person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a29, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2c, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a2f, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodCityYoungster2Script, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodCityLassScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityGrampsScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocketScoutScript, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
+ person_event SPRITE_ROCKET, 20, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket1Script, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket2Script, EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 23, 16, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket3Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket4Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket5Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodCityRocket6Script, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
diff --git a/maps/GoldenrodDeptStore1F.asm b/maps/GoldenrodDeptStore1F.asm
index 51c387d07..7b9671054 100644
--- a/maps/GoldenrodDeptStore1F.asm
+++ b/maps/GoldenrodDeptStore1F.asm
@@ -11,17 +11,17 @@ GoldenrodDeptStore1F_MapScriptHeader:
.MapCallbacks:
db 0
-ReceptionistScript_0x55981:
- jumptextfaceplayer UnknownText_0x55993
+GoldenrodDeptStore1FReceptionistScript:
+ jumptextfaceplayer GoldenrodDeptStore1FReceptionistText
-GentlemanScript_0x55984:
- jumptextfaceplayer UnknownText_0x559b7
+GoldenrodDeptStore1FGentlemanScript:
+ jumptextfaceplayer GoldenrodDeptStore1FGentlemanText
-PokefanFScript_0x55987:
- jumptextfaceplayer UnknownText_0x55a1a
+GoldenrodDeptStore1FPokefanFScript:
+ jumptextfaceplayer GoldenrodDeptStore1FPokefanFText
-BugCatcherScript_0x5598a:
- jumptextfaceplayer UnknownText_0x55a3a
+GoldenrodDeptStore1FBugCatcherScript:
+ jumptextfaceplayer GoldenrodDeptStore1FBugCatcherText
GoldenrodDeptStore1FDirectory:
jumptext GoldenrodDeptStore1FDirectoryText
@@ -29,12 +29,12 @@ GoldenrodDeptStore1FDirectory:
GoldenrodDeptStore1FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x55993:
+GoldenrodDeptStore1FReceptionistText:
text "Welcome to GOLDEN-"
line "ROD DEPT.STORE."
done
-UnknownText_0x559b7:
+GoldenrodDeptStore1FGentlemanText:
text "The DEPT.STORE"
line "has a decent se-"
cont "lection."
@@ -46,12 +46,12 @@ UnknownText_0x559b7:
line "prizes."
done
-UnknownText_0x55a1a:
+GoldenrodDeptStore1FPokefanFText:
text "I'm raring to shop"
line "again today!"
done
-UnknownText_0x55a3a:
+GoldenrodDeptStore1FBugCatcherText:
text "Mom's good at"
line "bargain hunting."
@@ -99,7 +99,7 @@ GoldenrodDeptStore1F_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x55981, -1
- person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x55987, -1
- person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x5598a, -1
- person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55984, -1
+ person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FReceptionistScript, -1
+ person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FPokefanFScript, -1
+ person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FBugCatcherScript, -1
+ person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore1FGentlemanScript, -1
diff --git a/maps/GoldenrodDeptStore2F.asm b/maps/GoldenrodDeptStore2F.asm
index b6cda7cb1..41e929bda 100644
--- a/maps/GoldenrodDeptStore2F.asm
+++ b/maps/GoldenrodDeptStore2F.asm
@@ -26,14 +26,14 @@ ClerkScript_0x55b65:
closetext
end
-YoungsterScript_0x55b6d:
- jumptextfaceplayer UnknownText_0x55c25
+GoldenrodDeptStore2FYoungsterScript:
+ jumptextfaceplayer GoldenrodDeptStore2FYoungsterText
-CooltrainerFScript_0x55b70:
- jumptextfaceplayer UnknownText_0x55c7b
+GoldenrodDeptStore2FCooltrainerFScript:
+ jumptextfaceplayer GoldenrodDeptStore2FCooltrainerFText
-GentlemanScript_0x55b73:
- jumptextfaceplayer UnknownText_0x55cb7
+GoldenrodDeptStore2FGentlemanScript:
+ jumptextfaceplayer GoldenrodDeptStore2FGentlemanText
GoldenrodDeptStore2FDirectory:
jumptext GoldenrodDeptStore2FDirectoryText
@@ -62,7 +62,7 @@ UnknownText_0x55bd3:
cont "techniques."
done
-UnknownText_0x55c25:
+GoldenrodDeptStore2FYoungsterText:
text "#GEAR can store"
line "up to ten phone"
cont "numbers."
@@ -72,7 +72,7 @@ UnknownText_0x55c25:
cont "to keep."
done
-UnknownText_0x55c7b:
+GoldenrodDeptStore2FCooltrainerFText:
text "I got my ABRA at"
line "the GAME CORNER."
@@ -80,7 +80,7 @@ UnknownText_0x55c7b:
line "partner."
done
-UnknownText_0x55cb7:
+GoldenrodDeptStore2FGentlemanText:
text "This DEPT.STORE"
line "makes me realize"
@@ -122,6 +122,6 @@ GoldenrodDeptStore2F_MapEventHeader:
db 5
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b5d, -1
person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55b65, -1
- person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x55b6d, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x55b70, -1
- person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55b73, -1
+ person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore2FYoungsterScript, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore2FCooltrainerFScript, -1
+ person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore2FGentlemanScript, -1
diff --git a/maps/GoldenrodDeptStore3F.asm b/maps/GoldenrodDeptStore3F.asm
index a9cd1dc15..ec07b0a72 100644
--- a/maps/GoldenrodDeptStore3F.asm
+++ b/maps/GoldenrodDeptStore3F.asm
@@ -17,11 +17,11 @@ ClerkScript_0x55db8:
closetext
end
-SuperNerdScript_0x55dc0:
- jumptextfaceplayer UnknownText_0x55dcc
+GoldenrodDeptStore3FSuperNerdScript:
+ jumptextfaceplayer GoldenrodDeptStore3FSuperNerdText
-RockerScript_0x55dc3:
- jumptextfaceplayer UnknownText_0x55e15
+GoldenrodDeptStore3FRockerScript:
+ jumptextfaceplayer GoldenrodDeptStore3FRockerText
GoldenrodDeptStore3FDirectory:
jumptext GoldenrodDeptStore3FDirectoryText
@@ -29,7 +29,7 @@ GoldenrodDeptStore3FDirectory:
GoldenrodDeptStore3FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x55dcc:
+GoldenrodDeptStore3FSuperNerdText:
text "I, I, I'm really"
line "impatient!"
@@ -38,7 +38,7 @@ UnknownText_0x55dcc:
cont "my #MON."
done
-UnknownText_0x55e15:
+GoldenrodDeptStore3FRockerText:
text "Hey! When you bat-"
line "tle, do you use X"
cont "SPECIAL?"
@@ -77,5 +77,5 @@ GoldenrodDeptStore3F_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55db8, -1
- person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x55dc0, -1
- person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x55dc3, -1
+ person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore3FSuperNerdScript, -1
+ person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore3FRockerScript, -1
diff --git a/maps/GoldenrodDeptStore4F.asm b/maps/GoldenrodDeptStore4F.asm
index 61c5ff120..8e8fc4714 100644
--- a/maps/GoldenrodDeptStore4F.asm
+++ b/maps/GoldenrodDeptStore4F.asm
@@ -18,11 +18,11 @@ ClerkScript_0x55ee9:
closetext
end
-CooltrainerMScript_0x55ef1:
- jumptextfaceplayer UnknownText_0x55f08
+GoldenrodDeptStore4FCooltrainerMScript:
+ jumptextfaceplayer GoldenrodDeptStore4FCooltrainerMText
-BugCatcherScript_0x55ef4:
- jumptextfaceplayer UnknownText_0x55f52
+GoldenrodDeptStore4FBugCatcherScript:
+ jumptextfaceplayer GoldenrodDeptStore4FBugCatcherText
GameboyKidScript_0x55ef7:
faceplayer
@@ -39,7 +39,7 @@ GoldenrodDeptStore4FDirectory:
GoldenrodDeptStore4FElevatorButton:
jumpstd elevatorbutton
-UnknownText_0x55f08:
+GoldenrodDeptStore4FCooltrainerMText:
text "Hey. I love strong"
line "#MON."
@@ -48,7 +48,7 @@ UnknownText_0x55f08:
cont "their ATTACK."
done
-UnknownText_0x55f52:
+GoldenrodDeptStore4FBugCatcherText:
text "IRON adds to your"
line "#MON's DEFENSE."
done
@@ -98,6 +98,6 @@ GoldenrodDeptStore4F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_CLERK, 5, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x55ee9, -1
- person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x55ef1, -1
- person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x55ef4, -1
+ person_event SPRITE_COOLTRAINER_M, 7, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore4FCooltrainerMScript, -1
+ person_event SPRITE_BUG_CATCHER, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore4FBugCatcherScript, -1
person_event SPRITE_GAMEBOY_KID, 1, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x55ef7, -1
diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm
index 0c33b44a3..e4b99959e 100644
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -120,8 +120,8 @@ Carrie:
closetext
end
-LassScript_0x56130:
- jumptextfaceplayer UnknownText_0x562ad
+GoldenrodDeptStore5FLassScript:
+ jumptextfaceplayer GoldenrodDeptStore5FLassText
Mike:
faceplayer
@@ -131,8 +131,8 @@ Mike:
closetext
end
-PokefanMScript_0x5613a:
- jumptextfaceplayer UnknownText_0x562f3
+GoldenrodDeptStore5FPokefanMScript:
+ jumptextfaceplayer GoldenrodDeptStore5FPokefanMText
GoldenrodDeptStore5FDirectory:
jumptext GoldenrodDeptStore5FDirectoryText
@@ -189,7 +189,7 @@ UnknownText_0x56279:
cont "Game Boy Color."
done
-UnknownText_0x562ad:
+GoldenrodDeptStore5FLassText:
text "On Sundays, a lady"
line "comes to check out"
cont "#MON."
@@ -198,7 +198,7 @@ UnknownText_0x562ad:
line "away TMs!"
done
-UnknownText_0x562f3:
+GoldenrodDeptStore5FPokefanMText:
text "You can't rename a"
line "#MON you get in"
cont "a trade."
@@ -238,8 +238,8 @@ GoldenrodDeptStore5F_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5609c, -1
- person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x56130, -1
+ person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore5FLassScript, -1
person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Mike, -1
- person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5613a, -1
+ person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore5FPokefanMScript, -1
person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Carrie, -1
person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm
index b8b683561..18c936e81 100644
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -84,11 +84,11 @@ GoldenrodVendingMachine:
db "CANCEL@"
-LassScript_0x564bf:
- jumptextfaceplayer UnknownText_0x5654b
+GoldenrodDeptStore6FLassScript:
+ jumptextfaceplayer GoldenrodDeptStore6FLassText
-SuperNerdScript_0x564c2:
- jumptextfaceplayer UnknownText_0x565ca
+GoldenrodDeptStore6FSuperNerdScript:
+ jumptextfaceplayer GoldenrodDeptStore6FSuperNerdText
GoldenrodDeptStore6FDirectory:
jumptext GoldenrodDeptStore6FDirectoryText
@@ -119,7 +119,7 @@ GoldenrodVendingNoSpaceText:
line "room for stuff."
done
-UnknownText_0x5654b:
+GoldenrodDeptStore6FLassText:
text "Do you listen to"
line "LUCKY CHANNEL?"
@@ -133,7 +133,7 @@ UnknownText_0x5654b:
line "numbers."
done
-UnknownText_0x565ca:
+GoldenrodDeptStore6FSuperNerdText:
text "If you're tired,"
line "try the vending"
cont "machine's drinks."
@@ -173,5 +173,5 @@ GoldenrodDeptStore6F_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x564bf, -1
- person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x564c2, -1
+ person_event SPRITE_LASS, 2, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore6FLassScript, -1
+ person_event SPRITE_SUPER_NERD, 2, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStore6FSuperNerdScript, -1
diff --git a/maps/GoldenrodDeptStoreB1F.asm b/maps/GoldenrodDeptStoreB1F.asm
index 859e5e6dd..4e6a3b03e 100644
--- a/maps/GoldenrodDeptStoreB1F.asm
+++ b/maps/GoldenrodDeptStoreB1F.asm
@@ -46,14 +46,14 @@ UnknownScript_0x7d7ac:
clearevent EVENT_WAREHOUSE_BLOCKED_OFF
return
-BlackBeltScript_0x7d7b0:
- jumptextfaceplayer UnknownText_0x7d7cb
+GoldenrodDeptStoreB1FBlackBelt1Script:
+ jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt1Text
-BlackBeltScript_0x7d7b3:
- jumptextfaceplayer UnknownText_0x7d82c
+GoldenrodDeptStoreB1FBlackBelt2Script:
+ jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt2Text
-BlackBeltScript_0x7d7b6:
- jumptextfaceplayer UnknownText_0x7d875
+GoldenrodDeptStoreB1FBlackBelt3Script:
+ jumptextfaceplayer GoldenrodDeptStoreB1FBlackBelt3Text
MachopScript_0x7d7b9:
opentext
@@ -75,7 +75,7 @@ GoldenrodDeptStoreB1FBurnHeal:
GoldenrodDeptStoreB1FUltraBall:
itemball ULTRA_BALL
-UnknownText_0x7d7cb:
+GoldenrodDeptStoreB1FBlackBelt1Text:
text "Hey, kid! You're"
line "holding us up!"
@@ -86,7 +86,7 @@ UnknownText_0x7d7cb:
line "one can see us!"
done
-UnknownText_0x7d82c:
+GoldenrodDeptStoreB1FBlackBelt2Text:
text "I lose my passion"
line "for work if some-"
cont "one's watching."
@@ -95,7 +95,7 @@ UnknownText_0x7d82c:
line "scoot!"
done
-UnknownText_0x7d875:
+GoldenrodDeptStoreB1FBlackBelt3Text:
text "Oohah! Oohah!"
para "The stuff on the"
@@ -131,7 +131,7 @@ GoldenrodDeptStoreB1F_MapEventHeader:
person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FAmuletCoin, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FBurnHeal, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, GoldenrodDeptStoreB1FUltraBall, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
- person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b0, -1
- person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b3, -1
- person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x7d7b6, -1
+ person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt1Script, -1
+ person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt2Script, -1
+ person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreB1FBlackBelt3Script, -1
person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, MachopScript_0x7d7b9, -1
diff --git a/maps/GoldenrodDeptStoreElevator.asm b/maps/GoldenrodDeptStoreElevator.asm
index 3a12e7707..82f14b404 100644
--- a/maps/GoldenrodDeptStoreElevator.asm
+++ b/maps/GoldenrodDeptStoreElevator.asm
@@ -62,8 +62,8 @@ GoldenrodDeptStoreElevator_MapEventHeader:
.Warps:
db 2
- warp_def $3, $1, 255, GOLDENROD_DEPT_STORE_1F
- warp_def $3, $2, 255, GOLDENROD_DEPT_STORE_1F
+ warp_def $3, $1, -1, GOLDENROD_DEPT_STORE_1F
+ warp_def $3, $2, -1, GOLDENROD_DEPT_STORE_1F
.XYTriggers:
db 0
diff --git a/maps/GoldenrodDeptStoreRoof.asm b/maps/GoldenrodDeptStoreRoof.asm
index ed61d935f..bfdc3a527 100644
--- a/maps/GoldenrodDeptStoreRoof.asm
+++ b/maps/GoldenrodDeptStoreRoof.asm
@@ -45,8 +45,8 @@ ClerkScript_0x5673f:
closetext
end
-PokefanFScript_0x56746:
- jumptextfaceplayer UnknownText_0x5677f
+GoldenrodDeptStoreRoofPokefanFScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofPokefanFText
FisherScript_0x56749:
faceplayer
@@ -57,8 +57,8 @@ FisherScript_0x56749:
spriteface GOLDENRODDEPTSTOREROOF_FISHER, UP
end
-TwinScript_0x56754:
- jumptextfaceplayer UnknownText_0x56839
+GoldenrodDeptStoreRoofTwinScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofTwinText
SuperNerdScript_0x56757:
opentext
@@ -73,14 +73,14 @@ SuperNerdScript_0x56757:
spriteface GOLDENRODDEPTSTOREROOF_SUPER_NERD, RIGHT
end
-PokefanMScript_0x5676a:
- jumptextfaceplayer UnknownText_0x5688e
+GoldenrodDeptStoreRoofPokefanMScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofPokefanMText
-TeacherScript_0x5676d:
- jumptextfaceplayer UnknownText_0x56901
+GoldenrodDeptStoreRoofTeacherScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofTeacherText
-BugCatcherScript_0x56770:
- jumptextfaceplayer UnknownText_0x56942
+GoldenrodDeptStoreRoofBugCatcherScript:
+ jumptextfaceplayer GoldenrodDeptStoreRoofBugCatcherText
Binoculars1:
jumptext Binoculars1Text
@@ -94,7 +94,7 @@ Binoculars3:
PokeDollVendingMachine:
jumptext PokeDollVendingMachineText
-UnknownText_0x5677f:
+GoldenrodDeptStoreRoofPokefanFText:
text "Whew, I'm tired."
para "I sometimes come"
@@ -116,7 +116,7 @@ UnknownText_0x567d2:
line "dolls!"
done
-UnknownText_0x56839:
+GoldenrodDeptStoreRoofTwinText:
text "They have bargain"
line "sales here every"
cont "so often."
@@ -131,7 +131,7 @@ UnknownText_0x56871:
line "bothering me?"
done
-UnknownText_0x5688e:
+GoldenrodDeptStoreRoofPokefanMText:
text "There's something"
line "I really want, but"
@@ -143,7 +143,7 @@ UnknownText_0x5688e:
cont "I've collected…"
done
-UnknownText_0x56901:
+GoldenrodDeptStoreRoofTeacherText:
text "Oh, everything is"
line "so cheap!"
@@ -151,7 +151,7 @@ UnknownText_0x56901:
line "my PACK's crammed!"
done
-UnknownText_0x56942:
+GoldenrodDeptStoreRoofBugCatcherText:
text "My #MON always"
line "get paralyzed or"
@@ -232,10 +232,10 @@ GoldenrodDeptStoreRoof_MapEventHeader:
.PersonEvents:
db 8
person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x56746, -1
+ person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofPokefanFScript, -1
person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, FisherScript_0x56749, -1
- person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
+ person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofTwinScript, EVENT_GOLDENROD_SALE_ON
person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON
- person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofPokefanMScript, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofTeacherScript, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodDeptStoreRoofBugCatcherScript, EVENT_GOLDENROD_SALE_OFF
diff --git a/maps/GoldenrodGym.asm b/maps/GoldenrodGym.asm
index c8f47f6dc..3551b7ee7 100644
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -93,9 +93,9 @@ GoldenrodGymTriggerRockets:
jumpstd radiotowerrockets
TrainerLassCarrie:
- trainer EVENT_BEAT_LASS_CARRIE, LASS, CARRIE, LassCarrieSeenText, LassCarrieBeatenText, 0, LassCarrieScript
+ trainer EVENT_BEAT_LASS_CARRIE, LASS, CARRIE, LassCarrieSeenText, LassCarrieBeatenText, 0, .Script
-LassCarrieScript:
+.Script:
end_if_just_battled
opentext
writetext LassCarrieAfterBattleText
@@ -117,9 +117,9 @@ WhitneyCriesScript:
end
TrainerLassBridget:
- trainer EVENT_BEAT_LASS_BRIDGET, LASS, BRIDGET, LassBridgetSeenText, LassBridgetBeatenText, 0, LassBridgetScript
+ trainer EVENT_BEAT_LASS_BRIDGET, LASS, BRIDGET, LassBridgetSeenText, LassBridgetBeatenText, 0, .Script
-LassBridgetScript:
+.Script:
end_if_just_battled
opentext
writetext LassBridgetAfterBattleText
@@ -128,9 +128,9 @@ LassBridgetScript:
end
TrainerBeautyVictoria:
- trainer EVENT_BEAT_BEAUTY_VICTORIA, BEAUTY, VICTORIA, BeautyVictoriaSeenText, BeautyVictoriaBeatenText, 0, BeautyVictoriaScript
+ trainer EVENT_BEAT_BEAUTY_VICTORIA, BEAUTY, VICTORIA, BeautyVictoriaSeenText, BeautyVictoriaBeatenText, 0, .Script
-BeautyVictoriaScript:
+.Script:
end_if_just_battled
opentext
writetext BeautyVictoriaAfterBattleText
@@ -139,9 +139,9 @@ BeautyVictoriaScript:
end
TrainerBeautySamantha:
- trainer EVENT_BEAT_BEAUTY_SAMANTHA, BEAUTY, SAMANTHA, BeautySamanthaSeenText, BeautySamanthaBeatenText, 0, BeautySamanthaScript
+ trainer EVENT_BEAT_BEAUTY_SAMANTHA, BEAUTY, SAMANTHA, BeautySamanthaSeenText, BeautySamanthaBeatenText, 0, .Script
-BeautySamanthaScript:
+.Script:
end_if_just_battled
opentext
writetext BeautySamanthaAfterBattleText
diff --git a/maps/GoldenrodHappinessRater.asm b/maps/GoldenrodHappinessRater.asm
index 9b082c082..7455a1eb1 100644
--- a/maps/GoldenrodHappinessRater.asm
+++ b/maps/GoldenrodHappinessRater.asm
@@ -59,11 +59,11 @@ UnknownScript_0x54991:
closetext
end
-PokefanMScript_0x54997:
- jumptextfaceplayer UnknownText_0x54b04
+GoldenrodHappinessRaterPokefanMScript:
+ jumptextfaceplayer GoldenrodHappinessRaterPokefanMText
-TwinScript_0x5499a:
- jumptextfaceplayer UnknownText_0x54b67
+GoldenrodHappinessRaterTwinScript:
+ jumptextfaceplayer GoldenrodHappinessRaterTwinText
HappinessRatersHouseBookshelf:
jumpstd difficultbookshelf
@@ -118,7 +118,7 @@ UnknownText_0x54ad1:
cont "It looks mean."
done
-UnknownText_0x54b04:
+GoldenrodHappinessRaterPokefanMText:
text "I keep losing in"
line "battles, and my"
@@ -130,7 +130,7 @@ UnknownText_0x54b04:
cont "like me much…"
done
-UnknownText_0x54b67:
+GoldenrodHappinessRaterTwinText:
text "When I use an item"
line "on my #MON, it"
cont "acts really glad!"
@@ -157,5 +157,5 @@ GoldenrodHappinessRater_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x54953, -1
- person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x54997, -1
- person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TwinScript_0x5499a, -1
+ person_event SPRITE_POKEFAN_M, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodHappinessRaterPokefanMScript, -1
+ person_event SPRITE_TWIN, 6, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodHappinessRaterTwinScript, -1
diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm
index d94c5a3bd..a00b47e11 100644
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -68,8 +68,8 @@ Script_ArriveFromSaffron:
closetext
end
-GentlemanScript_0x55143:
- jumptextfaceplayer UnknownText_0x552a3
+GoldenrodMagnetTrainStationGentlemanScript:
+ jumptextfaceplayer GoldenrodMagnetTrainStationGentlemanText
MovementData_0x55146:
step UP
@@ -150,7 +150,7 @@ UnknownText_0x5526a:
line "again."
done
-UnknownText_0x552a3:
+GoldenrodMagnetTrainStationGentlemanText:
text "I'm the PRESIDENT."
para "My dream was to"
@@ -185,4 +185,4 @@ GoldenrodMagnetTrainStation_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x550ec, -1
- person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+ person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodMagnetTrainStationGentlemanScript, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
diff --git a/maps/GoldenrodNameRater.asm b/maps/GoldenrodNameRater.asm
index 216fba7c1..c785510ed 100644
--- a/maps/GoldenrodNameRater.asm
+++ b/maps/GoldenrodNameRater.asm
@@ -22,7 +22,7 @@ GoldenrodNameRaterBookshelf:
GoldenrodNameRaterRadio:
jumpstd radio2
-INCLUDE "text/sweethoney.asm"
+INCLUDE "text/unused_sweet_honey.asm"
GoldenrodNameRater_MapEventHeader:
; filler
diff --git a/maps/GoldenrodPPSpeechHouse.asm b/maps/GoldenrodPPSpeechHouse.asm
index 809970862..3eb250ff1 100644
--- a/maps/GoldenrodPPSpeechHouse.asm
+++ b/maps/GoldenrodPPSpeechHouse.asm
@@ -9,11 +9,11 @@ GoldenrodPPSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-FisherScript_0x5564a:
- jumptextfaceplayer UnknownText_0x55659
+GoldenrodPPSpeechHouseFisherScript:
+ jumptextfaceplayer GoldenrodPPSpeechHouseFisherText
-LassScript_0x5564d:
- jumptextfaceplayer UnknownText_0x556ca
+GoldenrodPPSpeechHouseLassScript:
+ jumptextfaceplayer GoldenrodPPSpeechHouseLassText
GoldenrodPPSpeechHouseBookshelf2:
jumpstd difficultbookshelf
@@ -24,7 +24,7 @@ GoldenrodPPSpeechHouseBookshelf1:
GoldenrodPPSpeechHouseRadio:
jumpstd radio2
-UnknownText_0x55659:
+GoldenrodPPSpeechHouseFisherText:
text "Once while I was"
line "battling, my"
@@ -38,7 +38,7 @@ UnknownText_0x55659:
line "gone."
done
-UnknownText_0x556ca:
+GoldenrodPPSpeechHouseLassText:
text "Sometimes, a"
line "healthy #MON"
@@ -71,5 +71,5 @@ GoldenrodPPSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x5564a, -1
- person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x5564d, -1
+ person_event SPRITE_FISHER, 4, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodPPSpeechHouseFisherScript, -1
+ person_event SPRITE_LASS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodPPSpeechHouseLassScript, -1
diff --git a/maps/GoldenrodPokeComCenter2FMobile.asm b/maps/GoldenrodPokeComCenter2FMobile.asm
index 289284ee5..ec4bb3f28 100644
--- a/maps/GoldenrodPokeComCenter2FMobile.asm
+++ b/maps/GoldenrodPokeComCenter2FMobile.asm
@@ -10,14 +10,14 @@ GoldenrodPokeComCenter2FMobile_MapScriptHeader:
.MapCallbacks:
db 0
-ScientistScript_0x625d1:
- jumptextfaceplayer UnknownText_0x62674
+GoldenrodPokeComCenter2FMobileScientist1Script:
+ jumptextfaceplayer GoldenrodPokeComCenter2FMobileScientist1Text
-ScientistScript_0x625d4:
- jumptextfaceplayer UnknownText_0x626f9
+GoldenrodPokeComCenter2FMobileScientist2Script:
+ jumptextfaceplayer GoldenrodPokeComCenter2FMobileScientist2Text
-ScientistScript_0x625d7:
- jumptextfaceplayer UnknownText_0x62795
+GoldenrodPokeComCenter2FMobileScientist3Script:
+ jumptextfaceplayer GoldenrodPokeComCenter2FMobileScientist3Text
MapGoldenrodPokeComCenter2FMobileSignpost0Script:
opentext
@@ -112,7 +112,7 @@ MenuDataHeader_0x6264c:
MapGoldenrodPokeComCenter2FMobileSignpost2Script:
jumptext UnknownText_0x62b26
-UnknownText_0x62674:
+GoldenrodPokeComCenter2FMobileScientist1Text:
text "#COM CENTER and"
line "MOBILE CENTER were"
@@ -126,7 +126,7 @@ UnknownText_0x62674:
line "strangers."
done
-UnknownText_0x626f9:
+GoldenrodPokeComCenter2FMobileScientist2Text:
text "When you linked"
line "with someone by"
@@ -143,7 +143,7 @@ UnknownText_0x626f9:
line "got the shakes!"
done
-UnknownText_0x62795:
+GoldenrodPokeComCenter2FMobileScientist3Text:
text "They were able to"
line "build this huge"
@@ -288,6 +288,6 @@ GoldenrodPokeComCenter2FMobile_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d1, -1
- person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d4, -1
- person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ScientistScript_0x625d7, -1
+ person_event SPRITE_SCIENTIST, 28, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GoldenrodPokeComCenter2FMobileScientist1Script, -1
+ person_event SPRITE_SCIENTIST, 27, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GoldenrodPokeComCenter2FMobileScientist2Script, -1
+ person_event SPRITE_SCIENTIST, 29, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodPokeComCenter2FMobileScientist3Script, -1
diff --git a/maps/GoldenrodPokecenter1F.asm b/maps/GoldenrodPokecenter1F.asm
index fc82c2549..e39832ab2 100644
--- a/maps/GoldenrodPokecenter1F.asm
+++ b/maps/GoldenrodPokecenter1F.asm
@@ -79,11 +79,11 @@ GoldenrodPokecenter1F_GSBallTriggerRight:
.cancel
end
-GameboyKidScript_0x6101e:
- jumptextfaceplayer UnknownText_0x62105
+GoldenrodPokecenter1FGameboyKidScript:
+ jumptextfaceplayer GoldenrodPokecenter1FGameboyKidText
-LassScript_0x61021:
- jumptextfaceplayer UnknownText_0x62260
+GoldenrodPokecenter1FLassScript:
+ jumptextfaceplayer GoldenrodPokecenter1FLassText
PokefanFScript_0x61024:
faceplayer
@@ -663,7 +663,7 @@ UnknownText_0x620a1:
cont "NEWS?"
done
-UnknownText_0x62105:
+GoldenrodPokecenter1FGameboyKidText:
text "The COLOSSEUM"
line "upstairs is for"
cont "link battles."
@@ -701,7 +701,7 @@ UnknownText_0x62222:
line "younger!"
done
-UnknownText_0x62260:
+GoldenrodPokecenter1FLassText:
text "A higher level"
line "#MON doesn't"
cont "always win."
@@ -827,6 +827,6 @@ GoldenrodPokecenter1F_MapEventHeader:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x60f91, -1
person_event SPRITE_LINK_RECEPTIONIST, 8, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ObjectEvent, -1
- person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x6101e, -1
- person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x61021, -1
+ person_event SPRITE_GAMEBOY_KID, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GoldenrodPokecenter1FGameboyKidScript, -1
+ person_event SPRITE_LASS, 4, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GoldenrodPokecenter1FLassScript, -1
person_event SPRITE_POKEFAN_F, 5, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x61024, -1
diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm
index 95a8e8b66..5365e35d4 100644
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -388,9 +388,9 @@ IlexForestHeadbuttGuyScript:
end
TrainerBug_catcherWayne:
- trainer EVENT_BEAT_BUG_CATCHER_WAYNE, BUG_CATCHER, WAYNE, Bug_catcherWayneSeenText, Bug_catcherWayneBeatenText, 0, Bug_catcherWayneScript
+ trainer EVENT_BEAT_BUG_CATCHER_WAYNE, BUG_CATCHER, WAYNE, Bug_catcherWayneSeenText, Bug_catcherWayneBeatenText, 0, .Script
-Bug_catcherWayneScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherWayneAfterBattleText
diff --git a/maps/IlexForestAzaleaGate.asm b/maps/IlexForestAzaleaGate.asm
index 8105d6f32..b8d5b5481 100644
--- a/maps/IlexForestAzaleaGate.asm
+++ b/maps/IlexForestAzaleaGate.asm
@@ -9,19 +9,19 @@ IlexForestAzaleaGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x62c7a:
- jumptextfaceplayer UnknownText_0x62c80
+IlexForestAzaleaGateOfficerScript:
+ jumptextfaceplayer IlexForestAzaleaGateOfficerText
-GrannyScript_0x62c7d:
- jumptextfaceplayer UnknownText_0x62cb0
+IlexForestAzaleaGateGrannyScript:
+ jumptextfaceplayer IlexForestAzaleaGateGrannyText
-UnknownText_0x62c80:
+IlexForestAzaleaGateOfficerText:
text "ILEX FOREST is"
line "big. Be careful!"
cont "Don't get lost."
done
-UnknownText_0x62cb0:
+IlexForestAzaleaGateGrannyText:
text "The FOREST is"
line "watched over by"
cont "its protector."
@@ -49,5 +49,5 @@ IlexForestAzaleaGate_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x62c7a, -1
- person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x62c7d, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, IlexForestAzaleaGateOfficerScript, -1
+ person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, IlexForestAzaleaGateGrannyScript, -1
diff --git a/maps/IndigoPlateauPokecenter1F.asm b/maps/IndigoPlateauPokecenter1F.asm
index 080d319d6..5e3850a80 100644
--- a/maps/IndigoPlateauPokecenter1F.asm
+++ b/maps/IndigoPlateauPokecenter1F.asm
@@ -145,8 +145,8 @@ ClerkScript_0x18012f:
closetext
end
-CooltrainerMScript_0x180136:
- jumptextfaceplayer UnknownText_0x180178
+IndigoPlateauPokecenter1FCooltrainerMScript:
+ jumptextfaceplayer IndigoPlateauPokecenter1FCooltrainerMText
TeleportGuyScript:
faceplayer
@@ -203,7 +203,7 @@ PlateauRivalLeavesMovement:
step DOWN
step_end
-UnknownText_0x180178:
+IndigoPlateauPokecenter1FCooltrainerMText:
text "At the #MON"
line "LEAGUE, you'll get"
@@ -325,7 +325,7 @@ IndigoPlateauPokecenter1F_MapEventHeader:
db 6
person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18012c, -1
person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18012f, -1
- person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x180136, -1
+ person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, IndigoPlateauPokecenter1FCooltrainerMScript, -1
person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, AbraScript, EVENT_TELEPORT_GUY
diff --git a/maps/LakeOfRage.asm b/maps/LakeOfRage.asm
index c6d56a03b..426caacd4 100644
--- a/maps/LakeOfRage.asm
+++ b/maps/LakeOfRage.asm
@@ -121,11 +121,11 @@ UnknownScript_0x7009c:
closetext
end
-SuperNerdScript_0x700a2:
- jumptextfaceplayer UnknownText_0x70444
+LakeOfRageSuperNerdScript:
+ jumptextfaceplayer LakeOfRageSuperNerdText
-CooltrainerFScript_0x700a5:
- jumptextfaceplayer UnknownText_0x704bb
+LakeOfRageCooltrainerFScript:
+ jumptextfaceplayer LakeOfRageCooltrainerFText
MapLakeOfRageSignpost0Script:
jumptext UnknownText_0x708d7
@@ -146,9 +146,9 @@ UnknownScript_0x700b8:
end
TrainerFisherAndre:
- trainer EVENT_BEAT_FISHER_ANDRE, FISHER, ANDRE, FisherAndreSeenText, FisherAndreBeatenText, 0, FisherAndreScript
+ trainer EVENT_BEAT_FISHER_ANDRE, FISHER, ANDRE, FisherAndreSeenText, FisherAndreBeatenText, 0, .Script
-FisherAndreScript:
+.Script:
end_if_just_battled
opentext
writetext FisherAndreAfterBattleText
@@ -157,9 +157,9 @@ FisherAndreScript:
end
TrainerFisherRaymond:
- trainer EVENT_BEAT_FISHER_RAYMOND, FISHER, RAYMOND, FisherRaymondSeenText, FisherRaymondBeatenText, 0, FisherRaymondScript
+ trainer EVENT_BEAT_FISHER_RAYMOND, FISHER, RAYMOND, FisherRaymondSeenText, FisherRaymondBeatenText, 0, .Script
-FisherRaymondScript:
+.Script:
end_if_just_battled
opentext
writetext FisherRaymondAfterBattleText
@@ -168,9 +168,9 @@ FisherRaymondScript:
end
TrainerCooltrainermAaron:
- trainer EVENT_BEAT_COOLTRAINERM_AARON, COOLTRAINERM, AARON, CooltrainermAaronSeenText, CooltrainermAaronBeatenText, 0, CooltrainermAaronScript
+ trainer EVENT_BEAT_COOLTRAINERM_AARON, COOLTRAINERM, AARON, CooltrainermAaronSeenText, CooltrainermAaronBeatenText, 0, .Script
-CooltrainermAaronScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermAaronAfterBattleText
@@ -179,9 +179,9 @@ CooltrainermAaronScript:
end
TrainerCooltrainerfLois:
- trainer EVENT_BEAT_COOLTRAINERF_LOIS, COOLTRAINERF, LOIS, CooltrainerfLoisSeenText, CooltrainerfLoisBeatenText, 0, CooltrainerfLoisScript
+ trainer EVENT_BEAT_COOLTRAINERF_LOIS, COOLTRAINERF, LOIS, CooltrainerfLoisSeenText, CooltrainerfLoisBeatenText, 0, .Script
-CooltrainerfLoisScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfLoisAfterBattleText
@@ -336,7 +336,7 @@ UnknownText_0x70421:
line "KARP are biting!"
done
-UnknownText_0x70444:
+LakeOfRageSuperNerdText:
text "I heard this lake"
line "was made by ram-"
cont "paging GYARADOS."
@@ -348,7 +348,7 @@ UnknownText_0x70444:
line "break now?"
done
-UnknownText_0x704bb:
+LakeOfRageCooltrainerFText:
text "Did my eyes de-"
line "ceive me? I saw a"
@@ -520,8 +520,8 @@ LakeOfRage_MapEventHeader:
db 12
person_event SPRITE_LANCE, 28, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LanceScript_0x70022, EVENT_LAKE_OF_RAGE_LANCE
person_event SPRITE_GRAMPS, 26, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x7008e, -1
- person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x700a2, -1
- person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x700a5, -1
+ person_event SPRITE_SUPER_NERD, 13, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LakeOfRageSuperNerdScript, -1
+ person_event SPRITE_COOLTRAINER_F, 29, 25, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LakeOfRageCooltrainerFScript, -1
person_event SPRITE_FISHER, 23, 30, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherAndre, EVENT_LAKE_OF_RAGE_CIVILIANS
person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
diff --git a/maps/LavRadioTower1F.asm b/maps/LavRadioTower1F.asm
index 1ad1bd35e..29f1cfc91 100644
--- a/maps/LavRadioTower1F.asm
+++ b/maps/LavRadioTower1F.asm
@@ -12,14 +12,14 @@ LavRadioTower1F_MapScriptHeader:
.MapCallbacks:
db 0
-ReceptionistScript_0x7ee63:
- jumptextfaceplayer UnknownText_0x7eebf
+LavRadioTower1FReceptionistScript:
+ jumptextfaceplayer LavRadioTower1FReceptionistText
-OfficerScript_0x7ee66:
- jumptextfaceplayer UnknownText_0x7eefa
+LavRadioTower1FOfficerScript:
+ jumptextfaceplayer LavRadioTower1FOfficerText
-SuperNerdScript_0x7ee69:
- jumptextfaceplayer UnknownText_0x7ef90
+LavRadioTower1FSuperNerdScript:
+ jumptextfaceplayer LavRadioTower1FSuperNerdText
GentlemanScript_0x7ee6c:
faceplayer
@@ -77,7 +77,7 @@ MapLavRadioTower1FSignpost1Script:
UnknownScript_0x7eebc:
jumptext UnknownText_0x7f36b
-UnknownText_0x7eebf:
+LavRadioTower1FReceptionistText:
text "Welcome!"
line "Feel free to look"
@@ -85,7 +85,7 @@ UnknownText_0x7eebf:
line "this floor."
done
-UnknownText_0x7eefa:
+LavRadioTower1FOfficerText:
text "Sorry, but you can"
line "only tour the"
cont "ground floor."
@@ -100,7 +100,7 @@ UnknownText_0x7eefa:
line "up our security."
done
-UnknownText_0x7ef90:
+LavRadioTower1FSuperNerdText:
text "Many people are"
line "hard at work here"
@@ -240,8 +240,8 @@ LavRadioTower1F_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x7ee63, -1
- person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7ee66, -1
- person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7ee69, -1
+ person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LavRadioTower1FReceptionistScript, -1
+ person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LavRadioTower1FOfficerScript, -1
+ person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LavRadioTower1FSuperNerdScript, -1
person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7ee6c, -1
person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7eea2, -1
diff --git a/maps/LavenderMart.asm b/maps/LavenderMart.asm
index 499e1187e..ba43dc2df 100644
--- a/maps/LavenderMart.asm
+++ b/maps/LavenderMart.asm
@@ -16,13 +16,13 @@ ClerkScript_0x7eb1c:
closetext
end
-PokefanMScript_0x7eb23:
- jumptextfaceplayer UnknownText_0x7eb29
+LavenderMartPokefanMScript:
+ jumptextfaceplayer LavenderMartPokefanMText
-RockerScript_0x7eb26:
- jumptextfaceplayer UnknownText_0x7ebac
+LavenderMartRockerScript:
+ jumptextfaceplayer LavenderMartRockerText
-UnknownText_0x7eb29:
+LavenderMartPokefanMText:
text "REPEL is a neces-"
line "sity if you are"
@@ -36,7 +36,7 @@ UnknownText_0x7eb29:
line "all the caves."
done
-UnknownText_0x7ebac:
+LavenderMartRockerText:
text "I heard about a"
line "craftsman who"
@@ -65,5 +65,5 @@ LavenderMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x7eb1c, -1
- person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x7eb23, -1
- person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RockerScript_0x7eb26, -1
+ person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LavenderMartPokefanMScript, -1
+ person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LavenderMartRockerScript, -1
diff --git a/maps/LavenderPokecenter1F.asm b/maps/LavenderPokecenter1F.asm
index c961364d5..5b740df4a 100644
--- a/maps/LavenderPokecenter1F.asm
+++ b/maps/LavenderPokecenter1F.asm
@@ -14,11 +14,11 @@ LavenderPokecenter1F_MapScriptHeader:
NurseScript_0x7e6a0:
jumpstd pokecenternurse
-GentlemanScript_0x7e6a3:
- jumptextfaceplayer UnknownText_0x7e6bd
+LavenderPokecenter1FGentlemanScript:
+ jumptextfaceplayer LavenderPokecenter1FGentlemanText
-TeacherScript_0x7e6a6:
- jumptextfaceplayer UnknownText_0x7e710
+LavenderPokecenter1FTeacherScript:
+ jumptextfaceplayer LavenderPokecenter1FTeacherText
YoungsterScript_0x7e6a9:
faceplayer
@@ -36,7 +36,7 @@ UnknownScript_0x7e6b7:
closetext
end
-UnknownText_0x7e6bd:
+LavenderPokecenter1FGentlemanText:
text "To the north of"
line "LAVENDER is ROCK"
@@ -45,7 +45,7 @@ UnknownText_0x7e6bd:
cont "POWER PLANT."
done
-UnknownText_0x7e710:
+LavenderPokecenter1FTeacherText:
text "There's a radio"
line "program that plays"
cont "# FLUTE music."
@@ -99,6 +99,6 @@ LavenderPokecenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x7e6a0, -1
- person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x7e6a3, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7e6a6, -1
+ person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LavenderPokecenter1FGentlemanScript, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LavenderPokecenter1FTeacherScript, -1
person_event SPRITE_YOUNGSTER, 5, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7e6a9, -1
diff --git a/maps/LavenderTown.asm b/maps/LavenderTown.asm
index 65bb780f2..9ed0c9c5a 100644
--- a/maps/LavenderTown.asm
+++ b/maps/LavenderTown.asm
@@ -16,17 +16,17 @@ LavenderTown_MapScriptHeader:
setflag ENGINE_FLYPOINT_LAVENDER
return
-PokefanMScript_0x1ad6e4:
- jumptextfaceplayer UnknownText_0x1ad702
+LavenderTownPokefanMScript:
+ jumptextfaceplayer LavenderTownPokefanMText
-TeacherScript_0x1ad6e7:
- jumptextfaceplayer UnknownText_0x1ad73a
+LavenderTownTeacherScript:
+ jumptextfaceplayer LavenderTownTeacherText
-GrampsScript_0x1ad6ea:
- jumptextfaceplayer UnknownText_0x1ad75c
+LavenderTownGrampsScript:
+ jumptextfaceplayer LavenderTownGrampsText
-YoungsterScript_0x1ad6ed:
- jumptextfaceplayer UnknownText_0x1ad7ac
+LavenderTownYoungsterScript:
+ jumptextfaceplayer LavenderTownYoungsterText
LavenderTownSign:
jumptext LavenderTownSignText
@@ -46,7 +46,7 @@ LavenderPokecenterSignText:
LavenderMartSignText:
jumpstd martsign
-UnknownText_0x1ad702:
+LavenderTownPokefanMText:
text "That's quite some"
line "building, eh?"
@@ -54,12 +54,12 @@ UnknownText_0x1ad702:
line "TOWER."
done
-UnknownText_0x1ad73a:
+LavenderTownTeacherText:
text "KANTO has many"
line "good radio shows."
done
-UnknownText_0x1ad75c:
+LavenderTownGrampsText:
text "People come from"
line "all over to pay"
@@ -68,7 +68,7 @@ UnknownText_0x1ad75c:
cont "of #MON."
done
-UnknownText_0x1ad7ac:
+LavenderTownYoungsterText:
text "You need a #"
line "FLUTE to wake"
cont "sleeping #MON."
@@ -133,7 +133,7 @@ LavenderTown_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1ad6e4, -1
- person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ad6e7, -1
- person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1ad6ea, -1
- person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 1, YoungsterScript_0x1ad6ed, -1
+ person_event SPRITE_POKEFAN_M, 7, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LavenderTownPokefanMScript, -1
+ person_event SPRITE_TEACHER, 15, 2, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LavenderTownTeacherScript, -1
+ person_event SPRITE_GRAMPS, 12, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LavenderTownGrampsScript, -1
+ person_event SPRITE_YOUNGSTER, 11, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 1, LavenderTownYoungsterScript, -1
diff --git a/maps/LavenderTownSpeechHouse.asm b/maps/LavenderTownSpeechHouse.asm
index 7ba3064e2..d9432bcc5 100644
--- a/maps/LavenderTownSpeechHouse.asm
+++ b/maps/LavenderTownSpeechHouse.asm
@@ -8,13 +8,13 @@ LavenderTownSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanFScript_0x7ea47:
- jumptextfaceplayer UnknownText_0x7ea4d
+LavenderTownSpeechHousePokefanFScript:
+ jumptextfaceplayer LavenderTownSpeechHousePokefanFText
LavenderTownSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x7ea4d:
+LavenderTownSpeechHousePokefanFText:
text "LAVENDER is a"
line "tiny, quiet town"
@@ -47,4 +47,4 @@ LavenderTownSpeechHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x7ea47, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LavenderTownSpeechHousePokefanFScript, -1
diff --git a/maps/MahoganyGym.asm b/maps/MahoganyGym.asm
index 67fb89372..acb68e46c 100644
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -71,9 +71,9 @@ MahoganyGymTriggerRockets:
jumpstd radiotowerrockets
TrainerSkierRoxanne:
- trainer EVENT_BEAT_SKIER_ROXANNE, SKIER, ROXANNE, SkierRoxanneSeenText, SkierRoxanneBeatenText, 0, SkierRoxanneScript
+ trainer EVENT_BEAT_SKIER_ROXANNE, SKIER, ROXANNE, SkierRoxanneSeenText, SkierRoxanneBeatenText, 0, .Script
-SkierRoxanneScript:
+.Script:
end_if_just_battled
opentext
writetext SkierRoxanneAfterBattleText
@@ -82,9 +82,9 @@ SkierRoxanneScript:
end
TrainerSkierClarissa:
- trainer EVENT_BEAT_SKIER_CLARISSA, SKIER, CLARISSA, SkierClarissaSeenText, SkierClarissaBeatenText, 0, SkierClarissaScript
+ trainer EVENT_BEAT_SKIER_CLARISSA, SKIER, CLARISSA, SkierClarissaSeenText, SkierClarissaBeatenText, 0, .Script
-SkierClarissaScript:
+.Script:
end_if_just_battled
opentext
writetext SkierClarissaAfterBattleText
@@ -93,9 +93,9 @@ SkierClarissaScript:
end
TrainerBoarderRonald:
- trainer EVENT_BEAT_BOARDER_RONALD, BOARDER, RONALD, BoarderRonaldSeenText, BoarderRonaldBeatenText, 0, BoarderRonaldScript
+ trainer EVENT_BEAT_BOARDER_RONALD, BOARDER, RONALD, BoarderRonaldSeenText, BoarderRonaldBeatenText, 0, .Script
-BoarderRonaldScript:
+.Script:
end_if_just_battled
opentext
writetext BoarderRonaldAfterBattleText
@@ -104,9 +104,9 @@ BoarderRonaldScript:
end
TrainerBoarderBrad:
- trainer EVENT_BEAT_BOARDER_BRAD, BOARDER, BRAD, BoarderBradSeenText, BoarderBradBeatenText, 0, BoarderBradScript
+ trainer EVENT_BEAT_BOARDER_BRAD, BOARDER, BRAD, BoarderBradSeenText, BoarderBradBeatenText, 0, .Script
-BoarderBradScript:
+.Script:
end_if_just_battled
opentext
writetext BoarderBradAfterBattleText
@@ -115,9 +115,9 @@ BoarderBradScript:
end
TrainerBoarderDouglas:
- trainer EVENT_BEAT_BOARDER_DOUGLAS, BOARDER, DOUGLAS, BoarderDouglasSeenText, BoarderDouglasBeatenText, 0, BoarderDouglasScript
+ trainer EVENT_BEAT_BOARDER_DOUGLAS, BOARDER, DOUGLAS, BoarderDouglasSeenText, BoarderDouglasBeatenText, 0, .Script
-BoarderDouglasScript:
+.Script:
end_if_just_battled
opentext
writetext BoarderDouglasAfterBattleText
diff --git a/maps/MahoganyPokecenter1F.asm b/maps/MahoganyPokecenter1F.asm
index 73c978836..7c98250f4 100644
--- a/maps/MahoganyPokecenter1F.asm
+++ b/maps/MahoganyPokecenter1F.asm
@@ -14,16 +14,16 @@ MahoganyPokecenter1F_MapScriptHeader:
NurseScript_0x19a356:
jumpstd pokecenternurse
-PokefanMScript_0x19a359:
- jumptextfaceplayer UnknownText_0x19a362
+MahoganyPokecenter1FPokefanMScript:
+ jumptextfaceplayer MahoganyPokecenter1FPokefanMText
-YoungsterScript_0x19a35c:
- jumptextfaceplayer UnknownText_0x19a3b3
+MahoganyPokecenter1FYoungsterScript:
+ jumptextfaceplayer MahoganyPokecenter1FYoungsterText
-CooltrainerFScript_0x19a35f:
- jumptextfaceplayer UnknownText_0x19a418
+MahoganyPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer MahoganyPokecenter1FCooltrainerFText
-UnknownText_0x19a362:
+MahoganyPokecenter1FPokefanMText:
text "What's this? TEAM"
line "ROCKET has come"
cont "back?"
@@ -33,7 +33,7 @@ UnknownText_0x19a362:
cont "RAGE…"
done
-UnknownText_0x19a3b3:
+MahoganyPokecenter1FYoungsterText:
text "I stop my #MON"
line "from evolving too"
cont "early."
@@ -44,7 +44,7 @@ UnknownText_0x19a3b3:
cont "evolve."
done
-UnknownText_0x19a418:
+MahoganyPokecenter1FCooltrainerFText:
text "#MON do become"
line "stronger when they"
@@ -72,6 +72,6 @@ MahoganyPokecenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x19a356, -1
- person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19a359, -1
- person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19a35c, -1
- person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x19a35f, -1
+ person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, MahoganyPokecenter1FPokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, MahoganyPokecenter1FYoungsterScript, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MahoganyPokecenter1FCooltrainerFScript, -1
diff --git a/maps/MahoganyRedGyaradosSpeechHouse.asm b/maps/MahoganyRedGyaradosSpeechHouse.asm
index c03e07361..0361f5195 100644
--- a/maps/MahoganyRedGyaradosSpeechHouse.asm
+++ b/maps/MahoganyRedGyaradosSpeechHouse.asm
@@ -9,8 +9,8 @@ MahoganyRedGyaradosSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-BlackBeltScript_0x19997f:
- jumptextfaceplayer UnknownText_0x19999c
+MahoganyRedGyaradosSpeechHouseBlackBeltScript:
+ jumptextfaceplayer MahoganyRedGyaradosSpeechHouseBlackBeltText
TeacherScript_0x199982:
faceplayer
@@ -34,7 +34,7 @@ UnknownScript_0x195996:
UnknownScript_0x195999:
jumpstd magazinebookshelf
-UnknownText_0x19999c:
+MahoganyRedGyaradosSpeechHouseBlackBeltText:
text "I heard that a red"
line "GYARADOS appeared"
cont "at the LAKE."
@@ -77,5 +77,5 @@ MahoganyRedGyaradosSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x19997f, -1
+ person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MahoganyRedGyaradosSpeechHouseBlackBeltScript, -1
person_event SPRITE_TEACHER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x199982, -1
diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm
index 5439e065c..9655b7073 100644
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -103,11 +103,11 @@ UnknownScript_0x19008c:
closetext
end
-FisherScript_0x190092:
- jumptextfaceplayer UnknownText_0x190276
+MahoganyTownFisherScript:
+ jumptextfaceplayer MahoganyTownFisherText
-LassScript_0x190095:
- jumptextfaceplayer UnknownText_0x1902f2
+MahoganyTownLassScript:
+ jumptextfaceplayer MahoganyTownLassText
MahoganyTownSign:
jumptext MahoganyTownSignText
@@ -200,7 +200,7 @@ UnknownText_0x19021d:
cont "anglers there."
done
-UnknownText_0x190276:
+MahoganyTownFisherText:
text "Since you came"
line "this far, take the"
@@ -214,7 +214,7 @@ UnknownText_0x190276:
line "right now."
done
-UnknownText_0x1902f2:
+MahoganyTownLassText:
text "Visit Grandma's"
line "shop. She sells"
@@ -272,5 +272,5 @@ MahoganyTown_MapEventHeader:
db 4
person_event SPRITE_POKEFAN_M, 8, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19002e, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST
person_event SPRITE_GRAMPS, 9, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x19007e, -1
- person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x190092, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
- person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x190095, EVENT_MAHOGANY_MART_OWNERS
+ person_event SPRITE_FISHER, 14, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, MahoganyTownFisherScript, EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_GYM
+ person_event SPRITE_LASS, 8, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MahoganyTownLassScript, EVENT_MAHOGANY_MART_OWNERS
diff --git a/maps/MountMoonGiftShop.asm b/maps/MountMoonGiftShop.asm
index aa0b97167..8dfe26579 100644
--- a/maps/MountMoonGiftShop.asm
+++ b/maps/MountMoonGiftShop.asm
@@ -18,10 +18,10 @@ GrampsScript_0x771a8:
closetext
end
-LassScript_0x771b0:
- jumptextfaceplayer UnknownText_0x771b3
+MountMoonGiftShopLassScript:
+ jumptextfaceplayer MountMoonGiftShopLassText
-UnknownText_0x771b3:
+MountMoonGiftShopLassText:
text "When the sun goes"
line "down, CLEFAIRY"
cont "come out to play."
@@ -46,5 +46,5 @@ MountMoonGiftShop_MapEventHeader:
db 4
person_event SPRITE_GRAMPS, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, MORN, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1
person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, DAY, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x771a8, -1
- person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, MORN, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1
- person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, DAY, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x771b0, -1
+ person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, MORN, 0, PERSONTYPE_SCRIPT, 0, MountMoonGiftShopLassScript, -1
+ person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, DAY, 0, PERSONTYPE_SCRIPT, 0, MountMoonGiftShopLassScript, -1
diff --git a/maps/MountMortar1FInside.asm b/maps/MountMortar1FInside.asm
index d5c1fdf10..4708b7c60 100644
--- a/maps/MountMortar1FInside.asm
+++ b/maps/MountMortar1FInside.asm
@@ -18,9 +18,9 @@ MountMortar1FInside_MapScriptHeader:
db 0
TrainerPokemaniacMiller:
- trainer EVENT_BEAT_POKEMANIAC_MILLER, POKEMANIAC, MILLER, PokemaniacMillerSeenText, PokemaniacMillerBeatenText, 0, PokemaniacMillerScript
+ trainer EVENT_BEAT_POKEMANIAC_MILLER, POKEMANIAC, MILLER, PokemaniacMillerSeenText, PokemaniacMillerBeatenText, 0, .Script
-PokemaniacMillerScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacMillerAfterBattleText
@@ -29,9 +29,9 @@ PokemaniacMillerScript:
end
TrainerSupernerdMarkus:
- trainer EVENT_BEAT_SUPER_NERD_MARKUS, SUPER_NERD, MARKUS, SupernerdMarkusSeenText, SupernerdMarkusBeatenText, 0, SupernerdMarkusScript
+ trainer EVENT_BEAT_SUPER_NERD_MARKUS, SUPER_NERD, MARKUS, SupernerdMarkusSeenText, SupernerdMarkusBeatenText, 0, .Script
-SupernerdMarkusScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdMarkusAfterBattleText
diff --git a/maps/MountMortar2FInside.asm b/maps/MountMortar2FInside.asm
index 2c57b863a..a78d8453e 100644
--- a/maps/MountMortar2FInside.asm
+++ b/maps/MountMortar2FInside.asm
@@ -15,9 +15,9 @@ MountMortar2FInside_MapScriptHeader:
db 0
TrainerSupernerdHugh:
- trainer EVENT_BEAT_SUPER_NERD_HUGH, SUPER_NERD, HUGH, SupernerdHughSeenText, SupernerdHughBeatenText, 0, SupernerdHughScript
+ trainer EVENT_BEAT_SUPER_NERD_HUGH, SUPER_NERD, HUGH, SupernerdHughSeenText, SupernerdHughBeatenText, 0, .Script
-SupernerdHughScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdHughAfterBattleText
diff --git a/maps/MrFujisHouse.asm b/maps/MrFujisHouse.asm
index a439b7b54..35b7dbcf8 100644
--- a/maps/MrFujisHouse.asm
+++ b/maps/MrFujisHouse.asm
@@ -12,11 +12,11 @@ MrFujisHouse_MapScriptHeader:
.MapCallbacks:
db 0
-SuperNerdScript_0x7e8ca:
- jumptextfaceplayer UnknownText_0x7e8f1
+MrFujisHouseSuperNerdScript:
+ jumptextfaceplayer MrFujisHouseSuperNerdText
-LassScript_0x7e8cd:
- jumptextfaceplayer UnknownText_0x7e940
+MrFujisHouseLassScript:
+ jumptextfaceplayer MrFujisHouseLassText
MrFujisPsyduck:
opentext
@@ -45,7 +45,7 @@ MrFujisPidgey:
MrFujisHouseBookshelf:
jumpstd difficultbookshelf
-UnknownText_0x7e8f1:
+MrFujisHouseSuperNerdText:
text "MR.FUJI does live"
line "here, but he's not"
@@ -55,7 +55,7 @@ UnknownText_0x7e8f1:
line "the SOUL HOUSE."
done
-UnknownText_0x7e940:
+MrFujisHouseLassText:
text "Some cold-hearted"
line "people stop caring"
cont "for their #MON."
@@ -98,8 +98,8 @@ MrFujisHouse_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x7e8ca, -1
- person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x7e8cd, -1
+ person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, MrFujisHouseSuperNerdScript, -1
+ person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MrFujisHouseLassScript, -1
person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MrFujisPsyduck, -1
person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, MrFujisNidorino, -1
person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, MrFujisPidgey, -1
diff --git a/maps/NationalPark.asm b/maps/NationalPark.asm
index 6298f3e34..e0a228bb2 100644
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -21,11 +21,11 @@ NationalPark_MapScriptHeader:
.MapCallbacks:
db 0
-LassScript_0x5c002:
- jumptextfaceplayer UnknownText_0x5c1d3
+NationalParkLassScript:
+ jumptextfaceplayer NationalParkLassText
-PokefanFScript_0x5c005:
- jumptextfaceplayer UnknownText_0x5c22e
+NationalParkPokefanFScript:
+ jumptextfaceplayer NationalParkPokefanFText
TeacherScript_0x5c008:
faceplayer
@@ -44,14 +44,14 @@ UnknownScript_0x5c021:
closetext
end
-YoungsterScript_0x5c023:
- jumptextfaceplayer UnknownText_0x5c35d
+NationalParkYoungster1Script:
+ jumptextfaceplayer NationalParkYoungster1Text
-YoungsterScript_0x5c026:
- jumptextfaceplayer UnknownText_0x5c38f
+NationalParkYoungster2Script:
+ jumptextfaceplayer NationalParkYoungster2Text
-TeacherScript_0x5c029:
- jumptextfaceplayer UnknownText_0x5c3bc
+NationalParkTeacherScript:
+ jumptextfaceplayer NationalParkTeacherText
NationalParkPersian:
faceplayer
@@ -72,9 +72,9 @@ GameboyKidScript_0x5c037:
end
TrainerSchoolboyJack1:
- trainer EVENT_BEAT_SCHOOLBOY_JACK, SCHOOLBOY, JACK1, SchoolboyJack1SeenText, SchoolboyJack1BeatenText, 0, SchoolboyJack1Script
+ trainer EVENT_BEAT_SCHOOLBOY_JACK, SCHOOLBOY, JACK1, SchoolboyJack1SeenText, SchoolboyJack1BeatenText, 0, .Script
-SchoolboyJack1Script:
+.Script:
writecode VAR_CALLERID, PHONE_SCHOOLBOY_JACK
end_if_just_battled
opentext
@@ -189,9 +189,9 @@ UnknownScript_0x5c114:
end
TrainerPokefanmWilliam:
- trainer EVENT_BEAT_POKEFANM_WILLIAM, POKEFANM, WILLIAM, PokefanmWilliamSeenText, PokefanmWilliamBeatenText, 0, PokefanmWilliamScript
+ trainer EVENT_BEAT_POKEFANM_WILLIAM, POKEFANM, WILLIAM, PokefanmWilliamSeenText, PokefanmWilliamBeatenText, 0, .Script
-PokefanmWilliamScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmWilliamAfterBattleText
@@ -200,9 +200,9 @@ PokefanmWilliamScript:
end
TrainerPokefanfBeverly1:
- trainer EVENT_BEAT_POKEFANF_BEVERLY, POKEFANF, BEVERLY1, PokefanfBeverly1SeenText, PokefanfBeverly1BeatenText, 0, PokefanfBeverly1Script
+ trainer EVENT_BEAT_POKEFANF_BEVERLY, POKEFANF, BEVERLY1, PokefanfBeverly1SeenText, PokefanfBeverly1BeatenText, 0, .Script
-PokefanfBeverly1Script:
+.Script:
writecode VAR_CALLERID, PHONE_POKEFAN_BEVERLY
end_if_just_battled
opentext
@@ -279,9 +279,9 @@ UnknownScript_0x5c1ab:
end
TrainerLassKrise:
- trainer EVENT_BEAT_LASS_KRISE, LASS, KRISE, LassKriseSeenText, LassKriseBeatenText, 0, LassKriseScript
+ trainer EVENT_BEAT_LASS_KRISE, LASS, KRISE, LassKriseSeenText, LassKriseBeatenText, 0, .Script
-LassKriseScript:
+.Script:
end_if_just_battled
opentext
writetext LassKriseAfterBattleText
@@ -308,7 +308,7 @@ NationalParkHiddenFullHeal:
dwb EVENT_NATIONAL_PARK_HIDDEN_FULL_HEAL, FULL_HEAL
-UnknownText_0x5c1d3:
+NationalParkLassText:
text "Look! Check out my"
line "bag!"
@@ -319,7 +319,7 @@ UnknownText_0x5c1d3:
line "them on my bag."
done
-UnknownText_0x5c22e:
+NationalParkPokefanFText:
text "This is MAIL I got"
line "from my daughter."
cont "It cheers me up."
@@ -354,19 +354,19 @@ UnknownText_0x5c30d:
cont "during battle."
done
-UnknownText_0x5c35d:
+NationalParkYoungster1Text:
text "I'm playing with"
line "stickers I printed"
cont "from my #DEX."
done
-UnknownText_0x5c38f:
+NationalParkYoungster2Text:
text "I get the other"
line "guy's #DEX"
cont "sticker if I win."
done
-UnknownText_0x5c3bc:
+NationalParkTeacherText:
text "I take walks in"
line "the PARK, but I"
@@ -537,12 +537,12 @@ NationalPark_MapEventHeader:
.PersonEvents:
db 14
- person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x5c002, -1
- person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5c005, -1
+ person_event SPRITE_LASS, 24, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, NationalParkLassScript, -1
+ person_event SPRITE_POKEFAN_F, 4, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkPokefanFScript, -1
person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c008, -1
- person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c023, -1
- person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5c026, -1
- person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5c029, -1
+ person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkYoungster1Script, -1
+ person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, NationalParkYoungster2Script, -1
+ person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkTeacherScript, -1
person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NationalParkPersian, -1
person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 3, TrainerSchoolboyJack1, -1
person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 2, TrainerPokefanfBeverly1, -1
diff --git a/maps/OlivineCafe.asm b/maps/OlivineCafe.asm
index 9cf4e67f6..01216d0bb 100644
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -25,11 +25,11 @@ UnknownScript_0x9c8d3:
closetext
end
-FishingGuruScript_0x9c8d9:
- jumptextfaceplayer UnknownText_0x9c9c5
+OlivineCafeFishingGuruScript:
+ jumptextfaceplayer OlivineCafeFishingGuruText
-SailorScript_0x9c8dc:
- jumptextfaceplayer UnknownText_0x9ca09
+OlivineCafeSailorScript:
+ jumptextfaceplayer OlivineCafeSailorText
UnknownText_0x9c8df:
text "Hah! Your #MON"
@@ -56,7 +56,7 @@ UnknownText_0x9c965:
line "buff bod!"
done
-UnknownText_0x9c9c5:
+OlivineCafeFishingGuruText:
text "OLIVINE CAFE's"
line "menu is chock full"
@@ -64,7 +64,7 @@ UnknownText_0x9c9c5:
line "beefy SAILORS!"
done
-UnknownText_0x9ca09:
+OlivineCafeSailorText:
text "Whenever I roll"
line "into this town, I"
@@ -96,5 +96,5 @@ OlivineCafe_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_SAILOR, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8c1, -1
- person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c8d9, -1
- person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x9c8dc, -1
+ person_event SPRITE_FISHING_GURU, 3, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCafeFishingGuruScript, -1
+ person_event SPRITE_SAILOR, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCafeSailorScript, -1
diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm
index 21b9943ec..e52dc54f6 100644
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -72,8 +72,8 @@ UnknownScript_0x1a886b:
special MapCallbackSprites_LoadUsedSpritesGFX
end
-SailorScript_0x1a88a3:
- jumptextfaceplayer UnknownText_0x1a8a58
+OlivineCitySailor1Script:
+ jumptextfaceplayer OlivineCitySailor1Text
StandingYoungsterScript_0x1a88a6:
faceplayer
@@ -91,8 +91,8 @@ UnknownScript_0x1a88b4:
closetext
end
-SailorScript_0x1a88ba:
- jumptextfaceplayer UnknownText_0x1a8b71
+OlivineCitySailor2Script:
+ jumptextfaceplayer OlivineCitySailor2Text
OlivineCitySign:
jumptext OlivineCitySignText
@@ -207,7 +207,7 @@ UnknownText_0x1a88fa:
cont "less weak!"
done
-UnknownText_0x1a8a58:
+OlivineCitySailor1Text:
text "Dark roads are"
line "dangerous at"
cont "night."
@@ -240,7 +240,7 @@ UnknownText_0x1a8b41:
line "awesome."
done
-UnknownText_0x1a8b71:
+OlivineCitySailor2Text:
text "The sea is sweet!"
para "Sunsets on the sea"
@@ -322,7 +322,7 @@ OlivineCity_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88a3, -1
+ person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCitySailor1Script, -1
person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a88a6, -1
- person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x1a88ba, -1
+ person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineCitySailor2Script, -1
person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY
diff --git a/maps/OlivineHouseBeta.asm b/maps/OlivineHouseBeta.asm
index 06cffbe27..b3bc7e4d3 100644
--- a/maps/OlivineHouseBeta.asm
+++ b/maps/OlivineHouseBeta.asm
@@ -9,8 +9,8 @@ OlivineHouseBeta_MapScriptHeader:
.MapCallbacks:
db 0
-TeacherScript_0x9c58f:
- jumptextfaceplayer UnknownText_0x9c5a2
+OlivineHouseBetaTeacherScript:
+ jumptextfaceplayer OlivineHouseBetaTeacherText
RhydonScript_0x9c592:
opentext
@@ -26,7 +26,7 @@ OlivineHouseBetaBookshelf1:
OlivineHouseBetaBookshelf2:
jumpstd magazinebookshelf
-UnknownText_0x9c5a2:
+OlivineHouseBetaTeacherText:
text "When my #MON"
line "got sick, the"
@@ -58,5 +58,5 @@ OlivineHouseBeta_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c58f, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineHouseBetaTeacherScript, -1
person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RhydonScript_0x9c592, -1
diff --git a/maps/OlivineLighthouse1F.asm b/maps/OlivineLighthouse1F.asm
index 422e86ad2..40dda9638 100644
--- a/maps/OlivineLighthouse1F.asm
+++ b/maps/OlivineLighthouse1F.asm
@@ -9,13 +9,13 @@ OlivineLighthouse1F_MapScriptHeader:
.MapCallbacks:
db 0
-SailorScript_0x5ae67:
- jumptextfaceplayer UnknownText_0x5ae6d
+OlivineLighthouse1FSailorScript:
+ jumptextfaceplayer OlivineLighthouse1FSailorText
-PokefanFScript_0x5ae6a:
- jumptextfaceplayer UnknownText_0x5aec2
+OlivineLighthouse1FPokefanFScript:
+ jumptextfaceplayer OlivineLighthouse1FPokefanFText
-UnknownText_0x5ae6d:
+OlivineLighthouse1FSailorText:
text "People train at"
line "this LIGHTHOUSE."
@@ -24,7 +24,7 @@ UnknownText_0x5ae6d:
cont "all the trainers."
done
-UnknownText_0x5aec2:
+OlivineLighthouse1FPokefanFText:
text "In the past, #-"
line "MON used to light"
@@ -56,5 +56,5 @@ OlivineLighthouse1F_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x5ae67, -1
- person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x5ae6a, -1
+ person_event SPRITE_SAILOR, 2, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineLighthouse1FSailorScript, -1
+ person_event SPRITE_POKEFAN_F, 9, 16, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineLighthouse1FPokefanFScript, -1
diff --git a/maps/OlivineLighthouse2F.asm b/maps/OlivineLighthouse2F.asm
index 24cafdc2c..d55515fe3 100644
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -10,9 +10,9 @@ OlivineLighthouse2F_MapScriptHeader:
db 0
TrainerGentlemanAlfred:
- trainer EVENT_BEAT_GENTLEMAN_ALFRED, GENTLEMAN, ALFRED, GentlemanAlfredSeenText, GentlemanAlfredBeatenText, 0, GentlemanAlfredScript
+ trainer EVENT_BEAT_GENTLEMAN_ALFRED, GENTLEMAN, ALFRED, GentlemanAlfredSeenText, GentlemanAlfredBeatenText, 0, .Script
-GentlemanAlfredScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanAlfredAfterBattleText
@@ -21,9 +21,9 @@ GentlemanAlfredScript:
end
TrainerSailorHuey1:
- trainer EVENT_BEAT_SAILOR_HUEY, SAILOR, HUEY1, SailorHuey1SeenText, SailorHuey1BeatenText, 0, SailorHuey1Script
+ trainer EVENT_BEAT_SAILOR_HUEY, SAILOR, HUEY1, SailorHuey1SeenText, SailorHuey1BeatenText, 0, .Script
-SailorHuey1Script:
+.Script:
writecode VAR_CALLERID, PHONE_SAILOR_HUEY
end_if_just_battled
opentext
diff --git a/maps/OlivineLighthouse3F.asm b/maps/OlivineLighthouse3F.asm
index 7282c6e80..2b15d3487 100644
--- a/maps/OlivineLighthouse3F.asm
+++ b/maps/OlivineLighthouse3F.asm
@@ -12,9 +12,9 @@ OlivineLighthouse3F_MapScriptHeader:
db 0
TrainerBird_keeperTheo:
- trainer EVENT_BEAT_BIRD_KEEPER_THEO, BIRD_KEEPER, THEO, Bird_keeperTheoSeenText, Bird_keeperTheoBeatenText, 0, Bird_keeperTheoScript
+ trainer EVENT_BEAT_BIRD_KEEPER_THEO, BIRD_KEEPER, THEO, Bird_keeperTheoSeenText, Bird_keeperTheoBeatenText, 0, .Script
-Bird_keeperTheoScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperTheoAfterBattleText
@@ -23,9 +23,9 @@ Bird_keeperTheoScript:
end
TrainerGentlemanPreston:
- trainer EVENT_BEAT_GENTLEMAN_PRESTON, GENTLEMAN, PRESTON, GentlemanPrestonSeenText, GentlemanPrestonBeatenText, 0, GentlemanPrestonScript
+ trainer EVENT_BEAT_GENTLEMAN_PRESTON, GENTLEMAN, PRESTON, GentlemanPrestonSeenText, GentlemanPrestonBeatenText, 0, .Script
-GentlemanPrestonScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanPrestonAfterBattleText
@@ -34,9 +34,9 @@ GentlemanPrestonScript:
end
TrainerSailorTerrell:
- trainer EVENT_BEAT_SAILOR_TERRELL, SAILOR, TERRELL, SailorTerrellSeenText, SailorTerrellBeatenText, 0, SailorTerrellScript
+ trainer EVENT_BEAT_SAILOR_TERRELL, SAILOR, TERRELL, SailorTerrellSeenText, SailorTerrellBeatenText, 0, .Script
-SailorTerrellScript:
+.Script:
end_if_just_battled
opentext
writetext SailorTerrellAfterBattleText
diff --git a/maps/OlivineLighthouse4F.asm b/maps/OlivineLighthouse4F.asm
index c1a3911e5..f9ff1d86c 100644
--- a/maps/OlivineLighthouse4F.asm
+++ b/maps/OlivineLighthouse4F.asm
@@ -10,9 +10,9 @@ OlivineLighthouse4F_MapScriptHeader:
db 0
TrainerLassConnie:
- trainer EVENT_BEAT_LASS_CONNIE, LASS, CONNIE1, LassConnie1SeenText, LassConnie1BeatenText, 0, LassConnie1Script
+ trainer EVENT_BEAT_LASS_CONNIE, LASS, CONNIE1, LassConnie1SeenText, LassConnie1BeatenText, 0, .Script
-LassConnie1Script:
+.Script:
end_if_just_battled
opentext
writetext LassConnie1AfterBattleText
@@ -21,9 +21,9 @@ LassConnie1Script:
end
TrainerSailorKent:
- trainer EVENT_BEAT_SAILOR_KENT, SAILOR, KENT, SailorKentSeenText, SailorKentBeatenText, 0, SailorKentScript
+ trainer EVENT_BEAT_SAILOR_KENT, SAILOR, KENT, SailorKentSeenText, SailorKentBeatenText, 0, .Script
-SailorKentScript:
+.Script:
end_if_just_battled
opentext
writetext SailorKentAfterBattleText
diff --git a/maps/OlivineLighthouse5F.asm b/maps/OlivineLighthouse5F.asm
index 6dd14f384..08a9c4309 100644
--- a/maps/OlivineLighthouse5F.asm
+++ b/maps/OlivineLighthouse5F.asm
@@ -13,9 +13,9 @@ OlivineLighthouse5F_MapScriptHeader:
db 0
TrainerBird_keeperDenis:
- trainer EVENT_BEAT_BIRD_KEEPER_DENIS, BIRD_KEEPER, DENIS, Bird_keeperDenisSeenText, Bird_keeperDenisBeatenText, 0, Bird_keeperDenisScript
+ trainer EVENT_BEAT_BIRD_KEEPER_DENIS, BIRD_KEEPER, DENIS, Bird_keeperDenisSeenText, Bird_keeperDenisBeatenText, 0, .Script
-Bird_keeperDenisScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperDenisAfterBattleText
@@ -24,9 +24,9 @@ Bird_keeperDenisScript:
end
TrainerSailorErnest:
- trainer EVENT_BEAT_SAILOR_ERNEST, SAILOR, ERNEST, SailorErnestSeenText, SailorErnestBeatenText, 0, SailorErnestScript
+ trainer EVENT_BEAT_SAILOR_ERNEST, SAILOR, ERNEST, SailorErnestSeenText, SailorErnestBeatenText, 0, .Script
-SailorErnestScript:
+.Script:
end_if_just_battled
opentext
writetext SailorErnestAfterBattleText
diff --git a/maps/OlivineMart.asm b/maps/OlivineMart.asm
index d54546111..e18ce3f91 100644
--- a/maps/OlivineMart.asm
+++ b/maps/OlivineMart.asm
@@ -16,13 +16,13 @@ ClerkScript_0x9cac7:
closetext
end
-CooltrainerFScript_0x9cace:
- jumptextfaceplayer UnknownText_0x9cad4
+OlivineMartCooltrainerFScript:
+ jumptextfaceplayer OlivineMartCooltrainerFText
-LassScript_0x9cad1:
- jumptextfaceplayer UnknownText_0x9cb16
+OlivineMartLassScript:
+ jumptextfaceplayer OlivineMartLassText
-UnknownText_0x9cad4:
+OlivineMartCooltrainerFText:
text "Do your #MON"
line "already know the"
@@ -30,7 +30,7 @@ UnknownText_0x9cad4:
line "people on water?"
done
-UnknownText_0x9cb16:
+OlivineMartLassText:
text "My BUTTERFREE came"
line "from my boyfriend"
cont "overseas."
@@ -63,5 +63,5 @@ OlivineMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9cac7, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9cace, -1
- person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9cad1, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OlivineMartCooltrainerFScript, -1
+ person_event SPRITE_LASS, 6, 1, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivineMartLassScript, -1
diff --git a/maps/OlivinePokecenter1F.asm b/maps/OlivinePokecenter1F.asm
index f331c95db..8454b786a 100644
--- a/maps/OlivinePokecenter1F.asm
+++ b/maps/OlivinePokecenter1F.asm
@@ -17,13 +17,13 @@ NurseScript_0x9c002:
FishingGuruScript_0x9c005:
jumpstd happinesschecknpc
-FisherScript_0x9c008:
- jumptextfaceplayer UnknownText_0x9c00e
+OlivinePokecenter1FFisherScript:
+ jumptextfaceplayer OlivinePokecenter1FFisherText
-TeacherScript_0x9c00b:
- jumptextfaceplayer UnknownText_0x9c086
+OlivinePokecenter1FTeacherScript:
+ jumptextfaceplayer OlivinePokecenter1FTeacherText
-UnknownText_0x9c00e:
+OlivinePokecenter1FFisherText:
text "The SAILOR in the"
line "OLIVINE CAFE next"
@@ -37,7 +37,7 @@ UnknownText_0x9c00e:
line "big boulders."
done
-UnknownText_0x9c086:
+OlivinePokecenter1FTeacherText:
text "There's a person"
line "in CIANWOOD CITY"
cont "across the sea."
@@ -67,5 +67,5 @@ OlivinePokecenter1F_MapEventHeader:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9c002, -1
person_event SPRITE_FISHING_GURU, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x9c005, -1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x9c008, -1
- person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x9c00b, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OlivinePokecenter1FFisherScript, -1
+ person_event SPRITE_TEACHER, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePokecenter1FTeacherScript, -1
diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm
index f0137e294..60e5d4d04 100644
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -194,8 +194,8 @@ UnknownScript_0x749f8:
closetext
end
-SailorScript_0x749fe:
- jumptextfaceplayer UnknownText_0x74cd7
+OlivinePortSailorScript:
+ jumptextfaceplayer OlivinePortSailorText
FishingGuruScript_0x74a01:
faceplayer
@@ -377,7 +377,7 @@ UnknownText_0x74ca2:
para "I wish I could go…"
done
-UnknownText_0x74cd7:
+OlivinePortSailorText:
text "We don't want you"
line "to fall into the"
@@ -405,7 +405,7 @@ OlivinePort_MapEventHeader:
.PersonEvents:
db 7
person_event SPRITE_SAILOR, 23, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x748c0, EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
- person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x749fe, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
+ person_event SPRITE_SAILOR, 15, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePortSailorScript, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
person_event SPRITE_SAILOR, 15, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SailorScript_0x7499c, EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME
person_event SPRITE_FISHING_GURU, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a01, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
person_event SPRITE_FISHING_GURU, 14, 13, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x74a0c, EVENT_OLIVINE_PORT_SPRITES_BEFORE_HALL_OF_FAME
diff --git a/maps/OlivinePortPassage.asm b/maps/OlivinePortPassage.asm
index 116a05dfd..2f7a145bc 100644
--- a/maps/OlivinePortPassage.asm
+++ b/maps/OlivinePortPassage.asm
@@ -8,10 +8,10 @@ OlivinePortPassage_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanMScript_0x76fac:
- jumptextfaceplayer UnknownText_0x76faf
+OlivinePortPassagePokefanMScript:
+ jumptextfaceplayer OlivinePortPassagePokefanMText
-UnknownText_0x76faf:
+OlivinePortPassagePokefanMText:
text "FAST SHIP S.S.AQUA"
line "sails to KANTO on"
@@ -39,4 +39,4 @@ OlivinePortPassage_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x76fac, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
+ person_event SPRITE_POKEFAN_M, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OlivinePortPassagePokefanMScript, EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M
diff --git a/maps/PalletTown.asm b/maps/PalletTown.asm
index 53dd04022..895e79e9c 100644
--- a/maps/PalletTown.asm
+++ b/maps/PalletTown.asm
@@ -14,11 +14,11 @@ PalletTown_MapScriptHeader:
setflag ENGINE_FLYPOINT_PALLET
return
-TeacherScript_0x1ac6d5:
- jumptextfaceplayer UnknownText_0x1ac6e7
+PalletTownTeacherScript:
+ jumptextfaceplayer PalletTownTeacherText
-FisherScript_0x1ac6d8:
- jumptextfaceplayer UnknownText_0x1ac720
+PalletTownFisherScript:
+ jumptextfaceplayer PalletTownFisherText
PalletTownSign:
jumptext PalletTownSignText
@@ -32,7 +32,7 @@ OaksLabSign:
BluesHouseSign:
jumptext BluesHouseSignText
-UnknownText_0x1ac6e7:
+PalletTownTeacherText:
text "I'm raising #-"
line "MON too."
@@ -40,7 +40,7 @@ UnknownText_0x1ac6e7:
line "private guards."
done
-UnknownText_0x1ac720:
+PalletTownFisherText:
text "Technology is"
line "incredible!"
@@ -91,5 +91,5 @@ PalletTown_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1ac6d5, -1
- person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x1ac6d8, -1
+ person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PalletTownTeacherScript, -1
+ person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PalletTownFisherScript, -1
diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm
index 9194cc4ec..6ea37bbf9 100644
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -17,11 +17,11 @@ PewterCity_MapScriptHeader:
setflag ENGINE_FLYPOINT_PEWTER
return
-CooltrainerFScript_0x18c009:
- jumptextfaceplayer UnknownText_0x18c042
+PewterCityCooltrainerFScript:
+ jumptextfaceplayer PewterCityCooltrainerFText
-BugCatcherScript_0x18c00c:
- jumptextfaceplayer UnknownText_0x18c080
+PewterCityBugCatcherScript:
+ jumptextfaceplayer PewterCityBugCatcherText
GrampsScript_0x18c00f:
faceplayer
@@ -68,7 +68,7 @@ FruitTreeScript_0x18c03e:
FruitTreeScript_0x18c040:
fruittree FRUITTREE_PEWTER_CITY_2
-UnknownText_0x18c042:
+PewterCityCooltrainerFText:
text "Have you visited"
line "PEWTER GYM?"
@@ -76,7 +76,7 @@ UnknownText_0x18c042:
line "rock-type #MON."
done
-UnknownText_0x18c080:
+PewterCityBugCatcherText:
text "At night, CLEFAIRY"
line "come out to play"
cont "at MT.MOON."
@@ -179,8 +179,8 @@ PewterCity_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18c009, -1
- person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x18c00c, -1
+ person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PewterCityCooltrainerFScript, -1
+ person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PewterCityBugCatcherScript, -1
person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x18c00f, -1
person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c03e, -1
person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FruitTreeScript_0x18c040, -1
diff --git a/maps/PewterGym.asm b/maps/PewterGym.asm
index d1549a7eb..8fe9b726d 100644
--- a/maps/PewterGym.asm
+++ b/maps/PewterGym.asm
@@ -41,9 +41,9 @@ BrockScript_0x1a2864:
end
TrainerCamperJerry:
- trainer EVENT_BEAT_CAMPER_JERRY, CAMPER, JERRY, CamperJerrySeenText, CamperJerryBeatenText, 0, CamperJerryScript
+ trainer EVENT_BEAT_CAMPER_JERRY, CAMPER, JERRY, CamperJerrySeenText, CamperJerryBeatenText, 0, .Script
-CamperJerryScript:
+.Script:
end_if_just_battled
opentext
writetext CamperJerryAfterBattleText
diff --git a/maps/PewterMart.asm b/maps/PewterMart.asm
index 553733889..9fb075ed9 100644
--- a/maps/PewterMart.asm
+++ b/maps/PewterMart.asm
@@ -16,13 +16,13 @@ ClerkScript_0x1a2dcb:
closetext
end
-YoungsterScript_0x1a2dd2:
- jumptextfaceplayer UnknownText_0x1a2dd8
+PewterMartYoungsterScript:
+ jumptextfaceplayer PewterMartYoungsterText
-SuperNerdScript_0x1a2dd5:
- jumptextfaceplayer UnknownText_0x1a2e3a
+PewterMartSuperNerdScript:
+ jumptextfaceplayer PewterMartSuperNerdText
-UnknownText_0x1a2dd8:
+PewterMartYoungsterText:
text "Hi! Check out my"
line "GYARADOS!"
@@ -33,7 +33,7 @@ UnknownText_0x1a2dd8:
line "it has become."
done
-UnknownText_0x1a2e3a:
+PewterMartSuperNerdText:
text "There once was a"
line "weird old man who"
cont "sold MAGIKARP."
@@ -63,5 +63,5 @@ PewterMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x1a2dcb, -1
- person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a2dd2, -1
- person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2dd5, -1
+ person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PewterMartYoungsterScript, -1
+ person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PewterMartSuperNerdScript, -1
diff --git a/maps/PewterNidoranSpeechHouse.asm b/maps/PewterNidoranSpeechHouse.asm
index 394613336..07650d3e6 100644
--- a/maps/PewterNidoranSpeechHouse.asm
+++ b/maps/PewterNidoranSpeechHouse.asm
@@ -9,8 +9,8 @@ PewterNidoranSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-SuperNerdScript_0x1a2807:
- jumptextfaceplayer UnknownText_0x1a2814
+PewterNidoranSpeechHouseSuperNerdScript:
+ jumptextfaceplayer PewterNidoranSpeechHouseSuperNerdText
PewterNidoran:
opentext
@@ -20,7 +20,7 @@ PewterNidoran:
closetext
end
-UnknownText_0x1a2814:
+PewterNidoranSpeechHouseSuperNerdText:
text "NIDORAN, shake!"
done
@@ -45,5 +45,5 @@ PewterNidoranSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1a2807, -1
+ person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PewterNidoranSpeechHouseSuperNerdScript, -1
person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PewterNidoran, -1
diff --git a/maps/PewterPokecenter1F.asm b/maps/PewterPokecenter1F.asm
index e9ddbbd32..2eb12d641 100644
--- a/maps/PewterPokecenter1F.asm
+++ b/maps/PewterPokecenter1F.asm
@@ -15,8 +15,8 @@ PewterPokecenter1F_MapScriptHeader:
NurseScript_0x1a2ee7:
jumpstd pokecenternurse
-TeacherScript_0x1a2eea:
- jumptextfaceplayer UnknownText_0x1a2f01
+PewterPokecenter1FTeacherScript:
+ jumptextfaceplayer PewterPokecenter1FTeacherText
PewterJigglypuff:
opentext
@@ -26,8 +26,8 @@ PewterJigglypuff:
closetext
end
-BugCatcherScript_0x1a2ef7:
- jumptextfaceplayer UnknownText_0x1a2f75
+PewterPokecenter1FBugCatcherScript:
+ jumptextfaceplayer PewterPokecenter1FBugCatcherText
Chris:
faceplayer
@@ -37,7 +37,7 @@ Chris:
closetext
end
-UnknownText_0x1a2f01:
+PewterPokecenter1FTeacherText:
text "…Yeah, and the"
line "GYM in CINNABAR's"
@@ -53,7 +53,7 @@ PewterJigglypuffText:
line "pupuu."
done
-UnknownText_0x1a2f75:
+PewterPokecenter1FBugCatcherText:
text "Most #MON get"
line "drowsy if they"
@@ -86,7 +86,7 @@ PewterPokecenter1F_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1a2ee7, -1
- person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1a2eea, -1
+ person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PewterPokecenter1FTeacherScript, -1
person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PewterJigglypuff, -1
- person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x1a2ef7, -1
+ person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PewterPokecenter1FBugCatcherScript, -1
person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Chris, -1
diff --git a/maps/PewterSnoozeSpeechHouse.asm b/maps/PewterSnoozeSpeechHouse.asm
index 49257b8c2..b8a83262b 100644
--- a/maps/PewterSnoozeSpeechHouse.asm
+++ b/maps/PewterSnoozeSpeechHouse.asm
@@ -8,13 +8,13 @@ PewterSnoozeSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-GrampsScript_0x1a3059:
- jumptextfaceplayer UnknownText_0x1a305f
+PewterSnoozeSpeechHouseGrampsScript:
+ jumptextfaceplayer PewterSnoozeSpeechHouseGrampsText
PewterSnoozeSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x1a305f:
+PewterSnoozeSpeechHouseGrampsText:
text "I like snoozing"
line "with the radio on…"
cont "…Zzzz…"
@@ -39,4 +39,4 @@ PewterSnoozeSpeechHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a3059, -1
+ person_event SPRITE_GRAMPS, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PewterSnoozeSpeechHouseGrampsScript, -1
diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm
index 72215ae42..08ed2ade9 100644
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -49,8 +49,8 @@ UnknownScript_0x19181f:
closetext
end
-ReceptionistScript_0x191821:
- jumptextfaceplayer UnknownText_0x191b6d
+PokemonFanClubReceptionistScript:
+ jumptextfaceplayer PokemonFanClubReceptionistText
FisherScript_0x191824:
faceplayer
@@ -100,8 +100,8 @@ UnknownScript_0x191865:
closetext
end
-TeacherScript_0x19186b:
- jumptextfaceplayer UnknownText_0x191d73
+PokemonFanClubTeacherScript:
+ jumptextfaceplayer PokemonFanClubTeacherText
ClefairyDoll:
jumptext ClefairyDollText
@@ -199,7 +199,7 @@ UnknownText_0x191b38:
line "want to listen."
done
-UnknownText_0x191b6d:
+PokemonFanClubReceptionistText:
text "Our CHAIRMAN is"
line "very vocal when it"
cont "comes to #MON…"
@@ -264,7 +264,7 @@ UnknownText_0x191d58:
line "jammed full."
done
-UnknownText_0x191d73:
+PokemonFanClubTeacherText:
text "Look at my darling"
line "BAYLEEF!"
@@ -316,8 +316,8 @@ PokemonFanClub_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_GENTLEMAN, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x1917e9, -1
- person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x191821, -1
+ person_event SPRITE_RECEPTIONIST, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, PokemonFanClubReceptionistScript, -1
person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, FisherScript_0x191824, -1
- person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x19186b, -1
+ person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokemonFanClubTeacherScript, -1
person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClefairyDoll, EVENT_VERMILION_FAN_CLUB_DOLL
person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FanClubBayleef, -1
diff --git a/maps/RadioTower1F.asm b/maps/RadioTower1F.asm
index 2e9524b9c..283663e69 100644
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -179,16 +179,16 @@ UnknownScript_0x5ce4b:
closetext
end
-LassScript_0x5ce51:
- jumptextfaceplayer UnknownText_0x5d476
+RadioTower1FLassScript:
+ jumptextfaceplayer RadioTower1FLassText
-YoungsterScript_0x5ce54:
- jumptextfaceplayer UnknownText_0x5d4ac
+RadioTower1FYoungsterScript:
+ jumptextfaceplayer RadioTower1FYoungsterText
TrainerGruntM3:
- trainer EVENT_BEAT_ROCKET_GRUNTM_3, GRUNTM, GRUNTM_3, GruntM3SeenText, GruntM3BeatenText, 0, GruntM3Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_3, GRUNTM, GRUNTM_3, GruntM3SeenText, GruntM3BeatenText, 0, .Script
-GruntM3Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM3AfterBattleText
@@ -405,7 +405,7 @@ UnknownText_0x5d443:
cont "change your mind."
done
-UnknownText_0x5d476:
+RadioTower1FLassText:
text "BEN is a fabulous"
line "DJ."
@@ -413,7 +413,7 @@ UnknownText_0x5d476:
line "makes me melt!"
done
-UnknownText_0x5d4ac:
+RadioTower1FYoungsterText:
text "I love MARY, from"
line "#MON TALK."
@@ -493,8 +493,8 @@ RadioTower1F_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_RECEPTIONIST, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5cd29, -1
- person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x5ce51, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x5ce54, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_LASS, 4, 16, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, RadioTower1FLassScript, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 4, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, RadioTower1FYoungsterScript, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_GENTLEMAN, 6, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x5cd3d, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 6, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5cdd5, EVENT_GOLDENROD_CITY_CIVILIANS
diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm
index 0df11fdce..31093f073 100644
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -21,8 +21,8 @@ RadioTower2F_MapScriptHeader:
UnknownScript_0x5d6fd:
end
-SuperNerdScript_0x5d6fe:
- jumptextfaceplayer UnknownText_0x5d924
+RadioTower2FSuperNerdScript:
+ jumptextfaceplayer RadioTower2FSuperNerdText
TeacherScript_0x5d701:
faceplayer
@@ -48,16 +48,16 @@ RadioTowerJigglypuff:
closetext
end
-BlackBeltScript_0x5d71f:
- jumptextfaceplayer UnknownText_0x5d9cb
+RadioTower2FBlackBelt1Script:
+ jumptextfaceplayer RadioTower2FBlackBelt1Text
-BlackBeltScript_0x5d722:
- jumptextfaceplayer UnknownText_0x5da44
+RadioTower2FBlackBelt2Script:
+ jumptextfaceplayer RadioTower2FBlackBelt2Text
TrainerGruntM4:
- trainer EVENT_BEAT_ROCKET_GRUNTM_4, GRUNTM, GRUNTM_4, GruntM4SeenText, GruntM4BeatenText, 0, GruntM4Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_4, GRUNTM, GRUNTM_4, GruntM4SeenText, GruntM4BeatenText, 0, .Script
-GruntM4Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM4AfterBattleText
@@ -66,9 +66,9 @@ GruntM4Script:
end
TrainerGruntM5:
- trainer EVENT_BEAT_ROCKET_GRUNTM_5, GRUNTM, GRUNTM_5, GruntM5SeenText, GruntM5BeatenText, 0, GruntM5Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_5, GRUNTM, GRUNTM_5, GruntM5SeenText, GruntM5BeatenText, 0, .Script
-GruntM5Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM5AfterBattleText
@@ -77,9 +77,9 @@ GruntM5Script:
end
TrainerGruntM6:
- trainer EVENT_BEAT_ROCKET_GRUNTM_6, GRUNTM, GRUNTM_6, GruntM6SeenText, GruntM6BeatenText, 0, GruntM6Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_6, GRUNTM, GRUNTM_6, GruntM6SeenText, GruntM6BeatenText, 0, .Script
-GruntM6Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM6AfterBattleText
@@ -88,9 +88,9 @@ GruntM6Script:
end
TrainerGruntF2:
- trainer EVENT_BEAT_ROCKET_GRUNTF_2, GRUNTF, GRUNTF_2, GruntF2SeenText, GruntF2BeatenText, 0, GruntF2Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_2, GRUNTF, GRUNTF_2, GruntF2SeenText, GruntF2BeatenText, 0, .Script
-GruntF2Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF2AfterBattleText
@@ -343,7 +343,7 @@ MovementData_0x5d921:
slow_step RIGHT
step_end
-UnknownText_0x5d924:
+RadioTower2FSuperNerdText:
text "You can listen to"
line "the radio any-"
cont "where. Tune in!"
@@ -366,7 +366,7 @@ RadioTowerJigglypuffText:
line "Jiggly…"
done
-UnknownText_0x5d9cb:
+RadioTower2FBlackBelt1Text:
text "Sorry. Authorized"
line "personnel only"
cont "beyond this point."
@@ -379,7 +379,7 @@ UnknownText_0x5d9cb:
cont "DIRECTOR…"
done
-UnknownText_0x5da44:
+RadioTower2FBlackBelt2Text:
text "Feel free to look"
line "around anywhere."
@@ -733,14 +733,14 @@ RadioTower2F_MapEventHeader:
.PersonEvents:
db 11
- person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5d6fe, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, RadioTower2FSuperNerdScript, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_TEACHER, 2, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5d701, -1
person_event SPRITE_ROCKET, 4, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 4, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM5, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM6, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
- person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RadioTower2FBlackBelt1Script, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
+ person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RadioTower2FBlackBelt2Script, EVENT_RADIO_TOWER_CIVILIANS_AFTER
person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RadioTowerJigglypuff, -1
person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Buena, -1
person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS
diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm
index ae2b1b1bf..ef15ce603 100644
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -25,8 +25,8 @@ RadioTower3F_MapScriptHeader:
changeblock $e, $4, $1
return
-SuperNerdScript_0x5e553:
- jumptextfaceplayer UnknownText_0x5e621
+RadioTower3FSuperNerdScript:
+ jumptextfaceplayer RadioTower3FSuperNerdText
GymGuyScript_0x5e556:
faceplayer
@@ -83,9 +83,9 @@ UnknownScript_0x5e5a1:
end
TrainerGruntM7:
- trainer EVENT_BEAT_ROCKET_GRUNTM_7, GRUNTM, GRUNTM_7, GruntM7SeenText, GruntM7BeatenText, 0, GruntM7Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_7, GRUNTM, GRUNTM_7, GruntM7SeenText, GruntM7BeatenText, 0, .Script
-GruntM7Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM7AfterBattleText
@@ -94,9 +94,9 @@ GruntM7Script:
end
TrainerGruntM8:
- trainer EVENT_BEAT_ROCKET_GRUNTM_8, GRUNTM, GRUNTM_8, GruntM8SeenText, GruntM8BeatenText, 0, GruntM8Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_8, GRUNTM, GRUNTM_8, GruntM8SeenText, GruntM8BeatenText, 0, .Script
-GruntM8Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM8AfterBattleText
@@ -105,9 +105,9 @@ GruntM8Script:
end
TrainerGruntM9:
- trainer EVENT_BEAT_ROCKET_GRUNTM_9, GRUNTM, GRUNTM_9, GruntM9SeenText, GruntM9BeatenText, 0, GruntM9Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_9, GRUNTM, GRUNTM_9, GruntM9SeenText, GruntM9BeatenText, 0, .Script
-GruntM9Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM9AfterBattleText
@@ -116,9 +116,9 @@ GruntM9Script:
end
TrainerScientistMarc:
- trainer EVENT_BEAT_SCIENTIST_MARC, SCIENTIST, MARC, ScientistMarcSeenText, ScientistMarcBeatenText, 0, ScientistMarcScript
+ trainer EVENT_BEAT_SCIENTIST_MARC, SCIENTIST, MARC, ScientistMarcSeenText, ScientistMarcBeatenText, 0, .Script
-ScientistMarcScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistMarcAfterBattleText
@@ -156,7 +156,7 @@ MapRadioTower3FSignpost0Script:
MapRadioTower3FSignpost1Script:
jumptext UnknownText_0x5eae4
-UnknownText_0x5e621:
+RadioTower3FSuperNerdText:
text "We have recordings"
line "of the cries of"
@@ -349,7 +349,7 @@ RadioTower3F_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, RadioTower3FSuperNerdScript, EVENT_RADIO_TOWER_CIVILIANS_AFTER
person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x5e556, -1
person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x5e56a, -1
person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm
index f29ab1dac..38c802c85 100644
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -14,8 +14,8 @@ RadioTower4F_MapScriptHeader:
.MapCallbacks:
db 0
-FisherScript_0x5eb82:
- jumptextfaceplayer UnknownText_0x5ec12
+RadioTower4FFisherScript:
+ jumptextfaceplayer RadioTower4FFisherText
TeacherScript_0x5eb85:
faceplayer
@@ -56,9 +56,9 @@ RadioTowerMeowth:
end
TrainerGruntM10:
- trainer EVENT_BEAT_ROCKET_GRUNTM_10, GRUNTM, GRUNTM_10, GruntM10SeenText, GruntM10BeatenText, 0, GruntM10Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_10, GRUNTM, GRUNTM_10, GruntM10SeenText, GruntM10BeatenText, 0, .Script
-GruntM10Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM10AfterBattleText
@@ -67,9 +67,9 @@ GruntM10Script:
end
TrainerExecutivem2:
- trainer EVENT_BEAT_ROCKET_EXECUTIVEM_2, EXECUTIVEM, EXECUTIVEM_2, Executivem2SeenText, Executivem2BeatenText, 0, Executivem2Script
+ trainer EVENT_BEAT_ROCKET_EXECUTIVEM_2, EXECUTIVEM, EXECUTIVEM_2, Executivem2SeenText, Executivem2BeatenText, 0, .Script
-Executivem2Script:
+.Script:
end_if_just_battled
opentext
writetext Executivem2AfterBattleText
@@ -78,9 +78,9 @@ Executivem2Script:
end
TrainerGruntF4:
- trainer EVENT_BEAT_ROCKET_GRUNTF_4, GRUNTF, GRUNTF_4, GruntF4SeenText, GruntF4BeatenText, 0, GruntF4Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_4, GRUNTF, GRUNTF_4, GruntF4SeenText, GruntF4BeatenText, 0, .Script
-GruntF4Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF4AfterBattleText
@@ -89,9 +89,9 @@ GruntF4Script:
end
TrainerScientistRich:
- trainer EVENT_BEAT_SCIENTIST_RICH, SCIENTIST, RICH, ScientistRichSeenText, ScientistRichBeatenText, 0, ScientistRichScript
+ trainer EVENT_BEAT_SCIENTIST_RICH, SCIENTIST, RICH, ScientistRichSeenText, ScientistRichBeatenText, 0, .Script
-ScientistRichScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistRichAfterBattleText
@@ -105,7 +105,7 @@ MapRadioTower4FSignpost0Script:
MapRadioTower4FSignpost1Script:
jumptext UnknownText_0x5f00d
-UnknownText_0x5ec12:
+RadioTower4FFisherText:
text "I listened to the"
line "radio while I was"
cont "at the RUINS."
@@ -266,7 +266,7 @@ RadioTower4F_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER
+ person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, RadioTower4FFisherScript, EVENT_RADIO_TOWER_CIVILIANS_AFTER
person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x5eb85, -1
person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, RadioTowerMeowth, -1
person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm
index e8b70f7e1..020569db2 100644
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -68,9 +68,9 @@ Director:
end
TrainerExecutivef1:
- trainer EVENT_BEAT_ROCKET_EXECUTIVEF_1, EXECUTIVEF, EXECUTIVEF_1, Executivef1SeenText, Executivef1BeatenText, 0, Executivef1Script
+ trainer EVENT_BEAT_ROCKET_EXECUTIVEF_1, EXECUTIVEF, EXECUTIVEF_1, Executivef1SeenText, Executivef1BeatenText, 0, .Script
-Executivef1Script:
+.Script:
end_if_just_battled
opentext
writetext Executivef1AfterBattleText
diff --git a/maps/RedsHouse2F.asm b/maps/RedsHouse2F.asm
index 5704cdcaf..5934f2cf4 100644
--- a/maps/RedsHouse2F.asm
+++ b/maps/RedsHouse2F.asm
@@ -5,13 +5,13 @@ RedsHouse2F_MapScriptHeader:
.MapCallbacks:
db 0
-MapRedsHouse2FSignpost0Script:
- jumptext UnknownText_0x19b050
+RedsHouse2FN64Script:
+ jumptext RedsHouse2FN64Text
-MapRedsHouse2FSignpost1Script:
- jumptext UnknownText_0x19b087
+RedsHouse2FPCScript:
+ jumptext RedsHouse2FPCText
-UnknownText_0x19b050:
+RedsHouse2FN64Text:
text "<PLAYER> played the"
line "N64."
@@ -19,7 +19,7 @@ UnknownText_0x19b050:
line "no time to lose!"
done
-UnknownText_0x19b087:
+RedsHouse2FPCText:
text "It looks like it"
line "hasn't been used"
cont "in a long time…"
@@ -38,8 +38,8 @@ RedsHouse2F_MapEventHeader:
.Signposts:
db 2
- signpost 5, 3, SIGNPOST_READ, MapRedsHouse2FSignpost0Script
- signpost 1, 0, SIGNPOST_READ, MapRedsHouse2FSignpost1Script
+ signpost 5, 3, SIGNPOST_READ, RedsHouse2FN64Script
+ signpost 1, 0, SIGNPOST_READ, RedsHouse2FPCScript
.PersonEvents:
db 0
diff --git a/maps/Route1.asm b/maps/Route1.asm
index 3bda2934f..d083b2708 100644
--- a/maps/Route1.asm
+++ b/maps/Route1.asm
@@ -11,9 +11,9 @@ Route1_MapScriptHeader:
db 0
TrainerSchoolboyDanny:
- trainer EVENT_BEAT_SCHOOLBOY_DANNY, SCHOOLBOY, DANNY, SchoolboyDannySeenText, SchoolboyDannyBeatenText, 0, SchoolboyDannyScript
+ trainer EVENT_BEAT_SCHOOLBOY_DANNY, SCHOOLBOY, DANNY, SchoolboyDannySeenText, SchoolboyDannyBeatenText, 0, .Script
-SchoolboyDannyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyDannyAfterBattleText
@@ -22,9 +22,9 @@ SchoolboyDannyScript:
end
TrainerCooltrainerfQuinn:
- trainer EVENT_BEAT_COOLTRAINERF_QUINN, COOLTRAINERF, QUINN, CooltrainerfQuinnSeenText, CooltrainerfQuinnBeatenText, 0, CooltrainerfQuinnScript
+ trainer EVENT_BEAT_COOLTRAINERF_QUINN, COOLTRAINERF, QUINN, CooltrainerfQuinnSeenText, CooltrainerfQuinnBeatenText, 0, .Script
-CooltrainerfQuinnScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfQuinnAfterBattleText
diff --git a/maps/Route10Pokecenter1F.asm b/maps/Route10Pokecenter1F.asm
index 18f1bd8ab..7fa695d0f 100644
--- a/maps/Route10Pokecenter1F.asm
+++ b/maps/Route10Pokecenter1F.asm
@@ -14,8 +14,8 @@ Route10Pokecenter1F_MapScriptHeader:
NurseScript_0x188bd4:
jumpstd pokecenternurse
-GentlemanScript_0x188bd7:
- jumptextfaceplayer UnknownText_0x188bf1
+Route10Pokecenter1FGentlemanScript:
+ jumptextfaceplayer Route10Pokecenter1FGentlemanText
GymGuyScript_0x188bda:
faceplayer
@@ -33,10 +33,10 @@ UnknownScript_0x188be8:
closetext
end
-CooltrainerFScript_0x188bee:
- jumptextfaceplayer UnknownText_0x188d0c
+Route10Pokecenter1FCooltrainerFScript:
+ jumptextfaceplayer Route10Pokecenter1FCooltrainerFText
-UnknownText_0x188bf1:
+Route10Pokecenter1FGentlemanText:
text "A #MON CENTER"
line "near a cave?"
@@ -69,7 +69,7 @@ UnknownText_0x188c9e:
line "thing about that."
done
-UnknownText_0x188d0c:
+Route10Pokecenter1FCooltrainerFText:
text "When you go out-"
line "side, you can see"
@@ -99,6 +99,6 @@ Route10Pokecenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x188bd4, -1
- person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x188bd7, -1
+ person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route10Pokecenter1FGentlemanScript, -1
person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x188bda, -1
- person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x188bee, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route10Pokecenter1FCooltrainerFScript, -1
diff --git a/maps/Route10South.asm b/maps/Route10South.asm
index db5c7c5e9..2c9a6fd7f 100644
--- a/maps/Route10South.asm
+++ b/maps/Route10South.asm
@@ -10,9 +10,9 @@ Route10South_MapScriptHeader:
db 0
TrainerHikerJim:
- trainer EVENT_BEAT_HIKER_JIM, HIKER, JIM, HikerJimSeenText, HikerJimBeatenText, 0, HikerJimScript
+ trainer EVENT_BEAT_HIKER_JIM, HIKER, JIM, HikerJimSeenText, HikerJimBeatenText, 0, .Script
-HikerJimScript:
+.Script:
end_if_just_battled
opentext
writetext HikerJimAfterBattleText
@@ -21,9 +21,9 @@ HikerJimScript:
end
TrainerPokefanmRobert:
- trainer EVENT_BEAT_POKEFANM_ROBERT, POKEFANM, ROBERT, PokefanmRobertSeenText, PokefanmRobertBeatenText, 0, PokefanmRobertScript
+ trainer EVENT_BEAT_POKEFANM_ROBERT, POKEFANM, ROBERT, PokefanmRobertSeenText, PokefanmRobertBeatenText, 0, .Script
-PokefanmRobertScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmRobertAfterBattleText
diff --git a/maps/Route11.asm b/maps/Route11.asm
index ca6159c38..c01fefdb8 100644
--- a/maps/Route11.asm
+++ b/maps/Route11.asm
@@ -13,9 +13,9 @@ Route11_MapScriptHeader:
db 0
TrainerYoungsterOwen:
- trainer EVENT_BEAT_YOUNGSTER_OWEN, YOUNGSTER, OWEN, YoungsterOwenSeenText, YoungsterOwenBeatenText, 0, YoungsterOwenScript
+ trainer EVENT_BEAT_YOUNGSTER_OWEN, YOUNGSTER, OWEN, YoungsterOwenSeenText, YoungsterOwenBeatenText, 0, .Script
-YoungsterOwenScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterOwenAfterBattleText
@@ -24,9 +24,9 @@ YoungsterOwenScript:
end
TrainerYoungsterJason:
- trainer EVENT_BEAT_YOUNGSTER_JASON, YOUNGSTER, JASON, YoungsterJasonSeenText, YoungsterJasonBeatenText, 0, YoungsterJasonScript
+ trainer EVENT_BEAT_YOUNGSTER_JASON, YOUNGSTER, JASON, YoungsterJasonSeenText, YoungsterJasonBeatenText, 0, .Script
-YoungsterJasonScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterJasonAfterBattleText
@@ -35,9 +35,9 @@ YoungsterJasonScript:
end
TrainerPsychicHerman:
- trainer EVENT_BEAT_PSYCHIC_HERMAN, PSYCHIC_T, HERMAN, PsychicHermanSeenText, PsychicHermanBeatenText, 0, PsychicHermanScript
+ trainer EVENT_BEAT_PSYCHIC_HERMAN, PSYCHIC_T, HERMAN, PsychicHermanSeenText, PsychicHermanBeatenText, 0, .Script
-PsychicHermanScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicHermanAfterBattleText
@@ -46,9 +46,9 @@ PsychicHermanScript:
end
TrainerPsychicFidel:
- trainer EVENT_BEAT_PSYCHIC_FIDEL, PSYCHIC_T, FIDEL, PsychicFidelSeenText, PsychicFidelBeatenText, 0, PsychicFidelScript
+ trainer EVENT_BEAT_PSYCHIC_FIDEL, PSYCHIC_T, FIDEL, PsychicFidelSeenText, PsychicFidelBeatenText, 0, .Script
-PsychicFidelScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicFidelAfterBattleText
diff --git a/maps/Route12.asm b/maps/Route12.asm
index 00c00f15f..ea867c641 100644
--- a/maps/Route12.asm
+++ b/maps/Route12.asm
@@ -14,9 +14,9 @@ Route12_MapScriptHeader:
db 0
TrainerFisherKyle:
- trainer EVENT_BEAT_FISHER_KYLE, FISHER, KYLE, FisherKyleSeenText, FisherKyleBeatenText, 0, FisherKyleScript
+ trainer EVENT_BEAT_FISHER_KYLE, FISHER, KYLE, FisherKyleSeenText, FisherKyleBeatenText, 0, .Script
-FisherKyleScript:
+.Script:
end_if_just_battled
opentext
writetext FisherKyleAfterBattleText
@@ -25,9 +25,9 @@ FisherKyleScript:
end
TrainerFisherMartin:
- trainer EVENT_BEAT_FISHER_MARTIN, FISHER, MARTIN, FisherMartinSeenText, FisherMartinBeatenText, 0, FisherMartinScript
+ trainer EVENT_BEAT_FISHER_MARTIN, FISHER, MARTIN, FisherMartinSeenText, FisherMartinBeatenText, 0, .Script
-FisherMartinScript:
+.Script:
end_if_just_battled
opentext
writetext FisherMartinAfterBattleText
@@ -36,9 +36,9 @@ FisherMartinScript:
end
TrainerFisherStephen:
- trainer EVENT_BEAT_FISHER_STEPHEN, FISHER, STEPHEN, FisherStephenSeenText, FisherStephenBeatenText, 0, FisherStephenScript
+ trainer EVENT_BEAT_FISHER_STEPHEN, FISHER, STEPHEN, FisherStephenSeenText, FisherStephenBeatenText, 0, .Script
-FisherStephenScript:
+.Script:
end_if_just_battled
opentext
writetext FisherStephenAfterBattleText
@@ -47,9 +47,9 @@ FisherStephenScript:
end
TrainerFisherBarney:
- trainer EVENT_BEAT_FISHER_BARNEY, FISHER, BARNEY, FisherBarneySeenText, FisherBarneyBeatenText, 0, FisherBarneyScript
+ trainer EVENT_BEAT_FISHER_BARNEY, FISHER, BARNEY, FisherBarneySeenText, FisherBarneyBeatenText, 0, .Script
-FisherBarneyScript:
+.Script:
end_if_just_battled
opentext
writetext FisherBarneyAfterBattleText
diff --git a/maps/Route13.asm b/maps/Route13.asm
index baa220c44..03490891b 100644
--- a/maps/Route13.asm
+++ b/maps/Route13.asm
@@ -13,9 +13,9 @@ Route13_MapScriptHeader:
db 0
TrainerPokefanmAlex:
- trainer EVENT_BEAT_POKEFANM_ALEX, POKEFANM, ALEX, PokefanmAlexSeenText, PokefanmAlexBeatenText, 0, PokefanmAlexScript
+ trainer EVENT_BEAT_POKEFANM_ALEX, POKEFANM, ALEX, PokefanmAlexSeenText, PokefanmAlexBeatenText, 0, .Script
-PokefanmAlexScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmAlexAfterBattleText
@@ -24,9 +24,9 @@ PokefanmAlexScript:
end
TrainerPokefanmJoshua:
- trainer EVENT_BEAT_POKEFANM_JOSHUA, POKEFANM, JOSHUA, PokefanmJoshuaSeenText, PokefanmJoshuaBeatenText, 0, PokefanmJoshuaScript
+ trainer EVENT_BEAT_POKEFANM_JOSHUA, POKEFANM, JOSHUA, PokefanmJoshuaSeenText, PokefanmJoshuaBeatenText, 0, .Script
-PokefanmJoshuaScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmJoshuaAfterBattleText
@@ -35,9 +35,9 @@ PokefanmJoshuaScript:
end
TrainerBird_keeperPerry:
- trainer EVENT_BEAT_BIRD_KEEPER_PERRY, BIRD_KEEPER, PERRY, Bird_keeperPerrySeenText, Bird_keeperPerryBeatenText, 0, Bird_keeperPerryScript
+ trainer EVENT_BEAT_BIRD_KEEPER_PERRY, BIRD_KEEPER, PERRY, Bird_keeperPerrySeenText, Bird_keeperPerryBeatenText, 0, .Script
-Bird_keeperPerryScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperPerryAfterBattleText
@@ -46,9 +46,9 @@ Bird_keeperPerryScript:
end
TrainerBird_keeperBret:
- trainer EVENT_BEAT_BIRD_KEEPER_BRET, BIRD_KEEPER, BRET, Bird_keeperBretSeenText, Bird_keeperBretBeatenText, 0, Bird_keeperBretScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BRET, BIRD_KEEPER, BRET, Bird_keeperBretSeenText, Bird_keeperBretBeatenText, 0, .Script
-Bird_keeperBretScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBretAfterBattleText
@@ -57,9 +57,9 @@ Bird_keeperBretScript:
end
TrainerHikerKenny:
- trainer EVENT_BEAT_HIKER_KENNY, HIKER, KENNY, HikerKennySeenText, HikerKennyBeatenText, 0, HikerKennyScript
+ trainer EVENT_BEAT_HIKER_KENNY, HIKER, KENNY, HikerKennySeenText, HikerKennyBeatenText, 0, .Script
-HikerKennyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerKennyAfterBattleText
diff --git a/maps/Route14.asm b/maps/Route14.asm
index 841ee2c97..e7a3c7f3f 100644
--- a/maps/Route14.asm
+++ b/maps/Route14.asm
@@ -20,9 +20,9 @@ Kim:
end
TrainerPokefanmCarter:
- trainer EVENT_BEAT_POKEFANM_CARTER, POKEFANM, CARTER, PokefanmCarterSeenText, PokefanmCarterBeatenText, 0, PokefanmCarterScript
+ trainer EVENT_BEAT_POKEFANM_CARTER, POKEFANM, CARTER, PokefanmCarterSeenText, PokefanmCarterBeatenText, 0, .Script
-PokefanmCarterScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmCarterAfterBattleText
@@ -31,9 +31,9 @@ PokefanmCarterScript:
end
TrainerBird_keeperRoy:
- trainer EVENT_BEAT_BIRD_KEEPER_ROY, BIRD_KEEPER, ROY, Bird_keeperRoySeenText, Bird_keeperRoyBeatenText, 0, Bird_keeperRoyScript
+ trainer EVENT_BEAT_BIRD_KEEPER_ROY, BIRD_KEEPER, ROY, Bird_keeperRoySeenText, Bird_keeperRoyBeatenText, 0, .Script
-Bird_keeperRoyScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperRoyAfterBattleText
@@ -42,9 +42,9 @@ Bird_keeperRoyScript:
end
TrainerPokefanmTrevor:
- trainer EVENT_BEAT_POKEFANM_TREVOR, POKEFANM, TREVOR, PokefanmTrevorSeenText, PokefanmTrevorBeatenText, 0, PokefanmTrevorScript
+ trainer EVENT_BEAT_POKEFANM_TREVOR, POKEFANM, TREVOR, PokefanmTrevorSeenText, PokefanmTrevorBeatenText, 0, .Script
-PokefanmTrevorScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmTrevorAfterBattleText
diff --git a/maps/Route15.asm b/maps/Route15.asm
index 3d78e29a2..317c536fb 100644
--- a/maps/Route15.asm
+++ b/maps/Route15.asm
@@ -15,9 +15,9 @@ Route15_MapScriptHeader:
db 0
TrainerTeacherColette:
- trainer EVENT_BEAT_TEACHER_COLETTE, TEACHER, COLETTE, TeacherColetteSeenText, TeacherColetteBeatenText, 0, TeacherColetteScript
+ trainer EVENT_BEAT_TEACHER_COLETTE, TEACHER, COLETTE, TeacherColetteSeenText, TeacherColetteBeatenText, 0, .Script
-TeacherColetteScript:
+.Script:
end_if_just_battled
opentext
writetext TeacherColetteAfterBattleText
@@ -26,9 +26,9 @@ TeacherColetteScript:
end
TrainerTeacherHillary:
- trainer EVENT_BEAT_TEACHER_HILLARY, TEACHER, HILLARY, TeacherHillarySeenText, TeacherHillaryBeatenText, 0, TeacherHillaryScript
+ trainer EVENT_BEAT_TEACHER_HILLARY, TEACHER, HILLARY, TeacherHillarySeenText, TeacherHillaryBeatenText, 0, .Script
-TeacherHillaryScript:
+.Script:
end_if_just_battled
opentext
writetext TeacherHillaryAfterBattleText
@@ -37,9 +37,9 @@ TeacherHillaryScript:
end
TrainerSchoolboyKipp:
- trainer EVENT_BEAT_SCHOOLBOY_KIP, SCHOOLBOY, KIPP, SchoolboyKippSeenText, SchoolboyKippBeatenText, 0, SchoolboyKippScript
+ trainer EVENT_BEAT_SCHOOLBOY_KIP, SCHOOLBOY, KIPP, SchoolboyKippSeenText, SchoolboyKippBeatenText, 0, .Script
-SchoolboyKippScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyKippAfterBattleText
@@ -48,9 +48,9 @@ SchoolboyKippScript:
end
TrainerSchoolboyTommy:
- trainer EVENT_BEAT_SCHOOLBOY_TOMMY, SCHOOLBOY, TOMMY, SchoolboyTommySeenText, SchoolboyTommyBeatenText, 0, SchoolboyTommyScript
+ trainer EVENT_BEAT_SCHOOLBOY_TOMMY, SCHOOLBOY, TOMMY, SchoolboyTommySeenText, SchoolboyTommyBeatenText, 0, .Script
-SchoolboyTommyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyTommyAfterBattleText
@@ -59,9 +59,9 @@ SchoolboyTommyScript:
end
TrainerSchoolboyJohnny:
- trainer EVENT_BEAT_SCHOOLBOY_JOHNNY, SCHOOLBOY, JOHNNY, SchoolboyJohnnySeenText, SchoolboyJohnnyBeatenText, 0, SchoolboyJohnnyScript
+ trainer EVENT_BEAT_SCHOOLBOY_JOHNNY, SCHOOLBOY, JOHNNY, SchoolboyJohnnySeenText, SchoolboyJohnnyBeatenText, 0, .Script
-SchoolboyJohnnyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyJohnnyAfterBattleText
@@ -70,9 +70,9 @@ SchoolboyJohnnyScript:
end
TrainerSchoolboyBilly:
- trainer EVENT_BEAT_SCHOOLBOY_BILLY, SCHOOLBOY, BILLY, SchoolboyBillySeenText, SchoolboyBillyBeatenText, 0, SchoolboyBillyScript
+ trainer EVENT_BEAT_SCHOOLBOY_BILLY, SCHOOLBOY, BILLY, SchoolboyBillySeenText, SchoolboyBillyBeatenText, 0, .Script
-SchoolboyBillyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyBillyAfterBattleText
diff --git a/maps/Route15FuchsiaGate.asm b/maps/Route15FuchsiaGate.asm
index 920a07d97..855986895 100644
--- a/maps/Route15FuchsiaGate.asm
+++ b/maps/Route15FuchsiaGate.asm
@@ -8,10 +8,10 @@ Route15FuchsiaGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x19679e:
- jumptextfaceplayer UnknownText_0x1967a1
+Route15FuchsiaGateOfficerScript:
+ jumptextfaceplayer Route15FuchsiaGateOfficerText
-UnknownText_0x1967a1:
+Route15FuchsiaGateOfficerText:
text "You're working on"
line "a #DEX? That's"
@@ -38,4 +38,4 @@ Route15FuchsiaGate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19679e, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route15FuchsiaGateOfficerScript, -1
diff --git a/maps/Route16FuchsiaSpeechHouse.asm b/maps/Route16FuchsiaSpeechHouse.asm
index 911cc1111..26f47f14a 100644
--- a/maps/Route16FuchsiaSpeechHouse.asm
+++ b/maps/Route16FuchsiaSpeechHouse.asm
@@ -8,13 +8,13 @@ Route16FuchsiaSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-SuperNerdScript_0x73373:
- jumptextfaceplayer UnknownText_0x73379
+Route16FuchsiaSpeechHouseSuperNerdScript:
+ jumptextfaceplayer Route16FuchsiaSpeechHouseSuperNerdText
Route16FuchsiaSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x73379:
+Route16FuchsiaSpeechHouseSuperNerdText:
text "If you cruise down"
line "CYCLING ROAD, you"
@@ -41,4 +41,4 @@ Route16FuchsiaSpeechHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x73373, -1
+ person_event SPRITE_SUPER_NERD, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route16FuchsiaSpeechHouseSuperNerdScript, -1
diff --git a/maps/Route16Gate.asm b/maps/Route16Gate.asm
index 3da6f3458..d8bfdc0d3 100644
--- a/maps/Route16Gate.asm
+++ b/maps/Route16Gate.asm
@@ -12,8 +12,8 @@ Route16Gate_MapScriptHeader:
.DummyTrigger:
end
-OfficerScript_0x733ea:
- jumptextfaceplayer UnknownText_0x73408
+Route16GateOfficerScript:
+ jumptextfaceplayer Route16GateOfficerText
UnknownScript_0x733ed:
checkitem BICYCLE
@@ -35,7 +35,7 @@ MovementData_0x73405:
turn_head LEFT
step_end
-UnknownText_0x73408:
+Route16GateOfficerText:
text "CYCLING ROAD"
line "starts here."
@@ -81,4 +81,4 @@ Route16Gate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x733ea, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route16GateOfficerScript, -1
diff --git a/maps/Route17.asm b/maps/Route17.asm
index 03cfd3e4b..89043b890 100644
--- a/maps/Route17.asm
+++ b/maps/Route17.asm
@@ -18,9 +18,9 @@ Route17_MapScriptHeader:
return
TrainerBikerCharles:
- trainer EVENT_BEAT_BIKER_CHARLES, BIKER, CHARLES, BikerCharlesSeenText, BikerCharlesBeatenText, 0, BikerCharlesScript
+ trainer EVENT_BEAT_BIKER_CHARLES, BIKER, CHARLES, BikerCharlesSeenText, BikerCharlesBeatenText, 0, .Script
-BikerCharlesScript:
+.Script:
end_if_just_battled
opentext
writetext BikerCharlesAfterBattleText
@@ -29,9 +29,9 @@ BikerCharlesScript:
end
TrainerBikerRiley:
- trainer EVENT_BEAT_BIKER_RILEY, BIKER, RILEY, BikerRileySeenText, BikerRileyBeatenText, 0, BikerRileyScript
+ trainer EVENT_BEAT_BIKER_RILEY, BIKER, RILEY, BikerRileySeenText, BikerRileyBeatenText, 0, .Script
-BikerRileyScript:
+.Script:
end_if_just_battled
opentext
writetext BikerRileyAfterBattleText
@@ -40,9 +40,9 @@ BikerRileyScript:
end
TrainerBikerJoel:
- trainer EVENT_BEAT_BIKER_JOEL, BIKER, JOEL, BikerJoelSeenText, BikerJoelBeatenText, 0, BikerJoelScript
+ trainer EVENT_BEAT_BIKER_JOEL, BIKER, JOEL, BikerJoelSeenText, BikerJoelBeatenText, 0, .Script
-BikerJoelScript:
+.Script:
end_if_just_battled
opentext
writetext BikerJoelAfterBattleText
@@ -51,9 +51,9 @@ BikerJoelScript:
end
TrainerBikerGlenn:
- trainer EVENT_BEAT_BIKER_GLENN, BIKER, GLENN, BikerGlennSeenText, BikerGlennBeatenText, 0, BikerGlennScript
+ trainer EVENT_BEAT_BIKER_GLENN, BIKER, GLENN, BikerGlennSeenText, BikerGlennBeatenText, 0, .Script
-BikerGlennScript:
+.Script:
end_if_just_battled
opentext
writetext BikerGlennAfterBattleText
diff --git a/maps/Route1718Gate.asm b/maps/Route1718Gate.asm
index b93e7978f..c87d389aa 100644
--- a/maps/Route1718Gate.asm
+++ b/maps/Route1718Gate.asm
@@ -12,8 +12,8 @@ Route1718Gate_MapScriptHeader:
.DummyTrigger:
end
-OfficerScript_0x7360e:
- jumptextfaceplayer UnknownText_0x7362c
+Route1718GateOfficerScript:
+ jumptextfaceplayer Route1718GateOfficerText
UnknownScript_0x73611:
checkitem BICYCLE
@@ -35,7 +35,7 @@ MovementData_0x73629:
turn_head LEFT
step_end
-UnknownText_0x7362c:
+Route1718GateOfficerText:
text "CYCLING ROAD"
line "Uphill Starts Here"
done
@@ -72,4 +72,4 @@ Route1718Gate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7360e, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route1718GateOfficerScript, -1
diff --git a/maps/Route18.asm b/maps/Route18.asm
index 8c02559f4..16f5c6920 100644
--- a/maps/Route18.asm
+++ b/maps/Route18.asm
@@ -10,9 +10,9 @@ Route18_MapScriptHeader:
db 0
TrainerBird_keeperBoris:
- trainer EVENT_BEAT_BIRD_KEEPER_BORIS, BIRD_KEEPER, BORIS, Bird_keeperBorisSeenText, Bird_keeperBorisBeatenText, 0, Bird_keeperBorisScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BORIS, BIRD_KEEPER, BORIS, Bird_keeperBorisSeenText, Bird_keeperBorisBeatenText, 0, .Script
-Bird_keeperBorisScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBorisAfterBattleText
@@ -21,9 +21,9 @@ Bird_keeperBorisScript:
end
TrainerBird_keeperBob:
- trainer EVENT_BEAT_BIRD_KEEPER_BOB, BIRD_KEEPER, BOB, Bird_keeperBobSeenText, Bird_keeperBobBeatenText, 0, Bird_keeperBobScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BOB, BIRD_KEEPER, BOB, Bird_keeperBobSeenText, Bird_keeperBobBeatenText, 0, .Script
-Bird_keeperBobScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBobAfterBattleText
diff --git a/maps/Route19.asm b/maps/Route19.asm
index 18bffe3e4..02e59165f 100644
--- a/maps/Route19.asm
+++ b/maps/Route19.asm
@@ -27,9 +27,9 @@ Route19_MapScriptHeader:
return
TrainerSwimmerfDawn:
- trainer EVENT_BEAT_SWIMMERF_DAWN, SWIMMERF, DAWN, SwimmerfDawnSeenText, SwimmerfDawnBeatenText, 0, SwimmerfDawnScript
+ trainer EVENT_BEAT_SWIMMERF_DAWN, SWIMMERF, DAWN, SwimmerfDawnSeenText, SwimmerfDawnBeatenText, 0, .Script
-SwimmerfDawnScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfDawnAfterBattleText
@@ -38,9 +38,9 @@ SwimmerfDawnScript:
end
TrainerSwimmermHarold:
- trainer EVENT_BEAT_SWIMMERM_HAROLD, SWIMMERM, HAROLD, SwimmermHaroldSeenText, SwimmermHaroldBeatenText, 0, SwimmermHaroldScript
+ trainer EVENT_BEAT_SWIMMERM_HAROLD, SWIMMERM, HAROLD, SwimmermHaroldSeenText, SwimmermHaroldBeatenText, 0, .Script
-SwimmermHaroldScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermHaroldAfterBattleText
@@ -49,9 +49,9 @@ SwimmermHaroldScript:
end
TrainerSwimmermJerome:
- trainer EVENT_BEAT_SWIMMERM_JEROME, SWIMMERM, JEROME, SwimmermJeromeSeenText, SwimmermJeromeBeatenText, 0, SwimmermJeromeScript
+ trainer EVENT_BEAT_SWIMMERM_JEROME, SWIMMERM, JEROME, SwimmermJeromeSeenText, SwimmermJeromeBeatenText, 0, .Script
-SwimmermJeromeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermJeromeAfterBattleText
@@ -60,9 +60,9 @@ SwimmermJeromeScript:
end
TrainerSwimmermTucker:
- trainer EVENT_BEAT_SWIMMERM_TUCKER, SWIMMERM, TUCKER, SwimmermTuckerSeenText, SwimmermTuckerBeatenText, 0, SwimmermTuckerScript
+ trainer EVENT_BEAT_SWIMMERM_TUCKER, SWIMMERM, TUCKER, SwimmermTuckerSeenText, SwimmermTuckerBeatenText, 0, .Script
-SwimmermTuckerScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermTuckerAfterBattleText
diff --git a/maps/Route2.asm b/maps/Route2.asm
index be4069932..d33381b26 100644
--- a/maps/Route2.asm
+++ b/maps/Route2.asm
@@ -16,9 +16,9 @@ Route2_MapScriptHeader:
db 0
TrainerBug_catcherRob:
- trainer EVENT_BEAT_BUG_CATCHER_ROB, BUG_CATCHER, ROB, Bug_catcherRobSeenText, Bug_catcherRobBeatenText, 0, Bug_catcherRobScript
+ trainer EVENT_BEAT_BUG_CATCHER_ROB, BUG_CATCHER, ROB, Bug_catcherRobSeenText, Bug_catcherRobBeatenText, 0, .Script
-Bug_catcherRobScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherRobAfterBattleText
@@ -27,9 +27,9 @@ Bug_catcherRobScript:
end
TrainerBug_catcherEd:
- trainer EVENT_BEAT_BUG_CATCHER_ED, BUG_CATCHER, ED, Bug_catcherEdSeenText, Bug_catcherEdBeatenText, 0, Bug_catcherEdScript
+ trainer EVENT_BEAT_BUG_CATCHER_ED, BUG_CATCHER, ED, Bug_catcherEdSeenText, Bug_catcherEdBeatenText, 0, .Script
-Bug_catcherEdScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherEdAfterBattleText
@@ -38,9 +38,9 @@ Bug_catcherEdScript:
end
TrainerBug_catcherDoug:
- trainer EVENT_BEAT_BUG_CATCHER_DOUG, BUG_CATCHER, DOUG, Bug_catcherDougSeenText, Bug_catcherDougBeatenText, 0, Bug_catcherDougScript
+ trainer EVENT_BEAT_BUG_CATCHER_DOUG, BUG_CATCHER, DOUG, Bug_catcherDougSeenText, Bug_catcherDougBeatenText, 0, .Script
-Bug_catcherDougScript:
+.Script:
end_if_just_battled
opentext
writetext Bug_catcherDougAfterBattleText
diff --git a/maps/Route20.asm b/maps/Route20.asm
index c849e516c..c0a05f7a4 100644
--- a/maps/Route20.asm
+++ b/maps/Route20.asm
@@ -16,9 +16,9 @@ Route20_MapScriptHeader:
return
TrainerSwimmerfNicole:
- trainer EVENT_BEAT_SWIMMERF_NICOLE, SWIMMERF, NICOLE, SwimmerfNicoleSeenText, SwimmerfNicoleBeatenText, 0, SwimmerfNicoleScript
+ trainer EVENT_BEAT_SWIMMERF_NICOLE, SWIMMERF, NICOLE, SwimmerfNicoleSeenText, SwimmerfNicoleBeatenText, 0, .Script
-SwimmerfNicoleScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfNicoleAfterBattleText
@@ -27,9 +27,9 @@ SwimmerfNicoleScript:
end
TrainerSwimmerfLori:
- trainer EVENT_BEAT_SWIMMERF_LORI, SWIMMERF, LORI, SwimmerfLoriSeenText, SwimmerfLoriBeatenText, 0, SwimmerfLoriScript
+ trainer EVENT_BEAT_SWIMMERF_LORI, SWIMMERF, LORI, SwimmerfLoriSeenText, SwimmerfLoriBeatenText, 0, .Script
-SwimmerfLoriScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfLoriAfterBattleText
@@ -38,9 +38,9 @@ SwimmerfLoriScript:
end
TrainerSwimmermCameron:
- trainer EVENT_BEAT_SWIMMERM_CAMERON, SWIMMERM, CAMERON, SwimmermCameronSeenText, SwimmermCameronBeatenText, 0, SwimmermCameronScript
+ trainer EVENT_BEAT_SWIMMERM_CAMERON, SWIMMERM, CAMERON, SwimmermCameronSeenText, SwimmermCameronBeatenText, 0, .Script
-SwimmermCameronScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermCameronAfterBattleText
diff --git a/maps/Route21.asm b/maps/Route21.asm
index 28b17d11d..64bc65257 100644
--- a/maps/Route21.asm
+++ b/maps/Route21.asm
@@ -11,9 +11,9 @@ Route21_MapScriptHeader:
db 0
TrainerSwimmermSeth:
- trainer EVENT_BEAT_SWIMMERM_SETH, SWIMMERM, SETH, SwimmermSethSeenText, SwimmermSethBeatenText, 0, SwimmermSethScript
+ trainer EVENT_BEAT_SWIMMERM_SETH, SWIMMERM, SETH, SwimmermSethSeenText, SwimmermSethBeatenText, 0, .Script
-SwimmermSethScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermSethAfterBattleText
@@ -22,9 +22,9 @@ SwimmermSethScript:
end
TrainerSwimmerfNikki:
- trainer EVENT_BEAT_SWIMMERF_NIKKI, SWIMMERF, NIKKI, SwimmerfNikkiSeenText, SwimmerfNikkiBeatenText, 0, SwimmerfNikkiScript
+ trainer EVENT_BEAT_SWIMMERF_NIKKI, SWIMMERF, NIKKI, SwimmerfNikkiSeenText, SwimmerfNikkiBeatenText, 0, .Script
-SwimmerfNikkiScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfNikkiAfterBattleText
@@ -33,9 +33,9 @@ SwimmerfNikkiScript:
end
TrainerFisherArnold:
- trainer EVENT_BEAT_FISHER_ARNOLD, FISHER, ARNOLD, FisherArnoldSeenText, FisherArnoldBeatenText, 0, FisherArnoldScript
+ trainer EVENT_BEAT_FISHER_ARNOLD, FISHER, ARNOLD, FisherArnoldSeenText, FisherArnoldBeatenText, 0, .Script
-FisherArnoldScript:
+.Script:
end_if_just_battled
opentext
writetext FisherArnoldAfterBattleText
diff --git a/maps/Route25.asm b/maps/Route25.asm
index 76b43b70f..44e854532 100644
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -79,9 +79,9 @@ UnknownScript_0x19eee0:
end
TrainerSchoolboyDudley:
- trainer EVENT_BEAT_SCHOOLBOY_DUDLEY, SCHOOLBOY, DUDLEY, SchoolboyDudleySeenText, SchoolboyDudleyBeatenText, 0, SchoolboyDudleyScript
+ trainer EVENT_BEAT_SCHOOLBOY_DUDLEY, SCHOOLBOY, DUDLEY, SchoolboyDudleySeenText, SchoolboyDudleyBeatenText, 0, .Script
-SchoolboyDudleyScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyDudleyAfterBattleText
@@ -90,9 +90,9 @@ SchoolboyDudleyScript:
end
TrainerLassEllen:
- trainer EVENT_BEAT_LASS_ELLEN, LASS, ELLEN, LassEllenSeenText, LassEllenBeatenText, 0, LassEllenScript
+ trainer EVENT_BEAT_LASS_ELLEN, LASS, ELLEN, LassEllenSeenText, LassEllenBeatenText, 0, .Script
-LassEllenScript:
+.Script:
end_if_just_battled
opentext
writetext LassEllenAfterBattleText
@@ -101,9 +101,9 @@ LassEllenScript:
end
TrainerSchoolboyJoe:
- trainer EVENT_BEAT_SCHOOLBOY_JOE, SCHOOLBOY, JOE, SchoolboyJoeSeenText, SchoolboyJoeBeatenText, 0, SchoolboyJoeScript
+ trainer EVENT_BEAT_SCHOOLBOY_JOE, SCHOOLBOY, JOE, SchoolboyJoeSeenText, SchoolboyJoeBeatenText, 0, .Script
-SchoolboyJoeScript:
+.Script:
end_if_just_battled
opentext
writetext SchoolboyJoeAfterBattleText
@@ -112,9 +112,9 @@ SchoolboyJoeScript:
end
TrainerLassLaura:
- trainer EVENT_BEAT_LASS_LAURA, LASS, LAURA, LassLauraSeenText, LassLauraBeatenText, 0, LassLauraScript
+ trainer EVENT_BEAT_LASS_LAURA, LASS, LAURA, LassLauraSeenText, LassLauraBeatenText, 0, .Script
-LassLauraScript:
+.Script:
end_if_just_battled
opentext
writetext LassLauraAfterBattleText
@@ -123,9 +123,9 @@ LassLauraScript:
end
TrainerCamperLloyd:
- trainer EVENT_BEAT_CAMPER_LLOYD, CAMPER, LLOYD, CamperLloydSeenText, CamperLloydBeatenText, 0, CamperLloydScript
+ trainer EVENT_BEAT_CAMPER_LLOYD, CAMPER, LLOYD, CamperLloydSeenText, CamperLloydBeatenText, 0, .Script
-CamperLloydScript:
+.Script:
end_if_just_battled
opentext
writetext CamperLloydAfterBattleText
@@ -134,9 +134,9 @@ CamperLloydScript:
end
TrainerLassShannon:
- trainer EVENT_BEAT_LASS_SHANNON, LASS, SHANNON, LassShannonSeenText, LassShannonBeatenText, 0, LassShannonScript
+ trainer EVENT_BEAT_LASS_SHANNON, LASS, SHANNON, LassShannonSeenText, LassShannonBeatenText, 0, .Script
-LassShannonScript:
+.Script:
end_if_just_battled
opentext
writetext LassShannonAfterBattleText
@@ -145,9 +145,9 @@ LassShannonScript:
end
TrainerSupernerdPat:
- trainer EVENT_BEAT_SUPER_NERD_PAT, SUPER_NERD, PAT, SupernerdPatSeenText, SupernerdPatBeatenText, 0, SupernerdPatScript
+ trainer EVENT_BEAT_SUPER_NERD_PAT, SUPER_NERD, PAT, SupernerdPatSeenText, SupernerdPatBeatenText, 0, .Script
-SupernerdPatScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdPatAfterBattleText
diff --git a/maps/Route26.asm b/maps/Route26.asm
index 589ed25d0..f48f2b082 100644
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -16,9 +16,9 @@ Route26_MapScriptHeader:
db 0
TrainerCooltrainermJake:
- trainer EVENT_BEAT_COOLTRAINERM_JAKE, COOLTRAINERM, JAKE, CooltrainermJakeSeenText, CooltrainermJakeBeatenText, 0, CooltrainermJakeScript
+ trainer EVENT_BEAT_COOLTRAINERM_JAKE, COOLTRAINERM, JAKE, CooltrainermJakeSeenText, CooltrainermJakeBeatenText, 0, .Script
-CooltrainermJakeScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermJakeAfterBattleText
@@ -27,9 +27,9 @@ CooltrainermJakeScript:
end
TrainerCooltrainermGaven3:
- trainer EVENT_BEAT_COOLTRAINERM_GAVEN, COOLTRAINERM, GAVEN3, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, 0, CooltrainermGaven3Script
+ trainer EVENT_BEAT_COOLTRAINERM_GAVEN, COOLTRAINERM, GAVEN3, CooltrainermGaven3SeenText, CooltrainermGaven3BeatenText, 0, .Script
-CooltrainermGaven3Script:
+.Script:
writecode VAR_CALLERID, PHONE_COOLTRAINERM_GAVEN
end_if_just_battled
opentext
@@ -120,9 +120,9 @@ UnknownScript_0x1a4dd7:
end
TrainerCooltrainerfJoyce:
- trainer EVENT_BEAT_COOLTRAINERF_JOYCE, COOLTRAINERF, JOYCE, CooltrainerfJoyceSeenText, CooltrainerfJoyceBeatenText, 0, CooltrainerfJoyceScript
+ trainer EVENT_BEAT_COOLTRAINERF_JOYCE, COOLTRAINERF, JOYCE, CooltrainerfJoyceSeenText, CooltrainerfJoyceBeatenText, 0, .Script
-CooltrainerfJoyceScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfJoyceAfterBattleText
@@ -131,9 +131,9 @@ CooltrainerfJoyceScript:
end
TrainerCooltrainerfBeth1:
- trainer EVENT_BEAT_COOLTRAINERF_BETH, COOLTRAINERF, BETH1, CooltrainerfBeth1SeenText, CooltrainerfBeth1BeatenText, 0, CooltrainerfBeth1Script
+ trainer EVENT_BEAT_COOLTRAINERF_BETH, COOLTRAINERF, BETH1, CooltrainerfBeth1SeenText, CooltrainerfBeth1BeatenText, 0, .Script
-CooltrainerfBeth1Script:
+.Script:
writecode VAR_CALLERID, PHONE_COOLTRAINERF_BETH
end_if_just_battled
opentext
@@ -224,9 +224,9 @@ UnknownScript_0x1a4e93:
end
TrainerPsychicRichard:
- trainer EVENT_BEAT_PSYCHIC_RICHARD, PSYCHIC_T, RICHARD, PsychicRichardSeenText, PsychicRichardBeatenText, 0, PsychicRichardScript
+ trainer EVENT_BEAT_PSYCHIC_RICHARD, PSYCHIC_T, RICHARD, PsychicRichardSeenText, PsychicRichardBeatenText, 0, .Script
-PsychicRichardScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicRichardAfterBattleText
@@ -235,9 +235,9 @@ PsychicRichardScript:
end
TrainerFisherScott:
- trainer EVENT_BEAT_FISHER_SCOTT, FISHER, SCOTT, FisherScottSeenText, FisherScottBeatenText, 0, FisherScottScript
+ trainer EVENT_BEAT_FISHER_SCOTT, FISHER, SCOTT, FisherScottSeenText, FisherScottBeatenText, 0, .Script
-FisherScottScript:
+.Script:
end_if_just_battled
opentext
writetext FisherScottAfterBattleText
diff --git a/maps/Route27.asm b/maps/Route27.asm
index 9af0531cf..10716d9fb 100644
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -39,19 +39,19 @@ UnknownScript_0x1a088c:
opentext
writetext UnknownText_0x1a0a6b
buttonsound
- writetext UnknownText_0x1a0a71
+ writetext Route27FisherText
waitbutton
closetext
dotrigger $1
end
-FisherScript_0x1a089c:
- jumptextfaceplayer UnknownText_0x1a0a71
+Route27FisherScript:
+ jumptextfaceplayer Route27FisherText
TrainerPsychicGilbert:
- trainer EVENT_BEAT_PSYCHIC_GILBERT, PSYCHIC_T, GILBERT, PsychicGilbertSeenText, PsychicGilbertBeatenText, 0, PsychicGilbertScript
+ trainer EVENT_BEAT_PSYCHIC_GILBERT, PSYCHIC_T, GILBERT, PsychicGilbertSeenText, PsychicGilbertBeatenText, 0, .Script
-PsychicGilbertScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicGilbertAfterBattleText
@@ -60,9 +60,9 @@ PsychicGilbertScript:
end
TrainerBird_keeperJose2:
- trainer EVENT_BEAT_BIRD_KEEPER_JOSE2, BIRD_KEEPER, JOSE2, Bird_keeperJose2SeenText, Bird_keeperJose2BeatenText, 0, Bird_keeperJose2Script
+ trainer EVENT_BEAT_BIRD_KEEPER_JOSE2, BIRD_KEEPER, JOSE2, Bird_keeperJose2SeenText, Bird_keeperJose2BeatenText, 0, .Script
-Bird_keeperJose2Script:
+.Script:
writecode VAR_CALLERID, PHONE_BIRDKEEPER_JOSE
end_if_just_battled
opentext
@@ -173,9 +173,9 @@ UnknownScript_0x1a0977:
end
TrainerCooltrainermBlake:
- trainer EVENT_BEAT_COOLTRAINERM_BLAKE, COOLTRAINERM, BLAKE, CooltrainermBlakeSeenText, CooltrainermBlakeBeatenText, 0, CooltrainermBlakeScript
+ trainer EVENT_BEAT_COOLTRAINERM_BLAKE, COOLTRAINERM, BLAKE, CooltrainermBlakeSeenText, CooltrainermBlakeBeatenText, 0, .Script
-CooltrainermBlakeScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermBlakeAfterBattleText
@@ -184,9 +184,9 @@ CooltrainermBlakeScript:
end
TrainerCooltrainermBrian:
- trainer EVENT_BEAT_COOLTRAINERM_BRIAN, COOLTRAINERM, BRIAN, CooltrainermBrianSeenText, CooltrainermBrianBeatenText, 0, CooltrainermBrianScript
+ trainer EVENT_BEAT_COOLTRAINERM_BRIAN, COOLTRAINERM, BRIAN, CooltrainermBrianSeenText, CooltrainermBrianBeatenText, 0, .Script
-CooltrainermBrianScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermBrianAfterBattleText
@@ -195,9 +195,9 @@ CooltrainermBrianScript:
end
TrainerCooltrainerfReena:
- trainer EVENT_BEAT_COOLTRAINERF_REENA, COOLTRAINERF, REENA1, CooltrainerfReena1SeenText, CooltrainerfReena1BeatenText, 0, CooltrainerfReena1Script
+ trainer EVENT_BEAT_COOLTRAINERF_REENA, COOLTRAINERF, REENA1, CooltrainerfReena1SeenText, CooltrainerfReena1BeatenText, 0, .Script
-CooltrainerfReena1Script:
+.Script:
writecode VAR_CALLERID, PHONE_COOLTRAINERF_REENA
end_if_just_battled
opentext
@@ -288,9 +288,9 @@ UnknownScript_0x1a0a47:
end
TrainerCooltrainerfMegan:
- trainer EVENT_BEAT_COOLTRAINERF_MEGAN, COOLTRAINERF, MEGAN, CooltrainerfMeganSeenText, CooltrainerfMeganBeatenText, 0, CooltrainerfMeganScript
+ trainer EVENT_BEAT_COOLTRAINERF_MEGAN, COOLTRAINERF, MEGAN, CooltrainerfMeganSeenText, CooltrainerfMeganBeatenText, 0, .Script
-CooltrainerfMeganScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfMeganAfterBattleText
@@ -320,7 +320,7 @@ UnknownText_0x1a0a6b:
text "Hey!"
done
-UnknownText_0x1a0a71:
+Route27FisherText:
text "Do you know what"
line "you just did?"
@@ -496,4 +496,4 @@ Route27_MapEventHeader:
person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 3, TrainerBird_keeperJose2, -1
person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, Route27TMSolarbeam, EVENT_ROUTE_27_TM_SOLARBEAM
person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, Route27RareCandy, EVENT_ROUTE_27_RARE_CANDY
- person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 3, FisherScript_0x1a089c, -1
+ person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 3, Route27FisherScript, -1
diff --git a/maps/Route2946Gate.asm b/maps/Route2946Gate.asm
index be5068078..d2fa5d5dc 100644
--- a/maps/Route2946Gate.asm
+++ b/maps/Route2946Gate.asm
@@ -9,13 +9,13 @@ Route2946Gate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x7b5bb:
- jumptextfaceplayer UnknownText_0x7b5c1
+Route2946GateOfficerScript:
+ jumptextfaceplayer Route2946GateOfficerText
-YoungsterScript_0x7b5be:
- jumptextfaceplayer UnknownText_0x7b60d
+Route2946GateYoungsterScript:
+ jumptextfaceplayer Route2946GateYoungsterText
-UnknownText_0x7b5c1:
+Route2946GateOfficerText:
text "You can't climb"
line "ledges."
@@ -24,7 +24,7 @@ UnknownText_0x7b5c1:
cont "take a shortcut."
done
-UnknownText_0x7b60d:
+Route2946GateYoungsterText:
text "Different kinds of"
line "#MON appear"
cont "past here."
@@ -55,5 +55,5 @@ Route2946Gate_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7b5bb, -1
- person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x7b5be, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route2946GateOfficerScript, -1
+ person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route2946GateYoungsterScript, -1
diff --git a/maps/Route2Gate.asm b/maps/Route2Gate.asm
index c3674b074..1647215b9 100644
--- a/maps/Route2Gate.asm
+++ b/maps/Route2Gate.asm
@@ -8,10 +8,10 @@ Route2Gate_MapScriptHeader:
.MapCallbacks:
db 0
-ScientistScript_0x9b952:
- jumptextfaceplayer UnknownText_0x9b955
+Route2GateScientistScript:
+ jumptextfaceplayer Route2GateScientistText
-UnknownText_0x9b955:
+Route2GateScientistText:
text "Are you <PLAY_G>?"
para "I work as PROF."
@@ -44,4 +44,4 @@ Route2Gate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x9b952, -1
+ person_event SPRITE_SCIENTIST, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route2GateScientistScript, -1
diff --git a/maps/Route3.asm b/maps/Route3.asm
index 96159e7e3..5b5d9a1d2 100644
--- a/maps/Route3.asm
+++ b/maps/Route3.asm
@@ -12,9 +12,9 @@ Route3_MapScriptHeader:
db 0
TrainerFirebreatherOtis:
- trainer EVENT_BEAT_FIREBREATHER_OTIS, FIREBREATHER, OTIS, FirebreatherOtisSeenText, FirebreatherOtisBeatenText, 0, FirebreatherOtisScript
+ trainer EVENT_BEAT_FIREBREATHER_OTIS, FIREBREATHER, OTIS, FirebreatherOtisSeenText, FirebreatherOtisBeatenText, 0, .Script
-FirebreatherOtisScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherOtisAfterBattleText
@@ -23,9 +23,9 @@ FirebreatherOtisScript:
end
TrainerYoungsterWarren:
- trainer EVENT_BEAT_YOUNGSTER_WARREN, YOUNGSTER, WARREN, YoungsterWarrenSeenText, YoungsterWarrenBeatenText, 0, YoungsterWarrenScript
+ trainer EVENT_BEAT_YOUNGSTER_WARREN, YOUNGSTER, WARREN, YoungsterWarrenSeenText, YoungsterWarrenBeatenText, 0, .Script
-YoungsterWarrenScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterWarrenAfterBattleText
@@ -34,9 +34,9 @@ YoungsterWarrenScript:
end
TrainerYoungsterJimmy:
- trainer EVENT_BEAT_YOUNGSTER_JIMMY, YOUNGSTER, JIMMY, YoungsterJimmySeenText, YoungsterJimmyBeatenText, 0, YoungsterJimmyScript
+ trainer EVENT_BEAT_YOUNGSTER_JIMMY, YOUNGSTER, JIMMY, YoungsterJimmySeenText, YoungsterJimmyBeatenText, 0, .Script
-YoungsterJimmyScript:
+.Script:
end_if_just_battled
opentext
writetext YoungsterJimmyAfterBattleText
@@ -45,9 +45,9 @@ YoungsterJimmyScript:
end
TrainerFirebreatherBurt:
- trainer EVENT_BEAT_FIREBREATHER_BURT, FIREBREATHER, BURT, FirebreatherBurtSeenText, FirebreatherBurtBeatenText, 0, FirebreatherBurtScript
+ trainer EVENT_BEAT_FIREBREATHER_BURT, FIREBREATHER, BURT, FirebreatherBurtSeenText, FirebreatherBurtBeatenText, 0, .Script
-FirebreatherBurtScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherBurtAfterBattleText
diff --git a/maps/Route31VioletGate.asm b/maps/Route31VioletGate.asm
index 28b43d2d8..de72c9a51 100644
--- a/maps/Route31VioletGate.asm
+++ b/maps/Route31VioletGate.asm
@@ -9,19 +9,19 @@ Route31VioletGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x197634:
- jumptextfaceplayer UnknownText_0x19763a
+Route31VioletGateOfficerScript:
+ jumptextfaceplayer Route31VioletGateOfficerText
-CooltrainerFScript_0x197637:
- jumptextfaceplayer UnknownText_0x197661
+Route31VioletGateCooltrainerFScript:
+ jumptextfaceplayer Route31VioletGateCooltrainerFText
-UnknownText_0x19763a:
+Route31VioletGateOfficerText:
text "Hi there!"
line "Did you visit"
cont "SPROUT TOWER?"
done
-UnknownText_0x197661:
+Route31VioletGateCooltrainerFText:
text "I came too far"
line "out. I'd better"
cont "phone home!"
@@ -46,5 +46,5 @@ Route31VioletGate_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x197634, -1
- person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x197637, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route31VioletGateOfficerScript, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route31VioletGateCooltrainerFScript, -1
diff --git a/maps/Route32Pokecenter1F.asm b/maps/Route32Pokecenter1F.asm
index 18c9622ee..bc9f4f0f8 100644
--- a/maps/Route32Pokecenter1F.asm
+++ b/maps/Route32Pokecenter1F.asm
@@ -42,8 +42,8 @@ UnknownScript_0x69b7a:
closetext
end
-CooltrainerFScript_0x69b80:
- jumptextfaceplayer UnknownText_0x69cac
+Route32Pokecenter1FCooltrainerFScript:
+ jumptextfaceplayer Route32Pokecenter1FCooltrainerFText
UnknownText_0x69b83:
text "This is a great"
@@ -85,7 +85,7 @@ UnknownText_0x69c8d:
line "they biting?"
done
-UnknownText_0x69cac:
+Route32Pokecenter1FCooltrainerFText:
text "What should I make"
line "my #MON hold?"
@@ -114,4 +114,4 @@ Route32Pokecenter1F_MapEventHeader:
db 3
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x69b52, -1
person_event SPRITE_FISHING_GURU, 4, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x69b55, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x69b80, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route32Pokecenter1FCooltrainerFScript, -1
diff --git a/maps/Route32RuinsOfAlphGate.asm b/maps/Route32RuinsOfAlphGate.asm
index b530cbf5f..523fee2e9 100644
--- a/maps/Route32RuinsOfAlphGate.asm
+++ b/maps/Route32RuinsOfAlphGate.asm
@@ -10,16 +10,16 @@ Route32RuinsOfAlphGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x69a2d:
- jumptextfaceplayer UnknownText_0x69a36
+Route32RuinsOfAlphGateOfficerScript:
+ jumptextfaceplayer Route32RuinsOfAlphGateOfficerText
-PokefanMScript_0x69a30:
- jumptextfaceplayer UnknownText_0x69a81
+Route32RuinsOfAlphGatePokefanMScript:
+ jumptextfaceplayer Route32RuinsOfAlphGatePokefanMText
-YoungsterScript_0x69a33:
- jumptextfaceplayer UnknownText_0x69abd
+Route32RuinsOfAlphGateYoungsterScript:
+ jumptextfaceplayer Route32RuinsOfAlphGateYoungsterText
-UnknownText_0x69a36:
+Route32RuinsOfAlphGateOfficerText:
text "RUINS OF ALPH"
para "A Look-and-Touch"
@@ -29,7 +29,7 @@ UnknownText_0x69a36:
line "stone panels!"
done
-UnknownText_0x69a81:
+Route32RuinsOfAlphGatePokefanMText:
text "You're studying"
line "the RUINS?"
@@ -37,7 +37,7 @@ UnknownText_0x69a81:
line "in the making."
done
-UnknownText_0x69abd:
+Route32RuinsOfAlphGateYoungsterText:
text "There are drawings"
line "on stone panels."
@@ -65,6 +65,6 @@ Route32RuinsOfAlphGate_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69a2d, -1
- person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x69a30, -1
- person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69a33, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route32RuinsOfAlphGateOfficerScript, -1
+ person_event SPRITE_POKEFAN_M, 2, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, Route32RuinsOfAlphGatePokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route32RuinsOfAlphGateYoungsterScript, -1
diff --git a/maps/Route34IlexForestGate.asm b/maps/Route34IlexForestGate.asm
index 143a1adc9..d629eecdd 100644
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -75,8 +75,8 @@ IlexGateButterfree:
closetext
end
-LassScript_0x62d94:
- jumptextfaceplayer UnknownText_0x62e97
+Route34IlexForestGateLassScript:
+ jumptextfaceplayer Route34IlexForestGateLassText
MovementData_0x62d97:
step UP
@@ -121,7 +121,7 @@ UnknownText_0x62e83:
text "BUTTERFREE: Freeh!"
done
-UnknownText_0x62e97:
+Route34IlexForestGateLassText:
text "Did you see the"
line "shrine honoring"
cont "the protector?"
@@ -157,5 +157,5 @@ Route34IlexForestGate_MapEventHeader:
db 4
person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, IlexGateButterfree, -1
- person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
+ person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route34IlexForestGateLassScript, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
diff --git a/maps/Route35.asm b/maps/Route35.asm
index 8ce6adde7..7d5d2d48a 100644
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -19,9 +19,9 @@ Route35_MapScriptHeader:
db 0
TrainerBird_keeperBryan:
- trainer EVENT_BEAT_BIRD_KEEPER_BRYAN, BIRD_KEEPER, BRYAN, Bird_keeperBryanSeenText, Bird_keeperBryanBeatenText, 0, Bird_keeperBryanScript
+ trainer EVENT_BEAT_BIRD_KEEPER_BRYAN, BIRD_KEEPER, BRYAN, Bird_keeperBryanSeenText, Bird_keeperBryanBeatenText, 0, .Script
-Bird_keeperBryanScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperBryanAfterBattleText
@@ -30,9 +30,9 @@ Bird_keeperBryanScript:
end
TrainerJugglerIrwin:
- trainer EVENT_BEAT_JUGGLER_IRWIN, JUGGLER, IRWIN1, JugglerIrwin1SeenText, JugglerIrwin1BeatenText, 0, JugglerIrwin1Script
+ trainer EVENT_BEAT_JUGGLER_IRWIN, JUGGLER, IRWIN1, JugglerIrwin1SeenText, JugglerIrwin1BeatenText, 0, .Script
-JugglerIrwin1Script:
+.Script:
writecode VAR_CALLERID, PHONE_JUGGLER_IRWIN
end_if_just_battled
opentext
@@ -85,9 +85,9 @@ UnknownScript_0x19c91b:
end
TrainerCamperIvan:
- trainer EVENT_BEAT_CAMPER_IVAN, CAMPER, IVAN, CamperIvanSeenText, CamperIvanBeatenText, 0, CamperIvanScript
+ trainer EVENT_BEAT_CAMPER_IVAN, CAMPER, IVAN, CamperIvanSeenText, CamperIvanBeatenText, 0, .Script
-CamperIvanScript:
+.Script:
end_if_just_battled
opentext
writetext CamperIvanAfterBattleText
@@ -96,9 +96,9 @@ CamperIvanScript:
end
TrainerCamperElliot:
- trainer EVENT_BEAT_CAMPER_ELLIOT, CAMPER, ELLIOT, CamperElliotSeenText, CamperElliotBeatenText, 0, CamperElliotScript
+ trainer EVENT_BEAT_CAMPER_ELLIOT, CAMPER, ELLIOT, CamperElliotSeenText, CamperElliotBeatenText, 0, .Script
-CamperElliotScript:
+.Script:
end_if_just_battled
opentext
writetext CamperElliotAfterBattleText
@@ -107,9 +107,9 @@ CamperElliotScript:
end
TrainerPicnickerBrooke:
- trainer EVENT_BEAT_PICNICKER_BROOKE, PICNICKER, BROOKE, PicnickerBrookeSeenText, PicnickerBrookeBeatenText, 0, PicnickerBrookeScript
+ trainer EVENT_BEAT_PICNICKER_BROOKE, PICNICKER, BROOKE, PicnickerBrookeSeenText, PicnickerBrookeBeatenText, 0, .Script
-PicnickerBrookeScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerBrookeAfterBattleText
@@ -118,9 +118,9 @@ PicnickerBrookeScript:
end
TrainerPicnickerKim:
- trainer EVENT_BEAT_PICNICKER_KIM, PICNICKER, KIM, PicnickerKimSeenText, PicnickerKimBeatenText, 0, PicnickerKimScript
+ trainer EVENT_BEAT_PICNICKER_KIM, PICNICKER, KIM, PicnickerKimSeenText, PicnickerKimBeatenText, 0, .Script
-PicnickerKimScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerKimAfterBattleText
@@ -129,9 +129,9 @@ PicnickerKimScript:
end
TrainerBug_catcherArnie1:
- trainer EVENT_BEAT_BUG_CATCHER_ARNIE, BUG_CATCHER, ARNIE1, Bug_catcherArnie1SeenText, Bug_catcherArnie1BeatenText, 0, Bug_catcherArnie1Script
+ trainer EVENT_BEAT_BUG_CATCHER_ARNIE, BUG_CATCHER, ARNIE1, Bug_catcherArnie1SeenText, Bug_catcherArnie1BeatenText, 0, .Script
-Bug_catcherArnie1Script:
+.Script:
writecode VAR_CALLERID, PHONE_BUG_CATCHER_ARNIE
end_if_just_battled
opentext
@@ -226,9 +226,9 @@ UnknownScript_0x19ca2f:
end
TrainerFirebreatherWalt:
- trainer EVENT_BEAT_FIREBREATHER_WALT, FIREBREATHER, WALT, FirebreatherWaltSeenText, FirebreatherWaltBeatenText, 0, FirebreatherWaltScript
+ trainer EVENT_BEAT_FIREBREATHER_WALT, FIREBREATHER, WALT, FirebreatherWaltSeenText, FirebreatherWaltBeatenText, 0, .Script
-FirebreatherWaltScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherWaltAfterBattleText
diff --git a/maps/Route35GoldenrodGate.asm b/maps/Route35GoldenrodGate.asm
index e68250183..4cdf461df 100644
--- a/maps/Route35GoldenrodGate.asm
+++ b/maps/Route35GoldenrodGate.asm
@@ -91,8 +91,8 @@ PokefanFScript_0x69dc6:
closetext
end
-FisherScript_0x69dda:
- jumptextfaceplayer UnknownText_0x6a0cb
+Route35GoldenrodGateFisherScript:
+ jumptextfaceplayer Route35GoldenrodGateFisherText
UnknownText_0x69ddd:
text "Excuse me, kid!"
@@ -181,7 +181,7 @@ UnknownText_0x6a09a:
cont "on the radio."
done
-UnknownText_0x6a0cb:
+Route35GoldenrodGateFisherText:
text "I wonder how many"
line "kinds of #MON"
@@ -216,4 +216,4 @@ Route35GoldenrodGate_MapEventHeader:
db 3
person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x69d37, -1
person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x69dc6, -1
- person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x69dda, -1
+ person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route35GoldenrodGateFisherScript, -1
diff --git a/maps/Route35NationalParkGate.asm b/maps/Route35NationalParkGate.asm
index 1214827f8..935a8e518 100644
--- a/maps/Route35NationalParkGate.asm
+++ b/maps/Route35NationalParkGate.asm
@@ -199,8 +199,8 @@ OfficerScript_0x6a2ca:
closetext
end
-YoungsterScript_0x6a2d8:
- jumptextfaceplayer UnknownText_0x6a8d8
+Route35NationalParkGateYoungsterScript:
+ jumptextfaceplayer Route35NationalParkGateYoungsterText
MapRoute36NationalParkGateSignpost0Script:
jumptext UnknownText_0x6a90e
@@ -411,7 +411,7 @@ UnknownText_0x6a894:
line "give it a shot."
done
-UnknownText_0x6a8d8:
+Route35NationalParkGateYoungsterText:
text "When is the next"
line "Bug-Catching Con-"
cont "test going to be?"
@@ -458,5 +458,5 @@ Route35NationalParkGate_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
- person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
+ person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route35NationalParkGateYoungsterScript, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
diff --git a/maps/Route36.asm b/maps/Route36.asm
index 5519a692b..d0accbaa7 100644
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -310,7 +310,7 @@ TrainerPsychicMark:
.Script:
end_if_just_battled
opentext
- writetext UnknownText_0x19471e
+ writetext PsychicMarkAfterBattleText
waitbutton
closetext
end
@@ -553,7 +553,7 @@ PsychicMarkBeatenText:
text "I misread you!"
done
-UnknownText_0x19471e:
+PsychicMarkAfterBattleText:
text "I'd be strong if"
line "only I could tell"
diff --git a/maps/Route36RuinsOfAlphGate.asm b/maps/Route36RuinsOfAlphGate.asm
index e9fe6d2f5..95501862a 100644
--- a/maps/Route36RuinsOfAlphGate.asm
+++ b/maps/Route36RuinsOfAlphGate.asm
@@ -9,20 +9,20 @@ Route36RuinsOfAlphGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x6aa1a:
- jumptextfaceplayer UnknownText_0x6aa20
+Route36RuinsOfAlphGateOfficerScript:
+ jumptextfaceplayer Route36RuinsOfAlphGateOfficerText
-GrampsScript_0x6aa1d:
- jumptextfaceplayer UnknownText_0x6aa5b
+Route36RuinsOfAlphGateGrampsScript:
+ jumptextfaceplayer Route36RuinsOfAlphGateGrampsText
-UnknownText_0x6aa20:
+Route36RuinsOfAlphGateOfficerText:
text "Don't you wonder"
line "who'd make some-"
cont "thing like this?"
cont "And why?"
done
-UnknownText_0x6aa5b:
+Route36RuinsOfAlphGateGrampsText:
text "Did you see that"
line "strange tree in"
cont "the road?"
@@ -53,5 +53,5 @@ Route36RuinsOfAlphGate_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x6aa1a, -1
- person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrampsScript_0x6aa1d, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route36RuinsOfAlphGateOfficerScript, -1
+ person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, Route36RuinsOfAlphGateGrampsScript, -1
diff --git a/maps/Route37.asm b/maps/Route37.asm
index 2b6ad223a..0c1c926b3 100644
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -26,9 +26,9 @@ Route37_MapScriptHeader:
return
TrainerTwinsAnnandanne1:
- trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE1, TwinsAnnandanne1SeenText, TwinsAnnandanne1BeatenText, 0, TwinsAnnandanne1Script
+ trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE1, TwinsAnnandanne1SeenText, TwinsAnnandanne1BeatenText, 0, .Script
-TwinsAnnandanne1Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsAnnandanne1AfterBattleText
@@ -37,9 +37,9 @@ TwinsAnnandanne1Script:
end
TrainerTwinsAnnandanne2:
- trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE2, TwinsAnnandanne2SeenText, TwinsAnnandanne2BeatenText, 0, TwinsAnnandanne2Script
+ trainer EVENT_BEAT_TWINS_ANN_AND_ANNE, TWINS, ANNANDANNE2, TwinsAnnandanne2SeenText, TwinsAnnandanne2BeatenText, 0, .Script
-TwinsAnnandanne2Script:
+.Script:
end_if_just_battled
opentext
writetext TwinsAnnandanne2AfterBattleText
@@ -48,9 +48,9 @@ TwinsAnnandanne2Script:
end
TrainerPsychicGreg:
- trainer EVENT_BEAT_PSYCHIC_GREG, PSYCHIC_T, GREG, PsychicGregSeenText, PsychicGregBeatenText, 0, PsychicGregScript
+ trainer EVENT_BEAT_PSYCHIC_GREG, PSYCHIC_T, GREG, PsychicGregSeenText, PsychicGregBeatenText, 0, .Script
-PsychicGregScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicGregAfterBattleText
diff --git a/maps/Route38.asm b/maps/Route38.asm
index a496ec99f..0f4227e8e 100644
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -15,31 +15,31 @@ Route38_MapScriptHeader:
db 0
TrainerBird_keeperToby:
- trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, .script
+ trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a1f86
+ writetext Bird_keeperTobyAfterBattleText
waitbutton
closetext
end
TrainerSailorHarry:
- trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, .script
+ trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a220c
+ writetext SailorHarryAfterBattleText
waitbutton
closetext
end
TrainerLassDana1:
- trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, .script
+ trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, .Script
-.script
+.Script
writecode VAR_CALLERID, PHONE_LASS_DANA
end_if_just_battled
opentext
@@ -175,9 +175,9 @@ TrainerLassDana1:
end
TrainerSchoolboyChad1:
- trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, .script
+ trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, .Script
-.script
+.Script
writecode VAR_CALLERID, PHONE_SCHOOLBOY_CHAD
end_if_just_battled
opentext
@@ -292,23 +292,23 @@ TrainerSchoolboyChad1:
end
TrainerBeautyValerie:
- trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, .script
+ trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a2185
+ writetext BeautyValerieAfterBattleText
waitbutton
closetext
end
TrainerBeautyOlivia:
- trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, .script
+ trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, .Script
-.script
+.Script
end_if_just_battled
opentext
- writetext UnknownText_0x1a229a
+ writetext BeautyOliviaAfterBattleText
waitbutton
closetext
end
@@ -333,7 +333,7 @@ Bird_keeperTobyBeatenText:
line "flying away now."
done
-UnknownText_0x1a1f86:
+Bird_keeperTobyAfterBattleText:
text "I plan to train in"
line "CIANWOOD CITY to"
@@ -400,7 +400,7 @@ BeautyValerieBeatenText:
line "see your #MON!"
done
-UnknownText_0x1a2185:
+BeautyValerieAfterBattleText:
text "When I see #-"
line "MON, it seems to"
cont "soothe my nerves."
@@ -419,7 +419,7 @@ SailorHarryBeatenText:
line "world class!"
done
-UnknownText_0x1a220c:
+SailorHarryAfterBattleText:
text "All kinds of peo-"
line "ple around the"
@@ -438,7 +438,7 @@ BeautyOliviaBeatenText:
line "MILK every day."
done
-UnknownText_0x1a229a:
+BeautyOliviaAfterBattleText:
text "MOOMOO MILK is"
line "good for beauty"
diff --git a/maps/Route38EcruteakGate.asm b/maps/Route38EcruteakGate.asm
index 3516c72c9..f61bcaaa4 100644
--- a/maps/Route38EcruteakGate.asm
+++ b/maps/Route38EcruteakGate.asm
@@ -8,10 +8,10 @@ Route38EcruteakGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x9cbd7:
- jumptextfaceplayer UnknownText_0x9cbda
+Route38EcruteakGateOfficerScript:
+ jumptextfaceplayer Route38EcruteakGateOfficerText
-UnknownText_0x9cbda:
+Route38EcruteakGateOfficerText:
text "Where did you say"
line "you're from?"
@@ -43,4 +43,4 @@ Route38EcruteakGate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x9cbd7, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route38EcruteakGateOfficerScript, -1
diff --git a/maps/Route39.asm b/maps/Route39.asm
index 48690345e..54e1426a5 100644
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -26,9 +26,9 @@ Route39Miltank:
end
TrainerPokefanmDerek1:
- trainer EVENT_BEAT_POKEFANM_DEREK, POKEFANM, DEREK1, PokefanmDerek1SeenText, PokefanmDerek1BeatenText, 0, PokefanmDerek1Script
+ trainer EVENT_BEAT_POKEFANM_DEREK, POKEFANM, DEREK1, PokefanmDerek1SeenText, PokefanmDerek1BeatenText, 0, .Script
-PokefanmDerek1Script:
+.Script:
writecode VAR_CALLERID, PHONE_POKEFANM_DEREK
end_if_just_battled
opentext
@@ -105,9 +105,9 @@ PackIsFull:
end
TrainerPokefanfRuth:
- trainer EVENT_BEAT_POKEFANF_RUTH, POKEFANF, RUTH, PokefanfRuthSeenText, PokefanfRuthBeatenText, 0, PokefanfRuthScript
+ trainer EVENT_BEAT_POKEFANF_RUTH, POKEFANF, RUTH, PokefanfRuthSeenText, PokefanfRuthBeatenText, 0, .Script
-PokefanfRuthScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanfRuthAfterBattleText
@@ -116,9 +116,9 @@ PokefanfRuthScript:
end
TrainerSailorEugene:
- trainer EVENT_BEAT_SAILOR_EUGENE, SAILOR, EUGENE, SailorEugeneSeenText, SailorEugeneBeatenText, 0, SailorEugeneScript
+ trainer EVENT_BEAT_SAILOR_EUGENE, SAILOR, EUGENE, SailorEugeneSeenText, SailorEugeneBeatenText, 0, .Script
-SailorEugeneScript:
+.Script:
end_if_just_battled
opentext
writetext SailorEugeneAfterBattleText
@@ -127,9 +127,9 @@ SailorEugeneScript:
end
TrainerPsychicNorman:
- trainer EVENT_BEAT_PSYCHIC_NORMAN, PSYCHIC_T, NORMAN, PsychicNormanSeenText, PsychicNormanBeatenText, 0, PsychicNormanScript
+ trainer EVENT_BEAT_PSYCHIC_NORMAN, PSYCHIC_T, NORMAN, PsychicNormanSeenText, PsychicNormanBeatenText, 0, .Script
-PsychicNormanScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicNormanAfterBattleText
diff --git a/maps/Route4.asm b/maps/Route4.asm
index b674afdad..4f6207cf3 100644
--- a/maps/Route4.asm
+++ b/maps/Route4.asm
@@ -12,9 +12,9 @@ Route4_MapScriptHeader:
db 0
TrainerBird_keeperHank:
- trainer EVENT_BEAT_BIRD_KEEPER_HANK, BIRD_KEEPER, HANK, Bird_keeperHankSeenText, Bird_keeperHankBeatenText, 0, Bird_keeperHankScript
+ trainer EVENT_BEAT_BIRD_KEEPER_HANK, BIRD_KEEPER, HANK, Bird_keeperHankSeenText, Bird_keeperHankBeatenText, 0, .Script
-Bird_keeperHankScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperHankAfterBattleText
@@ -23,9 +23,9 @@ Bird_keeperHankScript:
end
TrainerPicnickerHope:
- trainer EVENT_BEAT_PICNICKER_HOPE, PICNICKER, HOPE, PicnickerHopeSeenText, PicnickerHopeBeatenText, 0, PicnickerHopeScript
+ trainer EVENT_BEAT_PICNICKER_HOPE, PICNICKER, HOPE, PicnickerHopeSeenText, PicnickerHopeBeatenText, 0, .Script
-PicnickerHopeScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerHopeAfterBattleText
@@ -34,9 +34,9 @@ PicnickerHopeScript:
end
TrainerPicnickerSharon:
- trainer EVENT_BEAT_PICNICKER_SHARON, PICNICKER, SHARON, PicnickerSharonSeenText, PicnickerSharonBeatenText, 0, PicnickerSharonScript
+ trainer EVENT_BEAT_PICNICKER_SHARON, PICNICKER, SHARON, PicnickerSharonSeenText, PicnickerSharonBeatenText, 0, .Script
-PicnickerSharonScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerSharonAfterBattleText
diff --git a/maps/Route40.asm b/maps/Route40.asm
index bbf90ab75..65f36135a 100644
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -32,9 +32,9 @@ Route40_MapScriptHeader:
return
TrainerSwimmerfElaine:
- trainer EVENT_BEAT_SWIMMERF_ELAINE, SWIMMERF, ELAINE, SwimmerfElaineSeenText, SwimmerfElaineBeatenText, 0, SwimmerfElaineScript
+ trainer EVENT_BEAT_SWIMMERF_ELAINE, SWIMMERF, ELAINE, SwimmerfElaineSeenText, SwimmerfElaineBeatenText, 0, .Script
-SwimmerfElaineScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfElaineAfterBattleText
@@ -43,9 +43,9 @@ SwimmerfElaineScript:
end
TrainerSwimmerfPaula:
- trainer EVENT_BEAT_SWIMMERF_PAULA, SWIMMERF, PAULA, SwimmerfPaulaSeenText, SwimmerfPaulaBeatenText, 0, SwimmerfPaulaScript
+ trainer EVENT_BEAT_SWIMMERF_PAULA, SWIMMERF, PAULA, SwimmerfPaulaSeenText, SwimmerfPaulaBeatenText, 0, .Script
-SwimmerfPaulaScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfPaulaAfterBattleText
@@ -54,9 +54,9 @@ SwimmerfPaulaScript:
end
TrainerSwimmermSimon:
- trainer EVENT_BEAT_SWIMMERM_SIMON, SWIMMERM, SIMON, SwimmermSimonSeenText, SwimmermSimonBeatenText, 0, SwimmermSimonScript
+ trainer EVENT_BEAT_SWIMMERM_SIMON, SWIMMERM, SIMON, SwimmermSimonSeenText, SwimmermSimonBeatenText, 0, .Script
-SwimmermSimonScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermSimonAfterBattleText
@@ -65,9 +65,9 @@ SwimmermSimonScript:
end
TrainerSwimmermRandall:
- trainer EVENT_BEAT_SWIMMERM_RANDALL, SWIMMERM, RANDALL, SwimmermRandallSeenText, SwimmermRandallBeatenText, 0, SwimmermRandallScript
+ trainer EVENT_BEAT_SWIMMERM_RANDALL, SWIMMERM, RANDALL, SwimmermRandallSeenText, SwimmermRandallBeatenText, 0, .Script
-SwimmermRandallScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermRandallAfterBattleText
@@ -75,8 +75,8 @@ SwimmermRandallScript:
closetext
end
-LassScript_0x1a61c4:
- jumptextfaceplayer UnknownText_0x1a6429
+Route40Lass1Script:
+ jumptextfaceplayer Route40Lass1Text
PokefanMScript_0x1a61c7:
special Mobile_DummyReturnFalse
@@ -86,11 +86,11 @@ PokefanMScript_0x1a61c7:
.mobile
jumptextfaceplayer UnknownText_0x1a649b
-LassScript_0x1a61d3:
- jumptextfaceplayer UnknownText_0x1a64e6
+Route40Lass2Script:
+ jumptextfaceplayer Route40Lass2Text
-StandingYoungsterScript_0x1a61d6:
- jumptextfaceplayer UnknownText_0x1a6564
+Route40StandingYoungsterScript:
+ jumptextfaceplayer Route40StandingYoungsterText
MonicaScript:
faceplayer
@@ -235,7 +235,7 @@ SwimmerfPaulaAfterBattleText:
cont "carry me along."
done
-UnknownText_0x1a6429:
+Route40Lass1Text:
text "Although you can't"
line "see it from here,"
@@ -259,7 +259,7 @@ UnknownText_0x1a649b:
para "What? What?"
done
-UnknownText_0x1a64e6:
+Route40Lass2Text:
text "I came to OLIVINE"
line "by ship to see the"
@@ -271,7 +271,7 @@ UnknownText_0x1a64e6:
cont "from a big city."
done
-UnknownText_0x1a6564:
+Route40StandingYoungsterText:
text "Have you gone to"
line "the BATTLE TOWER?"
@@ -362,8 +362,8 @@ Route40_MapEventHeader:
person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Rock, -1
- person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61c4, -1
+ person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, Route40Lass1Script, -1
person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1a61c7, -1
- person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x1a61d3, -1
- person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route40Lass2Script, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route40StandingYoungsterScript, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
diff --git a/maps/Route40BattleTowerGate.asm b/maps/Route40BattleTowerGate.asm
index 0f8b139c7..238686d9d 100644
--- a/maps/Route40BattleTowerGate.asm
+++ b/maps/Route40BattleTowerGate.asm
@@ -14,11 +14,11 @@ Route40BattleTowerGate_MapScriptHeader:
clearevent EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
return
-RockerScript_0x9f669:
- jumptextfaceplayer UnknownText_0x9f716
+Route40BattleTowerGateRockerScript:
+ jumptextfaceplayer Route40BattleTowerGateRockerText
-TwinScript_0x9f66c:
- jumptextfaceplayer UnknownText_0x9f7c8
+Route40BattleTowerGateTwinScript:
+ jumptextfaceplayer Route40BattleTowerGateTwinText
UnknownText_0x9f66f:
text "Did you come to"
@@ -40,7 +40,7 @@ UnknownText_0x9f6ba:
line "when I win."
done
-UnknownText_0x9f716:
+Route40BattleTowerGateRockerText:
text "Are you going to"
line "the BATTLE TOWER?"
@@ -59,7 +59,7 @@ UnknownText_0x9f783:
line "the BATTLE TOWER."
done
-UnknownText_0x9f7c8:
+Route40BattleTowerGateTwinText:
text "The levels of the"
line "#MON I want to"
@@ -89,5 +89,5 @@ Route40BattleTowerGate_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
- person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TwinScript_0x9f66c, -1
+ person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route40BattleTowerGateRockerScript, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route40BattleTowerGateTwinScript, -1
diff --git a/maps/Route41.asm b/maps/Route41.asm
index 174909216..3ff1bb587 100644
--- a/maps/Route41.asm
+++ b/maps/Route41.asm
@@ -18,9 +18,9 @@ Route41_MapScriptHeader:
db 0
TrainerSwimmerfKaylee:
- trainer EVENT_BEAT_SWIMMERF_KAYLEE, SWIMMERF, KAYLEE, SwimmerfKayleeSeenText, SwimmerfKayleeBeatenText, 0, SwimmerfKayleeScript
+ trainer EVENT_BEAT_SWIMMERF_KAYLEE, SWIMMERF, KAYLEE, SwimmerfKayleeSeenText, SwimmerfKayleeBeatenText, 0, .Script
-SwimmerfKayleeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfKayleeAfterBattleText
@@ -29,9 +29,9 @@ SwimmerfKayleeScript:
end
TrainerSwimmerfSusie:
- trainer EVENT_BEAT_SWIMMERF_SUSIE, SWIMMERF, SUSIE, SwimmerfSusieSeenText, SwimmerfSusieBeatenText, 0, SwimmerfSusieScript
+ trainer EVENT_BEAT_SWIMMERF_SUSIE, SWIMMERF, SUSIE, SwimmerfSusieSeenText, SwimmerfSusieBeatenText, 0, .Script
-SwimmerfSusieScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfSusieAfterBattleText
@@ -40,9 +40,9 @@ SwimmerfSusieScript:
end
TrainerSwimmerfDenise:
- trainer EVENT_BEAT_SWIMMERF_DENISE, SWIMMERF, DENISE, SwimmerfDeniseSeenText, SwimmerfDeniseBeatenText, 0, SwimmerfDeniseScript
+ trainer EVENT_BEAT_SWIMMERF_DENISE, SWIMMERF, DENISE, SwimmerfDeniseSeenText, SwimmerfDeniseBeatenText, 0, .Script
-SwimmerfDeniseScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfDeniseAfterBattleText
@@ -51,9 +51,9 @@ SwimmerfDeniseScript:
end
TrainerSwimmerfKara:
- trainer EVENT_BEAT_SWIMMERF_KARA, SWIMMERF, KARA, SwimmerfKaraSeenText, SwimmerfKaraBeatenText, 0, SwimmerfKaraScript
+ trainer EVENT_BEAT_SWIMMERF_KARA, SWIMMERF, KARA, SwimmerfKaraSeenText, SwimmerfKaraBeatenText, 0, .Script
-SwimmerfKaraScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfKaraAfterBattleText
@@ -62,9 +62,9 @@ SwimmerfKaraScript:
end
TrainerSwimmerfWendy:
- trainer EVENT_BEAT_SWIMMERF_WENDY, SWIMMERF, WENDY, SwimmerfWendySeenText, SwimmerfWendyBeatenText, 0, SwimmerfWendyScript
+ trainer EVENT_BEAT_SWIMMERF_WENDY, SWIMMERF, WENDY, SwimmerfWendySeenText, SwimmerfWendyBeatenText, 0, .Script
-SwimmerfWendyScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmerfWendyAfterBattleText
@@ -73,9 +73,9 @@ SwimmerfWendyScript:
end
TrainerSwimmermCharlie:
- trainer EVENT_BEAT_SWIMMERM_CHARLIE, SWIMMERM, CHARLIE, SwimmermCharlieSeenText, SwimmermCharlieBeatenText, 0, SwimmermCharlieScript
+ trainer EVENT_BEAT_SWIMMERM_CHARLIE, SWIMMERM, CHARLIE, SwimmermCharlieSeenText, SwimmermCharlieBeatenText, 0, .Script
-SwimmermCharlieScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermCharlieAfterBattleText
@@ -84,9 +84,9 @@ SwimmermCharlieScript:
end
TrainerSwimmermGeorge:
- trainer EVENT_BEAT_SWIMMERM_GEORGE, SWIMMERM, GEORGE, SwimmermGeorgeSeenText, SwimmermGeorgeBeatenText, 0, SwimmermGeorgeScript
+ trainer EVENT_BEAT_SWIMMERM_GEORGE, SWIMMERM, GEORGE, SwimmermGeorgeSeenText, SwimmermGeorgeBeatenText, 0, .Script
-SwimmermGeorgeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermGeorgeAfterBattleText
@@ -95,9 +95,9 @@ SwimmermGeorgeScript:
end
TrainerSwimmermBerke:
- trainer EVENT_BEAT_SWIMMERM_BERKE, SWIMMERM, BERKE, SwimmermBerkeSeenText, SwimmermBerkeBeatenText, 0, SwimmermBerkeScript
+ trainer EVENT_BEAT_SWIMMERM_BERKE, SWIMMERM, BERKE, SwimmermBerkeSeenText, SwimmermBerkeBeatenText, 0, .Script
-SwimmermBerkeScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermBerkeAfterBattleText
@@ -106,9 +106,9 @@ SwimmermBerkeScript:
end
TrainerSwimmermKirk:
- trainer EVENT_BEAT_SWIMMERM_KIRK, SWIMMERM, KIRK, SwimmermKirkSeenText, SwimmermKirkBeatenText, 0, SwimmermKirkScript
+ trainer EVENT_BEAT_SWIMMERM_KIRK, SWIMMERM, KIRK, SwimmermKirkSeenText, SwimmermKirkBeatenText, 0, .Script
-SwimmermKirkScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermKirkAfterBattleText
@@ -117,9 +117,9 @@ SwimmermKirkScript:
end
TrainerSwimmermMathew:
- trainer EVENT_BEAT_SWIMMERM_MATHEW, SWIMMERM, MATHEW, SwimmermMathewSeenText, SwimmermMathewBeatenText, 0, SwimmermMathewScript
+ trainer EVENT_BEAT_SWIMMERM_MATHEW, SWIMMERM, MATHEW, SwimmermMathewSeenText, SwimmermMathewBeatenText, 0, .Script
-SwimmermMathewScript:
+.Script:
end_if_just_battled
opentext
writetext SwimmermMathewAfterBattleText
diff --git a/maps/Route42.asm b/maps/Route42.asm
index 99bb953cb..eab7e282c 100644
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -37,9 +37,9 @@ Route42SuicuneScript:
end
TrainerFisherTully1:
- trainer EVENT_BEAT_FISHER_TULLY, FISHER, TULLY1, FisherTully1SeenText, FisherTully1BeatenText, 0, FisherTully1Script
+ trainer EVENT_BEAT_FISHER_TULLY, FISHER, TULLY1, FisherTully1SeenText, FisherTully1BeatenText, 0, .Script
-FisherTully1Script:
+.Script:
writecode VAR_CALLERID, PHONE_FISHER_TULLY
end_if_just_battled
opentext
@@ -163,9 +163,9 @@ UnknownScript_0x1a9311:
end
TrainerPokemaniacShane:
- trainer EVENT_BEAT_POKEMANIAC_SHANE, POKEMANIAC, SHANE, PokemaniacShaneSeenText, PokemaniacShaneBeatenText, 0, PokemaniacShaneScript
+ trainer EVENT_BEAT_POKEMANIAC_SHANE, POKEMANIAC, SHANE, PokemaniacShaneSeenText, PokemaniacShaneBeatenText, 0, .Script
-PokemaniacShaneScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacShaneAfterBattleText
@@ -174,9 +174,9 @@ PokemaniacShaneScript:
end
TrainerHikerBenjamin:
- trainer EVENT_BEAT_HIKER_BENJAMIN, HIKER, BENJAMIN, HikerBenjaminSeenText, HikerBenjaminBeatenText, 0, HikerBenjaminScript
+ trainer EVENT_BEAT_HIKER_BENJAMIN, HIKER, BENJAMIN, HikerBenjaminSeenText, HikerBenjaminBeatenText, 0, .Script
-HikerBenjaminScript:
+.Script:
end_if_just_battled
opentext
writetext HikerBenjaminAfterBattleText
diff --git a/maps/Route42EcruteakGate.asm b/maps/Route42EcruteakGate.asm
index e014340e4..ae13507e7 100644
--- a/maps/Route42EcruteakGate.asm
+++ b/maps/Route42EcruteakGate.asm
@@ -8,10 +8,10 @@ Route42EcruteakGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x19a4b5:
- jumptextfaceplayer UnknownText_0x19a4b8
+Route42EcruteakGateOfficerScript:
+ jumptextfaceplayer Route42EcruteakGateOfficerText
-UnknownText_0x19a4b8:
+Route42EcruteakGateOfficerText:
text "MT.MORTAR is like"
line "a maze inside."
@@ -38,4 +38,4 @@ Route42EcruteakGate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, OfficerScript_0x19a4b5, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route42EcruteakGateOfficerScript, -1
diff --git a/maps/Route43.asm b/maps/Route43.asm
index dcb0d70be..d3e16b3df 100644
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -27,9 +27,9 @@ Route43_MapScriptHeader:
return
TrainerCamperSpencer:
- trainer EVENT_BEAT_CAMPER_SPENCER, CAMPER, SPENCER, CamperSpencerSeenText, CamperSpencerBeatenText, 0, CamperSpencerScript
+ trainer EVENT_BEAT_CAMPER_SPENCER, CAMPER, SPENCER, CamperSpencerSeenText, CamperSpencerBeatenText, 0, .Script
-CamperSpencerScript:
+.Script:
end_if_just_battled
opentext
writetext CamperSpencerAfterBattleText
@@ -38,9 +38,9 @@ CamperSpencerScript:
end
TrainerPokemaniacBen:
- trainer EVENT_BEAT_POKEMANIAC_BEN, POKEMANIAC, BEN, PokemaniacBenSeenText, PokemaniacBenBeatenText, 0, PokemaniacBenScript
+ trainer EVENT_BEAT_POKEMANIAC_BEN, POKEMANIAC, BEN, PokemaniacBenSeenText, PokemaniacBenBeatenText, 0, .Script
-PokemaniacBenScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacBenAfterBattleText
@@ -49,9 +49,9 @@ PokemaniacBenScript:
end
TrainerPokemaniacBrent1:
- trainer EVENT_BEAT_POKEMANIAC_BRENT, POKEMANIAC, BRENT1, PokemaniacBrent1SeenText, PokemaniacBrent1BeatenText, 0, PokemaniacBrent1Script
+ trainer EVENT_BEAT_POKEMANIAC_BRENT, POKEMANIAC, BRENT1, PokemaniacBrent1SeenText, PokemaniacBrent1BeatenText, 0, .Script
-PokemaniacBrent1Script:
+.Script:
writecode VAR_CALLERID, PHONE_POKEMANIAC_BRENT
end_if_just_battled
opentext
@@ -154,9 +154,9 @@ UnknownScript_0x19d144:
end
TrainerPokemaniacRon:
- trainer EVENT_BEAT_POKEMANIAC_RON, POKEMANIAC, RON, PokemaniacRonSeenText, PokemaniacRonBeatenText, 0, PokemaniacRonScript
+ trainer EVENT_BEAT_POKEMANIAC_RON, POKEMANIAC, RON, PokemaniacRonSeenText, PokemaniacRonBeatenText, 0, .Script
-PokemaniacRonScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacRonAfterBattleText
@@ -165,9 +165,9 @@ PokemaniacRonScript:
end
TrainerFisherMarvin:
- trainer EVENT_BEAT_FISHER_MARVIN, FISHER, MARVIN, FisherMarvinSeenText, FisherMarvinBeatenText, 0, FisherMarvinScript
+ trainer EVENT_BEAT_FISHER_MARVIN, FISHER, MARVIN, FisherMarvinSeenText, FisherMarvinBeatenText, 0, .Script
-FisherMarvinScript:
+.Script:
end_if_just_battled
opentext
writetext FisherMarvinAfterBattleText
@@ -176,9 +176,9 @@ FisherMarvinScript:
end
TrainerPicnickerTiffany3:
- trainer EVENT_BEAT_PICNICKER_TIFFANY, PICNICKER, TIFFANY3, PicnickerTiffany3SeenText, PicnickerTiffany3BeatenText, 0, PicnickerTiffany3Script
+ trainer EVENT_BEAT_PICNICKER_TIFFANY, PICNICKER, TIFFANY3, PicnickerTiffany3SeenText, PicnickerTiffany3BeatenText, 0, .Script
-PicnickerTiffany3Script:
+.Script:
writecode VAR_CALLERID, PHONE_PICNICKER_TIFFANY
end_if_just_battled
opentext
diff --git a/maps/Route44.asm b/maps/Route44.asm
index dc24e8ddb..31c8a9c92 100644
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -19,9 +19,9 @@ Route44_MapScriptHeader:
db 0
TrainerBird_keeperVance1:
- trainer EVENT_BEAT_BIRD_KEEPER_VANCE, BIRD_KEEPER, VANCE1, Bird_keeperVance1SeenText, Bird_keeperVance1BeatenText, 0, Bird_keeperVance1Script
+ trainer EVENT_BEAT_BIRD_KEEPER_VANCE, BIRD_KEEPER, VANCE1, Bird_keeperVance1SeenText, Bird_keeperVance1BeatenText, 0, .Script
-Bird_keeperVance1Script:
+.Script:
writecode VAR_CALLERID, PHONE_BIRDKEEPER_VANCE
end_if_just_battled
opentext
@@ -150,9 +150,9 @@ UnknownScript_0x19d90a:
end
TrainerPsychicPhil:
- trainer EVENT_BEAT_PSYCHIC_PHIL, PSYCHIC_T, PHIL, PsychicPhilSeenText, PsychicPhilBeatenText, 0, PsychicPhilScript
+ trainer EVENT_BEAT_PSYCHIC_PHIL, PSYCHIC_T, PHIL, PsychicPhilSeenText, PsychicPhilBeatenText, 0, .Script
-PsychicPhilScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicPhilAfterBattleText
@@ -161,9 +161,9 @@ PsychicPhilScript:
end
TrainerFisherWilton1:
- trainer EVENT_BEAT_FISHER_WILTON, FISHER, WILTON1, FisherWilton1SeenText, FisherWilton1BeatenText, 0, FisherWilton1Script
+ trainer EVENT_BEAT_FISHER_WILTON, FISHER, WILTON1, FisherWilton1SeenText, FisherWilton1BeatenText, 0, .Script
-FisherWilton1Script:
+.Script:
writecode VAR_CALLERID, PHONE_FISHER_WILTON
end_if_just_battled
opentext
@@ -256,9 +256,9 @@ UnknownScript_0x19d9e7:
jump UnknownScript_0x19d8ff
TrainerFisherEdgar:
- trainer EVENT_BEAT_FISHER_EDGAR, FISHER, EDGAR, FisherEdgarSeenText, FisherEdgarBeatenText, 0, FisherEdgarScript
+ trainer EVENT_BEAT_FISHER_EDGAR, FISHER, EDGAR, FisherEdgarSeenText, FisherEdgarBeatenText, 0, .Script
-FisherEdgarScript:
+.Script:
end_if_just_battled
opentext
writetext FisherEdgarAfterBattleText
@@ -267,9 +267,9 @@ FisherEdgarScript:
end
TrainerCooltrainerfCybil:
- trainer EVENT_BEAT_COOLTRAINERF_CYBIL, COOLTRAINERF, CYBIL, CooltrainerfCybilSeenText, CooltrainerfCybilBeatenText, 0, CooltrainerfCybilScript
+ trainer EVENT_BEAT_COOLTRAINERF_CYBIL, COOLTRAINERF, CYBIL, CooltrainerfCybilSeenText, CooltrainerfCybilBeatenText, 0, .Script
-CooltrainerfCybilScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfCybilAfterBattleText
@@ -278,9 +278,9 @@ CooltrainerfCybilScript:
end
TrainerPokemaniacZach:
- trainer EVENT_BEAT_POKEMANIAC_ZACH, POKEMANIAC, ZACH, PokemaniacZachSeenText, PokemaniacZachBeatenText, 0, PokemaniacZachScript
+ trainer EVENT_BEAT_POKEMANIAC_ZACH, POKEMANIAC, ZACH, PokemaniacZachSeenText, PokemaniacZachBeatenText, 0, .Script
-PokemaniacZachScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacZachAfterBattleText
@@ -289,9 +289,9 @@ PokemaniacZachScript:
end
TrainerCooltrainermAllen:
- trainer EVENT_BEAT_COOLTRAINERM_ALLEN, COOLTRAINERM, ALLEN, CooltrainermAllenSeenText, CooltrainermAllenBeatenText, 0, CooltrainermAllenScript
+ trainer EVENT_BEAT_COOLTRAINERM_ALLEN, COOLTRAINERM, ALLEN, CooltrainermAllenSeenText, CooltrainermAllenBeatenText, 0, .Script
-CooltrainermAllenScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermAllenAfterBattleText
diff --git a/maps/Route45.asm b/maps/Route45.asm
index 8caac5aa6..7232e3494 100644
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -21,9 +21,9 @@ Route45_MapScriptHeader:
db 0
TrainerBlackbeltKenji:
- trainer EVENT_BEAT_BLACKBELT_KENJI, BLACKBELT_T, KENJI3, BlackbeltKenji3SeenText, BlackbeltKenji3BeatenText, 0, BlackbeltKenji3Script
+ trainer EVENT_BEAT_BLACKBELT_KENJI, BLACKBELT_T, KENJI3, BlackbeltKenji3SeenText, BlackbeltKenji3BeatenText, 0, .Script
-BlackbeltKenji3Script:
+.Script:
writecode VAR_CALLERID, PHONE_BLACKBELT_KENJI
end_if_just_battled
opentext
@@ -125,9 +125,9 @@ UnknownScript_0x19e146:
end
TrainerHikerErik:
- trainer EVENT_BEAT_HIKER_ERIK, HIKER, ERIK, HikerErikSeenText, HikerErikBeatenText, 0, HikerErikScript
+ trainer EVENT_BEAT_HIKER_ERIK, HIKER, ERIK, HikerErikSeenText, HikerErikBeatenText, 0, .Script
-HikerErikScript:
+.Script:
end_if_just_battled
opentext
writetext HikerErikAfterBattleText
@@ -136,9 +136,9 @@ HikerErikScript:
end
TrainerHikerMichael:
- trainer EVENT_BEAT_HIKER_MICHAEL, HIKER, MICHAEL, HikerMichaelSeenText, HikerMichaelBeatenText, 0, HikerMichaelScript
+ trainer EVENT_BEAT_HIKER_MICHAEL, HIKER, MICHAEL, HikerMichaelSeenText, HikerMichaelBeatenText, 0, .Script
-HikerMichaelScript:
+.Script:
end_if_just_battled
opentext
writetext HikerMichaelAfterBattleText
@@ -147,9 +147,9 @@ HikerMichaelScript:
end
TrainerHikerParry:
- trainer EVENT_BEAT_HIKER_PARRY, HIKER, PARRY3, HikerParry3SeenText, HikerParry3BeatenText, 0, HikerParry3Script
+ trainer EVENT_BEAT_HIKER_PARRY, HIKER, PARRY3, HikerParry3SeenText, HikerParry3BeatenText, 0, .Script
-HikerParry3Script:
+.Script:
writecode VAR_CALLERID, PHONE_HIKER_PARRY
end_if_just_battled
opentext
@@ -233,9 +233,9 @@ UnknownScript_0x19e219:
jump UnknownScript_0x19e127
TrainerHikerTimothy:
- trainer EVENT_BEAT_HIKER_TIMOTHY, HIKER, TIMOTHY, HikerTimothySeenText, HikerTimothyBeatenText, 0, HikerTimothyScript
+ trainer EVENT_BEAT_HIKER_TIMOTHY, HIKER, TIMOTHY, HikerTimothySeenText, HikerTimothyBeatenText, 0, .Script
-HikerTimothyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerTimothyAfterBattleText
@@ -244,9 +244,9 @@ HikerTimothyScript:
end
TrainerCooltrainermRyan:
- trainer EVENT_BEAT_COOLTRAINERM_RYAN, COOLTRAINERM, RYAN, CooltrainermRyanSeenText, CooltrainermRyanBeatenText, 0, CooltrainermRyanScript
+ trainer EVENT_BEAT_COOLTRAINERM_RYAN, COOLTRAINERM, RYAN, CooltrainermRyanSeenText, CooltrainermRyanBeatenText, 0, .Script
-CooltrainermRyanScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermRyanAfterBattleText
@@ -255,9 +255,9 @@ CooltrainermRyanScript:
end
TrainerCooltrainerfKelly:
- trainer EVENT_BEAT_COOLTRAINERF_KELLY, COOLTRAINERF, KELLY, CooltrainerfKellySeenText, CooltrainerfKellyBeatenText, 0, CooltrainerfKellyScript
+ trainer EVENT_BEAT_COOLTRAINERF_KELLY, COOLTRAINERF, KELLY, CooltrainerfKellySeenText, CooltrainerfKellyBeatenText, 0, .Script
-CooltrainerfKellyScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfKellyAfterBattleText
diff --git a/maps/Route46.asm b/maps/Route46.asm
index 0a1a52d9e..e6c8d2cf2 100644
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -14,9 +14,9 @@ Route46_MapScriptHeader:
db 0
TrainerCamperTed:
- trainer EVENT_BEAT_CAMPER_TED, CAMPER, TED, CamperTedSeenText, CamperTedBeatenText, 0, CamperTedScript
+ trainer EVENT_BEAT_CAMPER_TED, CAMPER, TED, CamperTedSeenText, CamperTedBeatenText, 0, .Script
-CamperTedScript:
+.Script:
end_if_just_battled
opentext
writetext CamperTedAfterBattleText
@@ -25,9 +25,9 @@ CamperTedScript:
end
TrainerPicnickerErin1:
- trainer EVENT_BEAT_PICNICKER_ERIN, PICNICKER, ERIN1, PicnickerErin1SeenText, PicnickerErin1BeatenText, 0, PicnickerErin1Script
+ trainer EVENT_BEAT_PICNICKER_ERIN, PICNICKER, ERIN1, PicnickerErin1SeenText, PicnickerErin1BeatenText, 0, .Script
-PicnickerErin1Script:
+.Script:
writecode VAR_CALLERID, PHONE_PICNICKER_ERIN
end_if_just_battled
opentext
@@ -148,9 +148,9 @@ UnknownScript_0x1a9772:
end
TrainerHikerBailey:
- trainer EVENT_BEAT_HIKER_BAILEY, HIKER, BAILEY, HikerBaileySeenText, HikerBaileyBeatenText, 0, HikerBaileyScript
+ trainer EVENT_BEAT_HIKER_BAILEY, HIKER, BAILEY, HikerBaileySeenText, HikerBaileyBeatenText, 0, .Script
-HikerBaileyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerBaileyAfterBattleText
diff --git a/maps/Route5.asm b/maps/Route5.asm
index d534faefd..734748f19 100644
--- a/maps/Route5.asm
+++ b/maps/Route5.asm
@@ -8,8 +8,8 @@ Route5_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanMScript_0x1adb19:
- jumptextfaceplayer UnknownText_0x1adb22
+Route5PokefanMScript:
+ jumptextfaceplayer Route5PokefanMText
Route5UndergroundPathSign:
jumptext Route5UndergroundPathSignText
@@ -17,7 +17,7 @@ Route5UndergroundPathSign:
HouseForSaleSign:
jumptext HouseForSaleSignText
-UnknownText_0x1adb22:
+Route5PokefanMText:
text "The road is closed"
line "until the problem"
@@ -60,4 +60,4 @@ Route5_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x1adb19, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+ person_event SPRITE_POKEFAN_M, 16, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route5PokefanMScript, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
diff --git a/maps/Route5CleanseTagSpeechHouse.asm b/maps/Route5CleanseTagSpeechHouse.asm
index 9dec30107..9736deb70 100644
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -26,8 +26,8 @@ UnknownScript_0x18b64d:
closetext
end
-TeacherScript_0x18b64f:
- jumptextfaceplayer UnknownText_0x18b6de
+Route5CleanseTagSpeechHouseTeacherScript:
+ jumptextfaceplayer Route5CleanseTagSpeechHouseTeacherText
HouseForSaleBookshelf:
jumpstd difficultbookshelf
@@ -49,7 +49,7 @@ UnknownText_0x18b6a7:
cont "are protected now."
done
-UnknownText_0x18b6de:
+Route5CleanseTagSpeechHouseTeacherText:
text "My grandma is into"
line "warding off what"
@@ -80,4 +80,4 @@ Route5CleanseTagSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, GrannyScript_0x18b634, -1
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b64f, -1
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Route5CleanseTagSpeechHouseTeacherScript, -1
diff --git a/maps/Route5SaffronCityGate.asm b/maps/Route5SaffronCityGate.asm
index fd3707ff2..c57c9e59e 100644
--- a/maps/Route5SaffronCityGate.asm
+++ b/maps/Route5SaffronCityGate.asm
@@ -8,10 +8,10 @@ Route5SaffronCityGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x18b5b9:
- jumptextfaceplayer UnknownText_0x18b5bc
+Route5SaffronCityGateOfficerScript:
+ jumptextfaceplayer Route5SaffronCityGateOfficerText
-UnknownText_0x18b5bc:
+Route5SaffronCityGateOfficerText:
text "You're from JOHTO,"
line "aren't you?"
@@ -39,4 +39,4 @@ Route5SaffronCityGate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18b5b9, -1
+ person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route5SaffronCityGateOfficerScript, -1
diff --git a/maps/Route5UndergroundEntrance.asm b/maps/Route5UndergroundEntrance.asm
index b43587d4d..dbbe22ad0 100644
--- a/maps/Route5UndergroundEntrance.asm
+++ b/maps/Route5UndergroundEntrance.asm
@@ -8,10 +8,10 @@ Route5UndergroundEntrance_MapScriptHeader:
.MapCallbacks:
db 0
-TeacherScript_0x18b555:
- jumptextfaceplayer UnknownText_0x18b558
+Route5UndergroundEntranceTeacherScript:
+ jumptextfaceplayer Route5UndergroundEntranceTeacherText
-UnknownText_0x18b558:
+Route5UndergroundEntranceTeacherText:
text "Many cities in"
line "JOHTO have long"
@@ -37,4 +37,4 @@ Route5UndergroundEntrance_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18b555, -1
+ person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, Route5UndergroundEntranceTeacherScript, -1
diff --git a/maps/Route6.asm b/maps/Route6.asm
index 583398c9b..abf56e013 100644
--- a/maps/Route6.asm
+++ b/maps/Route6.asm
@@ -11,9 +11,9 @@ Route6_MapScriptHeader:
db 0
TrainerPokefanmRex:
- trainer EVENT_BEAT_POKEFANM_REX, POKEFANM, REX, PokefanmRexSeenText, PokefanmRexBeatenText, 0, PokefanmRexScript
+ trainer EVENT_BEAT_POKEFANM_REX, POKEFANM, REX, PokefanmRexSeenText, PokefanmRexBeatenText, 0, .Script
-PokefanmRexScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmRexAfterBattleText
@@ -22,9 +22,9 @@ PokefanmRexScript:
end
TrainerPokefanmAllan:
- trainer EVENT_BEAT_POKEFANM_ALLAN, POKEFANM, ALLAN, PokefanmAllanSeenText, PokefanmAllanBeatenText, 0, PokefanmAllanScript
+ trainer EVENT_BEAT_POKEFANM_ALLAN, POKEFANM, ALLAN, PokefanmAllanSeenText, PokefanmAllanBeatenText, 0, .Script
-PokefanmAllanScript:
+.Script:
end_if_just_battled
opentext
writetext PokefanmAllanAfterBattleText
@@ -32,13 +32,13 @@ PokefanmAllanScript:
closetext
end
-PokefanMScript_0x1ad951:
- jumptextfaceplayer UnknownText_0x1ad957
+Route6PokefanMScript:
+ jumptextfaceplayer Route6PokefanMText
Route6UndergroundPathSign:
jumptext Route6UndergroundPathSignText
-UnknownText_0x1ad957:
+Route6PokefanMText:
text "The road is closed"
line "until the problem"
@@ -109,6 +109,6 @@ Route6_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 2, PokefanMScript_0x1ad951, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
+ person_event SPRITE_POKEFAN_M, 4, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 2, Route6PokefanMScript, EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
person_event SPRITE_POKEFAN_M, 12, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmRex, -1
person_event SPRITE_POKEFAN_M, 12, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 0, TrainerPokefanmAllan, -1
diff --git a/maps/Route8.asm b/maps/Route8.asm
index 840547185..33e97f0e7 100644
--- a/maps/Route8.asm
+++ b/maps/Route8.asm
@@ -14,9 +14,9 @@ Route8_MapScriptHeader:
db 0
TrainerBikerDwayne:
- trainer EVENT_BEAT_BIKER_DWAYNE, BIKER, DWAYNE, BikerDwayneSeenText, BikerDwayneBeatenText, 0, BikerDwayneScript
+ trainer EVENT_BEAT_BIKER_DWAYNE, BIKER, DWAYNE, BikerDwayneSeenText, BikerDwayneBeatenText, 0, .Script
-BikerDwayneScript:
+.Script:
end_if_just_battled
opentext
writetext BikerDwayneAfterBattleText
@@ -25,9 +25,9 @@ BikerDwayneScript:
end
TrainerBikerHarris:
- trainer EVENT_BEAT_BIKER_HARRIS, BIKER, HARRIS, BikerHarrisSeenText, BikerHarrisBeatenText, 0, BikerHarrisScript
+ trainer EVENT_BEAT_BIKER_HARRIS, BIKER, HARRIS, BikerHarrisSeenText, BikerHarrisBeatenText, 0, .Script
-BikerHarrisScript:
+.Script:
end_if_just_battled
opentext
writetext BikerHarrisAfterBattleText
@@ -36,9 +36,9 @@ BikerHarrisScript:
end
TrainerBikerZeke:
- trainer EVENT_BEAT_BIKER_ZEKE, BIKER, ZEKE, BikerZekeSeenText, BikerZekeBeatenText, 0, BikerZekeScript
+ trainer EVENT_BEAT_BIKER_ZEKE, BIKER, ZEKE, BikerZekeSeenText, BikerZekeBeatenText, 0, .Script
-BikerZekeScript:
+.Script:
end_if_just_battled
opentext
writetext BikerZekeAfterBattleText
@@ -47,9 +47,9 @@ BikerZekeScript:
end
TrainerSupernerdSam:
- trainer EVENT_BEAT_SUPER_NERD_SAM, SUPER_NERD, SAM, SupernerdSamSeenText, SupernerdSamBeatenText, 0, SupernerdSamScript
+ trainer EVENT_BEAT_SUPER_NERD_SAM, SUPER_NERD, SAM, SupernerdSamSeenText, SupernerdSamBeatenText, 0, .Script
-SupernerdSamScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdSamAfterBattleText
@@ -58,9 +58,9 @@ SupernerdSamScript:
end
TrainerSupernerdTom:
- trainer EVENT_BEAT_SUPER_NERD_TOM, SUPER_NERD, TOM, SupernerdTomSeenText, SupernerdTomBeatenText, 0, SupernerdTomScript
+ trainer EVENT_BEAT_SUPER_NERD_TOM, SUPER_NERD, TOM, SupernerdTomSeenText, SupernerdTomBeatenText, 0, .Script
-SupernerdTomScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdTomAfterBattleText
diff --git a/maps/Route8SaffronGate.asm b/maps/Route8SaffronGate.asm
index a7947b4de..44908079f 100644
--- a/maps/Route8SaffronGate.asm
+++ b/maps/Route8SaffronGate.asm
@@ -8,10 +8,10 @@ Route8SaffronGate_MapScriptHeader:
.MapCallbacks:
db 0
-OfficerScript_0x7f416:
- jumptextfaceplayer UnknownText_0x7f419
+Route8SaffronGateOfficerScript:
+ jumptextfaceplayer Route8SaffronGateOfficerText
-UnknownText_0x7f419:
+Route8SaffronGateOfficerText:
text "Have you been to"
line "LAVENDER TOWN?"
@@ -38,4 +38,4 @@ Route8SaffronGate_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, OfficerScript_0x7f416, -1
+ person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Route8SaffronGateOfficerScript, -1
diff --git a/maps/Route9.asm b/maps/Route9.asm
index e5c0df2db..e41f0efd6 100644
--- a/maps/Route9.asm
+++ b/maps/Route9.asm
@@ -14,9 +14,9 @@ Route9_MapScriptHeader:
db 0
TrainerCamperDean:
- trainer EVENT_BEAT_CAMPER_DEAN, CAMPER, DEAN, CamperDeanSeenText, CamperDeanBeatenText, 0, CamperDeanScript
+ trainer EVENT_BEAT_CAMPER_DEAN, CAMPER, DEAN, CamperDeanSeenText, CamperDeanBeatenText, 0, .Script
-CamperDeanScript:
+.Script:
end_if_just_battled
opentext
writetext CamperDeanAfterBattleText
@@ -25,9 +25,9 @@ CamperDeanScript:
end
TrainerPicnickerHeidi:
- trainer EVENT_BEAT_PICNICKER_HEIDI, PICNICKER, HEIDI, PicnickerHeidiSeenText, PicnickerHeidiBeatenText, 0, PicnickerHeidiScript
+ trainer EVENT_BEAT_PICNICKER_HEIDI, PICNICKER, HEIDI, PicnickerHeidiSeenText, PicnickerHeidiBeatenText, 0, .Script
-PicnickerHeidiScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerHeidiAfterBattleText
@@ -36,9 +36,9 @@ PicnickerHeidiScript:
end
TrainerCamperSid:
- trainer EVENT_BEAT_CAMPER_SID, CAMPER, SID, CamperSidSeenText, CamperSidBeatenText, 0, CamperSidScript
+ trainer EVENT_BEAT_CAMPER_SID, CAMPER, SID, CamperSidSeenText, CamperSidBeatenText, 0, .Script
-CamperSidScript:
+.Script:
end_if_just_battled
opentext
writetext CamperSidAfterBattleText
@@ -47,9 +47,9 @@ CamperSidScript:
end
TrainerPicnickerEdna:
- trainer EVENT_BEAT_PICNICKER_EDNA, PICNICKER, EDNA, PicnickerEdnaSeenText, PicnickerEdnaBeatenText, 0, PicnickerEdnaScript
+ trainer EVENT_BEAT_PICNICKER_EDNA, PICNICKER, EDNA, PicnickerEdnaSeenText, PicnickerEdnaBeatenText, 0, .Script
-PicnickerEdnaScript:
+.Script:
end_if_just_battled
opentext
writetext PicnickerEdnaAfterBattleText
@@ -58,9 +58,9 @@ PicnickerEdnaScript:
end
TrainerHikerTim:
- trainer EVENT_BEAT_HIKER_TIM, HIKER, TIM, HikerTimSeenText, HikerTimBeatenText, 0, HikerTimScript
+ trainer EVENT_BEAT_HIKER_TIM, HIKER, TIM, HikerTimSeenText, HikerTimBeatenText, 0, .Script
-HikerTimScript:
+.Script:
end_if_just_battled
opentext
writetext HikerTimAfterBattleText
@@ -69,9 +69,9 @@ HikerTimScript:
end
TrainerHikerSidney:
- trainer EVENT_BEAT_HIKER_SIDNEY, HIKER, SIDNEY, HikerSidneySeenText, HikerSidneyBeatenText, 0, HikerSidneyScript
+ trainer EVENT_BEAT_HIKER_SIDNEY, HIKER, SIDNEY, HikerSidneySeenText, HikerSidneyBeatenText, 0, .Script
-HikerSidneyScript:
+.Script:
end_if_just_battled
opentext
writetext HikerSidneyAfterBattleText
diff --git a/maps/RuinsOfAlphKabutoChamber.asm b/maps/RuinsOfAlphKabutoChamber.asm
index b91d46275..d70ce63b2 100644
--- a/maps/RuinsOfAlphKabutoChamber.asm
+++ b/maps/RuinsOfAlphKabutoChamber.asm
@@ -51,8 +51,8 @@ RuinsOfAlphKabutoChamber_MapScriptHeader:
closetext
end
-ReceptionistScript_0x58769:
- jumptextfaceplayer UnknownText_0x58800
+RuinsOfAlphKabutoChamberReceptionistScript:
+ jumptextfaceplayer RuinsOfAlphKabutoChamberReceptionistText
MapRuinsOfAlphKabutoChamberSignpost2Script:
refreshscreen $0
@@ -147,7 +147,7 @@ MovementData_0x587fe:
db $59 ; movement
step_end
-UnknownText_0x58800:
+RuinsOfAlphKabutoChamberReceptionistText:
text "Welcome to this"
line "chamber."
@@ -281,5 +281,5 @@ RuinsOfAlphKabutoChamber_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x58769, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
+ person_event SPRITE_RECEPTIONIST, 5, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RuinsOfAlphKabutoChamberReceptionistScript, EVENT_RUINS_OF_ALPH_KABUTO_CHAMBER_RECEPTIONIST
person_event SPRITE_SCIENTIST, 1, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ScientistScript_0x587a8, -1
diff --git a/maps/RuinsOfAlphOutside.asm b/maps/RuinsOfAlphOutside.asm
index f18e8d99b..687133219 100644
--- a/maps/RuinsOfAlphOutside.asm
+++ b/maps/RuinsOfAlphOutside.asm
@@ -102,9 +102,9 @@ YoungsterScript_0x5807e:
end
TrainerPsychicNathan:
- trainer EVENT_BEAT_PSYCHIC_NATHAN, PSYCHIC_T, NATHAN, PsychicNathanSeenText, PsychicNathanBeatenText, 0, PsychicNathanScript
+ trainer EVENT_BEAT_PSYCHIC_NATHAN, PSYCHIC_T, NATHAN, PsychicNathanSeenText, PsychicNathanBeatenText, 0, .Script
-PsychicNathanScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicNathanAfterBattleText
@@ -114,12 +114,12 @@ PsychicNathanScript:
TrainerSuperNerdStan:
- trainer EVENT_BEAT_SUPER_NERD_STAN, SUPER_NERD, STAN, UnknownText_0x581e5, UnknownText_0x58217, 0, UnknownScript_0x580a9
+ trainer EVENT_BEAT_SUPER_NERD_STAN, SUPER_NERD, STAN, UnknownText_0x581e5, UnknownText_0x58217, 0, .Script
-UnknownScript_0x580a9:
+.Script:
end_if_just_battled
opentext
- writetext UnknownText_0x58250
+ writetext SuperNerdStanAfterBattleText
waitbutton
closetext
end
@@ -194,7 +194,7 @@ UnknownText_0x58217:
line "understanding…"
done
-UnknownText_0x58250:
+SuperNerdStanAfterBattleText:
text "The RUINS are from"
line "about 1500 years"
cont "ago."
diff --git a/maps/SaffronCity.asm b/maps/SaffronCity.asm
index 4b50f427c..7613c17a3 100644
--- a/maps/SaffronCity.asm
+++ b/maps/SaffronCity.asm
@@ -52,11 +52,11 @@ UnknownScript_0x19934c:
closetext
end
-CooltrainerMScript_0x199352:
- jumptextfaceplayer UnknownText_0x1994fe
+SaffronCityCooltrainerMScript:
+ jumptextfaceplayer SaffronCityCooltrainerMText
-CooltrainerFScript_0x199355:
- jumptextfaceplayer UnknownText_0x19958e
+SaffronCityCooltrainerFScript:
+ jumptextfaceplayer SaffronCityCooltrainerFText
FisherScript_0x199358:
faceplayer
@@ -74,14 +74,14 @@ UnknownScript_0x199366:
closetext
end
-YoungsterScript_0x19936c:
- jumptextfaceplayer UnknownText_0x1996a5
+SaffronCityYoungster1Script:
+ jumptextfaceplayer SaffronCityYoungster1Text
-YoungsterScript_0x19936f:
- jumptextfaceplayer UnknownText_0x1996e5
+SaffronCityYoungster2Script:
+ jumptextfaceplayer SaffronCityYoungster2Text
-LassScript_0x199372:
- jumptextfaceplayer UnknownText_0x199745
+SaffronCityLassScript:
+ jumptextfaceplayer SaffronCityLassText
SaffronCitySign:
jumptext SaffronCitySignText
@@ -148,7 +148,7 @@ UnknownText_0x1994ae:
cont "the MAGNET TRAIN."
done
-UnknownText_0x1994fe:
+SaffronCityCooltrainerMText:
text "I went to the GYM,"
line "raring for battles"
cont "against trainers…"
@@ -163,7 +163,7 @@ UnknownText_0x1994fe:
line "embarrassed."
done
-UnknownText_0x19958e:
+SaffronCityCooltrainerFText:
text "This is SILPH CO.,"
line "famous for #MON"
cont "merchandise."
@@ -196,7 +196,7 @@ UnknownText_0x19964b:
line "Haaah, I'm full!"
done
-UnknownText_0x1996a5:
+SaffronCityYoungster1Text:
text "Going into an"
line "alley for the"
@@ -204,7 +204,7 @@ UnknownText_0x1996a5:
line "me sorta anxious."
done
-UnknownText_0x1996e5:
+SaffronCityYoungster2Text:
text "There's a place"
line "called TRAINER"
@@ -215,7 +215,7 @@ UnknownText_0x1996e5:
line "over the place."
done
-UnknownText_0x199745:
+SaffronCityLassText:
text "Our city was"
line "featured on a"
cont "radio program."
@@ -305,9 +305,9 @@ SaffronCity_MapEventHeader:
db 8
person_event SPRITE_LASS, 14, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, LassScript_0x19932a, -1
person_event SPRITE_POKEFAN_M, 30, 19, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x19933e, -1
- person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x199352, -1
- person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x199355, -1
+ person_event SPRITE_COOLTRAINER_M, 7, 32, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronCityCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SaffronCityCooltrainerFScript, -1
person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, FisherScript_0x199358, -1
- person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936c, -1
- person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x19936f, -1
- person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x199372, -1
+ person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SaffronCityYoungster1Script, -1
+ person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SaffronCityYoungster2Script, -1
+ person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronCityLassScript, -1
diff --git a/maps/SaffronGym.asm b/maps/SaffronGym.asm
index b8c4932d7..0e4385b83 100644
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -47,9 +47,9 @@ SabrinaScript_0x189c2e:
end
TrainerMediumRebecca:
- trainer EVENT_BEAT_MEDIUM_REBECCA, MEDIUM, REBECCA, MediumRebeccaSeenText, MediumRebeccaBeatenText, 0, MediumRebeccaScript
+ trainer EVENT_BEAT_MEDIUM_REBECCA, MEDIUM, REBECCA, MediumRebeccaSeenText, MediumRebeccaBeatenText, 0, .Script
-MediumRebeccaScript:
+.Script:
end_if_just_battled
opentext
writetext MediumRebeccaAfterBattleText
@@ -58,9 +58,9 @@ MediumRebeccaScript:
end
TrainerPsychicFranklin:
- trainer EVENT_BEAT_PSYCHIC_FRANKLIN, PSYCHIC_T, FRANKLIN, PsychicFranklinSeenText, PsychicFranklinBeatenText, 0, PsychicFranklinScript
+ trainer EVENT_BEAT_PSYCHIC_FRANKLIN, PSYCHIC_T, FRANKLIN, PsychicFranklinSeenText, PsychicFranklinBeatenText, 0, .Script
-PsychicFranklinScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicFranklinAfterBattleText
@@ -69,9 +69,9 @@ PsychicFranklinScript:
end
TrainerMediumDoris:
- trainer EVENT_BEAT_MEDIUM_DORIS, MEDIUM, DORIS, MediumDorisSeenText, MediumDorisBeatenText, 0, MediumDorisScript
+ trainer EVENT_BEAT_MEDIUM_DORIS, MEDIUM, DORIS, MediumDorisSeenText, MediumDorisBeatenText, 0, .Script
-MediumDorisScript:
+.Script:
end_if_just_battled
opentext
writetext MediumDorisAfterBattleText
@@ -80,9 +80,9 @@ MediumDorisScript:
end
TrainerPsychicJared:
- trainer EVENT_BEAT_PSYCHIC_JARED, PSYCHIC_T, JARED, PsychicJaredSeenText, PsychicJaredBeatenText, 0, PsychicJaredScript
+ trainer EVENT_BEAT_PSYCHIC_JARED, PSYCHIC_T, JARED, PsychicJaredSeenText, PsychicJaredBeatenText, 0, .Script
-PsychicJaredScript:
+.Script:
end_if_just_battled
opentext
writetext PsychicJaredAfterBattleText
diff --git a/maps/SaffronMart.asm b/maps/SaffronMart.asm
index 5d81bee19..edef6f75c 100644
--- a/maps/SaffronMart.asm
+++ b/maps/SaffronMart.asm
@@ -16,19 +16,19 @@ ClerkScript_0x18a3bf:
closetext
end
-CooltrainerMScript_0x18a3c6:
- jumptextfaceplayer UnknownText_0x18a3cc
+SaffronMartCooltrainerMScript:
+ jumptextfaceplayer SaffronMartCooltrainerMText
-CooltrainerFScript_0x18a3c9:
- jumptextfaceplayer UnknownText_0x18a3f3
+SaffronMartCooltrainerFScript:
+ jumptextfaceplayer SaffronMartCooltrainerFText
-UnknownText_0x18a3cc:
+SaffronMartCooltrainerMText:
text "There's a big"
line "RADIO TOWER in"
cont "LAVENDER."
done
-UnknownText_0x18a3f3:
+SaffronMartCooltrainerFText:
text "I want to become"
line "stronger, but I'm"
cont "not good yet…"
@@ -55,5 +55,5 @@ SaffronMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x18a3bf, -1
- person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x18a3c6, -1
- person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x18a3c9, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, SaffronMartCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronMartCooltrainerFScript, -1
diff --git a/maps/SaffronPokecenter1F.asm b/maps/SaffronPokecenter1F.asm
index 975ea587c..dfa0494d7 100644
--- a/maps/SaffronPokecenter1F.asm
+++ b/maps/SaffronPokecenter1F.asm
@@ -38,8 +38,8 @@ FisherScript_0x18a48c:
closetext
end
-YoungsterScript_0x18a4a0:
- jumptextfaceplayer UnknownText_0x18a6c5
+SaffronPokecenter1FYoungsterScript:
+ jumptextfaceplayer SaffronPokecenter1FYoungsterText
UnknownText_0x18a4a3:
text "What are JOHTO's"
@@ -100,7 +100,7 @@ UnknownText_0x18a62e:
cont "knowledge."
done
-UnknownText_0x18a6c5:
+SaffronPokecenter1FYoungsterText:
text "SILPH CO.'s HEAD"
line "OFFICE and the"
@@ -132,4 +132,4 @@ SaffronPokecenter1F_MapEventHeader:
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x18a47d, -1
person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a480, -1
person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x18a48c, -1
- person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x18a4a0, -1
+ person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SaffronPokecenter1FYoungsterScript, -1
diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm
index f6599a6ed..bfe878439 100644
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -86,11 +86,11 @@ UnknownScript_0x18a883:
closetext
end
-TeacherScript_0x18a889:
- jumptextfaceplayer UnknownText_0x18aaab
+SaffronTrainStationTeacherScript:
+ jumptextfaceplayer SaffronTrainStationTeacherText
-LassScript_0x18a88c:
- jumptextfaceplayer UnknownText_0x18ab20
+SaffronTrainStationLassScript:
+ jumptextfaceplayer SaffronTrainStationLassText
MovementData_0x18a88f:
step UP
@@ -192,7 +192,7 @@ UnknownText_0x18aa61:
line "KANTO and JOHTO?"
done
-UnknownText_0x18aaab:
+SaffronTrainStationTeacherText:
text "Before the MAGNET"
line "TRAIN STATION was"
@@ -204,7 +204,7 @@ UnknownText_0x18aaab:
cont "to live there."
done
-UnknownText_0x18ab20:
+SaffronTrainStationLassText:
text "Hi. Do you have a"
line "rail PASS? I have"
@@ -237,5 +237,5 @@ SaffronTrainStation_MapEventHeader:
db 4
person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, OfficerScript_0x18a81e, -1
person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GymGuyScript_0x18a875, -1
- person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION
- person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+ person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SaffronTrainStationTeacherScript, EVENT_SAFFRON_TRAIN_STATION_POPULATION
+ person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SaffronTrainStationLassScript, EVENT_SAFFRON_TRAIN_STATION_POPULATION
diff --git a/maps/SilverCavePokecenter1F.asm b/maps/SilverCavePokecenter1F.asm
index ab6eab65a..dedcf8561 100644
--- a/maps/SilverCavePokecenter1F.asm
+++ b/maps/SilverCavePokecenter1F.asm
@@ -12,10 +12,10 @@ SilverCavePokecenter1F_MapScriptHeader:
NurseScript_0x1ae59a:
jumpstd pokecenternurse
-GrannyScript_0x1ae59d:
- jumptextfaceplayer UnknownText_0x1ae5a0
+SilverCavePokecenter1FGrannyScript:
+ jumptextfaceplayer SilverCavePokecenter1FGrannyText
-UnknownText_0x1ae5a0:
+SilverCavePokecenter1FGrannyText:
text "Trainers who seek"
line "power climb MT."
@@ -48,4 +48,4 @@ SilverCavePokecenter1F_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x1ae59a, -1
- person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x1ae59d, -1
+ person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_STANDING_LEFT, 1, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SilverCavePokecenter1FGrannyScript, -1
diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm
index be5d0eace..e716d3574 100644
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -16,13 +16,13 @@ SlowpokeWellB1F_MapScriptHeader:
.MapCallbacks:
db 0
-KurtScript_0x5a5d5:
- jumptextfaceplayer UnknownText_0x5a6b5
+SlowpokeWellB1FKurtScript:
+ jumptextfaceplayer SlowpokeWellB1FKurtText
TrainerGruntM29:
- trainer EVENT_BEAT_ROCKET_GRUNTM_29, GRUNTM, GRUNTM_29, GruntM29SeenText, GruntM29BeatenText, 0, GruntM29Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_29, GRUNTM, GRUNTM_29, GruntM29SeenText, GruntM29BeatenText, 0, .Script
-GruntM29Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM29AfterBattleText
@@ -31,9 +31,9 @@ GruntM29Script:
end
TrainerGruntM1:
- trainer EVENT_BEAT_ROCKET_GRUNTM_1, GRUNTM, GRUNTM_1, GruntM1SeenText, GruntM1BeatenText, 0, GruntM1Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_1, GRUNTM, GRUNTM_1, GruntM1SeenText, GruntM1BeatenText, 0, .Script
-GruntM1Script:
+.Script:
opentext
writetext TrainerGruntM1WhenTalkText
waitbutton
@@ -74,9 +74,9 @@ GruntM1Script:
end
TrainerGruntM2:
- trainer EVENT_BEAT_ROCKET_GRUNTM_2, GRUNTM, GRUNTM_2, GruntM2SeenText, GruntM2BeatenText, 0, GruntM2Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_2, GRUNTM, GRUNTM_2, GruntM2SeenText, GruntM2BeatenText, 0, .Script
-GruntM2Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM2AfterBattleText
@@ -85,9 +85,9 @@ GruntM2Script:
end
TrainerGruntF1:
- trainer EVENT_BEAT_ROCKET_GRUNTF_1, GRUNTF, GRUNTF_1, GruntF1SeenText, GruntF1BeatenText, 0, GruntF1Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_1, GRUNTF, GRUNTF_1, GruntF1SeenText, GruntF1BeatenText, 0, .Script
-GruntF1Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF1AfterBattleText
@@ -144,7 +144,7 @@ KurtSlowpokeWellVictoryMovementData:
turn_head LEFT
step_end
-UnknownText_0x5a6b5:
+SlowpokeWellB1FKurtText:
text "KURT: Hey there,"
line "<PLAYER>!"
@@ -343,6 +343,6 @@ SlowpokeWellB1F_MapEventHeader:
person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_TRAINER, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS
person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
- person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT
+ person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeWellB1FKurtScript, EVENT_SLOWPOKE_WELL_KURT
person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SlowpokeWellB1FBoulder, -1
person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, SlowpokeWellB1FSuperPotion, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
diff --git a/maps/SoulHouse.asm b/maps/SoulHouse.asm
index 9b77f4306..ba46065a3 100644
--- a/maps/SoulHouse.asm
+++ b/maps/SoulHouse.asm
@@ -14,14 +14,14 @@ SoulHouse_MapScriptHeader:
MrFuji:
jumptextfaceplayer MrFujiText
-TeacherScript_0x7ec4a:
- jumptextfaceplayer UnknownText_0x7ed4d
+SoulHouseTeacherScript:
+ jumptextfaceplayer SoulHouseTeacherText
-LassScript_0x7ec4d:
- jumptextfaceplayer UnknownText_0x7edb1
+SoulHouseLassScript:
+ jumptextfaceplayer SoulHouseLassText
-GrannyScript_0x7ec50:
- jumptextfaceplayer UnknownText_0x7eddb
+SoulHouseGrannyScript:
+ jumptextfaceplayer SoulHouseGrannyText
MrFujiText:
text "MR.FUJI: Welcome."
@@ -48,7 +48,7 @@ MrFujiText:
line "make them happy."
done
-UnknownText_0x7ed4d:
+SoulHouseTeacherText:
text "There are other"
line "graves of #MON"
cont "here, I think."
@@ -58,13 +58,13 @@ UnknownText_0x7ed4d:
cont "MR.FUJI may enter."
done
-UnknownText_0x7edb1:
+SoulHouseLassText:
text "I came with my mom"
line "to visit #MON"
cont "graves…"
done
-UnknownText_0x7eddb:
+SoulHouseGrannyText:
text "The #MON that"
line "lived with me…"
@@ -90,6 +90,6 @@ SoulHouse_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_GRAMPS, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, MrFuji, -1
- person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7ec4a, -1
- person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, LassScript_0x7ec4d, -1
- person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrannyScript_0x7ec50, -1
+ person_event SPRITE_TEACHER, 3, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SoulHouseTeacherScript, -1
+ person_event SPRITE_LASS, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SoulHouseLassScript, -1
+ person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SoulHouseGrannyScript, -1
diff --git a/maps/SproutTower1F.asm b/maps/SproutTower1F.asm
index 5287ef850..782031e97 100644
--- a/maps/SproutTower1F.asm
+++ b/maps/SproutTower1F.asm
@@ -13,22 +13,22 @@ SproutTower1F_MapScriptHeader:
.MapCallbacks:
db 0
-SageScript_0x1844fe:
- jumptextfaceplayer UnknownText_0x1845d8
+SproutTower1FSage1Script:
+ jumptextfaceplayer SproutTower1FSage1Text
-SageScript_0x184501:
- jumptextfaceplayer UnknownText_0x18460a
+SproutTower1FSage2Script:
+ jumptextfaceplayer SproutTower1FSage2Text
-GrannyScript_0x184504:
- jumptextfaceplayer UnknownText_0x184649
+SproutTower1FGrannyScript:
+ jumptextfaceplayer SproutTower1FGrannyText
-TeacherScript_0x184507:
- jumptextfaceplayer UnknownText_0x18469d
+SproutTower1FTeacherScript:
+ jumptextfaceplayer SproutTower1FTeacherText
TrainerSageChow:
- trainer EVENT_BEAT_SAGE_CHOW, SAGE, CHOW, SageChowSeenText, SageChowBeatenText, 0, SageChowScript
+ trainer EVENT_BEAT_SAGE_CHOW, SAGE, CHOW, SageChowSeenText, SageChowBeatenText, 0, .Script
-SageChowScript:
+.Script:
end_if_just_battled
opentext
writetext SageChowAfterBattleText
@@ -64,13 +64,13 @@ SageChowAfterBattleText:
line "thankful for this."
done
-UnknownText_0x1845d8:
+SproutTower1FSage1Text:
text "Only if you reach"
line "the top will you"
cont "obtain an HM."
done
-UnknownText_0x18460a:
+SproutTower1FSage2Text:
text "SPROUT TOWER was"
line "built long ago"
@@ -78,7 +78,7 @@ UnknownText_0x18460a:
line "#MON training."
done
-UnknownText_0x184649:
+SproutTower1FGrannyText:
text "A BELLSPROUT over"
line "100 feet tall…"
@@ -87,7 +87,7 @@ UnknownText_0x184649:
cont "pillar here."
done
-UnknownText_0x18469d:
+SproutTower1FTeacherText:
text "See the pillar"
line "shaking?"
@@ -124,9 +124,9 @@ SproutTower1F_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x1844fe, -1
- person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SageScript_0x184501, -1
- person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x184504, -1
- person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x184507, -1
+ person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SproutTower1FSage1Script, -1
+ person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SproutTower1FSage2Script, -1
+ person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SproutTower1FGrannyScript, -1
+ person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SproutTower1FTeacherScript, -1
person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 4, TrainerSageChow, -1
person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, SproutTower1FParlyzHeal, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
diff --git a/maps/SproutTower2F.asm b/maps/SproutTower2F.asm
index 1833c1372..acd62a2cb 100644
--- a/maps/SproutTower2F.asm
+++ b/maps/SproutTower2F.asm
@@ -11,9 +11,9 @@ SproutTower2F_MapScriptHeader:
db 0
TrainerSageNico:
- trainer EVENT_BEAT_SAGE_NICO, SAGE, NICO, SageNicoSeenText, SageNicoBeatenText, 0, SageNicoScript
+ trainer EVENT_BEAT_SAGE_NICO, SAGE, NICO, SageNicoSeenText, SageNicoBeatenText, 0, .Script
-SageNicoScript:
+.Script:
end_if_just_battled
opentext
writetext SageNicoAfterBattleText
@@ -22,9 +22,9 @@ SageNicoScript:
end
TrainerSageEdmond:
- trainer EVENT_BEAT_SAGE_EDMOND, SAGE, EDMOND, SageEdmondSeenText, SageEdmondBeatenText, 0, SageEdmondScript
+ trainer EVENT_BEAT_SAGE_EDMOND, SAGE, EDMOND, SageEdmondSeenText, SageEdmondBeatenText, 0, .Script
-SageEdmondScript:
+.Script:
end_if_just_battled
opentext
writetext SageEdmondAfterBattleText
diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm
index 71188ee59..c882ac18e 100644
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -93,9 +93,9 @@ UnknownScript_0x1849d1:
end
TrainerSageJin:
- trainer EVENT_BEAT_SAGE_JIN, SAGE, JIN, SageJinSeenText, SageJinBeatenText, 0, SageJinScript
+ trainer EVENT_BEAT_SAGE_JIN, SAGE, JIN, SageJinSeenText, SageJinBeatenText, 0, .Script
-SageJinScript:
+.Script:
end_if_just_battled
opentext
writetext SageJinAfterBattleText
@@ -104,9 +104,9 @@ SageJinScript:
end
TrainerSageTroy:
- trainer EVENT_BEAT_SAGE_TROY, SAGE, TROY, SageTroySeenText, SageTroyBeatenText, 0, SageTroyScript
+ trainer EVENT_BEAT_SAGE_TROY, SAGE, TROY, SageTroySeenText, SageTroyBeatenText, 0, .Script
-SageTroyScript:
+.Script:
end_if_just_battled
opentext
writetext SageTroyAfterBattleText
@@ -115,9 +115,9 @@ SageTroyScript:
end
TrainerSageNeal:
- trainer EVENT_BEAT_SAGE_NEAL, SAGE, NEAL, SageNealSeenText, SageNealBeatenText, 0, SageNealScript
+ trainer EVENT_BEAT_SAGE_NEAL, SAGE, NEAL, SageNealSeenText, SageNealBeatenText, 0, .Script
-SageNealScript:
+.Script:
end_if_just_battled
opentext
writetext SageNealAfterBattleText
diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm
index 390ea5d7a..34781a23c 100644
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -481,9 +481,9 @@ NoExplodingTrap:
end
TrainerScientistJed:
- trainer EVENT_BEAT_SCIENTIST_JED, SCIENTIST, JED, ScientistJedSeenText, ScientistJedBeatenText, 0, ScientistJedScript
+ trainer EVENT_BEAT_SCIENTIST_JED, SCIENTIST, JED, ScientistJedSeenText, ScientistJedBeatenText, 0, .Script
-ScientistJedScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistJedAfterBattleText
@@ -492,9 +492,9 @@ ScientistJedScript:
end
TrainerGruntM16:
- trainer EVENT_BEAT_ROCKET_GRUNTM_16, GRUNTM, GRUNTM_16, GruntM16SeenText, GruntM16BeatenText, 0, GruntM16Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_16, GRUNTM, GRUNTM_16, GruntM16SeenText, GruntM16BeatenText, 0, .Script
-GruntM16Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM16AfterBattleText
diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm
index 9223be138..84f1a3148 100644
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -189,9 +189,9 @@ UnknownScript_0x6d0be:
end
TrainerGruntM17:
- trainer EVENT_BEAT_ROCKET_GRUNTM_17, GRUNTM, GRUNTM_17, GruntM17SeenText, GruntM17BeatenText, 0, GruntM17Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_17, GRUNTM, GRUNTM_17, GruntM17SeenText, GruntM17BeatenText, 0, .Script
-GruntM17Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM17AfterBattleText
@@ -200,9 +200,9 @@ GruntM17Script:
end
TrainerGruntM18:
- trainer EVENT_BEAT_ROCKET_GRUNTM_18, GRUNTM, GRUNTM_18, GruntM18SeenText, GruntM18BeatenText, 0, GruntM18Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_18, GRUNTM, GRUNTM_18, GruntM18SeenText, GruntM18BeatenText, 0, .Script
-GruntM18Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM18AfterBattleText
@@ -211,9 +211,9 @@ GruntM18Script:
end
TrainerGruntM19:
- trainer EVENT_BEAT_ROCKET_GRUNTM_19, GRUNTM, GRUNTM_19, GruntM19SeenText, GruntM19BeatenText, 0, GruntM19Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_19, GRUNTM, GRUNTM_19, GruntM19SeenText, GruntM19BeatenText, 0, .Script
-GruntM19Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM19AfterBattleText
diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm
index 916e7dd9d..905cdad4d 100644
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -83,8 +83,8 @@ RocketBaseRival:
special RestartMapMusic
end
-RocketScript_0x6e048:
- jumptextfaceplayer UnknownText_0x6e235
+TeamRocketBaseB3FRocketScript:
+ jumptextfaceplayer TeamRocketBaseB3FRocketText
UnknownScript_0x6e04b:
applymovement PLAYER, MovementData_0x6e133
@@ -152,9 +152,9 @@ GruntM28Script:
end
TrainerScientistRoss:
- trainer EVENT_BEAT_SCIENTIST_ROSS, SCIENTIST, ROSS, ScientistRossSeenText, ScientistRossBeatenText, 0, ScientistRossScript
+ trainer EVENT_BEAT_SCIENTIST_ROSS, SCIENTIST, ROSS, ScientistRossSeenText, ScientistRossBeatenText, 0, .Script
-ScientistRossScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistRossAfterBattleText
@@ -163,9 +163,9 @@ ScientistRossScript:
end
TrainerScientistMitch:
- trainer EVENT_BEAT_SCIENTIST_MITCH, SCIENTIST, MITCH, ScientistMitchSeenText, ScientistMitchBeatenText, 0, ScientistMitchScript
+ trainer EVENT_BEAT_SCIENTIST_MITCH, SCIENTIST, MITCH, ScientistMitchSeenText, ScientistMitchBeatenText, 0, .Script
-ScientistMitchScript:
+.Script:
end_if_just_battled
opentext
writetext ScientistMitchAfterBattleText
@@ -337,7 +337,7 @@ LanceGetPasswordText:
line "get the passwords."
done
-UnknownText_0x6e235:
+TeamRocketBaseB3FRocketText:
text "Urrggh… The guy"
line "in the cape is"
cont "incredibly tough…"
@@ -604,7 +604,7 @@ TeamRocketBaseB3F_MapEventHeader:
person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 3, RaticateTailGrunt, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_TRAINER, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeamRocketBaseB3FRocketScript, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, TeamRocketBaseB3FProtein, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, PERSONTYPE_ITEMBALL, 0, TeamRocketBaseB3FXSpecial, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm
index 73b5f3554..87fbfe13e 100644
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -169,31 +169,31 @@ TinTower1F_MapScriptHeader:
playmapmusic
end
-SageScript_0x185173:
- jumptextfaceplayer UnknownText_0x185386
+TinTower1FSage1Script:
+ jumptextfaceplayer TinTower1FSage1Text
-SageScript_0x185176:
- jumptextfaceplayer UnknownText_0x185433
+TinTower1FSage2Script:
+ jumptextfaceplayer TinTower1FSage2Text
-SageScript_0x185179:
- jumptextfaceplayer UnknownText_0x185544
+TinTower1FSage3Script:
+ jumptextfaceplayer TinTower1FSage3Text
-SageScript_0x18517c:
+TinTower1FSage4Script:
checkevent EVENT_FOUGHT_HO_OH
- iftrue UnknownScript_0x185185
- jumptextfaceplayer UnknownText_0x1855ee
+ iftrue .FoughtHoOh
+ jumptextfaceplayer TinTower1FSage4Text1
-UnknownScript_0x185185:
- jumptextfaceplayer UnknownText_0x185765
+.FoughtHoOh:
+ jumptextfaceplayer TinTower1FSage4Text2
-SageScript_0x185188:
+TinTower1FSage5Script:
faceplayer
opentext
checkevent EVENT_FOUGHT_HO_OH
- iftrue UnknownScript_0x1851b6
+ iftrue .FoughtHoOh
checkevent EVENT_GOT_RAINBOW_WING
- iftrue UnknownScript_0x1851b0
- writetext UnknownText_0x185629
+ iftrue .GotRainbowWing
+ writetext TinTower1FSage5Text1
buttonsound
verbosegiveitem RAINBOW_WING
closetext
@@ -206,25 +206,25 @@ SageScript_0x185188:
setevent EVENT_GOT_RAINBOW_WING
closetext
opentext
-UnknownScript_0x1851b0:
- writetext UnknownText_0x18564a
+.GotRainbowWing:
+ writetext TinTower1FSage5Text2
waitbutton
closetext
end
-UnknownScript_0x1851b6:
- writetext UnknownText_0x185803
+.FoughtHoOh:
+ writetext TinTower1FSage5Text3
waitbutton
closetext
end
-SageScript_0x1851bc:
+TinTower1FSage6Script:
checkevent EVENT_FOUGHT_HO_OH
- iftrue UnknownScript_0x1851c5
- jumptextfaceplayer UnknownText_0x185654
+ iftrue .FoughtHoOh
+ jumptextfaceplayer TinTower1FSage6Text1
-UnknownScript_0x1851c5:
- jumptextfaceplayer UnknownText_0x1858d0
+.FoughtHoOh:
+ jumptextfaceplayer TinTower1FSage6Text2
TinTowerEusine:
jumptextfaceplayer TinTowerEusineHoOhText
@@ -347,7 +347,7 @@ TinTowerEusineSuicuneText:
para "Later, <PLAYER>!"
done
-UnknownText_0x185386:
+TinTower1FSage1Text:
text "According to"
line "legend…"
@@ -367,7 +367,7 @@ UnknownText_0x185386:
line "humans?"
done
-UnknownText_0x185433:
+TinTower1FSage2Text:
text "When the BRASS"
line "TOWER burned down,"
@@ -399,7 +399,7 @@ UnknownText_0x185433:
line "say."
done
-UnknownText_0x185544:
+TinTower1FSage3Text:
text "The two TOWERS are"
line "said to have been"
@@ -416,7 +416,7 @@ UnknownText_0x185544:
line "important today."
done
-UnknownText_0x1855ee:
+TinTower1FSage4Text1:
text "HO-OH appears to"
line "have descended"
@@ -424,16 +424,16 @@ UnknownText_0x1855ee:
line "TOWER!"
done
-UnknownText_0x185629:
+TinTower1FSage5Text1:
text "This will protect"
line "you. Take it."
done
-UnknownText_0x18564a:
+TinTower1FSage5Text2:
text "Now, go."
done
-UnknownText_0x185654:
+TinTower1FSage6Text1:
text "I believe you are"
line "being tested."
@@ -464,7 +464,7 @@ TinTowerEusineHoOhText:
line "#MANIAC!"
done
-UnknownText_0x185765:
+TinTower1FSage4Text2:
text "The legendary"
line "#MON are said"
@@ -481,7 +481,7 @@ UnknownText_0x185765:
line "put out the fire…"
done
-UnknownText_0x185803:
+TinTower1FSage5Text3:
text "When the legendary"
line "#MON appeared…"
@@ -502,7 +502,7 @@ UnknownText_0x185803:
cont "frightened people."
done
-UnknownText_0x1858d0:
+TinTower1FSage6Text2:
text "Of the legendary"
line "#MON, SUICUNE"
@@ -544,9 +544,9 @@ TinTower1F_MapEventHeader:
person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, TinTowerEusine, EVENT_TIN_TOWER_1F_EUSINE
- person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2
- person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2
- person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage1Script, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage2Script, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage3Script, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage4Script, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage5Script, EVENT_TIN_TOWER_1F_WISE_TRIO_2
+ person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TinTower1FSage6Script, EVENT_TIN_TOWER_1F_WISE_TRIO_2
diff --git a/maps/TinTower9F.asm b/maps/TinTower9F.asm
index 728a94147..14a458528 100644
--- a/maps/TinTower9F.asm
+++ b/maps/TinTower9F.asm
@@ -11,11 +11,13 @@ TinTower9F_MapScriptHeader:
TinTower9FHPUp:
itemball HP_UP
-UnknownText_0x185b8a:
+; unused
+TinTower9FUnusedHoOhText:
text "HO-OH: Shaoooh!"
done
-UnknownText_0x185b9b:
+; unused
+TinTower9FUnusedLugiaText:
text "LUGIA: Gyaaan!"
done
diff --git a/maps/TrainerHouse1F.asm b/maps/TrainerHouse1F.asm
index 98b0960f1..87fd7b592 100644
--- a/maps/TrainerHouse1F.asm
+++ b/maps/TrainerHouse1F.asm
@@ -12,20 +12,20 @@ TrainerHouse1F_MapScriptHeader:
.MapCallbacks:
db 0
-ReceptionistScript_0x9af67:
- jumptextfaceplayer UnknownText_0x9af7f
+TrainerHouse1FReceptionistScript:
+ jumptextfaceplayer TrainerHouse1FReceptionistText
-CooltrainerMScript_0x9af6a:
- jumptextfaceplayer UnknownText_0x9b025
+TrainerHouse1FCooltrainerMScript:
+ jumptextfaceplayer TrainerHouse1FCooltrainerMText
-CooltrainerFScript_0x9af6d:
- jumptextfaceplayer UnknownText_0x9b0b5
+TrainerHouse1FCooltrainerFScript:
+ jumptextfaceplayer TrainerHouse1FCooltrainerFText
-YoungsterScript_0x9af70:
- jumptextfaceplayer UnknownText_0x9b11d
+TrainerHouse1FYoungsterScript:
+ jumptextfaceplayer TrainerHouse1FYoungsterText
-GentlemanScript_0x9af73:
- jumptextfaceplayer UnknownText_0x9b1c9
+TrainerHouse1FGentlemanScript:
+ jumptextfaceplayer TrainerHouse1FGentlemanText
MapTrainerHouse1FSignpost0Script:
jumptext UnknownText_0x9b1f4
@@ -36,7 +36,7 @@ MapTrainerHouse1FSignpost1Script:
MapTrainerHouse1FSignpost2Script:
jumptext UnknownText_0x9b2c1
-UnknownText_0x9af7f:
+TrainerHouse1FReceptionistText:
text "Welcome to TRAINER"
line "HOUSE, the newest"
@@ -53,7 +53,7 @@ UnknownText_0x9af7f:
line "downstairs."
done
-UnknownText_0x9b025:
+TrainerHouse1FCooltrainerMText:
text "VIRIDIAN is the"
line "town closest to"
cont "INDIGO PLATEAU."
@@ -68,7 +68,7 @@ UnknownText_0x9b025:
line "PLATEAU."
done
-UnknownText_0x9b0b5:
+TrainerHouse1FCooltrainerFText:
text "They hold practice"
line "battles downstairs"
cont "here."
@@ -80,7 +80,7 @@ UnknownText_0x9b0b5:
line "battles."
done
-UnknownText_0x9b11d:
+TrainerHouse1FYoungsterText:
text "I guess you can't"
line "become the CHAMP"
@@ -97,7 +97,7 @@ UnknownText_0x9b11d:
line "towns in KANTO."
done
-UnknownText_0x9b1c9:
+TrainerHouse1FGentlemanText:
text "Whew… I'm taking a"
line "rest from #MON"
cont "battles."
@@ -158,8 +158,8 @@ TrainerHouse1F_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ReceptionistScript_0x9af67, -1
- person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9af6a, -1
- person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9af6d, -1
- person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x9af70, -1
- person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x9af73, -1
+ person_event SPRITE_RECEPTIONIST, 11, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, TrainerHouse1FReceptionistScript, -1
+ person_event SPRITE_COOLTRAINER_M, 11, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TrainerHouse1FCooltrainerMScript, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TrainerHouse1FCooltrainerFScript, -1
+ person_event SPRITE_YOUNGSTER, 8, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, TrainerHouse1FYoungsterScript, -1
+ person_event SPRITE_GENTLEMAN, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TrainerHouse1FGentlemanScript, -1
diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm
index f060fbf1a..abfbb0f72 100644
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -206,9 +206,9 @@ UndergroundSilverBattleScript:
end
TrainerGruntM11:
- trainer EVENT_BEAT_ROCKET_GRUNTM_11, GRUNTM, GRUNTM_11, GruntM11SeenText, GruntM11BeatenText, 0, GruntM11Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_11, GRUNTM, GRUNTM_11, GruntM11SeenText, GruntM11BeatenText, 0, .Script
-GruntM11Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM11AfterBattleText
@@ -217,9 +217,9 @@ GruntM11Script:
end
TrainerGruntM25:
- trainer EVENT_BEAT_ROCKET_GRUNTM_25, GRUNTM, GRUNTM_25, GruntM25SeenText, GruntM25BeatenText, 0, GruntM25Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_25, GRUNTM, GRUNTM_25, GruntM25SeenText, GruntM25BeatenText, 0, .Script
-GruntM25Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM25AfterBattleText
@@ -228,9 +228,9 @@ GruntM25Script:
end
TrainerBurglarDuncan:
- trainer EVENT_BEAT_BURGLAR_DUNCAN, BURGLAR, DUNCAN, BurglarDuncanSeenText, BurglarDuncanBeatenText, 0, BurglarDuncanScript
+ trainer EVENT_BEAT_BURGLAR_DUNCAN, BURGLAR, DUNCAN, BurglarDuncanSeenText, BurglarDuncanBeatenText, 0, .Script
-BurglarDuncanScript:
+.Script:
end_if_just_battled
opentext
writetext BurglarDuncanAfterBattleText
@@ -239,9 +239,9 @@ BurglarDuncanScript:
end
TrainerBurglarEddie:
- trainer EVENT_BEAT_BURGLAR_EDDIE, BURGLAR, EDDIE, BurglarEddieSeenText, BurglarEddieBeatenText, 0, BurglarEddieScript
+ trainer EVENT_BEAT_BURGLAR_EDDIE, BURGLAR, EDDIE, BurglarEddieSeenText, BurglarEddieBeatenText, 0, .Script
-BurglarEddieScript:
+.Script:
end_if_just_battled
opentext
writetext BurglarEddieAfterBattleText
@@ -250,9 +250,9 @@ BurglarEddieScript:
end
TrainerGruntM13:
- trainer EVENT_BEAT_ROCKET_GRUNTM_13, GRUNTM, GRUNTM_13, GruntM13SeenText, GruntM13BeatenText, 0, GruntM13Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_13, GRUNTM, GRUNTM_13, GruntM13SeenText, GruntM13BeatenText, 0, .Script
-GruntM13Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM13AfterBattleText
@@ -261,9 +261,9 @@ GruntM13Script:
end
TrainerGruntF3:
- trainer EVENT_BEAT_ROCKET_GRUNTF_3, GRUNTF, GRUNTF_3, GruntF3SeenText, GruntF3BeatenText, 0, GruntF3Script
+ trainer EVENT_BEAT_ROCKET_GRUNTF_3, GRUNTF, GRUNTF_3, GruntF3SeenText, GruntF3BeatenText, 0, .Script
-GruntF3Script:
+.Script:
end_if_just_battled
opentext
writetext GruntF3AfterBattleText
diff --git a/maps/UndergroundWarehouse.asm b/maps/UndergroundWarehouse.asm
index 67f5632ca..7876d0557 100644
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -36,9 +36,9 @@ UndergroundWarehouse_MapScriptHeader:
return
TrainerGruntM24:
- trainer EVENT_BEAT_ROCKET_GRUNTM_24, GRUNTM, GRUNTM_24, GruntM24SeenText, GruntM24BeatenText, 0, GruntM24Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_24, GRUNTM, GRUNTM_24, GruntM24SeenText, GruntM24BeatenText, 0, .Script
-GruntM24Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM24AfterBattleText
@@ -47,9 +47,9 @@ GruntM24Script:
end
TrainerGruntM14:
- trainer EVENT_BEAT_ROCKET_GRUNTM_14, GRUNTM, GRUNTM_14, GruntM14SeenText, GruntM14BeatenText, 0, GruntM14Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_14, GRUNTM, GRUNTM_14, GruntM14SeenText, GruntM14BeatenText, 0, .Script
-GruntM14Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM14AfterBattleText
@@ -58,9 +58,9 @@ GruntM14Script:
end
TrainerGruntM15:
- trainer EVENT_BEAT_ROCKET_GRUNTM_15, GRUNTM, GRUNTM_15, GruntM15SeenText, GruntM15BeatenText, 0, GruntM15Script
+ trainer EVENT_BEAT_ROCKET_GRUNTM_15, GRUNTM, GRUNTM_15, GruntM15SeenText, GruntM15BeatenText, 0, .Script
-GruntM15Script:
+.Script:
end_if_just_battled
opentext
writetext GruntM15AfterBattleText
diff --git a/maps/UnionCave1F.asm b/maps/UnionCave1F.asm
index fbcaa23e9..0879a120c 100644
--- a/maps/UnionCave1F.asm
+++ b/maps/UnionCave1F.asm
@@ -17,9 +17,9 @@ UnionCave1F_MapScriptHeader:
db 0
TrainerPokemaniacLarry:
- trainer EVENT_BEAT_POKEMANIAC_LARRY, POKEMANIAC, LARRY, PokemaniacLarrySeenText, PokemaniacLarryBeatenText, 0, PokemaniacLarryScript
+ trainer EVENT_BEAT_POKEMANIAC_LARRY, POKEMANIAC, LARRY, PokemaniacLarrySeenText, PokemaniacLarryBeatenText, 0, .Script
-PokemaniacLarryScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacLarryAfterBattleText
@@ -28,9 +28,9 @@ PokemaniacLarryScript:
end
TrainerHikerRussell:
- trainer EVENT_BEAT_HIKER_RUSSELL, HIKER, RUSSELL, HikerRussellSeenText, HikerRussellBeatenText, 0, HikerRussellScript
+ trainer EVENT_BEAT_HIKER_RUSSELL, HIKER, RUSSELL, HikerRussellSeenText, HikerRussellBeatenText, 0, .Script
-HikerRussellScript:
+.Script:
end_if_just_battled
opentext
writetext HikerRussellAfterBattleText
@@ -39,9 +39,9 @@ HikerRussellScript:
end
TrainerHikerDaniel:
- trainer EVENT_BEAT_HIKER_DANIEL, HIKER, DANIEL, HikerDanielSeenText, HikerDanielBeatenText, 0, HikerDanielScript
+ trainer EVENT_BEAT_HIKER_DANIEL, HIKER, DANIEL, HikerDanielSeenText, HikerDanielBeatenText, 0, .Script
-HikerDanielScript:
+.Script:
end_if_just_battled
opentext
writetext HikerDanielAfterBattleText
@@ -50,9 +50,9 @@ HikerDanielScript:
end
TrainerFirebreatherBill:
- trainer EVENT_BEAT_FIREBREATHER_BILL, FIREBREATHER, BILL, FirebreatherBillSeenText, FirebreatherBillBeatenText, 0, FirebreatherBillScript
+ trainer EVENT_BEAT_FIREBREATHER_BILL, FIREBREATHER, BILL, FirebreatherBillSeenText, FirebreatherBillBeatenText, 0, .Script
-FirebreatherBillScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherBillAfterBattleText
@@ -61,9 +61,9 @@ FirebreatherBillScript:
end
TrainerFirebreatherRay:
- trainer EVENT_BEAT_FIREBREATHER_RAY, FIREBREATHER, RAY, FirebreatherRaySeenText, FirebreatherRayBeatenText, 0, FirebreatherRayScript
+ trainer EVENT_BEAT_FIREBREATHER_RAY, FIREBREATHER, RAY, FirebreatherRaySeenText, FirebreatherRayBeatenText, 0, .Script
-FirebreatherRayScript:
+.Script:
end_if_just_battled
opentext
writetext FirebreatherRayAfterBattleText
diff --git a/maps/UnionCaveB1F.asm b/maps/UnionCaveB1F.asm
index 1608b6884..a11702651 100644
--- a/maps/UnionCaveB1F.asm
+++ b/maps/UnionCaveB1F.asm
@@ -15,9 +15,9 @@ UnionCaveB1F_MapScriptHeader:
db 0
TrainerPokemaniacAndrew:
- trainer EVENT_BEAT_POKEMANIAC_ANDREW, POKEMANIAC, ANDREW, PokemaniacAndrewSeenText, PokemaniacAndrewBeatenText, 0, PokemaniacAndrewScript
+ trainer EVENT_BEAT_POKEMANIAC_ANDREW, POKEMANIAC, ANDREW, PokemaniacAndrewSeenText, PokemaniacAndrewBeatenText, 0, .Script
-PokemaniacAndrewScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacAndrewAfterBattleText
@@ -26,9 +26,9 @@ PokemaniacAndrewScript:
end
TrainerPokemaniacCalvin:
- trainer EVENT_BEAT_POKEMANIAC_CALVIN, POKEMANIAC, CALVIN, PokemaniacCalvinSeenText, PokemaniacCalvinBeatenText, 0, PokemaniacCalvinScript
+ trainer EVENT_BEAT_POKEMANIAC_CALVIN, POKEMANIAC, CALVIN, PokemaniacCalvinSeenText, PokemaniacCalvinBeatenText, 0, .Script
-PokemaniacCalvinScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacCalvinAfterBattleText
@@ -37,9 +37,9 @@ PokemaniacCalvinScript:
end
TrainerHikerPhillip:
- trainer EVENT_BEAT_HIKER_PHILLIP, HIKER, PHILLIP, HikerPhillipSeenText, HikerPhillipBeatenText, 0, HikerPhillipScript
+ trainer EVENT_BEAT_HIKER_PHILLIP, HIKER, PHILLIP, HikerPhillipSeenText, HikerPhillipBeatenText, 0, .Script
-HikerPhillipScript:
+.Script:
end_if_just_battled
opentext
writetext HikerPhillipAfterBattleText
@@ -48,9 +48,9 @@ HikerPhillipScript:
end
TrainerHikerLeonard:
- trainer EVENT_BEAT_HIKER_LEONARD, HIKER, LEONARD, HikerLeonardSeenText, HikerLeonardBeatenText, 0, HikerLeonardScript
+ trainer EVENT_BEAT_HIKER_LEONARD, HIKER, LEONARD, HikerLeonardSeenText, HikerLeonardBeatenText, 0, .Script
-HikerLeonardScript:
+.Script:
end_if_just_battled
opentext
writetext HikerLeonardAfterBattleText
diff --git a/maps/UnionCaveB2F.asm b/maps/UnionCaveB2F.asm
index 55c5fde36..6ad0ff78e 100644
--- a/maps/UnionCaveB2F.asm
+++ b/maps/UnionCaveB2F.asm
@@ -38,9 +38,9 @@ UnionCaveLapras:
end
TrainerCooltrainermNick:
- trainer EVENT_BEAT_COOLTRAINERM_NICK, COOLTRAINERM, NICK, CooltrainermNickSeenText, CooltrainermNickBeatenText, 0, CooltrainermNickScript
+ trainer EVENT_BEAT_COOLTRAINERM_NICK, COOLTRAINERM, NICK, CooltrainermNickSeenText, CooltrainermNickBeatenText, 0, .Script
-CooltrainermNickScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainermNickAfterBattleText
@@ -49,9 +49,9 @@ CooltrainermNickScript:
end
TrainerCooltrainerfGwen:
- trainer EVENT_BEAT_COOLTRAINERF_GWEN, COOLTRAINERF, GWEN, CooltrainerfGwenSeenText, CooltrainerfGwenBeatenText, 0, CooltrainerfGwenScript
+ trainer EVENT_BEAT_COOLTRAINERF_GWEN, COOLTRAINERF, GWEN, CooltrainerfGwenSeenText, CooltrainerfGwenBeatenText, 0, .Script
-CooltrainerfGwenScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfGwenAfterBattleText
@@ -60,9 +60,9 @@ CooltrainerfGwenScript:
end
TrainerCooltrainerfEmma:
- trainer EVENT_BEAT_COOLTRAINERF_EMMA, COOLTRAINERF, EMMA, CooltrainerfEmmaSeenText, CooltrainerfEmmaBeatenText, 0, CooltrainerfEmmaScript
+ trainer EVENT_BEAT_COOLTRAINERF_EMMA, COOLTRAINERF, EMMA, CooltrainerfEmmaSeenText, CooltrainerfEmmaBeatenText, 0, .Script
-CooltrainerfEmmaScript:
+.Script:
end_if_just_battled
opentext
writetext CooltrainerfEmmaAfterBattleText
diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm
index ea794dd6a..405f450b3 100644
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -18,8 +18,8 @@ VermilionCity_MapScriptHeader:
setflag ENGINE_FLYPOINT_VERMILION
return
-TeacherScript_0x1aa983:
- jumptextfaceplayer UnknownText_0x1aaa15
+VermilionCityTeacherScript:
+ jumptextfaceplayer VermilionCityTeacherText
VermilionMachopOwner:
jumptextfaceplayer VermilionMachopOwnerText
@@ -37,8 +37,8 @@ VermilionMachop:
closetext
end
-SuperNerdScript_0x1aa99b:
- jumptextfaceplayer UnknownText_0x1aab1a
+VermilionCitySuperNerdScript:
+ jumptextfaceplayer VermilionCitySuperNerdText
VermilionSnorlax:
opentext
@@ -125,7 +125,7 @@ VermilionCityMartSign:
VermilionCityHiddenFullHeal:
dwb EVENT_VERMILION_CITY_HIDDEN_FULL_HEAL, FULL_HEAL
-UnknownText_0x1aaa15:
+VermilionCityTeacherText:
text "VERMILION PORT is"
line "KANTO's seaside"
cont "gateway."
@@ -156,7 +156,7 @@ VermilionMachopText2:
cont "the ground flat."
done
-UnknownText_0x1aab1a:
+VermilionCitySuperNerdText:
text "There are eight"
line "GYMS in KANTO."
@@ -300,9 +300,9 @@ VermilionCity_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x1aa983, -1
+ person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionCityTeacherScript, -1
person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionMachopOwner, -1
person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, VermilionMachop, -1
- person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x1aa99b, -1
+ person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionCitySuperNerdScript, -1
person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VermilionGymBadgeGuy, -1
diff --git a/maps/VermilionGym.asm b/maps/VermilionGym.asm
index f5cf8e96a..e98ebb848 100644
--- a/maps/VermilionGym.asm
+++ b/maps/VermilionGym.asm
@@ -45,9 +45,9 @@ SurgeScript_0x1920a5:
end
TrainerGentlemanGregory:
- trainer EVENT_BEAT_GENTLEMAN_GREGORY, GENTLEMAN, GREGORY, GentlemanGregorySeenText, GentlemanGregoryBeatenText, 0, GentlemanGregoryScript
+ trainer EVENT_BEAT_GENTLEMAN_GREGORY, GENTLEMAN, GREGORY, GentlemanGregorySeenText, GentlemanGregoryBeatenText, 0, .Script
-GentlemanGregoryScript:
+.Script:
end_if_just_battled
opentext
writetext GentlemanGregoryAfterBattleText
@@ -56,9 +56,9 @@ GentlemanGregoryScript:
end
TrainerGuitaristVincent:
- trainer EVENT_BEAT_GUITARIST_VINCENT, GUITARIST, VINCENT, GuitaristVincentSeenText, GuitaristVincentBeatenText, 0, GuitaristVincentScript
+ trainer EVENT_BEAT_GUITARIST_VINCENT, GUITARIST, VINCENT, GuitaristVincentSeenText, GuitaristVincentBeatenText, 0, .Script
-GuitaristVincentScript:
+.Script:
end_if_just_battled
opentext
writetext GuitaristVincentAfterBattleText
@@ -67,9 +67,9 @@ GuitaristVincentScript:
end
TrainerJugglerHorton:
- trainer EVENT_BEAT_JUGGLER_HORTON, JUGGLER, HORTON, JugglerHortonSeenText, JugglerHortonBeatenText, 0, JugglerHortonScript
+ trainer EVENT_BEAT_JUGGLER_HORTON, JUGGLER, HORTON, JugglerHortonSeenText, JugglerHortonBeatenText, 0, .Script
-JugglerHortonScript:
+.Script:
end_if_just_battled
opentext
writetext JugglerHortonAfterBattleText
diff --git a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
index 53360680c..b7440fcd7 100644
--- a/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
+++ b/maps/VermilionHouseDiglettsCaveSpeechHouse.asm
@@ -8,10 +8,10 @@ VermilionHouseDiglettsCaveSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-GentlemanScript_0x192031:
- jumptextfaceplayer UnknownText_0x192034
+VermilionHouseDiglettsCaveSpeechHouseGentlemanScript:
+ jumptextfaceplayer VermilionHouseDiglettsCaveSpeechHouseGentlemanText
-UnknownText_0x192034:
+VermilionHouseDiglettsCaveSpeechHouseGentlemanText:
text "Over many years,"
line "DIGLETT dug a"
cont "large tunnel."
@@ -37,4 +37,4 @@ VermilionHouseDiglettsCaveSpeechHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x192031, -1
+ person_event SPRITE_GENTLEMAN, 3, 1, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VermilionHouseDiglettsCaveSpeechHouseGentlemanScript, -1
diff --git a/maps/VermilionMagnetTrainSpeechHouse.asm b/maps/VermilionMagnetTrainSpeechHouse.asm
index 763f89755..1d94b09a9 100644
--- a/maps/VermilionMagnetTrainSpeechHouse.asm
+++ b/maps/VermilionMagnetTrainSpeechHouse.asm
@@ -9,16 +9,16 @@ VermilionMagnetTrainSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanFScript_0x191eb7:
- jumptextfaceplayer UnknownText_0x191ec0
+VermilionMagnetTrainSpeechHousePokefanFScript:
+ jumptextfaceplayer VermilionMagnetTrainSpeechHousePokefanFText
-YoungsterScript_0x191eba:
- jumptextfaceplayer UnknownText_0x191f16
+VermilionMagnetTrainSpeechHouseYoungsterScript:
+ jumptextfaceplayer VermilionMagnetTrainSpeechHouseYoungsterText
VermilionMagnetTrainSpeechHouseBookshelf:
jumpstd picturebookshelf
-UnknownText_0x191ec0:
+VermilionMagnetTrainSpeechHousePokefanFText:
text "Do you know about"
line "the MAGNET TRAIN?"
@@ -27,7 +27,7 @@ UnknownText_0x191ec0:
cont "DENROD in JOHTO."
done
-UnknownText_0x191f16:
+VermilionMagnetTrainSpeechHouseYoungsterText:
text "I want to go to"
line "SAFFRON to see"
cont "the MAGNET TRAIN."
@@ -52,5 +52,5 @@ VermilionMagnetTrainSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanFScript_0x191eb7, -1
- person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x191eba, -1
+ person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionMagnetTrainSpeechHousePokefanFScript, -1
+ person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionMagnetTrainSpeechHouseYoungsterScript, -1
diff --git a/maps/VermilionMart.asm b/maps/VermilionMart.asm
index e5092c8ca..71a7d601f 100644
--- a/maps/VermilionMart.asm
+++ b/maps/VermilionMart.asm
@@ -16,13 +16,13 @@ ClerkScript_0x191f7e:
closetext
end
-SuperNerdScript_0x191f85:
- jumptextfaceplayer UnknownText_0x191f8b
+VermilionMartSuperNerdScript:
+ jumptextfaceplayer VermilionMartSuperNerdText
-BuenaScript_0x191f88:
- jumptextfaceplayer UnknownText_0x191fca
+VermilionMartBuenaScript:
+ jumptextfaceplayer VermilionMartBuenaText
-UnknownText_0x191f8b:
+VermilionMartSuperNerdText:
text "TEAM ROCKET is no"
line "longer in KANTO."
@@ -30,7 +30,7 @@ UnknownText_0x191f8b:
line "me happy."
done
-UnknownText_0x191fca:
+VermilionMartBuenaText:
text "I'm thinking about"
line "going shopping in"
cont "SAFFRON."
@@ -54,5 +54,5 @@ VermilionMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x191f7e, -1
- person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, SuperNerdScript_0x191f85, -1
- person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BuenaScript_0x191f88, -1
+ person_event SPRITE_SUPER_NERD, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VermilionMartSuperNerdScript, -1
+ person_event SPRITE_BUENA, 6, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionMartBuenaScript, -1
diff --git a/maps/VermilionPokecenter1F.asm b/maps/VermilionPokecenter1F.asm
index f4bbd0140..1a6e6b905 100644
--- a/maps/VermilionPokecenter1F.asm
+++ b/maps/VermilionPokecenter1F.asm
@@ -30,11 +30,11 @@ UnknownScript_0x191614:
closetext
end
-SailorScript_0x19161a:
- jumptextfaceplayer UnknownText_0x1916fe
+VermilionPokecenter1FSailorScript:
+ jumptextfaceplayer VermilionPokecenter1FSailorText
-BugCatcherScript_0x19161d:
- jumptextfaceplayer UnknownText_0x19173b
+VermilionPokecenter1FBugCatcherScript:
+ jumptextfaceplayer VermilionPokecenter1FBugCatcherText
UnknownText_0x191620:
text "A sleeping #MON"
@@ -59,7 +59,7 @@ UnknownText_0x191698:
line "have disappeared."
done
-UnknownText_0x1916fe:
+VermilionPokecenter1FSailorText:
text "The FAST SHIP is a"
line "great place to"
@@ -67,7 +67,7 @@ UnknownText_0x1916fe:
line "trainers."
done
-UnknownText_0x19173b:
+VermilionPokecenter1FBugCatcherText:
text "Oh? You have some"
line "BADGES I've never"
cont "seen before."
@@ -96,5 +96,5 @@ VermilionPokecenter1F_MapEventHeader:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x191603, -1
person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FishingGuruScript_0x191606, -1
- person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, SailorScript_0x19161a, -1
- person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x19161d, -1
+ person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, VermilionPokecenter1FSailorScript, -1
+ person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VermilionPokecenter1FBugCatcherScript, -1
diff --git a/maps/VermilionPortPassage.asm b/maps/VermilionPortPassage.asm
index 8acb74505..028bb6094 100644
--- a/maps/VermilionPortPassage.asm
+++ b/maps/VermilionPortPassage.asm
@@ -8,10 +8,10 @@ VermilionPortPassage_MapScriptHeader:
.MapCallbacks:
db 0
-TeacherScript_0x7701a:
- jumptextfaceplayer UnknownText_0x7701d
+VermilionPortPassageTeacherScript:
+ jumptextfaceplayer VermilionPortPassageTeacherText
-UnknownText_0x7701d:
+VermilionPortPassageTeacherText:
text "The FAST SHIP"
line "sails on Wednes-"
cont "days and Sundays"
@@ -38,4 +38,4 @@ VermilionPortPassage_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x7701a, -1
+ person_event SPRITE_TEACHER, 1, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VermilionPortPassageTeacherScript, -1
diff --git a/maps/VioletCity.asm b/maps/VioletCity.asm
index 2d503853b..93a71312a 100644
--- a/maps/VioletCity.asm
+++ b/maps/VioletCity.asm
@@ -289,7 +289,7 @@ VioletCity_MapEventHeader:
warp_def $11, $1e, 1, EARLS_POKEMON_ACADEMY
warp_def $f, $3, 1, VIOLET_NICKNAME_SPEECH_HOUSE
warp_def $19, $1f, 1, VIOLET_POKECENTER_1F
- warp_def $1d, $15, 1, VIOLET_ONIX_TRADE_HOUSE
+ warp_def $1d, $15, 1, VIOLET_KYLES_HOUSE
warp_def $5, $17, 1, SPROUT_TOWER_1F
warp_def $18, $27, 1, ROUTE_31_VIOLET_GATE
warp_def $19, $27, 2, ROUTE_31_VIOLET_GATE
diff --git a/maps/VioletGym.asm b/maps/VioletGym.asm
index a1f6beeb7..b98a789a5 100644
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -67,9 +67,9 @@ VioletGymTriggerRockets:
jumpstd radiotowerrockets
TrainerBird_keeperRod:
- trainer EVENT_BEAT_BIRD_KEEPER_ROD, BIRD_KEEPER, ROD, Bird_keeperRodSeenText, Bird_keeperRodBeatenText, 0, Bird_keeperRodScript
+ trainer EVENT_BEAT_BIRD_KEEPER_ROD, BIRD_KEEPER, ROD, Bird_keeperRodSeenText, Bird_keeperRodBeatenText, 0, .Script
-Bird_keeperRodScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperRodAfterBattleText
@@ -78,9 +78,9 @@ Bird_keeperRodScript:
end
TrainerBird_keeperAbe:
- trainer EVENT_BEAT_BIRD_KEEPER_ABE, BIRD_KEEPER, ABE, Bird_keeperAbeSeenText, Bird_keeperAbeBeatenText, 0, Bird_keeperAbeScript
+ trainer EVENT_BEAT_BIRD_KEEPER_ABE, BIRD_KEEPER, ABE, Bird_keeperAbeSeenText, Bird_keeperAbeBeatenText, 0, .Script
-Bird_keeperAbeScript:
+.Script:
end_if_just_battled
opentext
writetext Bird_keeperAbeAfterBattleText
diff --git a/maps/VioletKylesHouse.asm b/maps/VioletKylesHouse.asm
new file mode 100644
index 000000000..de6a1edf8
--- /dev/null
+++ b/maps/VioletKylesHouse.asm
@@ -0,0 +1,53 @@
+const_value set 2
+ const VIOLETKYLESHOUSE_POKEFAN_M
+ const VIOLETKYLESHOUSE_KYLE
+
+VioletKylesHouse_MapScriptHeader:
+.MapTriggers:
+ db 0
+
+.MapCallbacks:
+ db 0
+
+VioletKylesHousePokefanMScript:
+ jumptextfaceplayer VioletKylesHousePokefanMText
+
+Kyle:
+ faceplayer
+ opentext
+ trade NPCTRADE_KYLE
+ waitbutton
+ closetext
+ end
+
+VioletKylesHousePokefanMText:
+ text "A #MON you get"
+ line "in a trade grows"
+ cont "quickly."
+
+ para "But if you don't"
+ line "have the right GYM"
+
+ para "BADGE, they may"
+ line "disobey you."
+ done
+
+VioletKylesHouse_MapEventHeader:
+ ; filler
+ db 0, 0
+
+.Warps:
+ db 2
+ warp_def $7, $3, 6, VIOLET_CITY
+ warp_def $7, $4, 6, VIOLET_CITY
+
+.XYTriggers:
+ db 0
+
+.Signposts:
+ db 0
+
+.PersonEvents:
+ db 2
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletKylesHousePokefanMScript, -1
+ person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Kyle, -1
diff --git a/maps/VioletMart.asm b/maps/VioletMart.asm
index 35b0d5593..db6790bfe 100644
--- a/maps/VioletMart.asm
+++ b/maps/VioletMart.asm
@@ -16,13 +16,13 @@ ClerkScript_0x68295:
closetext
end
-GrannyScript_0x6829c:
- jumptextfaceplayer UnknownText_0x682a2
+VioletMartGrannyScript:
+ jumptextfaceplayer VioletMartGrannyText
-CooltrainerMScript_0x6829f:
- jumptextfaceplayer UnknownText_0x68323
+VioletMartCooltrainerMScript:
+ jumptextfaceplayer VioletMartCooltrainerMText
-UnknownText_0x682a2:
+VioletMartGrannyText:
text "When you first"
line "catch a #MON,"
cont "it may be weak."
@@ -36,7 +36,7 @@ UnknownText_0x682a2:
cont "love."
done
-UnknownText_0x68323:
+VioletMartCooltrainerMText:
text "#MON can hold"
line "items like POTION"
cont "and ANTIDOTE."
@@ -66,5 +66,5 @@ VioletMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x68295, -1
- person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrannyScript_0x6829c, -1
- person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x6829f, -1
+ person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletMartGrannyScript, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VioletMartCooltrainerMScript, -1
diff --git a/maps/VioletNicknameSpeechHouse.asm b/maps/VioletNicknameSpeechHouse.asm
index e10c41d0a..61f95bb0b 100644
--- a/maps/VioletNicknameSpeechHouse.asm
+++ b/maps/VioletNicknameSpeechHouse.asm
@@ -10,11 +10,11 @@ VioletNicknameSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-TeacherScript_0x693e9:
- jumptextfaceplayer UnknownText_0x693fa
+VioletNicknameSpeechHouseTeacherScript:
+ jumptextfaceplayer VioletNicknameSpeechHouseTeacherText
-LassScript_0x693ec:
- jumptextfaceplayer UnknownText_0x6945e
+VioletNicknameSpeechHouseLassScript:
+ jumptextfaceplayer VioletNicknameSpeechHouseLassText
BirdScript_0x693ef:
faceplayer
@@ -25,7 +25,7 @@ BirdScript_0x693ef:
closetext
end
-UnknownText_0x693fa:
+VioletNicknameSpeechHouseTeacherText:
text "She uses the names"
line "of her favorite"
cont "things to eat."
@@ -35,7 +35,7 @@ UnknownText_0x693fa:
cont "#MON, I mean."
done
-UnknownText_0x6945e:
+VioletNicknameSpeechHouseLassText:
text "I call my PIDGEY"
line "STRAWBERRY!"
done
@@ -61,6 +61,6 @@ VioletNicknameSpeechHouse_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, TeacherScript_0x693e9, -1
- person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x693ec, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletNicknameSpeechHouseTeacherScript, -1
+ person_event SPRITE_LASS, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VioletNicknameSpeechHouseLassScript, -1
person_event SPRITE_BIRD, 2, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, BirdScript_0x693ef, -1
diff --git a/maps/VioletOnixTradeHouse.asm b/maps/VioletOnixTradeHouse.asm
deleted file mode 100644
index feb5b10af..000000000
--- a/maps/VioletOnixTradeHouse.asm
+++ /dev/null
@@ -1,53 +0,0 @@
-const_value set 2
- const VIOLETONIXTRADEHOUSE_POKEFAN_M
- const VIOLETONIXTRADEHOUSE_KYLE
-
-VioletOnixTradeHouse_MapScriptHeader:
-.MapTriggers:
- db 0
-
-.MapCallbacks:
- db 0
-
-PokefanMScript_0x6998d:
- jumptextfaceplayer UnknownText_0x69997
-
-Kyle:
- faceplayer
- opentext
- trade NPCTRADE_KYLE
- waitbutton
- closetext
- end
-
-UnknownText_0x69997:
- text "A #MON you get"
- line "in a trade grows"
- cont "quickly."
-
- para "But if you don't"
- line "have the right GYM"
-
- para "BADGE, they may"
- line "disobey you."
- done
-
-VioletOnixTradeHouse_MapEventHeader:
- ; filler
- db 0, 0
-
-.Warps:
- db 2
- warp_def $7, $3, 6, VIOLET_CITY
- warp_def $7, $4, 6, VIOLET_CITY
-
-.XYTriggers:
- db 0
-
-.Signposts:
- db 0
-
-.PersonEvents:
- db 2
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x6998d, -1
- person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, Kyle, -1
diff --git a/maps/VioletPokecenter1F.asm b/maps/VioletPokecenter1F.asm
index 46afff49a..f871a5977 100644
--- a/maps/VioletPokecenter1F.asm
+++ b/maps/VioletPokecenter1F.asm
@@ -78,14 +78,14 @@ VioletPokecenter1F_ElmsAideScript:
writetext UnknownText_0x69712
jump .AskTakeEgg
-GameboyKidScript_0x69540:
- jumptextfaceplayer UnknownText_0x69809
+VioletPokecenter1FGameboyKidScript:
+ jumptextfaceplayer VioletPokecenter1FGameboyKidText
-GentlemanScript_0x69543:
- jumptextfaceplayer UnknownText_0x6983c
+VioletPokecenter1FGentlemanScript:
+ jumptextfaceplayer VioletPokecenter1FGentlemanText
-YoungsterScript_0x69546:
- jumptextfaceplayer UnknownText_0x698b8
+VioletPokecenter1FYoungsterScript:
+ jumptextfaceplayer VioletPokecenter1FYoungsterText
MovementData_AideWalksStraightOutOfPokecenter:
step DOWN
@@ -182,13 +182,13 @@ UnknownText_0x69791:
line "a friend far away."
done
-UnknownText_0x69809:
+VioletPokecenter1FGameboyKidText:
text "A guy named BILL"
line "made the #MON"
cont "PC storage system."
done
-UnknownText_0x6983c:
+VioletPokecenter1FGentlemanText:
text "It was around"
line "three years ago."
@@ -201,7 +201,7 @@ UnknownText_0x6983c:
cont "kid broke 'em up."
done
-UnknownText_0x698b8:
+VioletPokecenter1FYoungsterText:
text "#MON are smart."
line "They won't obey a"
@@ -234,7 +234,7 @@ VioletPokecenter1F_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletPokecenterNurse, -1
- person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, GameboyKidScript_0x69540, -1
- person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GentlemanScript_0x69543, -1
- person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x69546, -1
+ person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, VioletPokecenter1FGameboyKidScript, -1
+ person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, VioletPokecenter1FGentlemanScript, -1
+ person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, VioletPokecenter1FYoungsterScript, -1
person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, VioletPokecenter1F_ElmsAideScript, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm
index a6b30627a..3b4ce8f33 100644
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -66,8 +66,8 @@ FisherScript_0x1a9a75:
closetext
end
-YoungsterScript_0x1a9a90:
- jumptextfaceplayer UnknownText_0x1a9daa
+ViridianCityYoungsterScript:
+ jumptextfaceplayer ViridianCityYoungsterText
ViridianCitySign:
jumptext ViridianCitySignText
@@ -176,7 +176,7 @@ UnknownText_0x1a9d86:
para "…Zzzzz…"
done
-UnknownText_0x1a9daa:
+ViridianCityYoungsterText:
text "I heard that there"
line "are many items on"
@@ -244,4 +244,4 @@ ViridianCity_MapEventHeader:
person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a4c, -1
person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, GrampsScript_0x1a9a61, -1
person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, FisherScript_0x1a9a75, -1
- person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, YoungsterScript_0x1a9a90, -1
+ person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ViridianCityYoungsterScript, -1
diff --git a/maps/ViridianMart.asm b/maps/ViridianMart.asm
index 25764b0a5..dbb1e8d09 100644
--- a/maps/ViridianMart.asm
+++ b/maps/ViridianMart.asm
@@ -16,19 +16,19 @@ ClerkScript_0x9b5e7:
closetext
end
-LassScript_0x9b5ee:
- jumptextfaceplayer UnknownText_0x9b5f4
+ViridianMartLassScript:
+ jumptextfaceplayer ViridianMartLassText
-CooltrainerMScript_0x9b5f1:
- jumptextfaceplayer UnknownText_0x9b61a
+ViridianMartCooltrainerMScript:
+ jumptextfaceplayer ViridianMartCooltrainerMText
-UnknownText_0x9b5f4:
+ViridianMartLassText:
text "The GYM LEADER"
line "here is totally"
cont "cool."
done
-UnknownText_0x9b61a:
+ViridianMartCooltrainerMText:
text "Have you been to"
line "CINNABAR?"
@@ -54,5 +54,5 @@ ViridianMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ClerkScript_0x9b5e7, -1
- person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, LassScript_0x9b5ee, -1
- person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b5f1, -1
+ person_event SPRITE_LASS, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ViridianMartLassScript, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, ViridianMartCooltrainerMScript, -1
diff --git a/maps/ViridianNicknameSpeechHouse.asm b/maps/ViridianNicknameSpeechHouse.asm
index b28c14ac1..9c402b327 100644
--- a/maps/ViridianNicknameSpeechHouse.asm
+++ b/maps/ViridianNicknameSpeechHouse.asm
@@ -11,11 +11,11 @@ ViridianNicknameSpeechHouse_MapScriptHeader:
.MapCallbacks:
db 0
-PokefanMScript_0x9ae3a:
- jumptextfaceplayer UnknownText_0x9ae54
+ViridianNicknameSpeechHousePokefanMScript:
+ jumptextfaceplayer ViridianNicknameSpeechHousePokefanMText
-LassScript_0x9ae3d:
- jumptextfaceplayer UnknownText_0x9aecb
+ViridianNicknameSpeechHouseLassScript:
+ jumptextfaceplayer ViridianNicknameSpeechHouseLassText
Speary:
opentext
@@ -33,7 +33,7 @@ Rattey:
closetext
end
-UnknownText_0x9ae54:
+ViridianNicknameSpeechHousePokefanMText:
text "Do you put a lot"
line "of thought into"
@@ -47,7 +47,7 @@ UnknownText_0x9ae54:
line "with others."
done
-UnknownText_0x9aecb:
+ViridianNicknameSpeechHouseLassText:
text "They're SPEARY--"
line "a SPEAROW--and"
cont "RATTEY--a RATTATA."
@@ -78,7 +78,7 @@ ViridianNicknameSpeechHouse_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, PokefanMScript_0x9ae3a, -1
- person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, LassScript_0x9ae3d, -1
+ person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, ViridianNicknameSpeechHousePokefanMScript, -1
+ person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ViridianNicknameSpeechHouseLassScript, -1
person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, PAL_NPC_BROWN, PERSONTYPE_SCRIPT, 0, Speary, -1
person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, Rattey, -1
diff --git a/maps/ViridianPokecenter1F.asm b/maps/ViridianPokecenter1F.asm
index 35c634f03..2db55de00 100644
--- a/maps/ViridianPokecenter1F.asm
+++ b/maps/ViridianPokecenter1F.asm
@@ -30,11 +30,11 @@ CooltrainerMScript_0x9b693:
closetext
end
-CooltrainerFScript_0x9b6a7:
- jumptextfaceplayer UnknownText_0x9b76b
+ViridianPokecenter1FCooltrainerFScript:
+ jumptextfaceplayer ViridianPokecenter1FCooltrainerFText
-BugCatcherScript_0x9b6aa:
- jumptextfaceplayer UnknownText_0x9b7c8
+ViridianPokecenter1FBugCatcherScript:
+ jumptextfaceplayer ViridianPokecenter1FBugCatcherText
UnknownText_0x9b6ad:
text "Where in the world"
@@ -56,7 +56,7 @@ UnknownText_0x9b6f5:
line "any underlings."
done
-UnknownText_0x9b76b:
+ViridianPokecenter1FCooltrainerFText:
text "I heard that the"
line "GYM in CINNABAR is"
cont "gone."
@@ -66,7 +66,7 @@ UnknownText_0x9b76b:
cont "the GYM LEADER."
done
-UnknownText_0x9b7c8:
+ViridianPokecenter1FBugCatcherText:
text "My dream is to be-"
line "come a GYM LEADER."
done
@@ -91,5 +91,5 @@ ViridianPokecenter1F_MapEventHeader:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, NurseScript_0x9b690, -1
person_event SPRITE_COOLTRAINER_M, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, PAL_NPC_RED, PERSONTYPE_SCRIPT, 0, CooltrainerMScript_0x9b693, -1
- person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, CooltrainerFScript_0x9b6a7, -1
- person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, BugCatcherScript_0x9b6aa, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, PAL_NPC_BLUE, PERSONTYPE_SCRIPT, 0, ViridianPokecenter1FCooltrainerFScript, -1
+ person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, PAL_NPC_GREEN, PERSONTYPE_SCRIPT, 0, ViridianPokecenter1FBugCatcherScript, -1
diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm
index 6acaa08b2..9028ccb8f 100644
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -111,9 +111,9 @@ WarehouseEntrance_MapScriptHeader:
return
TrainerSupernerdEric:
- trainer EVENT_BEAT_SUPER_NERD_ERIC, SUPER_NERD, ERIC, SupernerdEricSeenText, SupernerdEricBeatenText, 0, SupernerdEricScript
+ trainer EVENT_BEAT_SUPER_NERD_ERIC, SUPER_NERD, ERIC, SupernerdEricSeenText, SupernerdEricBeatenText, 0, .Script
-SupernerdEricScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdEricAfterBattleText
@@ -122,9 +122,9 @@ SupernerdEricScript:
end
TrainerSupernerdTeru:
- trainer EVENT_BEAT_SUPER_NERD_TERU, SUPER_NERD, TERU, SupernerdTeruSeenText, SupernerdTeruBeatenText, 0, SupernerdTeruScript
+ trainer EVENT_BEAT_SUPER_NERD_TERU, SUPER_NERD, TERU, SupernerdTeruSeenText, SupernerdTeruBeatenText, 0, .Script
-SupernerdTeruScript:
+.Script:
end_if_just_battled
opentext
writetext SupernerdTeruAfterBattleText
@@ -133,9 +133,9 @@ SupernerdTeruScript:
end
TrainerPokemaniacIssac:
- trainer EVENT_BEAT_POKEMANIAC_ISSAC, POKEMANIAC, ISSAC, PokemaniacIssacSeenText, PokemaniacIssacBeatenText, 0, PokemaniacIssacScript
+ trainer EVENT_BEAT_POKEMANIAC_ISSAC, POKEMANIAC, ISSAC, PokemaniacIssacSeenText, PokemaniacIssacBeatenText, 0, .Script
-PokemaniacIssacScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacIssacAfterBattleText
@@ -144,9 +144,9 @@ PokemaniacIssacScript:
end
TrainerPokemaniacDonald:
- trainer EVENT_BEAT_POKEMANIAC_DONALD, POKEMANIAC, DONALD, PokemaniacDonaldSeenText, PokemaniacDonaldBeatenText, 0, PokemaniacDonaldScript
+ trainer EVENT_BEAT_POKEMANIAC_DONALD, POKEMANIAC, DONALD, PokemaniacDonaldSeenText, PokemaniacDonaldBeatenText, 0, .Script
-PokemaniacDonaldScript:
+.Script:
end_if_just_battled
opentext
writetext PokemaniacDonaldAfterBattleText
diff --git a/maps/WiseTriosRoom.asm b/maps/WiseTriosRoom.asm
index 5f4a38dad..a14a3d3fb 100644
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -43,14 +43,14 @@ WiseTriosRoom_MapScriptHeader:
setevent EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
return
-SageScript_0x9859a:
- jumptextfaceplayer UnknownText_0x9862b
+WiseTriosRoomSage1Script:
+ jumptextfaceplayer WiseTriosRoomSage1Text
-SageScript_0x9859d:
- jumptextfaceplayer UnknownText_0x9868b
+WiseTriosRoomSage2Script:
+ jumptextfaceplayer WiseTriosRoomSage2Text
-SageScript_0x985a0:
- jumptextfaceplayer UnknownText_0x987af
+WiseTriosRoomSage3Script:
+ jumptextfaceplayer WiseTriosRoomSage3Text
UnknownScript_0x985a3:
spriteface WISETRIOSROOM_SAGE3, UP
@@ -69,9 +69,9 @@ UnknownScript_0x985a3:
end
TrainerSageGaku:
- trainer EVENT_BEAT_SAGE_GAKU, SAGE, GAKU, SageGakuSeenText, SageGakuBeatenText, 0, SageGakuScript
+ trainer EVENT_BEAT_SAGE_GAKU, SAGE, GAKU, SageGakuSeenText, SageGakuBeatenText, 0, .Script
-SageGakuScript:
+.Script:
opentext
writetext UnknownText_0x98938
waitbutton
@@ -79,9 +79,9 @@ SageGakuScript:
end
TrainerSageMasa:
- trainer EVENT_BEAT_SAGE_MASA, SAGE, MASA, SageMasaSeenText, SageMasaBeatenText, 0, SageMasaScript
+ trainer EVENT_BEAT_SAGE_MASA, SAGE, MASA, SageMasaSeenText, SageMasaBeatenText, 0, .Script
-SageMasaScript:
+.Script:
opentext
writetext UnknownText_0x98a35
waitbutton
@@ -89,9 +89,9 @@ SageMasaScript:
end
TrainerSageKoji:
- trainer EVENT_BEAT_SAGE_KOJI, SAGE, KOJI, SageKojiSeenText, SageKojiBeatenText, 0, SageKojiScript
+ trainer EVENT_BEAT_SAGE_KOJI, SAGE, KOJI, SageKojiSeenText, SageKojiBeatenText, 0, .Script
-SageKojiScript:
+.Script:
checkevent EVENT_KOJI_ALLOWS_YOU_PASSAGE_TO_TIN_TOWER
iftrue UnknownScript_0x9861b
pause 10
@@ -130,7 +130,7 @@ MovementData_0x98628:
step DOWN
step_end
-UnknownText_0x9862b:
+WiseTriosRoomSage1Text:
text "Astounding…"
para "SUICUNE, ENTEI and"
@@ -141,7 +141,7 @@ UnknownText_0x9862b:
line "coming true?"
done
-UnknownText_0x9868b:
+WiseTriosRoomSage2Text:
text "We train at the"
line "BURNED TOWER, but"
@@ -172,7 +172,7 @@ UnknownText_0x98712:
line "entering!"
done
-UnknownText_0x987af:
+WiseTriosRoomSage3Text:
text "We, the WISE TRIO,"
line "are the protectors"
@@ -363,9 +363,9 @@ WiseTriosRoom_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
- person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
- person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WiseTriosRoomSage1Script, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WiseTriosRoomSage2Script, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_SCRIPT, 0, WiseTriosRoomSage3Script, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageMasa, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
person_event SPRITE_SAGE, 4, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, PERSONTYPE_TRAINER, 2, TrainerSageKoji, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
diff --git a/maps/blockdata.asm b/maps/blockdata.asm
index e6c3e7ae9..c14b30743 100644
--- a/maps/blockdata.asm
+++ b/maps/blockdata.asm
@@ -443,7 +443,7 @@ TimeCapsule_BlockData:
EcruteakLugiaSpeechHouse_BlockData:
EcruteakItemfinderHouse_BlockData:
VioletNicknameSpeechHouse_BlockData:
-VioletOnixTradeHouse_BlockData:
+VioletKylesHouse_BlockData:
INCBIN "maps/House2.blk"
BetaCave_BlockData:
diff --git a/maps/map_headers.asm b/maps/map_headers.asm
index 378356624..3b2607e31 100644
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -1,3 +1,20 @@
+map_header: macro
+;\1: map label
+;\2: tileset: a TILESET_* constant
+;\3: permission: TOWN, ROUTE, INDOOR, CAVE, PERM_5, GATE, or DUNGEON
+;\4: location: from constants/landmark_constants.asm
+;\5: music: a MUSIC_* constant
+;\6: phone service flag: 1 to prevent phone calls
+;\7: time of day: a PALETTE_* constant
+;\8: fishing group: a FISHGROUP_* constant
+\1_MapHeader:
+ db BANK(\1_SecondMapHeader), \2, \3
+ dw \1_SecondMapHeader
+ db \4, \5
+ dn \6, \7
+ db \8
+endm
+
MapGroupPointers::
; pointers to the first map header of each map group
dw MapGroup_Olivine ; 1
@@ -27,7 +44,6 @@ MapGroupPointers::
dw MapGroup_Saffron ; 25
dw MapGroup_Cherrygrove ; 26
-
MapGroup_Olivine:
map_header OlivinePokecenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header OlivineGym, TILESET_OLIVINE_GYM, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, FISHGROUP_SHORE
@@ -235,7 +251,7 @@ MapGroup_Violet:
map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header VioletNicknameSpeechHouse, TILESET_KURTS_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header VioletPokecenter1F, TILESET_POKECENTER, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
- map_header VioletOnixTradeHouse, TILESET_KURTS_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
+ map_header VioletKylesHouse, TILESET_KURTS_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header Route32RuinsOfAlphGate, TILESET_GATE, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header Route32Pokecenter1F, TILESET_POKECENTER, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, FISHGROUP_SHORE
map_header Route35GoldenrodGate, TILESET_GATE, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, FISHGROUP_SHORE
diff --git a/maps/second_map_headers.asm b/maps/second_map_headers.asm
index b58895f4b..e81c8c774 100644
--- a/maps/second_map_headers.asm
+++ b/maps/second_map_headers.asm
@@ -1,3 +1,90 @@
+map_header_2: macro
+;\1: map label
+;\2: map id
+;\3: border block
+;\4: connections: combo of NORTH, SOUTH, WEST, and/or EAST, or 0 for none
+\1_SecondMapHeader::
+ db \3
+ db \2_HEIGHT, \2_WIDTH
+ db BANK(\1_BlockData)
+ dw \1_BlockData
+ db BANK(\1_MapScriptHeader)
+ dw \1_MapScriptHeader
+ dw \1_MapEventHeader
+ db \4
+endm
+
+connection: macro
+if "\1" == "north"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: x
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + \2_WIDTH * (\2_HEIGHT - 3) + \5
+ dw OverworldMap + \4 + 3
+ db \6
+ db \2_WIDTH
+ db \2_HEIGHT * 2 - 1
+ db (\4 - \5) * -2
+ dw OverworldMap + \2_HEIGHT * (\2_WIDTH + 6) + 1
+endc
+
+if "\1" == "south"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: x
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + \5
+ dw OverworldMap + (\7_HEIGHT + 3) * (\7_WIDTH + 6) + \4 + 3
+ db \6
+ db \2_WIDTH
+ db 0
+ db (\4 - \5) * -2
+ dw OverworldMap + \2_WIDTH + 7
+endc
+
+if "\1" == "west"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: y
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + (\2_WIDTH * \5) + \2_WIDTH - 3
+ dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3)
+ db \6
+ db \2_WIDTH
+ db (\4 - \5) * -2
+ db \2_WIDTH * 2 - 1
+ dw OverworldMap + \2_WIDTH * 2 + 6
+endc
+
+if "\1" == "east"
+;\2: map id
+;\3: map label (eventually will be rolled into map id)
+;\4: y
+;\5: offset?
+;\6: strip length
+;\7: this map id
+ map \2
+ dw \3_BlockData + (\2_WIDTH * \5)
+ dw OverworldMap + (\7_WIDTH + 6) * (\4 + 3 + 1) - 3
+ db \6
+ db \2_WIDTH
+ db (\4 - \5) * -2
+ db 0
+ dw OverworldMap + \2_WIDTH + 7
+endc
+endm
+
+
map_header_2 NewBarkTown, NEW_BARK_TOWN, $5, WEST | EAST
connection west, ROUTE_29, Route29, 0, 0, 9, NEW_BARK_TOWN
connection east, ROUTE_27, Route27, 0, 0, 9, NEW_BARK_TOWN
@@ -427,7 +514,7 @@
map_header_2 EarlsPokemonAcademy, EARLS_POKEMON_ACADEMY, $0, 0
map_header_2 VioletNicknameSpeechHouse, VIOLET_NICKNAME_SPEECH_HOUSE, $0, 0
map_header_2 VioletPokecenter1F, VIOLET_POKECENTER_1F, $0, 0
- map_header_2 VioletOnixTradeHouse, VIOLET_ONIX_TRADE_HOUSE, $0, 0
+ map_header_2 VioletKylesHouse, VIOLET_KYLES_HOUSE, $0, 0
map_header_2 Route32RuinsOfAlphGate, ROUTE_32_RUINS_OF_ALPH_GATE, $0, 0
map_header_2 Route32Pokecenter1F, ROUTE_32_POKECENTER_1F, $0, 0
map_header_2 Route35GoldenrodGate, ROUTE_35_GOLDENROD_GATE, $0, 0
diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm
deleted file mode 100755
index f9e2ac0ea..000000000
--- a/misc/battle_tower_47.asm
+++ /dev/null
@@ -1,784 +0,0 @@
-BattleTowerText:: ; 11c000
-; Print text c for trainer [BT_OTTrainerClass]
-; 1: Intro text
-; 2: Player lost
-; 3: Player won
- ld a, [rSVBK]
- push af
- ld a, 3 ; BANK(BT_OTTrainerClass)
- ld [rSVBK], a
-IF DEF(CRYSTAL11)
- ld hl, BT_OTTrainerClass
-ELSE
- ld hl, BT_OTName + 5
-; BUG ALERT
-; Instead of loading the Trainer Class, this routine
-; loads the 6th character in the Trainer's name, then
-; uses it to get the gender of the trainer.
-; As a consequence, the enemy trainer's dialog will
-; always be sampled from the female array.
-ENDC
- ld a, [hl]
- dec a
- ld e, a
- ld d, 0
- ld hl, BTTrainerClassGenders
- add hl, de
- ld a, [hl]
- and a
- jr nz, .female
- ; generate a random number between 0 and 24
- ld a, [hRandomAdd]
- and $1f
- cp 25
- jr c, .okay0
- sub 25
-
-.okay0
- ld hl, BTMaleTrainerTexts
- jr .proceed
-
-.female
- ; generate a random number between 0 and 14
- ld a, [hRandomAdd]
- and $f
- cp 15
- jr c, .okay1
- sub 15
-
-.okay1
- ld hl, BTFemaleTrainerTexts
-
-.proceed
- ld b, 0
- dec c
- jr nz, .restore
- ld [BT_TrainerTextIndex], a
- jr .okay2
-
-.restore
- ld a, [BT_TrainerTextIndex]
-
-.okay2
- push af
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld h, a
- ld l, c
- pop af
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld l, c
- ld h, a
- bccoord 1, 14
- pop af
- ld [rSVBK], a
- call PlaceHLTextAtBC
- ret
-; 11c05d
-
-INCLUDE "misc/fixed_words.asm"
-
-BTTrainerClassGenders: ; 11f2f0
- db MALE ; FALKNER
- db FEMALE ; WHITNEY
- db FEMALE ; BUGSY
- db MALE ; MORTY
- db MALE ; PRYCE
- db FEMALE ; JASMINE
- db MALE ; CHUCK
- db FEMALE ; CLAIR
- db MALE ; RIVAL1
- db MALE ; POKEMON_PROF
- db FEMALE ; WILL
- db MALE ; CAL
- db MALE ; BRUNO
- db FEMALE ; KAREN
- db MALE ; KOGA
- db MALE ; CHAMPION
- db MALE ; BROCK
- db FEMALE ; MISTY
- db MALE ; LT_SURGE
- db MALE ; SCIENTIST
- db FEMALE ; ERIKA
- db MALE ; YOUNGSTER
- db MALE ; SCHOOLBOY
- db MALE ; BIRD_KEEPER
- db FEMALE ; LASS
- db FEMALE ; JANINE
- db MALE ; COOLTRAINERM
- db FEMALE ; COOLTRAINERF
- db FEMALE ; BEAUTY
- db MALE ; POKEMANIAC
- db MALE ; GRUNTM
- db MALE ; GENTLEMAN
- db FEMALE ; SKIER
- db FEMALE ; TEACHER
- db FEMALE ; SABRINA
- db MALE ; BUG_CATCHER
- db MALE ; FISHER
- db MALE ; SWIMMERM
- db FEMALE ; SWIMMERF
- db MALE ; SAILOR
- db MALE ; SUPER_NERD
- db MALE ; RIVAL2
- db MALE ; GUITARIST
- db MALE ; HIKER
- db MALE ; BIKER
- db MALE ; BLAINE
- db MALE ; BURGLAR
- db MALE ; FIREBREATHER
- db MALE ; JUGGLER
- db MALE ; BLACKBELT_T
- db MALE ; EXECUTIVEM
- db MALE ; PSYCHIC_T
- db FEMALE ; PICNICKER
- db MALE ; CAMPER
- db FEMALE ; EXECUTIVEF
- db MALE ; SAGE
- db FEMALE ; MEDIUM
- db MALE ; BOARDER
- db MALE ; POKEFANM
- db FEMALE ; KIMONO_GIRL
- db FEMALE ; TWINS
- db FEMALE ; POKEFANF
- db MALE ; RED
- db MALE ; BLUE
- db MALE ; OFFICER
- db FEMALE ; GRUNTF
-
-
-BTMaleTrainerTexts: ; 11f332
- dw .Greetings
- dw .PlayerLost
- dw .PlayerWon
-
-.Greetings: ; 11f338
- dw BTGreetingM1
- dw BTGreetingM2
- dw BTGreetingM3
- dw BTGreetingM4
- dw BTGreetingM5
- dw BTGreetingM6
- dw BTGreetingM7
- dw BTGreetingM8
- dw BTGreetingM9
- dw BTGreetingM10
- dw BTGreetingM11
- dw BTGreetingM12
- dw BTGreetingM13
- dw BTGreetingM14
- dw BTGreetingM15
- dw BTGreetingM16
- dw BTGreetingM17
- dw BTGreetingM18
- dw BTGreetingM19
- dw BTGreetingM20
- dw BTGreetingM21
- dw BTGreetingM22
- dw BTGreetingM23
- dw BTGreetingM24
- dw BTGreetingM25
-
-.PlayerLost: ; 11f36a
- dw BTLossM1
- dw BTLossM2
- dw BTLossM3
- dw BTLossM4
- dw BTLossM5
- dw BTLossM6
- dw BTLossM7
- dw BTLossM8
- dw BTLossM9
- dw BTLossM10
- dw BTLossM11
- dw BTLossM12
- dw BTLossM13
- dw BTLossM14
- dw BTLossM15
- dw BTLossM16
- dw BTLossM17
- dw BTLossM18
- dw BTLossM19
- dw BTLossM20
- dw BTLossM21
- dw BTLossM22
- dw BTLossM23
- dw BTLossM24
- dw BTLossM25
-
-.PlayerWon: ; 11f39c
- dw BTWinM1
- dw BTWinM2
- dw BTWinM3
- dw BTWinM4
- dw BTWinM5
- dw BTWinM6
- dw BTWinM7
- dw BTWinM8
- dw BTWinM9
- dw BTWinM10
- dw BTWinM11
- dw BTWinM12
- dw BTWinM13
- dw BTWinM14
- dw BTWinM15
- dw BTWinM16
- dw BTWinM17
- dw BTWinM18
- dw BTWinM19
- dw BTWinM20
- dw BTWinM21
- dw BTWinM22
- dw BTWinM23
- dw BTWinM24
- dw BTWinM25
-
-
-BTFemaleTrainerTexts:
- dw .Greetings
- dw .PlayerLost
- dw .PlayerWon
-
-.Greetings: ; 11f3d4
- dw BTGreetingF1
- dw BTGreetingF2
- dw BTGreetingF3
- dw BTGreetingF4
- dw BTGreetingF5
- dw BTGreetingF6
- dw BTGreetingF7
- dw BTGreetingF8
- dw BTGreetingF9
- dw BTGreetingF10
- dw BTGreetingF11
- dw BTGreetingF12
- dw BTGreetingF13
- dw BTGreetingF14
- dw BTGreetingF15
-
-.PlayerLost: ; 11f3f2
- dw BTLossF1
- dw BTLossF2
- dw BTLossF3
- dw BTLossF4
- dw BTLossF5
- dw BTLossF6
- dw BTLossF7
- dw BTLossF8
- dw BTLossF9
- dw BTLossF10
- dw BTLossF11
- dw BTLossF12
- dw BTLossF13
- dw BTLossF14
- dw BTLossF15
-
-.PlayerWon: ; 11f410
- dw BTWinF1
- dw BTWinF2
- dw BTWinF3
- dw BTWinF4
- dw BTWinF5
- dw BTWinF6
- dw BTWinF7
- dw BTWinF8
- dw BTWinF9
- dw BTWinF10
- dw BTWinF11
- dw BTWinF12
- dw BTWinF13
- dw BTWinF14
- dw BTWinF15
-
-
-BTGreetingM1: ; 0x11f42e
- text_jump BattleTowerText_0x1ec000
- db "@"
-
-BTLossM1: ; 0x11f433
- text_jump BattleTowerText_0x1ec03b
- db "@"
-
-BTWinM1: ; 0x11f438
- text_jump UnknownText_0x1ec060
- db "@"
-
-BTGreetingM2: ; 0x11f43d
- text_jump BattleTowerText_0x1ec080
- db "@"
-
-BTLossM2: ; 0x11f442
- text_jump UnknownText_0x1ec0a3
- db "@"
-
-BTWinM2: ; 0x11f447
- text_jump UnknownText_0x1ec0c4
- db "@"
-
-BTGreetingM3: ; 0x11f44c
- text_jump UnknownText_0x1ec0e1
- db "@"
-
-BTLossM3: ; 0x11f451
- text_jump UnknownText_0x1ec108
- db "@"
-
-BTWinM3: ; 0x11f456
- text_jump UnknownText_0x1ec12a
- db "@"
-
-BTGreetingM4: ; 0x11f45b
- text_jump UnknownText_0x1ec14d
- db "@"
-
-BTLossM4: ; 0x11f460
- text_jump UnknownText_0x1ec16f
- db "@"
-
-BTWinM4: ; 0x11f465
- text_jump UnknownText_0x1ec190
- db "@"
-
-BTGreetingM5: ; 0x11f46a
- text_jump UnknownText_0x1ec1ae
- db "@"
-
-BTLossM5: ; 0x11f46f
- text_jump UnknownText_0x1ec1d0
- db "@"
-
-BTWinM5: ; 0x11f474
- text_jump UnknownText_0x1ec1f4
- db "@"
-
-BTGreetingM6: ; 0x11f479
- text_jump UnknownText_0x1ec216
- db "@"
-
-BTLossM6: ; 0x11f47e
- text_jump UnknownText_0x1ec238
- db "@"
-
-BTWinM6: ; 0x11f483
- text_jump UnknownText_0x1ec259
- db "@"
-
-BTGreetingM7: ; 0x11f488
- text_jump UnknownText_0x1ec27b
- db "@"
-
-BTLossM7: ; 0x11f48d
- text_jump UnknownText_0x1ec2a0
- db "@"
-
-BTWinM7: ; 0x11f492
- text_jump UnknownText_0x1ec2c0
- db "@"
-
-BTGreetingM8: ; 0x11f497
- text_jump UnknownText_0x1ec2d9
- db "@"
-
-BTLossM8: ; 0x11f49c
- text_jump UnknownText_0x1ec2fe
- db "@"
-
-BTWinM8: ; 0x11f4a1
- text_jump UnknownText_0x1ec320
- db "@"
-
-BTGreetingM9: ; 0x11f4a6
- text_jump UnknownText_0x1ec33f
- db "@"
-
-BTLossM9: ; 0x11f4ab
- text_jump UnknownText_0x1ec36c
- db "@"
-
-BTWinM9: ; 0x11f4b0
- text_jump UnknownText_0x1ec389
- db "@"
-
-BTGreetingM10: ; 0x11f4b5
- text_jump UnknownText_0x1ec3ad
- db "@"
-
-BTLossM10: ; 0x11f4ba
- text_jump UnknownText_0x1ec3c5
- db "@"
-
-BTWinM10: ; 0x11f4bf
- text_jump UnknownText_0x1ec3e5
- db "@"
-
-BTGreetingM11: ; 0x11f4c4
- text_jump UnknownText_0x1ec402
- db "@"
-
-BTLossM11: ; 0x11f4c9
- text_jump UnknownText_0x1ec411
- db "@"
-
-BTWinM11: ; 0x11f4ce
- text_jump UnknownText_0x1ec41f
- db "@"
-
-BTGreetingM12: ; 0x11f4d3
- text_jump UnknownText_0x1ec42e
- db "@"
-
-BTLossM12: ; 0x11f4d8
- text_jump UnknownText_0x1ec461
- db "@"
-
-BTWinM12: ; 0x11f4dd
- text_jump UnknownText_0x1ec4a0
- db "@"
-
-BTGreetingM13: ; 0x11f4e2
- text_jump UnknownText_0x1ec4d6
- db "@"
-
-BTLossM13: ; 0x11f4e7
- text_jump UnknownText_0x1ec4f5
- db "@"
-
-BTWinM13: ; 0x11f4ec
- text_jump UnknownText_0x1ec512
- db "@"
-
-BTGreetingM14: ; 0x11f4f1
- text_jump UnknownText_0x1ec532
- db "@"
-
-BTLossM14: ; 0x11f4f6
- text_jump UnknownText_0x1ec54b
- db "@"
-
-BTWinM14: ; 0x11f4fb
- text_jump UnknownText_0x1ec565
- db "@"
-
-BTGreetingM15: ; 0x11f500
- text_jump UnknownText_0x1ec580
- db "@"
-
-BTLossM15: ; 0x11f505
- text_jump UnknownText_0x1ec59d
- db "@"
-
-BTWinM15: ; 0x11f50a
- text_jump UnknownText_0x1ec5b5
- db "@"
-
-BTGreetingM16: ; 0x11f50f
- text_jump UnknownText_0x1ec5d3
- db "@"
-
-BTLossM16: ; 0x11f514
- text_jump UnknownText_0x1ec5ee
- db "@"
-
-BTWinM16: ; 0x11f519
- text_jump UnknownText_0x1ec60d
- db "@"
-
-BTGreetingM17: ; 0x11f51e
- text_jump UnknownText_0x1ec631
- db "@"
-
-BTLossM17: ; 0x11f523
- text_jump UnknownText_0x1ec651
- db "@"
-
-BTWinM17: ; 0x11f528
- text_jump UnknownText_0x1ec68f
- db "@"
-
-BTGreetingM18: ; 0x11f52d
- text_jump UnknownText_0x1ec6b1
- db "@"
-
-BTLossM18: ; 0x11f532
- text_jump UnknownText_0x1ec6d0
- db "@"
-
-BTWinM18: ; 0x11f537
- text_jump UnknownText_0x1ec708
- db "@"
-
-BTGreetingM19: ; 0x11f53c
- text_jump UnknownText_0x1ec720
- db "@"
-
-BTLossM19: ; 0x11f541
- text_jump UnknownText_0x1ec73e
- db "@"
-
-BTWinM19: ; 0x11f546
- text_jump UnknownText_0x1ec75b
- db "@"
-
-BTGreetingM20: ; 0x11f54b
- text_jump UnknownText_0x1ec77f
- db "@"
-
-BTLossM20: ; 0x11f550
- text_jump UnknownText_0x1ec798
- db "@"
-
-BTWinM20: ; 0x11f555
- text_jump UnknownText_0x1ec7bb
- db "@"
-
-BTGreetingM21: ; 0x11f55a
- text_jump UnknownText_0x1ec7d8
- db "@"
-
-BTLossM21: ; 0x11f55f
- text_jump UnknownText_0x1ec818
- db "@"
-
-BTWinM21: ; 0x11f564
- text_jump UnknownText_0x1ec837
- db "@"
-
-BTGreetingM22: ; 0x11f569
- text_jump UnknownText_0x1ec858
- db "@"
-
-BTLossM22: ; 0x11f56e
- text_jump UnknownText_0x1ec876
- db "@"
-
-BTWinM22: ; 0x11f573
- text_jump UnknownText_0x1ec898
- db "@"
-
-BTGreetingM23: ; 0x11f578
- text_jump UnknownText_0x1ec8b1
- db "@"
-
-BTLossM23: ; 0x11f57d
- text_jump UnknownText_0x1ec8d5
- db "@"
-
-BTWinM23: ; 0x11f582
- text_jump UnknownText_0x1ec8f0
- db "@"
-
-BTGreetingM24: ; 0x11f587
- text_jump UnknownText_0x1ec911
- db "@"
-
-BTLossM24: ; 0x11f58c
- text_jump UnknownText_0x1ec928
- db "@"
-
-BTWinM24: ; 0x11f591
- text_jump UnknownText_0x1ec949
- db "@"
-
-BTGreetingM25: ; 0x11f596
- text_jump UnknownText_0x1ec969
- db "@"
-
-BTLossM25: ; 0x11f59b
- text_jump UnknownText_0x1ec986
- db "@"
-
-BTWinM25: ; 0x11f5a0
- text_jump UnknownText_0x1ec99b
- db "@"
-
-
-
-
-BTGreetingF1: ; 0x11f5a5
- text_jump UnknownText_0x1ec9bd
- db "@"
-
-BTLossF1: ; 0x11f5aa
- text_jump UnknownText_0x1ec9d9
- db "@"
-
-BTWinF1: ; 0x11f5af
- text_jump UnknownText_0x1ec9f7
- db "@"
-
-BTGreetingF2: ; 0x11f5b4
- text_jump UnknownText_0x1eca0a
- db "@"
-
-BTLossF2: ; 0x11f5b9
- text_jump UnknownText_0x1eca2a
- db "@"
-
-BTWinF2: ; 0x11f5be
- text_jump UnknownText_0x1eca47
- db "@"
-
-BTGreetingF3: ; 0x11f5c3
- text_jump UnknownText_0x1eca64
- db "@"
-
-BTLossF3: ; 0x11f5c8
- text_jump UnknownText_0x1eca82
- db "@"
-
-BTWinF3: ; 0x11f5cd
- text_jump UnknownText_0x1eca9d
- db "@"
-
-BTGreetingF4: ; 0x11f5d2
- text_jump UnknownText_0x1ecabf
- db "@"
-
-BTLossF4: ; 0x11f5d7
- text_jump UnknownText_0x1ecade
- db "@"
-
-BTWinF4: ; 0x11f5dc
- text_jump UnknownText_0x1ecafa
- db "@"
-
-BTGreetingF5: ; 0x11f5e1
- text_jump UnknownText_0x1ecb19
- db "@"
-
-BTLossF5: ; 0x11f5e6
- text_jump UnknownText_0x1ecb37
- db "@"
-
-BTWinF5: ; 0x11f5eb
- text_jump UnknownText_0x1ecb55
- db "@"
-
-BTGreetingF6: ; 0x11f5f0
- text_jump UnknownText_0x1ecb70
- db "@"
-
-BTLossF6: ; 0x11f5f5
- text_jump UnknownText_0x1ecb92
- db "@"
-
-BTWinF6: ; 0x11f5fa
- text_jump UnknownText_0x1ecbb6
- db "@"
-
-BTGreetingF7: ; 0x11f5ff
- text_jump UnknownText_0x1ecbd9
- db "@"
-
-BTLossF7: ; 0x11f604
- text_jump UnknownText_0x1ecbf3
- db "@"
-
-BTWinF7: ; 0x11f609
- text_jump UnknownText_0x1ecc15
- db "@"
-
-BTGreetingF8: ; 0x11f60e
- text_jump UnknownText_0x1ecc39
- db "@"
-
-BTLossF8: ; 0x11f613
- text_jump UnknownText_0x1ecc55
- db "@"
-
-BTWinF8: ; 0x11f618
- text_jump UnknownText_0x1ecc75
- db "@"
-
-BTGreetingF9: ; 0x11f61d
- text_jump UnknownText_0x1ecc92
- db "@"
-
-BTLossF9: ; 0x11f622
- text_jump UnknownText_0x1ecca7
- db "@"
-
-BTWinF9: ; 0x11f627
- text_jump UnknownText_0x1eccc1
- db "@"
-
-BTGreetingF10: ; 0x11f62c
- text_jump UnknownText_0x1eccd7
- db "@"
-
-BTLossF10: ; 0x11f631
- text_jump UnknownText_0x1eccef
- db "@"
-
-BTWinF10: ; 0x11f636
- text_jump UnknownText_0x1ecd0e
- db "@"
-
-BTGreetingF11: ; 0x11f63b
- text_jump UnknownText_0x1ecd2b
- db "@"
-
-BTLossF11: ; 0x11f640
- text_jump UnknownText_0x1ecd4d
- db "@"
-
-BTWinF11: ; 0x11f645
- text_jump UnknownText_0x1ecd6b
- db "@"
-
-BTGreetingF12: ; 0x11f64a
- text_jump UnknownText_0x1ecd8d
- db "@"
-
-BTLossF12: ; 0x11f64f
- text_jump UnknownText_0x1ecdaf
- db "@"
-
-BTWinF12: ; 0x11f654
- text_jump UnknownText_0x1ecdcf
- db "@"
-
-BTGreetingF13: ; 0x11f659
- text_jump UnknownText_0x1ecded
- db "@"
-
-BTLossF13: ; 0x11f65e
- text_jump UnknownText_0x1ece0d
- db "@"
-
-BTWinF13: ; 0x11f663
- text_jump UnknownText_0x1ece2a
- db "@"
-
-BTGreetingF14: ; 0x11f668
- text_jump UnknownText_0x1ece4b
- db "@"
-
-BTLossF14: ; 0x11f66d
- text_jump UnknownText_0x1ece70
- db "@"
-
-BTWinF14: ; 0x11f672
- text_jump UnknownText_0x1ece8a
- db "@"
-
-BTGreetingF15: ; 0x11f677
- text_jump UnknownText_0x1ecea8
- db "@"
-
-BTLossF15: ; 0x11f67c
- text_jump UnknownText_0x1ecec9
- db "@"
-
-BTWinF15: ; 0x11f681
- text_jump UnknownText_0x1ecee8
- db "@"
diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm
deleted file mode 100755
index 462e4f75a..000000000
--- a/misc/battle_tower_5c.asm
+++ /dev/null
@@ -1,1772 +0,0 @@
-BattleTowerRoomMenu: ; 1700b0
-; special
- call InitBattleTowerChallengeRAM
- callba _BattleTowerRoomMenu
- ret
-; 1700ba
-
-Function1700ba: ; 1700ba
- call InitBattleTowerChallengeRAM
- callba Function11811a
- ret
-; 1700c4
-
-Function1700c4: ; 1700c4
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-
- call Function17042c
-
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$be45], a
- xor a
- ld [$be46], a
- ld hl, w3_dffc
- ld de, $aa41
- ld bc, 4
- call CopyBytes
- ld hl, w3_d202Name
- ld de, $aa8e
- ld bc, 7 * $cc ; length of battle tower struct from japanese games?
- call CopyBytes
- ld hl, $aa5d ; some sort of count
- ld a, [hl]
- inc [hl]
- inc hl
- sla a
- sla a
- ld e, a
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- ld hl, w3_dffc
- ld bc, 4
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- ret
-; 170114
-
-Function170114: ; 170114
- call InitBattleTowerChallengeRAM
- call .Function170121
- callba Function11805f
- ret
-; 170121
-
-.Function170121: ; 170121
- ld a, $5
- call GetSRAMBank
- ld hl, $a948
- ld de, wMisc
- ld bc, $f6 ; 246
- call CopyBytes
- call CloseSRAM
- call Function170c8b
- ret
-; 170139
-
-Function170139: ; 170139
-; Convert the 4-digit decimal number at 5:aa41 into binary
- ld a, $5
- call GetSRAMBank
- ld de, $aa41
- ld h, $0
- ld l, h
- ld bc, 1000
- call .DecToBin
- ld bc, 100
- call .DecToBin
- ld bc, 10
- call .DecToBin
- ld a, [de]
- ld c, a
- ld b, $0
- add hl, bc
- call CloseSRAM
-; Store that number in wMisc
- ld a, h
- ld [wMisc], a
- ld a, l
- ld [wMisc + 1], a
- ld hl, wBT_OTTempPkmn1DVs
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hli], a
- ld a, [wSecretID]
- ld [hli], a
- ld a, [wSecretID + 1]
- ld [hli], a
- ld e, l
- ld d, h
- ld hl, PlayerName
- ld bc, 5 ; Japanese name length
- call CopyBytes
- ld bc, PlayerID
- ld de, PlayerGender
- callba GetMobileOTTrainerClass
- ld de, wBT_OTTempPkmn1CaughtGender
- ld a, c
- ld [de], a
- inc de
- ld a, PartyMons % $100
- ld [wcd49], a
- ld a, PartyMons / $100
- ld [wcd4a], a
- ld a, PartyMonNicknames % $100
- ld [wcd4b], a
- ld a, PartyMonNicknames / $100
- ld [wcd4c], a
- ld a, 3
-.CopyLoop:
- push af
- ld a, [wcd49]
- ld l, a
- ld a, [wcd4a]
- ld h, a
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- ld a, l
- ld [wcd49], a
- ld a, h
- ld [wcd4a], a
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld bc, $0006
- call CopyBytes
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- pop af
- dec a
- jr nz, .CopyLoop
- ld a, $4
- call GetSRAMBank
- ld hl, $a013
- ld bc, $24
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $a894
- ld bc, 6
- call CopyBytes
- ld hl, wMisc
- ld de, $a948
- ld bc, $f6
- call CopyBytes
- call CloseSRAM
- ret
-; 17020c
-
-.DecToBin: ; 17020c
- ld a, [de]
- inc de
- and a
- ret z
-
-.digit_loop
- add hl, bc
- dec a
- jr nz, .digit_loop
- ret
-; 170215
-
-BattleTowerBattle: ; 170215
- xor a
- ld [wBattleTowerBattleEnded], a
- call _BattleTowerBattle
- ret
-; 17021d
-
-EmptySpecial_17021d: ; 17021d
- ret
-; 17021e
-
-InitBattleTowerChallengeRAM: ; 17021e
- xor a
- ld [wBattleTowerBattleEnded], a
- ld [wNrOfBeatenBattleTowerTrainers], a
- ld [wcf65], a
- ld [wcf66], a
- ret
-; 17022c
-
-_BattleTowerBattle: ; 17022c
-.loop
- call .do_dw
- call DelayFrame
- ld a, [wBattleTowerBattleEnded]
- cp $1
- jr nz, .loop
- ret
-; 17023a
-
-.do_dw ; 17023a
- ld a, [wBattleTowerBattleEnded]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 170249
-
-.dw ; 170249
- dw RunBattleTowerTrainer
- dw SkipBattleTowerTrainer
-; 17024d
-
-RunBattleTowerTrainer: ; 17024d
- ld a, [Options]
- push af
- ld hl, Options
- set BATTLE_SHIFT, [hl] ; SET MODE
-
- ld a, [InBattleTowerBattle]
- push af
- or $1
- ld [InBattleTowerBattle], a
-
- xor a
- ld [wLinkMode], a
- callba TrainerRankings_Healings
- callba HealParty
- call ReadBTTrainerParty
- call Clears5_a89a
-
- predef StartBattle
-
- callba LoadPokemonData
- callba HealParty
- ld a, [wBattleResult]
- ld [ScriptVar], a
- and a
- jr nz, .lost
- ld a, BANK(sNrOfBeatenBattleTowerTrainers)
- call GetSRAMBank
- ld a, [sNrOfBeatenBattleTowerTrainers]
- ld [wNrOfBeatenBattleTowerTrainers], a
- call CloseSRAM
- ld hl, StringBuffer3
- ld a, [wNrOfBeatenBattleTowerTrainers]
- add "1"
- ld [hli], a
- ld a, "@"
- ld [hl], a
-
-.lost
- pop af
- ld [InBattleTowerBattle], a
- pop af
- ld [Options], a
- ld a, $1
- ld [wBattleTowerBattleEnded], a
- ret
-
-
-ReadBTTrainerParty: ; 1702b7
-; Initialise the BattleTower-Trainer and his Pkmn
- call CopyBTTrainer_FromBT_OT_TowBT_OTTemp
-
-; Check the nicknames for illegal characters, and replace bad nicknames
-; with their species names.
- ld de, wBT_OTTempPkmn1Name ; $c643
- ld c, PKMN_NAME_LENGTH
- callba CheckStringForErrors
- jr nc, .skip_mon_1
-
- ld a, [wBT_OTTempPkmn1]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempPkmn1Name ; $c643
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.skip_mon_1
- ld de, wBT_OTTempPkmn2Name ; $c67e
- ld c, PKMN_NAME_LENGTH
- callba CheckStringForErrors
- jr nc, .skip_mon_2
- ld a, [wBT_OTTempPkmn2] ; [$c64e]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempPkmn2Name ; $c67e
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.skip_mon_2
- ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
- ld c, PKMN_NAME_LENGTH
- callba CheckStringForErrors
- jr nc, .skip_mon_3
- ld a, [wBT_OTTempPkmn3] ; [$c689]
- ld [wNamedObjectIndexBuffer], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.skip_mon_3
-; Add the terminator character to each of these names
- ld a, "@"
- ld [wBT_OTTempPkmn1NameEnd - 1], a ; $c64d
- ld [wBT_OTTempPkmn2NameEnd - 1], a ; $c688
- ld [wBT_OTTempPkmn3NameEnd - 1], a ; $c68a + 57 = $c6c3
-; Fix errors in the movesets
- call CheckBTMonMovesForErrors
-; Repair the trainer name if needed, then copy it to OTPlayerName
- ld de, wBT_OTTempName
- ld c, NAME_LENGTH - 1
- callba CheckStringForErrors
- jr nc, .trainer_name_okay
- ld hl, BT_ChrisName
- jr .done_trainer_name
-
-.trainer_name_okay
- ld hl, wBT_OTTempName ; 0xc608
-
-.done_trainer_name
- ld de, OTPlayerName
- ld bc, NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
-
- ld hl, wBT_OTTempTrainerClass
- ld a, [hli]
- ld [OtherTrainerClass], a
- ld a, OTPartyMonNicknames % $100
- ld [BGMapBuffer], a
- ld a, OTPartyMonNicknames / $100
- ld [BGMapBuffer + 1], a
-
- ; Copy Pkmn into Memory from the address in hl
- ld de, OTPartyMon1Species
- ld bc, OTPartyCount
- ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has
- ld [bc], a
- inc bc
-.otpartymon_loop
- push af
- ld a, [hl]
- ld [bc], a
- inc bc
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
- push de
- ld a, [BGMapBuffer]
- ld e, a
- ld a, [BGMapBuffer + 1]
- ld d, a
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ld a, e
- ld [BGMapBuffer], a
- ld a, d
- ld [BGMapBuffer + 1], a
- pop de
- pop bc
- pop af
- dec a
- and a
- jr nz, .otpartymon_loop
- ld a, -1
- ld [bc], a
- ret
-; 170394
-
-ValidateBTParty: ; 170394
-; Check for and fix errors in party data
- ld hl, wBT_OTTempPkmn1Species
- ld d, BATTLETOWER_NROFPKMNS
-.pkmn_loop
- push de
- push hl
- ld b, h
- ld c, l
- ld a, [hl]
- and a
-idx = $ff
-rept ($ff +- NUM_POKEMON)
- jr z, .invalid
- cp idx
-idx = idx +- 1
-endr
- jr nz, .valid
-
-.invalid
- ld a, SMEARGLE
- ld [hl], a
-
-.valid
- ld [CurSpecies], a
- call GetBaseData
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb] ; s5_b2fb ; max level?
- call CloseSRAM
- ld e, a
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .load
- ld a, [hl]
- cp e
- jr c, .dont_load
- ld a, e
-
-.load
- ld [hl], a
-
-.dont_load
- ld [CurPartyLevel], a
- ld hl, MON_MOVES
- add hl, bc
- ld d, NUM_MOVES - 1
- ld a, [hli]
- and a
- jr z, .not_move
- cp NUM_ATTACKS + 1
- jr nc, .not_move
- jr .valid_move
-
-.not_move
- dec hl
- ld a, POUND
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hl], a
- jr .done_moves
-
-.valid_move
- ld a, [hl]
- cp NUM_ATTACKS + 1
- jr c, .next
- ld [hl], $0
-
-.next
- inc hl
- dec d
- jr nz, .valid_move
-
-.done_moves
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- push hl
- push de
- ld hl, MON_STAT_EXP - 1
- add hl, bc
- ld b, $1
- predef CalcPkmnStats
- pop de
- pop hl
- dec de
- dec de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- pop hl
- ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
- add hl, bc
- pop de
- dec d
- jp nz, .pkmn_loop
- ret
-; 170426
-
-BT_ChrisName: ; 170426
- db "CHRIS@"
-; 17042c
-
-Function17042c: ; 17042c
- ld hl, w3_d202TrainerData
- ld a, BATTLETOWER_NROFTRAINERS
-.loop
- push af
- push hl
- ld c, BATTLETOWER_TRAINERDATALENGTH / 2
-.loop2
- ; First byte is a comparison value.
- ld a, [hli]
- ld b, a
- ; Second byte is a lookup index.
- ld a, [hli]
- and a
- jr z, .empty
- cp 15
- jr nc, .copy_data
-
- push hl
- ld hl, Unknown_170470
- dec a
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- pop hl
-
- ; If Unknown_170470[a-1] <= b, overwrite the current trainer's data
- ; with Unknown17047e, and exit the inner loop.
- cp b
- jr c, .copy_data
- jr z, .copy_data
- jr .next_iteration
-
-.empty
- ; If a == 0 and b >= $fc, overwrite the current trainer's data with
- ; Unknown17047e, and exit the inner loop.
- ld a, b
- cp $fc
- jr nc, .copy_data
-
-.next_iteration
- dec c
- jr nz, .loop2
- jr .next_trainer
-
-.copy_data
- pop de
- push de
- ld hl, Unknown_17047e
- ld bc, BATTLETOWER_TRAINERDATALENGTH
- call CopyBytes
-
-.next_trainer
- pop hl
- ld de, BATTLE_TOWER_STRUCT_LENGTH
- add hl, de
- pop af
- dec a
- jr nz, .loop
- ret
-; 170470
-
-Unknown_170470:
- db $12
- db $24
- db $45
- db $45
- db $42
- db $42
- db $45
- db $42
- db $27
- db $27
- db $45
- db $27
- db $42
- db $24
-
-Unknown_17047e:
-; see data/battle_tower_2.asm
- db $03, 4
- db $05, 8
- db $03, 5
- db $0e, 6
- db $03, 2
- db $00, 0
- db $39, 7
- db $07, 4
- db $00, 5
- db $04, 7
- db $01, 5
- db $00, 0
- db $0f, 5
- db $14, 7
- db $05, 5
- db $11, 12
- db $0c, 6
- db $06, 4
-
-
-CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
-; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp'
- ld a, [rSVBK]
- push af
- ld a, $3 ; BANK(BT_OTTrainer)
- ld [rSVBK], a
-
- ld hl, BT_OTTrainer ; $d100
- ld de, wBT_OTTemp ; wMisc
- ld bc, BATTLE_TOWER_STRUCT_LENGTH
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_CHALLENGE_IN_PROGESS
- ld [sBattleTowerChallengeState], a
- ld hl, sNrOfBeatenBattleTowerTrainers
- inc [hl]
- call CloseSRAM
-SkipBattleTowerTrainer: ; 1704c9
- ret
-; 1704ca
-
-Function1704ca: ; 1704ca
-; unreferenced mobile function
- ld a, [$be46]
- cp $7
- jr c, .asm_1704d3
- ld a, $6
-
-.asm_1704d3
- ld hl, $afce
- ld de, -$e0
-.asm_1704d9
- and a
- jr z, .asm_1704e0
- add hl, de
- dec a
- jr .asm_1704d9
-
-.asm_1704e0
- ret
-; 1704e1
-
-Function1704e1: ; 1704e1
-; unreferenced special
- call SpeechTextBox
- call FadeToMenu
- call InitBattleTowerChallengeRAM
- call .JumptableLoop
- call CloseSubmenu
- ret
-; 1704f1
-
-.JumptableLoop: ; 1704f1
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
-.loop
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .done
- call .DoJumptable
- callba ReloadMapPart
- jr .loop
-
-.done
- ret
-; 170510
-
-.DoJumptable: ; 170510
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 17051f
-
-.dw ; 17051f
- dw .Jumptable_0
- dw .Jumptable_1
- dw .Jumptable_2
-; 170525
-
-.Jumptable_0: ; 170525
- ld a, $5
- call GetSRAMBank
-
- ld hl, $a89c
- ld de, StringBuffer3
- ld bc, $16
- call CopyBytes
-
- ld hl, $a8b2
- ld de, wMisc
- ld bc, $0096
- call CopyBytes
-
- call CloseSRAM
- hlcoord 1, 1
- ld de, StringBuffer3
- call PlaceString
- hlcoord 1, 3
- ld de, .String_Mail
- call PlaceString
- hlcoord 4, 3
- ld de, StringBuffer4
- call PlaceString
- hlcoord 8, 3
- ld de, .String_PastReaders
- call PlaceString
- call .DrawBorder
- call .PlaceTextItems
- jr .NextJumptableFunction
-
-
-.Jumptable_1:
- call SetPalettes
- call .NextJumptableFunction
-
-
-.Jumptable_2:
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressed_a_or_b
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressed_a_or_b
- ld a, [hl]
- and D_UP
- jr nz, .pressed_up
- ld a, [hl]
- and D_DOWN
- jr nz, .pressed_down
- ret
-
-.pressed_up
- ld a, [wNrOfBeatenBattleTowerTrainers]
- and a
- ret z
- sub 15
- ld [wNrOfBeatenBattleTowerTrainers], a
- call .PlaceTextItems
- ret
-
-.pressed_down
- ld a, [wNrOfBeatenBattleTowerTrainers]
- cp 60
- ret z
- add 15
- ld [wNrOfBeatenBattleTowerTrainers], a
- call .PlaceTextItems
- ret
-
-.pressed_a_or_b
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.NextJumptableFunction:
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 1705b7
-
-.DrawBorder: ; 1705b7
- hlcoord 0, 4
- ld a, $79
- ld [hli], a
- ld c, SCREEN_WIDTH - 2
-.top_border_loop
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .top_border_loop
- ld a, $7b
- ld [hli], a
- ld de, SCREEN_WIDTH
- ld c, 12
-.left_border_loop
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .left_border_loop
- ld a, $7d
- ld [hli], a
- ld c, SCREEN_WIDTH - 2
-.bottom_border_loop
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .bottom_border_loop
- ld a, $7e
- ld [hl], a
- ld de, -SCREEN_WIDTH
- add hl, de
- ld c, 12
-.right_border_loop
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .right_border_loop
- ret
-; 1705f0
-
-.PlaceTextItems: ; 1705f0
- call .ClearBox
- call .PlaceUpDownArrows
- ld a, $50
- ld [wcd4e], a
- ld hl, wMisc
- ld a, [wNrOfBeatenBattleTowerTrainers]
- ld c, a
- xor a
- ld b, a
- add hl, bc
- push hl
- pop bc
- hlcoord 1, 6
- ld a, 6
-.loop1
- push af
- push hl
- ld a, 3
-.loop2
- push af
- ld de, wcd49
- ld a, [bc]
- and a
- jr z, .fill_with_e3
-; .copy
- ld a, 5
-.loop3a
- push af
- ld a, [bc]
- ld [de], a
- inc bc
- inc de
- pop af
- dec a
- jr nz, .loop3a
- jr .rejoin
-
-.fill_with_e3
- ld a, 5
-.loop3b
- push af
- ld a, $e3
- ld [de], a
- inc de
- inc bc
- pop af
- dec a
- jr nz, .loop3b
-
-.rejoin
- ld de, wcd49
- push bc
- call PlaceString
- ld de, 6
- add hl, de
- pop bc
- pop af
- dec a
- jr nz, .loop2
- pop hl
- ld de, $28
- add hl, de
- pop af
- dec a
- jr nz, .loop1
- ret
-; 17064b
-
-.ClearBox: ; 17064b
- hlcoord 1, 5
- xor a
- ld b, 12
-.clearbox_row
- ld c, SCREEN_WIDTH - 2
-.clearbox_column
- ld [hli], a
- dec c
- jr nz, .clearbox_column
- inc hl
- inc hl
- dec b
- jr nz, .clearbox_row
- ret
-; 17065d
-
-.PlaceUpDownArrows: ; 17065d
- ld a, [wNrOfBeatenBattleTowerTrainers]
- and a
- jr z, .nope
- hlcoord 18, 5
- ld a, "▲"
- ld [hl], a
-
-.nope
- ld a, [wNrOfBeatenBattleTowerTrainers]
- cp 60
- ret z
- hlcoord 18, 16
- ld a, "▼"
- ld [hl], a
- ret
-; 170676
-
-.String_Mail: ; 170676
- db "ルーム@"
-; 17067a
-
-.String_PastReaders: ; 17067a
- db "れきだいりーダーいちらん@"
-; 170687
-
-BattleTowerAction: ; 170687
- ld a, [ScriptVar]
- ld e, a
- ld d, 0
- ld hl, .dw
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 170696
-
-
-.dw ; 170696 (5c:4696)
- dw BattleTowerAction_CheckExplanationRead ; 0x00
- dw BattleTowerAction_SetExplanationRead ; 0x01
- dw BattleTowerAction_GetChallengeState ; 0x02
- dw BattleTowerAction_SetByteToQuickSaveChallenge ; 0x03
- dw BattleTowerAction_SetByteToCancelChallenge ; 0x04
- dw Function1707ac ; 0x05
- dw Function1707f4 ; 0x06
- dw SaveBattleTowerLevelGroup ; 0x07
- dw LoadBattleTowerLevelGroup ; 0x08
- dw BattleTower_CheckSaveFileExistsAndIsYours ; 0x09
- dw Function1708b1 ; 0x0a
- dw CheckMobileEventIndex ; 0x0b
- dw Function1708c8 ; 0x0c
- dw Function1708f0 ; 0x0d
- dw BattleTowerAction_EggTicket ; 0x0e
- dw Function1709aa ; 0x0f
- dw Function1709bb ; 0x10
- dw Function170a9c ; 0x11
- dw Function170aa0 ; 0x12
- dw Function170aaf ; 0x13
- dw Function170abe ; 0x14
- dw Function170ad7 ; 0x15
- dw Function170807 ; 0x16
- dw Function17081d ; 0x17
- dw BattleTowerAction_LevelCheck ; 0x18
- dw BattleTowerAction_UbersCheck ; 0x19
- dw ResetBattleTowerTrainersSRAM ; 0x1a
- dw BattleTower_GiveReward ; 0x1b
- dw Function17071b ; 0x1c
- dw Function170729 ; 0x1d
- dw BattleTower_RandomlyChooseReward ; 0x1e
- dw BattleTower_SaveOptions ; 0x1f
-
-
-; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
-ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
- ld a, BANK(sBTTrainers)
- call GetSRAMBank
-
- ld a, $ff
- ld hl, sBTTrainers
- ld bc, BATTLETOWER_NROFTRAINERS
- call ByteFill
-
- xor a
- ld [sNrOfBeatenBattleTowerTrainers], a
-
- call CloseSRAM
-
- ret
-
-BattleTower_GiveReward: ; 1706ee (5c:46ee) BattleTowerAction $1b
- ld a, BANK(sBattleTowerReward)
- call GetSRAMBank
-
- ld a, [sBattleTowerReward]
- call CloseSRAM
- ld [ScriptVar], a
- ld hl, NumItems
- ld a, [hli]
- cp MAX_ITEMS
- ret c
- ld b, MAX_ITEMS
- ld a, [ScriptVar]
- ld c, a
-.loop
- ld a, [hli]
- cp c
- jr nz, .next
- ld a, [hl]
- cp 95
- ret c
-.next
- inc hl
- dec b
- jr nz, .loop
- ld a, POTION
- ld [ScriptVar], a
- ret
-
-Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_WON_CHALLENGE
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, BATTLETOWER_RECEIVED_REWARD
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-BattleTower_SaveOptions: ; 170737 (5c:4737) BattleTowerAction $1f
- callba SaveOptions
- ret
-
-BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1e
-; Generate a random stat boosting item.
-.loop
- call Random
- ld a, [hRandomAdd]
- and $7
- cp 6
- jr c, .okay
- sub 6
-.okay
- add HP_UP
- cp LUCKY_PUNCH
- jr z, .loop
- push af
- ld a, BANK(sBattleTowerReward)
- call GetSRAMBank
- pop af
- ld [sBattleTowerReward], a
- call CloseSRAM
- ret
-
-BattleTowerAction_CheckExplanationRead: ; 17075f (5c:475f) BattleTowerAction $00
- call BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
-
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- and $2
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-BattleTowerAction_GetChallengeState: ; 170778 (5c:4778) BattleTowerAction $02
- ld hl, sBattleTowerChallengeState
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, [hl]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-BattleTowerAction_SetExplanationRead: ; 170788 (5c:4788) BattleTowerAction $01
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- or $2
- ld [s1_be4f], a
- call CloseSRAM
- ret
-
-BattleTowerAction_SetByteToQuickSaveChallenge: ; 170799 (5c:4799) BattleTowerAction $03
- ld c, BATTLETOWER_SAVED_AND_LEFT
- jr asm_17079f
-
-BattleTowerAction_SetByteToCancelChallenge: ; 17079d (5c:479d) BattleTowerAction $04
- ld c, BATTLETOWER_NO_CHALLENGE
-asm_17079f: ; 17079f (5c:479f)
- ld a, BANK(sBattleTowerChallengeState)
- call GetSRAMBank
- ld a, c
- ld [sBattleTowerChallengeState], a
- call CloseSRAM
- ret
-
-Function1707ac: ; 1707ac (5c:47ac) BattleTowerAction $05
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8c]
- ld b, a
- ld a, [$be46]
- ld [ScriptVar], a
- call CloseSRAM
- and a
- ret z
- ld a, b
- cp $2
- jr nc, .asm_1707ef
- push bc
- call UpdateTime
- pop bc
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8b]
- call CloseSRAM
- ld c, a
- ld a, [CurDay]
- sub c
- jr c, .asm_1707e5
- cp $8
- jr nc, .asm_1707ef
- ld a, b
- and a
- jr nz, .asm_1707ef
- ret
-.asm_1707e5
- ld hl, CurDay
- ld a, $8c
- sub c
- add [hl]
- cp $8
- ret c
-.asm_1707ef
- ld a, $8
- ld [ScriptVar], a
-
-Function1707f4: ; 1707f4 (5c:47f4) BattleTowerAction $06
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$be46], a
- ld [$aa8b], a
- ld [$aa8c], a
- call CloseSRAM
- ret
-
-Function170807: ; 170807 (5c:4807) BattleTowerAction $16
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$b2f9], a
- xor a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$b2f9]
- ld c, a
- ld a, [$b2fa]
- ld b, a
- call CloseSRAM
- cp $2
- jr nc, .asm_170853
- push bc
- call UpdateTime
- pop bc
- ld a, [CurDay]
- sub c
- jr c, .asm_170849
- cp $b
- jr nc, .asm_170853
- ld a, b
- and a
- jr nz, .asm_170853
- ret
-
-.asm_170849
- ld hl, CurDay
- ld a, 140
- sub c
- add [hl]
- cp $b
- ret c
-.asm_170853
- ld a, $1
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$b2f9], a
- ld [$b2fa], a
- call CloseSRAM
- ret
-
-SaveBattleTowerLevelGroup: ; 170868 (5c:4868) BattleTowerAction $07
- ld a, BANK(sBTChoiceOfLevelGroup)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [wBTChoiceOfLvlGroup]
- ld [sBTChoiceOfLevelGroup], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-LoadBattleTowerLevelGroup: ; 170881 (5c:4881) BattleTowerAction $08 ; Load level group choice
- ld a, BANK(sBTChoiceOfLevelGroup)
- call GetSRAMBank
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [sBTChoiceOfLevelGroup]
- ld [wBTChoiceOfLvlGroup], a
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-BattleTower_CheckSaveFileExistsAndIsYours: ; 17089a BattleTowerAction $09
- ld a, [wSaveFileExists]
- and a
- jr z, .nope
- callba CompareLoadedAndSavedPlayerID
- jr z, .yes
- xor a
- jr .nope
-
-.yes
- ld a, $1
-
-.nope
- ld [ScriptVar], a
- ret
-; 1708b1
-
-
-Function1708b1: ; 1708b1 (5c:48b1) BattleTowerAction $0a
- xor a
- ld [MusicFade], a
- call MaxVolume
- ret
-
-CheckMobileEventIndex: ; 1708b9 (5c:48b9) BattleTowerAction $0b something to do with GS Ball
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- ld a, [sMobileEventIndex]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function1708c8: ; 1708c8 (5c:48c8) BattleTowerAction $0c
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [CurDay]
- ld [$aa8b], a
- xor a
- ld [$aa8c], a
- ld a, [$aa5d]
- cp $2
- jr nc, .asm_1708ec
- ld a, [CurDay]
- ld [$aa48], a
- ld a, $1
- ld [$aa47], a
-.asm_1708ec
- call CloseSRAM
- ret
-
-Function1708f0: ; 1708f0 (5c:48f0) BattleTowerAction $0d
- xor a
- ld [ScriptVar], a
- call UpdateTime
- ld a, $5
- call GetSRAMBank
- ld a, [$aa48]
- ld c, a
- ld a, [$aa47]
- call CloseSRAM
- and a
- ret z
- ld hl, CurDay
- ld a, c
- cp [hl]
- jr nz, Function170923
- ld a, $5
- call GetSRAMBank
- ld a, [$aa5d]
- call CloseSRAM
- cp $5
- ret c
- ld a, $1
- ld [ScriptVar], a
- ret
-
-
-Function170923: ; 170923
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$aa48], a
- ld [$aa47], a
- ld hl, $aa5d
- ld bc, $0011
- call ByteFill
- call CloseSRAM
- ret
-; 17093c
-
-
-BattleTowerAction_EggTicket: ; 17093c (5c:493c) BattleTowerAction $0e
- xor a
- ld [ScriptVar], a
- ld a, EGG_TICKET
- ld [CurItem], a
- ld hl, NumItems
- call CheckItem
- ret nc
- ld a, [PartyCount]
- ld b, 0
- ld c, a
- ld hl, PartySpecies
-.loop
- ld a, [hli]
- cp EGG
- jr nz, .not_egg
- push hl
- ld hl, PartyMonOT
- ld de, $6 ; NAME_LENGTH
- ld a, b
- and a
- jr z, .skip
-.loop2
- add hl, de
- dec a
- jr nz, .loop2
-.skip
- ld de, String_1709a4
- ld a, $6 ; NAME_LENGTH
-.compare_loop
- push af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .different
- pop af
- dec a
- jr nz, .compare_loop
-rept 4
- dec hl
-endr
- ld a, "@"
- ld [hli], a
- ld [hli], a
- pop hl
- ld a, EGG_TICKET
- ld [CurItem], a
- ld a, 1
- ld [wItemQuantityChangeBuffer], a
- ld a, -1
- ld [CurItemQuantity], a
- ld hl, NumItems
- call TossItem
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.different
- pop af
- pop hl
-.not_egg
- inc b
- dec c
- jr nz, .loop
- ret
-; 1709a4 (5c:49a4)
-
-String_1709a4: ; 1709a4
- db "なぞナゾ@@"
-
-Function1709aa: ; 1709aa (5c:49aa) BattleTowerAction $0f
- ld a, [rSVBK]
- push af
- ld a, BANK(w3_d090)
- ld [rSVBK], a
- ld a, [w3_d090]
- ld [ScriptVar], a
- pop af
- ld [rSVBK], a
- ret
-
-Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- call CloseSRAM
- cp 6
- jr nc, .invalid
- ld e, a
- ld d, 0
- ld hl, Jumptable_1709e7
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.invalid
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ret
-; 1709e7 (5c:49e7)
-
-Jumptable_1709e7: ; 1709e7
- dw .NoAction
- dw .NoAction
- dw .DoAction1
- dw .DoAction1
- dw .Action4
- dw .Action5
-; 1709f3
-
-.DoAction1: ; 1709f3
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
-
-.NoAction: ; 170a00
- ret
-; 170a01
-
-.Action4: ; 170a01
- ld a, $5
- call GetSRAMBank
- ld hl, $b023
- ld de, wMisc
- ld bc, $0069
- call CopyBytes
- ld a, [$a825]
- ld [wcd30], a
- ld a, [$a826]
- ld [wcd31], a
- call CloseSRAM
- callba Function11b6b4
- callba Function17d0f3
- ld a, $1
- ld [ScriptVar], a
- ret
-; 170a33
-
-.Action5: ; 170a33
- ld a, $0
- call GetSRAMBank
- ld hl, wRTC
- ld de, wMisc
- ld bc, $0004
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $b08c
- ld de, wMisc
- ld c, $4
-.compare_loop
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .different
- inc hl
- dec c
- jr nz, .compare_loop
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .no_trigger
- ld a, [de]
- and a
- ret nz
-
-.no_trigger
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.different
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ld [ScriptVar], a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .no_trigger_2
- xor a
- ld [de], a
-
-.no_trigger_2
- ret
-; 170a9c
-
-Function170a9c: ; 170a9c (5c:4a9c) BattleTowerAction $11
- ld c, $0
- jr asm_170aa2
-
-Function170aa0: ; 170aa0 (5c:4aa0) BattleTowerAction $12
- ld c, $1
-asm_170aa2: ; 170aa2 (5c:4aa2)
- ld a, $5
- call GetSRAMBank
- ld a, c
- ld [$aa8d], a
- call CloseSRAM
- ret
-
-Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
- call BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
-
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- and $1
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
- ld a, BANK(s1_be4f)
- call GetSRAMBank
- ld a, [s1_be4f]
- or $1
- ld [s1_be4f], a
- call CloseSRAM
- ret
-
-BattleTowerAction_LevelCheck: ; 170ae8 (5c:4ae8) BattleTowerAction $18
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, 10
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba BattleTower_LevelCheck ; level check
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-BattleTowerAction_UbersCheck: ; 170b16 (5c:4b16) BattleTowerAction $19
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, 10
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba BattleTower_UbersCheck
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
- callba Function_LoadOpponentTrainerAndPokemons
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld hl, BT_OTTrainerClass
- ld a, [hl]
- dec a
- ld c, a
- ld b, $0
- pop af
- ld [rSVBK], a
- ld hl, .Sprites
- add hl, bc
- ld a, [hl]
- ld [wBTTempOTSprite], a
-
-; Load sprite of the opponent trainer
-; because s/he is chosen randomly and appears out of nowhere
- ld a, [ScriptVar]
- dec a
- sla a
- ld e, a
- sla a
- sla a
- sla a
- ld c, a
- ld b, 0
- ld d, 0
- ld hl, MapObjects
- add hl, bc
- inc hl
- ld a, [wBTTempOTSprite]
- ld [hl], a
- ld hl, UsedSprites
- add hl, de
- ld [hli], a
- ld [hUsedSpriteIndex], a
- ld a, [hl]
- ld [hUsedSpriteTile], a
- callba GetUsedSprite
- ret
-; 170b90
-
-.Sprites:
- db SPRITE_FALKNER
- db SPRITE_WHITNEY
- db SPRITE_BUGSY
- db SPRITE_MORTY
- db SPRITE_PRYCE
- db SPRITE_JASMINE
- db SPRITE_CHUCK
- db SPRITE_CLAIR
- db SPRITE_SILVER
- db SPRITE_OAK
- db SPRITE_WILL
- db SPRITE_CHRIS
- db SPRITE_BRUNO
- db SPRITE_KAREN
- db SPRITE_KOGA
- db SPRITE_LANCE
- db SPRITE_BROCK
- db SPRITE_MISTY
- db SPRITE_SURGE
- db SPRITE_SCIENTIST
- db SPRITE_ERIKA
- db SPRITE_YOUNGSTER
- db SPRITE_YOUNGSTER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_JANINE
- db SPRITE_COOLTRAINER_M
- db SPRITE_COOLTRAINER_F
- db SPRITE_BUENA
- db SPRITE_SUPER_NERD
- db SPRITE_ROCKET
- db SPRITE_GENTLEMAN
- db SPRITE_BUENA
- db SPRITE_TEACHER
- db SPRITE_SABRINA
- db SPRITE_BUG_CATCHER
- db SPRITE_FISHER
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_SAILOR
- db SPRITE_SUPER_NERD
- db SPRITE_BLUE
- db SPRITE_ROCKER
- db SPRITE_POKEFAN_M
- db SPRITE_BIKER
- db SPRITE_BLAINE
- db SPRITE_PHARMACIST
- db SPRITE_FISHER
- db SPRITE_SUPER_NERD
- db SPRITE_BLACK_BELT
- db SPRITE_ROCKET
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_YOUNGSTER
- db SPRITE_ROCKET_GIRL
- db SPRITE_SAGE
- db SPRITE_GRANNY
- db SPRITE_ROCKER
- db SPRITE_POKEFAN_M
- db SPRITE_KIMONO_GIRL
- db SPRITE_TWIN
- db SPRITE_POKEFAN_F
- db SPRITE_RED
- db SPRITE_BLUE
- db SPRITE_OFFICER
- db SPRITE_ROCKET_GIRL
-
-ret_170bd2: ; 170bd2
- ret
-; 170bd3
-
-SpecialCheckForBattleTowerRules: ; 170bd3
- callba CheckForBattleTowerRules
- jr c, .asm_170bde
- xor a
- jr .asm_170be0
-
-.asm_170bde
- ld a, $1
-
-.asm_170be0
- ld [ScriptVar], a
- ret
-; 170be4
diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm
deleted file mode 100644
index aa5c704fd..000000000
--- a/misc/crystal_misc.asm
+++ /dev/null
@@ -1,931 +0,0 @@
-INCLUDE "includes.asm"
-
-
-SECTION "Misc Crystal", ROMX
-
-MobileAdapterGFX::
-INCBIN "gfx/mobile/mobile_adapter.2bpp"
-
-
-Function17a68f:: ; 17a68f (5e:668f)
- call Function17a6a8
- call Function17a751
- ld hl, $d088
- bit 5, [hl]
- jr z, .asm_17a6a6
- ld de, StringBuffer1 ; $d073
- push de
- call Function17a721
- pop de
- xor a
- ret
-
-.asm_17a6a6
- scf
- ret
-
-Function17a6a8: ; 17a6a8 (5e:66a8)
- push de
- push bc
- ld hl, StringBuffer2 ; $d086
- ld bc, $a
- xor a
- call ByteFill
- ld hl, Buffer1
- ld bc, $10
- ld a, $ff
- call ByteFill
- pop bc
- ld a, c
- and a
- jr z, .asm_17a6c9
- ld hl, $d088
- set 4, [hl]
-.asm_17a6c9
- pop de
- call Function17a6f5
- call Function17aba0
- callba Function106464
- call Function17ac0c
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- call Function17abcf
- callba LoadOW_BGPal7
- callba Function49420
- call SetPalettes
- call DelayFrame
- ret
-
-Function17a6f5: ; 17a6f5 (5e:66f5)
- ld hl, Buffer1
- ld c, $0
- ld b, $8
-.asm_17a6fc
- ld a, [de]
- call Function17a713
- jr c, .asm_17a70e
- ld a, [de]
- swap a
- call Function17a713
- jr c, .asm_17a70e
- inc de
- dec b
- jr nz, .asm_17a6fc
-.asm_17a70e
- ld a, c
- ld [$d08c], a
- ret
-
-Function17a713: ; 17a713 (5e:6713)
- and $f
- cp $a
- jr nc, .asm_17a71d
- ld [hli], a
- inc c
- and a
- ret
-
-.asm_17a71d
- ld [hl], $ff
- scf
- ret
-
-Function17a721: ; 17a721 (5e:6721)
- push de
- ld h, d
- ld l, e
- ld bc, $8
- ld a, $ff
- call ByteFill
- pop de
- ld hl, Buffer1
- ld b, $8
-.asm_17a732
- ld c, $0
- ld a, [hli]
- cp $a
- jr nc, .asm_17a748
- ld c, a
- ld a, [hli]
- cp $a
- jr nc, .asm_17a74c
- swap a
- or c
- ld [de], a
- inc de
- dec b
- jr nz, .asm_17a732
- ret
-
-.asm_17a748
- ld a, $ff
- ld [de], a
- ret
-
-.asm_17a74c
- ld a, $f0
- or c
- ld [de], a
- ret
-
-Function17a751: ; 17a751 (5e:6751)
- xor a
- ld [$d087], a
-.asm_17a755
- call Function17a781
- call Function17a7ae
- call Function17a97b
- call Function17a770
- call Function17a78f
- ld hl, $d08f
- inc [hl]
- ld a, [$d087]
- bit 7, a
- jr z, .asm_17a755
- ret
-
-Function17a770: ; 17a770 (5e:6770)
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call HideSprites
- call Function17a9cb
- pop af
- ld [hOAMUpdate], a
- ret
-
-Function17a781: ; 17a781 (5e:6781)
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call JoyTextDelay
- pop af
- ld [hInMenu], a
- ret
-
-Function17a78f: ; 17a78f (5e:678f)
- ld hl, $d088
- bit 7, [hl]
- res 7, [hl]
- jr nz, .asm_17a79f
- callba HDMATransferTileMapToWRAMBank3
- ret
-
-.asm_17a79f
- callba ReloadMapPart
- ret
-; 17a7a6 (5e:67a6)
-
-Function17a7a6: ; 17a7a6
- ld a, [$d087]
- inc a
- ld [$d087], a
- ret
-
-Function17a7ae: ; 17a7ae (5e:67ae)
- ld a, [$d087]
- ld hl, Jumptable_17a7b6
- rst JumpTable
- ret
-
-Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
- dw Function17a7c2
- dw Function17a7cd
- dw Function17a7d8
- dw Function17a7ff
- dw Function17a81a
- dw Function17a7f4
-
-
-Function17a7c2: ; 17a7c2 (5e:67c2)
- ld a, $4
- call Function17aad3
- ld a, $1
- ld [$d087], a
- ret
-
-Function17a7cd: ; 17a7cd (5e:67cd)
- call Function17a83c
- call Function17a8ae
- ret c
- call Function17a848
- ret
-
-Function17a7d8: ; 17a7d8 (5e:67d8)
- call Function17a83c
- call Function17a848
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-Function17a7f4: ; 17a7f4 (5e:67f4)
- ld hl, $d08b
- dec [hl]
- ret nz
- ld hl, $d087
- set 7, [hl]
- ret
-
-Function17a7ff: ; 17a7ff (5e:67ff)
- ld hl, $d08b
- dec [hl]
- ret nz
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 5, [hl]
- ld hl, $d087
- set 7, [hl]
- ret
-
-Function17a81a: ; 17a81a (5e:681a)
- call IsSFXPlaying
- ret nc
- ld a, [hJoyPressed]
- and $3
- ret z
- call ExitMenu
- call Function17ac1d
- call Function17ac2a
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- res 6, [hl]
- ld a, $1
- ld [$d087], a
- ret
-
-Function17a83c: ; 17a83c (5e:683c)
- ld a, [hJoyLast]
- and $f0
- ld c, a
- ld a, [hJoyPressed]
- and $b
- or c
- ld c, a
- ret
-
-Function17a848: ; 17a848 (5e:6848)
- ld a, c
- and $60
- cp $60
- jr z, .asm_17a876
- ld a, c
- and $50
- cp $50
- jr z, .asm_17a87d
- ld a, c
- and $a0
- cp $a0
- jr z, .asm_17a884
- ld a, c
- and $90
- cp $90
- jr z, .asm_17a88b
- bit 6, c
- jr nz, .asm_17a892
- bit 7, c
- jr nz, .asm_17a899
- bit 5, c
- jr nz, .asm_17a8a0
- bit 4, c
- jr nz, .asm_17a8a7
- xor a
- ret
-
-.asm_17a876
- ld a, $9
- call Function17aad0
- scf
- ret
-
-.asm_17a87d
- ld a, $a
- call Function17aad0
- scf
- ret
-
-.asm_17a884
- ld a, $b
- call Function17aad0
- scf
- ret
-
-.asm_17a88b
- ld a, $c
- call Function17aad0
- scf
- ret
-
-.asm_17a892
- ld a, $5
- call Function17aad0
- scf
- ret
-
-.asm_17a899
- ld a, $6
- call Function17aad0
- scf
- ret
-
-.asm_17a8a0
- ld a, $7
- call Function17aad0
- scf
- ret
-
-.asm_17a8a7
- ld a, $8
- call Function17aad0
- scf
- ret
-
-Function17a8ae: ; 17a8ae (5e:68ae)
- bit 1, c
- jr nz, .asm_17a8bc
- bit 0, c
- jr nz, .asm_17a8cc
- bit 3, c
- jr nz, .asm_17a8d7
- xor a
- ret
-
-.asm_17a8bc
- ld a, $b
- ld [$d08a], a
- call Function17aa98
- call Function17a943
- call Function17aa88
- scf
- ret
-
-.asm_17a8cc
- call Function17aad7
- call Function17aa98
- call Function17a8de
- scf
- ret
-
-.asm_17a8d7
- ld a, $c
- call Function17aad3
- scf
- ret
-
-Function17a8de: ; 17a8de (5e:68de)
- ld a, $2
- call Function17aae0
- ld a, [hl]
- cp $f1
- jr z, .asm_17a8fd
- cp $f0
- jr z, .asm_17a904
- cp $f2
- jr z, .asm_17a911
- ld e, a
- call Function17a964
- ld a, $2
- ld [$d087], a
- call Function17aa88
- ret
-
-.asm_17a8fd
- call Function17a943
- call Function17aa88
- ret
-
-.asm_17a904
- call Function17aad7
- call Function17aa98
- call Function17a91e
- call Function17aa88
- ret
-
-.asm_17a911
- call Function17aa98
- ld a, $5
- ld [$d087], a
- xor a
- call Function17aa88
- ret
-
-Function17a91e: ; 17a91e (5e:691e)
- ld a, [$d08c]
- cp $7
- jr c, .asm_17a92c
- ld a, $3
- ld [$d087], a
- xor a
- ret
-
-.asm_17a92c
- call LoadStandardMenuDataHeader
- call Function17a99e
- ld hl, $d088
- set 7, [hl]
- ld hl, $d088
- set 6, [hl]
- ld a, $4
- ld [$d087], a
- scf
- ret
-
-Function17a943: ; 17a943 (5e:6943)
- ld a, [$d08c]
- and a
- jr z, .asm_17a95d
- dec a
- ld [$d08c], a
- ld c, a
- ld b, $0
- ld hl, Buffer1
- add hl, bc
- ld [hl], $ff
- ld a, $2
- ld [$d087], a
- and a
- ret
-
-.asm_17a95d
- ld a, $5
- ld [$d087], a
- xor a
- ret
-
-Function17a964: ; 17a964 (5e:6964)
- ld a, [$d08c]
- cp $10
- jr nc, .asm_17a979
- ld c, a
- ld b, $0
- inc a
- ld [$d08c], a
- ld hl, Buffer1
- add hl, bc
- ld [hl], e
- and a
- ret
-
-.asm_17a979
- scf
- ret
-
-Function17a97b: ; 17a97b (5e:697b)
- hlcoord 1, 1
- lb bc, 2, 18
- call ClearBox
- hlcoord 3, 2
- ld de, Buffer1
- ld a, [$d08c]
- and a
- ret z
- ld c, a
-.asm_17a990
- ld a, [de]
- inc de
- cp $a
- jr nc, .asm_17a99d
- add $f6
- ld [hli], a
- dec c
- jr nz, .asm_17a990
- ret
-
-.asm_17a99d
- ret
-
-Function17a99e: ; 17a99e (5e:699e)
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function17ac46
- hlcoord 2, 14
- ld de, String_17a9b2
- call PlaceString
- ret
-; 17a9b2 (5e:69b2)
-
-String_17a9b2: ; 17a9b2
- db "でんわばんごうが ただしく"
- next "はいって いません!"
- db "@"
-; 17a9cb
-
-Function17a9cb: ; 17a9cb (5e:69cb)
- ld de, Sprites ; $c400
- ld hl, $d088
- bit 6, [hl]
- jr nz, .bit_6_set
- call Function17a9e3
- call Function17aa22
- call Function17a9f5
- ret
-
-.bit_6_set
- call Function17a9e3
- ret
-
-Function17a9e3: ; 17a9e3 (5e:69e3)
- ld a, $3
- ld [$d08e], a
- ld hl, Unknown_17aa77
- ld b, $8
- ld c, $8
- ld a, $5
- call Function17aa4a
- ret
-
-Function17a9f5: ; 17a9f5 (5e:69f5)
- ld a, [$d08c]
- cp $10
- ret nc
- ld a, [$d08f]
- swap a
- and $1
- add $1
- ld [$d08e], a
- ld a, [$d08c]
- cp $10
- jr c, .okay
- dec a
-.okay
- ld c, $8
- call SimpleMultiply
- add $18
- ld b, a
- ld c, $11
- ld hl, Unknown_17aa72
- ld a, $4
- call Function17aa4a
- ret
-
-Function17aa22: ; 17aa22 (5e:6a22)
- ld a, $0
- ld [$d08e], a
- push de
- ld a, $3
- call Function17aae0
- add a
- add a
- add a
- add $0
- push af
- ld a, $4
- call Function17aae0
- add a
- add a
- add a
- add $8
- ld c, a
- pop af
- ld b, a
- pop de
- ld a, $0
- ld hl, Unknown_17aa77
- call Function17aa4a
- ret
-
-Function17aa4a: ; 17aa4a (5e:6a4a)
- ld [$d08d], a
- ld a, b
- add $8
- ld b, a
- ld a, c
- add $10
- ld c, a
- ld a, [hli]
-.loop
- push af
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [$d08d]
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [$d08e]
- or [hl]
- inc hl
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .loop
- ret
-; 17aa72 (5e:6a72)
-
-Unknown_17aa72: ; 17aa72
- db 1
- db 0, 0, 0, 0
-; 17aa77
-
-Unknown_17aa77: ; 17aa77
- db 4
- db 0, 0, 0, 0
- db 0, 8, 1, 0
- db 8, 0, 2, 0
- db 8, 8, 3, 0
-; 17aa88
-
-Function17aa88: ; 17aa88 (5e:6a88)
- jr c, asm_17aa91
- ld de, SFX_SWITCH_POKEMON
- call PlaySFX
- ret
-
-asm_17aa91: ; 17aa91 (5e:6a91)
- ld de, SFX_WRONG
- call PlaySFX
- ret
-
-Function17aa98: ; 17aa98 (5e:6a98)
- ld a, $5
- ld [$d08b], a
- call Function17aaa9
- call Function17aac3
- ld hl, $d088
- set 7, [hl]
- ret
-
-Function17aaa9: ; 17aaa9 (5e:6aa9)
- ld a, $3
- call Function17aae3
- ld c, a
- ld b, $0
- hlcoord 0, 0, AttrMap
- add hl, bc
- push hl
- ld a, $4
- call Function17aae3
- ld bc, $14
- pop hl
- call AddNTimes
- ret
-
-Function17aac3: ; 17aac3 (5e:6ac3)
- ld a, $b
- push hl
- ld [hli], a
- ld [hli], a
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- ld [hli], a
- ld [hli], a
- ret
-
-Function17aad0: ; 17aad0 (5e:6ad0)
- call Function17aae0
-
-Function17aad3: ; 17aad3 (5e:6ad3)
- ld [$d089], a
- ret
-
-Function17aad7: ; 17aad7 (5e:6ad7)
- push af
- ld a, [$d089]
- ld [$d08a], a
- pop af
- ret
-
-Function17aae0: ; 17aae0 (5e:6ae0)
- call Function17aad7
-
-Function17aae3: ; 17aae3 (5e:6ae3)
- push af
- ld a, [$d08a]
- ld bc, $d
- ld hl, Unknown_17aaf7
- call AddNTimes
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ret
-; 17aaf7 (5e:6af7)
-
-Unknown_17aaf7: ; 17aaf7
- db $0, $0, $1, $6, $5, $9, $3, $2, $1, $2, $1, $2, $4
- db $0, $0, $2, $9, $5, $a, $4, $0, $2, $a, $a, $3, $5
- db $0, $0, $3, $c, $5, $b, $5, $1, $0, $1, $0, $4, $0
- db $0, $0, $4, $6, $8, $0, $6, $5, $4, $5, $1, $5, $7
- db $0, $0, $5, $9, $8, $1, $7, $3, $5, $0, $2, $6, $8
- db $0, $0, $6, $c, $8, $2, $8, $4, $3, $1, $3, $7, $3
- db $0, $0, $7, $6, $b, $3, $9, $8, $7, $8, $4, $8, $a
- db $0, $0, $8, $9, $b, $4, $a, $6, $8, $3, $5, $9, $b
- db $0, $0, $9, $c, $b, $5, $b, $7, $6, $4, $6, $a, $6
- db $0, $0,$f2, $6, $e, $6, $0, $c, $a, $c, $7, $c, $0
- db $0, $0, $0, $9, $e, $7, $1, $9, $b, $6, $8, $1, $1
- db $0, $0,$f1, $c, $e, $8, $2, $a, $c, $7, $c, $2, $c
- db $0, $0,$f0,$10, $e, $c, $c, $b, $9, $b, $9, $b, $9
-; 17aba0
-
-Function17aba0: ; 17aba0 (5e:6ba0)
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
-
- ld hl, VTiles5 tile $00
- ld de, GFX_17afa5
- lb bc, BANK(GFX_17afa5), $80
- call Get2bpp
-
- pop af
- ld [rVBK], a
-
- ld hl, VTiles0 tile $00
- ld de, GFX_17afa5 + $4c0
- lb bc, BANK(GFX_17afa5), 5
- call Get2bpp
-
- ld hl, VTiles0 tile $05
- ld de, GFX_11601a
- lb bc, BANK(GFX_11601a), 4
- call Get2bpp
- ret
-
-Function17abcf: ; 17abcf (5e:6bcf)
- ld a, [rSVBK]
- push af
- ld a, BANK(UnknBGPals)
- ld [rSVBK], a
-
- ld hl, Palette_17ac55
- ld de, UnknBGPals ; $d000
- ld bc, $30
- call CopyBytes
-
- ld hl, Palette_17ac95
- ld de, UnknOBPals
- ld bc, $40
- call CopyBytes
-
- ld hl, GFX_17afa5 + $510
- ld de, UnknOBPals + 2 * 4
- ld bc, $10
- call CopyBytes
-
- ld hl, MapObjectPals + 8
- ld de, UnknOBPals + 6 * 4
- ld bc, $8
- ld a, BANK(MapObjectPals)
- call FarCopyBytes
-
- pop af
- ld [rSVBK], a
- ret
-
-Function17ac0c: ; 17ac0c (5e:6c0c)
- call Function17ac1d
- call Function17ac2a
- hlcoord 0, 0
- ld b, 2
- ld c, SCREEN_WIDTH - 2
- call Function17ac46
- ret
-
-Function17ac1d: ; 17ac1d (5e:6c1d)
- ld hl, Tilemap_17acd5
- decoord 0, 4
- ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
- call CopyBytes
- ret
-
-Function17ac2a: ; 17ac2a (5e:6c2a)
- ld hl, Tilemap_17ae3d
- decoord 0, 4, AttrMap
- ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
- call CopyBytes
- hlcoord 0, 4, AttrMap
- ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
-.loop
- ld a, [hl]
- or $8
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .loop
- ret
-
-Function17ac46: ; 17ac46 (5e:6c46)
- ld a, [$d088]
- bit 4, a
- jr nz, .bit_4_set
- call TextBox
- ret
-
-.bit_4_set
- call Function3eea
- ret
-; 17ac55 (5e:6c55)
-
-Palette_17ac55: ; 17ac55
- RGB 0, 0, 0
- RGB 9, 10, 25
- RGB 16, 19, 31
- RGB 31, 31, 31
-
- RGB 5, 11, 9
- RGB 7, 14, 12
- RGB 17, 24, 22
- RGB 28, 31, 31
-
- RGB 0, 0, 0
- RGB 3, 0, 10
- RGB 3, 3, 16
- RGB 6, 8, 25
-
- RGB 5, 11, 9
- RGB 28, 31, 31
- RGB 7, 14, 12
- RGB 17, 24, 22
-
- RGB 0, 0, 0
- RGB 5, 2, 16
- RGB 8, 8, 26
- RGB 13, 9, 17
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-Palette_17ac95: ; 17ac95
- RGB 31, 31, 31
- RGB 4, 3, 3
- RGB 31, 13, 0
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 0, 0
- RGB 16, 3, 0
- RGB 28, 19, 11
- RGB 31, 31, 31
-
- RGB 31, 16, 0
- RGB 9, 6, 4
- RGB 31, 16, 0
- RGB 31, 24, 0
-
- RGB 31, 18, 6
- RGB 0, 3, 0
- RGB 0, 9, 0
- RGB 0, 12, 0
-
- RGB 0, 16, 0
- RGB 0, 22, 0
- RGB 0, 25, 0
- RGB 0, 27, 0
-
- RGB 0, 31, 0
- RGB 3, 31, 0
- RGB 8, 31, 0
- RGB 14, 31, 0
-
- RGB 16, 31, 0
- RGB 22, 31, 0
- RGB 27, 31, 0
- RGB 31, 31, 0
-
-Tilemap_17acd5: ; 17acd5
-INCBIN "gfx/unknown/17acd5.tilemap"
-
-Tilemap_17ae3d: ; 17ae3d
-INCBIN "gfx/unknown/17ae3d.tilemap"
-
-GFX_17afa5:: ; 17afa5
-INCBIN "gfx/unknown/17afa5.2bpp"
diff --git a/misc/fixed_words.asm b/misc/fixed_words.asm
deleted file mode 100755
index 56e53da91..000000000
--- a/misc/fixed_words.asm
+++ /dev/null
@@ -1,4294 +0,0 @@
-; These functions seem to be related to the selection of preset phrases
-; for use in mobile communications. Annoyingly, they separate the
-; Battle Tower function above from the data it references.
-Function11c05d: ; 11c05d
- ld a, e
- or d
- jr z, .error
- ld a, e
- and d
- cp $ff
- jr z, .error
- push hl
- call CopyMobileEZChatToC608
- pop hl
- call PlaceString
- and a
- ret
-
-.error
- ld c, l
- ld b, h
- scf
- ret
-; 11c075
-
-Function11c075: ; 11c075
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call Function11c08f
- ret
-; 11c082
-
-Function11c082: ; 11c082
-; XXX
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call PrintEZChatBattleMessage
- ret
-; 11c08f
-
-Function11c08f: ; 11c08f
- ld l, e
- ld h, d
- push hl
- ld a, 3
-.loop
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .okay
- inc bc
-
-.okay
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .loop
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- ld a, $3
-.loop2
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .okay2
- inc bc
-
-.okay2
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .loop2
- ret
-; 11c0c6
-
-PrintEZChatBattleMessage: ; 11c0c6
-; Use up to 6 words from bc to print text starting at de.
- ; Preserve $cf63, $cf64
- ld a, [wJumptableIndex]
- ld l, a
- ld a, [wcf64]
- ld h, a
- push hl
- ; reset value at c618 (not preserved)
- ld hl, $c618
- ld a, $0
- ld [hli], a
- ; preserve de
- push de
- ; $cf63 keeps track of which line we're on (0, 1, or 2)
- ; $cf64 keeps track of how much room we have left in the current line
- xor a
- ld [wJumptableIndex], a
- ld a, 18
- ld [wcf64], a
- ld a, $6 ; up to 6 times
-.loop
- push af
- ; load the 2-byte word data pointed to by bc
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- ; if $0000, we're done
- or e
- jr z, .done
- ; preserving hl and bc, get the length of the word
- push hl
- push bc
- call CopyMobileEZChatToC608
- call GetLengthOfWordAtC608
- ld e, c
- pop bc
- pop hl
- ; if the functions return 0, we're done
- ld a, e
- or a
- jr z, .done
-.loop2
- ; e contains the length of the word
- ; add 1 for the space, unless we're at the start of the line
- ld a, [wcf64]
- cp 18
- jr z, .skip_inc
- inc e
-
-.skip_inc
- ; if the word fits, put it on the same line
- cp e
- jr nc, .same_line
- ; otherwise, go to the next line
- ld a, [wJumptableIndex]
- inc a
- ld [wJumptableIndex], a
- ; if we're on line 2, insert "<NEXT>"
- ld [hl], "<NEXT>"
- rra
- jr c, .got_line_terminator
- ; else, insert "<CONT>"
- ld [hl], "<CONT>"
-
-.got_line_terminator
- inc hl
- ; init the next line, holding on to the same word
- ld a, 18
- ld [wcf64], a
- dec e
- jr .loop2
-
-.same_line
- ; add the space, unless we're at the start of the line
- cp 18
- jr z, .skip_space
- ld [hl], " "
- inc hl
-
-.skip_space
- ; deduct the length of the word
- sub e
- ld [wcf64], a
- ld de, $c608
-.place_string_loop
- ; load the string from de to hl
- ld a, [de]
- cp "@"
- jr z, .done
- inc de
- ld [hli], a
- jr .place_string_loop
-
-.done
- ; next word?
- pop af
- dec a
- jr nz, .loop
- ; we're finished, place "<DONE>"
- ld [hl], "<DONE>"
- ; now, let's place the string from c618 to bc
- pop bc
- ld hl, $c618
- call PlaceHLTextAtBC
- ; restore the original values of $cf63 and $cf64
- pop hl
- ld a, l
- ld [wJumptableIndex], a
- ld a, h
- ld [wcf64], a
- ret
-; 11c14a
-
-GetLengthOfWordAtC608: ; 11c14a
- ld c, $0
- ld hl, $c608
-.loop
- ld a, [hli]
- cp "@"
- ret z
- inc c
- jr .loop
-; 11c156
-
-CopyMobileEZChatToC608: ; 11c156
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, "@"
- ld hl, $c608
- ld bc, NAME_LENGTH
- call ByteFill
- ld a, d
- and a
- jr z, .get_name
- ld hl, MobileEZChatCategoryPointers
- dec d
- sla d
- ld c, d
- ld b, $0
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- push bc
- pop hl
- ld c, e
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- add hl, bc
- ld bc, 5 ; length of a string
-.copy_string
- ld de, $c608
- call CopyBytes
- ld de, $c608
- pop af
- ld [rSVBK], a
- ret
-
-.get_name
- ld a, e
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld bc, PKMN_NAME_LENGTH - 1
- jr .copy_string
-; 11c1ab
-
-Function11c1ab: ; 11c1ab
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function11c1b9
- pop af
- ld [hInMenu], a
- ret
-; 11c1b9
-
-Function11c1b9: ; 11c1b9
- call .InitKanaMode
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call EZChat_MasterLoop
- pop af
- ld [rSVBK], a
- ret
-; 11c1ca
-
-.InitKanaMode: ; 11c1ca
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcd23], a
- ld [wcd20], a
- ld [wcd21], a
- ld [wcd22], a
- ld [wcd35], a
- ld [wcd2b], a
- ld a, $ff
- ld [wcd24], a
- ld a, [wMenuCursorY]
- dec a
- call Function11c254
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
- call Function11d323
- call SetPalettes
- call DisableLCD
- ld hl, GFX_11d67e
- ld de, VTiles2
- ld bc, $60
- call CopyBytes
- ld hl, LZ_11d6de
- ld de, VTiles0
- call Decompress
- call EnableLCD
- callba ReloadMapPart
- callba ClearSpriteAnims
- callba LoadPokemonData
- callba Pokedex_ABCMode
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $c6d0
- ld de, LYOverrides
- ld bc, $100
- call CopyBytes
- pop af
- ld [rSVBK], a
- call EZChat_GetCategoryWordsByKana
- call EZChat_GetSeenPokemonByKana
- ret
-; 11c254
-
-Function11c254: ; 11c254
- push af
- ld a, $4
- call GetSRAMBank
- ld hl, $a007
- pop af
- sla a
- sla a
- ld c, a
- sla a
- add c
- ld c, a
- ld b, $0
- add hl, bc
- ld de, wcd36
- ld bc, 12
- call CopyBytes
- call CloseSRAM
- ret
-; 11c277
-
-EZChat_ClearBottom12Rows: ; 11c277 (47:4277)
- ld a, " "
- hlcoord 0, 6
- ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
- call ByteFill
- ret
-
-EZChat_MasterLoop: ; 11c283
-.loop
- call JoyTextDelay
- ld a, [hJoyPressed]
- ld [hJoypadPressed], a
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .exit
- call .DoJumptableFunction
- callba PlaySpriteAnimations
- callba ReloadMapPart
- jr .loop
-
-.exit
- callba ClearSpriteAnims
- call ClearSprites
- ret
-; 11c2ac
-
-.DoJumptableFunction: ; 11c2ac
- jumptable .Jumptable, wJumptableIndex
-; 11c2bb
-
-.Jumptable: ; 11c2bb (47:42bb)
- dw .SpawnObjects ; 00
- dw .InitRAM ; 01
- dw Function11c35f ; 02
- dw Function11c373 ; 03
- dw Function11c3c2 ; 04
- dw Function11c3ed ; 05
- dw Function11c52c ; 06
- dw Function11c53d ; 07
- dw Function11c658 ; 08
- dw Function11c675 ; 09
- dw Function11c9bd ; 0a
- dw Function11c9c3 ; 0b
- dw Function11caad ; 0c
- dw Function11cab3 ; 0d
- dw Function11cb52 ; 0e
- dw Function11cb66 ; 0f
- dw Function11cbf5 ; 10
- dw Function11ccef ; 11
- dw Function11cd04 ; 12
- dw Function11cd20 ; 13
- dw Function11cd54 ; 14
- dw Function11ce0b ; 15
- dw Function11ce2b ; 16
-
-.SpawnObjects: ; 11c2e9 (47:42e9)
- depixel 3, 1, 2, 5
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- depixel 8, 1, 2, 5
-
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $1
- ld [hl], a
-
- depixel 9, 2, 2, 0
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $3
- ld [hl], a
-
- depixel 10, 16
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $4
- ld [hl], a
-
- depixel 10, 4
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $5
- ld [hl], a
-
- depixel 10, 2
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $2
- ld [hl], a
-
- ld hl, wcd23
- set 1, [hl]
- set 2, [hl]
- jp Function11cfb5
-
-.InitRAM: ; 11c346 (47:4346)
- ld a, $9
- ld [wcd2d], a
- ld a, $2
- ld [wcd2e], a
- ld [wcd2f], a
- ld [wcd30], a
- ld de, wcd2d
- call Function11cfce
- jp Function11cfb5
-
-Function11c35f: ; 11c35f (47:435f)
- ld hl, wcd2f
- inc [hl]
- inc [hl]
- dec hl
- dec hl
- dec [hl]
- push af
- ld de, wcd2d
- call Function11cfce
- pop af
- ret nz
- jp Function11cfb5
-
-Function11c373: ; 11c373 (47:4373)
- ld hl, wcd30
- inc [hl]
- inc [hl]
- dec hl
- dec hl
- dec [hl]
- push af
- ld de, wcd2d
- call Function11cfce
- pop af
- ret nz
- call Function11c38a
- jp Function11cfb5
-
-Function11c38a: ; 11c38a (47:438a)
- ld hl, Unknown_11c986
- ld bc, wcd36
- ld a, $6
-.asm_11c392
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- push de
- pop hl
- ld a, [bc]
- inc bc
- ld e, a
- ld a, [bc]
- inc bc
- ld d, a
- push bc
- or e
- jr z, .asm_11c3af
- ld a, e
- and d
- cp $ff
- jr z, .asm_11c3af
- call Function11c05d
- jr .asm_11c3b5
-.asm_11c3af
- ld de, String_11c3bc
- call PlaceString
-.asm_11c3b5
- pop bc
- pop hl
- pop af
- dec a
- jr nz, .asm_11c392
- ret
-; 11c3bc (47:43bc)
-
-String_11c3bc: ; 11c3bc
- db "ーーーーー@"
-; 11c3c2
-
-Function11c3c2: ; 11c3c2 (47:43c2)
- call EZChat_ClearBottom12Rows
- ld de, Unknown_11cfbe
- call Function11d035
- hlcoord 1, 7
- ld de, String_11c4db
- call PlaceString
- hlcoord 1, 16
- ld de, String_11c51b
- call PlaceString
- call Function11c4be
- ld hl, wcd23
- set 0, [hl]
- ld hl, wcd24
- res 0, [hl]
- call Function11cfb5
-
-Function11c3ed: ; 11c3ed (47:43ed)
- ld hl, wcd20 ; wcd20
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $8
- jr nz, .asm_11c426
- ld a, [de]
- and $2
- jr nz, .asm_11c41a
- ld a, [de]
- and $1
- jr nz, .asm_11c42c
- ld de, hJoyLast
- ld a, [de]
- and $40
- jr nz, .asm_11c47c
- ld a, [de]
- and $80
- jr nz, .asm_11c484
- ld a, [de]
- and $20
- jr nz, .asm_11c48c
- ld a, [de]
- and $10
- jr nz, .asm_11c498
- ret
-
-.asm_11c41a
- call PlayClickSFX
-.asm_11c41d
- ld hl, wcd24
- set 0, [hl]
- ld a, $c
- jr .asm_11c475
-.asm_11c426
- ld a, $8
- ld [wcd20], a ; wcd20
- ret
-
-.asm_11c42c
- ld a, [wcd20] ; wcd20
- cp $6
- jr c, .asm_11c472
- sub $6
- jr z, .asm_11c469
- dec a
- jr z, .asm_11c41d
- ld hl, wcd36
- ld c, $c
- xor a
-.asm_11c440
- or [hl]
- inc hl
- dec c
- jr nz, .asm_11c440
- and a
- jr z, .asm_11c460
- ld de, Unknown_11cfba
- call Function11cfce
- decoord 1, 2
- ld bc, wcd36
- call Function11c08f
- ld hl, wcd24
- set 0, [hl]
- ld a, $e
- jr .asm_11c475
-.asm_11c460
- ld hl, wcd24
- set 0, [hl]
- ld a, $11
- jr .asm_11c475
-.asm_11c469
- ld hl, wcd24
- set 0, [hl]
- ld a, $a
- jr .asm_11c475
-.asm_11c472
- call Function11c4a5
-.asm_11c475
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.asm_11c47c
- ld a, [hl]
- cp $3
- ret c
- sub $3
- jr .asm_11c4a3
-.asm_11c484
- ld a, [hl]
- cp $6
- ret nc
- add $3
- jr .asm_11c4a3
-.asm_11c48c
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- dec a
- jr .asm_11c4a3
-.asm_11c498
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- inc a
-.asm_11c4a3
- ld [hl], a
- ret
-
-Function11c4a5: ; 11c4a5 (47:44a5)
- ld hl, wcd23
- res 0, [hl]
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c4b7
- xor a
- ld [wcd21], a
- ld a, $6
- ret
-
-.asm_11c4b7
- xor a
- ld [wcd22], a
- ld a, $15
- ret
-
-Function11c4be: ; 11c4be (47:44be)
- ld a, $1
- hlcoord 0, 6, AttrMap
- ld bc, $a0
- call ByteFill
- ld a, $7
- hlcoord 0, 14, AttrMap
- ld bc, $28
- call ByteFill
- callba ReloadMapPart
- ret
-; 11c4db (47:44db)
-
-String_11c4db: ; 11c4db
- db "6つのことば¯くみあわせます"
- next "かえたいところ¯えらぶと でてくる"
- next "ことばのグループから いれかえたい"
- next "たんご¯えらんでください"
- db "@"
-; 11c51b
-
-String_11c51b: ; 11c51b
- db "ぜんぶけす やめる けってい@"
-; 11c52c
-
-Function11c52c: ; 11c52c (47:452c)
- call EZChat_ClearBottom12Rows
- call EZChat_PlaceCategoryNames
- call Function11c618
- ld hl, wcd24
- res 1, [hl]
- call Function11cfb5
-
-Function11c53d: ; 11c53d (47:453d)
- ld hl, wcd21
- ld de, hJoypadPressed ; $ffa3
-
- ld a, [de]
- and START
- jr nz, .start
-
- ld a, [de]
- and SELECT
- jr nz, .select
-
- ld a, [de]
- and B_BUTTON
- jr nz, .b
-
- ld a, [de]
- and A_BUTTON
- jr nz, .a
-
- ld de, hJoyLast
-
- ld a, [de]
- and D_UP
- jr nz, .up
-
- ld a, [de]
- and D_DOWN
- jr nz, .down
-
- ld a, [de]
- and D_LEFT
- jr nz, .left
-
- ld a, [de]
- and D_RIGHT
- jr nz, .right
-
- ret
-
-.a
- ld a, [wcd21]
- cp 15
- jr c, .got_category
- sub $f
- jr z, .done
- dec a
- jr z, .mode
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [wcd20], a ; wcd20
-
-.b
- ld a, $4
- jr .go_to_function
-
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $15
- jr .go_to_function
-
-.mode
- ld a, $13
- jr .go_to_function
-
-.got_category
- ld a, $8
-
-.go_to_function
- ld hl, wcd24
- set 1, [hl]
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.done
- ld a, [wcd20] ; wcd20
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.up
- ld a, [hl]
- cp $3
- ret c
- sub $3
- jr .finish_dpad
-
-.down
- ld a, [hl]
- cp $f
- ret nc
- add $3
- jr .finish_dpad
-
-.left
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- cp $9
- ret z
- cp $c
- ret z
- cp $f
- ret z
- dec a
- jr .finish_dpad
-
-.right
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- cp $b
- ret z
- cp $e
- ret z
- cp $11
- ret z
- inc a
-
-.finish_dpad
- ld [hl], a
- ret
-; 11c5f0
-
-EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0)
- ld de, MobileEZChatCategoryNames
- ld bc, Coords_11c63a
- ld a, 15
-.loop
- push af
- ld a, [bc]
- inc bc
- ld l, a
- ld a, [bc]
- inc bc
- ld h, a
- push bc
- call PlaceString
- ; The category names are padded with "@".
- ; To find the next category, the system must
- ; find the first character at de that is not "@".
-.find_next_string_loop
- inc de
- ld a, [de]
- cp "@"
- jr z, .find_next_string_loop
- pop bc
- pop af
- dec a
- jr nz, .loop
- hlcoord 1, 17
- ld de, EZChatString_Stop_Mode_Cancel
- call PlaceString
- ret
-
-Function11c618: ; 11c618 (47:4618)
- ld a, $2
- hlcoord 0, 6, AttrMap
- ld bc, $c8
- call ByteFill
- callba ReloadMapPart
- ret
-; 11c62a (47:462a)
-
-EZChatString_Stop_Mode_Cancel: ; 11c62a
- db "けす モード やめる@"
-; 11c63a
-
-Coords_11c63a: ; 11c63a
- dwcoord 1, 7
- dwcoord 7, 7
- dwcoord 13, 7
- dwcoord 1, 9
- dwcoord 7, 9
- dwcoord 13, 9
- dwcoord 1, 11
- dwcoord 7, 11
- dwcoord 13, 11
- dwcoord 1, 13
- dwcoord 7, 13
- dwcoord 13, 13
- dwcoord 1, 15
- dwcoord 7, 15
- dwcoord 13, 15
-; 11c658
-
-Function11c658: ; 11c658 (47:4658)
- call EZChat_ClearBottom12Rows
- call Function11c770
- ld de, Unknown_11cfc2
- call Function11d035
- call Function11c9ab
- call Function11c7bc
- call Function11c86e
- ld hl, wcd24
- res 3, [hl]
- call Function11cfb5
-
-Function11c675: ; 11c675 (47:4675)
- ld hl, wMobileCommsJumptableIndex
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and A_BUTTON
- jr nz, .a
- ld a, [de]
- and B_BUTTON
- jr nz, .b
- ld a, [de]
- and START
- jr nz, .start
- ld a, [de]
- and SELECT
- jr z, .select
-
- ld a, [wcd26]
- and a
- ret z
- sub $c
- jr nc, .asm_11c699
- xor a
-.asm_11c699
- ld [wcd26], a
- jr .asm_11c6c4
-
-.start
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- cp [hl]
- ret nc
- ld [wcd26], a
- ld a, [hl]
- ld b, a
- ld hl, wMobileCommsJumptableIndex
- ld a, [wcd26]
- add [hl]
- jr c, .asm_11c6b9
- cp b
- jr c, .asm_11c6c4
-.asm_11c6b9
- ld a, [wcd28]
- ld hl, wcd26
- sub [hl]
- dec a
- ld [wMobileCommsJumptableIndex], a
-.asm_11c6c4
- call Function11c992
- call Function11c7bc
- call Function11c86e
- ret
-
-.select
- ld de, hJoyLast
- ld a, [de]
- and D_UP
- jr nz, .asm_11c708
- ld a, [de]
- and D_DOWN
- jr nz, .asm_11c731
- ld a, [de]
- and D_LEFT
- jr nz, .asm_11c746
- ld a, [de]
- and D_RIGHT
- jr nz, .asm_11c755
- ret
-
-.a
- call Function11c8f6
- ld a, $4
- ld [wcd35], a
- jr .asm_11c6fc
-.b
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c6fa
- ld a, $6
- jr .asm_11c6fc
-.asm_11c6fa
- ld a, $15
-.asm_11c6fc
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 3, [hl]
- call PlayClickSFX
- ret
-
-.asm_11c708
- ld a, [hl]
- cp $3
- jr c, .asm_11c711
- sub $3
- jr .asm_11c76e
-.asm_11c711
- ld a, [wcd26]
- sub $3
- ret c
- ld [wcd26], a
- jr .asm_11c6c4
-.asm_11c71c
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- ret c
- cp [hl]
- ret nc
- ld a, [wcd26]
- add $3
- ld [wcd26], a
- jr .asm_11c6c4
-.asm_11c731
- ld a, [wcd28]
- ld b, a
- ld a, [wcd26]
- add [hl]
- add $3
- cp b
- ret nc
- ld a, [hl]
- cp $9
- jr nc, .asm_11c71c
- add $3
- jr .asm_11c76e
-.asm_11c746
- ld a, [hl]
- and a
- ret z
- cp $3
- ret z
- cp $6
- ret z
- cp $9
- ret z
- dec a
- jr .asm_11c76e
-.asm_11c755
- ld a, [wcd28]
- ld b, a
- ld a, [wcd26]
- add [hl]
- inc a
- cp b
- ret nc
- ld a, [hl]
- cp $2
- ret z
- cp $5
- ret z
- cp $8
- ret z
- cp $b
- ret z
- inc a
-.asm_11c76e
- ld [hl], a
- ret
-
-Function11c770: ; 11c770 (47:4770)
- xor a
- ld [wMobileCommsJumptableIndex], a
- ld [wcd26], a
- ld [wcd27], a
- ld a, [wcd2b]
- and a
- jr nz, .cd2b_is_nonzero
- ld a, [wcd21]
- and a
- jr z, .cd21_is_zero
- ; load from data array
- dec a
- sla a
- ld hl, MobileEZChatData_WordAndPageCounts
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hli]
- ld [wcd28], a
- ld a, [hl]
-.load
- ld [wcd29], a
- ret
-
-.cd21_is_zero
- ; compute from [wc7d2]
- ld a, [wc7d2]
- ld [wcd28], a
-.div_12
- ld c, 12
- call SimpleDivide
- and a
- jr nz, .no_need_to_floor
- dec b
-.no_need_to_floor
- ld a, b
- jr .load
-
-.cd2b_is_nonzero
- ; compute from [c6a8 + 2 * [cd22]]
- ld hl, $c6a8 ; $c68a + 30
- ld a, [wcd22]
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, [hl]
- ld [wcd28], a
- jr .div_12
-
-Function11c7bc: ; 11c7bc (47:47bc)
- ld bc, Unknown_11c854
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c814
- ld a, [wcd21]
- ld d, a
- and a
- jr z, .asm_11c7e9
- ld a, [wcd26]
- ld e, a
-.asm_11c7d0
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- ret z
- push bc
- push de
- call Function11c05d
- pop de
- pop bc
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c7d0
- ret
-
-.asm_11c7e9
- ld hl, wListPointer
- ld a, [wcd26]
- ld e, a
- add hl, de
-.asm_11c7f1
- push de
- ld a, [hli]
- ld e, a
- ld d, $0
- push hl
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- jr z, .asm_11c811
- push bc
- call Function11c05d
- pop bc
- pop hl
- pop de
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c7f1
- ret
-
-.asm_11c811
- pop hl
- pop de
- ret
-
-.asm_11c814
- ld hl, $c648
- ld a, [wcd22]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [wcd26]
- ld e, a
-.asm_11c831
- push de
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld a, [bc]
- ld l, a
- inc bc
- ld a, [bc]
- ld h, a
- inc bc
- and l
- cp $ff
- jr z, .asm_11c851
- push bc
- call Function11c05d
- pop bc
- pop hl
- pop de
- inc e
- ld a, [wcd28]
- cp e
- jr nz, .asm_11c831
- ret
-
-.asm_11c851
- pop hl
- pop de
- ret
-; 11c854 (47:4854)
-
-Unknown_11c854: ; 11c854
- dwcoord 2, 8
- dwcoord 8, 8
- dwcoord 14, 8
- dwcoord 2, 10
- dwcoord 8, 10
- dwcoord 14, 10
- dwcoord 2, 12
- dwcoord 8, 12
- dwcoord 14, 12
- dwcoord 2, 14
- dwcoord 8, 14
- dwcoord 14, 14
- dw -1
-; 11c86e
-
-Function11c86e: ; 11c86e (47:486e)
- ld a, [wcd26]
- and a
- jr z, .asm_11c88a
- hlcoord 2, 17
- ld de, MobileString_Prev
- call PlaceString
- hlcoord 6, 17
- ld c, $3
- xor a
-.asm_11c883
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_11c883
- jr .asm_11c895
-.asm_11c88a
- hlcoord 2, 17
- ld c, $7
- ld a, $7f
-.asm_11c891
- ld [hli], a
- dec c
- jr nz, .asm_11c891
-.asm_11c895
- ld hl, wcd28
- ld a, [wcd26]
- add $c
- jr c, .asm_11c8b7
- cp [hl]
- jr nc, .asm_11c8b7
- hlcoord 16, 17
- ld de, MobileString_Next
- call PlaceString
- hlcoord 11, 17
- ld a, $3
- ld c, a
-.asm_11c8b1
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_11c8b1
- ret
-
-.asm_11c8b7
- hlcoord 17, 16
- ld a, $7f
- ld [hl], a
- hlcoord 11, 17
- ld c, $7
-.asm_11c8c2
- ld [hli], a
- dec c
- jr nz, .asm_11c8c2
- ret
-; 11c8c7 (47:48c7)
-
-BCD2String: ; 11c8c7
- inc a
- push af
- and $f
- ld [hDividend], a
- pop af
- and $f0
- swap a
- ld [hDividend + 1], a
- xor a
- ld [hDividend + 2], a
- push hl
- callba Function11a80c
- pop hl
- ld a, [wcd63]
- add "0"
- ld [hli], a
- ld a, [wcd62]
- add "0"
- ld [hli], a
- ret
-; 11c8ec
-
-MobileString_Page: ; 11c8ec
- db "ぺージ@"
-; 11c8f0
-
-MobileString_Prev: ; 11c8f0
- db "まえ@"
-; 11c8f3
-
-MobileString_Next: ; 11c8f3
- db "つぎ@"
-; 11c8f6
-
-Function11c8f6: ; 11c8f6 (47:48f6)
- ld a, [wcd20] ; wcd20
- call Function11c95d
- push hl
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c938
- ld a, [wcd21]
- ld d, a
- and a
- jr z, .asm_11c927
- ld hl, wcd26
- ld a, [wMobileCommsJumptableIndex]
- add [hl]
-.asm_11c911
- ld e, a
-.asm_11c912
- pop hl
- push de
- call Function11c05d
- pop de
- ld a, [wcd20] ; wcd20
- ld c, a
- ld b, $0
- ld hl, wcd36
- add hl, bc
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-.asm_11c927
- ld hl, wcd26
- ld a, [wMobileCommsJumptableIndex]
- add [hl]
- ld c, a
- ld b, $0
- ld hl, wListPointer
- add hl, bc
- ld a, [hl]
- jr .asm_11c911
-.asm_11c938
- ld hl, $c648
- ld a, [wcd22]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
- add hl, de
- add hl, de
- ld a, [wMobileCommsJumptableIndex]
- ld e, a
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- jr .asm_11c912
-
-Function11c95d: ; 11c95d (47:495d)
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_11c986
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- push bc
- push bc
- pop hl
- ld a, $5
- ld c, a
- ld a, $7f
-.asm_11c972
- ld [hli], a
- dec c
- jr nz, .asm_11c972
- dec hl
- ld bc, -20
- add hl, bc
- ld a, $5
- ld c, a
- ld a, $7f
-.asm_11c980
- ld [hld], a
- dec c
- jr nz, .asm_11c980
- pop hl
- ret
-; 11c986 (47:4986)
-
-Unknown_11c986:
- dwcoord 1, 2
- dwcoord 7, 2
- dwcoord 13, 2
- dwcoord 1, 4
- dwcoord 7, 4
- dwcoord 13, 4
-; 11c992
-
-Function11c992: ; 11c992 (47:4992)
- ld a, $8
- hlcoord 2, 7
-.asm_11c997
- push af
- ld a, $7f
- push hl
- ld bc, $11
- call ByteFill
- pop hl
- ld bc, $14
- add hl, bc
- pop af
- dec a
- jr nz, .asm_11c997
- ret
-
-Function11c9ab: ; 11c9ab (47:49ab)
- ld a, $7
- hlcoord 0, 6, AttrMap
- ld bc, $c8
- call ByteFill
- callba ReloadMapPart
- ret
-
-Function11c9bd: ; 11c9bd (47:49bd)
- ld de, String_11ca38
- call Function11ca7f
-
-Function11c9c3: ; 11c9c3 (47:49c3)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11c9de
- ld a, [de]
- and $2
- jr nz, .asm_11c9e9
- ld a, [de]
- and $40
- jr nz, .asm_11c9f7
- ld a, [de]
- and $80
- jr nz, .asm_11c9fc
- ret
-
-.asm_11c9de
- ld a, [hl]
- and a
- jr nz, .asm_11c9e9
- call Function11ca5e
- xor a
- ld [wcd20], a ; wcd20
-.asm_11c9e9
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.asm_11c9f7
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_11c9fc
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-
-Function11ca01: ; 11ca01 (47:4a01)
- hlcoord 14, 7, AttrMap
- ld de, $14
- ld a, $5
- ld c, a
-.asm_11ca0a
- push hl
- ld a, $6
- ld b, a
- ld a, $7
-.asm_11ca10
- ld [hli], a
- dec b
- jr nz, .asm_11ca10
- pop hl
- add hl, de
- dec c
- jr nz, .asm_11ca0a
-
-Function11ca19: ; 11ca19 (47:4a19)
- hlcoord 0, 12, AttrMap
- ld de, $14
- ld a, $6
- ld c, a
-.asm_11ca22
- push hl
- ld a, $14
- ld b, a
- ld a, $7
-.asm_11ca28
- ld [hli], a
- dec b
- jr nz, .asm_11ca28
- pop hl
- add hl, de
- dec c
- jr nz, .asm_11ca22
- callba ReloadMapPart
- ret
-; 11ca38 (47:4a38)
-
-String_11ca38: ; 11ca38
- db "とうろくちゅう", $25, "あいさつ¯ぜんぶ"
- next "けしても よろしいですか?@"
-; 11ca57
-
-String_11ca57: ; 11ca57
- db "はい"
- next "いいえ@"
-; 11ca5e
-
-Function11ca5e: ; 11ca5e (47:4a5e)
- xor a
-.loop
- push af
- call Function11ca6a
- pop af
- inc a
- cp $6
- jr nz, .loop
- ret
-
-Function11ca6a: ; 11ca6a (47:4a6a)
- ld hl, wcd36
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld [hl], b
- inc hl
- ld [hl], b
- call Function11c95d
- ld de, String_11c3bc
- call PlaceString
- ret
-
-Function11ca7f: ; 11ca7f (47:4a7f)
- push de
- ld de, Unknown_11cfc6
- call Function11cfce
- ld de, Unknown_11cfca
- call Function11cfce
- hlcoord 1, 14
- pop de
- call PlaceString
- hlcoord 16, 8
- ld de, String_11ca57
- call PlaceString
- call Function11ca01
- ld a, $1
- ld [wcd2a], a
- ld hl, wcd24
- res 4, [hl]
- call Function11cfb5
- ret
-
-Function11caad: ; 11caad (47:4aad)
- ld de, String_11cb1c
- call Function11ca7f
-
-Function11cab3: ; 11cab3 (47:4ab3)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11cace
- ld a, [de]
- and $2
- jr nz, .asm_11caf9
- ld a, [de]
- and $40
- jr nz, .asm_11cb12
- ld a, [de]
- and $80
- jr nz, .asm_11cb17
- ret
-
-.asm_11cace
- call PlayClickSFX
- ld a, [hl]
- and a
- jr nz, .asm_11cafc
- ld a, [wcd35]
- and a
- jr z, .asm_11caf3
- cp $ff
- jr z, .asm_11caf3
- ld a, $ff
- ld [wcd35], a
- hlcoord 1, 14
- ld de, String_11cb31
- call PlaceString
- ld a, $1
- ld [wcd2a], a
- ret
-
-.asm_11caf3
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.asm_11caf9
- call PlayClickSFX
-.asm_11cafc
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- ld a, [wcd35]
- cp $ff
- ret nz
- ld a, $1
- ld [wcd35], a
- ret
-
-.asm_11cb12
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_11cb17
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-; 11cb1c (47:4b1c)
-
-String_11cb1c: ; 11cb1c
- db "あいさつ", $25, "とうろく¯ちゅうし"
- next "しますか?@"
-; 11cb31
-
-String_11cb31: ; 11cb31
- db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
- next "されません", $4a, "よろしい ですか?@"
-; 11cb52
-
-Function11cb52: ; 11cb52 (47:4b52)
- ld hl, Unknown_11cc01
- ld a, [wMenuCursorY]
-.asm_11cb58
- dec a
- jr z, .asm_11cb5f
- inc hl
- inc hl
- jr .asm_11cb58
-.asm_11cb5f
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- call Function11ca7f
-
-Function11cb66: ; 11cb66 (47:4b66)
- ld hl, wcd2a
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and $1
- jr nz, .asm_11cb81
- ld a, [de]
- and $2
- jr nz, .asm_11cbd7
- ld a, [de]
- and $40
- jr nz, .asm_11cbeb
- ld a, [de]
- and $80
- jr nz, .asm_11cbf0
- ret
-
-.asm_11cb81
- ld a, [hl]
- and a
- jr nz, .asm_11cbd4
- ld a, $4
- call GetSRAMBank
- ld hl, $a007
- ld a, [wMenuCursorY]
- dec a
- sla a
- sla a
- ld c, a
- sla a
- add c
- ld c, a
- ld b, $0
- add hl, bc
- ld de, wcd36
- ld c, $c
-.asm_11cba2
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .asm_11cba2
- call CloseSRAM
- call PlayClickSFX
- ld de, Unknown_11cfc6
- call Function11cfce
- ld hl, Unknown_11cc7e
- ld a, [wMenuCursorY]
-.asm_11cbba
- dec a
- jr z, .asm_11cbc1
- inc hl
- inc hl
- jr .asm_11cbba
-.asm_11cbc1
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- hlcoord 1, 14
- call PlaceString
- ld hl, wJumptableIndex
- inc [hl]
- inc hl
- ld a, $10
- ld [hl], a
- ret
-
-.asm_11cbd4
- call PlayClickSFX
-.asm_11cbd7
- ld de, Unknown_11cfba
- call Function11cfce
- call Function11c38a
- ld hl, wcd24
- set 4, [hl]
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.asm_11cbeb
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_11cbf0
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ret
-
-Function11cbf5: ; 11cbf5 (47:4bf5)
- call WaitSFX
- ld hl, wcf64
- dec [hl]
- ret nz
- dec hl
- set 7, [hl]
- ret
-; 11cc01 (47:4c01)
-
-Unknown_11cc01: ; 11cc01
- dw String_11cc09
- dw String_11cc23
- dw String_11cc42
- dw String_11cc60
-
-String_11cc09: ; 11cc09
- db "じこしょうかい は"
- next "この あいさつで いいですか?@"
-
-String_11cc23: ; 11cc23
- db "たいせん ", $4a, "はじまるとき は"
- next "この あいさつで いいですか?@"
-
-String_11cc42: ; 11cc42
- db "たいせん ", $1d, "かったとき は"
- next "この あいさつで いいですか?@"
-
-String_11cc60: ; 11cc60
- db "たいせん ", $1d, "まけたとき は"
- next "この あいさつで いいですか?@"
-; 11cc7e
-
-Unknown_11cc7e: ; 11cc7e
- dw String_11cc86
- dw String_11cc9d
- dw String_11ccb9
- dw String_11ccd4
-
-String_11cc86: ; 11cc86
- db "じこしょうかい の"
- next "あいさつ¯とうろくした!@"
-
-String_11cc9d: ; 11cc9d
- db "たいせん ", $4a, "はじまるとき の"
- next "あいさつ¯とうろくした!@"
-
-String_11ccb9: ; 11ccb9
- db "たいせん ", $1d, "かったとき の"
- next "あいさつ¯とうろくした!@"
-
-String_11ccd4: ; 11ccd4
- db "たいせん ", $1d, "まけたとき の"
- next "あいさつ¯とうろくした!@"
-; 11ccef
-
-Function11ccef: ; 11ccef (47:4cef)
- ld de, Unknown_11cfc6
- call Function11cfce
- hlcoord 1, 14
- ld de, String_11cd10
- call PlaceString
- call Function11ca19
- call Function11cfb5
-
-Function11cd04: ; 11cd04 (47:4d04)
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and a
- ret z
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 11cd10 (47:4d10)
-
-String_11cd10: ; 11cd10
- db "なにか ことば¯いれてください@"
-; 11cd20
-
-Function11cd20: ; 11cd20 (47:4d20)
- call EZChat_ClearBottom12Rows
- ld de, Unknown_11cfc6
- call Function11cfce
- hlcoord 1, 14
- ld a, [wcd2b]
- ld [wcd2c], a
- and a
- jr nz, .asm_11cd3a
- ld de, String_11cdc7
- jr .asm_11cd3d
-.asm_11cd3a
- ld de, String_11cdd9
-.asm_11cd3d
- call PlaceString
- hlcoord 4, 8
- ld de, String_11cdf5
- call PlaceString
- call Function11cdaa
- ld hl, wcd24
- res 5, [hl]
- call Function11cfb5
-
-Function11cd54: ; 11cd54 (47:4d54)
- ld hl, wcd2c
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and A_BUTTON
- jr nz, .asm_11cd6f
- ld a, [de]
- and B_BUTTON
- jr nz, .asm_11cd73
- ld a, [de]
- and D_UP
- jr nz, .asm_11cd8b
- ld a, [de]
- and D_DOWN
- jr nz, .asm_11cd94
- ret
-
-.asm_11cd6f
- ld a, [hl]
- ld [wcd2b], a
-.asm_11cd73
- ld a, [wcd2b]
- and a
- jr nz, .asm_11cd7d
- ld a, $6
- jr .asm_11cd7f
-
-.asm_11cd7d
- ld a, $15
-.asm_11cd7f
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 5, [hl]
- call PlayClickSFX
- ret
-
-.asm_11cd8b
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ld de, String_11cdc7
- jr .asm_11cd9b
-
-.asm_11cd94
- ld a, [hl]
- and a
- ret nz
- inc [hl]
- ld de, String_11cdd9
-.asm_11cd9b
- push de
- ld de, Unknown_11cfc6
- call Function11cfce
- pop de
- hlcoord 1, 14
- call PlaceString
- ret
-
-Function11cdaa: ; 11cdaa (47:4daa)
- ld a, $2
- hlcoord 0, 6, AttrMap
- ld bc, 6 * SCREEN_WIDTH
- call ByteFill
- ld a, $7
- hlcoord 0, 12, AttrMap
- ld bc, 4 * SCREEN_WIDTH
- call ByteFill
- callba ReloadMapPart
- ret
-; 11cdc7 (47:4dc7)
-
-String_11cdc7: ; 11cdc7
-; Words will be displayed by category
- db "ことば¯しゅるいべつに"
- next "えらべます@"
-; 11cdd9
-
-String_11cdd9: ; 11cdd9
-; Words will be displayed in alphabetical order
- db "ことば¯アイウエォ の"
- next "じゅんばんで ひょうじ します@"
-; 11cdf5
-
-String_11cdf5: ; 11cdf5
- db "しゅるいべつ モード" ; Category mode
- next "アイウエォ モード@" ; ABC mode
-; 11ce0b
-
-Function11ce0b: ; 11ce0b (47:4e0b)
- call EZChat_ClearBottom12Rows
- hlcoord 1, 7
- ld de, String_11cf79
- call PlaceString
- hlcoord 1, 17
- ld de, EZChatString_Stop_Mode_Cancel
- call PlaceString
- call Function11c618
- ld hl, wcd24
- res 2, [hl]
- call Function11cfb5
-
-Function11ce2b: ; 11ce2b (47:4e2b)
- ld a, [wcd22]
- sla a
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_11ceb9
- add hl, bc
-
- ld de, hJoypadPressed ; $ffa3
- ld a, [de]
- and START
- jr nz, .start
- ld a, [de]
- and SELECT
- jr nz, .select
- ld a, [de]
- and A_BUTTON
- jr nz, .a
- ld a, [de]
- and B_BUTTON
- jr nz, .b
-
- ld de, hJoyLast
- ld a, [de]
- and D_UP
- jr nz, .up
- ld a, [de]
- and D_DOWN
- jr nz, .down
- ld a, [de]
- and D_LEFT
- jr nz, .left
- ld a, [de]
- and D_RIGHT
- jr nz, .right
-
- ret
-
-.a
- ld a, [wcd22]
- cp NUM_KANA
- jr c, .place
- sub NUM_KANA
- jr z, .done
- dec a
- jr z, .mode
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [wcd20], a ; wcd20
-.b
- ld a, $4
- jr .load
-
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $6
- jr .load
-
-.place
- ld a, $8
- jr .load
-
-.mode
- ld a, $13
-.load
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 2, [hl]
- call PlayClickSFX
- ret
-
-.done
- ld a, [wcd20] ; wcd20
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.left
- inc hl
-.down
- inc hl
-.right
- inc hl
-.up
- ld a, [hl]
- cp $ff
- ret z
- ld [wcd22], a
- ret
-; 11ceb9 (47:4eb9)
-
-Unknown_11ceb9: ; 11ceb9
- ; up left down right
- db $ff, $01
- db $05, $ff
- db $ff, $02
- db $06, $00
- db $ff, $03
- db $07, $01
- db $ff, $04
- db $08, $02
- db $ff, $14
- db $09, $03
- db $00, $06
- db $0a, $ff
- db $01, $07
- db $0b, $05
- db $02, $08
- db $0c, $06
- db $03, $09
- db $0d, $07
- db $04, $19
- db $0e, $08
- db $05, $0b
- db $0f, $ff
- db $06, $0c
- db $10, $0a
- db $07, $0d
- db $11, $0b
- db $08, $0e
- db $12, $0c
- db $09, $1e
- db $13, $0d
- db $0a, $10
- db $2d, $ff
- db $0b, $11
- db $2d, $0f
- db $0c, $12
- db $2d, $10
- db $0d, $13
- db $2d, $11
- db $0e, $26
- db $2d, $12
- db $ff, $15
- db $19, $04
- db $ff, $16
- db $1a, $14
- db $ff, $17
- db $1b, $15
- db $ff, $18
- db $1c, $16
- db $ff, $23
- db $1d, $17
- db $14, $1a
- db $1e, $09
- db $15, $1b
- db $1f, $19
- db $16, $1c
- db $20, $1a
- db $17, $1d
- db $21, $1b
- db $18, $2b
- db $22, $1c
- db $19, $1f
- db $26, $0e
- db $1a, $20
- db $27, $1e
- db $1b, $21
- db $28, $1f
- db $1c, $22
- db $29, $20
- db $1d, $2c
- db $2a, $21
- db $ff, $24
- db $2b, $18
- db $ff, $25
- db $2b, $23
- db $ff, $ff
- db $2b, $24
- db $1e, $27
- db $2e, $13
- db $1f, $28
- db $2e, $26
- db $20, $29
- db $2e, $27
- db $21, $2a
- db $2e, $28
- db $22, $ff
- db $2e, $29
- db $23, $ff
- db $2c, $1d
- db $2b, $ff
- db $2f, $22
- db $0f, $2e
- db $ff, $ff
- db $26, $2f
- db $ff, $2d
- db $2c, $ff
- db $ff, $2e
-; 11cf79
-
-String_11cf79: ; 11cf79
-; Hiragana table
- db "あいうえお なにぬねの や ゆ よ"
- next "かきくけこ はひふへほ わ"
- next "さしすせそ まみむめも そのた"
- next "たちつてと らりるれろ"
- db "@"
-; 11cfb5
-
-Function11cfb5: ; 11cfb5 (47:4fb5)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 11cfba (47:4fba)
-
-Unknown_11cfba:
- db 0, 0 ; start coords
- db 20, 6 ; end coords
-
-Unknown_11cfbe:
- db 0, 14 ; start coords
- db 20, 4 ; end coords
-
-Unknown_11cfc2:
- db 0, 6 ; start coords
- db 20, 10 ; end coords
-
-Unknown_11cfc6:
- db 0, 12 ; start coords
- db 20, 6 ; end coords
-
-Unknown_11cfca:
- db 14, 7 ; start coords
- db 6, 5 ; end coords
-; 11cfce
-
-Function11cfce: ; 11cfce (47:4fce)
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.add_n_times
- jr z, .done_add_n_times
- add hl, bc
- dec a
- jr .add_n_times
-.done_add_n_times
- pop af
- ld c, a
- ld b, 0
- add hl, bc
- push hl
- ld a, $79
- ld [hli], a
- ld a, [de]
- inc de
- dec a
- dec a
- jr z, .skip_fill
- ld c, a
- ld a, $7a
-.fill_loop
- ld [hli], a
- dec c
- jr nz, .fill_loop
-.skip_fill
- ld a, $7b
- ld [hl], a
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld a, [de]
- dec de
- dec a
- dec a
- jr z, .skip_section
- ld b, a
-.loop
- push hl
- ld a, $7c
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .skip_row
- ld c, a
- ld a, $7f
-.row_loop
- ld [hli], a
- dec c
- jr nz, .row_loop
-.skip_row
- ld a, $7c
- ld [hl], a
- pop hl
- push bc
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop
-.skip_section
- ld a, $7d
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .skip_remainder
- ld c, a
- ld a, $7a
-.final_loop
- ld [hli], a
- dec c
- jr nz, .final_loop
-.skip_remainder
- ld a, $7e
- ld [hl], a
- ret
-
-Function11d035: ; 11d035 (47:5035)
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.add_n_times
- jr z, .done_add_n_times
- add hl, bc
- dec a
- jr .add_n_times
-.done_add_n_times
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- push hl
- ld a, $79
- ld [hl], a
- pop hl
- push hl
- ld a, [de]
- dec a
- inc de
- ld c, a
- add hl, bc
- ld a, $7b
- ld [hl], a
- call .AddNMinusOneTimes
- ld a, $7e
- ld [hl], a
- pop hl
- push hl
- call .AddNMinusOneTimes
- ld a, $7d
- ld [hl], a
- pop hl
- push hl
- inc hl
- push hl
- call .AddNMinusOneTimes
- pop bc
- dec de
- ld a, [de]
- cp $2
- jr z, .skip
- dec a
- dec a
-.loop
- push af
- ld a, $7a
- ld [hli], a
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .loop
-.skip
- pop hl
- ld bc, $14
- add hl, bc
- push hl
- ld a, [de]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- inc de
- ld a, [de]
- cp $2
- ret z
- push bc
- dec a
- dec a
- ld c, a
- ld b, a
- ld de, $14
-.loop2
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .loop2
- pop hl
-.loop3
- ld a, $7c
- ld [hl], a
- add hl, de
- dec b
- jr nz, .loop3
- ret
-
-.AddNMinusOneTimes: ; 11d0ac (47:50ac)
- ld a, [de]
- dec a
- ld bc, SCREEN_WIDTH
-.add_n_minus_one_times
- add hl, bc
- dec a
- jr nz, .add_n_minus_one_times
- ret
-
-AnimateEZChatCursor: ; 11d0b6 (47:50b6)
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.Jumptable:
- dw .zero
- dw .one
- dw .two
- dw .three
- dw .four
- dw .five
- dw .six
- dw .seven
- dw .eight
- dw .nine
- dw .ten
-
-.zero ; 11d0dd (47:50dd)
- ld a, [wcd20] ; wcd20
- sla a
- ld hl, .Coords_Zero
- ld e, $1
- jr .load
-
-.one ; 11d0e9 (47:50e9)
- ld a, [wcd21]
- sla a
- ld hl, .Coords_One
- ld e, $2
- jr .load
-
-.two ; 11d0f5 (47:50f5)
- ld hl, .FramesetsIDs_Two
- ld a, [wcd22]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call ReinitSpriteAnimFrame
-
- ld a, [wcd22]
- sla a
- ld hl, .Coords_Two
- ld e, $4
- jr .load
-
-.three ; 11d10f (47:510f)
- ld a, SPRITE_ANIM_FRAMESET_27
- call ReinitSpriteAnimFrame
- ld a, [wMobileCommsJumptableIndex]
- sla a
- ld hl, .Coords_Three
- ld e, $8
-.load ; 11d11e (47:511e)
- push de
- ld e, a
- ld d, $0
- add hl, de
- push hl
- pop de
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- pop de
- ld a, e
- call .UpdateObjectFlags
- ret
-
-.four ; 11d134 (47:5134)
- ld a, SPRITE_ANIM_FRAMESET_27
- call ReinitSpriteAnimFrame
- ld a, [wcd2a]
- sla a
- ld hl, .Coords_Four
- ld e, $10
- jr .load
-
-.five ; 11d145 (47:5145)
- ld a, SPRITE_ANIM_FRAMESET_27
- call ReinitSpriteAnimFrame
- ld a, [wcd2c]
- sla a
- ld hl, .Coords_Five
- ld e, $20
- jr .load
-
-.six ; 11d156 (47:5156)
- ld a, SPRITE_ANIM_FRAMESET_2A
- call ReinitSpriteAnimFrame
- ; X = [wcd4a] * 8 + 24
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- add $18
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld [hli], a
- ; Y = 48
- ld a, $30
- ld [hl], a
-
- ld a, $1
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.seven ; 11d175 (47:5175)
- ld a, [wEZChatCursorYCoord]
- cp $4
- jr z, .frameset_26
- ld a, SPRITE_ANIM_FRAMESET_28
- jr .got_frameset
-
-.frameset_26
- ld a, SPRITE_ANIM_FRAMESET_26
-.got_frameset
- call ReinitSpriteAnimFrame
- ld a, [wEZChatCursorYCoord]
- cp $4
- jr z, .asm_11d1b1
- ; X = [wEZChatCursorXCoord] * 8 + 32
- ld a, [wEZChatCursorXCoord]
- sla a
- sla a
- sla a
- add $20
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld [hli], a
- ; Y = [wEZChatCursorYCoord] * 16 + 72
- ld a, [wEZChatCursorYCoord]
- sla a
- sla a
- sla a
- sla a
- add $48
- ld [hl], a
- ld a, $2
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.asm_11d1b1
- ; X = [wEZChatCursorXCoord] * 40 + 24
- ld a, [wEZChatCursorXCoord]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- sla a
- add e
- add $18
- ld hl, SPRITEANIMSTRUCT_XCOORD
- add hl, bc
- ld [hli], a
- ; Y = 138
- ld a, $8a
- ld [hl], a
- ld a, $2
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.nine ; 11d1d1 (47:51d1)
- ld d, -13 * 8
- ld a, SPRITE_ANIM_FRAMESET_2C
- jr .eight_nine_load
-
-.eight ; 11d1d7 (47:51d7)
- ld d, 2 * 8
- ld a, SPRITE_ANIM_FRAMESET_2B
-.eight_nine_load ; 11d1db (47:51db)
- push de
- call ReinitSpriteAnimFrame
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- add e
- add 8 * 8
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld [hld], a
- pop af
- ld [hl], a
- ld a, $4
- ld e, a
- call .UpdateObjectFlags
- ret
-
-.ten ; 11d1fc (47:51fc)
- ld a, SPRITE_ANIM_FRAMESET_26
- call ReinitSpriteAnimFrame
- ld a, $8
- ld e, a
- call .UpdateObjectFlags
- ret
-; 11d208 (47:5208)
-
-.Coords_Zero: ; 11d208
- dbpixel 1, 3, 5, 2
- dbpixel 7, 3, 5, 2
- dbpixel 13, 3, 5, 2
- dbpixel 1, 5, 5, 2
- dbpixel 7, 5, 5, 2
- dbpixel 13, 5, 5, 2
- dbpixel 1, 17, 5, 2
- dbpixel 7, 17, 5, 2
- dbpixel 13, 17, 5, 2
-
-.Coords_One: ; 11d21a
- dbpixel 1, 8, 5, 2
- dbpixel 7, 8, 5, 2
- dbpixel 13, 8, 5, 2
- dbpixel 1, 10, 5, 2
- dbpixel 7, 10, 5, 2
- dbpixel 13, 10, 5, 2
- dbpixel 1, 12, 5, 2
- dbpixel 7, 12, 5, 2
- dbpixel 13, 12, 5, 2
- dbpixel 1, 14, 5, 2
- dbpixel 7, 14, 5, 2
- dbpixel 13, 14, 5, 2
- dbpixel 1, 16, 5, 2
- dbpixel 7, 16, 5, 2
- dbpixel 13, 16, 5, 2
- dbpixel 1, 18, 5, 2
- dbpixel 7, 18, 5, 2
- dbpixel 13, 18, 5, 2
-
-.Coords_Two: ; 11d23e
- dbpixel 2, 9 ; 00
- dbpixel 3, 9 ; 01
- dbpixel 4, 9 ; 02
- dbpixel 5, 9 ; 03
- dbpixel 6, 9 ; 04
- dbpixel 2, 11 ; 05
- dbpixel 3, 11 ; 06
- dbpixel 4, 11 ; 07
- dbpixel 5, 11 ; 08
- dbpixel 6, 11 ; 09
- dbpixel 2, 13 ; 0a
- dbpixel 3, 13 ; 0b
- dbpixel 4, 13 ; 0c
- dbpixel 5, 13 ; 0d
- dbpixel 6, 13 ; 0e
- dbpixel 2, 15 ; 0f
- dbpixel 3, 15 ; 10
- dbpixel 4, 15 ; 11
- dbpixel 5, 15 ; 12
- dbpixel 6, 15 ; 13
- dbpixel 8, 9 ; 14
- dbpixel 9, 9 ; 15
- dbpixel 10, 9 ; 16
- dbpixel 11, 9 ; 17
- dbpixel 12, 9 ; 18
- dbpixel 8, 11 ; 19
- dbpixel 9, 11 ; 1a
- dbpixel 10, 11 ; 1b
- dbpixel 11, 11 ; 1c
- dbpixel 12, 11 ; 1d
- dbpixel 8, 13 ; 1e
- dbpixel 9, 13 ; 1f
- dbpixel 10, 13 ; 20
- dbpixel 11, 13 ; 21
- dbpixel 12, 13 ; 22
- dbpixel 14, 9 ; 23
- dbpixel 16, 9 ; 24
- dbpixel 18, 9 ; 25
- dbpixel 8, 15 ; 26
- dbpixel 9, 15 ; 27
- dbpixel 10, 15 ; 28
- dbpixel 11, 15 ; 29
- dbpixel 12, 15 ; 2a
- dbpixel 14, 11 ; 2b
- dbpixel 14, 13 ; 2c
- dbpixel 1, 18, 5, 2 ; 2d
- dbpixel 7, 18, 5, 2 ; 2e
- dbpixel 13, 18, 5, 2 ; 2f
-
-.Coords_Three: ; 11d29e
- dbpixel 2, 10
- dbpixel 8, 10
- dbpixel 14, 10
- dbpixel 2, 12
- dbpixel 8, 12
- dbpixel 14, 12
- dbpixel 2, 14
- dbpixel 8, 14
- dbpixel 14, 14
- dbpixel 2, 16
- dbpixel 8, 16
- dbpixel 14, 16
-
-.Coords_Four: ; 11d2b6
- dbpixel 16, 10
- dbpixel 16, 12
-
-.Coords_Five: ; 11d2ba
- dbpixel 4, 10
- dbpixel 4, 12
-
-.FramesetsIDs_Two: ; 11d2be
- db SPRITE_ANIM_FRAMESET_28 ; 00
- db SPRITE_ANIM_FRAMESET_28 ; 01
- db SPRITE_ANIM_FRAMESET_28 ; 02
- db SPRITE_ANIM_FRAMESET_28 ; 03
- db SPRITE_ANIM_FRAMESET_28 ; 04
- db SPRITE_ANIM_FRAMESET_28 ; 05
- db SPRITE_ANIM_FRAMESET_28 ; 06
- db SPRITE_ANIM_FRAMESET_28 ; 07
- db SPRITE_ANIM_FRAMESET_28 ; 08
- db SPRITE_ANIM_FRAMESET_28 ; 09
- db SPRITE_ANIM_FRAMESET_28 ; 0a
- db SPRITE_ANIM_FRAMESET_28 ; 0b
- db SPRITE_ANIM_FRAMESET_28 ; 0c
- db SPRITE_ANIM_FRAMESET_28 ; 0d
- db SPRITE_ANIM_FRAMESET_28 ; 0e
- db SPRITE_ANIM_FRAMESET_28 ; 0f
- db SPRITE_ANIM_FRAMESET_28 ; 10
- db SPRITE_ANIM_FRAMESET_28 ; 11
- db SPRITE_ANIM_FRAMESET_28 ; 12
- db SPRITE_ANIM_FRAMESET_28 ; 13
- db SPRITE_ANIM_FRAMESET_28 ; 14
- db SPRITE_ANIM_FRAMESET_28 ; 15
- db SPRITE_ANIM_FRAMESET_28 ; 16
- db SPRITE_ANIM_FRAMESET_28 ; 17
- db SPRITE_ANIM_FRAMESET_28 ; 18
- db SPRITE_ANIM_FRAMESET_28 ; 19
- db SPRITE_ANIM_FRAMESET_28 ; 1a
- db SPRITE_ANIM_FRAMESET_28 ; 1b
- db SPRITE_ANIM_FRAMESET_28 ; 1c
- db SPRITE_ANIM_FRAMESET_28 ; 1d
- db SPRITE_ANIM_FRAMESET_28 ; 1e
- db SPRITE_ANIM_FRAMESET_28 ; 1f
- db SPRITE_ANIM_FRAMESET_28 ; 20
- db SPRITE_ANIM_FRAMESET_28 ; 21
- db SPRITE_ANIM_FRAMESET_28 ; 22
- db SPRITE_ANIM_FRAMESET_28 ; 23
- db SPRITE_ANIM_FRAMESET_28 ; 24
- db SPRITE_ANIM_FRAMESET_28 ; 25
- db SPRITE_ANIM_FRAMESET_28 ; 26
- db SPRITE_ANIM_FRAMESET_28 ; 27
- db SPRITE_ANIM_FRAMESET_28 ; 28
- db SPRITE_ANIM_FRAMESET_28 ; 29
- db SPRITE_ANIM_FRAMESET_28 ; 2a
- db SPRITE_ANIM_FRAMESET_28 ; 2b
- db SPRITE_ANIM_FRAMESET_29 ; 2c
- db SPRITE_ANIM_FRAMESET_26 ; 2d
- db SPRITE_ANIM_FRAMESET_26 ; 2e
- db SPRITE_ANIM_FRAMESET_26 ; 2f
-
-.UpdateObjectFlags: ; 11d2ee (47:52ee)
- ld hl, wcd24
- and [hl]
- jr nz, .update_y_offset
- ld a, e
- ld hl, wcd23
- and [hl]
- jr z, .reset_y_offset
- ld hl, SPRITEANIMSTRUCT_0E
- add hl, bc
- ld a, [hl]
- and a
- jr z, .flip_bit_0
- dec [hl]
- ret
-
-.flip_bit_0
- ld a, $0
- ld [hld], a
- ld a, $1
- xor [hl]
- ld [hl], a
- and a
- jr nz, .update_y_offset
-.reset_y_offset
- ld hl, SPRITEANIMSTRUCT_YOFFSET
- add hl, bc
- xor a
- ld [hl], a
- ret
-
-.update_y_offset
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, $b0
- sub [hl]
- ld hl, SPRITEANIMSTRUCT_YOFFSET
- add hl, bc
- ld [hl], a
- ret
-
-Function11d323: ; 11d323
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_11d33a
- ld de, UnknBGPals
- ld bc, 16 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 11d33a
-
-Palette_11d33a:
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 16, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 23, 17, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; 11d3ba
-
-EZChat_GetSeenPokemonByKana: ; 11d3ba
- ld a, [rSVBK]
- push af
- ld hl, $c648
- ld a, w5_d800 % $100
- ld [wcd2d], a
- ld [hli], a
- ld a, w5_d800 / $100
- ld [wcd2e], a
- ld [hl], a
-
- ld a, SortedPokemon % $100
- ld [wcd2f], a
- ld a, SortedPokemon / $100
- ld [wcd30], a
-
- ld a, $c6a8 % $100
- ld [wcd31], a
- ld a, $c6a8 / $100
- ld [wcd32], a
-
- ld a, $c64a % $100
- ld [wcd33], a
- ld a, $c64a / $100
- ld [wcd34], a
-
- ld hl, EZChat_SortedWords
- ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4
-
-.MasterLoop: ; 11d3ef
- push af
-; read row
-; offset
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
-; size
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-; save the pointer to the next row
- push hl
-; add de to w3_d000
- ld hl, w3_d000
- add hl, de
-; recover de from wcd2d (default: w5_d800)
- ld a, [wcd2d]
- ld e, a
- ld a, [wcd2e]
- ld d, a
-; save bc for later
- push bc
-
-.loop1
-; copy 2*bc bytes from 3:hl to 5:de
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
-
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
-
- dec bc
- ld a, c
- or b
- jr nz, .loop1
-
-; recover the pointer from wcd2f (default: SortedPokemon)
- ld a, [wcd2f]
- ld l, a
- ld a, [wcd30]
- ld h, a
-; copy the pointer from [hl] to bc
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-; store the pointer to the next pointer back in wcd2f
- ld a, l
- ld [wcd2f], a
- ld a, h
- ld [wcd30], a
-; push pop that pointer to hl
- push bc
- pop hl
- ld c, $0
-.loop2
-; Have you seen this Pokemon?
- ld a, [hl]
- cp $ff
- jr z, .done
- call .CheckSeenMon
- jr nz, .next
-; If not, skip it.
- inc hl
- jr .loop2
-
-.next
-; If so, append it to the list at 5:de, and increase the count.
- ld a, [hli]
- ld [de], a
- inc de
- xor a
- ld [de], a
- inc de
- inc c
- jr .loop2
-
-.done
-; Remember the original value of bc from the table?
-; Well, the stack remembers it, and it's popping it to hl.
- pop hl
-; Add the number of seen Pokemon from the list.
- ld b, $0
- add hl, bc
-; Push pop to bc.
- push hl
- pop bc
-; Load the pointer from [wcd31] (default: $c6a8)
- ld a, [wcd31]
- ld l, a
- ld a, [wcd32]
- ld h, a
-; Save the quantity from bc to [hl]
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
-; Save the new value of hl to [wcd31]
- ld a, l
- ld [wcd31], a
- ld a, h
- ld [wcd32], a
-; Recover the pointer from [wcd33] (default: $c64a)
- ld a, [wcd33]
- ld l, a
- ld a, [wcd34]
- ld h, a
-; Save the current value of de there
- ld a, e
- ld [wcd2d], a
- ld [hli], a
- ld a, d
- ld [wcd2e], a
-; Save the new value of hl back to [wcd33]
- ld [hli], a
- ld a, l
- ld [wcd33], a
- ld a, h
- ld [wcd34], a
-; Next row
- pop hl
- pop af
- dec a
- jr z, .ExitMasterLoop
- jp .MasterLoop
-
-.ExitMasterLoop:
- pop af
- ld [rSVBK], a
- ret
-; 11d493
-
-.CheckSeenMon: ; 11d493
- push hl
- push bc
- push de
- dec a
- ld hl, rSVBK
- ld e, $1
- ld [hl], e
- call CheckSeenMon
- ld hl, rSVBK
- ld e, $5
- ld [hl], e
- pop de
- pop bc
- pop hl
- ret
-; 11d4aa
-
-EZChat_GetCategoryWordsByKana: ; 11d4aa
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-
- ; load pointers
- ld hl, MobileEZChatCategoryPointers
- ld bc, MobileEZChatData_WordAndPageCounts
-
- ; init WRAM registers
- xor a
- ld [wcd2d], a
- inc a
- ld [wcd2e], a
-
- ; enter the first loop
- ld a, 14
-.loop1
- push af
-
- ; load the pointer to the category
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
-
- ; skip to the attributes
- ld hl, 5 ; length of a string
- add hl, de
-
- ; get the number of words in the category
- ld a, [bc] ; number of entries to copy
- inc bc
- inc bc
- push bc
-
-.loop2
- push af
- push hl
-
- ; load offset at [hl]
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
-
- ; add to w3_d000
- ld hl, w3_d000
- add hl, de
-
- ; copy from wcd2d and increment [wcd2d] in place
- ld a, [wcd2d]
- ld [hli], a
- inc a
- ld [wcd2d], a
-
- ; copy from wcd2e
- ld a, [wcd2e]
- ld [hl], a
-
- ; next entry
- pop hl
- ld de, 8
- add hl, de
- pop af
- dec a
- jr nz, .loop2
-
- ; reset and go to next category
- ld hl, wcd2d
- xor a
- ld [hli], a
- inc [hl]
- pop bc
- pop hl
- pop af
- dec a
- jr nz, .loop1
- pop af
- ld [rSVBK], a
- ret
-; 11d4fe
-
-SortedPokemon:
-; Pokemon sorted by kana.
-; Notably, Rhydon is missing.
- dw .a
- dw .i
- dw .u
- dw .e
- dw .o
- dw .ka_ga
- dw .ki_gi
- dw .ku_gu
- dw .ke_ge
- dw .ko_go
- dw .sa_za
- dw .shi_ji
- dw .su_zu
- dw .se_ze
- dw .so_zo
- dw .ta_da
- dw .chi_dhi
- dw .tsu_du
- dw .te_de
- dw .to_do
- dw .na
- dw .ni
- dw .nu
- dw .ne
- dw .no
- dw .ha_ba_pa
- dw .hi_bi_pi
- dw .fu_bu_pu
- dw .he_be_pe
- dw .ho_bo_po
- dw .ma
- dw .mi
- dw .mu
- dw .me
- dw .mo
- dw .ya
- dw .yu
- dw .yo
- dw .ra
- dw .ri
- dw .ru
- dw .re
- dw .ro
- dw .wa
- dw .end
-
-.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1
-.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1
-.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1
-.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1
-.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1
-.ka_ga db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1
-.ki_gi db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1
-.ku_gu db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1
-.ke_ge db ABRA, GENGAR, TAUROS, -1
-.ko_go db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1
-.sa_za db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list
-.shi_ji db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1
-.su_zu db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1
-.se_ze db SQUIRTLE, CELEBI, -1
-.so_zo db WOBBUFFET, -1
-.ta_da db DUGTRIO, HORSEA, EXEGGCUTE, -1
-.chi_dhi db CHIKORITA, CHINCHOU, -1
-.tsu_du db SHUCKLE, -1
-.te_de db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1
-.to_do db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1
-.na db ODDISH, EXEGGUTOR, -1
-.ni db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1
-.nu db QUAGSIRE, -1
-.ne db NATU, XATU, -1
-.no db DUNSPARCE, -1
-.ha_ba_pa db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1
-.hi_bi_pi db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1
-.fu_bu_pu db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1
-.he_be_pe db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1
-.ho_bo_po db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1
-.ma db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1
-.mi db DRATINI, MEW, MEWTWO, MILTANK, -1
-.mu db MISDREAVUS, SMOOCHUM, -1
-.me db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1
-.mo db FLAAFFY, VENOMOTH, TANGELA, -1
-.ya db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1
-.yu db KADABRA, -1
-.yo db LARVITAR, NOCTOWL, -1
-.ra db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1
-.ri db CHARMELEON, CHARIZARD, URSARING, -1
-.ru db JYNX, LUGIA, -1
-.re db MAGNETON, LEDIAN, LEDYBA, -1
-.ro db VULPIX, -1
-.wa db JUMPLUFF, TOTODILE, MACHOP;, -1
-.end db -1
-; 11d67e
-
-GFX_11d67e:
-INCBIN "gfx/pokedex/select_start.2bpp"
-; 11d6de
-
-LZ_11d6de:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-; 11da52
-
-MobileEZChatCategoryNames: ; 11da52
-; Fixed message categories
- db "ポケモン@@" ; 00
- db "タイプ@@@" ; 01
- db "あいさつ@@" ; 02
- db "ひと@@@@" ; 03
- db "バトル@@@" ; 04
- db "こえ@@@@" ; 05
- db "かいわ@@@" ; 06
- db "きもち@@@" ; 07
- db "じょうたい@" ; 08
- db "せいかつ@@" ; 09
- db "しゅみ@@@" ; 0a
- db "こうどう@@" ; 0b
- db "じかん@@@" ; 0c
- db "むすび@@@" ; 0d
- db "あれこれ@@" ; 0e
-; 11daac
-
-MobileEZChatCategoryPointers: ; 11daac
-; entries correspond to EZCHAT_* constants
- dw .Types ; 01
- dw .Greetings ; 02
- dw .People ; 03
- dw .Battle ; 04
- dw .Exclamations ; 05
- dw .Conversation ; 06
- dw .Feelings ; 07
- dw .Conditions ; 08
- dw .Life ; 09
- dw .Hobbies ; 0a
- dw .Actions ; 0b
- dw .Time ; 0c
- dw .Farewells ; 0d
- dw .ThisAndThat ; 0e
-
-.Types: ; 11dac8
- db "あく@@@", $26, $0, $0
- db "いわ@@@", $aa, $0, $0
- db "エスパー@", $da, $0, $0
- db "かくとう@", $4e, $1, $0
- db "くさ@@@", $ba, $1, $0
- db "ゴースト@", $e4, $1, $0
- db "こおり@@", $e6, $1, $0
- db "じめん@@", $68, $2, $0
- db "タイプ@@", $e8, $2, $0
- db "でんき@@", $8e, $3, $0
- db "どく@@@", $ae, $3, $0
- db "ドラゴン@", $bc, $3, $0
- db "ノーマル@", $22, $4, $0
- db "はがね@@", $36, $4, $0
- db "ひこう@@", $5e, $4, $0
- db "ほのお@@", $b2, $4, $0
- db "みず@@@", $f4, $4, $0
- db "むし@@@", $12, $5, $0
-
-.Greetings: ; 11db58
- db "ありがと@", $58, $0, $0
- db "ありがとう", $5a, $0, $0
- db "いくぜ!@", $80, $0, $0
- db "いくよ!@", $82, $0, $0
- db "いくわよ!", $84, $0, $0
- db "いやー@@", $a6, $0, $0
- db "おっす@@", $a, $1, $0
- db "おはつです", $22, $1, $0
- db "おめでとう", $2a, $1, $0
- db "ごめん@@", $f8, $1, $0
- db "ごめんよ@", $fa, $1, $0
- db "こらっ@@", $fc, $1, $0
- db "こんちは!", $a, $2, $0
- db "こんにちは", $10, $2, $0
- db "さようなら", $28, $2, $0
- db "サンキュー", $2e, $2, $0
- db "さんじょう", $30, $2, $0
- db "しっけい@", $48, $2, $0
- db "しつれい@", $4c, $2, $0
- db "じゃーね@", $6c, $2, $0
- db "すいません", $8c, $2, $0
- db "それじゃ@", $ca, $2, $0
- db "どうも@@", $a6, $3, $0
- db "なんじゃ@", $ee, $3, $0
- db "ハーイ@@", $2c, $4, $0
- db "はいはい@", $32, $4, $0
- db "バイバイ@", $34, $4, $0
- db "へイ@@@", $8a, $4, $0
- db "またね@@", $de, $4, $0
- db "もしもし@", $32, $5, $0
- db "やあ@@@", $3e, $5, $0
- db "やっほー@", $4e, $5, $0
- db "よう@@@", $62, $5, $0
- db "ようこそ@", $64, $5, $0
- db "よろしく@", $80, $5, $0
- db "らっしゃい", $94, $5, $0
-
-.People: ; 11dc78
- db "あいて@@", $1c, $0, $0
- db "あたし@@", $36, $0, $0
- db "あなた@@", $40, $0, $0
- db "あなたが@", $42, $0, $0
- db "あなたに@", $44, $0, $0
- db "あなたの@", $46, $0, $0
- db "あなたは@", $48, $0, $0
- db "あなたを@", $4a, $0, $0
- db "おかあさん", $e8, $0, $0
- db "おじいさん", $fc, $0, $0
- db "おじさん@", $2, $1, $0
- db "おとうさん", $e, $1, $0
- db "おとこのこ", $10, $1, $0
- db "おとな@@", $14, $1, $0
- db "おにいさん", $16, $1, $0
- db "おねえさん", $18, $1, $0
- db "おばあさん", $1c, $1, $0
- db "おばさん@", $20, $1, $0
- db "おれさま@", $34, $1, $0
- db "おんなのこ", $3a, $1, $0
- db "ガール@@", $40, $1, $0
- db "かぞく@@", $52, $1, $0
- db "かのじょ@", $72, $1, $0
- db "かれ@@@", $7c, $1, $0
- db "きみ@@@", $9a, $1, $0
- db "きみが@@", $9c, $1, $0
- db "きみに@@", $9e, $1, $0
- db "きみの@@", $a0, $1, $0
- db "きみは@@", $a2, $1, $0
- db "きみを@@", $a4, $1, $0
- db "ギャル@@", $ae, $1, $0
- db "きょうだい", $b2, $1, $0
- db "こども@@", $f0, $1, $0
- db "じぶん@@", $54, $2, $0
- db "じぶんが@", $56, $2, $0
- db "じぶんに@", $58, $2, $0
- db "じぶんの@", $5a, $2, $0
- db "じぶんは@", $5c, $2, $0
- db "じぶんを@", $5e, $2, $0
- db "だれ@@@", $18, $3, $0
- db "だれか@@", $1a, $3, $0
- db "だれが@@", $1c, $3, $0
- db "だれに@@", $1e, $3, $0
- db "だれの@@", $20, $3, $0
- db "だれも@@", $22, $3, $0
- db "だれを@@", $24, $3, $0
- db "ちゃん@@", $38, $3, $0
- db "ともだち@", $b8, $3, $0
- db "なかま@@", $d4, $3, $0
- db "ひと@@@", $62, $4, $0
- db "ボーイ@@", $98, $4, $0
- db "ボク@@@", $a0, $4, $0
- db "ボクが@@", $a2, $4, $0
- db "ボクに@@", $a4, $4, $0
- db "ボクの@@", $a6, $4, $0
- db "ボクは@@", $a8, $4, $0
- db "ボクを@@", $aa, $4, $0
- db "みんな@@", $4, $5, $0
- db "みんなが@", $6, $5, $0
- db "みんなに@", $8, $5, $0
- db "みんなの@", $a, $5, $0
- db "みんなは@", $c, $5, $0
- db "ライバル@", $8a, $5, $0
- db "わたし@@", $c2, $5, $0
- db "わたしが@", $c4, $5, $0
- db "わたしに@", $c6, $5, $0
- db "わたしの@", $c8, $5, $0
- db "わたしは@", $ca, $5, $0
- db "わたしを@", $cc, $5, $0
-
-.Battle: ; 11dea0
- db "あいしょう", $18, $0, $0
- db "いけ!@@", $88, $0, $0
- db "いちばん@", $96, $0, $0
- db "かくご@@", $4c, $1, $0
- db "かたせて@", $54, $1, $0
- db "かち@@@", $56, $1, $0
- db "かつ@@@", $58, $1, $0
- db "かった@@", $60, $1, $0
- db "かったら@", $62, $1, $0
- db "かって@@", $64, $1, $0
- db "かてない@", $66, $1, $0
- db "かてる@@", $68, $1, $0
- db "かなわない", $70, $1, $0
- db "きあい@@", $84, $1, $0
- db "きめた@@", $a8, $1, $0
- db "きりふだ@", $b6, $1, $0
- db "くらえ@@", $c2, $1, $0
- db "こい!@@", $da, $1, $0
- db "こうげき@", $e0, $1, $0
- db "こうさん@", $e2, $1, $0
- db "こんじょう", $8, $2, $0
- db "さいのう@", $16, $2, $0
- db "さくせん@", $1a, $2, $0
- db "さばき@@", $22, $2, $0
- db "しょうぶ@", $7e, $2, $0
- db "しょうり@", $80, $2, $0
- db "せめ@@@", $b4, $2, $0
- db "センス@@", $b6, $2, $0
- db "たいせん@", $e6, $2, $0
- db "たたかい@", $f6, $2, $0
- db "ちから@@", $32, $3, $0
- db "チャレンジ", $36, $3, $0
- db "つよい@@", $58, $3, $0
- db "つよすぎ@", $5a, $3, $0
- db "つらい@@", $5c, $3, $0
- db "つらかった", $5e, $3, $0
- db "てかげん@", $6c, $3, $0
- db "てき@@@", $6e, $3, $0
- db "てんさい@", $90, $3, $0
- db "でんせつ@", $94, $3, $0
- db "トレーナー", $c6, $3, $0
- db "にげ@@@", $4, $4, $0
- db "ぬるい@@", $10, $4, $0
- db "ねらう@@", $16, $4, $0
- db "バトル@@", $4a, $4, $0
- db "ファイト@", $72, $4, $0
- db "ふっかつ@", $78, $4, $0
- db "ポイント@", $94, $4, $0
- db "ポケモン@", $ac, $4, $0
- db "ほんき@@", $bc, $4, $0
- db "まいった!", $c4, $4, $0
- db "まけ@@@", $c8, $4, $0
- db "まけたら@", $ca, $4, $0
- db "まけて@@", $cc, $4, $0
- db "まける@@", $ce, $4, $0
- db "まもり@@", $ea, $4, $0
- db "みかた@@", $f2, $4, $0
- db "みとめない", $fe, $4, $0
- db "みとめる@", $0, $5, $0
- db "むてき@@", $16, $5, $0
- db "もらった!", $3c, $5, $0
- db "よゆう@@", $7a, $5, $0
- db "よわい@@", $82, $5, $0
- db "よわすぎ@", $84, $5, $0
- db "らくしょう", $8e, $5, $0
- db "りーダー@", $9e, $5, $0
- db "ルール@@", $a0, $5, $0
- db "レべル@@", $a6, $5, $0
- db "わざ@@@", $be, $5, $0
-
-.Exclamations: ; 11e0c8
- db "!@@@@", $0, $0, $0
- db "!!@@@", $2, $0, $0
- db "!?@@@", $4, $0, $0
- db "?@@@@", $6, $0, $0
- db "…@@@@", $8, $0, $0
- db "…!@@@", $a, $0, $0
- db "………@@", $c, $0, $0
- db "ー@@@@", $e, $0, $0
- db "ーーー@@", $10, $0, $0
- db "あーあ@@", $14, $0, $0
- db "あーん@@", $16, $0, $0
- db "あははー@", $52, $0, $0
- db "あら@@@", $54, $0, $0
- db "いえ@@@", $72, $0, $0
- db "イエス@@", $74, $0, $0
- db "うう@@@", $ac, $0, $0
- db "うーん@@", $ae, $0, $0
- db "うおー!@", $b0, $0, $0
- db "うおりゃー", $b2, $0, $0
- db "うひょー@", $bc, $0, $0
- db "うふふ@@", $be, $0, $0
- db "うわー@@", $ca, $0, $0
- db "うわーん@", $cc, $0, $0
- db "ええ@@@", $d2, $0, $0
- db "えー@@@", $d4, $0, $0
- db "えーん@@", $d6, $0, $0
- db "えへへ@@", $dc, $0, $0
- db "おいおい@", $e0, $0, $0
- db "おお@@@", $e2, $0, $0
- db "おっと@@", $c, $1, $0
- db "がーん@@", $42, $1, $0
- db "キャー@@", $aa, $1, $0
- db "ギャー@@", $ac, $1, $0
- db "ぐふふふふ", $bc, $1, $0
- db "げっ@@@", $ce, $1, $0
- db "しくしく@", $3e, $2, $0
- db "ちえっ@@", $2e, $3, $0
- db "てへ@@@", $86, $3, $0
- db "ノー@@@", $20, $4, $0
- db "はあー@@", $2a, $4, $0
- db "はい@@@", $30, $4, $0
- db "はっはっは", $48, $4, $0
- db "ひいー@@", $56, $4, $0
- db "ひゃあ@@", $6a, $4, $0
- db "ふっふっふ", $7c, $4, $0
- db "ふにゃ@@", $7e, $4, $0
- db "ププ@@@", $80, $4, $0
- db "ふふん@@", $82, $4, $0
- db "ふん@@@", $88, $4, $0
- db "へっへっへ", $8e, $4, $0
- db "へへー@@", $90, $4, $0
- db "ほーほほほ", $9c, $4, $0
- db "ほら@@@", $b6, $4, $0
- db "まあ@@@", $c0, $4, $0
- db "むきー!!", $10, $5, $0
- db "むふー@@", $18, $5, $0
- db "むふふ@@", $1a, $5, $0
- db "むむ@@@", $1c, $5, $0
- db "よーし@@", $6a, $5, $0
- db "よし!@@", $72, $5, $0
- db "ラララ@@", $98, $5, $0
- db "わーい@@", $ac, $5, $0
- db "わーん!!", $b0, $5, $0
- db "ワォ@@@", $b2, $5, $0
- db "わっ!!@", $ce, $5, $0
- db "わははは!", $d0, $5, $0
-
-.Conversation: ; 11e2d8
- db "あのね@@", $50, $0, $0
- db "あんまり@", $6e, $0, $0
- db "いじわる@", $8e, $0, $0
- db "うそ@@@", $b6, $0, $0
- db "うむ@@@", $c4, $0, $0
- db "おーい@@", $e4, $0, $0
- db "おすすめ@", $6, $1, $0
- db "おばかさん", $1e, $1, $0
- db "かなり@@", $6e, $1, $0
- db "から@@@", $7a, $1, $0
- db "きぶん@@", $98, $1, $0
- db "けど@@@", $d6, $1, $0
- db "こそ@@@", $ea, $1, $0
- db "こと@@@", $ee, $1, $0
- db "さあ@@@", $12, $2, $0
- db "さっぱり@", $1e, $2, $0
- db "さて@@@", $20, $2, $0
- db "じゅうぶん", $72, $2, $0
- db "すぐ@@@", $94, $2, $0
- db "すごく@@", $98, $2, $0
- db "すこしは@", $9a, $2, $0
- db "すっっごい", $a0, $2, $0
- db "ぜーんぜん", $b0, $2, $0
- db "ぜったい@", $b2, $2, $0
- db "それで@@", $ce, $2, $0
- db "だけ@@@", $f2, $2, $0
- db "だって@@", $fc, $2, $0
- db "たぶん@@", $6, $3, $0
- db "たら@@@", $14, $3, $0
- db "ちょー@@", $3a, $3, $0
- db "ちょっと@", $3c, $3, $0
- db "ったら@@", $4e, $3, $0
- db "って@@@", $50, $3, $0
- db "ていうか@", $62, $3, $0
- db "でも@@@", $88, $3, $0
- db "どうしても", $9c, $3, $0
- db "とうぜん@", $a0, $3, $0
- db "どうぞ@@", $a2, $3, $0
- db "とりあえず", $be, $3, $0
- db "なあ@@@", $cc, $3, $0
- db "なんて@@", $f4, $3, $0
- db "なんでも@", $fc, $3, $0
- db "なんとか@", $fe, $3, $0
- db "には@@@", $8, $4, $0
- db "バッチり@", $46, $4, $0
- db "ばりばり@", $52, $4, $0
- db "ほど@@@", $b0, $4, $0
- db "ほんと@@", $be, $4, $0
- db "まさに@@", $d0, $4, $0
- db "マジ@@@", $d2, $4, $0
- db "マジで@@", $d4, $4, $0
- db "まったく@", $e4, $4, $0
- db "まで@@@", $e6, $4, $0
- db "まるで@@", $ec, $4, $0
- db "ムード@@", $e, $5, $0
- db "むしろ@@", $14, $5, $0
- db "めちゃ@@", $24, $5, $0
- db "めっぽう@", $28, $5, $0
- db "もう@@@", $2c, $5, $0
- db "モード@@", $2e, $5, $0
- db "もっと@@", $36, $5, $0
- db "もはや@@", $38, $5, $0
- db "やっと@@", $4a, $5, $0
- db "やっぱり@", $4c, $5, $0
- db "より@@@", $7c, $5, $0
- db "れば@@@", $a4, $5, $0
-
-.Feelings: ; 11e4e8
- db "あいたい@", $1a, $0, $0
- db "あそびたい", $32, $0, $0
- db "いきたい@", $7c, $0, $0
- db "うかれて@", $b4, $0, $0
- db "うれしい@", $c6, $0, $0
- db "うれしさ@", $c8, $0, $0
- db "エキサイト", $d8, $0, $0
- db "えらい@@", $de, $0, $0
- db "おかしい@", $ec, $0, $0
- db "ォッケー@", $8, $1, $0
- db "かえりたい", $48, $1, $0
- db "がっくし@", $5a, $1, $0
- db "かなしい@", $6c, $1, $0
- db "がんばって", $80, $1, $0
- db "きがしない", $86, $1, $0
- db "きがする@", $88, $1, $0
- db "ききたい@", $8a, $1, $0
- db "きになる@", $90, $1, $0
- db "きのせい@", $96, $1, $0
- db "きらい@@", $b4, $1, $0
- db "くやしい@", $be, $1, $0
- db "くやしさ@", $c0, $1, $0
- db "さみしい@", $24, $2, $0
- db "ざんねん@", $32, $2, $0
- db "しあわせ@", $36, $2, $0
- db "したい@@", $44, $2, $0
- db "したくない", $46, $2, $0
- db "しまった@", $64, $2, $0
- db "しょんぼり", $82, $2, $0
- db "すき@@@", $92, $2, $0
- db "だいきらい", $da, $2, $0
- db "たいくつ@", $dc, $2, $0
- db "だいじ@@", $de, $2, $0
- db "だいすき@", $e4, $2, $0
- db "たいへん@", $ea, $2, $0
- db "たのしい@", $0, $3, $0
- db "たのしすぎ", $2, $3, $0
- db "たべたい@", $8, $3, $0
- db "ダメダメ@", $e, $3, $0
- db "たりない@", $16, $3, $0
- db "ちくしょー", $34, $3, $0
- db "どうしよう", $9e, $3, $0
- db "ドキドキ@", $ac, $3, $0
- db "ナイス@@", $d0, $3, $0
- db "のみたい@", $26, $4, $0
- db "びっくり@", $60, $4, $0
- db "ふあん@@", $74, $4, $0
- db "ふらふら@", $86, $4, $0
- db "ほしい@@", $ae, $4, $0
- db "ボロボロ@", $b8, $4, $0
- db "まだまだ@", $e0, $4, $0
- db "まてない@", $e8, $4, $0
- db "まんぞく@", $f0, $4, $0
- db "みたい@@", $f8, $4, $0
- db "めずらしい", $22, $5, $0
- db "メラメラ@", $2a, $5, $0
- db "やだ@@@", $46, $5, $0
- db "やったー@", $48, $5, $0
- db "やばい@@", $50, $5, $0
- db "やばすぎる", $52, $5, $0
- db "やられた@", $54, $5, $0
- db "やられて@", $56, $5, $0
- db "よかった@", $6e, $5, $0
- db "ラブラブ@", $96, $5, $0
- db "ロマン@@", $a8, $5, $0
- db "ろんがい@", $aa, $5, $0
- db "わから@@", $b4, $5, $0
- db "わかり@@", $b6, $5, $0
- db "わくわく@", $ba, $5, $0
-
-.Conditions: ; 11e710
- db "あつい@@", $38, $0, $0
- db "あった@@", $3a, $0, $0
- db "あり@@@", $56, $0, $0
- db "ある@@@", $5e, $0, $0
- db "あわてて@", $6a, $0, $0
- db "いい@@@", $70, $0, $0
- db "いか@@@", $76, $0, $0
- db "イカス@@", $78, $0, $0
- db "いきおい@", $7a, $0, $0
- db "いける@@", $8a, $0, $0
- db "いじょう@", $8c, $0, $0
- db "いそがしい", $90, $0, $0
- db "いっしょに", $9a, $0, $0
- db "いっぱい@", $9c, $0, $0
- db "いない@@", $a0, $0, $0
- db "いや@@@", $a4, $0, $0
- db "いる@@@", $a8, $0, $0
- db "うまい@@", $c0, $0, $0
- db "うまく@@", $c2, $0, $0
- db "おおきい@", $e6, $0, $0
- db "おくれ@@", $f2, $0, $0
- db "おしい@@", $fa, $0, $0
- db "おもしろい", $2c, $1, $0
- db "おもしろく", $2e, $1, $0
- db "かっこいい", $5c, $1, $0
- db "かわいい@", $7e, $1, $0
- db "かんぺき@", $82, $1, $0
- db "けっこう@", $d0, $1, $0
- db "げんき@@", $d8, $1, $0
- db "こわい@@", $6, $2, $0
- db "さいこう@", $14, $2, $0
- db "さむい@@", $26, $2, $0
- db "さわやか@", $2c, $2, $0
- db "しかたない", $38, $2, $0
- db "すごい@@", $96, $2, $0
- db "すごすぎ@", $9c, $2, $0
- db "すてき@@", $a4, $2, $0
- db "たいした@", $e0, $2, $0
- db "だいじょぶ", $e2, $2, $0
- db "たかい@@", $ec, $2, $0
- db "ただしい@", $f8, $2, $0
- db "だめ@@@", $c, $3, $0
- db "ちいさい@", $2c, $3, $0
- db "ちがう@@", $30, $3, $0
- db "つかれ@@", $48, $3, $0
- db "とくい@@", $b0, $3, $0
- db "とまらない", $b6, $3, $0
- db "ない@@@", $ce, $3, $0
- db "なかった@", $d2, $3, $0
- db "なし@@@", $d8, $3, $0
- db "なって@@", $dc, $3, $0
- db "はやい@@", $50, $4, $0
- db "ひかる@@", $5a, $4, $0
- db "ひくい@@", $5c, $4, $0
- db "ひどい@@", $64, $4, $0
- db "ひとりで@", $66, $4, $0
- db "ひま@@@", $68, $4, $0
- db "ふそく@@", $76, $4, $0
- db "へた@@@", $8c, $4, $0
- db "まちがって", $e2, $4, $0
- db "やさしい@", $42, $5, $0
- db "よく@@@", $70, $5, $0
- db "よわって@", $86, $5, $0
- db "らく@@@", $8c, $5, $0
- db "らしい@@", $90, $5, $0
- db "わるい@@", $d4, $5, $0
-
-.Life: ; 11e920
- db "アルバイト", $64, $0, $0
- db "うち@@@", $ba, $0, $0
- db "おかね@@", $ee, $0, $0
- db "おこづかい", $f4, $0, $0
- db "おふろ@@", $24, $1, $0
- db "がっこう@", $5e, $1, $0
- db "きねん@@", $92, $1, $0
- db "グループ@", $c6, $1, $0
- db "ゲット@@", $d2, $1, $0
- db "こうかん@", $de, $1, $0
- db "しごと@@", $40, $2, $0
- db "しゅぎょう", $74, $2, $0
- db "じゅぎょう", $76, $2, $0
- db "じゅく@@", $78, $2, $0
- db "しんか@@", $88, $2, $0
- db "ずかん@@", $90, $2, $0
- db "せいかつ@", $ae, $2, $0
- db "せんせい@", $b8, $2, $0
- db "センター@", $ba, $2, $0
- db "タワー@@", $28, $3, $0
- db "つうしん@", $40, $3, $0
- db "テスト@@", $7e, $3, $0
- db "テレビ@@", $8c, $3, $0
- db "でんわ@@", $96, $3, $0
- db "どうぐ@@", $9a, $3, $0
- db "トレード@", $c4, $3, $0
- db "なまえ@@", $e8, $3, $0
- db "ニュース@", $a, $4, $0
- db "にんき@@", $c, $4, $0
- db "パーティー", $2e, $4, $0
- db "べんきょう", $92, $4, $0
- db "マシン@@", $d6, $4, $0
- db "めいし@@", $1e, $5, $0
- db "メッセージ", $26, $5, $0
- db "もようがえ", $3a, $5, $0
- db "ゆめ@@@", $5a, $5, $0
- db "ようちえん", $66, $5, $0
- db "ラジォ@@", $92, $5, $0
- db "ワールド@", $ae, $5, $0
-
-.Hobbies: ; 11ea58
- db "アイドル@", $1e, $0, $0
- db "アニメ@@", $4c, $0, $0
- db "うた@@@", $b8, $0, $0
- db "えいが@@", $d0, $0, $0
- db "おかし@@", $ea, $0, $0
- db "おしゃべり", $4, $1, $0
- db "おままごと", $28, $1, $0
- db "おもちゃ@", $30, $1, $0
- db "おんがく@", $38, $1, $0
- db "カード@@", $3e, $1, $0
- db "かいもの@", $46, $1, $0
- db "グルメ@@", $c8, $1, $0
- db "ゲーム@@", $cc, $1, $0
- db "ざっし@@", $1c, $2, $0
- db "さんぽ@@", $34, $2, $0
- db "じてんしゃ", $50, $2, $0
- db "しゅみ@@", $7a, $2, $0
- db "スポーツ@", $a8, $2, $0
- db "ダイエット", $d8, $2, $0
- db "たからもの", $f0, $2, $0
- db "たび@@@", $4, $3, $0
- db "ダンス@@", $2a, $3, $0
- db "つり@@@", $60, $3, $0
- db "デート@@", $6a, $3, $0
- db "でんしゃ@", $92, $3, $0
- db "ぬいぐるみ", $e, $4, $0
- db "パソコン@", $3e, $4, $0
- db "はな@@@", $4c, $4, $0
- db "ヒーロー@", $58, $4, $0
- db "ひるね@@", $6e, $4, $0
- db "ヒロイン@", $70, $4, $0
- db "ぼうけん@", $96, $4, $0
- db "ボード@@", $9a, $4, $0
- db "ボール@@", $9e, $4, $0
- db "ほん@@@", $ba, $4, $0
- db "マンガ@@", $ee, $4, $0
- db "やくそく@", $40, $5, $0
- db "やすみ@@", $44, $5, $0
- db "よてい@@", $74, $5, $0
-
-.Actions: ; 11eb90
- db "あう@@@", $20, $0, $0
- db "あきらめ@", $24, $0, $0
- db "あげる@@", $28, $0, $0
- db "あせる@@", $2e, $0, $0
- db "あそび@@", $30, $0, $0
- db "あそぶ@@", $34, $0, $0
- db "あつめ@@", $3e, $0, $0
- db "あるき@@", $60, $0, $0
- db "あるく@@", $62, $0, $0
- db "いく@@@", $7e, $0, $0
- db "いけ@@@", $86, $0, $0
- db "おき@@@", $f0, $0, $0
- db "おこり@@", $f6, $0, $0
- db "おこる@@", $f8, $0, $0
- db "おしえ@@", $fe, $0, $0
- db "おしえて@", $0, $1, $0
- db "おねがい@", $1a, $1, $0
- db "おぼえ@@", $26, $1, $0
- db "かえる@@", $4a, $1, $0
- db "がまん@@", $74, $1, $0
- db "きく@@@", $8c, $1, $0
- db "きたえ@@", $8e, $1, $0
- db "きめ@@@", $a6, $1, $0
- db "くる@@@", $c4, $1, $0
- db "さがし@@", $18, $2, $0
- db "さわぎ@@", $2a, $2, $0
- db "した@@@", $42, $2, $0
- db "しって@@", $4a, $2, $0
- db "して@@@", $4e, $2, $0
- db "しない@@", $52, $2, $0
- db "しまう@@", $60, $2, $0
- db "じまん@@", $66, $2, $0
- db "しらない@", $84, $2, $0
- db "しる@@@", $86, $2, $0
- db "しんじて@", $8a, $2, $0
- db "する@@@", $aa, $2, $0
- db "たべる@@", $a, $3, $0
- db "つかう@@", $42, $3, $0
- db "つかえ@@", $44, $3, $0
- db "つかって@", $46, $3, $0
- db "できない@", $70, $3, $0
- db "できる@@", $72, $3, $0
- db "でない@@", $84, $3, $0
- db "でる@@@", $8a, $3, $0
- db "なげる@@", $d6, $3, $0
- db "なやみ@@", $ea, $3, $0
- db "ねられ@@", $18, $4, $0
- db "ねる@@@", $1a, $4, $0
- db "のがし@@", $24, $4, $0
- db "のむ@@@", $28, $4, $0
- db "はしり@@", $3a, $4, $0
- db "はしる@@", $3c, $4, $0
- db "はたらき@", $40, $4, $0
- db "はたらく@", $42, $4, $0
- db "はまって@", $4e, $4, $0
- db "ぶつけ@@", $7a, $4, $0
- db "ほめ@@@", $b4, $4, $0
- db "みせて@@", $f6, $4, $0
- db "みて@@@", $fc, $4, $0
- db "みる@@@", $2, $5, $0
- db "めざす@@", $20, $5, $0
- db "もって@@", $34, $5, $0
- db "ゆずる@@", $58, $5, $0
- db "ゆるす@@", $5c, $5, $0
- db "ゆるせ@@", $5e, $5, $0
- db "られない@", $9a, $5, $0
- db "られる@@", $9c, $5, $0
- db "わかる@@", $b8, $5, $0
- db "わすれ@@", $c0, $5, $0
-
-.Time: ; 11edb8
- db "あき@@@", $22, $0, $0
- db "あさ@@@", $2a, $0, $0
- db "あした@@", $2c, $0, $0
- db "いちにち@", $94, $0, $0
- db "いつか@@", $98, $0, $0
- db "いつも@@", $9e, $0, $0
- db "いま@@@", $a2, $0, $0
- db "えいえん@", $ce, $0, $0
- db "おととい@", $12, $1, $0
- db "おわり@@", $36, $1, $0
- db "かようび@", $78, $1, $0
- db "きのう@@", $94, $1, $0
- db "きょう@@", $b0, $1, $0
- db "きんようび", $b8, $1, $0
- db "げつようび", $d4, $1, $0
- db "このあと@", $f4, $1, $0
- db "このまえ@", $f6, $1, $0
- db "こんど@@", $c, $2, $0
- db "じかん@@", $3c, $2, $0
- db "じゅうねん", $70, $2, $0
- db "すいようび", $8e, $2, $0
- db "スタート@", $9e, $2, $0
- db "ずっと@@", $a2, $2, $0
- db "ストップ@", $a6, $2, $0
- db "そのうち@", $c4, $2, $0
- db "ついに@@", $3e, $3, $0
- db "つぎ@@@", $4a, $3, $0
- db "どようび@", $ba, $3, $0
- db "なつ@@@", $da, $3, $0
- db "にちようび", $6, $4, $0
- db "はじめ@@", $38, $4, $0
- db "はる@@@", $54, $4, $0
- db "ひる@@@", $6c, $4, $0
- db "ふゆ@@@", $84, $4, $0
- db "まいにち@", $c6, $4, $0
- db "もくようび", $30, $5, $0
- db "よなか@@", $76, $5, $0
- db "よる@@@", $7e, $5, $0
- db "らいしゅう", $88, $5, $0
-
-.Farewells: ; 11eef0
- db "いたします", $92, $0, $0
- db "おります@", $32, $1, $0
- db "か!?@@", $3c, $1, $0
- db "かい?@@", $44, $1, $0
- db "かしら?@", $50, $1, $0
- db "かな?@@", $6a, $1, $0
- db "かも@@@", $76, $1, $0
- db "くれ@@@", $ca, $1, $0
- db "ございます", $e8, $1, $0
- db "しがち@@", $3a, $2, $0
- db "します@@", $62, $2, $0
- db "じゃ@@@", $6a, $2, $0
- db "じゃん@@", $6e, $2, $0
- db "しよう@@", $7c, $2, $0
- db "ぜ!@@@", $ac, $2, $0
- db "ぞ!@@@", $bc, $2, $0
- db "た@@@@", $d4, $2, $0
- db "だ@@@@", $d6, $2, $0
- db "だからね@", $ee, $2, $0
- db "だぜ@@@", $f4, $2, $0
- db "だった@@", $fa, $2, $0
- db "だね@@@", $fe, $2, $0
- db "だよ@@@", $10, $3, $0
- db "だよねー!", $12, $3, $0
- db "だわ@@@", $26, $3, $0
- db "ッス@@@", $4c, $3, $0
- db "ってかんじ", $52, $3, $0
- db "っぱなし@", $54, $3, $0
- db "つもり@@", $56, $3, $0
- db "ていない@", $64, $3, $0
- db "ている@@", $66, $3, $0
- db "でーす!@", $68, $3, $0
- db "でした@@", $74, $3, $0
- db "でしょ?@", $76, $3, $0
- db "でしょー!", $78, $3, $0
- db "です@@@", $7a, $3, $0
- db "ですか?@", $7c, $3, $0
- db "ですよ@@", $80, $3, $0
- db "ですわ@@", $82, $3, $0
- db "どうなの?", $a4, $3, $0
- db "どうよ?@", $a8, $3, $0
- db "とかいって", $aa, $3, $0
- db "なの@@@", $e0, $3, $0
- db "なのか@@", $e2, $3, $0
- db "なのだ@@", $e4, $3, $0
- db "なのよ@@", $e6, $3, $0
- db "なんだね@", $f2, $3, $0
- db "なんです@", $f8, $3, $0
- db "なんてね@", $fa, $3, $0
- db "ね@@@@", $12, $4, $0
- db "ねー@@@", $14, $4, $0
- db "の@@@@", $1c, $4, $0
- db "の?@@@", $1e, $4, $0
- db "ばっかり@", $44, $4, $0
- db "まーす!@", $c2, $4, $0
- db "ます@@@", $d8, $4, $0
- db "ますわ@@", $da, $4, $0
- db "ません@@", $dc, $4, $0
- db "みたいな@", $fa, $4, $0
- db "よ!@@@", $60, $5, $0
- db "よー@@@", $68, $5, $0
- db "よーん@@", $6c, $5, $0
- db "よね@@@", $78, $5, $0
- db "るよ@@@", $a2, $5, $0
- db "わけ@@@", $bc, $5, $0
- db "わよ!@@", $d2, $5, $0
-
-.ThisAndThat: ; 11f100
- db "ああ@@@", $12, $0, $0
- db "あっち@@", $3c, $0, $0
- db "あの@@@", $4e, $0, $0
- db "ありゃ@@", $5c, $0, $0
- db "あれ@@@", $66, $0, $0
- db "あれは@@", $68, $0, $0
- db "あんな@@", $6c, $0, $0
- db "こう@@@", $dc, $1, $0
- db "こっち@@", $ec, $1, $0
- db "この@@@", $f2, $1, $0
- db "こりゃ@@", $fe, $1, $0
- db "これ@@@", $0, $2, $0
- db "これだ!@", $2, $2, $0
- db "これは@@", $4, $2, $0
- db "こんな@@", $e, $2, $0
- db "そう@@@", $be, $2, $0
- db "そっち@@", $c0, $2, $0
- db "その@@@", $c2, $2, $0
- db "そりゃ@@", $c6, $2, $0
- db "それ@@@", $c8, $2, $0
- db "それだ!@", $cc, $2, $0
- db "それは@@", $d0, $2, $0
- db "そんな@@", $d2, $2, $0
- db "どう@@@", $98, $3, $0
- db "どっち@@", $b2, $3, $0
- db "どの@@@", $b4, $3, $0
- db "どりゃ@@", $c0, $3, $0
- db "どれ@@@", $c2, $3, $0
- db "どれを@@", $c8, $3, $0
- db "どんな@@", $ca, $3, $0
- db "なに@@@", $de, $3, $0
- db "なんか@@", $ec, $3, $0
- db "なんだ@@", $f0, $3, $0
- db "なんで@@", $f6, $3, $0
- db "なんなんだ", $0, $4, $0
- db "なんの@@", $2, $4, $0
-; 11f220
-
-MobileEZChatData_WordAndPageCounts:
-macro_11f220: macro
-; parameter: number of words
- db \1
-; 12 words per page (0-based indexing)
-x = \1 / 12
-if \1 % 12 == 0
-x = x +- 1
-endc
- db x
-endm
- macro_11f220 18 ; 01: Types
- macro_11f220 36 ; 02: Greetings
- macro_11f220 69 ; 03: People
- macro_11f220 69 ; 04: Battle
- macro_11f220 66 ; 05: Exclamations
- macro_11f220 66 ; 06: Conversation
- macro_11f220 69 ; 07: Feelings
- macro_11f220 66 ; 08: Conditions
- macro_11f220 39 ; 09: Life
- macro_11f220 39 ; 0a: Hobbies
- macro_11f220 69 ; 0b: Actions
- macro_11f220 39 ; 0c: Time
- macro_11f220 66 ; 0d: Farewells
- macro_11f220 36 ; 0e: ThisAndThat
-
-EZChat_SortedWords:
-; Addresses in WRAM bank 3 where EZChat words beginning
-; with the given kana are sorted in memory, and the pre-
-; allocated size for each.
-; These arrays are expanded dynamically to accomodate
-; any Pokemon you've seen that starts with each kana.\
-macro_11f23c: macro
- dw x - w3_d000, \1
-x = x + 2 * \1
-endm
-x = $d012
- macro_11f23c $2f ; a
- macro_11f23c $1e ; i
- macro_11f23c $11 ; u
- macro_11f23c $09 ; e
- macro_11f23c $2e ; o
- macro_11f23c $24 ; ka_ga
- macro_11f23c $1b ; ki_gi
- macro_11f23c $09 ; ku_gu
- macro_11f23c $07 ; ke_ge
- macro_11f23c $1c ; ko_go
- macro_11f23c $12 ; sa_za
- macro_11f23c $2b ; shi_ji
- macro_11f23c $10 ; su_zu
- macro_11f23c $08 ; se_ze
- macro_11f23c $0c ; so_zo
- macro_11f23c $2c ; ta_da
- macro_11f23c $09 ; chi_dhi
- macro_11f23c $12 ; tsu_du
- macro_11f23c $1b ; te_de
- macro_11f23c $1a ; to_do
- macro_11f23c $1c ; na
- macro_11f23c $05 ; ni
- macro_11f23c $02 ; nu
- macro_11f23c $05 ; ne
- macro_11f23c $07 ; no
- macro_11f23c $16 ; ha_ba_pa
- macro_11f23c $0e ; hi_bi_pi
- macro_11f23c $0c ; fu_bu_pu
- macro_11f23c $05 ; he_be_pe
- macro_11f23c $16 ; ho_bo_po
- macro_11f23c $19 ; ma
- macro_11f23c $0e ; mi
- macro_11f23c $08 ; mu
- macro_11f23c $07 ; me
- macro_11f23c $09 ; mo
- macro_11f23c $0d ; ya
- macro_11f23c $04 ; yu
- macro_11f23c $14 ; yo
- macro_11f23c $0b ; ra
- macro_11f23c $01 ; ri
- macro_11f23c $02 ; ru
- macro_11f23c $02 ; re
- macro_11f23c $02 ; ro
- macro_11f23c $15 ; wa
-x = $d000
- macro_11f23c $09 ; end
-EZChat_SortedWordsEnd:
diff --git a/misc/gfx_41.asm b/misc/gfx_41.asm
deleted file mode 100755
index f627c85ff..000000000
--- a/misc/gfx_41.asm
+++ /dev/null
@@ -1,638 +0,0 @@
-HDMATransferAttrMapAndTileMapToWRAMBank3:: ; 104000
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransferToWRAMBank3
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransferToWRAMBank3
- ret
-; 10402d
-
-HDMATransferTileMapToWRAMBank3:: ; 10402d
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransferToWRAMBank3
- ret
-; 104047
-
-HDMATransferAttrMapToWRAMBank3: ; 104047
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransferToWRAMBank3
- ret
-; 104061
-
-ReloadMapPart:: ; 104061
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- call DelayFrame
-
- di
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- pop af
- ld [rVBK], a
- ei
-
- ret
-
-Mobile_ReloadMapPart: ; 104099
- ld hl, ReloadMapPart ; useless
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- call DelayFrame
-
- di
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_NoDI
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_NoDI
- pop af
- ld [rVBK], a
- ei
-
- ret
-; 1040d4
-
-; XXX
- ld hl, .unreferenced_1040da
- jp CallInSafeGFXMode
-
-.unreferenced_1040da
- ld a, $1
- ld [rVBK], a
- ld a, $3
- ld [rSVBK], a
- ld de, w3_d800
- ld a, [hBGMapAddress + 1]
- ld [rHDMA1], a
- ld a, [hBGMapAddress]
- ld [rHDMA2], a
- ld a, d
- ld [rHDMA3], a
- ld a, e
- ld [rHDMA4], a
- ld a, $23
- ld [hDMATransfer], a
- call WaitDMATransfer
- ret
-; 1040fb
-
-; XXX
- ld hl, .unreferenced_104101
- jp CallInSafeGFXMode
-
-.unreferenced_104101
- ld a, $1
- ld [rVBK], a
- ld a, $3
- ld [rSVBK], a
- ld hl, w3_d800
- call HDMATransferToWRAMBank3
- ret
-; 104110
-
-OpenAndCloseMenu_HDMATransferTileMapAndAttrMap:: ; 104110
-; OpenText
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- ; Transfer AttrMap and Tilemap to BGMap
- ; Fill vBGAttrs with $00
- ; Fill vBGTiles with " "
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteTilemap
- call DelayFrame
-
- di
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_Wait123Scanlines_toBGMap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_Wait123Scanlines_toBGMap
- pop af
- ld [rVBK], a
- ei
- ret
-; 104148
-
-Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap: ; 104148 (41:4148)
- ld hl, .Function
- jp CallInSafeGFXMode
-
-.Function:
- ; Transfer AttrMap and Tilemap to BGMap
- ; Fill vBGAttrs with $00
- ; Fill vBGTiles with $ff
- decoord 0, 0, AttrMap
- ld hl, wScratchAttrMap
- call CutAndPasteAttrMap
- ld c, $ff
- decoord 0, 0
- ld hl, wScratchTileMap
- call CutAndPasteMap
-
- ld a, $1
- ld [rVBK], a
- ld hl, wScratchAttrMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- ld a, $0
- ld [rVBK], a
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines_toBGMap
- ret
-; 104177
-
-CallInSafeGFXMode: ; 104177
- ld a, [hBGMapMode]
- push af
- ld a, [hMapAnims]
- push af
- xor a
- ld [hBGMapMode], a
- ld [hMapAnims], a
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld a, [rVBK]
- push af
-
- call ._hl_
-
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- pop af
- ld [hMapAnims], a
- pop af
- ld [hBGMapMode], a
- ret
-; 10419c
-
-._hl_ ; 10419c
- jp hl
-; 10419d
-
-
-HDMATransferToWRAMBank3: ; 10419d (41:419d)
- call _LoadHDMAParameters
- ld a, $23
- ld [hDMATransfer], a
-
-WaitDMATransfer: ; 104a14
-.loop
- call DelayFrame
- ld a, [hDMATransfer]
- and a
- jr nz, .loop
- ret
-
-HDMATransfer_Wait127Scanlines_toBGMap: ; 1041ad (41:41ad)
-; HDMA transfer from hl to [hBGMapAddress]
-; hBGMapAddress -> de
-; 2 * SCREEN_HEIGHT -> c
- ld a, [hBGMapAddress + 1]
- ld d, a
- ld a, [hBGMapAddress]
- ld e, a
- ld c, 2 * SCREEN_HEIGHT
- jr HDMATransfer_Wait127Scanlines
-
-HDMATransfer_Wait123Scanlines_toBGMap: ; 1041b7 (41:41b7)
-; HDMA transfer from hl to [hBGMapAddress]
-; hBGMapAddress -> de
-; 2 * SCREEN_HEIGHT -> c
-; $7b --> b
- ld a, [hBGMapAddress + 1]
- ld d, a
- ld a, [hBGMapAddress]
- ld e, a
- ld c, 2 * SCREEN_HEIGHT
- jr HDMATransfer_Wait123Scanlines
-; 1041c1 (41:41c1)
-
-HDMATransfer_NoDI: ; 1041c1
-; HDMA transfer from hl to [hBGMapAddress]
-; [hBGMapAddress] --> de
-; 2 * SCREEN_HEIGHT --> c
- ld a, [hBGMapAddress + 1]
- ld d, a
- ld a, [hBGMapAddress]
- ld e, a
- ld c, 2 * SCREEN_HEIGHT
-
- ; [rHDMA1, rHDMA2] = hl & $fff0
- ld a, h
- ld [rHDMA1], a
- ld a, l
- and $f0
- ld [rHDMA2], a
- ; [rHDMA3, rHDMA4] = de & $1ff0
- ld a, d
- and $1f
- ld [rHDMA3], a
- ld a, e
- and $f0
- ld [rHDMA4], a
- ; b = c | %10000000
- ld a, c
- dec c
- or $80
- ld b, a
- ; d = $7f - c + 1
- ld a, $7f
- sub c
- ld d, a
- ; while [rLY] >= d: pass
-.loop1
- ld a, [rLY]
- cp d
- jr nc, .loop1
- ; while not [rSTAT] & 3: pass
-.loop2
- ld a, [rSTAT]
- and $3
- jr z, .loop2
- ; load the 5th byte of HDMA
- ld a, b
- ld [rHDMA5], a
- ; wait until rLY advances (c + 1) times
- ld a, [rLY]
- inc c
- ld hl, rLY
-.loop3
- cp [hl]
- jr z, .loop3
- ld a, [hl]
- dec c
- jr nz, .loop3
- ld hl, rHDMA5
- res 7, [hl]
- ret
-; 104205
-
-HDMATransfer_Wait123Scanlines:
- ld b, $7b
- jr _continue_HDMATransfer
-
-
-HDMATransfer_Wait127Scanlines:
- ld b, $7f
-_continue_HDMATransfer:
-; a lot of waiting around for hardware registers
- ; [rHDMA1, rHDMA2] = hl & $fff0
- ld a, h
- ld [rHDMA1], a
- ld a, l
- and $f0 ; high nybble
- ld [rHDMA2], a
- ; [rHDMA3, rHDMA4] = de & $1ff0
- ld a, d
- and $1f ; lower 5 bits
- ld [rHDMA3], a
- ld a, e
- and $f0 ; high nybble
- ld [rHDMA4], a
- ; e = c | %10000000
- ld a, c
- dec c
- or $80
- ld e, a
- ; d = b - c + 1
- ld a, b
- sub c
- ld d, a
- ; while [rLY] >= d: pass
-.ly_loop
- ld a, [rLY]
- cp d
- jr nc, .ly_loop
-
- di
- ; while [rSTAT] & 3: pass
-.rstat_loop_1
- ld a, [rSTAT]
- and $3
- jr nz, .rstat_loop_1
- ; while not [rSTAT] & 3: pass
-.rstat_loop_2
- ld a, [rSTAT]
- and $3
- jr z, .rstat_loop_2
- ; load the 5th byte of HDMA
- ld a, e
- ld [rHDMA5], a
- ; wait until rLY advances (c + 1) times
- ld a, [rLY]
- inc c
- ld hl, rLY
-.final_ly_loop
- cp [hl]
- jr z, .final_ly_loop
- ld a, [hl]
- dec c
- jr nz, .final_ly_loop
- ld hl, rHDMA5
- res 7, [hl]
- ei
-
- ret
-; 10424e
-
-
-_LoadHDMAParameters: ; 10424e (41:424e)
- ld a, h
- ld [rHDMA1], a
- ld a, l
- ld [rHDMA2], a
- ld a, [hBGMapAddress + 1]
- and $1f
- ld [rHDMA3], a
- ld a, [hBGMapAddress]
- ld [rHDMA4], a
- ret
-
-CutAndPasteTilemap: ; 10425f (41:425f)
- ld c, " "
- jr CutAndPasteMap
-
-CutAndPasteAttrMap: ; 104263 (41:4263)
- ld c, $0
-
-CutAndPasteMap: ; 104265 (41:4265)
-; back up the value of c to hMapObjectIndexBuffer
- ld a, [hMapObjectIndexBuffer]
- push af
- ld a, c
- ld [hMapObjectIndexBuffer], a
-
-; for each row on the screen
- ld c, SCREEN_HEIGHT
-.loop1
-; for each tile in the row
- ld b, SCREEN_WIDTH
-.loop2
-; copy from de to hl
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .loop2
-
-; load the original value of c into hl 12 times
- ld a, [hMapObjectIndexBuffer]
- ld b, BG_MAP_WIDTH - SCREEN_WIDTH
-.loop3
- ld [hli], a
- dec b
- jr nz, .loop3
-
- dec c
- jr nz, .loop1
-
-; restore the original value of hMapObjectIndexBuffer
- pop af
- ld [hMapObjectIndexBuffer], a
- ret
-
-
-_Get2bpp:: ; 104284
- ; 2bpp when [rLCDC] & $80
- ; switch to WRAM bank 6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- push bc
- push hl
-
- ; Copy c tiles of the 2bpp from b:de to wScratchTileMap
- ld a, b ; bank
- ld l, c ; number of tiles
- ld h, $0
- ; multiply by 16 (16 bytes of a 2bpp = 8 x 8 tile)
- add hl, hl
- add hl, hl
- add hl, hl
- add hl, hl
- ld b, h
- ld c, l
- ld h, d ; address
- ld l, e
- ld de, wScratchTileMap
- call FarCopyBytes
-
- pop hl
- pop bc
-
- push bc
- call DelayFrame
- pop bc
-
- ld d, h
- ld e, l
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines
-
- ; restore the previous bank
- pop af
- ld [rSVBK], a
- ret
-; 1042b2
-
-_Get1bpp:: ; 1042b2
- ; 1bpp when [rLCDC] & $80
-.loop
- ld a, c
- cp $10
- jp c, .bankswitch
- jp z, .bankswitch
- push bc
- push hl
- push de
- ld c, $10
- call .bankswitch
- pop de
- ld hl, $80
- add hl, de
- ld d, h
- ld e, l
- pop hl
- lb bc, 1, 0
- add hl, bc
- pop bc
- ld a, c
- sub $10
- ld c, a
- jr .loop
-; 1042d6
-
-.bankswitch ; 1042d6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
-
- push bc
- push hl
-
- ld a, b
- ld l, c
- ld h, $0
- add hl, hl ; multiply by 8
- add hl, hl ; multiply by 8
- add hl, hl ; multiply by 8
- ld c, l
- ld b, h
- ld h, d
- ld l, e
- ld de, wScratchTileMap
- call FarCopyBytesDouble_DoubleBankSwitch
-
- pop hl
- pop bc
-
- push bc
- call DelayFrame
- pop bc
-
- ld d, h
- ld e, l
- ld hl, wScratchTileMap
- call HDMATransfer_Wait127Scanlines
-
- pop af
- ld [rSVBK], a
- ret
-; 104303
-
-HDMATransfer_OnlyTopFourRows: ; 104303
- ld hl, .Function
- jp CallInSafeGFXMode
-; 104309
-
-.Function:
- ld hl, wScratchTileMap
- decoord 0, 0
- call .Copy
- ld hl, wScratchTileMap + $80
- decoord 0, 0, AttrMap
- call .Copy
- ld a, $1
- ld [rVBK], a
- ld c, $8
- ld hl, wScratchTileMap + $80
- debgcoord 0, 0, VBGMap1
- call HDMATransfer_Wait127Scanlines
- ld a, $0
- ld [rVBK], a
- ld c, $8
- ld hl, wScratchTileMap
- debgcoord 0, 0, VBGMap1
- call HDMATransfer_Wait127Scanlines
- ret
-
-.Copy: ; 10433a (41:433a)
- ld b, 4
-.outer_loop
- ld c, SCREEN_WIDTH
-.inner_loop
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .inner_loop
- ld a, l
- add BG_MAP_WIDTH - SCREEN_WIDTH
- ld l, a
- ld a, h
- adc $0
- ld h, a
- dec b
- jr nz, .outer_loop
- ret
-; 104350
-
-ShockEmote: INCBIN "gfx/emotes/shock.2bpp"
-QuestionEmote: INCBIN "gfx/emotes/question.2bpp"
-HappyEmote: INCBIN "gfx/emotes/happy.2bpp"
-SadEmote: INCBIN "gfx/emotes/sad.2bpp"
-HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
-BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
-SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
-FishEmote: INCBIN "gfx/emotes/fish.2bpp"
-JumpShadowGFX: INCBIN "gfx/overworld/shadow.2bpp"
-FishingRodGFX: INCBIN "gfx/overworld/fishing_rod.2bpp"
-BoulderDustGFX: INCBIN "gfx/overworld/boulder_dust.2bpp"
-GrassRustleGFX: INCBIN "gfx/overworld/grass_rustle.2bpp"
diff --git a/misc/mobile_12.asm b/misc/mobile_12.asm
deleted file mode 100755
index efe138162..000000000
--- a/misc/mobile_12.asm
+++ /dev/null
@@ -1,1845 +0,0 @@
-InitMobileProfile: ; 4802f (12:402f)
- xor a
- set 6, a
- ld [wd002], a
- ld hl, wd003
- set 0, [hl]
- ld a, c
- and a
- call z, InitCrystalData
- call ClearBGPalettes
- call Function48d3d
- ld a, [wd479]
- bit 1, a
- jr z, .not_yet_initialized
- ld a, [wd003]
- set 0, a
- set 1, a
- set 2, a
- set 3, a
- ld [wd003], a
-.not_yet_initialized
- call Function486bf
- call LoadFontsExtra
- ld de, GFX_488c3
- ld hl, VTiles2 tile $10
- lb bc, BANK(GFX_488c3), 1
- call Request1bpp
- ld de, GFX_488cb
- ld hl, VTiles2 tile $11
- lb bc, BANK(GFX_488cb), 1
- call Request1bpp
- call Function4a3a7
- call ClearBGPalettes
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4808a
- call Function48689
- jr .asm_480d7
-.asm_4808a
- ld a, $5
- ld [MusicFade], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
- ld [MusicFadeID], a
- ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
- ld [MusicFadeID + 1], a
- ld c, 20
- call DelayFrames
- ld b, $1
- call GetMysteryGift_MobileAdapterLayout
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, 2
- ld c, 20
- call ClearBox
- hlcoord 0, 1
- ld a, $c
- ld [hl], a
- ld bc, $13
- add hl, bc
- ld [hl], a
- ld de, MobileProfileString
- hlcoord 1, 1
- call PlaceString
- hlcoord 0, 2
- ld b, $a
- ld c, $12
- call Function48cdc
- hlcoord 2, 4
- ld de, MobileString_Gender
- call PlaceString
-.asm_480d7
- hlcoord 2, 6
- ld de, MobileString_Age
- call PlaceString
- hlcoord 2, 8
- ld de, MobileString_Address
- call PlaceString
- hlcoord 2, 10
- ld de, MobileString_ZipCode
- call PlaceString
- hlcoord 2, 12
- ld de, MobileString_OK
- call PlaceString
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_48113
- ld a, [PlayerGender]
- ld hl, Strings_484fb
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 11, 4
- call PlaceString
-.asm_48113
- hlcoord 11, 6
- call Function487ec
- ld a, [wd474]
- dec a
- ld hl, Prefectures
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 11, 8
- call PlaceString
- hlcoord 11, 10
- call Function489ea
- hlcoord 0, 14
- ld b, $2
- ld c, $12
- call TextBox
- hlcoord 1, 16
- ld de, MobileString_PersonalInfo
- call PlaceString
- call Function48187
- call WaitBGMap2
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr asm_4815f
-
-Function48157: ; 48157 (12:4157)
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-asm_4815f: ; 4815f (12:415f)
- bit A_BUTTON_F, a
- jp nz, Function4820d
- ld b, a
- ld a, [wd002]
- bit 6, a
- jr z, .dont_check_b_button
- ld hl, wd479
- bit 1, [hl]
- jr z, .dont_check_b_button
- bit B_BUTTON_F, b
- jr nz, .b_button
-.dont_check_b_button
- jp Function48272
-
-.b_button
- call ClearBGPalettes
- call Function48d30
- pop bc
- call ClearTileMap
- ld a, $ff
- ret
-
-Function48187: ; 48187 (12:4187)
- ld a, [wd479]
- bit 1, a
- jr nz, .asm_481f1
- ld a, [wd003]
- ld d, a
- call Function48725
- jr c, .asm_481a2
- lb bc, 1, 4
- hlcoord 2, 12
- call ClearBox
- jr .asm_481ad
-.asm_481a2
- push de
- hlcoord 2, 12
- ld de, MobileString_OK
- call PlaceString
- pop de
-.asm_481ad
- ld a, [wd002]
- bit 6, a
- jr nz, .asm_481c1
- bit 0, d
- jr nz, .asm_481c1
- lb bc, 1, 8
- hlcoord 11, 4
- call ClearBox
-.asm_481c1
- bit 1, d
- jr nz, .asm_481ce
- lb bc, 1, 8
- hlcoord 11, 6
- call ClearBox
-.asm_481ce
- bit 2, d
- jr nz, .asm_481db
- lb bc, 2, 8
- hlcoord 11, 7
- call ClearBox
-.asm_481db
- bit 3, d
- jr nz, .asm_481f1
- ld a, [wd479]
- bit 0, a
- jr nz, .asm_481f8
- lb bc, 1, 8
- hlcoord 11, 10
- call ClearBox
- jr .asm_48201
-.asm_481f1
- ld a, [wd479]
- bit 0, a
- jr nz, .asm_48201
-.asm_481f8
- hlcoord 11, 10
- ld de, .String_TellLater
- call PlaceString
-.asm_48201
- ret
-; 48202 (12:4202)
-
-.String_TellLater: ; 48202
- db "Tell Later@"
-; 4820d
-
-Function4820d: ; 4820d (12:420d)
- call PlaceHollowCursor
- ld hl, wMenuCursorY
- ld a, [hl]
- push af
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4821f
- pop af
- inc a
- push af
-.asm_4821f
- pop af
- cp $1
- jr z, asm_4828d
- cp $2
- jp z, Function4876f
- cp $3
- jp z, Function48304
- cp $4
- jp z, Function488d3
- ld a, $2
- call MenuClickSound
- ld a, [wd002]
- bit 6, a
- jr z, .asm_4825c
- jr .asm_4825c
-; 48241 (12:4241)
-
- hlcoord 1, 15
- ld b, $2
- ld c, $12
- call ClearBox
- ld de, MobileString_ProfileChanged
- hlcoord 1, 16
- call PlaceString
- call WaitBGMap
- ld c, 48
- call DelayFrames
-
-.asm_4825c
- call ClearBGPalettes
- call Function48d30
- pop bc
- call ClearTileMap
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- ld hl, wd479
- set 1, [hl]
- xor a
- ret
-
-Function48272: ; 48272 (12:4272)
- jp Function4840c
-; 48275 (12:4275)
-
-MobileString_PersonalInfo: ; 48275
- db "Personal Info@"
-; 48283
-
-Function48283: ; 48283 (12:4283)
- lb bc, 2, 18
- hlcoord 1, 15
- call ClearBox
- ret
-
-asm_4828d: ; 4828d (12:428d)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_Gender
- call PlaceString
- ld hl, MenuDataHeader_0x484f1
- call LoadMenuDataHeader
- call Function4873c
- hlcoord 11, 2
- ld b, $4
- ld c, $7
- call Function48cdc
- hlcoord 13, 4
- ld de, String_484fb
- call PlaceString
- hlcoord 13, 6
- ld de, String_484ff
- call PlaceString
- call WaitBGMap
- ld a, [PlayerGender]
- inc a
- ld [wMenuCursorBuffer], a
- call StaticMenuJoypad
- call PlayClickSFX
- call ExitMenu
- bit 0, a
- jp z, Function4840c
- ld hl, wMenuCursorY
- ld a, [hl]
- ld hl, Strings_484fb
- cp $1
- jr z, .asm_482ed
-.asm_482e1
- ld a, [hli]
- cp $50
- jr nz, .asm_482e1
- ld a, $1
- ld [PlayerGender], a
- jr .asm_482f1
-.asm_482ed
- xor a
- ld [PlayerGender], a
-.asm_482f1
- ld d, h
- ld e, l
- hlcoord 11, 4
- call PlaceString
- ld a, [wd003]
- set 0, a
- ld [wd003], a
- jp Function4840c
-
-Function48304: ; 48304 (12:4304)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_Address
- call PlaceString
- ld hl, MenuDataHeader_0x48504
- call LoadMenuDataHeader
- ld hl, MenuDataHeader_0x48513
- call LoadMenuDataHeader
- hlcoord 10, 0
- ld b, $c
- ld c, $8
- call Function48cdc
- ld a, [wMenuCursorBuffer]
- ld b, a
- ld a, [wMenuScrollPosition]
- ld c, a
- push bc
- ld a, [wd474]
- dec a
- cp $29
- jr c, .asm_4833f
- sub $29
- inc a
- ld [wMenuCursorBuffer], a
- ld a, $29
-.asm_4833f
- ld [wMenuScrollPosition], a
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
-.asm_48348
- call ScrollingMenu
- ld de, $629
- call Function48383
- jr c, .asm_48348
- ld d, a
- pop bc
- ld a, b
- ld [wMenuCursorBuffer], a
- ld a, c
- ld [wMenuScrollPosition], a
- ld a, d
- push af
- call ExitMenu
- call ExitMenu
- pop af
- ld a, [hJoyPressed]
- bit 0, a
- jr z, .asm_48377
- call Function483bb
- ld a, [wd003]
- set 2, a
- ld [wd003], a
-.asm_48377
- call Function48187
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- jp Function4840c
-
-Function48383: ; 48383 (12:4383)
- push bc
- push af
- bit 5, a
- jr nz, .asm_48390
- bit 4, a
- jr nz, .asm_4839f
- and a
- jr .asm_483b7
-.asm_48390
- ld a, [wMenuScrollPosition]
- sub d
- ld [wMenuScrollPosition], a
- jr nc, .asm_483af
- xor a
- ld [wMenuScrollPosition], a
- jr .asm_483af
-.asm_4839f
- ld a, [wMenuScrollPosition]
- add d
- ld [wMenuScrollPosition], a
- cp e
- jr c, .asm_483af
- ld a, e
- ld [wMenuScrollPosition], a
- jr .asm_483af
-.asm_483af
- ld hl, wMenuCursorY
- ld a, [hl]
- ld [wMenuCursorBuffer], a
- scf
-.asm_483b7
- pop bc
- ld a, b
- pop bc
- ret
-
-Function483bb: ; 483bb (12:43bb)
- ld hl, wScrollingMenuCursorPosition
- ld a, [hl]
- inc a
- ld [wd474], a
- dec a
- ld b, a
- ld hl, Prefectures
-.asm_483c8
- and a
- jr z, .asm_483d5
-.asm_483cb
- ld a, [hli]
- cp "@"
- jr nz, .asm_483cb
- ld a, b
- dec a
- ld b, a
- jr .asm_483c8
-.asm_483d5
- ld d, h
- ld e, l
- ld b, $2
- ld c, $8
- hlcoord 11, 7
- call ClearBox
- hlcoord 11, 8
- call PlaceString
- ret
-; 483e8 (12:43e8)
-
-Function483e8: ; 483e8
- push de
- ld hl, Prefectures
- ld a, [MenuSelection]
- cp $ff
- jr nz, .asm_483f8
- ld hl, Wakayama ; last string
- jr .asm_48405
-
-.asm_483f8
- ld d, a
- and a
- jr z, .asm_48405
-.asm_483fc
- ld a, [hli]
- cp "@"
- jr nz, .asm_483fc
- ld a, d
- dec a
- jr .asm_483f8
-
-.asm_48405
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- ret
-; 4840c
-
-Function4840c: ; 4840c (12:440c)
- call Function48187
- call Function48283
- hlcoord 1, 16
- ld de, MobileString_PersonalInfo
- call PlaceString
- call Function486bf
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- ld a, [wd002]
- bit 6, a
- jr nz, .narrower_box
- ld b, 9
- ld c, 1
- hlcoord 1, 4
- call ClearBox
- jp Function48157
-
-.narrower_box
- ld b, 7
- ld c, 1
- hlcoord 1, 6
- call ClearBox
- jp Function48157
-
-Mobile12_Bin2Dec: ; 48444 (12:4444)
- push bc
- push af
- push de
- push hl
- ld hl, .DigitStrings
-.loop
- and a
- jr z, .got_string
- inc hl
- inc hl
- dec a
- jr .loop
-.got_string
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- pop de
- pop af
- pop bc
- ret
-; 4845d (12:445d)
-
-.DigitStrings: ; 4845d
-; 4845d
- db "0@"
- db "1@"
- db "2@"
- db "3@"
- db "4@"
- db "5@"
- db "6@"
- db "7@"
- db "8@"
- db "9@"
-; 48471
-
-MobileProfileString: db " Mobile Profile@"
-MobileString_Gender: db "Gender@"
-MobileString_Age: db "Age@"
-MobileString_Address: db "Address@"
-MobileString_ZipCode: db "Zip Code@"
-MobileString_OK: db "OK@"
-MobileString_ProfileChanged: db "Profile Changed@"
-MobileDesc_Gender: db "Boy or girl?@"
-MobileDesc_Age: db "How old are you?@"
-MobileDesc_Address: db "Where do you live?@"
-MobileDesc_ZipCode: db "Your zip code?@"
-; 484f1
-
-MenuDataHeader_0x484f1: ; 0x484f1
- db $40 ; flags
- db 02, 11 ; start coords
- db 07, 19 ; end coords
- dw MenuData2_0x484f9
- db 1 ; default option
-; 0x484f9
-
-MenuData2_0x484f9: ; 0x484f9
- db $a0 ; flags
- db 2 ; items
-Strings_484fb:
-String_484fb: db "Boy@"
-String_484ff: db "Girl@"
-; 0x48504
-
-MenuDataHeader_0x48504: ; 0x48504
- db $40 ; flags
- db 00, 10 ; start coords
- db 17, 19 ; end coords
-
-MenuDataHeader_0x48509: ; 0x48509
- db $40 ; flags
- db 05, 10 ; start coords
- db 07, 19 ; end coords
-
-MenuDataHeader_0x4850e: ; 0x4850e
- db $40 ; flags
- db 09, 10 ; start coords
- db 11, 19 ; end coords
-
-MenuDataHeader_0x48513: ; 0x48513
- db $40 ; flags
- db 01, 11 ; start coords
- db 12, 18 ; end coords
- dw MenuData2_0x4851b
- db 1 ; default option
-; 0x4851b
-
-MenuData2_0x4851b: ; 0x4851b
- db $1d ; flags
- db 6 ; items
-
-Unknown_4851d: ; 4851d
- db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
- db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
- db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
- db $2d, $ff
-
-Prefectures:
-Aichi: db "あいちけん@" ; Aichi
-Aomori: db "あおもりけん@" ; Aomori
-Akita: db "あきたけん@" ; Akita
-Ishikawa: db "いしかわけん@" ; Ishikawa
-Ibaraki: db "いばらきけん@" ; Ibaraki
-Iwate: db "いわてけん@" ; Iwate
-Ehime: db "えひめけん@" ; Ehime
-Oita: db "おおいたけん@" ; Oita
-Osakafu: db "おおさかふ@" ; Osakafu
-Okayama: db "おかやまけん@" ; Okayama
-Okinawa: db "おきなわけん@" ; Okinawa
-Kagawa: db "かがわけん@" ; Kagawa
-Kagoshima: db "かごしまけん@" ; Kagoshima
-Kanagawa: db "かながわけん@" ; Kanagawa
-Gifu: db "ぎふけん@" ; Gifu
-Kyotofu: db "きょうとふ@" ; Kyotofu
-Kumamoto: db "くまもとけん@" ; Kumamoto
-Gunma: db "ぐんまけん@" ; Gunma
-Kochi: db "こうちけん@" ; Kochi
-Saitama: db "さいたまけん@" ; Saitama
-Saga: db "さがけん@" ; Saga
-Shiga: db "しがけん@" ; Shiga
-Shizuoka: db "しずおかけん@" ; Shizuoka
-Shimane: db "しまねけん@" ; Shimane
-Chiba: db "ちばけん@" ; Chiba
-Tokyo: db "とうきょうと@" ; Tokyo
-Tokushima: db "とくしまけん@" ; Tokushima
-Tochigi: db "とちぎけん@" ; Tochigi
-Tottori: db "とっとりけん@" ; Tottori
-Toyama: db "とやまけん@" ; Toyama
-Nagasaki: db "ながさきけん@" ; Nagasaki
-Nagano: db "ながのけん@" ; Nagano
-Naraken: db "ならけん@" ; Naraken
-Niigata: db "にいがたけん@" ; Niigata
-Hyogo: db "ひょうごけん@" ; Hyogo
-Hiroshima: db "ひろしまけん@" ; Hiroshima
-Fukui: db "ふくいけん@" ; Fukui
-Fukuoka: db "ふくおかけん@" ; Fukuoka
-Fukushima: db "ふくしまけん@" ; Fukushima
-Hokkaido: db "ほっかいどう@" ; Hokkaido
-Mie: db "みえけん@" ; Mie
-Miyagi: db "みやぎけん@" ; Miyagi
-Miyazaki: db "みやざきけん@" ; Miyazaki
-Yamagata: db "やまがたけん@" ; Yamagata
-Yamaguchi: db "やまぐちけん@" ; Yamaguchi
-Yamanashi: db "やまなしけん@" ; Yamanashi
-Wakayama: db "わかやまけん@" ; Wakayama
-; 48689
-
-Function48689: ; 48689 (12:4689)
- ld c, 7
- call DelayFrames
- ld b, $1
- call GetMysteryGift_MobileAdapterLayout
- call ClearBGPalettes
- hlcoord 0, 0
- ld b, 4
- ld c, SCREEN_WIDTH
- call ClearBox
- hlcoord 0, 2
- ld a, $c
- ld [hl], a
- ld bc, SCREEN_WIDTH - 1
- add hl, bc
- ld [hl], a
- ld de, MobileProfileString
- hlcoord 1, 2
- call PlaceString
- hlcoord 0, 4
- ld b, $8
- ld c, $12
- call Function48cdc
- ret
-
-Function486bf: ; 486bf (12:46bf)
- ld hl, w2DMenuCursorInitY
- ld a, [wd002]
- bit 6, a
- jr nz, .start_at_6
- ld a, 4
- ld [hli], a
- jr .got_init_y
-
-.start_at_6
- ld a, 6
- ld [hli], a
-.got_init_y
- ld a, 1
- ld [hli], a ; init x
- ld a, [wd002]
- bit 6, a
- jr nz, .check_wd479
- call Function48725
- ld a, 4
- jr nc, .got_num_rows_1
- ld a, 5
-.got_num_rows_1
- ld [hli], a
- jr .got_num_rows_2
-
-.check_wd479
- ld a, [wd479]
- bit 1, a
- jr nz, .four_rows
- call Function48725
- jr c, .four_rows
- ld a, 3
- ld [hli], a
- jr .got_num_rows_2
-
-.four_rows
- ld a, 4
- ld [hli], a
-.got_num_rows_2
- ld a, 1
- ld [hli], a ; num cols
- ld [hl], $0 ; flags 1
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a ; flags 2
- ld a, $20
- ld [hli], a ; cursor offsets
- ld a, A_BUTTON
- add D_UP
- add D_DOWN
- push af
- ld a, [wd002]
- bit 6, a
- jr z, .got_joypad_mask
- pop af
- add B_BUTTON
- push af
-.got_joypad_mask
- pop af
- ld [hli], a
- ld a, $1
- ld [hli], a ; cursor y
- ld [hli], a ; cursor x
- xor a
- ld [hli], a ; off char
- ld [hli], a ; cursor tile
- ld [hli], a ; cursor tile + 1
- ret
-
-Function48725: ; 48725 (12:4725)
-; ld a, [wd003]
-; and $f
-; cp $f
-; jr nz, .clear_carry
-; scf
-; ret
-; .clear_carry
-; and a
-; ret
-
- ld a, [wd003]
- bit 0, a
- jr z, .clear_carry
- bit 1, a
- jr z, .clear_carry
- bit 2, a
- jr z, .clear_carry
- bit 3, a
- jr z, .clear_carry
- scf
- ret
-
-.clear_carry
- and a
- ret
-
-Function4873c: ; 4873c (12:473c)
- ld hl, w2DMenuCursorInitY
- ld a, 4
- ld [hli], a
- ld a, 12
- ld [hli], a ; init x
- ld a, 2
- ld [hli], a ; num rows
- ld a, 1
- ld [hli], a ; num cols
- ld [hl], $0 ; flags 1
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a ; flags 2
- ln a, 2, 0
- ld [hli], a ; cursor offsets
- ld a, A_BUTTON
- add B_BUTTON
- ld [hli], a ; joypad filter
- ; ld a, [PlayerGender]
- ; xor 1
- ; inc a
- ld a, [PlayerGender]
- and a
- jr z, .male
- ld a, 2
- jr .okay_gender
-
-.male
- ld a, 1
-.okay_gender
- ld [hli], a ; cursor y
- ld a, $1
- ld [hli], a ; cursor x
- xor a
- ld [hli], a ; off char
- ld [hli], a ; cursor tile
- ld [hli], a ; cursor tile + 1
- ret
-
-Function4876f: ; 4876f (12:476f)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_Age
- call PlaceString
- ld hl, MenuDataHeader_0x48509
- call LoadMenuDataHeader
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- call WaitBGMap
- ld a, [wd473]
- and a
- jr z, .asm_487ab
- cp $64
- jr z, .asm_487b2
- hlcoord 12, 5
- ld [hl], $10
- hlcoord 12, 7
- ld [hl], $11
- jr .asm_487b7
-.asm_487ab
- hlcoord 12, 5
- ld [hl], $10
- jr .asm_487b7
-.asm_487b2
- hlcoord 12, 7
- ld [hl], $11
-.asm_487b7
- hlcoord 11, 6
- call Function487ec
- ld c, 10
- call DelayFrames
- ld a, [wd473]
- push af
-.asm_487c6
- call JoyTextDelay
- call Function4880e
- jr nc, .asm_487c6
- ld a, $1
- call MenuClickSound
- pop bc
- jr nz, .asm_487da
- ld a, b
- ld [wd473], a
-.asm_487da
- ld a, [wd473]
- call ExitMenu
- hlcoord 11, 6
- call Function487ec
- pop af
- ld [hInMenu], a
- jp Function4840c
-
-Function487ec: ; 487ec (12:47ec)
- push hl
- ld de, wd473
- call Function487ff
- pop hl
-rept 4
- inc hl
-endr
- ld de, String_4880d
- call PlaceString
- ret
-
-Function487ff: ; 487ff (12:47ff)
- push hl
- ld a, " "
- ld [hli], a
- ld [hl], a
- pop hl
- ld b, PRINTNUM_LEADINGZEROS | 1
- ld c, 3
- call PrintNum
- ret
-; 4880d (12:480d)
-
-String_4880d: ; 4880d
- db "@"
-; 4880e
-
-Function4880e: ; 4880e (12:480e)
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Function488b9
- ld a, [hJoyPressed]
- and B_BUTTON
- jp nz, Function488b4
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_48843
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_48838
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_4884f
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_4885f
- call DelayFrame
- and a
- ret
-.asm_48838
- ld hl, wd473
- ld a, [hl]
- and a
- jr z, .asm_48840
- dec a
-.asm_48840
- ld [hl], a
- jr .asm_4886f
-.asm_48843
- ld hl, wd473
- ld a, [hl]
- cp $64
- jr nc, .asm_4884c
- inc a
-.asm_4884c
- ld [hl], a
- jr .asm_4886f
-.asm_4884f
- ld a, [wd473]
- cp $5b
- jr c, .asm_48858
- ld a, $5a
-.asm_48858
- add $a
- ld [wd473], a
- jr .asm_4886f
-.asm_4885f
- ld a, [wd473]
- cp $a
- jr nc, .asm_48868
- ld a, $a
-.asm_48868
- sub $a
- ld [wd473], a
- jr .asm_4886f
-.asm_4886f
- ld a, [wd473]
- and a
- jr z, .asm_48887
- cp $64
- jr z, .asm_48898
- jr z, .asm_488a7
- hlcoord 12, 5
- ld [hl], $10
- hlcoord 12, 7
- ld [hl], $11
- jr .asm_488a7
-.asm_48887
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- hlcoord 12, 5
- ld [hl], $10
- jr .asm_488a7
-.asm_48898
- hlcoord 10, 5
- ld b, $1
- ld c, $8
- call Function48cdc
- hlcoord 12, 7
- ld [hl], $11
-.asm_488a7
- hlcoord 11, 6
- call Function487ec
- call WaitBGMap
- ld a, $1
- and a
- ret
-
-Function488b4: ; 488b4 (12:48b4)
- ld a, $0
- and a
- scf
- ret
-
-Function488b9: ; 488b9 (12:48b9)
- ld a, [wd003]
- set 1, a
- ld [wd003], a
- scf
- ret
-; 488c3 (12:48c3)
-
-GFX_488c3: ; 488c3
-INCBIN "gfx/unknown/up_arrow.2bpp"
-
-GFX_488cb: ; 488cb
-INCBIN "gfx/unknown/down_arrow.2bpp"
-
-Function488d3: ; 488d3 (12:48d3)
- call Function48283
- hlcoord 1, 16
- ld de, MobileDesc_ZipCode
- call PlaceString
- call Function48a3a
- jp c, Function4840c
- ld hl, MenuDataHeader_0x4850e
- call LoadMenuDataHeader
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- ld a, [wd475]
- and $f
- ld d, $0
- hlcoord 11, 10
- call Function489ea
- call WaitBGMap
- ld a, [wd475]
- ld b, a
- ld a, [wd476]
- ld c, a
- ld a, [wd477]
- ld d, a
- ld a, [wd478]
- ld e, a
- push de
- push bc
- ld d, $0
- ld b, $0
-
-asm_48922: ; 48922 (12:4922)
- push bc
- call JoyTextDelay
- ld a, [hJoyDown]
- and a
- jp z, Function4896e
- bit 0, a
- jp nz, Function4896e
- bit 1, a
- jp nz, Function4896e
- ld a, [wd002]
- and %11001111
- res 7, a
- ld [wd002], a
- pop bc
- inc b
- ld a, b
- cp $5
- push bc
- jr c, .asm_4894c
- pop bc
- ld b, $4
- push bc
-.asm_4894c
- pop bc
- push bc
- ld a, b
- cp $4
- jr nz, asm_48972
- ld c, 10
- call DelayFrames
- jr asm_48972
-; 4895a (12:495a)
-
-Function4895a: ; 4895a
- ld a, [hJoyPressed]
- and a
- jr z, .asm_48965
- pop bc
- ld b, $1
- push bc
- jr asm_48972
-
-.asm_48965
- ld a, [hJoyLast]
- and a
- jr z, asm_48972
-
- pop bc
- ld b, $1
- push bc
-
-Function4896e: ; 4896e (12:496e)
- pop bc
- ld b, $0
- push bc
-
-asm_48972: ; 48972 (12:4972)
- call Function48ab5
- push af
- cp $f0
- jr z, .asm_48994
- cp $f
- jr nz, .asm_48988
- ld a, [wd002]
- set 7, a
- and $cf
- ld [wd002], a
-.asm_48988
- hlcoord 11, 10
- ld b, $0
- ld c, d
- add hl, bc
- ld b, $3
- call Function48c11
-.asm_48994
- call WaitBGMap
- pop af
- pop bc
- jr nc, asm_48922
- jr nz, .asm_489b1
- pop bc
- ld a, b
- ld [wd475], a
- ld a, c
- ld [wd476], a
- pop bc
- ld a, b
- ld [wd477], a
- ld a, c
- ld [wd478], a
- jr .asm_489c5
-.asm_489b1
- push af
- ld a, [wd479]
- set 0, a
- ld [wd479], a
- ld a, [wd003]
- set 3, a
- ld [wd003], a
- pop af
- pop bc
- pop bc
-.asm_489c5
- push af
- push bc
- push de
- push hl
- ld a, $1
- call MenuClickSound
- pop hl
- pop de
- pop bc
- pop af
- call ExitMenu
- hlcoord 11, 10
- call Function489ea
- hlcoord 11, 9
- lb bc, 1, 8
- call ClearBox
- pop af
- ld [hInMenu], a
- jp Function4840c
-
-Function489ea: ; 489ea (12:49ea)
- push de
- ld a, [wd475]
- and $f
- call Mobile12_Bin2Dec
- ld a, [wd476]
- and $f0
- swap a
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd476]
- and $f
- inc hl
- call Mobile12_Bin2Dec
- inc hl
- ld de, String_48a38
- call PlaceString
- ld a, [wd477]
- and $f0
- swap a
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd477]
- and $f
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd478]
- and $f0
- swap a
- inc hl
- call Mobile12_Bin2Dec
- ld a, [wd478]
- and $f
- inc hl
- call Mobile12_Bin2Dec
- pop de
- ret
-; 48a38 (12:4a38)
-
-String_48a38: ; 48a38
- db "-@"
-; 48a3a
-
-Function48a3a: ; 48a3a (12:4a3a)
- ld hl, MenuDataHeader_0x48a9c
- call LoadMenuDataHeader
- call Function4873c
- ld a, $a
- ld [w2DMenuCursorInitY], a
- ld a, $b
- ld [w2DMenuCursorInitX], a
- ld a, $1
- ld [wMenuCursorY], a
- hlcoord 10, 8
- ld b, $4
- ld c, $8
- call Function48cdc
- hlcoord 12, 10
- ld de, String_48aa1
- call PlaceString
- call StaticMenuJoypad
- push af
- call PlayClickSFX
- call ExitMenu
- pop af
- bit 1, a
- jp nz, Function48a9a
- ld a, [wMenuCursorY]
- cp $1
- jr z, .asm_48a98
- ld a, [wd003]
- set 3, a
- ld [wd003], a
- ld a, [wd479]
- res 0, a
- ld [wd479], a
- xor a
- ld bc, $4
- ld hl, wd475
- call ByteFill
- jr Function48a9a
-.asm_48a98
- and a
- ret
-
-Function48a9a: ; 48a9a (12:4a9a)
- scf
- ret
-; 48a9c (12:4a9c)
-
-MenuDataHeader_0x48a9c: ; 0x48a9c
- db $40 ; flags
- db 08, 10 ; start coords
- db 13, 19 ; end coord
-
-String_48aa1: ; 48aa1
- db "Tell Now"
- next "Tell Later@"
-; 48ab5
-
-
-Function48ab5: ; 48ab5 (12:4ab5)
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Function48c0f
- ld a, [hJoyPressed]
- and B_BUTTON
- jp nz, Function48c0d
- ld a, d
- and a
- jr z, .asm_48adf
- cp $1
- jr z, .asm_48ae7
- cp $2
- jr z, .asm_48af1
- cp $3
- jr z, .asm_48af9
- cp $4
- jr z, .asm_48b03
- cp $5
- jr z, .asm_48b0b
- cp $6
- jr .asm_48b15
-.asm_48adf
- ld hl, wd475
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48ae7
- ld hl, wd476
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48af1
- ld hl, wd476
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48af9
- ld hl, wd477
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48b03
- ld hl, wd477
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48b0b
- ld hl, wd478
- ld a, [hl]
- swap a
- or $f0
- jr .asm_48b1d
-.asm_48b15
- ld hl, wd478
- ld a, [hl]
- and $f
- jr .asm_48b1d
-.asm_48b1d
- push hl
- push af
- ld e, $0
- hlcoord 11, 10
- ld a, d
-.asm_48b25
- and a
- jr z, .asm_48b2c
- inc e
- dec a
- jr .asm_48b25
-.asm_48b2c
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_48b8d
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_48b55
- ld a, [hl]
- and D_LEFT
- jp nz, Function48bd7
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_48b9d
- hlcoord 11, 10
- call Function489ea
- ld a, [wd002]
- bit 7, a
- jr nz, .asm_48b51
-.asm_48b51
- pop bc
- pop bc
- and a
- ret
-.asm_48b55
- pop af
- ld b, a
- and $f
- and a
- ld a, b
- jr nz, .asm_48b61
- and $f0
- add $a
-.asm_48b61
- dec a
-.asm_48b62
- push de
- push af
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop af
- pop de
- hlcoord 11, 10
- ld b, a
- ld a, d
- cp $3
- jr c, .asm_48b7a
- inc hl
-.asm_48b7a
- ld a, b
- pop hl
- bit 7, a
- jr z, .asm_48b85
- call Function48c4d
- jr .asm_48b88
-.asm_48b85
- call Function48c5a
-.asm_48b88
- ld a, $f0
- jp Function48c00
-.asm_48b8d
- pop af
- ld b, a
- and $f
- cp $9
- ld a, b
- jr c, .asm_48b9a
- and $f0
- add $ff
-.asm_48b9a
- inc a
- jr .asm_48b62
-.asm_48b9d
- push de
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop de
- ld a, d
- cp $6
- jr nc, .asm_48baf
- inc d
-.asm_48baf
- pop af
- pop hl
- ld b, a
- ld a, d
- cp $6
- ld a, b
- jr z, .asm_48bc4
- bit 7, a
- jr nz, .asm_48bc4
- inc hl
- ld a, [hl]
- swap a
- and $f
- jr asm_48bc7
-.asm_48bc4
- ld a, [hl]
- and $f
-
-asm_48bc7: ; 48bc7 (12:4bc7)
- hlcoord 11, 10
- push af
- ld a, d
- cp $3
- pop bc
- ld a, b
- jr c, .asm_48bd3
- inc hl
-.asm_48bd3
- ld a, $f
- jr Function48c00
-
-Function48bd7: ; 48bd7 (12:4bd7)
- push de
- hlcoord 10, 9
- ld b, $1
- ld c, $8
- call Function48cdc
- pop de
- ld a, d
- and a
- pop af
- pop hl
- ld b, a
- ld a, d
- and a
- ld a, b
- jr z, .asm_48bf3
- bit 7, a
- jr z, .asm_48bf8
- dec d
- dec hl
-.asm_48bf3
- ld a, [hl]
- and $f
- jr asm_48bc7
-.asm_48bf8
- dec d
- ld a, [hl]
- swap a
- and $f
- jr asm_48bc7
-
-Function48c00: ; 48c00 (12:4c00)
- push af
- hlcoord 11, 10
- call Function489ea
- ld a, $1
- and a
- pop bc
- ld a, b
- ret
-
-Function48c0d: ; 48c0d (12:4c0d)
- xor a
- and a
-
-Function48c0f: ; 48c0f (12:4c0f)
- scf
- ret
-
-Function48c11: ; 48c11 (12:4c11)
- ld a, [wd002]
- bit 7, a
- jr z, .asm_48c20
- ld a, d
- cp $3
- jr c, .asm_48c1e
- inc hl
-.asm_48c1e
- ld [hl], $7f
-.asm_48c20
- ld a, [wd002]
- swap a
- and $3
- inc a
- cp b
- jr nz, .asm_48c40
- ld a, [wd002]
- bit 7, a
- jr z, .asm_48c3a
- res 7, a
- ld [wd002], a
- xor a
- jr .asm_48c40
-.asm_48c3a
- set 7, a
- ld [wd002], a
- xor a
-.asm_48c40
- swap a
- ld b, a
- ld a, [wd002]
- and $cf
- or b
- ld [wd002], a
- ret
-
-Function48c4d: ; 48c4d (12:4c4d)
- swap a
- and $f0
- push af
- ld a, [hl]
- and $f
- ld [hl], a
- pop af
- or [hl]
- ld [hl], a
- ret
-
-Function48c5a: ; 48c5a (12:4c5a)
- push af
- ld a, [hl]
- and $f0
- ld [hl], a
- pop af
- or [hl]
- ld [hl], a
- ret
-
-Function48c63: ; 48c63
- ld a, "@"
- ld [de], a
- ld a, c
- cp $30
- jr nc, .asm_48c8c
- and a
- jr z, .asm_48c8c
- dec c
- push de
- ld h, d
- ld l, e
- ld a, "@"
- ld b, 7
-.asm_48c76
- ld [hli], a
- dec b
- jr nz, .asm_48c76
- ld hl, Prefectures
- ld a, c
- call GetNthString
-.asm_48c81
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- cp "@"
- jr nz, .asm_48c81
- and a
- pop de
- ret
-
-.asm_48c8c
- scf
- ret
-; 48c8e
-
-Function48c8e: ; 48c8e
-; unreferenced
- ld hl, $d02a
- ld d, h
- ld e, l
- callba Function48c63
- hlcoord 10, 7
- call PlaceString
- call WaitBGMap
- ret
-; 48ca3
-
-Function48ca3: ; 48ca3
- push af
- push bc
- push de
- push hl
- ld b, 0
- ld c, 0
- ld d, 0
-.asm_48cad
- cp 100
- jr c, .asm_48cb6
- sub 100
- inc b
- jr .asm_48cad
-
-.asm_48cb6
- cp 10
- jr c, .asm_48cbf
- sub 10
- inc c
- jr .asm_48cb6
-
-.asm_48cbf
- cp 1
- jr c, .asm_48cc7
- dec a
- inc d
- jr .asm_48cbf
-
-.asm_48cc7
- ld a, b
- call Mobile12_Bin2Dec
- inc hl
- ld a, c
- call Mobile12_Bin2Dec
- inc hl
- ld a, d
- call Mobile12_Bin2Dec
- pop hl
- pop de
- pop bc
- pop af
- ret
-; 48cda
-
-Function48cda: ; 48cda (12:4cda)
- ld h, d
- ld l, e
-
-Function48cdc: ; 48cdc (12:4cdc)
- push bc
- push hl
- call Function48cfd
- pop hl
- pop bc
- ld de, AttrMap - TileMap
- add hl, de
- inc b
- inc b
- inc c
- inc c
- ld a, $0
-.asm_48ced
- push bc
- push hl
-.asm_48cef
- ld [hli], a
- dec c
- jr nz, .asm_48cef
- pop hl
- ld de, $14
- add hl, de
- pop bc
- dec b
- jr nz, .asm_48ced
- ret
-
-Function48cfd: ; 48cfd (12:4cfd)
- push hl
- ld a, $4
- ld [hli], a
- inc a
- call Function48d2a
- inc a
- ld [hl], a
- pop hl
- ld de, $14
- add hl, de
-.asm_48d0c
- push hl
- ld a, $7
- ld [hli], a
- ld a, $7f
- call Function48d2a
- ld [hl], $8
- pop hl
- ld de, $14
- add hl, de
- dec b
- jr nz, .asm_48d0c
- ld a, $9
- ld [hli], a
- ld a, $a
- call Function48d2a
- ld [hl], $b
- ret
-
-Function48d2a: ; 48d2a (12:4d2a)
- ld d, c
-.asm_48d2b
- ld [hli], a
- dec d
- jr nz, .asm_48d2b
- ret
-
-Function48d30: ; 48d30 (12:4d30)
- ld hl, wd475
- call Function48d4a
- ld hl, wd477
- call Function48d4a
- ret
-
-Function48d3d: ; 48d3d (12:4d3d)
- ld hl, wd475
- call Function48d94
- ld hl, wd477
- call Function48d94
- ret
-
-Function48d4a: ; 48d4a (12:4d4a)
- inc hl
- ld a, [hl]
- ld b, a
- and $f
- ld c, a
- srl b
- srl b
- srl b
- srl b
- push bc
- ld c, 10
- ld a, b
- call SimpleMultiply
- pop bc
- add c
- ld [hld], a
- xor a
- ld [hMultiplicand + 0], a
- ld [hMultiplicand + 1], a
- ld a, [hl]
- srl a
- srl a
- srl a
- srl a
- ld c, 10
- call SimpleMultiply
- ld b, a
- ld a, [hli]
- and $f
- add b
- ld [hMultiplicand + 2], a
- ld a, 100
- ld [hMultiplier], a
- call Multiply
- ld a, [hProduct + 2]
- ld b, a
- ld a, [hProduct + 3]
- ld c, a
- ld e, [hl]
- add e
- ld c, a
- ld a, b
- adc $0
- ld b, a
- ld a, c
- ld [hld], a
- ld [hl], b
- ret
-
-Function48d94: ; 48d94 (12:4d94)
- xor a
- ld [hDividend + 0], a
- ld [hDividend + 1], a
- ld a, [hli]
- ld [hDividend + 0], a
- ld a, [hl]
- ld [hDividend + 1], a
- ld a, 100
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hRemainder]
- ld c, 10
- call SimpleDivide
- sla b
- sla b
- sla b
- sla b
- or b
- ld [hld], a
- ld a, [hQuotient + 2]
- ld c, 10
- call SimpleDivide
- sla b
- sla b
- sla b
- sla b
- or b
- ld [hl], a
- ret
diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm
deleted file mode 100644
index 17b526586..000000000
--- a/misc/mobile_22.asm
+++ /dev/null
@@ -1,4448 +0,0 @@
-
-String_8911c: ; 8911c
- db "でんわばんごうが ただしく" ; Phone number is not
- next "はいって いません!@" ; entered correctly!
-; 89135
-
-String_89135: ; 89135
- db "データが かわって いますが" ; The data has changed.
- next "かきかえないで やめますか?@" ; Quit anyway?
-; 89153
-
-String_89153: ; 89153
- db "メッセージは ありません@" ; No message
-; 89160
-
-OpenSRAMBank4: ; 89160
- push af
- ld a, $4
- call GetSRAMBank
- pop af
- ret
-; 89168
-
-
-Function89168: ; 89168 (22:5168)
- ld hl, GameTimerPause
- set 7, [hl]
- ret
-
-Function8916e: ; 8916e (22:516e)
- ld hl, GameTimerPause
- res 7, [hl]
- ret
-
-Function89174: ; 89174 (22:5174)
- ld hl, GameTimerPause
- bit 7, [hl]
- ret
-
-Function8917a: ; 8917a (22:517a)
- ld hl, wd002
- ld bc, $32
- xor a
- call ByteFill
- ret
-
-Function89185: ; 89185 (22:5185)
-; strcmp(hl, de, c)
-; Compares c bytes starting at de and hl and incrementing together until a mismatch is found.
-; Preserves hl and de.
- push de
- push hl
-.loop
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .done
- inc hl
- dec c
- jr nz, .loop
-.done
- pop hl
- pop de
- ret
-
-Function89193: ; 89193
-; copy(hl, de, 4)
-; Copies c bytes from hl to de.
-; Preserves hl and de.
- push de
- push hl
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop
- pop hl
- pop de
- ret
-; 8919e
-
-
-Function8919e: ; 8919e (22:519e)
-; Searches for the c'th string starting at de. Returns the pointer in de.
- ld a, c
- and a
- ret z
-.loop
- ld a, [de]
- inc de
- cp "@"
- jr nz, .loop
- dec c
- jr nz, .loop
- ret
-
-Function891ab: ; 891ab
- call Mobile22_SetBGMapMode1
- callba ReloadMapPart
- call Mobile22_SetBGMapMode0
- ret
-; 891b8
-
-Function891b8: ; 891b8
- call Mobile22_SetBGMapMode0
- hlcoord 0, 0
- ld a, " "
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call DelayFrame
- ret
-; 891ca
-
-
-Function891ca: ; 891ca (22:51ca)
- push bc
- call Function891b8
- call WaitBGMap
- pop bc
- ret
-
-Function891d3: ; 891d3 (22:51d3)
- push bc
- call Function891ca
- ld c, $10
- call DelayFrames
- pop bc
- ret
-
-Function891de: ; 891de
- call Mobile22_SetBGMapMode0
- call ClearPalettes
- hlcoord 0, 0, AttrMap
- ld a, $7
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- hlcoord 0, 0
- ld a, " "
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call Function891ab
- ret
-; 891fe
-
-Function891fe: ; 891fe
- push bc
- call Function891de
- ld c, $10
- call DelayFrames
- pop bc
- ret
-; 89209
-
-Function89209: ; 89209
- ld a, 1
- ld [wSpriteUpdatesEnabled], a
- ret
-; 8920f
-
-Function8920f: ; 8920f
- ld a, 0
- ld [wSpriteUpdatesEnabled], a
- ret
-; 89215
-
-Function89215: ; 89215
- push hl
- push bc
- ld bc, AttrMap - TileMap
- add hl, bc
- ld [hl], a
- pop bc
- pop hl
- ret
-; 8921f
-
-
-Function8921f: ; 8921f (22:521f)
- push de
- ld de, SCREEN_WIDTH
- add hl, de
- inc hl
- ld a, $7f
-.loop
- push bc
- push hl
-.asm_89229
- ld [hli], a
- dec c
- jr nz, .asm_89229
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .loop
- pop de
- ret
-
-Mobile22_ButtonSound: ; 89235 (22:5235)
- call JoyWaitAorB
- call PlayClickSFX
- ret
-
-Mobile22_SetBGMapMode0: ; 8923c
- xor a
- ld [hBGMapMode], a
- ret
-; 89240
-
-Mobile22_SetBGMapMode1: ; 89240
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 89245
-
-
-Function89245: ; 89245 (22:5245)
- callba TryLoadSaveFile
- ret c
- callba _LoadData
- and a
- ret
-
-Function89254: ; 89254 (22:5254)
- ld bc, $d07
- jr Function89261
-
-Function89259: ; 89259
- ld bc, $0e07
- jr Function89261
-
-Function8925e: ; 8925e
- ld bc, $0e0c
-
-Function89261: ; 89261
- push af
- push bc
- ld hl, MenuDataHeader_0x892a3
- call CopyMenuDataHeader
- pop bc
- ld hl, wMenuBorderTopCoord
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
- ld a, c
- add $4
- ld [hli], a
- ld a, b
- add $5
- ld [hl], a
- pop af
- ld [wMenuCursorBuffer], a
- call PushWindow
- call Mobile22_SetBGMapMode0
- call Function89209
- call VerticalMenu
- push af
- ld c, $a
- call DelayFrames
- call CloseWindow
- call Function8920f
- pop af
- jr c, .done
- ld a, [wMenuCursorY]
- cp $2
- jr z, .done
- and a
- ret
-
-.done
- scf
- ret
-; 892a3
-
-MenuDataHeader_0x892a3: ; 0x892a3
- db $40 ; flags
- db 05, 10 ; start coords
- db 09, 15 ; end coords
- dw MenuData2_0x892ab
- db 1 ; default option
-; 0x892ab
-
-MenuData2_0x892ab: ; 0x892ab
- db $c0 ; flags
- db 2 ; items
- db "はい@"
- db "いいえ@"
-; 0x892b4
-
-Function892b4: ; 892b4 (22:52b4)
- call Function8931b
-
-Function892b7: ; 892b7
- ld d, b
- ld e, c
- ld hl, 0
- add hl, bc
- ld a, "@"
- ld bc, 6
- call ByteFill
- ld b, d
- ld c, e
- ld hl, 6
- add hl, bc
- ld a, "@"
- ld bc, 6
- call ByteFill
- ld b, d
- ld c, e
- ld hl, 12
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- ld hl, 14
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld hl, 16
- add hl, bc
- ld [hl], a
- ld hl, 17
- add hl, bc
- ld a, -1
- ld bc, 8
- call ByteFill
- ld b, d
- ld c, e
- ld e, 6
- ld hl, 25
- add hl, bc
-.loop
- ld a, -1
- ld [hli], a
- ld a, -1
- ld [hli], a
- dec e
- jr nz, .loop
- ret
-; 89305
-
-
-Function89305: ; 89305 (22:5305)
- xor a
- ld [MenuSelection], a
- ld c, 40
-.loop
- ld a, [MenuSelection]
- inc a
- ld [MenuSelection], a
- push bc
- call Function892b4
- pop bc
- dec c
- jr nz, .loop
- ret
-
-Function8931b: ; 8931b
- push hl
- ld hl, $a03b ; 4:a03b
- ld a, [MenuSelection]
- dec a
- ld bc, 37
- call AddNTimes
- ld b, h
- ld c, l
- pop hl
- ret
-; 8932d
-
-Function8932d: ; 8932d
- ld hl, 0
- add hl, bc
-
-Function89331: ; 89331
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.
-; Sets carry if it does not find a nonspace character.
-; Returns the location of the following character in hl.
- push bc
- ld c, 5
-.loop
- ld a, [hli]
- cp "@"
- jr z, .terminator
- cp " "
- jr nz, .nonspace
- dec c
- jr nz, .loop
-
-.terminator
- scf
- jr .done
-
-.nonspace
- and a
-
-.done
- pop bc
- ret
-; 89346
-
-
-Function89346: ; 89346 (22:5346)
- ld h, b
- ld l, c
- jr _incave
-
-Function8934a: ; 8934a
- ld hl, 6
- add hl, bc
-_incave:
-; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
- push bc
- ld c, 5
-.loop
- ld a, [hli]
- cp "@"
- jr z, .terminator
- cp " "
- jr nz, .nonspace
- dec c
- jr nz, .loop
-
-.terminator
- scf
- jr .done
-
-.nonspace
- and a
-
-.done
- pop bc
- ret
-; 89363
-
-Function89363: ; 89363
-; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl.
- ld h, b
- ld l, c
- jr ._incave
-
- ld hl, 25
- add hl, bc
-
-._incave
- push de
- ld e, 6
-.loop
- ld a, [hli]
- cp -1
- jr nz, .ok
- ld a, [hli]
- cp -1
- jr nz, .ok
- dec e
- jr nz, .loop
- scf
- jr .done
-
-.ok
- and a
-
-.done
- pop de
- ret
-; 89381
-
-Function89381: ; 89381
- push bc
- push de
- call Function89b45
- jr c, .ok
- push hl
- ld a, -1
- ld bc, 8
- call ByteFill
- pop hl
-
-.ok
- pop de
- ld c, 8
- call Function89193
- pop bc
- ret
-; 8939a
-
-Function8939a: ; 8939a
- push bc
- ld hl, 0
- add hl, bc
- ld de, wd002
- ld c, 6
- call Function89193
- pop bc
- ld hl, 17
- add hl, bc
- ld de, wd008
- call Function89381
- ret
-; 893b3
-
-
-Function893b3: ; 893b3 (22:53b3)
- call DisableLCD
- call ClearSprites
- call LoadStandardFont
- call LoadFontsExtra
- call Function893ef
- call Function8942b
- call Function89455
- call EnableLCD
- ret
-
-Function893cc: ; 893cc
- call DisableLCD
- call ClearSprites
- call LoadStandardFont
- call LoadFontsExtra
- call Function893ef
- call Function89464
- call EnableLCD
- ret
-; 893e2
-
-
-Function893e2: ; 893e2 (22:53e2)
- call Function89b1e
- call Function893b3
- call Function8a5b6
- call Function8949c
- ret
-
-Function893ef: ; 893ef
- ld de, VTiles0
- ld hl, GFX_8940b
- ld bc, $20
- ld a, BANK(GFX_8940b)
- call FarCopyBytes
- ret
-; 893fe
-
-Function893fe: ; 893fe
- call DisableLCD
- call Function893ef
- call EnableLCD
- call DelayFrame
- ret
-; 8940b
-
-GFX_8940b: ; 8940b
-INCBIN "gfx/unknown/08940b.2bpp"
-; 8942b
-
-Function8942b: ; 8942b (22:542b)
- ld de, VTiles0 tile $02
- ld hl, MobileAdapterGFX + $7d0
- ld bc, $80
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ld de, VTiles0 tile $0a
- ld hl, MobileAdapterGFX + $c60
- ld bc, $40
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-
-Function89448: ; 89448 (22:5448)
-; Clears the Sprites array
- push af
- ld hl, Sprites
- ld d, $10 * 6
- xor a
-.loop
- ld [hli], a
- dec d
- jr nz, .loop
- pop af
- ret
-
-Function89455: ; 89455 (22:5455)
- ld hl, MobileAdapterGFX + $7d0
- ld de, VTiles2 tile $0c
- ld bc, $490
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-
-Function89464: ; 89464
- ld hl, MobileAdapterGFX
- ld de, VTiles2
- ld bc, $200
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ld hl, MobileAdapterGFX + $660
- ld de, VTiles2 tile $20
- ld bc, $170
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- ret
-; 89481
-
-Function89481: ; 89481
- ld d, 2
- call Function8934a
- ret c
- ld d, 0
- ld hl, 16
- add hl, bc
- bit 0, [hl]
- ret z
- inc d
- ret
-; 89492
-
-
-Function89492: ; 89492 (22:5492)
- ld d, 0
- ld a, [PlayerGender]
- bit 0, a
- ret z
- inc d
- ret
-
-Function8949c: ; 8949c
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, Palette_894b3
- ld de, UnknBGPals + 8 * 7
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 894b3
-
-Palette_894b3: ; 894b3
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-; 894bb
-
-Function894bb: ; 894bb
- call Function894dc
- push bc
- call Function8956f
- call Function8949c
- call Function8a60d
- pop bc
- ret
-; 894ca
-
-
-Function894ca: ; 894ca (22:54ca)
- push bc
- call Function894dc
- call Function895c7
- call Function8949c
- call Function8a60d
- call SetPalettes
- pop bc
- ret
-
-Function894dc: ; 894dc
- push bc
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
-
- ld c, d
- ld b, 0
- ld hl, .PalettePointers
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, UnknBGPals
- ld bc, 3 palettes
- call CopyBytes
- ld hl, .Pals345
- ld de, UnknBGPals + 3 palettes
- ld bc, 3 palettes
- call CopyBytes
-
- pop af
- ld [rSVBK], a
- pop bc
- ret
-; 89509
-
-.PalettePointers: ; 89509
- dw .Pals012a
- dw .Pals012b
- dw .Pals012c
-; 8950f
-
-.Pals012a: ; 8950f
- RGB 31, 31, 31
- RGB 10, 17, 13
- RGB 10, 08, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 10, 08, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 10, 17, 13
- RGB 00, 00, 00
-
-.Pals012b: ; 89527
- RGB 31, 31, 31
- RGB 30, 22, 11
- RGB 31, 08, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 31, 08, 15
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 30, 22, 11
- RGB 00, 00, 00
-
-.Pals012c: ; 8953f
- RGB 31, 31, 31
- RGB 15, 20, 26
- RGB 25, 07, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 25, 07, 20
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 20, 31
- RGB 15, 20, 26
- RGB 00, 00, 00
-
-.Pals345: ; 89557
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 13, 00
- RGB 14, 08, 00
-
- RGB 31, 31, 31
- RGB 16, 16, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 19, 31, 11
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-; 8956f
-
-Function8956f: ; 8956f
- push bc
- ld hl, 16
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000c
- add hl, bc
- ld b, h
- ld c, l
- callba GetMobileOTTrainerClass
- ld a, c
- ld [TrainerClass], a
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, wd030
- ld a, -1
- ld [hli], a
- ld a, " "
- ld [hl], a
- pop af
- ld [rSVBK], a
- ld a, [TrainerClass]
- ld h, 0
- ld l, a
- add hl, hl
- add hl, hl
- ld de, TrainerPalettes
- add hl, de
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, wd032
- ld c, 4
-.loop
- ld a, BANK(TrainerPalettes)
- call GetFarByte
- ld [de], a
- inc de
- inc hl
- dec c
- jr nz, .loop
- ld hl, wd036
- xor a
- ld [hli], a
- ld [hl], a
- pop af
- ld [rSVBK], a
- pop bc
- ret
-; 895c7
-
-
-Function895c7: ; 895c7 (22:55c7)
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
- ld hl, Palette_895de
- ld de, wd030
- ld bc, 8
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 895de (22:55de)
-
-Palette_895de: ; 895de
- RGB 31, 31, 31
- RGB 07, 07, 06
- RGB 07, 07, 06
- RGB 00, 00, 00
-; 895e6
-
-Function895e6: ; 895e6
- ld a, 7
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ret
-; 895f2
-
-Function895f2: ; 895f2
- push bc
- xor a
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- call Function89605
- call Function89655
- pop bc
- ret
-; 89605
-
-Function89605: ; 89605
- hlcoord 19, 2, AttrMap
- ld a, 1
- ld de, SCREEN_WIDTH
- ld c, 14
-.loop
- ld [hl], a
- dec c
- jr z, .done
- add hl, de
- inc a
- ld [hl], a
- dec a
- add hl, de
- dec c
- jr nz, .loop
-
-.done
- hlcoord 0, 16, AttrMap
- ld c, 10
- ld a, 2
-.loop2
- ld [hli], a
- dec a
- ld [hli], a
- inc a
- dec c
- jr nz, .loop2
- hlcoord 1, 11, AttrMap
- ld a, 4
- ld bc, 4
- call ByteFill
- ld a, 5
- ld bc, 14
- call ByteFill
- ret
-; 8963d
-
-Function8963d: ; 8963d
- hlcoord 12, 3, AttrMap
- ld a, 6
- ld de, SCREEN_WIDTH
- lb bc, 7, 7
-.loop
- push hl
- ld c, 7
-.next
- ld [hli], a
- dec c
- jr nz, .next
- pop hl
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 89655
-
-Function89655: ; 89655
- hlcoord 1, 12, AttrMap
- ld de, SCREEN_WIDTH
- ld a, 5
- ld b, 4
-.loop
- ld c, 18
- push hl
-.next
- ld [hli], a
- dec c
- jr nz, .next
- pop hl
- add hl, de
- dec b
- jr nz, .loop
- ret
-; 8966c
-
-Function8966c: ; 8966c
- push bc
- call Function89688
- hlcoord 4, 0
- ld c, 8
- call Function896f5
- pop bc
- ret
-; 8967a
-
-
-Function8967a: ; 8967a (22:567a)
- push bc
- call Function89688
- hlcoord 2, 0
- ld c, 12
- call Function896f5
- pop bc
- ret
-
-Function89688: ; 89688
- hlcoord 0, 0
- ld a, 1
- ld e, SCREEN_WIDTH
- call Function896e1
- ld a, 2
- ld e, SCREEN_WIDTH
- call Function896eb
- ld a, 3
- ld [hli], a
- ld a, 4
- ld e, SCREEN_HEIGHT
- call Function896e1
- ld a, 6
- ld [hli], a
- push bc
- ld c, 13
-.loop
- call Function896cb
- dec c
- jr z, .done
- call Function896d6
- dec c
- jr nz, .loop
-
-.done
- pop bc
- ld a, 25
- ld [hli], a
- ld a, 26
- ld e, SCREEN_HEIGHT
- call Function896e1
- ld a, 28
- ld [hli], a
- ld a, 2
- ld e, SCREEN_WIDTH
- call Function896eb
- ret
-; 896cb
-
-Function896cb: ; 896cb
- ld de, SCREEN_WIDTH - 1
- ld a, 7
- ld [hl], a
- add hl, de
- ld a, 9
- ld [hli], a
- ret
-; 896d6
-
-Function896d6: ; 896d6
- ld de, SCREEN_WIDTH - 1
- ld a, 10
- ld [hl], a
- add hl, de
- ld a, 11
- ld [hli], a
- ret
-; 896e1
-
-Function896e1: ; 896e1
-.loop
- ld [hli], a
- inc a
- dec e
- ret z
- ld [hli], a
- dec a
- dec e
- jr nz, .loop
- ret
-; 896eb
-
-Function896eb: ; 896eb
-.loop
- ld [hli], a
- dec a
- dec e
- ret z
- ld [hli], a
- inc a
- dec e
- jr nz, .loop
- ret
-; 896f5
-
-Function896f5: ; 896f5
- call Function8971f
- call Function89736
- inc hl
- inc hl
- ld b, 2
-
-ClearScreenArea: ; 0x896ff
-; clears an area of the screen
-; INPUT:
-; hl = address of upper left corner of the area
-; b = height
-; c = width
-
- ld a, " " ; blank tile
- ld de, 20 ; screen width
-.loop
- push bc
- push hl
-.innerLoop
- ld [hli], a
- dec c
- jr nz, .innerLoop
- pop hl
- pop bc
- add hl, de
- dec b
- jr nz, .loop
-
- dec hl
- inc c
- inc c
-.asm_89713
- ld a, $36
- ld [hli], a
- dec c
- ret z
- ld a, $18
- ld [hli], a
- dec c
- jr nz, .asm_89713 ; 0x8971c $f5
- ret
-; 0x8971f
-
-Function8971f: ; 8971f
- ld a, $2c
- ld [hli], a
- ld a, $2d
- ld [hld], a
- push hl
- ld de, SCREEN_WIDTH
- add hl, de
- ld a, $31
- ld [hli], a
- ld a, $32
- ld [hld], a
- add hl, de
- ld a, $35
- ld [hl], a
- pop hl
- ret
-; 89736
-
-Function89736: ; 89736
- push hl
- inc hl
- inc hl
- ld e, c
- ld d, $0
- add hl, de
- ld a, $2f
- ld [hli], a
- ld a, $30
- ld [hld], a
- ld de, SCREEN_WIDTH
- add hl, de
- ld a, $33
- ld [hli], a
- ld a, $34
- ld [hl], a
- add hl, de
- ld a, $1f
- ld [hl], a
- pop hl
- ret
-; 89753
-
-Function89753: ; 89753
- ld a, $c
- ld [hl], a
- xor a
- call Function89215
- ret
-; 8975b
-
-Function8975b: ; 8975b
- ld a, $1d
- ld [hli], a
- inc a
- ld [hli], a
- ld a, $d
- ld [hl], a
- dec hl
- dec hl
- ld a, $4
- ld e, $3
-.asm_89769
- call Function89215
- inc hl
- dec e
- jr nz, .asm_89769
- ret
-; 89771
-
-Function89771: ; 89771
- ld a, $12
- ld [hl], a
- ld a, $3
- call Function89215
- ret
-; 8977a
-
-Function8977a: ; 8977a
- ld e, $4
- ld d, $13
-.asm_8977e
- ld a, d
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc d
- dec e
- jr nz, .asm_8977e
- ld e, $e
-.asm_8978c
- ld a, d
- ld [hl], a
- xor a
- call Function89215
- inc hl
- dec e
- jr nz, .asm_8978c
- ret
-; 89797
-
-Function89797: ; 89797
- push bc
- ld a, $e
- ld [hl], a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld a, $11
- ld [hli], a
- ld a, $10
- ld c, $8
-.asm_897a6
- ld [hli], a
- dec c
- jr nz, .asm_897a6
- ld a, $f
- ld [hl], a
- pop bc
- ret
-; 897af
-
-Function897af: ; 897af
- push bc
- ld hl, $0010
- add hl, bc
- ld d, h
- ld e, l
- ld hl, $000c
- add hl, bc
- ld b, h
- ld c, l
- callba GetMobileOTTrainerClass
- ld a, c
- ld [TrainerClass], a
- xor a
- ld [CurPartySpecies], a
- ld de, VTiles2 tile $37
- callba GetTrainerPic
- pop bc
- ret
-; 897d5
-
-Function897d5: ; 897d5
- push bc
- call Function8934a
- jr nc, .asm_897f3
- hlcoord 12, 3, AttrMap
- xor a
- ld de, SCREEN_WIDTH
- lb bc, 7, 7
-.asm_897e5
- push hl
- ld c, $7
-.asm_897e8
- ld [hli], a
- dec c
- jr nz, .asm_897e8
- pop hl
- add hl, de
- dec b
- jr nz, .asm_897e5
- pop bc
- ret
-
-.asm_897f3
- ld a, $37
- ld [hGraphicStartTile], a
- hlcoord 12, 3
- lb bc, 7, 7
- predef PlaceGraphic
- call Function8963d
- pop bc
- ret
-; 89807
-
-
-Function89807: ; 89807 (22:5807)
- ld hl, MobileAdapterGFX + $200
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_89814
- ld hl, MobileAdapterGFX + $200 + $230
-.asm_89814
- call DisableLCD
- ld de, VTiles2 tile $37
- ld bc, $230
- ld a, BANK(MobileAdapterGFX)
- call FarCopyBytes
- call EnableLCD
- call DelayFrame
- ret
-
-Function89829: ; 89829 (22:5829)
- push bc
- ld bc, $705
- ld de, $14
- ld a, $37
-.asm_89832
- push bc
- push hl
-.asm_89834
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_89834
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_89832
- call Function8963d
- pop bc
- ret
-
-Function89844: ; 89844
- call Function89481
- call Function894bb
- call Function897af
- push bc
- call WaitBGMap2
- call SetPalettes
- pop bc
- ret
-; 89856
-
-Function89856: ; 89856
- push bc
- call Function891b8
- pop bc
- call Function895f2
- call Function8966c
- call Function899d3
- call Function898aa
- call Function898be
- call Function898dc
- call Function898f3
- push bc
- ld bc, wd008
- hlcoord 2, 10
- call Function89975
- pop bc
- call Function897d5
- ret
-; 8987f
-
-
-Function8987f: ; 8987f (22:587f)
- call Function891b8
- call Function895f2
- call Function8967a
- call Function899d3
- hlcoord 5, 1
- call Function8999c
- hlcoord 13, 3
- call Function89829
- call Function899b2
- hlcoord 5, 5
- call Function899c9
- ld bc, wd008
- hlcoord 2, 10
- call Function89975
- ret
-
-Function898aa: ; 898aa
- ld a, [MenuSelection]
- and a
- ret z
- push bc
- hlcoord 6, 1
- ld de, MenuSelection
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- pop bc
- ret
-; 898be
-
-Function898be: ; 898be
- push bc
- ld de, wd002
- ld hl, wd002
- call Function89331
- jr nc, .asm_898cd
- ld de, String_89116
-
-.asm_898cd
- hlcoord 9, 1
- ld a, [MenuSelection]
- and a
- jr nz, .asm_898d7
- dec hl
-
-.asm_898d7
- call PlaceString
- pop bc
- ret
-; 898dc
-
-Function898dc: ; 898dc
- ld hl, $0006
- add hl, bc
- push bc
- ld d, h
- ld e, l
- call Function8934a
- jr nc, .asm_898eb
- ld de, String_89116
-
-.asm_898eb
- hlcoord 6, 4
- call PlaceString
- pop bc
- ret
-; 898f3
-
-Function898f3: ; 898f3
- push bc
- ld hl, $000c
- add hl, bc
- ld d, h
- ld e, l
- call Function8934a
- jr c, .asm_8990a
- hlcoord 5, 5
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- jr .asm_89913
-
-.asm_8990a
- hlcoord 5, 5
- ld de, String_89116
- call PlaceString
-
-.asm_89913
- pop bc
- ret
-; 89915
-
-Function89915: ; 89915
- push bc
- push hl
- ld de, Unknown_89942
- ld c, $8
-.asm_8991c
- ld a, [de]
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc de
- dec c
- jr nz, .asm_8991c
- pop hl
- ld b, $4
- ld c, $2b
- ld a, $8
- ld de, Unknown_8994a
-.asm_89932
- push af
- ld a, [de]
- cp [hl]
- jr nz, .asm_8993b
- call Function8994e
- inc de
-
-.asm_8993b
- inc hl
- pop af
- dec a
- jr nz, .asm_89932
- pop bc
- ret
-; 89942
-
-Unknown_89942: ; 89942
- db $24, $25, $26, " ", $27, $28, $29, $2a
-Unknown_8994a: ; 8994a
- db $24, $27, $29, $ff
-; 8994e
-
-Function8994e: ; 8994e
- push hl
- push de
- ld de, SCREEN_WIDTH
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- ld a, c
- ld [hl], a
- ld a, b
- call Function89215
- pop de
- pop hl
- ret
-; 89962
-
-Function89962: ; 89962
- push bc
- ld c, $4
- ld b, $20
-.asm_89967
- ld a, b
- ld [hl], a
- ld a, $4
- call Function89215
- inc hl
- inc b
- dec c
- jr nz, .asm_89967
- pop bc
- ret
-; 89975
-
-Function89975: ; 89975
- push bc
- ld e, $8
-.asm_89978
- ld a, [bc]
- ld d, a
- call Function8998b
- swap d
- inc hl
- ld a, d
- call Function8998b
- inc bc
- inc hl
- dec e
- jr nz, .asm_89978
- pop bc
- ret
-; 8998b
-
-Function8998b: ; 8998b
- push bc
- and $f
- cp $a
- jr nc, .asm_89997
- ld c, $f6
- add c
- jr .asm_89999
-
-.asm_89997
- ld a, $7f
-
-.asm_89999
- ld [hl], a
- pop bc
- ret
-; 8999c
-
-
-Function8999c: ; 8999c (22:599c)
- ld de, PlayerName
- call PlaceString
- inc bc
- ld h, b
- ld l, c
- ld de, String_899ac
- call PlaceString
- ret
-; 899ac (22:59ac)
-
-String_899ac: ; 899ac
- db "の めいし@"
-; 899b2
-
-Function899b2: ; 899b2 (22:59b2)
- ld bc, PlayerName
- call Function89346
- jr c, .asm_899bf
- ld de, PlayerName
- jr .asm_899c2
-.asm_899bf
- ld de, String_89116
-.asm_899c2
- hlcoord 6, 4
- call PlaceString
- ret
-
-Function899c9: ; 899c9 (22:59c9)
- ld de, PlayerID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-
-Function899d3: ; 899d3
- hlcoord 1, 4
- call Function89753
- hlcoord 2, 5
- call Function8975b
- hlcoord 1, 9
- call Function89771
- hlcoord 1, 11
- call Function8977a
- hlcoord 1, 5
- call Function89797
- hlcoord 2, 4
- call Function89962
- hlcoord 2, 9
- call Function89915
- ret
-; 899fe
-
-Function899fe: ; 899fe
- push bc
- push hl
- ld hl, $0019
- add hl, bc
- ld b, h
- ld c, l
- pop hl
- call Function89a0c
- pop bc
- ret
-; 89a0c
-
-Function89a0c: ; 89a0c
- push hl
- call Function89363
- pop hl
- jr c, .asm_89a1c
- ld d, h
- ld e, l
- callba Function11c08f
- ret
-
-.asm_89a1c
- ld de, String_89153
- call PlaceString
- ret
-; 89a23
-
-
-Function89a23: ; 89a23 (22:5a23)
- hlcoord 0, 11
- ld b, $4
- ld c, $12
- call Function8921f
- ret
-
-Function89a2e: ; 89a2e (22:5a2e)
- hlcoord 11, 12
- ld b, $2
- ld c, $6
- call TextBox
- hlcoord 13, 13
- ld de, String_89a4e
- call PlaceString
- hlcoord 13, 14
- ld de, String_89a53
- call PlaceString
- call Function89655
- ret
-; 89a4e (22:5a4e)
-
-String_89a4e: ; 89a4e
- db "けってい@"
-; 89a53
-
-String_89a53: ; 89a53
- db "やめる@"
-; 89a57
-
-Function89a57: ; 89a57
- call JoyTextDelay_ForcehJoyDown ; joypad
- bit D_UP_F, c
- jr nz, .d_up
- bit D_DOWN_F, c
- jr nz, .d_down
- bit A_BUTTON_F, c
- jr nz, .a_b_button
- bit B_BUTTON_F, c
- jr nz, .a_b_button
- bit START_F, c
- jr nz, .start_button
- scf
- ret
-
-.a_b_button
- ld a, $1
- and a
- ret
-
-.start_button
- ld a, $2
- and a
- ret
-
-.d_up
- call .MoveCursorUp
- call nc, .PlayPocketSwitchSFX
- ld a, $0
- ret
-
-.d_down
- call .MoveCursorDown
- call nc, .PlayPocketSwitchSFX
- ld a, $0
- ret
-; 89a8a
-
-.PlayPocketSwitchSFX: ; 89a8a
- push af
- ld de, SFX_SWITCH_POCKETS
- call PlaySFX
- pop af
- ret
-; 89a93
-
-.MoveCursorDown: ; 89a93
- ld d, 40
- ld e, 1
- call .ApplyCursorMovement
- ret
-; 89a9b
-
-.MoveCursorUp: ; 89a9b
- ld d, 1
- ld e, -1
- call .ApplyCursorMovement
- ret
-; 89aa3
-
-.ApplyCursorMovement: ; 89aa3
- ld a, [MenuSelection]
- ld c, a
- push bc
-.loop
- ld a, [MenuSelection]
- cp d
- jr z, .equal_to_d
- add e
- jr nz, .not_zero
- inc a
-
-.not_zero
- ld [MenuSelection], a
- call .Function89ac7 ; BCD conversion of data in SRAM?
- jr nc, .loop
- call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5
- pop bc
- and a
- ret
-
-.equal_to_d
- pop bc
- ld a, c
- ld [MenuSelection], a
- scf
- ret
-; 89ac7
-
-.Function89ac7: ; 89ac7
- call OpenSRAMBank4
- call Function8931b
- call .Function89ad4
- call CloseSRAM
- ret
-; 89ad4
-
-.Function89ad4: ; 89ad4
- push de
- call Function8932d ; find a non-space character within 5 bytes of bc
- jr c, .no_nonspace_character
- ld hl, 17
- add hl, bc
- call Function89b45
- jr c, .finish_decode
-
-.no_nonspace_character
- and a
-
-.finish_decode
- pop de
- ret
-; 89ae6
-
-.Function89ae6: ; 89ae6
- ld hl, wd031
- xor a
- ld [hl], a
- ld a, [MenuSelection]
-.loop2
- cp 6
- jr c, .load_and_ret
- sub 5
- ld c, a
- ld a, [hl]
- add 5
- ld [hl], a
- ld a, c
- jr .loop2
-
-.load_and_ret
- ld [wd030], a
- ret
-; 89b00
-
-
-Function89b00: ; 89b00 (22:5b00)
- callba MG_Mobile_Layout_LoadPals
- ret
-; 89b07 (22:5b07)
-
-Function89b07: ; 89b07
- call Mobile22_SetBGMapMode0
- call DelayFrame
- callba Function4a3a7
- ret
-; 89b14
-
-Function89b14: ; 89b14
- call ClearBGPalettes
- call Function89b07
- call Function89b00
- ret
-; 89b1e
-
-Function89b1e: ; 89b1e (22:5b1e)
- callba Function4a485
- call Function89b00
- ret
-
-Function89b28: ; 89b28 (22:5b28)
- call Function891de
- call ClearBGPalettes
- call Function893e2
- call Call_ExitMenu
- call Function891ab
- call SetPalettes
- ret
-
-Function89b3b: ; 89b3b (22:5b3b)
- call Mobile22_SetBGMapMode0
- callba Function48cda
- ret
-
-Function89b45: ; 89b45
- ; some sort of decoder?
- ; BCD?
- push hl
- push bc
- ld c, $10
- ld e, $0
-.loop
- ld a, [hli]
- ld b, a
- and $f
- cp 10
- jr c, .low_nybble_less_than_10
- ld a, c
- cp $b
- jr nc, .clear_carry
- jr .set_carry
-
-.low_nybble_less_than_10
- dec c
- swap b
- inc e
- ld a, b
- and $f
- cp 10
- jr c, .high_nybble_less_than_10
- ld a, c
- cp $b
- jr nc, .clear_carry
- jr .set_carry
-
-.high_nybble_less_than_10
- inc e
- dec c
- jr nz, .loop
- dec e
-
-.set_carry
- scf
- jr .finish
-
-.clear_carry
- and a
-
-.finish
- pop bc
- pop hl
- ret
-; 89b78
-
-
-Function89b78: ; 89b78 (22:5b78)
- push bc
- ld a, [wd010]
- cp $10
- jr c, .asm_89b8c
- ld a, e
- and a
- jr z, .asm_89b89
- ld c, e
-.asm_89b85
- inc hl
- dec c
- jr nz, .asm_89b85
-.asm_89b89
- ld a, $7f
- ld [hl], a
-.asm_89b8c
- ld a, [wd010]
- inc a
- and $1f
- ld [wd010], a
- pop bc
- ret
-
-Function89b97: ; 89b97 (22:5b97)
- call Function89c34
- jr c, .asm_89ba0
- call Function89448
- ret
-.asm_89ba0
- ld a, [wd011]
- ld hl, Unknown_89bd8
- and a
- jr z, .asm_89bae
-.asm_89ba9
- inc hl
- inc hl
- dec a
- jr nz, .asm_89ba9
-.asm_89bae
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Sprites
-.asm_89bb4
- ld a, [hli]
- cp $ff
- ret z
- ld c, a
- ld b, $0
-.asm_89bbb
- push hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, $8
- add b
- ld b, a
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop hl
- dec c
- jr nz, .asm_89bbb
- ld b, $0
- ld c, $4
- add hl, bc
- jr .asm_89bb4
-; 89bd8 (22:5bd8)
-
-Unknown_89bd8: ; 89bd8
- dw Unknown_89be0
- dw Unknown_89bf5
- dw Unknown_89c0a
- dw Unknown_89c1f
-; 89be0
-
-Unknown_89be0: ; 89be0
- db $01, $12, $4e, $01, $00
- db $01, $19, $4e, $01, $40
- db $01, $12, $72, $01, $20
- db $01, $19, $72, $01, $60
- db $ff
-
-Unknown_89bf5: ; 89bf5
- db $01, $60, $16, $01, $00
- db $01, $62, $16, $01, $40
- db $01, $60, $92, $01, $20
- db $01, $62, $92, $01, $60
- db $ff
-
-Unknown_89c0a: ; 89c0a
- db $01, $78, $66, $01, $00
- db $01, $78, $66, $01, $40
- db $01, $78, $92, $01, $20
- db $01, $78, $92, $01, $60
- db $ff
-
-Unknown_89c1f: ; 89c1f
- db $01, $80, $66, $01, $00
- db $01, $80, $66, $01, $40
- db $01, $80, $92, $01, $20
- db $01, $80, $92, $01, $60
- db $ff
-; 89c34
-
-Function89c34: ; 89c34 (22:5c34)
- push bc
- ld a, [wd012]
- ld c, a
- inc a
- and $f
- ld [wd012], a
- ld a, c
- cp $8
- pop bc
- ret
-
-Function89c44: ; 89c44 (22:5c44)
- call Function89c34
- jr c, .asm_89c4f
- push de
- call Function89448
- pop de
- ret
-.asm_89c4f
- ld hl, Sprites
- push de
- ld a, b
- ld [hli], a
- ld d, $8
- ld a, e
- and a
- ld a, c
- jr z, .asm_89c60
-.asm_89c5c
- add d
- dec e
- jr nz, .asm_89c5c
-.asm_89c60
- pop de
- ld [hli], a
- ld a, d
- ld [hli], a
- xor a
- ld [hli], a
- ret
-
-Function89c67: ; 89c67 (22:5c67)
-; menu scrolling?
- call JoyTextDelay_ForcehJoyDown ; joypad
- ld b, $0
- bit A_BUTTON_F, c
- jr z, .not_a_button
- ld b, $1
- and a
- ret
-
-.not_a_button
- bit B_BUTTON_F, c
- jr z, .not_b_button
- scf
- ret
-
-.not_b_button
- xor a
- bit D_UP_F, c
- jr z, .not_d_up
- ld a, $1
-.not_d_up
- bit D_DOWN_F, c
- jr z, .not_d_down
- ld a, $2
-.not_d_down
- bit D_LEFT_F, c
- jr z, .not_d_left
- ld a, $3
-.not_d_left
- bit D_RIGHT_F, c
- jr z, .not_d_right
- ld a, $4
-.not_d_right
- and a
- ret z ; no dpad pressed
- dec a
- ld c, a
- ld d, $0
- ld hl, .ScrollData0
- ld a, [wd02f]
- and a
- jr z, .got_data
- ld hl, .ScrollData1
-.got_data
- ld a, [wd011]
- and a
- jr z, .got_row
- ld e, $4
-.add_n_times
- add hl, de
- dec a
- jr nz, .add_n_times
-.got_row
- ld e, c
- add hl, de
- ld a, [hl]
- and a
- ret z
- dec a
- ld [wd011], a
- xor a
- ld [wd012], a
- ret
-; 89cbf (22:5cbf)
-
-.ScrollData0: ; 89cbf
- db 0, 2, 0, 0
- db 1, 3, 0, 0
- db 2, 4, 0, 0
- db 3, 0, 0, 0
-
-.ScrollData1: ; 89ccf
- db 0, 0, 0, 0
- db 0, 3, 0, 0
- db 2, 4, 0, 0
- db 3, 0, 0, 0
-; 89cdf
-
-Function89cdf: ; 89cdf (22:5cdf)
- ld a, $10
- add b
- ld b, a
- ld a, $8
- add c
- ld c, a
- ld e, $2
- ld a, $2
- ld hl, Sprites
-.asm_89cee
- push af
- push bc
- ld d, $4
-.asm_89cf2
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld a, $8
- add c
- ld c, a
- inc e
- dec d
- jr nz, .asm_89cf2
- pop bc
- ld a, $8
- add b
- ld b, a
- pop af
- dec a
- jr nz, .asm_89cee
- ret
-
-Function89d0d: ; 89d0d (22:5d0d)
- call Mobile22_SetBGMapMode0
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld c, 8
- ld de, UnknBGPals
-.loop
- push bc
- ld hl, .Palette1
- ld bc, 1 palettes
- call CopyBytes
- pop bc
- dec c
- jr nz, .loop
-
- ld hl, .Palette2
- ld de, UnknBGPals + 2 palettes
- ld bc, 1 palettes
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- call SetPalettes
- callba PrintMail_
- call Mobile22_SetBGMapMode1
- ld c, 24
- call DelayFrames
- call RestartMapMusic
- ret
-; 89d4e (22:5d4e)
-
-.Palette1: ; 89d4e
- RGB 31, 31, 31
- RGB 19, 19, 19
- RGB 15, 15, 15
- RGB 00, 00, 00
-; 89d56
-
-.Palette2: ; 89d56
- RGB 31, 31, 31
- RGB 19, 19, 19
- RGB 19, 19, 19
- RGB 00, 00, 00
-; 89d5e
-
-Function89d5e: ; 89d5e (22:5d5e)
- push af
- call CopyMenuDataHeader
- pop af
- ld [wMenuCursorBuffer], a
- call Mobile22_SetBGMapMode0
- call PlaceVerticalMenuItems
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 7, [hl]
- ret
-
-Function89d75: ; 89d75 (22:5d75)
- push hl
- call Mobile22_SetBGMapMode0
- call _hl_
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- pop hl
- jr asm_89d90
-
-Function89d85: ; 89d85 (22:5d85)
- push hl
- call Mobile22_SetBGMapMode0
- call _hl_
- call CGBOnly_LoadEDTile
- pop hl
-
-asm_89d90: ; 89d90 (22:5d90)
- call Mobile22_SetBGMapMode0
- push hl
- call _hl_
- call Function89dab
- ld a, [wMenuCursorY]
- push af
- call Function891ab
- pop af
- pop hl
- jr c, .asm_89da9
- jr z, asm_89d90
- scf
- ret
-.asm_89da9
- and a
- ret
-
-Function89dab: ; 89dab (22:5dab)
- call Mobile22_SetBGMapMode0
- callba MobileMenuJoypad
- call Mobile22_SetBGMapMode0
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- bit 0, a
- jr nz, .asm_89dc7
- bit 1, a
- jr nz, .asm_89dd9
- xor a
- ret
-.asm_89dc7
- call PlayClickSFX
- ld a, [w2DMenuNumRows]
- ld c, a
- ld a, [wMenuCursorY]
- cp c
- jr z, .asm_89dd9
- call PlaceHollowCursor
- scf
- ret
-.asm_89dd9
- call PlayClickSFX
- ld a, $1
- and a
- ret
-
-Function89de0: ; 89de0 (22:5de0)
- call ClearSprites
- call Function89e0a
- jr c, .asm_89e00
- ld c, $1
-.asm_89dea
- call Function8a31c
- jr z, .asm_89dfd
- ld a, [wMenuCursorY]
- ld c, a
- push bc
- ld hl, Jumptable_89e04
- ld a, e
- dec a
- rst JumpTable
- pop bc
- jr .asm_89dea
-.asm_89dfd
- call Function891fe
-.asm_89e00
- call Function8917a
- ret
-
-Jumptable_89e04: ; 89e04 (22:5e04)
- dw Function8a62c
- dw Function8a999
- dw Function8ab93
-
-
-Function89e0a: ; 89e0a (22:5e0a)
- call OpenSRAMBank4
- call Function8b3b0
- call CloseSRAM
- ld hl, Jumptable_89e18
- rst JumpTable
- ret
-
-Jumptable_89e18: ; 89e18 (22:5e18)
- dw Function89e1e
- dw Function8a116
- dw Function8a2aa
-
-
-Function89e1e: ; 89e1e (22:5e1e)
- call OpenSRAMBank4
- ld bc, $a037 ; 4:a037
- call Function8b36c
- call CloseSRAM
- xor a
- ld [wd02d], a
-
-asm_89e2e: ; 89e2e (22:5e2e)
- ld a, [wd02d]
- ld hl, Jumptable_89e3c
- rst JumpTable
- ret
-
-Function89e36: ; 89e36 (22:5e36)
- ld hl, wd02d
- inc [hl]
- jr asm_89e2e
-
-Jumptable_89e3c: ; 89e3c (22:5e3c)
- dw Function89e6f
- dw Function89fed
- dw Function89ff6
- dw Function8a03d
- dw Function89eb9
- dw Function89efd
- dw Function89fce
- dw Function8a04c
- dw Function8a055
- dw Function8a0e6
- dw Function8a0ec
- dw Function8a0f5
- dw Function89e58
- dw Function89e68
-
-
-Function89e58: ; 89e58 (22:5e58)
- ld a, $1
- call Function8a2fe
- call Function891fe
- call Function893e2
- call Function89168
- and a
- ret
-
-Function89e68: ; 89e68 (22:5e68)
- call Function891fe
- ld a, $1
- scf
- ret
-
-Function89e6f: ; 89e6f (22:5e6f)
- call Function891de
- call Function89245
- call Function89ee1
- call Function89e9a
- hlcoord 7, 4
- call Function8a58d
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function891ab
- call SetPalettes
- jp Function89e36
-
-Function89e9a: ; 89e9a (22:5e9a)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_89eb1
- ld de, UnknBGPals + 5 palettes
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 89eb1 (22:5eb1)
-
-Palette_89eb1: ; 89eb1
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 27, 19, 00
- RGB 00, 00, 00
-; 89eb9
-
-Function89eb9: ; 89eb9 (22:5eb9)
- call Function891fe
- call Function89ee1
- call Function89e9a
- hlcoord 7, 4
- call Function8a58d
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function891ab
- call SetPalettes
- jp Function89e36
-
-Function89ee1: ; 89ee1 (22:5ee1)
- call ClearBGPalettes
- call Function893e2
- call Mobile22_SetBGMapMode0
- callba Function4a3a7
- callba MG_Mobile_Layout_CreatePalBoxes
- hlcoord 1, 0
- call Function8a53d
- ret
-
-Function89efd: ; 89efd (22:5efd)
- ld hl, wd012
- ld a, $ff
- ld [hli], a
- xor a
-rept 4
- ld [hli], a
-endr
- ld [hl], a
-.asm_89f09
- ld hl, wd012
- inc [hl]
- ld a, [hli]
- and $3
- jr nz, .asm_89f2e
- ld a, [hl]
- cp $4
- jr nc, .asm_89f2e
- ld b, $32
- inc [hl]
- ld a, [hl]
- dec a
- jr z, .asm_89f26
- ld c, a
-.asm_89f1f
- ld a, $b
- add b
- ld b, a
- dec c
- jr nz, .asm_89f1f
-.asm_89f26
- ld c, $e8
- ld a, [wd013]
- call Function89fa5
-.asm_89f2e
- ld a, [wd013]
- and a
- jr z, .asm_89f58
-.asm_89f34
- call Function89f6a
- ld e, a
- ld a, c
- cp $a8
- jr nc, .asm_89f4d
- cp $46
- jr c, .asm_89f4d
- ld d, $0
- dec e
- ld hl, wd014
- add hl, de
- set 0, [hl]
- inc e
- jr .asm_89f51
-.asm_89f4d
- ld a, $2
- add c
- ld c, a
-.asm_89f51
- ld a, e
- call Function89f77
- dec a
- jr nz, .asm_89f34
-.asm_89f58
- call DelayFrame
- ld hl, wd014
- ld c, $4
-.asm_89f60
- ld a, [hli]
- and a
- jr z, .asm_89f09
- dec c
- jr nz, .asm_89f60
- jp Function89e36
-
-Function89f6a: ; 89f6a (22:5f6a)
- push af
- ld de, $10
- call Function89f9a
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld c, a
- pop af
- ret
-
-Function89f77: ; 89f77 (22:5f77)
- push af
- ld de, $10
- call Function89f9a
- ld d, $2
-.asm_89f80
- push bc
- ld e, $2
-.asm_89f83
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- inc hl
- inc hl
- ld a, $8
- add c
- ld c, a
- dec e
- jr nz, .asm_89f83
- pop bc
- ld a, $8
- add b
- ld b, a
- dec d
- jr nz, .asm_89f80
- pop af
- ret
-
-Function89f9a: ; 89f9a (22:5f9a)
- dec a
- ld hl, Sprites
- and a
- ret z
-.asm_89fa0
- add hl, de
- dec a
- jr nz, .asm_89fa0
- ret
-
-Function89fa5: ; 89fa5 (22:5fa5)
- ld de, $10
- call Function89f9a
- ld e, $2
- ld d, $a
-.asm_89faf
- push bc
- ld a, $2
-.asm_89fb2
- push af
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld a, d
- inc d
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld a, $8
- add c
- ld c, a
- pop af
- dec a
- jr nz, .asm_89fb2
- pop bc
- ld a, $8
- add b
- ld b, a
- dec e
- jr nz, .asm_89faf
- ret
-
-Function89fce: ; 89fce (22:5fce)
- call Function8a5b6
- ld a, $5
- hlcoord 7, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 10, 4, AttrMap
- call Function8a5a3
- call Function89448
- call SetPalettes
- call Function891ab
- jp Function89e36
-
-Function89fed: ; 89fed (22:5fed)
- ld hl, UnknownText_0x8a102
- call PrintText
- jp Function89e36
-
-Function89ff6: ; 89ff6 (22:5ff6)
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- call OpenSRAMBank4
- ld hl, $a603
- ld a, -1
- ld bc, 8
- call ByteFill
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function8987f
- call OpenSRAMBank4
- hlcoord 1, 13
- ld bc, $a007
- call Function89a0c
- call CloseSRAM
- call Function891ab
- call Mobile22_ButtonSound
- jp Function89e36
-
-Function8a03d: ; 8a03d (22:603d)
- ld hl, UnknownText_0x8a107
- call Function89209
- call PrintText
- call Function8920f
- jp Function89e36
-
-Function8a04c: ; 8a04c (22:604c)
- ld hl, UnknownText_0x8a10c
- call PrintText
- jp Function89e36
-
-Function8a055: ; 8a055 (22:6055)
- ld c, $7
- ld b, $4
-.asm_8a059
- call Function8a0a1
- inc c
- call Function8a0c9
- push bc
- call Function8a58d
- pop bc
- call Function8a0de
- push bc
- push hl
- ld a, $5
- call Function8a5a3
- pop hl
- inc hl
- inc hl
- inc hl
- ld a, $6
- call Function8a5a3
- call CGBOnly_LoadEDTile
- pop bc
- ld a, c
- cp $b
- jr nz, .asm_8a059
- call Function8a0a1
- hlcoord 12, 4
- call Function8a58d
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- pop hl
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- call CGBOnly_LoadEDTile
- jp Function89e36
-
-Function8a0a1: ; 8a0a1 (22:60a1)
- call Mobile22_SetBGMapMode0
- push bc
- call Function8a0c9
- ld e, $6
-.asm_8a0aa
- push hl
- ld bc, $6
- add hl, bc
- ld d, [hl]
- call Function8a0c1
- pop hl
- ld [hl], d
- call Function89215
- ld bc, $14
- add hl, bc
- dec e
- jr nz, .asm_8a0aa
- pop bc
- ret
-
-Function8a0c1: ; 8a0c1 (22:60c1)
- push hl
- ld bc, AttrMap - TileMap
- add hl, bc
- ld a, [hl]
- pop hl
- ret
-
-Function8a0c9: ; 8a0c9 (22:60c9)
- push bc
- hlcoord 0, 0
- ld de, $14
- ld a, b
- and a
- jr z, .asm_8a0d8
-.asm_8a0d4
- add hl, de
- dec b
- jr nz, .asm_8a0d4
-.asm_8a0d8
- ld d, $0
- ld e, c
- add hl, de
- pop bc
- ret
-
-Function8a0de: ; 8a0de (22:60de)
- call Function8a0c9
- ld de, AttrMap - TileMap
- add hl, de
- ret
-
-Function8a0e6: ; 8a0e6 (22:60e6)
- call Function8b539
- jp Function89e36
-
-Function8a0ec: ; 8a0ec (22:60ec)
- ld hl, UnknownText_0x8a111
- call PrintText
- jp Function89e36
-
-Function8a0f5: ; 8a0f5 (22:60f5)
- call Function8b555
- jp nc, Function8a0ff
- ld hl, wd02d
- inc [hl]
-
-Function8a0ff: ; 8a0ff (22:60ff)
- jp Function89e36
-; 8a102 (22:6102)
-
-UnknownText_0x8a102: ; 0x8a102
- ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
- text_jump UnknownText_0x1c5238
- db "@"
-; 0x8a107
-
-UnknownText_0x8a107: ; 0x8a107
- ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
- text_jump UnknownText_0x1c52bc
- db "@"
-; 0x8a10c
-
-UnknownText_0x8a10c: ; 0x8a10c
- ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
- text_jump UnknownText_0x1c531e
- db "@"
-; 0x8a111
-
-UnknownText_0x8a111: ; 0x8a111
- ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
- text_jump UnknownText_0x1c5394
- db "@"
-; 0x8a116
-
-Function8a116: ; 8a116 (22:6116)
- ld a, $1
- ld [wd030], a
- ld hl, MenuDataHeader_0x8a176
- call LoadMenuDataHeader
-.asm_8a121
- call Mobile22_SetBGMapMode0
- call Function8a17b
- jr c, .asm_8a16b
- ld a, [wMenuCursorY]
- ld [wd030], a
- dec d
- jr z, .asm_8a140
- call Function8a20d
- jr c, .asm_8a121
- xor a
- call Function8a2fe
- call Function8916e
- jr .asm_8a16b
-.asm_8a140
- call Function89174
- jr nz, .asm_8a14c
- call Function8a241
- jr c, .asm_8a121
- jr .asm_8a15a
-.asm_8a14c
- call WaitSFX
- ld de, SFX_TWINKLE
- call PlaySFX
- ld c, $10
- call DelayFrames
-.asm_8a15a
- call ExitMenu
- call Function891de
- call Function893e2
- call Function89245
- call Function89168
- and a
- ret
-.asm_8a16b
- call Function89209
- call CloseWindow
- call Function8920f
- scf
- ret
-; 8a176 (22:6176)
-
-MenuDataHeader_0x8a176: ; 0x8a176
- db $40 ; flags
- db 00, 14 ; start coords
- db 06, 19 ; end coords
-; 8a17b
-
-Function8a17b: ; 8a17b (22:617b)
- decoord 14, 0
- ld b, $5
- ld c, $4
- call Function89b3b
- ld hl, MenuDataHeader_0x8a19a
- ld a, [wd030]
- call Function89d5e
- ld hl, Function8a1b0
- call Function89d75
- jr nc, .asm_8a198
- ld a, $0
-.asm_8a198
- ld d, a
- ret
-; 8a19a (22:619a)
-
-MenuDataHeader_0x8a19a: ; 0x8a19a
- db $40 ; flags
- db 00, 14 ; start coords
- db 06, 19 ; end coords
- dw MenuData2_0x8a1a2
- db 1 ; default option
-; 0x8a1a2
-
-MenuData2_0x8a1a2: ; 0x8a1a2
- db $e0 ; flags
- db 3 ; items
- db "ひらく@"
- db "すてる@"
- db "もどる@"
-; 0x8a1b0
-
-Function8a1b0: ; 8a1b0
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld a, [wMenuCursorY]
- ld de, Strings_8a1cc
- dec a
- ld c, a
- call Function8919e
- call PlaceString
- ret
-; 8a1cc
-
-Strings_8a1cc: ; 8a1cc
- db "めいし", $25, "せいりと へんしゅうを"
- next "おこないます"
- db "@"
-
- db "めいしフ,ルダー", $25, "めいしと"
- next "あんしょうばんごう", $1f, "けします"
- db "@"
-
- db "まえ", $25, "がめん", $1d, "もどります"
- db "@"
-; 8a20d
-
-
-Function8a20d: ; 8a20d (22:620d)
- ld hl, UnknownText_0x8a232
- call PrintText
- ld a, $2
- call Function89259
- ret c
- ld hl, UnknownText_0x8a237
- call PrintText
- ld a, $2
- call Function89259
- ret c
- xor a
- call Function8a2fe
- ld hl, UnknownText_0x8a23c
- call PrintText
- xor a
- and a
- ret
-; 8a232 (22:6232)
-
-UnknownText_0x8a232: ; 0x8a232
- ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
- text_jump UnknownText_0x1c53ee
- db "@"
-; 0x8a237
-
-UnknownText_0x8a237: ; 0x8a237
- ; Are you sure you want to delete it?
- text_jump UnknownText_0x1c5494
- db "@"
-; 0x8a23c
-
-UnknownText_0x8a23c: ; 0x8a23c
- ; The CARD FOLDER has been deleted.
- text_jump UnknownText_0x1c54b9
- db "@"
-; 0x8a241
-
-Function8a241: ; 8a241 (22:6241)
- call LoadStandardMenuDataHeader
- call Function891fe
- call Function8a262
- jr nc, .asm_8a254
- call Function891fe
- call Function89b28
- scf
- ret
-.asm_8a254
- call Function891de
- call ClearBGPalettes
- call Call_ExitMenu
- call Function891de
- and a
- ret
-
-Function8a262: ; 8a262 (22:6262)
- call ClearBGPalettes
- call Function893e2
- call Mobile22_SetBGMapMode0
- callba Function4a3a7
- callba MG_Mobile_Layout_CreatePalBoxes
- hlcoord 1, 0
- call Function8a53d
- hlcoord 12, 4
- call Function8a58d
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- xor a
- ld [wd02e], a
- ld bc, wd013
- call Function8b36c
- call Function8b493
- call Function891ab
- call SetPalettes
- call Function8b5e7
- ret
-
-Function8a2aa: ; 8a2aa (22:62aa)
- ld hl, MenuDataHeader_0x8a2ef
- call LoadMenuDataHeader
- ld hl, UnknownText_0x8a2f4
- call PrintText
- ld a, $1
- call Function89259
- jr nc, .asm_8a2cf
- ld hl, UnknownText_0x8a2f9
- call PrintText
- ld a, $2
- call Function89259
- jr c, .asm_8a2ea
- call Function8a20d
- jr .asm_8a2ea
-.asm_8a2cf
- call ExitMenu
- call Function8a241
- jr c, .asm_8a2ed
- ld a, $1
- call Function8a313
- call CloseSRAM
- call Function891de
- call Function89245
- call Function89168
- and a
- ret
-.asm_8a2ea
- call CloseWindow
-.asm_8a2ed
- scf
- ret
-; 8a2ef (22:62ef)
-
-MenuDataHeader_0x8a2ef: ; 0x8a2ef
- db $40 ; flags
- db 12, 00 ; start coords
- db 17, 19 ; end coords
-; 8a2f4
-
-UnknownText_0x8a2f4: ; 0x8a2f4
- ; There is an older CARD FOLDER from a previous journey. Do you want to open it?
- text_jump UnknownText_0x1c54dd
- db "@"
-; 0x8a2f9
-
-UnknownText_0x8a2f9: ; 0x8a2f9
- ; Delete the old CARD FOLDER?
- text_jump UnknownText_0x1c552d
- db "@"
-; 0x8a2fe
-
-Function8a2fe: ; 8a2fe (22:62fe)
- call Function8a313
- call Function89305
- ld hl, $a603
- ld bc, $8
- ld a, -1
- call ByteFill
- call CloseSRAM
- ret
-
-Function8a313: ; 8a313 (22:6313)
- ld c, a
- call OpenSRAMBank4
- ld a, c
- ld [$a60b], a
- ret
-
-Function8a31c: ; 8a31c (22:631c)
- push bc
- call Mobile22_SetBGMapMode0
- callba Function4a3a7
- callba MG_Mobile_Layout_CreatePalBoxes
- hlcoord 1, 0
- call Function8a53d
- hlcoord 12, 4
- call Function8a58d
- call Function8a3b2
- pop bc
- ld a, c
- ld [wMenuCursorBuffer], a
- ld [MenuSelection], a
- call PlaceVerticalMenuItems
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 7, [hl]
-.asm_8a34e
- call Function8a3a2
- call Mobile22_SetBGMapMode0
- call Function8a453
- call Function8a4d3
- call Function8a4fc
- call Function891ab
- call SetPalettes
- call Function8a383
- jr c, .asm_8a370
- jr z, .asm_8a34e
-.asm_8a36a
- call Function89448
- xor a
- ld e, a
- ret
-.asm_8a370
- call Function89448
- call PlaceHollowCursor
- call Function8a3a2
- ld a, [MenuSelection]
- cp $ff
- jr z, .asm_8a36a
- ld e, a
- and a
- ret
-
-Function8a383: ; 8a383 (22:6383)
- callba MobileMenuJoypad
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- bit 0, a
- jr nz, .asm_8a399
- bit 1, a
- jr nz, .asm_8a39e
- xor a
- ret
-.asm_8a399
- call PlayClickSFX
- scf
- ret
-.asm_8a39e
- call PlayClickSFX
- ret
-
-Function8a3a2: ; 8a3a2 (22:63a2)
- ld a, [wMenuCursorY]
- dec a
- ld hl, wd002
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ld [MenuSelection], a
- ret
-
-Function8a3b2: ; 8a3b2 (22:63b2)
- ld a, $1
- ld [MenuSelection], a
- call Function8a4fc
- call Function8a3df
- jr nc, .asm_8a3ce
- decoord 0, 2
- ld b, $6
- ld c, $9
- call Function89b3b
- ld hl, MenuDataHeader_0x8a435
- jr .asm_8a3db
-.asm_8a3ce
- decoord 0, 2
- ld b, $8
- ld c, $9
- call Function89b3b
- ld hl, MenuDataHeader_0x8a40f
-.asm_8a3db
- call CopyMenuDataHeader
- ret
-
-Function8a3df: ; 8a3df (22:63df)
- call OpenSRAMBank4
- ld hl, $a603
- call Function89b45
- call CloseSRAM
- ld hl, wd002
- jr c, .asm_8a3f8
- ld de, Unknown_8a408
- call Function8a400
- scf
- ret
-.asm_8a3f8
- ld de, Unknown_8a40b
- call Function8a400
- and a
- ret
-
-Function8a400: ; 8a400 (22:6400)
- ld a, [de]
- inc de
- ld [hli], a
- cp $ff
- jr nz, Function8a400
- ret
-; 8a408 (22:6408)
-
-Unknown_8a408: db 1, 2, -1
-Unknown_8a40b: db 1, 2, 3, -1
-
-MenuDataHeader_0x8a40f: ; 0x8a40f
- db $40 ; flags
- db 02, 00 ; start coords
- db 11, 10 ; end coords
- dw MenuData2_0x8a417
- db 1 ; default option
-; 0x8a417
-
-MenuData2_0x8a417: ; 0x8a417
- db $a0 ; flags
- db 4 ; items
- db "めいしりスト@"
- db "じぶんの めいし@"
- db "めいしこうかん@"
- db "やめる@"
-; 0x8a435
-
-MenuDataHeader_0x8a435: ; 0x8a435
- db $40 ; flags
- db 02, 00 ; start coords
- db 09, 10 ; end coords
- dw MenuData2_0x8a43d
- db 1 ; default option
-; 0x8a43d
-
-MenuData2_0x8a43d: ; 0x8a43d
- db $a0 ; flags
- db 3 ; items
- db "めいしりスト@"
- db "じぶんの めいし@"
- db "やめる@"
-; 0x8a453
-
-Function8a453: ; 8a453 (22:6453)
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld de, String_8a476
- ld a, [MenuSelection]
- cp $ff
- jr z, .asm_8a472
- ld de, Strings_8a483
- dec a
- ld c, a
- call Function8919e
-.asm_8a472
- call PlaceString
- ret
-; 8a476 (22:6476)
-
-String_8a476: ; 8a476
- db "まえ", $25, "がめん", $1d, "もどります@"
-; 8a483
-
-Strings_8a483: ; 8a483
- db "おともだち", $25, "めいしは"
- next "ここ", $1d, "いれておきます@"
-
- db "でんわばんごう", $1f, "いれると"
- next "めいしこうかん", $4a, "できます@"
-
- db "ともだちと じぶん", $25, "めいしを"
- next "せきがいせんで こうかん します@"
-; 8a4d3
-
-Function8a4d3: ; 8a4d3 (22:64d3)
- ld a, [MenuSelection]
- cp $1
- jr nz, .asm_8a4eb
- ld a, $5
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $7
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- ret
-.asm_8a4eb
- ld a, $7
- hlcoord 12, 4, AttrMap
- call Function8a5a3
- ld a, $6
- hlcoord 15, 4, AttrMap
- call Function8a5a3
- ret
-
-Function8a4fc: ; 8a4fc (22:64fc)
- ld a, [MenuSelection]
- cp $3
- jr nz, asm_8a529
- ld hl, wd012
- ld a, [hli]
- ld b, a
- ld a, [hld]
- add b
- ld [hl], a
- ld b, a
- ld c, $80
- call Function89cdf
- call Function8a515
- ret
-
-Function8a515: ; 8a515 (22:6515)
- ld hl, wd012
- ld a, [hl]
- cp $38
- jr c, .asm_8a520
- cp $3c
- ret c
-.asm_8a520
- ld a, [wd013]
- cpl
- inc a
- ld [wd013], a
- ret
-
-asm_8a529: ; 8a529 (22:6529)
- ld hl, wd012
- ld a, $3c
- ld [hli], a
- ld a, $ff
- ld [hli], a
- ld hl, Sprites
- xor a
- ld bc, $20
- call ByteFill
- ret
-
-Function8a53d: ; 8a53d (22:653d)
- push hl
- ld a, $15
- ld c, $8
- ld de, $14
- call Function8a573
- ld a, $1d
- ld c, $9
- call Function8a57c
- inc a
- ld [hl], a
- call Function8a584
- pop hl
- add hl, de
- ld a, $1f
- ld c, $8
- call Function8a573
- dec hl
- ld a, $51
- ld [hli], a
- ld a, $26
- ld c, $1
- call Function8a57c
- ld a, $52
- ld c, $3
- call Function8a573
- ld a, $27
- ld c, $6
-
-Function8a573: ; 8a573 (22:6573)
- ld [hl], a
- call Function8a584
- inc a
- dec c
- jr nz, Function8a573
- ret
-
-Function8a57c: ; 8a57c (22:657c)
- ld [hl], a
- call Function8a584
- dec c
- jr nz, Function8a57c
- ret
-
-Function8a584: ; 8a584 (22:6584)
- push af
- ld a, $4
- call Function89215
- inc hl
- pop af
- ret
-
-Function8a58d: ; 8a58d (22:658d)
- ld a, $2d
- ld bc, $606
- ld de, $14
-.asm_8a595
- push bc
- push hl
-.asm_8a597
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_8a597
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8a595
- ret
-
-Function8a5a3: ; 8a5a3 (22:65a3)
- ld bc, $603
- ld de, $14
-.asm_8a5a9
- push bc
- push hl
-.asm_8a5ab
- ld [hli], a
- dec c
- jr nz, .asm_8a5ab
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_8a5a9
- ret
-
-Function8a5b6: ; 8a5b6 (22:65b6)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_8a5e5
- ld de, UnknBGPals + 4 palettes
- ld bc, 3 palettes
- call CopyBytes
- ld hl, Palette_8a5fd
- ld de, UnknOBPals
- ld bc, 1 palettes
- call CopyBytes
- ld hl, Palette_8a605
- ld de, UnknOBPals + 1 palettes
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 8a5e5 (22:65e5)
-
-Palette_8a5e5: ; 8a5e5
- RGB 31, 31, 31
- RGB 27, 19, 00
- RGB 07, 11, 22
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 16, 16, 31
- RGB 27, 19, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 27, 19, 00
- RGB 00, 00, 00
-; 8a5fd
-
-Palette_8a5fd: ; 8a5fd
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 31, 31, 31
-; 8a605
-
-Palette_8a605: ; 8a605
- RGB 00, 00, 00
- RGB 14, 18, 31
- RGB 16, 16, 31
- RGB 31, 31, 31
-; 8a60d
-
-Function8a60d: ; 8a60d
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_8a624
- ld de, UnknOBPals
- ld bc, 1 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 8a624
-
-Palette_8a624: ; 8a624
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 00, 00, 00
-; 8a62c
-
-Function8a62c: ; 8a62c (22:662c)
- call LoadStandardMenuDataHeader
- call Function891fe
- xor a
- call Function8b94a
- call Function8b677
-.asm_8a639
- xor a
- ld [wd033], a
- ld [wd032], a
- ld [wd0e3], a
- call Function8b7bd
- ld a, c
- and a
- jr z, .asm_8a66a
- ld [MenuSelection], a
- ld b, a
- ld a, [wScrollingMenuCursorPosition]
- inc a
- ld [wd034], a
- push bc
- call Function8b960
- ld a, c
- pop bc
- jr z, .asm_8a639
- ld c, a
- ld hl, Jumptable_8a671
- ld a, b
- ld [MenuSelection], a
- ld a, c
- dec a
- rst JumpTable
- jr .asm_8a639
-.asm_8a66a
- call Function891fe
- call Function89b28
- ret
-
-Jumptable_8a671: ; 8a671 (22:6671)
- dw Function8a679
- dw Function8a6cd
- dw Function8a8c3
- dw Function8a930
-
-
-Function8a679: ; 8a679 (22:6679)
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call CloseSRAM
- call OpenSRAMBank4
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call Function891ab
- call CloseSRAM
-.asm_8a6a3
- call Function89a57
- jr c, .asm_8a6a3
- and a
- jr z, Function8a679
- ld hl, Jumptable_8a6bc
- dec a
- rst JumpTable
- jr c, Function8a679
- call Function891fe
- call Function8b677
- call Function89448
- ret
-
-Jumptable_8a6bc: ; 8a6bc (22:66bc)
- dw Function8a6c0
- dw Function8a6c5
-
-
-Function8a6c0: ; 8a6c0 (22:66c0)
- call PlayClickSFX
- and a
- ret
-
-Function8a6c5: ; 8a6c5 (22:66c5)
- call PlayClickSFX
- call Function89d0d
- scf
- ret
-
-Function8a6cd: ; 8a6cd (22:66cd)
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call Function8a757
- call CloseSRAM
-.asm_8a6e5
- call OpenSRAMBank4
- call Function8931b
- call Function89856
- call Function89a2e
- call Function891ab
- xor a
- ld [wd02f], a
- call CloseSRAM
-.asm_8a6fb
- call Function89b97
- call Function89c67
- jr c, .asm_8a718
- ld a, b
- and a
- jr z, .asm_8a6fb
- call PlayClickSFX
- call Function89448
- ld a, [wd011]
- ld hl, Jumptable_8a74f
- rst JumpTable
- jr nc, .asm_8a6e5
- jr .asm_8a742
-.asm_8a718
- call OpenSRAMBank4
- call Function8a765
- call CloseSRAM
- jr nc, .asm_8a73f
- call Mobile22_SetBGMapMode0
- call Function89448
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- call WaitBGMap
- ld a, $2
- call Function89254
- jr c, .asm_8a6e5
-.asm_8a73f
- call CloseSRAM
-.asm_8a742
- call ClearBGPalettes
- call Function89448
- call Function891d3
- call Function8b677
- ret
-
-Jumptable_8a74f: ; 8a74f (22:674f)
- dw Function8a78c
- dw Function8a7cb
- dw Function8a818
- dw Function8a8a1
-
-
-Function8a757: ; 8a757 (22:6757)
- call Function8939a
- xor a
- ld [wd010], a
- ld [wd011], a
- ld [wd012], a
- ret
-
-Function8a765: ; 8a765 (22:6765)
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld de, wd002
- ld c, $6
- call Function89185
- pop bc
- jr nz, .asm_8a78a
- push bc
- ld hl, $11
- add hl, bc
- ld de, wd008
- ld c, $8
- call Function89185
- pop bc
- jr nz, .asm_8a78a
- and a
- ret
-.asm_8a78a
- scf
- ret
-
-Function8a78c: ; 8a78c (22:678c)
- call Function891fe
- ld de, wd002
- ld b, $5
- callba NamingScreen
- call OpenSRAMBank4
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld d, h
- ld e, l
- ld hl, wd002
- call InitName
- call CloseSRAM
- call DelayFrame
- call JoyTextDelay
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- pop bc
- call Function89844
- call CloseSRAM
- and a
- ret
-
-Function8a7cb: ; 8a7cb (22:67cb)
- ld a, [MenuSelection]
- push af
- call Function891de
- ld de, wd008
- ld c, $0
- callba Function17a68f
- jr c, .asm_8a7f4
- ld hl, wd008
- ld a, $ff
- ld bc, $8
- call ByteFill
- ld h, d
- ld l, e
- ld de, wd008
- ld c, $8
- call Function89193
-.asm_8a7f4
- pop af
- ld [MenuSelection], a
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call Function89856
- call Function89a2e
- call Function891ab
- call CloseSRAM
- and a
- ret
-
-Function8a818: ; 8a818 (22:6818)
- call Function89a23
- ld hl, wd002
- call Function89331
- jr c, .asm_8a875
- ld hl, wd008
- call Function89b45
- jr nc, .asm_8a87a
- call OpenSRAMBank4
- call Function8a765
- jr nc, .asm_8a863
- call Function8931b
- push bc
- ld hl, $0
- add hl, bc
- ld d, h
- ld e, l
- ld hl, wd002
- ld c, $6
- call Function89193
- pop bc
- ld hl, $11
- add hl, bc
- ld d, h
- ld e, l
- ld hl, wd008
- ld c, $8
- call Function89193
- hlcoord 1, 13
- ld de, .string_8a868
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
-.asm_8a863
- call CloseSRAM
- scf
- ret
-; 8a868 (22:6868)
-
-.string_8a868
- db "めいし", $1f, "かきかえ まし", $22, "@"
-
-.asm_8a875
- ld de, String_8a88b
- jr .asm_8a87d
-.asm_8a87a
- ld de, String_8911c
-.asm_8a87d
- hlcoord 1, 13
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
- and a
- ret
-; 8a88b (22:688b)
-
-String_8a88b: ; 8a88b
- db "おともだち", $25, "なまえが"
- next "かかれて いません!@"
-; 8a8a1
-
-Function8a8a1: ; 8a8a1 (22:68a1)
- call OpenSRAMBank4
- call Function8a765
- call CloseSRAM
- jr nc, .asm_8a8bf
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8a8c1
-.asm_8a8bf
- scf
- ret
-.asm_8a8c1
- and a
- ret
-
-Function8a8c3: ; 8a8c3 (22:68c3)
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call Function8939a
- call Function89856
- call CloseSRAM
- call Function891ab
- hlcoord 1, 13
- ld de, String_8a919
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8a90f
- call OpenSRAMBank4
- call Function892b4
- call CloseSRAM
- call Function89a23
- call Mobile22_SetBGMapMode0
- hlcoord 1, 13
- ld de, String_8a926
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
-.asm_8a90f
- call Function89448
- call Function891fe
- call Function8b677
- ret
-; 8a919 (22:6919)
-
-String_8a919: ; 8a919
- db "このデータ", $1f, "けしますか?@"
-; 8a926
-
-String_8a926: ; 8a926
- db "データ", $1f, "けしまし", $22, "@"
-; 8a930
-
-Function8a930: ; 8a930 (22:6930)
- ld a, [MenuSelection]
- push af
- xor a
- ld [wd032], a
- ld a, $1
- ld [wd033], a
- ld a, [wd034]
- ld [wd0e3], a
-.asm_8a943
- call Function8b7bd
- ld a, [wMenuJoypad]
- and $1
- jr nz, .asm_8a953
- ld a, c
- and a
- jr nz, .asm_8a943
- pop af
- ret
-.asm_8a953
- call OpenSRAMBank4
- pop af
- cp c
- jr z, .asm_8a995
- push bc
- ld [MenuSelection], a
- call Function8931b
- push bc
- ld h, b
- ld l, c
- ld de, wd002
- ld bc, $25
- call CopyBytes
- pop de
- pop bc
- ld a, c
- ld [MenuSelection], a
- call Function8931b
- push bc
- ld h, b
- ld l, c
- ld bc, $25
- call CopyBytes
- pop de
- ld hl, wd002
- ld bc, $25
- call CopyBytes
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
- ld de, SFX_SWITCH_POKEMON
- call WaitPlaySFX
-.asm_8a995
- call CloseSRAM
- ret
-
-Function8a999: ; 8a999 (22:6999)
- ld hl, MenuDataHeader_0x8a9c9
- call LoadMenuDataHeader
- ld c, $1
-.asm_8a9a1
- call Function8a9ce
- jr c, .asm_8a9bb
- push bc
- push de
- call LoadStandardMenuDataHeader
- pop de
- dec e
- ld a, e
- ld hl, Jumptable_8a9c5
- rst JumpTable
- call Function891fe
- call Function89b28
- pop bc
- jr .asm_8a9a1
-.asm_8a9bb
- call Function89209
- call CloseWindow
- call Function8920f
- ret
-
-Jumptable_8a9c5: ; 8a9c5 (22:69c5)
- dw Function8aa0a
- dw Function8ab3b
-; 8a9c9 (22:69c9)
-
-MenuDataHeader_0x8a9c9: ; 0x8a9c9
- db $40 ; flags
- db 04, 11 ; start coords
- db 11, 18 ; end coords
-; 8a9ce
-
-Function8a9ce: ; 8a9ce (22:69ce)
- push bc
- decoord 11, 4
- ld b, $6
- ld c, $6
- call Function89b3b
- pop bc
- ld a, c
- ld hl, MenuDataHeader_0x8a9f2
- call Function89d5e
- ld hl, Function8aa09
- call Function89d85
- jr c, .asm_8a9ed
- ld c, a
- ld e, a
- and a
- ret
-.asm_8a9ed
- ld c, a
- ld e, $0
- scf
- ret
-; 8a9f2 (22:69f2)
-
-MenuDataHeader_0x8a9f2: ; 0x8a9f2
- db $40 ; flags
- db 04, 11 ; start coords
- db 11, 18 ; end coords
- dw MenuData2_0x8a9fa
- db 1 ; default option
-; 0x8a9fa
-
-MenuData2_0x8a9fa: ; 0x8a9fa
- db $a0 ; flags
- db 3 ; items
- db "へんしゅう@"
- db "みる@"
- db "やめる@"
-; 0x8aa09
-
-Function8aa09: ; 8aa09
- ret
-; 8aa0a
-
-Function8aa0a: ; 8aa0a (22:6a0a)
- ld a, $1
- ld [wd02f], a
- ld [wd011], a
- xor a
- ld [wd010], a
- ld [wd012], a
- call OpenSRAMBank4
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
-.asm_8aa3a
- call Function8987f
- call Function89a2e
- call Function891ab
-.asm_8aa43
- call Function89b97
- call Function89c67
- jr c, .asm_8aa61
- ld a, b
- and a
- jr z, .asm_8aa43
- call PlayClickSFX
- call Function89448
- ld a, [wd011]
- dec a
- ld hl, Jumptable_8aa6d
- rst JumpTable
- jr nc, .asm_8aa3a
- jr .asm_8aa69
-.asm_8aa61
- call Function89448
- call Function8ab11
- jr nc, .asm_8aa3a
-.asm_8aa69
- call Function89448
- ret
-
-Jumptable_8aa6d: ; 8aa6d (22:6a6d)
- dw Function8aa73
- dw Function8aab6
- dw Function8ab11
-
-
-Function8aa73: ; 8aa73 (22:6a73)
- ld a, [MenuSelection]
- ld e, a
- push de
- call Function891de
- ld de, wd008
- ld c, $0
- callba Function17a68f
- jr c, .asm_8aa9d
- ld hl, wd008
- ld a, $ff
- ld bc, $8
- call ByteFill
- ld h, d
- ld l, e
- ld de, wd008
- ld c, $8
- call Function89193
-.asm_8aa9d
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- pop de
- ld a, e
- ld [MenuSelection], a
- and a
- ret
-
-Function8aab6: ; 8aab6 (22:6ab6)
- call Function89a23
- ld hl, wd008
- call Function89b45
- jr nc, Function8ab00
- call OpenSRAMBank4
- ld de, wd008
- ld hl, $a603
- ld c, $8
- call Function89185
- jr z, .asm_8aaeb
- ld hl, wd008
- ld de, $a603
- ld c, $8
- call Function89193
- hlcoord 1, 13
- ld de, String_8aaf0
- call PlaceString
- call WaitBGMap
- call JoyWaitAorB
-.asm_8aaeb
- call CloseSRAM
- scf
- ret
-; 8aaf0 (22:6af0)
-
-String_8aaf0: ; 8aaf0
- db "あたらしい めいし<PKMN>できまし<LNBRK>@"
-; 8ab00
-
-Function8ab00: ; 8ab00
- ld de, String_8911c
- hlcoord 1, 13
- call PlaceString
- call WaitBGMap
- call Mobile22_ButtonSound
- and a
- ret
-
-Function8ab11: ; 8ab11 (22:6b11)
- call OpenSRAMBank4
- ld hl, $a603
- ld de, wd008
- ld c, $8
- call Function89185
- call CloseSRAM
- jr z, .asm_8ab37
- call Function89a23
- hlcoord 1, 13
- ld de, String_89135
- call PlaceString
- ld a, $2
- call Function89254
- jr c, .asm_8ab39
-.asm_8ab37
- scf
- ret
-.asm_8ab39
- and a
- ret
-
-Function8ab3b: ; 8ab3b (22:6b3b)
-.pressed_start
- call Function891fe
- call ClearBGPalettes
- call Function893cc
- call Function89807
- call Function89492
- call Function894ca
- call OpenSRAMBank4
- ld hl, $a603
- ld de, wd008
- call Function89381
- call CloseSRAM
- call Function8987f
- call OpenSRAMBank4
- hlcoord 1, 13
- ld bc, $a007
- call Function89a0c
- call CloseSRAM
- call Function891ab
- call .JoypadLoop
- jr c, .pressed_start
- ret
-
-.JoypadLoop: ; 8ab77 (22:6b77)
- call JoyTextDelay_ForcehJoyDown
- bit A_BUTTON_F, c
- jr nz, .a_b_button
- bit B_BUTTON_F, c
- jr nz, .a_b_button
- bit START_F, c
- jr z, .JoypadLoop
- call PlayClickSFX
- call Function89d0d
- scf
- ret
-
-.a_b_button
- call PlayClickSFX
- and a
- ret
-
-Function8ab93: ; 8ab93 (22:6b93)
- call ClearBGPalettes
- call LoadStandardMenuDataHeader
- callba Function105688
- call ClearSprites
- call Function891fe
- call Function89b28
- ret
-; 8aba9 (22:6ba9)
-
-Function8aba9: ; 8aba9
- ld a, $2
- call Function8b94a
- ld a, $1
- ld [wd032], a
-.asm_8abb3
- call Function891fe
- call Function8b677
-.asm_8abb9
- call Function8b7bd
- jr z, .asm_8abdf
- ld a, c
- ld [MenuSelection], a
- call OpenSRAMBank4
- call Function8931b
- ld hl, $0011
- add hl, bc
- call Function89b45
- call CloseSRAM
- jr c, .asm_8abe2
- ld de, SFX_WRONG
- call WaitPlaySFX
- call CloseSRAM
- jr .asm_8abb9
-
-.asm_8abdf
- xor a
- ld c, a
- ret
-
-.asm_8abe2
- call PlayClickSFX
-.asm_8abe5
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- call Function89844
- call CloseSRAM
- call OpenSRAMBank4
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call CloseSRAM
- call Function891ab
-.asm_8ac0f
- call Function89a57
- jr c, .asm_8ac0f
- and a
- jr z, .asm_8abe5
- cp $2
- jr z, .asm_8ac0f
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- hlcoord 1, 14
- ld de, String_8ac3b
- call PlaceString
- ld a, $1
- call Function8925e
- jp c, .asm_8abb3
- ld a, [MenuSelection]
- ld c, a
- ret
-; 8ac3b
-
-String_8ac3b: ; 8ac3b
- db "こ", $25, "ともだち", $1d, "でんわを"
- next "かけますか?@"
-; 8ac4e
-
-Function8ac4e: ; 8ac4e
- xor a
- ld [MenuSelection], a
- push de
- call Function891de
- call ClearBGPalettes
- call Function893cc
- pop bc
- call Function89844
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call Function891ab
- ret
-; 8ac70
-
-Function8ac70: ; 8ac70
- push de
- ld a, $3
- call Function8b94a
-
-Function8ac76: ; 8ac76
- call Function891fe
- call Function8b677
-
-Function8ac7c: ; 8ac7c
- call Function8b7bd
- jr z, .asm_8acf0
- ld a, c
- ld [wd02f], a
- ld [MenuSelection], a
- call OpenSRAMBank4
- call Function8931b
- call Function8932d
- call CloseSRAM
- jr nc, .asm_8acb0
- call OpenSRAMBank4
- ld hl, $0011
- add hl, bc
- call Function89b45
- call CloseSRAM
- jr nc, .asm_8accc
- call OpenSRAMBank4
- call Function892b7
- call CloseSRAM
- jr .asm_8accc
-
-.asm_8acb0
- call Function8ad0b
- jr c, Function8ac76
- and a
- jr nz, .asm_8accc
- call OpenSRAMBank4
- ld h, b
- ld l, c
- ld d, $0
- ld e, $6
- add hl, de
- ld d, h
- ld e, l
- pop hl
- ld c, $1f
- call Function89193
- jr .asm_8ace4
-
-.asm_8accc
- pop hl
- call OpenSRAMBank4
- ld d, b
- ld e, c
- ld c, $6
- call Function89193
- ld a, $6
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld c, $1f
- call Function89193
-
-.asm_8ace4
- call CloseSRAM
- call LoadStandardFont
- ld a, [wd02f]
- ld c, a
- and a
- ret
-
-.asm_8acf0
- ld hl, UnknownText_0x8ad06
- call PrintText
- ld a, $2
- call Function89259
- jp c, Function8ac7c
- call LoadStandardFont
- pop de
- ld c, $0
- scf
- ret
-; 8ad06
-
-UnknownText_0x8ad06: ; 0x8ad06
- ; Finish registering CARDS?
- text_jump UnknownText_0x1c554a
- db "@"
-; 0x8ad0b
-
-Function8ad0b: ; 8ad0b
-.asm_8ad0b
- ld a, [MenuSelection]
- ld [wd02f], a
- call Function891de
- call ClearBGPalettes
- call Function893cc
- call OpenSRAMBank4
- call Function8931b
- push bc
- call Function89844
- call Function8939a
- call Function89856
- hlcoord 1, 13
- call Function899fe
- call CloseSRAM
- call Function891ab
- pop bc
-.asm_8ad37
- push bc
- call Function89a57
- pop bc
- jr c, .asm_8ad37
- and a
- jr z, .asm_8ad0b
- cp $2
- jr z, .asm_8ad37
- call Mobile22_SetBGMapMode0
- push bc
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld de, String_8ad89
- hlcoord 1, 14
- call PlaceString
- ld a, $2
- call Function8925e
- jr c, .asm_8ad87
- call Mobile22_SetBGMapMode0
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld de, String_8ad9c
- hlcoord 1, 14
- call PlaceString
- ld a, $1
- call Function8925e
- jr c, .asm_8ad84
- ld a, $0
- jr .asm_8ad86
-
-.asm_8ad84
- ld a, $1
-
-.asm_8ad86
- and a
-
-.asm_8ad87
- pop bc
- ret
-; 8ad89
-
-String_8ad89: ; 8ad89
- db "こ", $25, "めいし", $1f, "けして"
- next "いれかえますか?@"
-; 8ad9c
-
-String_8ad9c: ; 8ad9c
- db "おともだち", $25, "なまえを"
- next "のこして おきますか?@"
-; 8adb3
-
-Function8adb3: ; 8adb3
- call Function891de
- call Function8a262
- push af
- call Function891de
- pop af
- ret
-; 8adbf
-
-Function8adbf: ; 8adbf
- call OpenSRAMBank4
- ld hl, $a603
- call Function89b45
- call CloseSRAM
- ret
-; 8adcc
-
-Function8adcc: ; 8adcc
- call OpenSRAMBank4
- call Function8b3b0
- call CloseSRAM
- ret nc
- cp $2
- ret z
- scf
- ret
-; 8addb
diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm
deleted file mode 100644
index fa6a39fdf..000000000
--- a/misc/mobile_40.asm
+++ /dev/null
@@ -1,8156 +0,0 @@
-Function100000: ; 100000
-; d: 1 or 2
-; e: bank
-; bc: addr
- ld a, [rSVBK]
- push af
- ld a, 1
- ld [rSVBK], a
-
- call Function100022
- call Function1000ba
- call Function100675
- call Function100057
- call Function10016f
- call Function100276
-
- push bc
- call Function100301
- pop bc
-
- pop af
- ld [rSVBK], a
- ret
-; 100022
-
-Function100022: ; 100022
- push de
- push bc
- call SetRAMStateForMobile
- pop bc
- pop de
- ld a, d
- ld [wcd21], a
- ld a, e
- ld [wcd22], a
- ld a, c
- ld [wcd23], a
- ld a, b
- ld [wcd24], a
- callba Function10127e
- callba MobileFunc_106462
- callba Function106464 ; load broken gfx
- callba Function11615a ; init RAM
- ld hl, VramState
- set 1, [hl]
- ret
-; 100057
-
-Function100057: ; 100057
- call DisableMobile
- call ReturnToMapFromSubmenu
- ld hl, VramState
- res 1, [hl]
- ret
-; 100063
-
-SetRAMStateForMobile: ; 100063
- xor a
- ld hl, BGMapBuffer
- ld bc, $65
- call ByteFill
- xor a
- ld hl, wc300
- ld bc, $100
- call ByteFill
- ld a, [rIE]
- ld [BGMapBuffer], a
- xor a
- ld [hMapAnims], a
- ld [hLCDCPointer], a
- ret
-; 100082
-
-EnableMobile: ; 100082
- xor a
- ld hl, OverworldMap
- ld bc, OverworldMapEnd - OverworldMap
- call ByteFill
-
- di
- call DoubleSpeed
- xor a
- ld [rIF], a
- ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL
- ld [rIE], a
- xor a
- ld [hMapAnims], a
- ld [hLCDCPointer], a
- ld a, $01
- ld [hMobileReceive], a
- ld [hMobile], a
- ei
-
- ret
-; 0x1000a4
-
-DisableMobile: ; 1000a4
- di
- xor a
- ld [hMobileReceive], a
- ld [hMobile], a
- xor a
- ld [hVBlank], a
- call NormalSpeed
- xor a
- ld [rIF], a
- ld a, [BGMapBuffer]
- ld [rIE], a
- ei
- ret
-; 1000ba
-
-Function1000ba: ; 1000ba
-.loop
- ; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex])
- ld hl, wcd23
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wMobileCommsJumptableIndex]
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, [wcd22]
- call GetFarHalfword
- ld a, [wcd22]
- rst FarCall
-
- call Function1000e8
- call Function1000fa
- call Function100144
- call Function100163
- ld a, [wcd2b]
- and a
- jr z, .loop
- call DelayFrame
- ret
-; 1000e8
-
-Function1000e8: ; 1000e8
- ld hl, wcd29
- bit 7, [hl]
- ret z
- callba Function115dd3
- ld hl, wcd29
- set 6, [hl]
- ret
-; 1000fa
-
-Function1000fa: ; 1000fa
- ld a, [wc30d]
- and a
- ret z
- ld hl, wcd29
- bit 4, [hl]
- ret z
- ld a, [wcd2b]
- and a
- jr nz, .asm_100117
- callba Function11619d
- ld hl, wcd29
- set 6, [hl]
- ret
-
-.asm_100117
- di
- xor a
- ld [rIF], a
- ld a, [rIE]
- and $13
- ld [rIE], a
- xor a
- ld [hMobileReceive], a
- ld [hMobile], a
- ei
-
- ld a, [wLinkMode]
- push af
- xor a
- ld [wLinkMode], a
- ld a, $04
- ld [wc314 + 5], a
- callba Function11619d
- ld hl, wcd29
- set 6, [hl]
- pop af
- ld [wLinkMode], a
- ret
-; 100144
-
-Function100144: ; 100144
- ld hl, wcd29
- bit 5, [hl]
- jr z, .asm_100155
- res 5, [hl]
- res 2, [hl]
- res 6, [hl]
- call Function100320
- ret
-
-.asm_100155
- bit 2, [hl]
- ret z
- res 2, [hl]
- res 6, [hl]
- callba HDMATransferTileMapToWRAMBank3
- ret
-; 100163
-
-Function100163: ; 100163
- ld hl, wcd29
- bit 6, [hl]
- ret z
- res 6, [hl]
- call DelayFrame
- ret
-; 10016f
-
-Function10016f: ; 10016f
- ld a, [wcd2b]
- cp $01
- ret z
- cp $02
- ret z
- cp $ff
- jp z, .asm_1001f5
- cp $fe
- jr z, .asm_1001c4
- cp $f5
- jr z, .asm_1001e7
- cp $f6
- jr z, .asm_1001b6
- cp $fa
- jp z, .asm_1001bd
- cp $f7
- jp z, .asm_1001ee
- cp $f4
- jr z, .asm_1001d2
- cp $f3
- jr z, .asm_1001cb
- cp $f1
- jr z, .asm_1001c4
- cp $f2
- jr z, .asm_1001c4
- cp $fc
- jr z, .asm_1001e6
- cp $fb
- jr z, .asm_1001af
- cp $f8
- ret z
- ret ; ????????????????????????????
-
-.asm_1001af
- ld a, $d7
- ld de, 0
- jr .asm_1001d7
-
-.asm_1001b6
- ld a, $d5
- ld de, 0
- jr .asm_1001d7
-
-.asm_1001bd
- ld a, $d6
- ld de, 0
- jr .asm_1001d7
-
-.asm_1001c4
- ld a, $d2
- ld de, 2
- jr .asm_1001d7
-
-.asm_1001cb
- ld a, $d1
- ld de, 1
- jr .asm_1001d7
-
-.asm_1001d2
- ld a, $d0
- ld de, 0
-
-.asm_1001d7
- ld [wc300], a
- ld a, d
- ld [wc302], a
- ld a, e
- ld [wc301], a
- call Function10020b
- ret
-
-.asm_1001e6
- ret
-
-.asm_1001e7
- ld de, String10025e
- call Function100232
- ret
-
-.asm_1001ee
- ld de, String10024d
- call Function100232
- ret
-
-.asm_1001f5
- ld a, [wcd2c]
- ld [wc300], a
- ld a, [wcd2d]
- ld [wc302], a
- ld a, [wcd2d]
- ld [wc301], a
- call Function10020b
- ret
-; 10020b
-
-Function10020b: ; 10020b
- xor a
- ld [wc303], a
- callba FadeOutPalettes
- callba Function106464
- call HideSprites
- call DelayFrame
-
- ld a, [rSVBK]
- push af
- ld a, $01
- ld [rSVBK], a
-
- callba DisplayMobileError
-
- pop af
- ld [rSVBK], a
- ret
-; 100232
-
-Function100232: ; 100232
- push de
- callba Function106464
- call Function3f20
- call UpdateSprites
- hlcoord 1, 2
- pop de
- call PlaceString
- call Function100320
- call JoyWaitAorB
- ret
-; 10024d
-
-String10024d: ; 10024d
- db "つうしんを キャンセル しました@"
-; 10025e
-
-String10025e: ; 10025e
- db "おともだちと えらんだ へやが"
- next "ちがうようです@"
-; 100276
-
-Function100276: ; 100276
- ld a, [wcd2b]
- cp $01
- jr z, .asm_10029f
- cp $02
- jr z, .asm_100296
- cp $f5
- jr z, .asm_1002a5
- cp $f6
- jr z, .asm_1002a5
- cp $f7
- jr z, .asm_100293
- cp $f8
- jr z, .asm_1002b1
- jr .asm_1002c0
-
-.asm_100293
- ld c, $02
- ret
-
-.asm_100296
- callba Script_reloadmappart
- ld c, $04
- ret
-
-.asm_10029f
- call Function1002dc
- ld c, 0
- ret
-
-.asm_1002a5
- callba Script_reloadmappart
- call Function1002ed
- ld c, $03
- ret
-
-.asm_1002b1
- call Function1002c9
- call Function1002dc
- ld de, String10024d
- call Function100232
- ld c, $02
- ret
-
-.asm_1002c0
- call Function1002c9
- call Function1002dc
- ld c, $01
- ret
-; 1002c9
-
-Function1002c9: ; 1002c9
- ld hl, wcd2a
- bit 0, [hl]
- ret z
- callba CleanUpBattleRAM
- callba LoadPokemonData
- ret
-; 1002dc
-
-Function1002dc: ; 1002dc
- ld a, MAPSETUP_LINKRETURN
- ld [hMapEntryMethod], a
- callba RunMapSetupScript
- xor a
- ld [hMapEntryMethod], a
- call LoadStandardFont
- ret
-; 1002ed
-
-Function1002ed: ; 1002ed
- callba LoadOW_BGPal7
- callba ApplyPals
- ld a, $01
- ld [hCGBPalUpdate], a
- call DelayFrame
- ret
-; 100301
-
-Function100301: ; 100301
- ld hl, wcd2a
- bit 1, [hl]
- ret z
- callba Function106464
- callba Function10202c
- callba Function115dd3
- call Function100320
- call JoyWaitAorB
- ret
-; 100320
-
-Function100320: ; 100320
- callba Mobile_ReloadMapPart
- ret
-; 100327
-
-Function100327: ; 100327
- callba HDMATransferTileMapToWRAMBank3
- ret
-; 100327
-
-
-Function10032e: ; 10032e
- call Function10034d
- ld e, a
- ret nc
- ld [wcd2b], a
- ret
-; 100337
-
-Function100337: ; 100337
- call Function10032e
- ret c
- ld a, [wc821]
- bit 4, a
- jr z, .asm_100345
- ld a, e
- and a
- ret
-
-.asm_100345
- ld a, $f9
- ld e, a
- ld [wcd2b], a
- scf
- ret
-; 10034d
-
-Function10034d: ; 10034d
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_10036a
- bit 2, a
- jr nz, .asm_10037e
- bit 3, a
- jr nz, .asm_100366
- bit 0, a
- jr nz, .asm_100364
- ld a, $01
- and a
- ret
-
-.asm_100364
- xor a
- ret
-
-.asm_100366
- ld a, $02
- and a
- ret
-
-.asm_10036a
- ld a, 0
- call Function3e32
- ld [wcd2c], a
- ld a, h
- ld [wcd2d], a
- ld a, l
- ld [wcd2e], a
- ld a, $ff
- scf
- ret
-
-.asm_10037e
- ld a, $fe
- scf
- ret
-; 100382
-
-Function100382: ; 100382
- ld a, [wcd27]
- ld hl, Jumptable_10044e
- rst JumpTable
- ret
-; 10038a
-
-Function10038a: ; 10038a
- ld hl, wccb4
- ld a, $2e
- call Function3e32
- ret
-; 100393
-
-Function100393: ; 100393
- ld hl, wcc60
- ld a, $3a
- call Function3e32
- ret
-; 10039c
-
-Function10039c: ; 10039c
- ld hl, wcc60
- ld de, w3_d000
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003ab
-
-Function1003ab: ; 1003ab
- ld hl, w3_d000
- ld de, wcc60
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003ba
-
-Function1003ba: ; 1003ba
- ld hl, wccb4
- ld de, w3_d080
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003c9
-
-Function1003c9: ; 1003c9
- ld hl, w3_d080
- ld de, wccb4
- ld bc, $54
- ld a, $03
- call FarCopyWRAM
- ret
-; 1003d8
-
-Function1003d8: ; 1003d8
- ld hl, wccb4
- ld a, [hli]
- ld c, a
- ld b, 0
- push hl
- add hl, bc
- ld a, [BGMapPalBuffer]
- ld [hl], a
- pop hl
- inc bc
- call Function10043a
- add hl, bc
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, c
- add $02
- ld [wccb4], a
- ret
-; 1003f5
-
-Function1003f5: ; 1003f5
- ld a, [wcc60]
- sub $03
- ld [wcc60], a
- ld a, [wccb4]
- sub $03
- ld [wccb4], a
- ret
-; 100406
-
-Function100406: ; 100406
- ld a, [wcc60]
- sub $02
- ld c, a
- ld b, 0
- ld hl, wcc61
- call Function10043a
- add hl, bc
- ld a, [hli]
- cp e
- jr nz, .asm_100426
- ld a, [hld]
- cp d
- jr nz, .asm_100426
- dec hl
- ld a, [BGMapPalBuffer]
- cp [hl]
- jr nz, .asm_10042d
- xor a
- ret
-
-.asm_100426
- ld a, $f4
- ld [wcd2b], a
- jr .asm_100432
-
-.asm_10042d
- ld a, $f3
- ld [wcd2b], a
-
-.asm_100432
- push hl
- ld hl, wcd7c
- inc [hl]
- pop hl
- scf
- ret
-; 10043a
-
-Function10043a: ; 10043a
- push hl
- push bc
- ld de, 0
-.asm_10043f
- ld a, [hli]
- add e
- ld e, a
- ld a, d
- adc 0
- ld d, a
- dec bc
- ld a, b
- or c
- jr nz, .asm_10043f
- pop bc
- pop hl
- ret
-; 10044e
-
-
-Jumptable_10044e: ; 10044e (40:444e)
- dw Function10046a
- dw Function10047c
- dw Function100493
- dw Function1004ba
- dw Function1004f4
- dw Function1004ce
- dw Function1004de
- dw Function1004a4
- dw Function100495
- dw Function1004ce
- dw Function1004de
- dw Function1004e9
- dw Function1004f4
- dw Function1004a4
-
-Function10046a: ; 10046a
- ld hl, BGMapPalBuffer
- inc [hl]
- call Function1003d8
- call Function1003ba
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 10047c
-
-Function10047c: ; 10047c
- call Function100337
- ret c
- ret z
- cp $02
- jr z, .asm_100487
- jr .asm_10048d
-
-.asm_100487
- ld a, $08
- ld [wcd27], a
- ret
-
-.asm_10048d
- ld a, $02
- ld [wcd27], a
- ret
-; 100493
-
-Function100493: ; 100493
- jr asm_100497
-
-Function100495: ; 100495
- jr asm_100497
-
-asm_100497
- call Function100337
- ret c
- ret z
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004a4
-
-Function1004a4: ; 1004a4
- call Function100406
- jr c, .asm_1004b8
- call Function1003c9
- call Function1003f5
- ld a, [wcd27]
- set 7, a
- ld [wcd27], a
- ret
-
-.asm_1004b8
- scf
- ret
-; 1004ba
-
-Function1004ba: ; 1004ba
- call Function10038a
- and a
- jr nz, .asm_1004c8
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-
-.asm_1004c8
- ld a, $08
- ld [wcd27], a
- ret
-; 1004ce
-
-Function1004ce: ; 1004ce
- call Function100337
- ret c
- ret z
- cp $02
- ret nz
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004de
-
-Function1004de: ; 1004de
- call Function100393
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004e9
-
-Function1004e9: ; 1004e9
- call Function10038a
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- ret
-; 1004f4
-
-Function1004f4: ; 1004f4
- call Function100337
- ret c
- ret z
- ld a, [wcd27]
- inc a
- ld [wcd27], a
- call Function10039c
- ret
-; 100504
-
-Function100504: ; 100504
- push de
- call Function3f20
- call UpdateSprites
- pop de
- hlcoord 4, 2
- call PlaceString
- ret
-; 100513
-
-Function100513: ; 100513
- call Function3f7c
- call PlaceVerticalMenuItems
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 7, [hl]
- ret
-; 100522
-
-Function100522: ; 100522
- ld a, [wcd28]
- ld hl, Jumptable_10052a
- rst JumpTable
- ret
-; 10052a
-
-Jumptable_10052a: ; 10052a
- dw Function100534
- dw Function100545
- dw Function100545
- dw Function100545
- dw Function10054d
-; 100534
-
-Function100534: ; 100534
- call Function100513
- call UpdateSprites
- call ApplyTilemap
- ld a, [wcd28]
- inc a
- ld [wcd28], a
- ret
-; 100545
-
-Function100545: ; 100545
- ld a, [wcd28]
- inc a
- ld [wcd28], a
- ret
-; 10054d
-
-Function10054d: ; 10054d
- callba MobileMenuJoypad
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- call MenuClickSound
- bit 0, a
- jr nz, .asm_100565
- bit 1, a
- jr nz, .asm_10056f
- ret
-
-.asm_100565
- ld a, [wcd28]
- set 7, a
- ld [wcd28], a
- and a
- ret
-
-.asm_10056f
- ld a, [wcd28]
- set 7, a
- ld [wcd28], a
- scf
- ret
-; 100579
-
-Function100579: ; 100579
- ld a, [wcd26]
- ld hl, Jumptable_100581
- rst JumpTable
- ret
-; 100581
-
-Jumptable_100581: ; 100581
- dw Function100585
- dw Function100597
-; 100585
-
-Function100585: ; 100585
- ld hl, MenuDataHeader_1005b2
- call LoadMenuDataHeader
- ld a, 0
- ld [wcd28], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function100597: ; 100597
- call Function100522
- ld a, [wcd28]
- bit 7, a
- ret z
- jr nc, .asm_1005a6
- xor a
- ld [wMenuCursorY], a
-
-.asm_1005a6
- call ExitMenu
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 1005b2
-
-MenuDataHeader_1005b2: ; 1005b2
- db $40 ; flags
- db 6, 14
- db 10, 19
- dw MenuData2_1005ba
- db 1 ; default option
-
-MenuData2_1005ba:
- db $c0 ; flags
- db 2
- db "はい@"
- db "いいえ@"
-; 1005c3
-
-Function1005c3: ; 1005c3
- ld a, [wcd26]
- ld hl, Jumptable_1005cb
- rst JumpTable
- ret
-; 1005cb
-
-Jumptable_1005cb: ; 1005cb
- dw Function1005cf
- dw Function1005e1
-; 1005cf
-
-Function1005cf: ; 1005cf
- ld hl, MenuDataHeader_1005fc
- call LoadMenuDataHeader
- ld a, 0
- ld [wcd28], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function1005e1: ; 1005e1
- call Function100522
- ld a, [wcd28]
- bit 7, a
- ret z
- jr nc, .asm_1005f0
- xor a
- ld [wMenuCursorY], a
-.asm_1005f0
- call ExitMenu
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 1005fc
-
-MenuDataHeader_1005fc: ; 1005fc
- db $40 ; flags
- db 6, 14
- db 10, 19
- dw MenuData2_100604
- db 1 ; default option
-
-MenuData2_100604: ; 100604
- db $c0 ; flags
- db 2
- db "かける@"
- db "まつ@"
-; 10060d
-
-Mobile_CommunicationStandby: ; 10060d
- hlcoord 3, 10
- ld b, 1
- ld c, 11
- call Function3eea
- ld de, .String
- hlcoord 4, 11
- call PlaceString
- ret
-; 100621
-
-.String: ; 100621
- db "つうしんたいきちゅう!@"
-; 10062d
-
-AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d
- push bc
- call IncrementMobileInactivityTimerByCFrames
- pop bc
- ld a, [wMobileInactivityTimerMinutes]
- cp b
- jr nc, .timed_out
- and a
- ret
-
-.timed_out
- ld a, $fa
- ld [wcd2b], a
- scf
- ret
-; 100641
-
-StartMobileInactivityTimer: ; 100641
- xor a
- ld [wMobileInactivityTimerMinutes], a
- ld [wMobileInactivityTimerSeconds], a
- ld [wMobileInactivityTimerFrames], a
- ret
-; 10064c
-
-IncrementMobileInactivityTimerBy1Frame: ; 10064c
- ld c, 1
-IncrementMobileInactivityTimerByCFrames: ; 10064e
- ld hl, wMobileInactivityTimerFrames ; timer?
- ld a, [hl]
- add c
- cp 60
- jr c, .seconds
- xor a
-
-.seconds
- ld [hld], a
- ret c
- ld a, [hl]
- inc a
- cp 60
- jr c, .minutes
- xor a
-
-.minutes
- ld [hld], a
- ret c
- inc [hl]
- ret
-; 100665
-
-Function100665: ; 100665
- call UpdateTime
- ld hl, wcd36
- ld a, [hHours]
- ld [hli], a
- ld a, [hMinutes]
- ld [hli], a
- ld a, [hSeconds]
- ld [hl], a
- ret
-; 100675
-
-Function100675: ; 100675
- ld hl, wcd2a
- bit 2, [hl]
- set 2, [hl]
- ret nz
- call Function1006d3
- ret
-; 100681
-
-Function100681: ; 100681
- push hl
- ld hl, wcd2a
- bit 2, [hl]
- ld hl, wcd2a
- set 2, [hl]
- pop hl
- jr nz, .asm_100694
- push hl
- call Function1006d3
- pop hl
-.asm_100694
- ld de, wcd32
-
-Function100697: ; 100697
- ld a, [de]
- and a
- jr nz, .asm_1006bb
- inc de
- push de
- call .asm_1006b4
- ld de, String1006c2
- call PlaceString
- ld h, b
- ld l, c
- pop de
- inc de
- call .asm_1006b4
- ld de, String1006c6
- call PlaceString
- ret
-
-.asm_1006b4
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ret
-
-.asm_1006bb
- ld de, String1006ca
- call PlaceString
- ret
-; 1006c2
-
-String1006c2: ; 1006c2
- db "ふん @"
-String1006c6: ; 1006c6
- db "びょう@"
-String1006ca: ; 1006ca
- db "1じかんいじょう@"
-; 1006d3
-
-Function1006d3: ; 1006d3
- call UpdateTime
- ld de, wcd34
- ld hl, wcd38
-
-Function1006dc: ; 1006dc
- ld a, [hld]
- ld c, a
- ld a, [hSeconds]
- sub c
- jr nc, .asm_1006e5
- add $3c
-
-.asm_1006e5
- ld [de], a
- dec de
- ld a, [hld]
- ld c, a
- ld a, [hMinutes]
- sbc c
- jr nc, .asm_1006f0
- add $3c
-
-.asm_1006f0
- ld [de], a
- dec de
- ld a, [hl]
- ld c, a
- ld a, [hHours]
- sbc c
- jr nc, .asm_1006fb
- add $18
-
-.asm_1006fb
- ld [de], a
- ret
-; 1006fd
-
-Function1006fd: ; 1006fd
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- call CloseSRAM
- ret
-; 10070d
-
-Function10070d: ; 10070d
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- xor a
- ld [hli], a
- ld a, $0a
- ld [hli], a
- xor a
- ld [hli], a
- call CloseSRAM
- ret
-; 100720
-
-Function100720: ; 100720
- xor a
- ld [wcd6a], a
- call UpdateTime
- ld a, [hHours]
- ld [wcd72], a
- ld a, [hMinutes]
- ld [wcd73], a
- ld a, [hSeconds]
- ld [wcd74], a
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- ld a, [hli]
- ld [wcd6c], a
- ld a, [hli]
- ld [wcd6d], a
- ld a, [hli]
- ld [wcd6e], a
- call CloseSRAM
- ld a, [wcd6d]
- ld [wcd6b], a
- ret
-; 100754
-
-Function100754: ; 100754
- call UpdateTime
- ld a, [hHours]
- ld [wcd72], a
- ld a, [hMinutes]
- ld [wcd73], a
- ld a, [hSeconds]
- ld [wcd74], a
- ld a, [wcd6d]
- ld [wcd6b], a
- ld hl, wcd2a
- res 6, [hl]
- ret
-; 100772
-
-Function100772: ; 100772
- push de
- ld hl, wcd6c
- ld a, [de]
- cp [hl]
- jr c, .asm_10079a
- jr nz, .asm_10078c
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- jr c, .asm_10079a
- jr nz, .asm_10078c
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- jr c, .asm_10079a
- jr z, .asm_10079a
-
-.asm_10078c
- pop hl
- ld a, [hli]
- ld [wcd6c], a
- ld a, [hli]
- ld [wcd6d], a
- ld a, [hli]
- ld [wcd6e], a
- ret
-
-.asm_10079a
- pop de
- ret
-; 10079c
-
-
-Function10079c: ; 10079c
- ld a, [wcd21]
- cp $01
- jr nz, .dont_quit
- ld hl, wcd2a
- bit 5, [hl]
- jr nz, .dont_quit
- ld hl, wcd2a
- bit 6, [hl]
- jr nz, .dont_quit
- ld a, [wcd6a]
- add c
- cp 60
- jr nc, .overflow
- ld [wcd6a], a
- and a
- ret
-
-.overflow
- sub 60
- ld [wcd6a], a
- ld d, b
- push de
- call Function1007f6
- pop de
- jr c, .quit
- ld a, c
- and a
- jr nz, .quit
- ld a, b
- cp 10
- jr nc, .quit
- ld a, d
- and a
- ret z
- ld a, [wcd6b]
- cp b
- ret z
- ld a, b
- ld [wcd6b], a
- call Function1008e0
- and a
- ret
-
-.quit
- call Function1008e0
- ld hl, wcd2a
- set 4, [hl]
- ld a, $fc
- ld [wcd2b], a
- scf
- ret
-
-.dont_quit
- and a
- ret
-; 1007f6
-
-Function1007f6: ; 1007f6
- call UpdateTime
- ld hl, wcd74
- ld de, wcd71
- call Function1006dc
- ld a, $04
- call GetSRAMBank
- ld hl, $a802
- call Function100826
- call CloseSRAM
- ld hl, wcd6e
- call Function100826
- ld a, [hHours]
- ld [wcd72], a
- ld a, [hMinutes]
- ld [wcd73], a
- ld a, [hSeconds]
- ld [wcd74], a
- ret
-; 100826
-
-Function100826: ; 100826
- ld a, [wcd71]
- add [hl]
- sub $3c
- jr nc, .asm_100830
- add $3c
-
-.asm_100830
- ld [hld], a
- ccf
- ld a, [BGMapBufferPtrs]
- adc [hl]
- sub $3c
- jr nc, .asm_10083c
- add $3c
-
-.asm_10083c
- ld [hld], a
- ld b, a
- ccf
- ld a, [wcd6f]
- adc [hl]
- ld [hl], a
- ld c, a
- ret
-; 100846
-
-Function100846: ; 100846
- ld hl, wcd2a
- bit 5, [hl]
- jr nz, .asm_10087c
- ld a, [wcd6e]
- ld c, a
- ld a, 0
- sub c
- jr nc, .asm_100858
- add $3c
-
-.asm_100858
- ld [StringBuffer2 + 2], a
- ld a, [wcd6d]
- ld c, a
- ld a, $0a
- sbc c
- ld [StringBuffer2 + 1], a
- xor a
- ld [StringBuffer2], a
- ld de, String_10088e
- hlcoord 1, 14
- call PlaceString
- ld de, StringBuffer2
- hlcoord 4, 16
- call Function100697
- ret
-
-.asm_10087c
- ld de, String_10088e
- hlcoord 1, 14
- call PlaceString
- ld h, b
- ld l, c
- ld de, String_10089f
- call PlaceString
- ret
-; 10088e
-
-String_10088e: ; 10088e
- db "モバイルたいせん できる"
- next "じかん@"
-; 10089f
-
-String_10089f: ; 10089f
- db " むせいげん@"
-; 1008a6
-
-Function1008a6: ; 1008a6
- ld a, $04
- ld hl, $a800
- call GetSRAMBank
- ld a, [hli]
- ld [StringBuffer2], a
- ld a, [hli]
- ld [StringBuffer2 + 1], a
- ld a, [hli]
- ld [StringBuffer2 + 2], a
- call CloseSRAM
- ld a, [StringBuffer2 + 2]
- ld b, a
- ld a, 0
- sub b
- jr nc, .asm_1008c8
- add $3c
-
-.asm_1008c8
- ld b, a
- ld a, [StringBuffer2 + 1]
- ld c, a
- ld a, $0a
- sbc c
- ld c, a
- jr c, .asm_1008da
- ld a, [StringBuffer2]
- and a
- jr nz, .asm_1008da
- ret
-
-.asm_1008da
- call Function10070d
- ld c, 0
- ret
-; 1008e0
-
-
-Function1008e0: ; 1008e0
- ld a, [hBGMapMode]
- ld b, a
- ld a, [hVBlank]
- ld c, a
- push bc
- xor a
- ld [hBGMapMode], a
- ld a, $03
- ld [hVBlank], a
- call Function100970
- call Function100902
- call Function100989
- call DelayFrame
- pop bc
- ld a, c
- ld [hVBlank], a
- ld a, b
- ld [hBGMapMode], a
- ret
-; 100902
-
-Function100902: ; 100902
- hlcoord 3, 10
- ld b, $01
- ld c, $0b
- call TextBox
- ld a, [wcd6d]
- ld c, a
- ld a, $0a
- sub c
- ld [StringBuffer2], a
- jr z, .asm_10093f
- ld de, .string_100966
- hlcoord 4, 11
- call PlaceString
- hlcoord 8, 11
- lb bc, 1, 2
- ld de, StringBuffer2
- call PrintNum
- ld de, SFX_TWO_PC_BEEPS
- call PlaySFX
- callba ReloadMapPart
- ld c, $3c
- call DelayFrames
- ret
-
-.asm_10093f
- ld de, .string_10095a
- hlcoord 4, 11
- call PlaceString
- ld de, SFX_4_NOTE_DITTY
- call PlaySFX
- callba ReloadMapPart
- ld c, 120
- call DelayFrames
- ret
-; 10095a
-
-.string_10095a ; 10095a
- db "たいせん しゅうりょう@"
-.string_100966 ; 100966
- db "のこり ふん", $e7, "@"
-; 100970
-
-
-Function100970: ; 100970
- hlcoord 0, 0
- ld de, w3_dc00
- call Function1009a5
- hlcoord 0, 0, AttrMap
- ld de, w3_dd68
- call Function1009a5
- call Function1009d2
- call Function1009ae
- ret
-; 100989
-
-Function100989: ; 100989
- ld hl, w3_dc00
- decoord 0, 0
- call Function1009a5
- call Function1009ae
- callba ReloadMapPart
- ld hl, w3_dd68
- decoord 0, 0, AttrMap
- call Function1009a5
- ret
-; 1009a5
-
-Function1009a5: ; 1009a5
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $03
- call FarCopyWRAM
- ret
-; 1009ae
-
-Function1009ae: ; 1009ae
- ld a, [rSVBK]
- push af
- ld a, $03
- ld [rSVBK], a
-
- ld hl, w3_d800
- decoord 0, 0, AttrMap
- ld c, SCREEN_WIDTH
- ld b, SCREEN_HEIGHT
-.loop_row
- push bc
-.loop_col
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .loop_col
- ld bc, BG_MAP_WIDTH - SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop_row
-
- pop af
- ld [rSVBK], a
- ret
-; 1009d2
-
-Function1009d2: ; 1009d2
- ld a, [rSVBK]
- push af
- ld a, $03
- ld [rSVBK], a
-
- ld a, [rVBK]
- push af
- ld a, $01
- ld [rVBK], a
-
- ld hl, w3_d800
- debgcoord 0, 0
- lb bc, $03, $24
- call Get2bpp
-
- pop af
- ld [rVBK], a
-
- pop af
- ld [rSVBK], a
- ret
-; 1009f3
-
-Function1009f3: ; 1009f3
- ld a, [hJoyDown]
- and SELECT + A_BUTTON
- cp SELECT + A_BUTTON
- jr nz, .select_a
- ld hl, wcd2a
- set 4, [hl]
- ld a, $f8
- ld [wcd2b], a
- scf
- ret
-
-.select_a
- xor a
- ret
-; 100a09
-
-_LinkBattleSendReceiveAction: ; 100a09
- call .StageForSend
- ld [wd431], a
- callba PlaceWaitingText
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jr nz, .not_mobile
-
- call .MobileBattle_SendReceiveAction
- call Function100da5
- callba FinishBattleAnim
- jr .done
-
-.not_mobile
- call .LinkBattle_SendReceiveAction
-
-.done
- ret
-; 100a2e
-
-.StageForSend: ; 100a2e
- ld a, [wPlayerAction]
- and a
- jr nz, .switch
- ld a, [CurPlayerMove]
- ld b, BATTLEACTION_E
- cp STRUGGLE
- jr z, .struggle
- ld b, BATTLEACTION_D
- cp $ff
- jr z, .struggle
- ld a, [CurMoveNum]
- jr .use_move
-
-.switch
- ld a, [CurPartyMon]
- add BATTLEACTION_SWITCH1
- jr .use_move
-
-.struggle
- ld a, b
-
-.use_move
- and $0f
- ret
-; 100a53
-
-.LinkBattle_SendReceiveAction: ; 100a53
- ld a, [wd431]
- ld [wPlayerLinkAction], a
- ld a, $ff
- ld [wOtherPlayerLinkAction], a
-.waiting
- call LinkTransfer
- call DelayFrame
- ld a, [wOtherPlayerLinkAction]
- inc a
- jr z, .waiting
-
- ld b, 10
-.receive
- call DelayFrame
- call LinkTransfer
- dec b
- jr nz, .receive
-
- ld b, 10
-.acknowledge
- call DelayFrame
- call LinkDataReceived
- dec b
- jr nz, .acknowledge
-
- ld a, [wOtherPlayerLinkAction]
- ld [wBattleAction], a
- ret
-; 100a87
-
-.MobileBattle_SendReceiveAction: ; 100a87
- call Function100acf
- call StartMobileInactivityTimer
- ld a, 0
- ld [wcd27], a
-.asm_100a92
- call DelayFrame
- call GetJoypad
- callba Function100382
- ld c, $01
- ld b, $03
- push bc
- call AdvanceMobileInactivityTimerAndCheckExpired
- pop bc
- jr c, .asm_100ac7
- ld b, $01
- call Function10079c
- jr c, .asm_100ac7
- call Function1009f3
- jr c, .asm_100ac7
- ld a, [wcd2b]
- and a
- jr nz, .asm_100ac7
- ld a, [wcd27]
- bit 7, a
- jr z, .asm_100a92
- call Function100ae7
- jr .asm_100ace
-
-.asm_100ac7
- ld a, $0f
- ld [wd430], a
- jr .asm_100ace
-
-.asm_100ace
- ret
-; 100acf
-
-Function100acf: ; 100acf
- ld de, Unknown_100b0a
- ld hl, wccb5
- ld a, [wd431]
- ld [hli], a
- ld c, $01
-.asm_100adb
- ld a, [de]
- inc de
- ld [hli], a
- inc c
- and a
- jr nz, .asm_100adb
- ld a, c
- ld [wccb4], a
- ret
-; 100ae7
-
-Function100ae7: ; 100ae7
- ld de, Unknown_100b0a
- ld hl, wcc62
-.asm_100aed
- ld a, [de]
- inc de
- and a
- jr z, .asm_100af8
- cp [hl]
- jr nz, .asm_100aff
- inc hl
- jr .asm_100aed
-
-.asm_100af8
- ld a, [wcc61]
- ld [wd430], a
- ret
-
-.asm_100aff
- ld a, $0f
- ld [wd430], a
- ld a, $f1
- ld [wcd2b], a
- ret
-; 100b0a
-
-
-SECTION "tetsuji", ROMX
-
- charmap " ", $20 ; revert to ascii
-
-Unknown_100b0a: ; 100b0a
- db "tetsuji", 0
-; 100b12
-
-
-SECTION "bank40_2", ROMX
-
-Function100b12: ; 100b12
- call Function100dd8
- ret c
- ld hl, BattleMenuDataHeader
- ld a, BANK(BattleMenuDataHeader)
- ld de, LoadMenuDataHeader
- call FarCall_de
- ld a, BANK(BattleMenuDataHeader)
- ld [wMenuData2_2DMenuItemStringsBank], a
- ld a, [wBattleMenuCursorBuffer]
- ld [wMenuCursorBuffer], a
- call Function100e72
- call Function100b45
- callba InitPartyMenuBGPal7
- call Function100ed4
- ld a, [wMenuCursorBuffer]
- ld [wBattleMenuCursorBuffer], a
- call ExitMenu
- ret
-; 100b45
-
-Function100b45: ; 100b45
- call Function100b7a
-.loop
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba HDMATransferTileMapToWRAMBank3
- call Function100e2d
- pop bc
- jr c, .asm_100b6b
- ld a, [wMenuJoypadFilter]
- and c
- jr z, .loop
- callba Mobile_GetMenuSelection
- ret
-
-.asm_100b6b
- ld a, [w2DMenuNumCols]
- ld c, a
- ld a, [w2DMenuNumRows]
- call SimpleMultiply
- ld [wMenuCursorBuffer], a
- and a
- ret
-; 100b7a
-
-Function100b7a: ; 100b7a
- ld hl, CopyMenuData2
- ld a, [wMenuData2_2DMenuItemStringsBank]
- rst FarCall
- callba Draw2DMenu
- callba MobileTextBorder
- call UpdateSprites
- call ApplyTilemap
- callba Init2DMenuCursorPosition
- ld hl, w2DMenuFlags1
- set 7, [hl]
- ret
-; 100b9f
-
-MobileMoveSelectionScreen: ; 100b9f
- xor a
- ld [wMoveSwapBuffer], a
- callba CheckPlayerHasUsableMoves
- ret z
- call Function100dd8
- jp c, xor_a_dec_a
- call Function100e72
- call .GetMoveSelection
- push af
- callba InitPartyMenuBGPal7
- call Function100ed4
- pop af
- ret
-; 100bc2
-
-.GetMoveSelection: ; 100bc2
- xor a
- ld [hBGMapMode], a
- call Function100c74
- call Function100c98
-.master_loop
- callba MoveInfoBox
-.loop
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba HDMATransferTileMapToWRAMBank3
- call Function100e2d
- pop bc
- jr c, .b_button
- ld a, [wMenuJoypadFilter]
- and c
- bit D_UP_F, a
- jp nz, .d_up
- bit D_DOWN_F, a
- jp nz, .d_down
- bit A_BUTTON_F, a
- jr nz, .a_button
- bit B_BUTTON_F, a
- jr nz, .b_button
- jr .loop
-
-.d_up
- ld a, [wMenuCursorY]
- and a
- jp nz, .master_loop
- ld a, [wNumMoves]
- inc a
- ld [wMenuCursorY], a
- jp .master_loop
-
-.d_down
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [wNumMoves]
- inc a
- inc a
- cp b
- jp nz, .master_loop
- ld a, $01
- ld [wMenuCursorY], a
- jp .master_loop
-
-.b_button
- ld a, [wMenuCursorY]
- dec a
- ld [CurMoveNum], a
- ld a, $01
- and a
- ret
-
-.a_button
- ld a, [wMenuCursorY]
- dec a
- ld [CurMoveNum], a
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, 0
- ld hl, BattleMonPP
- add hl, bc
- ld a, [hl]
- and $3f
- jr z, .no_pp_left
- ld a, [PlayerDisableCount]
- swap a
- and $0f
- dec a
- cp c
- jr z, .move_disabled
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, 0
- ld hl, BattleMonMoves
- add hl, bc
- ld a, [hl]
- ld [CurPlayerMove], a
- xor a
- ret
-
-.move_disabled
- ld hl, BattleText_TheMoveIsDisabled
- jr .print_text
-
-.no_pp_left
- ld hl, BattleText_TheresNoPPLeftForThisMove
-
-.print_text
- call StdBattleTextBox
- call Call_LoadTempTileMapToTileMap
- jp .GetMoveSelection
-; 100c74
-
-Function100c74: ; 100c74
- hlcoord 0, 8
- ld b, 8
- ld c, 8
- call TextBox
- ld hl, BattleMonMoves
- ld de, wListMoves_MoveIndicesBuffer
- ld bc, NUM_MOVES
- call CopyBytes
- ld a, SCREEN_WIDTH * 2
- ld [Buffer1], a
- hlcoord 2, 10
- predef ListMoves
- ret
-; 100c98
-
-Function100c98: ; 100c98
- ld de, .attrs
- call SetMenuAttributes
- ld a, [wNumMoves]
- inc a
- ld [w2DMenuNumRows], a
- ld a, [CurMoveNum]
- inc a
- ld [wMenuCursorY], a
- ret
-; 100cad
-
-.attrs ; 100cad
- db 10, 1
- db 255, 1
- db $a0, $00
- dn 2, 0
- db D_UP | D_DOWN | A_BUTTON | B_BUTTON
-
-Mobile_PartyMenuSelect: ; 100cb5
- call Function100dd8
- ret c
- ld hl, w2DMenuFlags1
- set 7, [hl]
- res 6, [hl]
-.loop
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba PlaySpriteAnimations
- callba HDMATransferTileMapToWRAMBank3
- call MobileComms_CheckInactivityTimer
- pop bc
- jr c, .done
- ld a, [wMenuJoypadFilter]
- and c
- jr z, .loop
- call PlaceHollowCursor
- ld a, [PartyCount]
- inc a
- ld b, a
- ld a, [wMenuCursorY]
- cp b
- jr z, .done
- ld [wPartyMenuCursor], a
- ld a, [hJoyLast]
- ld b, a
- bit 1, b
- jr nz, .done
- ld a, [wMenuCursorY]
- dec a
- ld [CurPartyMon], a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- and a
- ret
-
-.done
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- scf
- ret
-; 100d22
-
-MobileBattleMonMenu: ; 100d22
- call Function100dd8
- ret c
- call Function100d67
- ld hl, w2DMenuFlags1
- set 7, [hl]
- res 6, [hl]
-.asm_100d30
- call Mobile_SetOverworldDelay
- callba MobileMenuJoypad
- push bc
- callba PlaySpriteAnimations
- callba HDMATransferTileMapToWRAMBank3
- call MobileComms_CheckInactivityTimer
- pop bc
- jr c, .asm_100d54
- ld a, [wMenuJoypadFilter]
- and c
- jr nz, .asm_100d56
- jr .asm_100d30
-
-.asm_100d54
- scf
- ret
-
-.asm_100d56
- push af
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- pop af
- bit 1, a
- jr z, .asm_100d65
- ret z
- scf
- ret
-
-.asm_100d65
- and a
- ret
-; 100d67
-
-Function100d67: ; 100d67
- ld hl, .MenuDataHeader
- call CopyMenuDataHeader
- xor a
- ld [hBGMapMode], a
- call MenuBox
- call UpdateSprites
- call PlaceVerticalMenuItems
- call WaitBGMap
- call CopyMenuData2
- call InitVerticalMenuCursor
- ld hl, w2DMenuFlags1
- set 6, [hl]
- ret
-; 100d88
-
-.MenuDataHeader: ; 100d88
- db 0 ; flags
- db 11, 11 ; start coords
- db 17, 19 ; end coords
- dw .MenuData2
- db 1 ; default option
-
-.MenuData2: ; 100d90
- db $c0 ; flags
- db 3
- db "いれかえる@" ; TRADE
- db "つよさをみる@" ; STATS
- db "キャンセル@" ; CANCEL
-; 100da5
-
-Function100da5: ; 100da5
- ld hl, wcd2a
- res 3, [hl]
- ld hl, wcd29
- res 0, [hl]
- ret
-; 100db0
-
-Function100db0: ; 100db0
- ld hl, wcd2a
- bit 3, [hl]
- jr nz, .asm_100dbe
- ld hl, wcd2a
- set 3, [hl]
- scf
- ret
-
-.asm_100dbe
- xor a
- ret
-; 100dc0
-
-
-
-Function100dc0: ; 100dc0
- ld a, [wLinkMode]
- cp LINK_MOBILE
- jr nz, .mobile
- ld hl, wcd2a
- bit 3, [hl]
- jr z, .mobile
- scf
- ret
-
-.mobile
- xor a
- ret
-; 100dd2
-
-Mobile_SetOverworldDelay: ; 100dd2
- ld a, 30
- ld [OverworldDelay], a
- ret
-; 100dd8
-
-Function100dd8: ; 100dd8
- ld c, $01
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- jr c, .asm_100dfb
- ld c, $3c
- ld b, $01
- call Function10079c
- jr c, .asm_100dfb
- callba Function10032e
- ld a, [wcd2b]
- and a
- jr nz, .asm_100dfb
- xor a
- ret
-
-.asm_100dfb
- scf
- ret
-; 100dfd
-
-MobileComms_CheckInactivityTimer: ; 100dfd
- ld a, [OverworldDelay]
- ld c, a
- ld a, 30
- sub c
- ld c, a
- ld b, 3
- push bc
- callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall
- pop bc
- jr c, .quit
- ld b, 1
- call Function10079c
- jr c, .quit
- call Function1009f3
- jr c, .quit
- callba Function10032e ; useless to farcall
- ld a, [wcd2b]
- and a
- jr nz, .quit
- xor a
- ret
-
-.quit
- scf
- ret
-; 100e2d
-
-Function100e2d: ; 100e2d
- ld a, [OverworldDelay]
- ld c, a
- ld a, 30
- sub c
- ld c, a
- ld b, 3
- push bc
- callba AdvanceMobileInactivityTimerAndCheckExpired
- pop bc
- jr c, .asm_100e61
- ld b, 1
- call Function10079c
- jr c, .asm_100e61
- call Function1009f3
- jr c, .asm_100e61
- callba Function10032e
- ld a, [wcd2b]
- and a
- jr nz, .asm_100e61
- call Function100e63
- call Function100e84
- xor a
- ret
-
-.asm_100e61
- scf
- ret
-; 100e63
-
-Function100e63: ; 100e63
- ld a, e
- cp $02
- ret nz
- call Function100db0
- ret nc
- ld de, SFX_ELEVATOR_END
- call PlaySFX
- ret
-; 100e72
-
-Function100e72: ; 100e72
- xor a
- ld hl, wcd29
- bit 0, [hl]
- jr z, .asm_100e7c
- ld a, $0a
-
-.asm_100e7c
- ld [wcd67], a
- xor a
- ld [wcd68], a
- ret
-; 100e84
-
-Function100e84: ; 100e84
- ld a, [wcd67]
- ld hl, Jumptable_100e8c
- rst JumpTable
- ret
-; 100e8c
-
-
-Jumptable_100e8c: ; 100e8c (40:4e8c)
- dw Function100ea2
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100eb4
- dw Function100eae
- dw Function100ec4
-
-
-Function100ea2: ; 100ea2 (40:4ea2)
- call Function100dc0
- ret nc
- ld hl, wcd29
- set 0, [hl]
- call Function100ec5
-
-
-Function100eae: ; 100eae
- scf
- call Function100eca
- jr asm_100eb8
-
-Function100eb4: ; 100eb4
- and a
- call Function100eca
-
-asm_100eb8
- ld hl, wcd68
- inc [hl]
- ld a, [hl]
- cp $02
- ret c
- ld [hl], 0
- jr Function100ec5
-
-Function100ec4: ; 100ec4
- ret
-
-Function100ec5
- ld hl, wcd67
- inc [hl]
- ret
-; 100eca
-
-Function100eca: ; 100eca
- callba Mobile_InitPartyMenuBGPal7
- call Function100ed4
- ret
-; 100ed4
-
-Function100ed4: ; 100ed4
- callba ApplyPals
- ld a, $01
- ld [hCGBPalUpdate], a
- ret
-; 100edf
-
-Function100edf: ; 100edf
- ld hl, Unknown_100fc0
- ld c, 1
- jr asm_100f02
-
-Function100ee6: ; 100ee6
- ld hl, Unknown_100fc0
- ld c, 2
- jr asm_100f02
-
-Function100eed: ; 100eed
- ld hl, Unknown_100feb
- ld c, 1
- jr asm_100f02
-
-Function100ef4: ; 100ef4
- ld hl, Unknown_100ff3
- ld c, 1
- jr asm_100f02
-
-Function100efb: ; 100efb
- ld hl, Unknown_10102c
- ld c, 1
- jr asm_100f02
-
-asm_100f02:
- ld a, c
- ld [StringBuffer2], a
- ; someting that was previously stored in de gets backed up to here
- ld a, e
- ld [StringBuffer2 + 1], a
- ld a, d
- ld [StringBuffer2 + 2], a
- ; empty this
- xor a
- ld [StringBuffer2 + 4], a
- ld [StringBuffer2 + 5], a
-.loop
- ld a, [hl]
- cp $ff
- jr z, .done
- ld [StringBuffer2 + 3], a ; bank
- push hl
- inc hl
- ; addr 1
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ; size
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ; addr 2
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Function100f3d
- ; next line
- pop hl
- ld de, 7
- add hl, de
- jr .loop
-
-.done
- ; recover the values into bc
- ld a, [StringBuffer2 + 4]
- ld c, a
- ld a, [StringBuffer2 + 5]
- ld b, a
- ret
-; 100f3d
-
-Function100f3d: ; 100f3d
- ; parameter
- ld a, [StringBuffer2]
- cp $02
- jr z, .two
- cp $01
- jr z, .one
- cp $03
- jr z, .three
- ret
-
-.three
- ; what was once in de gets copied to hl,
- ; modified by Function100f8d, and put back
- ; into this backup
- ld a, [StringBuffer2 + 1]
- ld l, a
- ld a, [StringBuffer2 + 2]
- ld h, a
- call Function100f8d
- ld a, l
- ld [StringBuffer2 + 1], a
- ld a, h
- ld [StringBuffer2 + 2], a
- ret
-
-.two
- ; hl gets backed up to de, then
- ; do the same as in .three
- ld d, h
- ld e, l
- ld a, [StringBuffer2 + 1]
- ld l, a
- ld a, [StringBuffer2 + 2]
- ld h, a
- call Function100f8d
- ld a, l
- ld [StringBuffer2 + 1], a
- ld a, h
- ld [StringBuffer2 + 2], a
- ret
-
-.one
- ; de gets copied to hl, then
- ; load the backup into de,
- ; finally run Function100f8d
- ; and store the de result
- ld h, d
- ld l, e
- ld a, [StringBuffer2 + 1]
- ld e, a
- ld a, [StringBuffer2 + 2]
- ld d, a
- call Function100f8d
- ld a, e
- ld [StringBuffer2 + 1], a
- ld a, d
- ld [StringBuffer2 + 2], a
- ret
-; 100f8d
-
-Function100f8d: ; 100f8d
- push hl
- ld a, [StringBuffer2 + 4]
- ld l, a
- ld a, [StringBuffer2 + 5]
- ld h, a
- add hl, bc
- ld a, l
- ld [StringBuffer2 + 4], a
- ld a, h
- ld [StringBuffer2 + 5], a
- pop hl
- ld a, [StringBuffer2 + 3]
- bit 7, a
- res 7, a
- jr z, .sram
- and a
- jr nz, .far_wram
- call CopyBytes
- ret
-
-.far_wram
- and $7f
- call FarCopyWRAM
- ret
-
-.sram
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ret
-; 100fc0
-
-Unknown_100fc0: ; 100fc0
- ; first byte:
- ; Bit 7 set: Not SRAM
- ; Lower 7 bits: Bank
- ; Address, size (dw), address
- dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName
- dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount
- dbwww $80, PlayerID, 2, OTPlayerID
- dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons
- dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT
- dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames
- db -1
-
-Unknown_100feb: ; 100feb
- dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
- db -1
-
-Unknown_100ff3: ; 100ff3
- dbwww $80, wdc41, 1, NULL
- dbwww $80, PlayerName, NAME_LENGTH, NULL
- dbwww $80, PlayerName, NAME_LENGTH, NULL
- dbwww $80, PlayerID, 2, NULL
- dbwww $80, wSecretID, 2, NULL
- dbwww $80, PlayerGender, 1, NULL
- dbwww $04, $a603, 8, NULL
- dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
- db -1
-
-Unknown_10102c: ; 10102c
- dbwww $80, OTPlayerName, NAME_LENGTH, NULL
- dbwww $80, OTPlayerID, 2, NULL
- dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL
- dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL
- dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
- db -1
-; 10104f
-
-Function101050: ; 101050
- call Function10107d
- ld a, [OTPartyCount]
-rept 2 ; ???
- ld hl, wc608
-endr
- ld bc, wc7bb - wc608
- call Function1010de
- ld hl, wc7bb
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, $07
- call GetSRAMBank
- ld hl, wc608
- ld de, $a001
- ld bc, wc7bd - wc608
- call CopyBytes
- call CloseSRAM
- ret
-; 10107d
-
-Function10107d: ; 10107d
- xor a
- ld hl, wc608
- ld bc, wc7bd - wc608
- call ByteFill
- ld hl, OTPlayerName
- ld de, wc608
- ld bc, NAME_LENGTH
- call CopyBytes
- ld hl, wd271
- ld a, [hli]
- ld [wc608 + 11], a
- ld a, [hl]
- ld [wc608 + 12], a
- ld hl, OTPartyMonNicknames
- ld de, wc608 + 13
- ld bc, NAME_LENGTH
- call .CopyAllFromOT
- ld hl, OTPartyMonOT
- ld de, OTClassName + 1
- ld bc, NAME_LENGTH
- call .CopyAllFromOT
- ld hl, OTPartyMon1Species
- ld de, $c699
- ld bc, PARTYMON_STRUCT_LENGTH
- call .CopyAllFromOT
- ld a, $50
- ld [wc7b9], a
- ld a, $33
- ld [wc7ba], a
- ret
-; 1010cd
-
-.CopyAllFromOT: ; 1010cd
- push hl
- ld hl, 0
- ld a, [OTPartyCount]
- call AddNTimes
- ld b, h
- ld c, l
- pop hl
- call CopyBytes
- ret
-; 1010de
-
-Function1010de: ; 1010de
- push hl
- push bc
- ld de, 0
-.loop
- ld a, [hli]
- add e
- ld e, a
- ld a, d
- adc 0
- ld d, a
- dec bc
- ld a, b
- or c
- jr nz, .loop
- pop bc
- pop hl
- ret
-; 1010f2
-
-LoadSelectedPartiesForColosseum: ; 1010f2
- xor a
- ld hl, StringBuffer2
- ld bc, 9
- call ByteFill
- ld hl, wPlayerMonSelection
- ld de, PartyCount
- call .CopyThreeSpecies
- ld hl, wPlayerMonSelection
- ld de, PartyMon1Species
- call .CopyPartyStruct
- ld hl, wPlayerMonSelection
- ld de, PartyMonOT
- call .CopyName
- ld hl, wPlayerMonSelection
- ld de, PartyMonNicknames
- call .CopyName
- ld hl, wOTMonSelection
- ld de, OTPartyCount
- call .CopyThreeSpecies
- ld hl, wOTMonSelection
- ld de, OTPartyMon1Species
- call .CopyPartyStruct
- ld hl, wOTMonSelection
- ld de, OTPartyMonOT
- call .CopyName
- ld hl, wOTMonSelection
- ld de, OTPartyMonNicknames
- call .CopyName
- ret
-; 101145
-
-.CopyThreeSpecies: ; 101145
-; Load the 3 choices to the buffer
- push de
- ld bc, StringBuffer2 + 6
- xor a
-.party_loop
- push af
- call .GetNthSpecies
- ld [bc], a
- inc bc
- pop af
- inc a
- cp 3
- jr nz, .party_loop
- pop de
-; Copy the 3 choices to the party
- ld a, 3
- ld [de], a
- inc de
- ld hl, StringBuffer2 + 6
- ld bc, 3
- call CopyBytes
- ld a, $ff
- ld [de], a
- ret
-; 101168
-
-.GetNthSpecies: ; 101168
-; Preserves hl and de
-; Get the index of the Nth selection
- push hl
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- pop hl
-; Get the corresponding species
- push de
- inc de
- add e
- ld e, a
- ld a, d
- adc 0
- ld d, a
- ld a, [de]
- pop de
- ret
-; 10117c
-
-.CopyPartyStruct: ; 10117c
- ld bc, PARTYMON_STRUCT_LENGTH
- jr .ContinueCopy
-
-.CopyName: ; 101181
- ld bc, NAME_LENGTH
-
-.ContinueCopy:
- ; Copy, via wc608...
- ld a, wc608 % $100
- ld [StringBuffer2], a
- ld a, wc608 / $100
- ld [StringBuffer2 + 1], a
- ; ... bc bytes...
- ld a, c
- ld [StringBuffer2 + 2], a
- ld a, b
- ld [StringBuffer2 + 3], a
- ; ... to de...
- ld a, e
- ld [StringBuffer2 + 4], a
- ld a, d
- ld [StringBuffer2 + 5], a
- ; ... 3 times.
- ld a, 3
-.big_copy_loop
- push af
- ld a, [hli]
- push hl
- push af
- call .GetDestinationAddress
- call .GetCopySize
- pop af
- call AddNTimes
- ld a, [StringBuffer2]
- ld e, a
- ld a, [StringBuffer2 + 1]
- ld d, a
- call CopyBytes
- ld a, e
- ld [StringBuffer2], a
- ld a, d
- ld [StringBuffer2 + 1], a
- pop hl
- pop af
- dec a
- jr nz, .big_copy_loop
- call .GetCopySize
- ld a, 3
- ld hl, 0
- call AddNTimes
- ld b, h
- ld c, l
- call .GetDestinationAddress
- ld d, h
- ld e, l
- ld hl, wc608
- call CopyBytes
- ret
-; 1011df
-
-.GetDestinationAddress: ; 1011df
- ld a, [StringBuffer2 + 4]
- ld l, a
- ld a, [StringBuffer2 + 5]
- ld h, a
- ret
-; 1011e8
-
-.GetCopySize: ; 1011e8
- ld a, [StringBuffer2 + 2]
- ld c, a
- ld a, [StringBuffer2 + 3]
- ld b, a
- ret
-; 1011f1
-
-Function1011f1: ; 1011f1
- ld a, $04
- call GetSRAMBank
- ld a, [$a60c]
- ld [wdc41], a
- call CloseSRAM
- ld hl, wdc41
- res 4, [hl]
- ld hl, GameTimerPause
- bit 7, [hl]
- jr z, .skip
- ld hl, wdc41
- set 4, [hl]
-
-.skip
- call Function10209c
- xor a
- ld [wdc5f], a
- ld [wdc60], a
- ld a, LINK_MOBILE
- ld [wLinkMode], a
- ret
-; 101220
-
-Function101220: ; 101220
- xor a
- ld [wLinkMode], a
- ret
-; 101225
-
-Function101225: ; 101225
- ld d, 1
- ld e, BANK(Jumptable_101297)
- ld bc, Jumptable_101297
- call Function100000
- jr Function10123d
-
-Function101231: ; 101231
- ld d, 2
- ld e, BANK(Jumptable_101297)
- ld bc, Jumptable_101297
- call Function100000
- jr Function10123d
-
-Function10123d: ; 10123d
- xor a
- ld [ScriptVar], a
- ld a, c
- ld hl, Jumptable_101247
- rst JumpTable
- ret
-; 101247
-
-Jumptable_101247: ; 101247
- dw Function101251
- dw Function10127d
- dw Function10127c
- dw Function10126c
- dw Function101265
-; 101251
-
-Function101251: ; 101251
- call UpdateSprites
- call RefreshScreen
- ld hl, UnknownText_0x1021f4
- call Function1021e0
- call Function1020ea
- ret c
- call Function102142
- ret
-; 101265
-
-Function101265: ; 101265
- ld hl, UnknownText_0x1021ef
- call Function1021e0
- ret
-; 10126c
-
-Function10126c: ; 10126c
- call UpdateSprites
- callba Script_reloadmappart
- ld hl, UnknownText_0x1021f4
- call Function1021e0
- ret
-; 10127c
-
-Function10127c: ; 10127c
- ret
-; 10127d
-
-Function10127d: ; 10127d
- ret
-; 10127e
-
-Function10127e: ; 10127e
- ld a, [wdc5f]
- and a
- jr z, .zero
- cp 1
- ld c, $27
- jr z, .load
- cp 2
- ld c, $37
- jr z, .load
-.zero
- ld c, 0
-.load
- ld a, c
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101297
-
-Jumptable_101297: ; 101297
- dw Function101a97 ; 00
- dw Function101ab4 ; 01
- dw Function101475 ; 02
- dw Function101b0f ; 03
- dw Function101438 ; 04
- dw Function101b2b ; 05
- dw Function101b59 ; 06
- dw Function101475 ; 07
- dw Function101b70 ; 08
- dw Function101438 ; 09
- dw Function101b8f ; 0a
- dw Function101d7b ; 0b
- dw Function101d95 ; 0c
- dw Function101475 ; 0d
- dw Function101db2 ; 0e
- dw Function101e4f ; 0f
- dw Function101475 ; 10
- dw Function101e64 ; 11
- dw Function101e4f ; 12
- dw Function101475 ; 13
- dw Function101e64 ; 14
- dw Function101d95 ; 15
- dw Function101475 ; 16
- dw Function101db2 ; 17
- dw Function101dd0 ; 18
- dw Function101de3 ; 19
- dw Function101e39 ; 1a
- dw Function101e09 ; 1b
- dw Function101e4f ; 1c
- dw Function101475 ; 1d
- dw Function101e64 ; 1e
- dw Function101d95 ; 1f
- dw Function101475 ; 20
- dw Function101db2 ; 21
- dw Function101e09 ; 22
- dw Function101e31 ; 23
- dw Function101bc8 ; 24
- dw Function101438 ; 25
- dw Function101be5 ; 26
- dw Function101ac6 ; 27
- dw Function101ab4 ; 28
- dw Function101475 ; 29
- dw Function101c11 ; 2a
- dw Function1014f4 ; 2b
- dw Function101cc8 ; 2c
- dw Function1014e2 ; 2d
- dw Function1014e2 ; 2e
- dw Function101d10 ; 2f
- dw Function101d2a ; 30
- dw Function101d2a ; 31
- dw Function101507 ; 32
- dw Function10156d ; 33
- dw Function101557 ; 34
- dw Function10158a ; 35
- dw Function101c42 ; 36
- dw Function101aed ; 37
- dw Function101ab4 ; 38
- dw Function101475 ; 39
- dw Function101c2b ; 3a
- dw Function1014f4 ; 3b
- dw Function101cdf ; 3c
- dw Function1014e2 ; 3d
- dw Function1014e2 ; 3e
- dw Function101d1e ; 3f
- dw Function101d2a ; 40
- dw Function101d2a ; 41
- dw Function101507 ; 42
- dw Function10156d ; 43
- dw Function101544 ; 44
- dw Function10158a ; 45
- dw Function101c42 ; 46
- dw Function101c50 ; 47
- dw Function1014ce ; 48
- dw Function101cf6 ; 49
- dw Function101826 ; 4a
- dw Function1017e4 ; 4b
- dw Function1017f1 ; 4c
- dw Function1018a8 ; 4d
- dw Function1018d6 ; 4e
- dw Function1017e4 ; 4f
- dw Function1017f1 ; 50
- dw Function1018e1 ; 51
- dw Function1015df ; 52
- dw Function10167d ; 53
- dw Function10168a ; 54
- dw Function10162a ; 55
- dw Function1015be ; 56
- dw Function10167d ; 57
- dw Function10168a ; 58
- dw Function10161f ; 59
- dw Function10159d ; 5a
- dw Function10167d ; 5b
- dw Function10168a ; 5c
- dw Function101600 ; 5d
- dw Function101d03 ; 5e
- dw Function101d6b ; 5f
- dw Function10159d ; 60
- dw Function1014ce ; 61
- dw Function10168e ; 62
- dw Function101600 ; 63
- dw Function101913 ; 64
- dw Function10194b ; 65
- dw _SelectMonsForMobileBattle ; 66
- dw Function1017e4 ; 67
- dw Function1017f5 ; 68
- dw _StartMobileBattle ; 69
- dw Function101537 ; 6a
- dw Function101571 ; 6b
- dw Function101c92 ; 6c
- dw Function10152a ; 6d
- dw Function101571 ; 6e
- dw Function101a4f ; 6f
- dw Function101cbc ; 70
- dw Function101c62 ; 71
- dw Function101537 ; 72
- dw Function101571 ; 73
- dw Function101c92 ; 74
- dw Function10152a ; 75
- dw Function101571 ; 76
- dw Function101ca0 ; 77
- dw Function101475 ; 78
- dw Function101cbc ; 79
-; 10138b
-
-Function10138b: ; 10138b
- callba Function8adcc
- ld c, 0
- jr c, .asm_101396
- inc c
-
-.asm_101396
- sla c
- ld a, [wcd2f]
- and a
- jr z, .asm_10139f
- inc c
-
-.asm_10139f
- sla c
- ld a, [wcd21]
- cp $01
- jr z, .asm_1013a9
- inc c
-
-.asm_1013a9
- ret
-; 1013aa
-
-Function1013aa: ; 1013aa
- call ClearBGPalettes
- call Call_ExitMenu
- call ReloadTilesetAndPalettes
- callba Function106464
- call UpdateSprites
- call FinishExitMenu
- ret
-; 1013c0
-
-Function1013c0: ; 1013c0
- callba BlankScreen
- callba MobileFunc_106462
- callba Function106464
- call FinishExitMenu
- ret
-; 1013d6
-
-Function1013d6: ; 1013d6
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ret
-; 1013dd
-
-Function1013dd: ; 1013dd
- call CGBOnly_LoadEDTile
- ret
-; 1013e1
-
-Function1013e1: ; 1013e1 ; unreferenced
- push de
- inc de
- ld b, a
- ld c, 0
-.asm_1013e6
- inc c
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_1013f1
- dec b
- jr nz, .asm_1013e6
- scf
-
-.asm_1013f1
- pop de
- ld a, c
- ld [de], a
- ret
-; 1013f5
-
-Function1013f5: ; 1013f5
- ld a, [hli]
- ld [de], a
- inc de
- ld c, a
-.asm_1013f9
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_1013f9
- ret
-; 101400
-
-Function101400: ; 101400 ; unreferenced
- ld a, [de]
- inc de
- cp [hl]
- jr nz, asm_101416
- inc hl
-
-Function101406: ; 101406
- ld c, a
- ld b, 0
-.asm_101409
- ld a, [de]
- inc de
- cp [hl]
- jr nz, asm_101416
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_101409
- and a
- ret
-
-asm_101416
- scf
- ret
-; 101418
-
-Function101418: ; 101418
- call GetJoypad
- ld a, [hJoyDown]
- and SELECT + A_BUTTON
- cp SELECT + A_BUTTON
- jr z, .asm_101425
- xor a
- ret
-
-.asm_101425
- ld a, $f7
- ld [wcd2b], a
- scf
- ret
-; 10142c
-
-Function10142c: ; 10142c
- ld a, $01
- ld [wc305], a
- callba Function115e18
- ret
-; 101438
-
-Function101438: ; 101438
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- ld hl, Jumptable_101457
- rst JumpTable
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101457
-
-Jumptable_101457: ; 101457
- dw Function10145b
- dw Function101467
-; 10145b
-
-Function10145b: ; 10145b
- ld a, $3c
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function101467: ; 101467
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 101475
-
-Function101475: ; 101475
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- ld hl, Jumptable_101494
- rst JumpTable
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101494
-
-Jumptable_101494: ; 101494
- dw Function10149a
- dw Function1014a6
- dw Function1014b7
-; 10149a
-
-Function10149a: ; 10149a
- ld a, $28
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function1014a6: ; 1014a6
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, $50
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function1014b7: ; 1014b7
- call GetJoypad
- ld a, [hJoyPressed]
- and $03
- jr nz, .asm_1014c5
- ld hl, wcd42
- dec [hl]
- ret nz
-
-.asm_1014c5
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 1014ce
-
-Function1014ce: ; 1014ce
- callba Function100720
- callba StartMobileInactivityTimer
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1014e2
-
-Function1014e2: ; 1014e2
- ld hl, wcd29
- set 6, [hl]
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1014f4
-
-Function1014f4: ; 1014f4
- callba EnableMobile
- ld hl, wcd29
- set 6, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101507
-
-Function101507: ; 101507
- ld de, wcd30
- ld hl, $40
- ld bc, $40
- ld a, $02
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10151d
-
-Function10151d: ; 10151d ; unreferenced
- ld a, $34
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10152a
-
-Function10152a: ; 10152a
- ld a, $36
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101537
-
-Function101537: ; 101537
- ld a, $0a
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101544
-
-Function101544: ; 101544
- callba StartMobileInactivityTimer
- ld a, $12
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101557
-
-Function101557: ; 101557
- callba StartMobileInactivityTimer
- ld hl, wcd53
- ld a, $08
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10156d
-
-Function10156d: ; 10156d
- call Function101418
- ret c
-
-Function101571: ; 101571
- callba Function10032e
- ret c
- ret z
- ld a, e
- cp $01
- jr z, .asm_101582
- ld [wcd2b], a
- ret
-
-.asm_101582
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10158a
-
-Function10158a: ; 10158a
- callba IncrementMobileInactivityTimerBy1Frame
- ld a, [wMobileInactivityTimerMinutes]
- cp $0a
- jr c, Function10156d
- ld a, $fb
- ld [wcd2b], a
- ret
-; 10159d
-
-Function10159d: ; 10159d
- ld de, wc608
- callba Function100edf
- ld de, wc608
- ld a, $05
- ld hl, w5_d800
- call Function10174c
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1015be
-
-Function1015be: ; 1015be
- ld de, wc608
- callba Function100eed
- ld de, wc608
- ld a, $05
- ld hl, w5_d800
- call Function10174c
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1015df
-
-Function1015df: ; 1015df
- ld de, wc608
- callba Function100ef4
- ld de, wc608
- ld a, $05
- ld hl, w5_d800
- call Function10174c
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101600
-
-Function101600: ; 101600
- ld hl, w5_d800
- ld de, wc608
- ld bc, $1e0
- ld a, $05
- call FarCopyWRAM
- ld de, wc608
- callba Function100ee6
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10161f
-
-Function10161f: ; 10161f
- call Function101649
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10162a
-
-Function10162a: ; 10162a
- call Function101663
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101635
-
-Function101635: ; 101635
- ld de, wc608
- ld bc, $1e0
- call FarCopyWRAM
- ret
-; 10163f
-
-Function10163f: ; 10163f
- ld hl, wc608
- ld bc, $1e0
- call FarCopyWRAM
- ret
-; 101649
-
-Function101649: ; 101649
- ld a, $05
- ld hl, w5_d800
- call Function101635
- ld a, $05
- ld de, w5_da00
- call Function10163f
- ret
-; 10165a
-
-Function10165a: ; 10165a
- ld a, $05
- ld hl, w5_da00
- call Function101635
- ret
-; 101663
-
-Function101663: ; 101663
- ld a, $05
- ld hl, w5_d800
- call Function101635
- ld a, $05
- ld de, w5_dc00
- call Function10163f
- ret
-; 101674
-
-Function101674: ; 101674 ; unreferenced
- ld a, $05
- ld hl, w5_dc00
- call Function101635
- ret
-; 10167d
-
-Function10167d: ; 10167d
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10168a
-
-Function10168a: ; 10168a
- call Function101418
- ret c
-
-Function10168e: ; 10168e
- ld b, 0
- ld c, $01
- callba Function10079c
- ret c
- ld c, $01
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- ret c
- ld a, [wcd26]
- ld hl, Jumptable_1016c3
- rst JumpTable
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1016c3
-
-Jumptable_1016c3: ; 1016c3
- dw Function1016cf
- dw Function1016de
- dw Function1016f8
- dw Function101705
- dw Function101719
- dw Function101724
-; 1016cf
-
-Function1016cf: ; 1016cf
- ld hl, wcd3a
- inc [hl]
- call Function10176f
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 1016de
-
-Function1016de: ; 1016de
- call Function10177b
- jr nc, .asm_1016eb
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-
-.asm_1016eb
- ld a, $ff
- ld [wcd39], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 1016f8
-
-Function1016f8: ; 1016f8
- ld a, 0
- ld [wcd27], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 101705
-
-Function101705: ; 101705
- callba Function100382
- ld a, [wcd27]
- bit 7, a
- ret z
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 101719
-
-Function101719: ; 101719
- call Function1017c7
- ld a, [wcd26]
- inc a
- ld [wcd26], a
- ret
-; 101724
-
-Function101724: ; 101724
- ld a, [wcd39]
- cp $ff
- jr z, .asm_101731
- ld a, 0
- ld [wcd26], a
- ret
-
-.asm_101731
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 10173a
-
-Unknown_10173a:
- db $50
-
-Function10173b: ; 10173b
- push bc
- push af
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Unknown_10173a]
- ld c, a
- ld b, 0
- pop af
- call AddNTimes
- pop bc
- ret
-; 10174c
-
-Function10174c: ; 10174c
- ld [wcd3d], a
- ld a, l
- ld [wcd3e], a
- ld a, h
- ld [wcd3f], a
- ld a, e
- ld [wcd3b], a
- ld a, d
- ld [wcd3c], a
- ld a, c
- ld [wcd40], a
- ld a, b
- ld [wcd41], a
- xor a
- ld [wcd39], a
- ld [wcd3a], a
- ret
-; 10176f
-
-Function10176f: ; 10176f
- ld hl, wccb4
- ld bc, $54
- ld a, $11
- call ByteFill
- ret
-; 10177b
-
-Function10177b: ; 10177b
- ld a, [Unknown_10173a]
- ld c, a
- ld b, 0
- ld a, [wcd3a]
- ld hl, 0
- call AddNTimes
- ld e, l
- ld d, h
- ld hl, wcd40
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, l
- sub e
- ld l, a
- ld a, h
- sbc d
- ld h, a
- jr c, .asm_1017a0
- add hl, bc
- call Function1017b0
- scf
- ret
-
-.asm_1017a0
- ld a, $ff
- ld [wcd39], a
- add hl, bc
- ld a, h
- or l
- ret z
- ld c, l
- ld b, h
- call Function1017b0
- xor a
- ret
-; 1017b0
-
-Function1017b0: ; 1017b0
- ld a, c
- ld [wccb4], a
- push bc
- ld a, [wcd3a]
- dec a
- ld hl, wcd3b
- call Function10173b
- pop bc
- ld de, wccb5
- call CopyBytes
- ret
-; 1017c7
-
-Function1017c7: ; 1017c7
- ld a, [wcc60]
- ld c, a
- ld b, 0
- ld a, [wcd3a]
- dec a
- ld hl, wcd3e
- call Function10173b
- ld e, l
- ld d, h
- ld hl, wcc61
- ld a, [wcd3d]
- call FarCopyWRAM
- and a
- ret
-; 1017e4
-
-Function1017e4: ; 1017e4
- ld a, 0
- ld [wcd27], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1017f1
-
-Function1017f1: ; 1017f1
- call Function101418
- ret c
-
-Function1017f5: ; 1017f5
- ld b, 0
- ld c, $01
- callba Function10079c
- ret c
- ld c, $01
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- ret c
- callba Function100382
- ld a, [wcd27]
- bit 7, a
- jr nz, .next
- ld hl, wcd29
- set 6, [hl]
- ret
-
-.next
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101826
-
-Function101826: ; 101826
- ld a, [wcd21]
- cp $02
- jr z, .asm_101833
- cp $01
- jr z, .asm_101844
- jr .asm_101869
-
-.asm_101833
- ld hl, Unknown_10186f
- ld de, wccb4
- call Function1013f5
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101844
- callba Function103654
- ld a, c
- ld hl, Unknown_101882
- cp $01
- jr z, .asm_10185b
- ld hl, Unknown_101895
- cp $02
- jr z, .asm_10185b
- jr .asm_101869
-
-.asm_10185b
- ld de, wccb4
- call Function1013f5
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101869
- ld a, $fe
- ld [wcd2b], a
- ret
-; 10186f
-
-
-SECTION "ascii 10186f", ROMX
-
- charmap " ", $20 ; revert to ascii
-
-Unknown_10186f:
- db .end - @
- db $19, $73, $09, $13, "trade_crystal"
-.end db 0
-
-Unknown_101882:
- db .end - @
- db $19, $67, $10, $01, "free__crystal"
-.end db 0
-
-Unknown_101895:
- db .end - @
- db $19, $67, $10, $01, "limit_crystal"
-.end db 0
-; 1018a8
-
-
-SECTION "bank40_3", ROMX
-
-Function1018a8: ; 1018a8
- ld hl, wccb5
- ld de, wcc61
- ld a, $04
- call Function101406
- jr c, .asm_1018d0
- ld hl, wccb9
- ld de, wcc65
- ld a, $06
- call Function101406
- jr c, .asm_1018ca
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_1018ca
- ld a, $f6
- ld [wcd2b], a
- ret
-
-.asm_1018d0
- ld a, $f5
- ld [wcd2b], a
- ret
-; 1018d6
-
-Function1018d6: ; 1018d6
- call Function1018ec
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1018e1
-
-Function1018e1: ; 1018e1
- call Function1018fb
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1018ec
-
-Function1018ec: ; 1018ec
- ld a, $0a
- ld hl, wccb4
- ld [hli], a
- ld c, a
-.asm_1018f3
- call Random
- ld [hli], a
- dec c
- jr nz, .asm_1018f3
- ret
-; 1018fb
-
-Function1018fb: ; 1018fb
- ld a, [wcd2f]
- and a
- jr z, .asm_101906
- ld hl, wcc61
- jr .asm_101909
-
-.asm_101906
- ld hl, wccb5
-
-.asm_101909
- ld de, LinkBattleRNs
- ld bc, 10
- call CopyBytes
- ret
-; 101913
-
-Function101913: ; 101913
- ld hl, wcd2a
- set 0, [hl]
- xor a
- ld [wc30d], a
- ld hl, wcd29
- res 4, [hl]
- xor a
- ld [wc305], a
- ld hl, wcd29
- res 7, [hl]
- ld a, $90
- ld [hWY], a
- ld a, [wcd21]
- cp $01
- jr z, .asm_10193f
- cp $02
- jr z, .asm_101945
- ld a, $71
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_10193f
- ld a, $66
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101945
- ld a, $65
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10194b
-
-Function10194b: ; 10194b
- call DisableSpriteUpdates
- call ClearSprites
- callba Function1021f9
- ld hl, wcd29
- bit 3, [hl]
- jr nz, .asm_101967
- call Function1013c0
- ld a, $71
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101967
- ld a, $60
- ld [wMobileCommsJumptableIndex], a
- ret
-; 10196d
-
-_SelectMonsForMobileBattle: ; 10196d
- callba BlankScreen
- callba Mobile_CommunicationStandby
- ld hl, wcd29
- set 5, [hl]
- ld hl, wcd2a
- set 6, [hl]
- ld a, $06
- ld [wccb4], a
- ld hl, wPlayerMonSelection
- ld de, wccb5
- ld bc, 3
- call CopyBytes
- ld hl, wcd6c
- ld a, [hli]
- ld [wccb8], a
- ld a, [hli]
- ld [wccb9], a
- ld a, [hl]
- ld [wccba], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1019ab
-
-_StartMobileBattle: ; 1019ab
- call CopyOtherPlayersBattleMonSelection
- callba Function100754
- xor a
- ld [wdc5f], a
- ld [wdc60], a
- callba BlankScreen
- call SpeechTextBox
- callba Function100846
- ld c, 120
- call DelayFrames
- callba ClearTileMap
- call .CopyOTDetails
- call StartMobileBattle
- ld a, [wcd2b]
- cp $fc
- jr nz, .asm_1019e6
- xor a
- ld [wcd2b], a
-.asm_1019e6
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1019ee
-
-.CopyOTDetails: ; 1019ee
- ld a, [rSVBK]
- push af
- ld a, 5
- ld [rSVBK], a
-
- ld bc, w5_dc0d
- ld de, w5_dc11
- callba GetMobileOTTrainerClass
-
- pop af
- ld [rSVBK], a
-
- ld a, c
- ld [OtherTrainerClass], a
- ld hl, OTPlayerName
- ld de, OTClassName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd2f]
- and a
- ld a, 2
- jr z, .got_link_player_number
- ld a, 1
-.got_link_player_number
- ld [hLinkPlayerNumber], a
- ret
-; 101a21
-
-StartMobileBattle: ; 101a21
- ; force stereo and fast text speed
- ld hl, Options
- ld a, [hl]
- push af
- and (1 << STEREO)
- or 1 ; 1 frame per character i.e. fast text
- ld [hl], a
- ld a, 1
- ld [wDisableTextAcceleration], a
- callba BattleIntro
- callba DoBattle
- callba ShowLinkBattleParticipantsAfterEnd
- xor a
- ld [wDisableTextAcceleration], a
- ld a, $ff
- ld [hLinkPlayerNumber], a
- pop af
- ld [Options], a
- ret
-; 101a4f
-
-Function101a4f: ; 101a4f
- ld a, 1
- ld [wDisableTextAcceleration], a
- callba DisplayLinkBattleResult
- xor a
- ld [wDisableTextAcceleration], a
- callba CleanUpBattleRAM
- callba LoadPokemonData
- call Function1013c0
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101a75
-
-CopyOtherPlayersBattleMonSelection: ; 101a75
- ld hl, wcc61
- ld de, wOTMonSelection
- ld bc, 3
- call CopyBytes
- ld de, wcc64
- callba Function100772
- callba Function101050
- callba LoadSelectedPartiesForColosseum
- ret
-; 101a97
-
-Function101a97: ; 101a97
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld hl, wcd29
- set 6, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101ab4
-
-Function101ab4: ; 101ab4
- ld e, $01
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101ac6
-
-Function101ac6: ; 101ac6
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld hl, wcd29
- set 6, [hl]
- xor a
- ld [wcd2f], a
- ld de, wdc42
- call Function102068
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101aed
-
-Function101aed: ; 101aed
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld hl, wcd29
- set 6, [hl]
- ld a, $01
- ld [wcd2f], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101b0f
-
-Function101b0f: ; 101b0f
- ld c, 0
- call Function10142c
- ld e, $03
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101b2b
-
-Function101b2b: ; 101b2b
- callba Function100579
- ld hl, wcd29
- set 2, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMenuCursorY]
- cp $01
- jr z, .asm_101b51
- ld a, $02
- ld [wcd2b], a
- ret
-
-.asm_101b51
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101b59
-
-Function101b59: ; 101b59
- ld c, $02
- call Function10142c
- ld e, $02
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101b70
-
-Function101b70: ; 101b70
- ld c, $02
- call Function10142c
- ld e, $04
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- call UpdateSprites
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101b8f
-
-Function101b8f: ; 101b8f
- callba Function1005c3
- ld hl, wcd29
- set 2, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMenuCursorY]
- cp $01
- jr z, .asm_101bbc
- ld a, $01
- ld [wcd2f], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101bbc
- xor a
- ld [wcd2f], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101bc8
-
-Function101bc8: ; 101bc8
- ld c, $02
- call Function10142c
- ld e, $08
- call Function101ee4
- call Function102048
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101be5
-
-Function101be5: ; 101be5
- callba Function100579
- ld hl, wcd29
- set 2, [hl]
- ld a, [wcd26]
- bit 7, a
- ret z
- call Function1013dd
- ld a, 0
- ld [wcd26], a
- ld a, [wMenuCursorY]
- cp $01
- jr nz, .asm_101c0b
- ld a, $2a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101c0b
- ld a, $02
- ld [wcd2b], a
- ret
-; 101c11
-
-Function101c11: ; 101c11
- ld a, $01
- ld [wdc5f], a
- ld e, $09
- call Function101ee4
- call Function102048
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c2b
-
-Function101c2b: ; 101c2b
- ld a, $02
- ld [wdc5f], a
- ld e, $07
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c42
-
-Function101c42: ; 101c42
- ld hl, wcd2a
- set 1, [hl]
- call Function100665
- ld a, $47
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c50
-
-Function101c50: ; 101c50
- ld e, $0a
- call Function101ee4
- ld hl, wcd29
- set 2, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101c62
-
-Function101c62: ; 101c62
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $01
- call Function10142c
- xor a
- ld [wc30d], a
- ld hl, wcd29
- res 4, [hl]
- ld e, $0b
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101c92
-
-Function101c92: ; 101c92
- callba Function100675
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101ca0
-
-Function101ca0: ; 101ca0
- ld c, $02
- call Function10142c
- ld e, $0c
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101cbc
-
-Function101cbc: ; 101cbc
- ld a, $01
- ld [wcd2b], a
- ret
-; 101cc2
-
-Function101cc2: ; 101cc2 ; unreferenced
- ld a, $02
- ld [wcd2b], a
- ret
-; 101cc8
-
-Function101cc8: ; 101cc8
- ld a, $01
- ld [wc314], a
- ld a, $01
- ld [wc30d], a
- ld hl, wcd29
- set 4, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101cdf
-
-Function101cdf: ; 101cdf
- ld a, $06
- ld [wc314], a
- ld a, $01
- ld [wc30d], a
- ld hl, wcd29
- set 4, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101cf6
-
-Function101cf6: ; 101cf6
- ld a, $0b
- ld [wc314 + 1], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d03
-
-Function101d03: ; 101d03
- ld a, $0e
- ld [wc314 + 1], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d10
-
-Function101d10: ; 101d10
- ld c, $01
- call Function10142c
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- jr Function101d2a
-
-Function101d1e: ; 101d1e
- ld c, $03
- call Function10142c
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
-
-Function101d2a: ; 101d2a
- call Function101418
- ret c
- ld hl, wcd29
- set 6, [hl]
- ld a, [wcd26]
- ld hl, Jumptable_101d4d
- rst JumpTable
- ld a, [wcd26]
- bit 7, a
- ret z
- ld a, 0
- ld [wcd26], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d4d
-
-Jumptable_101d4d: ; 101d4d
- dw Function101d51
- dw Function101d5d
-; 101d51
-
-Function101d51: ; 101d51
- ld a, $3c
- ld [wcd42], a
- ld a, [wcd26]
- inc a
- ld [wcd26], a
-
-Function101d5d: ; 101d5d
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, [wcd26]
- set 7, a
- ld [wcd26], a
- ret
-; 101d6b
-
-Function101d6b: ; 101d6b
- ld a, [wc30d]
- and a
- ret nz
- ld hl, wcd29
- res 4, [hl]
- ld a, $64
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d7b
-
-Function101d7b: ; 101d7b
- callba Function10138b
- ld b, 0
- ld hl, Unknown_101d8d
- add hl, bc
- ld c, [hl]
- ld a, c
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101d8d
-
-Unknown_101d8d: ; 101d8d
- db $15, $15, $1f, $1f, $0c, $12, $3a, $3a
-; 101d95
-
-Function101d95: ; 101d95
- call Function101ee2
- call LoadStandardMenuDataHeader
- ld e, $0e
- call Function101ee4
- ld hl, wcd29
- set 5, [hl]
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101db2
-
-Function101db2: ; 101db2
- callba Function103302
- call ExitMenu
- ld hl, wcd29
- set 5, [hl]
- jr c, .asm_101dca
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101dca
- ld a, $02
- ld [wcd2b], a
- ret
-; 101dd0
-
-Function101dd0: ; 101dd0
- ld hl, wdc41
- bit 1, [hl]
- jr nz, .asm_101ddd
- ld a, $19
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101ddd
- ld a, $1b
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101de3
-
-Function101de3: ; 101de3
- call Function101ecc
- call Function101ead
- jr c, .asm_101df3
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101df3
- call Function101e98
- jr c, .asm_101e00
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e00
- call Function101ed3
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e09
-
-Function101e09: ; 101e09
- call Function101ead
- jr c, .asm_101e16
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e16
- call Function101ecc
- call Function101e98
- push af
- call Function101ed3
- pop af
- jr c, .asm_101e2b
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e2b
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e31
-
-Function101e31: ; 101e31
- ld a, $3a
- ld [wMobileCommsJumptableIndex], a
- jp Function101c2b
-; 101e39
-
-Function101e39: ; 101e39
- call Function1020bf
- push af
- call Function101ed3
- pop af
- jr c, .asm_101e49
- ld a, $2a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e49
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e4f
-
-Function101e4f: ; 101e4f
- ld e, $06
- call Function101ee4
- call Function1013d6
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ld a, 0
- ld [wcd26], a
- ret
-; 101e64
-
-Function101e64: ; 101e64
- call Function101ecc
- call Function1020a8
- push af
- call Function101ed3
- pop af
- jr c, .asm_101e77
- ld a, $24
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_101e77
- ld hl, wcd29
- set 5, [hl]
- ld a, $02
- ld [wcd2b], a
- ret
-; 101e82
-
-Function101e82: ; 101e82 ; unreferenced
- call Function101ecc
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101e8d
-
-Function101e8d: ; 101e8d ; unreferenced
- call Function101ed3
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 101e98
-
-Function101e98: ; 101e98
- call ClearSprites
- callba Function8adb3
- ret c
- ld hl, GameTimerPause
- set 7, [hl]
- ld hl, wdc41
- set 4, [hl]
- ret
-; 101ead
-
-Function101ead: ; 101ead
- ld hl, GameTimerPause
- bit 7, [hl]
- jr nz, .asm_101ec8
- ld hl, wdc41
- bit 2, [hl]
- jr z, .asm_101eca
- ld a, [wcd2f]
- and a
- jr nz, .asm_101ec8
- ld hl, wdc41
- bit 1, [hl]
- jr z, .asm_101eca
-
-.asm_101ec8
- xor a
- ret
-
-.asm_101eca
- scf
- ret
-; 101ecc
-
-Function101ecc: ; 101ecc
- call Function101ee2
- call FadeToMenu
- ret
-; 101ed3
-
-Function101ed3: ; 101ed3
- call Function1013aa
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ret
-; 101ee2
-
-Function101ee2: ; 101ee2
- ld e, 0
-
-Function101ee4: ; 101ee4
- ld d, 0
- ld hl, Unknown_101ef5
- add hl, de
- add hl, de
- ld a, [hli]
- ld d, [hl]
- ld e, a
- callba Function100504
- ret
-; 101ef5
-
-Unknown_101ef5: ; 101ef5
- dw String_101f13
- dw String_101f14
- dw String_101f32
- dw String_101f4f
- dw String_101f69
- dw String_101f81
- dw String_101f93
- dw String_101faa
- dw String_101fc5
- dw String_101fd2
- dw String_101fe1
- dw String_101fef
- dw String_102000
- dw String_10200c
- dw String_102014
-
-String_101f13: ; 101f13
- db "@"
-
-String_101f14: ; 101f14
- db "モバイルアダプタを つかって"
- next "おともだちと つうしんします@"
-
-String_101f32: ; 101f32
- db "でんわを かけるひとには"
- next "つうわりょうきんが かかります@"
-
-String_101f4f: ; 101f4f
- db "モバイルアダプタの じゅんびは"
- next "できて いますか?@"
-
-String_101f69: ; 101f69
- db "あなたが おともだちに"
- next "でんわを かけますか?@"
-
-String_101f81: ; 101f81
- db "めいしフ,ルダーを"
- next "つかいますか?@"
-
-String_101f93: ; 101f93
- db "でんわばんごうを にゅうりょく"
- next "してください@"
-
-String_101faa: ; 101faa
- db "それでは おともだちからの"
- next "でんわを おまちします…@"
-
-String_101fc5: ; 101fc5
- next "に でんわを かけます@"
-
-String_101fd2: ; 101fd2
- next "に でんわを かけています@"
-
-String_101fe1: ; 101fe1
- db "でんわが つながりました!@"
-
-String_101fef: ; 101fef
- db "つうわを"
- next "しゅうりょう します…@"
-
-String_102000: ; 102000
- db "つうしん しゅうりょう@"
-
-String_10200c: ; 10200c
- db "つうわ じかん@"
-
-String_102014: ; 102014
- db "それでは つうしんの"
- next "せっていを してください@"
-; 10202c
-
-Function10202c: ; 10202c
- callba Function115d99
- ld hl, wcd29
- set 7, [hl]
- ld c, $02
- call Function10142c
- ld e, $0d
- call Function101ee4
- hlcoord 4, 4
- call Function100681
- ret
-; 102048
-
-Function102048: ; 102048
- call Function10204c
- ret
-; 10204c
-
-Function10204c: ; 10204c
- hlcoord 3, 2
- ld c, $10
- ld de, wcd53
-.asm_102054
- ld a, [de]
- inc de
- and a
- jr z, .asm_102067
- sub $30
- jr c, .asm_102067
- cp $0a
- jr nc, .asm_102067
- add $f6
- ld [hli], a
- dec c
- jr nz, .asm_102054
-
-.asm_102067
- ret
-; 102068
-
-Function102068: ; 102068
- ld hl, wcd53
- ld c, $08
-.asm_10206d
- ld a, [de]
- call Function102080
- jr c, .asm_10207f
- ld a, [de]
- swap a
- call Function102080
- jr c, .asm_10207f
- inc de
- dec c
- jr nz, .asm_10206d
-
-.asm_10207f
- ret
-; 102080
-
-Function102080: ; 102080
- and $0f
- cp $0f
- jr z, .asm_10208a
- add $30
- ld [hli], a
- ret
-
-.asm_10208a
- ld [hl], 0
- scf
- ret
-; 10208e
-
-Function10208e: ; 10208e
- push de
- ld h, d
- ld l, e
- ld de, wdc42
- ld bc, 8
- call CopyBytes
- pop de
- ret
-; 10209c
-
-Function10209c: ; 10209c
- ld a, $ff
- ld hl, wdc42
- ld bc, 8
- call ByteFill
- ret
-; 1020a8
-
-Function1020a8: ; 1020a8
- call Function10209c
- ld c, $01
- ld de, wdc42
- callba Function17a68f
- ret c
- call Function10208e
- call Function102068
- xor a
- ret
-; 1020bf
-
-Function1020bf: ; 1020bf
- call ClearSprites
- callba Function8aba9
- ld a, c
- and a
- jr z, .asm_1020e8
- dec a
- ld hl, $a04c
- ld bc, $25
- call AddNTimes
- ld d, h
- ld e, l
- ld a, $04
- call GetSRAMBank
- call Function10208e
- call Function102068
- call CloseSRAM
- xor a
- ret
-
-.asm_1020e8
- scf
- ret
-; 1020ea
-
-Function1020ea: ; 1020ea
- ld hl, wdc41
- bit 4, [hl]
- jr z, .quit
- ld hl, wdc41
- bit 2, [hl]
- jr nz, .quit
- call Function10218d
- ld hl, wc608
- bit 4, [hl]
- jr z, .quit
- ld hl, wc608
- bit 2, [hl]
- jr nz, .quit
- call Function102112
- jr z, .quit
- and a
- ret
-
-.quit
- scf
- ret
-; 102112
-
-Function102112: ; 102112
- ld a, $04
- call GetSRAMBank
- ld hl, $a041
- ld c, 40
-.outer_loop
- push hl
- ld de, $c60f
- ld b, 31
-.inner_loop
- ld a, [de]
- cp [hl]
- jr nz, .not_matching
- inc de
- inc hl
- dec b
- jr nz, .inner_loop
- pop hl
- xor a
- jr .done
-
-.not_matching
- pop hl
- ld de, 37
- add hl, de
- dec c
- jr nz, .outer_loop
- ld a, $01
- and a
- jr .done ; useless jr
-
-.done
- push af
- call CloseSRAM
- pop af
- ret
-; 102142
-
-Function102142: ; 102142
- call Function10218d
- call Function102180
- ld hl, UnknownText_0x1021d1
- call MenuTextBox
- ld de, SFX_LEVEL_UP
- call PlaySFX
- call JoyWaitAorB
- call ExitMenu
- call Function10219f
- ld hl, UnknownText_0x1021d6
- call MenuTextBox
- call YesNoBox
- call ExitMenu
- jr c, .asm_10217c
- call Function1021b8
- jr c, .asm_10217c
- call Function10218d
- call Function102180
- ld hl, UnknownText_0x1021db
- call PrintText
-
-.asm_10217c
- call Function1013d6
- ret
-; 102180
-
-Function102180: ; 102180
- ld hl, wc608 + 1
- ld de, StringBuffer2
- ld bc, 11
- call CopyBytes
- ret
-; 10218d
-
-Function10218d: ; 10218d
- ld hl, w5_dc00
- ld de, wc608
- ld bc, $26
- ld a, $05
- call FarCopyWRAM
- ld de, wc608 + 1 ; useless
- ret
-; 10219f
-
-Function10219f: ; 10219f
- call FadeToMenu
- call Function10218d
- ld de, wc608 + 1
- callba Function8ac4e
- call JoyWaitAorB
- call PlayClickSFX
- call Function1013aa
- ret
-; 1021b8
-
-Function1021b8: ; 1021b8
- call FadeToMenu
- call Function10218d
- ld de, wPlayerMoveStruct
- callba Function8ac70
- ld a, c
- ld [StringBuffer1], a
- push af
- call Function1013aa
- pop af
- ret
-; 1021d1
-
-UnknownText_0x1021d1: ; 1021d1
- text_jump UnknownText_0x1bd19a
- db "@"
-
-UnknownText_0x1021d6: ; 1021d1
- text_jump UnknownText_0x1bd1ba
- db "@"
-
-UnknownText_0x1021db: ; 1021d1
- text_jump UnknownText_0x1bd1dd
- db "@"
-; 1021e0
-
-Function1021e0: ; 1021e0
- call MenuTextBox
- call JoyWaitAorB
- call ExitMenu
- ret
-; 1021ea
-
-UnknownText_0x1021ea: ; 1021ea
- text_jump UnknownText_0x1bd201
- db "@"
-
-UnknownText_0x1021ef:
- text_jump UnknownText_0x1bd211
- db "@"
-
-UnknownText_0x1021f4:
- text_jump UnknownText_0x1bd223
- db "@"
-; 1021f9
-
-Function1021f9: ; 1021f9
- call Function102233
- ld a, $0 ; Function10234b
- ld [wcd49], a
- ld hl, wcd29
- bit 3, [hl]
- res 3, [hl]
- jr z, .asm_10220f
- ld a, $1 ; Function102361
- ld [wcd49], a
-
-.asm_10220f
- call Function1022ca
- ld a, [wcd49]
- ld hl, Jumptable_1022f5
- rst JumpTable
- call Function102241
- call Function1022d0
- jr c, .asm_102231
- ld a, [wcd49]
- bit 7, a
- jr z, .asm_10220f
- xor a
- ld hl, wcd29
- bit 3, [hl]
- ret z
- scf
- ret
-
-.asm_102231
- xor a
- ret
-; 102233
-
-Function102233: ; 102233
- ld hl, wcd49
- ld bc, 10
- xor a
- call ByteFill
- call Function10304f
- ret
-; 102241
-
-Function102241: ; 102241
- call Function10226a
- call Function102274
- call Function10224b
- ret
-; 10224b
-
-Function10224b: ; 10224b
- ld hl, wcd4b
- bit 1, [hl]
- jr nz, .asm_10225e
- bit 2, [hl]
- jr nz, .asm_10225e
- call DelayFrame
- call DelayFrame
- xor a
- ret
-
-.asm_10225e
- res 1, [hl]
- res 2, [hl]
- callba Mobile_ReloadMapPart
- scf
- ret
-; 10226a
-
-Function10226a: ; 10226a
- ld hl, wcd4b
- bit 0, [hl]
- ret z
- call Function10305d
- ret
-; 102274
-
-Function102274: ; 102274
- ld hl, wcd4b
- bit 3, [hl]
- ret z
- res 3, [hl]
- ld de, 8
- call PlaySFX
- ret
-; 102283
-
-Function102283: ; 102283
- ld a, $01
- ld [AttrMapEnd], a
- ld hl, wcd4b
- set 0, [hl]
- ret
-; 10228e
-
-Function10228e: ; 10228e
- xor a
- ld [AttrMapEnd], a
- ld hl, wcd4b
- res 0, [hl]
- ret
-; 102298
-
-Function102298: ; 102298
- ld a, e
- cp $02
- ret nz
- ld hl, wcd4b
- bit 6, [hl]
- jr z, .asm_1022b6
- ld hl, wcd4b
- bit 7, [hl]
- ld hl, wcd4b
- set 7, [hl]
- ret nz
- ld de, SFX_ELEVATOR_END
- call PlaySFX
- jr .asm_1022c1
-
-.asm_1022b6
- ld hl, wcd4b
- bit 7, [hl]
- ld hl, wcd4b
- res 7, [hl]
- ret z
-
-.asm_1022c1
- call Function10304f
- ld a, $01
- ld [AttrMapEnd], a
- ret
-; 1022ca
-
-Function1022ca: ; 1022ca
- ld a, 30
- ld [OverworldDelay], a
- ret
-; 1022d0
-
-Function1022d0: ; 1022d0
- callba Function10032e
- ld a, [wcd2b]
- and a
- jr nz, .asm_1022f3
- call Function102298
- ld a, [OverworldDelay]
- ld c, a
- ld a, 30
- sub c
- ld c, a
- ld b, $03
- callba AdvanceMobileInactivityTimerAndCheckExpired
- jr c, .asm_1022f3
- xor a
- ret
-
-.asm_1022f3
- scf
- ret
-; 1022f5
-
-Jumptable_1022f5: ; 1022f5
- dw Function10234b ; 00
- dw Function102361 ; 01
- dw Function10236e ; 02
- dw Function102387 ; 03
- dw Function1023a1 ; 04
- dw Function1025c7 ; 05
- dw Function1025dc ; 06
- dw Function1024f6 ; 07
- dw Function10250c ; 08
- dw Function1024a8 ; 09
- dw Function102591 ; 0a
- dw Function1024a8 ; 0b
- dw Function1025b0 ; 0c
- dw Function1025bd ; 0d
- dw Function102814 ; 0e
- dw Function10283c ; 0f
- dw Function102862 ; 10
- dw Function10286f ; 11
- dw Function1024a8 ; 12
- dw Function1028a5 ; 13
- dw Function1028ab ; 14
- dw Function1023b5 ; 15
- dw Function1023c6 ; 16
- dw Function1024af ; 17
- dw Function102416 ; 18
- dw Function102423 ; 19
- dw Function10244b ; 1a
- dw Function1024af ; 1b
- dw Function10246a ; 1c
- dw Function102652 ; 1d
- dw Function10266b ; 1e
- dw Function1025e9 ; 1f
- dw Function1025ff ; 20
- dw Function102738 ; 21
- dw Function102754 ; 22
- dw Function1026b7 ; 23
- dw Function1026c8 ; 24
- dw Function1028bf ; 25
- dw Function1028c6 ; 26
- dw Function1028d3 ; 27
- dw Function1028da ; 28
- dw Function1024a8 ; 29
- dw Function10248d ; 2a
-; 10234b
-
-Function10234b: ; 10234b
- call Function102d9a
- call Function102dd3
- call Function102dec
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102361
-
-Function102361: ; 102361
- ld a, $cc
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10236e
-
-Function10236e: ; 10236e
- call Function1028fc
- ret nc
- ld a, [wcd51]
- cp $cc
- jr z, .asm_10237f
- ld a, $f2
- ld [wcd2b], a
- ret
-
-.asm_10237f
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102387
-
-Function102387: ; 102387
- ld hl, wcd4b
- set 6, [hl]
- xor a
- ld [wdc5f], a
- ld de, MUSIC_ROUTE_30
- call PlayMusic
- call Function102d9a
- call Function102dd3
- ld a, $01
- ld [wMenuCursorY], a
-
-Function1023a1: ; 1023a1
- call Function102283
- call Function102db7
- call Function102dec
- ld hl, wcd4b
- set 1, [hl]
- ld a, $1d
- ld [wcd49], a
- ret
-; 1023b5
-
-Function1023b5: ; 1023b5
- call Function10228e
- call Function102a3b
- call Function102b12
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1023c6
-
-Function1023c6: ; 1023c6
- call Function102c48
- call Function102c87
- ld a, [wcd4c]
- dec a
- ld [CurPartyMon], a
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba RemoveMonFromPartyOrBox
- ld hl, PartyCount
- inc [hl]
- ld a, [hli]
- ld c, a
- ld b, 0
- add hl, bc
- ld [hl], $ff
- ld a, [PartyCount]
- ld [wcd4c], a
- call Function102c07
- call Function102d48
- call Function102b32
- call Function102f50
- ld hl, wcd4b
- set 1, [hl]
- ld a, $14
- ld [wcd4e], a
- ld a, 0
- ld [wcd4f], a
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102416
-
-Function102416: ; 102416
- ld a, $aa
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 102423
-
-Function102423: ; 102423
- call Function102921
- ret nc
- callba SaveAfterLinkTrade
- callba TrainerRankings_Trades
- callba BackupMobileEventIndex
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10244b
-
-Function10244b: ; 10244b
- call Function102f32
- ld hl, wcd4b
- set 1, [hl]
- ld a, $19
- ld [wcd4e], a
- ld a, 0
- ld [wcd4f], a
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10246a
-
-Function10246a: ; 10246a
- call Function102d9a
- ld hl, wcd29
- set 3, [hl]
- call Function102e07
- ld hl, wcd4b
- set 1, [hl]
- ld a, $2a
- ld [wcd49], a
- ret
-; 102480
-
-Function102480: ; 102480
- ld c, $32
- call DelayFrames
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10248d
-
-Function10248d: ; 10248d
- ld a, [wcd49]
- set 7, a
- ld [wcd49], a
- ret
-; 102496
-
-Function102496: ; 102496
- ld hl, wcd4e
- dec [hl]
- ret nz
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1024a8
-
-Function1024a8: ; 1024a8
- callba Function1009f3
- ret c
-
-Function1024af: ; 1024af
- call GetJoypad
- ld a, [wcd4a]
- ld hl, Jumptable_1024ba
- rst JumpTable
- ret
-; 1024ba
-
-Jumptable_1024ba: ; 1024ba
- dw Function1024c0
- dw Function1024cb
- dw Function1024de
-; 1024c0
-
-Function1024c0: ; 1024c0
- ld hl, wcd4e
- inc [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
-
-Function1024cb: ; 1024cb
- ld hl, wcd4e
- dec [hl]
- ret nz
- ld a, [wcd4f]
- inc a
- ld [wcd4e], a
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
-
-Function1024de: ; 1024de
- ld hl, wcd4e
- dec [hl]
- jr z, .asm_1024e9
- ld a, [hJoyPressed]
- and A_BUTTON | B_BUTTON
- ret z
-
-.asm_1024e9
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1024f6
-
-Function1024f6: ; 1024f6
- call PlaceHollowCursor
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd4c]
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10250c
-
-Function10250c: ; 10250c
- call Function1028fc
- ret nc
- ld a, [wcd51]
- cp $0f
- jr z, .asm_10254b
- and a
- jr z, .asm_102572
- cp $aa
- jr z, .asm_102572
- cp $07
- jr nc, .asm_102572
- ld [wcd4d], a
- dec a
- ld [wd003], a
- ld a, [wcd4c]
- dec a
- ld [wd002], a
- call Function102b9c
- call Function102bdc
- jr c, .asm_10256d
- callba Functionfb5dd
- jr c, .asm_102568
- ld hl, wcd4b
- set 1, [hl]
- ld a, $0e
- ld [wcd49], a
- ret
-
-.asm_10254b
- call Function103021
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, $1e
- ld [wcd4e], a
- ld a, $1e
- ld [wcd4f], a
- ld a, $29
- ld [wcd49], a
- ret
-
-.asm_102568
- call Function102ff5
- jr .asm_102577
-
-.asm_10256d
- call Function102f85
- jr .asm_102577
-
-.asm_102572
- call Function102fce
- jr .asm_102577
-
-.asm_102577
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, $1e
- ld [wcd4e], a
- ld a, $3c
- ld [wcd4f], a
- ld a, $09
- ld [wcd49], a
- ret
-; 102591
-
-Function102591: ; 102591
- call Function102ee7
- ld hl, wcd4b
- set 1, [hl]
- ld a, 0
- ld [wcd4a], a
- ld a, $1e
- ld [wcd4e], a
- ld a, $3c
- ld [wcd4f], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025b0
-
-Function1025b0: ; 1025b0
- ld a, $09
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025bd
-
-Function1025bd: ; 1025bd
- call Function1028fc
- ret nc
- ld a, $04
- ld [wcd49], a
- ret
-; 1025c7
-
-Function1025c7: ; 1025c7
- call Function102f6d
- ld hl, wcd4b
- set 1, [hl]
- ld a, $0f
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025dc
-
-Function1025dc: ; 1025dc
- call Function1028fc
- ret nc
- ld a, [wcd49]
- set 7, a
- ld [wcd49], a
- ret
-; 1025e9
-
-Function1025e9: ; 1025e9
- nop
- ld hl, wcd4b
- set 6, [hl]
- call Function102b4e
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1025ff
-
-Function1025ff: ; 1025ff
- ld hl, wcd4b
- set 2, [hl]
- callba Function1009f3
- ret c
- callba MobileMenuJoypad
- ld a, [wMenuJoypadFilter]
- and c
- ret z
- bit A_BUTTON_F, c
- jr nz, .a_button
- bit D_UP_F, c
- jr nz, .d_up
- bit D_DOWN_F, c
- jr nz, .d_down
- ret
-
-.a_button
- ld hl, wcd4b
- set 3, [hl]
- ld a, $27 ; Function1028d3
- ld [wcd49], a
- ret
-
-.d_up
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [OTPartyCount]
- cp b
- ret nz
- call HideCursor
- ld a, [PartyCount]
- ld [wMenuCursorY], a
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-
-.d_down
- ld a, [wMenuCursorY]
- cp $01
- ret nz
- ld a, $23 ; Function1026b7
- ld [wcd49], a
- ret
-; 102652
-
-Function102652: ; 102652
- nop
- ld hl, wcd4b
- set 6, [hl]
- nop
- call Function102b7b
- nop
- ld hl, wcd4b
- set 1, [hl]
- nop
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10266b
-
-Function10266b: ; 10266b
- ld hl, wcd4b
- set 2, [hl]
- callba Function1009f3
- ret c
- callba MobileMenuJoypad
- ld a, [wMenuJoypadFilter]
- and c
- ret z
- bit A_BUTTON_F, c
- jr nz, .a_button
- bit D_DOWN_F, c
- jr nz, .d_down
- bit D_UP_F, c
- jr nz, .d_up
- ret
-
-.a_button
- ld hl, wcd4b
- set 3, [hl]
- ld a, $21 ; Function102738
- ld [wcd49], a
- ret
-
-.d_down
- ld a, [wMenuCursorY]
- dec a
- ret nz
- call HideCursor
- ld a, $1f ; Function1025e9
- ld [wcd49], a
- ret
-
-.d_up
- ld a, [wMenuCursorY]
- ld b, a
- ld a, [PartyCount]
- cp b
- ret nz
- ld a, $23 ; Function1026b7
- ld [wcd49], a
- ret
-; 1026b7
-
-Function1026b7: ; 1026b7
- ld hl, wcd4b
- set 6, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, 0
- ld [wcd4a], a
-
-Function1026c8: ; 1026c8
- call GetJoypad
- callba Function1009f3
- ret c
- ld a, [wcd4a]
- ld hl, Jumptable_1026da
- rst JumpTable
- ret
-; 1026da
-
-Jumptable_1026da: ; 1026da
- dw Function1026de
- dw Function1026f3
-; 1026de
-
-Function1026de: ; 1026de
- call HideCursor
- hlcoord 9, 17
- ld [hl], $ed
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- ld hl, wcd4b
- set 1, [hl]
- ret
-; 1026f3
-
-Function1026f3: ; 1026f3
- ld a, [hJoyPressed]
- bit A_BUTTON_F, a
- jr nz, .asm_102723
- bit D_UP_F, a
- jr nz, .asm_102712
- bit D_DOWN_F, a
- jr nz, .asm_102702
- ret
-
-.asm_102702
- hlcoord 9, 17
- ld [hl], " "
- ld a, $01
- ld [wMenuCursorY], a
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-
-.asm_102712
- hlcoord 9, 17
- ld [hl], " "
- ld a, [OTPartyCount]
- ld [wMenuCursorY], a
- ld a, $1f ; Function1025e9
- ld [wcd49], a
- ret
-
-.asm_102723
- hlcoord 9, 17
- ld [hl], "▷"
- ld hl, wcd4b
- set 3, [hl]
- ld hl, wcd4b
- set 2, [hl]
- ld a, $5 ; Function1025c7
- ld [wcd49], a
- ret
-; 102738
-
-Function102738: ; 102738
- ld hl, wcd4b
- set 6, [hl]
- call PlaceHollowCursor
- call Function1027eb
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, 0
- ld [wcd4a], a
-
-Function102754: ; 102754
- call GetJoypad
- callba Function1009f3
- ret c
- ld a, [wcd4a]
- ld hl, Jumptable_102766
- rst JumpTable
- ret
-; 102766
-
-Jumptable_102766: ; 102766
- dw Function102770
- dw Function102775
- dw Function10278c
- dw Function1027a0
- dw Function1027b7
-; 102770
-
-Function102770: ; 102770
- ld a, $01
- ld [wcd4a], a
-
-Function102775: ; 102775
- hlcoord 1, 16
- ld [hl], "▶"
- hlcoord 11, 16
- ld [hl], " "
- ld hl, wcd4b
- set 2, [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- ret
-; 10278c
-
-Function10278c: ; 10278c
- ld a, [hJoyPressed]
- bit A_BUTTON_F, a
- jr nz, asm_1027c6
- bit B_BUTTON_F, a
- jr nz, asm_1027e2
- bit D_RIGHT_F, a
- jr nz, .asm_10279b
- ret
-
-.asm_10279b
- ld a, $03
- ld [wcd4a], a
-Function1027a0: ; 1027a0
- hlcoord 1, 16
- ld [hl], " "
- hlcoord 11, 16
- ld [hl], "▶"
- ld hl, wcd4b
- set 2, [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- ret
-
-Function1027b7: ; 1027b7
- ld a, [hJoyPressed]
- bit A_BUTTON_F, a
- jr nz, asm_1027d1
- bit B_BUTTON_F, a
- jr nz, asm_1027e2
- bit D_LEFT_F, a
- jr nz, Function102770
- ret
-
-asm_1027c6:
- ld hl, wcd4b
- set 3, [hl]
- ld a, $25 ; Function1028bf
- ld [wcd49], a
- ret
-
-asm_1027d1:
- ld hl, wcd4b
- set 3, [hl]
- ld a, [wMenuCursorY]
- ld [wcd4c], a
- ld a, $7 ; Function1024f6
- ld [wcd49], a
- ret
-
-asm_1027e2:
- call Function102db7
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-; 1027eb
-
-Function1027eb: ; 1027eb
- hlcoord 0, 14
- ld b, 2
- ld c, 18
- ld d, h
- ld e, l
- callba _LinkTextbox
- ld de, .Stats_Trade
- hlcoord 2, 16
- call PlaceString
- ret
-; 102804
-
-.Stats_Trade: ; 102804
- db "STATS TRADE@"
-; 102814
-
-Function102814: ; 102814
- ld a, [wMenuCursorY]
- ld [wcd52], a
- ld a, [wcd4c]
- dec a
- ld [wd002], a
- ld a, [wcd4d]
- dec a
- ld [wd003], a
- call Function102ea8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, 0
- ld [wcd4a], a
- ld hl, wcd4b
- set 1, [hl]
-
-Function10283c: ; 10283c
- ld hl, wcd4b
- set 2, [hl]
- call Function1029c3
- ret z
- jr c, .asm_102852
- ld a, $10 ; Function102862
- ld [wcd49], a
- ld hl, wcd4b
- set 1, [hl]
- ret
-
-.asm_102852
- ld a, $14 ; Function1028ab
- ld [wcd49], a
- ld hl, wcd4b
- set 3, [hl]
- ld hl, wcd4b
- set 1, [hl]
- ret
-; 102862
-
-Function102862: ; 102862
- ld a, $08
- call Function1028e8
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 10286f
-
-Function10286f: ; 10286f
- call Function1028fc
- ret nc
- ld a, [wcd52]
- ld [wMenuCursorY], a
- ld a, [wcd51]
- cp $08
- jr nz, .asm_102886
- ld a, $15 ; Function1023b5
- ld [wcd49], a
- ret
-
-.asm_102886
- call Function102ee7
- ld hl, wcd4b
- set 1, [hl]
- ld a, $1e
- ld [wcd4e], a
- ld a, $3c
- ld [wcd4f], a
- ld a, 0
- ld [wcd4a], a
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ret
-; 1028a5
-
-Function1028a5: ; 1028a5
- ld a, $4 ; Function1023a1
- ld [wcd49], a
- ret
-; 1028ab
-
-Function1028ab: ; 1028ab
- ld a, [wcd52]
- ld [wMenuCursorY], a
- call Function102f15
- ld hl, wcd4b
- set 1, [hl]
- ld a, $c ; Function1025b0
- ld [wcd49], a
- ret
-; 1028bf
-
-Function1028bf: ; 1028bf
- ld a, [wcd49]
- inc a
- ld [wcd49], a
-
-Function1028c6: ; 1028c6
- xor a
- ld [MonType], a
- call Function102bac
- ld a, $1d ; Function102652
- ld [wcd49], a
- ret
-; 1028d3
-
-Function1028d3: ; 1028d3
- ld a, [wcd49]
- inc a
- ld [wcd49], a
-
-Function1028da: ; 1028da
- ld a, OTPARTYMON
- ld [MonType], a
- call Function102bac
- ld a, $1f ; Function1025e9
- ld [wcd49], a
- ret
-; 1028e8
-
-Function1028e8: ; 1028e8
- ld hl, wcd4b
- res 6, [hl]
- ld [wcd50], a
- callba StartMobileInactivityTimer
- ld a, 0
- ld [wcd4a], a
- ret
-; 1028fc
-
-Function1028fc: ; 1028fc
- call GetJoypad
- callba Function1009f3
- jr nc, .asm_102909
- and a
- ret
-
-.asm_102909
- ld a, [wcd4a]
- ld hl, Jumptable_102917
- rst JumpTable
- ret nc
- ld a, 0
- ld [wcd4a], a
- ret
-; 102917
-
-Jumptable_102917: ; 102917
- dw Function102933
- dw Function10294f
- dw Function10295d
- dw Function10296e
- dw Function102996
-; 102921
-
-Function102921: ; 102921
- ld a, [wcd4a]
- ld hl, Jumptable_10292f
- rst JumpTable
- ret nc
- ld a, 0
- ld [wcd4a], a
- ret
-; 10292f
-
-Jumptable_10292f: ; 10292f
- dw Function10295d
- dw Function102984
-; 102933
-
-Function102933: ; 102933
- ld hl, MenuDataHeader_1029bb
- call LoadMenuDataHeader
- call Function102e07
- ld a, $32
- ld [TextDelayFrames], a
- ld hl, wcd4b
- set 1, [hl]
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 10294f
-
-Function10294f: ; 10294f
- ld a, [TextDelayFrames]
- and a
- ret nz
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 10295d
-
-Function10295d: ; 10295d
- call Function10299e
- ld a, 0
- ld [wcd27], a
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 10296e
-
-Function10296e: ; 10296e
- callba Function100382
- and a
- ld a, [wcd27]
- bit 7, a
- ret z
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- and a
- ret
-; 102984
-
-Function102984: ; 102984
- callba Function100382
- and a
- ld a, [wcd27]
- bit 7, a
- ret z
- call Function1029af
- scf
- ret
-; 102996
-
-Function102996: ; 102996
- call Function1029af
- call ExitMenu
- scf
- ret
-; 10299e
-
-Function10299e: ; 10299e
- ld a, $01
- ld [wccb4], a
- ld a, [wcd50]
- ld [wccb5], a
- ld a, $aa
- ld [wcd51], a
- ret
-; 1029af
-
-Function1029af: ; 1029af
- ld hl, wcd4b
- res 7, [hl]
- ld a, [wcc61]
- ld [wcd51], a
- ret
-; 1029bb
-
-MenuDataHeader_1029bb: ; 1029bb
- db $40 ; flags
- db 10, 3 ; start coords
- db 12, 15 ; end coords
- dw NULL
- db 1 ; default option
-; 1029c3
-
-Function1029c3: ; 1029c3
- ld a, [wcd4a]
- ld hl, Jumptable_1029cb
- rst JumpTable
- ret
-; 1029cb
-
-Jumptable_1029cb: ; 1029cb
- dw Function1029cf
- dw Function1029fe
-; 1029cf
-
-Function1029cf: ; 1029cf
- call LoadStandardMenuDataHeader
- hlcoord 10, 7
- ld b, 3
- ld c, 8
- ld d, h
- ld e, l
- callba _LinkTextbox
- ld de, String_102a26
- hlcoord 12, 8
- call PlaceString
- ld hl, wcd4b
- set 1, [hl]
- ld de, MenuData3_102a33
- call SetMenuAttributes
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- xor a
- ret
-; 1029fe
-
-Function1029fe: ; 1029fe
- callba Function1009f3
- ret c
- callba MobileMenuJoypad
- ld a, c
- ld hl, wMenuJoypadFilter
- and [hl]
- ret z
- push af
- call ExitMenu
- pop af
- ld a, [wMenuCursorY]
- cp $01
- jr nz, .asm_102a21
- ld a, $01
- and a
- ret
-
-.asm_102a21
- ld a, $01
- and a
- scf
- ret
-; 102a26
-
-String_102a26: ; 102a26
- db "TRADE"
- next "CANCEL"
- db "@"
-; 102a33
-
-MenuData3_102a33:
- db 8, 11
- db 2, 1
- db $80, $00
- dn 2, 0
- db A_BUTTON
-
-Function102a3b: ; 102a3b
- ld a, [wcd30]
- ld [wc74e], a
- ld hl, PlayerName
- ld de, wPlayerTrademonSenderName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd4c]
- dec a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [wPlayerTrademonSpecies], a
- ld a, [wcd4c]
- dec a
- ld hl, PartyMonOT
- call SkipNames
- ld de, wPlayerTrademonOTName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd4c]
- dec a
- ld hl, PartyMon1ID
- call GetPartyLocation
- ld a, [hli]
- ld [wPlayerTrademonID], a
- ld a, [hl]
- ld [wPlayerTrademonID + 1], a
- ld a, [wcd4c]
- dec a
- ld hl, PartyMon1DVs
- call GetPartyLocation
- ld a, [hli]
- ld [wPlayerTrademonDVs], a
- ld a, [hl]
- ld [wPlayerTrademonDVs + 1], a
- ld a, [wcd4c]
- dec a
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wPlayerTrademonCaughtData], a
- ld hl, OTPlayerName
- ld de, wOTTrademonSenderName
- ld bc, NAME_LENGTH
- call CopyBytes
-
- ld a, [wcd4d]
- dec a
- ld c, a
- ld b, 0
- ld hl, OTPartySpecies
- add hl, bc
- ld a, [hl]
- ld [wOTTrademonSpecies], a
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMonOT
- call SkipNames
- ld de, wOTTrademonOTName
- ld bc, NAME_LENGTH
- call CopyBytes
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1ID
- call GetPartyLocation
- ld a, [hli]
- ld [wOTTrademonID], a
- ld a, [hl]
- ld [wOTTrademonID + 1], a
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1DVs
- call GetPartyLocation
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- ret
-; 102b12
-
-Function102b12: ; 102b12
- ld c, 100
- call DelayFrames
- call Function102d9a
- call LoadFontsBattleExtra
- ld a, [wcd2f]
- and a
- jr nz, .asm_102b2b
- callba Function108026
- jr .asm_102b31
-
-.asm_102b2b
- callba Function10802a
-
-.asm_102b31
- ret
-; 102b32
-
-Function102b32: ; 102b32
- ld a, [wcd4c]
- dec a
- ld [CurPartyMon], a
- ld a, $01
- ld [wForceEvolution], a
- callba EvolvePokemon
- call Function102d9a
- call Function102dd3
- call Function102dec
- ret
-; 102b4e
-
-Function102b4e: ; 102b4e
- ld a, OTPARTYMON
- ld [MonType], a
- ld a, [wMenuCursorY]
- push af
- ld de, Unknown_102b73
- call SetMenuAttributes
- pop af
- ld [wMenuCursorY], a
- ld a, [OTPartyCount]
- ld [w2DMenuNumRows], a
- ret
-; 102b68
-
-Function102b68: ; 102b68 ; unreferenced
- xor a
- ld hl, wWindowStackPointer
- ld bc, $10
- call ByteFill
- ret
-; 102b73
-
-Unknown_102b73:
- db 9, 6
- db 255, 1
- db $a0, $00
- dn 1, 0
- db D_UP | D_DOWN | A_BUTTON
-
-Function102b7b: ; 102b7b
- xor a
- ld [MonType], a
- ld a, [wMenuCursorY]
- push af
- ld de, Unknown_102b94
- call SetMenuAttributes
- pop af
- ld [wMenuCursorY], a
- ld a, [PartyCount]
- ld [w2DMenuNumRows], a
- ret
-; 102b94
-
-Unknown_102b94:
- db 1, 6
- db 255, 1
- db $a0, $00
- dn 1, 0
- db D_UP | D_DOWN | A_BUTTON
-
-Function102b9c: ; 102b9c
- ld a, [wcd4d]
- dec a
- hlcoord 6, 9
- ld bc, $14
- call AddNTimes
- ld [hl], $ec
- ret
-; 102bac
-
-Function102bac: ; 102bac
- ld a, [wMenuCursorY]
- dec a
- ld [CurPartyMon], a
- call LowVolume
- call ClearSprites
- callba _MobileStatsScreenInit
- ld a, [CurPartyMon]
- inc a
- ld [wMenuCursorY], a
- call Function102d9a
- call ClearPalettes
- call DelayFrame
- call MaxVolume
- call Function102dd3
- call Function102dec
- call Function102db7
- ret
-; 102bdc
-
-Function102bdc: ; 102bdc
- ld a, [wcd4d]
- dec a
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- push hl
- ld a, [wcd4d]
- ld c, a
- ld b, 0
- ld hl, OTPartyCount
- add hl, bc
- ld a, [hl]
- pop hl
- cp EGG
- jr z, .asm_102bfa
- cp [hl]
- jr nz, .asm_102c05
-
-.asm_102bfa
- ld bc, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MAX_LEVEL + 1
- jr nc, .asm_102c05
- and a
- ret
-
-.asm_102c05
- scf
- ret
-; 102c07
-
-Function102c07: ; 102c07
- call Function102c14
- call Function102c3b
- call Function102c21
- call Function102c2e
- ret
-; 102c14
-
-Function102c14: ; 102c14
- ld hl, PartySpecies
- ld de, OTPartySpecies
- ld bc, 1
- call Function102c71
- ret
-; 102c21
-
-Function102c21: ; 102c21
- ld hl, PartyMonNicknames
- ld de, OTPartyMonNicknames
- ld bc, 11
- call Function102c71
- ret
-; 102c2e
-
-Function102c2e: ; 102c2e
- ld hl, PartyMonOT
- ld de, OTPartyMonOT
- ld bc, 11
- call Function102c71
- ret
-; 102c3b
-
-Function102c3b: ; 102c3b
- ld hl, PartyMon1
- ld de, OTPartyMon1
- ld bc, $30
- call Function102c71
- ret
-; 102c48
-
-Function102c48: ; 102c48
- callba Function10165a
- ld a, 0
- call GetSRAMBank
- ld hl, $a600
- ld de, wc608
- ld bc, $2f
- call Function102c71
- call CloseSRAM
- ld hl, wc608
- ld de, w5_da00
- ld bc, $1e0
- ld a, $05
- call FarCopyWRAM
- ret
-; 102c71
-
-Function102c71: ; 102c71
- ld a, [wcd4c]
- dec a
- call AddNTimes
- push hl
- ld h, d
- ld l, e
- ld a, [wcd4d]
- dec a
- call AddNTimes
- pop de
- call SwapBytes
- ret
-; 102c87
-
-Function102c87: ; 102c87
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcd4c]
- ld [wJumptableIndex], a
- ld a, [PartyCount]
- ld [wcf64], a
- ld a, 0
- ld hl, $a600
- ld de, wc608
- ld bc, $11a
- call Function102d3e
- call Function102cee
- ld a, 0
- ld hl, wc608
- ld de, $a600
- ld bc, $11a
- call Function102d3e
- ld a, [wcd4d]
- ld [wJumptableIndex], a
- ld a, [OTPartyCount]
- ld [wcf64], a
- ld a, $05
- ld hl, w5_da00
- ld de, wc608
- ld bc, $11a
- call FarCopyWRAM
- call Function102cee
- ld a, $05
- ld hl, wc608
- ld de, w5_da00
- ld bc, $11a
- call FarCopyWRAM
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- ret
-; 102cee
-
-Function102cee: ; 102cee
- ld a, [wJumptableIndex]
- dec a
- call Function102d34
- ld de, wd002
- ld bc, $2f
- call CopyBytes
- ld a, [wJumptableIndex]
- ld c, a
- ld a, $06
- sub c
- ret z
- ld bc, $2f
- ld hl, 0
- call AddNTimes
- push hl
- ld a, [wJumptableIndex]
- dec a
- call Function102d34
- ld d, h
- ld e, l
- ld hl, $2f
- add hl, de
- pop bc
- call CopyBytes
- ld a, [wcf64]
- dec a
- call Function102d34
- ld d, h
- ld e, l
- ld hl, wd002
- ld bc, $2f
- call CopyBytes
- ret
-; 102d34
-
-Function102d34: ; 102d34
- ld hl, wc608
- ld bc, $2f
- call AddNTimes
- ret
-; 102d3e
-
-Function102d3e: ; 102d3e
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ret
-; 102d48
-
-Function102d48: ; 102d48
- ld a, [wcd4c]
- ld e, a
- ld d, 0
- ld hl, PartyCount
- add hl, de
- ld a, [hl]
- ld [wd265], a
- cp EGG
- jr z, .asm_102d6d
- dec a
- call SetSeenAndCaughtMon
- ld a, [wcd4c]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Happiness
- call AddNTimes
- ld [hl], BASE_HAPPINESS
-
-.asm_102d6d
- ld a, [wd265]
- cp UNOWN
- jr nz, .asm_102d98
- ld a, [wcd4c]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1DVs
- call AddNTimes
- predef GetUnownLetter
- callba UpdateUnownDex
- ld a, [wFirstUnownSeen]
- and a
- jr nz, .asm_102d98
- ld a, [UnownLetter]
- ld [wFirstUnownSeen], a
-
-.asm_102d98
- and a
- ret
-; 102d9a
-
-Function102d9a: ; 102d9a
- ld a, " "
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ld a, $07
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ret
-; 102db7
-
-Function102db7: ; 102db7
- call Function102e4f
- call Function102e3e
- ld hl, wcd4b
- set 1, [hl]
- ret
-; 102dc3
-
-Function102dc3: ; 102dc3
- hlcoord 0, 12
- ld b, 4
- ld c, 18
- ld d, h
- ld e, l
- callba _LinkTextbox
- ret
-; 102dd3
-
-Function102dd3: ; 102dd3
- call DisableLCD
- ld de, GFX_1032a2
- ld hl, VTiles0
- lb bc, BANK(GFX_1032a2), 4
- call Get2bpp
- callba __LoadTradeScreenBorder
- call EnableLCD
- ret
-; 102dec
-
-Function102dec: ; 102dec
- ld hl, Palettes_1032e2
- ld de, UnknOBPals
- ld bc, 4 palettes
- ld a, $05
- call FarCopyWRAM
- callba Function49742
- call SetPalettes
- call DelayFrame
- ret
-; 102e07
-
-Function102e07: ; 102e07
- hlcoord 3, 10
- ld b, 1
- ld c, 11
- ld a, [wBattleMode]
- and a
- jr z, .link_battle
- call TextBox
- jr .okay
-
-.link_battle
-; this is idiotic
- hlcoord 3, 10
- ld b, 1
- ld c, 11
- ld d, h
- ld e, l
- callba _LinkTextbox
-
-.okay
- ld de, .waiting
- hlcoord 4, 11
- call PlaceString
- ret
-; 102e32
-
-.waiting ; 102e32
- db "Waiting...!@"
-; 102e3e
-
-Function102e3e: ; 102e3e
- ld de, .CANCEL
- hlcoord 10, 17
- call PlaceString
- ret
-; 102e48
-
-.CANCEL: ; 102e48
- db "CANCEL@"
-; 102e4f
-
-Function102e4f: ; 102e4f
- callba Function16d42e
- callba _InitMG_Mobile_LinkTradePalMap
- ld de, PlayerName
- hlcoord 4, 0
- call PlaceString
- ld a, $14
- ld [bc], a
- ld de, OTPlayerName
- hlcoord 4, 8
- call PlaceString
- ld a, $14
- ld [bc], a
- hlcoord 7, 1
- ld de, PartySpecies
- call .PlaceSpeciesNames
- hlcoord 7, 9
- ld de, OTPartySpecies
- call .PlaceSpeciesNames
- ret
-; 102e86
-
-.PlaceSpeciesNames: ; 102e86
- ld c, 0
-.count_loop
- ld a, [de]
- cp $ff
- ret z
- ld [wd265], a
- push bc
- push hl
- push de
- push hl
- ld a, c
- ld [hDividend], a
- call GetPokemonName
- pop hl
- call PlaceString
- pop de
- inc de
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- inc c
- jr .count_loop
-; 102ea8
-
-Function102ea8: ; 102ea8
- call Function102dc3
- ld a, [wcd4c]
- dec a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, StringBuffer2
- ld bc, 11
- call CopyBytes
- ld a, [wcd4d]
- dec a
- ld c, a
- ld b, 0
- ld hl, OTPartySpecies
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ld hl, UnknownText_0x102ee2
- call PrintTextBoxText
- ret
-; 102ee2
-
-UnknownText_0x102ee2: ; 102ee2
- text_jump UnknownText_0x1bd286
- db "@"
-
-Function102ee7: ; 102ee7
- call Function102dc3
- ld de, String_102ef4
- hlcoord 1, 14
- call PlaceString
- ret
-; 102ef4
-
-String_102ef4: ; 102ef4
- db "Too bad! The trade"
- next "was canceled!"
- db "@"
-; 102f15
-
-Function102f15: ; 102f15
- call Function102dc3
- ld de, .TooBadTheTradeWasCanceled
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f22
-
-.TooBadTheTradeWasCanceled: ; 102f22
- db "こうかんを キャンセルしました@"
-; 102f32
-
-Function102f32: ; 102f32
- call Function102dc3
- ld de, .TradeCompleted
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f3f
-
-.TradeCompleted: ; 102f3f
- db "Trade completed!@"
-; 102f50
-
-Function102f50: ; 102f50
- call Function102dc3
- ld de, .PleaseWait
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f5d
-
-.PleaseWait: ; 102f5d
- db "しょうしょう おまち ください@"
-; 102f6d
-
-Function102f6d: ; 102f6d
- call Function102dc3
- ld de, .Finished
- hlcoord 1, 14
- call PlaceString
- ret
-; 102f7a
-
-.Finished: ; 102f7a
- db "しゅうりょう します@"
-; 102f85
-
-Function102f85: ; 102f85
- ld a, [wd003]
- ld c, a
- ld b, 0
- ld hl, OTPartySpecies
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- call Function102dc3
- ld de, String_102fb2
- hlcoord 1, 14
- call PlaceString
- ld de, StringBuffer1
- hlcoord 13, 14
- call PlaceString
- ld de, String_102fcc
- call PlaceString
- ret
-; 102fb2
-
-String_102fb2: ; 102fb2
- db "あいてがわ<PKMN>えらんだ "
- next "いじょう<PKMN>あるようです!!"
- db "@"
-; 102fcc
-
-String_102fcc: ; 102fcc
- db "に@"
-; 102fce
-
-Function102fce: ; 102fce
- call Function102dc3
- ld de, String_102fdb
- hlcoord 1, 14
- call PlaceString
- ret
-; 102fdb
-
-String_102fdb: ; 102fdb
- db "あいてがわ%せんたくに"
- next "いじょう<PKMN>あるようです!!"
- done
-; 102ff5
-
-Function102ff5: ; 102ff5
- call Function102dc3
- ld de, String_103002
- hlcoord 1, 14
- call PlaceString
- ret
-; 103002
-
-String_103002: ; 103002
- db "その#を こうかんすると"
- next "せんとう できなく なっちゃうよ!"
- db "@"
-; 103021
-
-Function103021: ; 103021
- call Function102dc3
- ld de, String_10302e
- hlcoord 1, 14
- call PlaceString
- ret
-; 10302e
-
-String_10302e: ; 10302e
- db "あいてが ちゅうしを えらんだので"
- next "こうかんを ちゅうし します"
- db "@"
-; 10304f
-
-Function10304f: ; 10304f
- xor a
- ld [AttrMapEnd], a
- ld [wcf42], a
- ld [wcf44], a
- ld [wcf45], a
- ret
-; 10305d
-
-Function10305d: ; 10305d
- nop
- ld a, [AttrMapEnd]
- and a
- ret z
- call Function10307f
- ret c
- call Function103094
- call Function10306e
- ret
-; 10306e
-
-Function10306e: ; 10306e
- ld a, $01
- ld [hOAMUpdate], a
- call ClearSprites
- ld de, Sprites
- call Function1030cd
- xor a
- ld [hOAMUpdate], a
- ret
-; 10307f
-
-Function10307f: ; 10307f
- ld c, $02
- ld hl, wcd4b
- bit 7, [hl]
- jr z, .asm_10308a
- ld c, $01
-
-.asm_10308a
- ld hl, wcf45
- inc [hl]
- ld a, [hl]
- cp c
- ret c
- xor a
- ld [hl], a
- ret
-; 103094
-
-Function103094: ; 103094
- ld hl, wcd4b
- bit 7, [hl]
- jr nz, .asm_1030c0
- ld a, [wcf42]
- bit 7, a
- jr nz, .asm_1030b2
- ld a, [wcf44]
- inc a
- ld [wcf44], a
- cp $2c
- ret nz
- ld hl, wcf42
- set 7, [hl]
- ret
-
-.asm_1030b2
- ld a, [wcf44]
- dec a
- ld [wcf44], a
- ret nz
- ld hl, wcf42
- res 7, [hl]
- ret
-
-.asm_1030c0
- ld hl, wcf44
- ld a, [hl]
- and a
- jr z, .asm_1030ca
- dec a
- ld [hl], a
- ret nz
-
-.asm_1030ca
- ld [hl], $2c
- ret
-; 1030cd
-
-Function1030cd: ; 1030cd
- ld a, [wcf44]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- add hl, hl
- ld bc, Unknown_103112
- add hl, bc
- ld b, $30
- ld c, $08
-.asm_1030de
- push hl
- ld hl, wcd4b
- bit 7, [hl]
- pop hl
- ld a, 0
- jr z, .asm_1030eb
- ld a, $05
-.asm_1030eb
-
- add [hl]
- inc hl
- push hl
-
- add a
- add a
-
- add Unknown_10327a % $100
- ld l, a
- ld a, Unknown_10327a / $100
- adc 0
- ld h, a
-
- ld a, b
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, $0a
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop hl
- ld a, b
- add $08
- ld b, a
- dec c
- jr nz, .asm_1030de
- ret
-; 103112
-
-Unknown_103112: ; 103112
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $01, $00, $00, $00, $00, $00, $00, $00
- db $02, $01, $00, $00, $00, $00, $00, $00
- db $03, $02, $01, $00, $00, $00, $00, $00
- db $04, $03, $02, $01, $00, $00, $00, $00
- db $04, $04, $03, $02, $01, $00, $00, $00
- db $04, $04, $04, $03, $02, $01, $00, $00
- db $04, $04, $04, $04, $03, $02, $01, $00
- db $04, $04, $04, $04, $04, $03, $02, $01
- db $04, $04, $04, $04, $04, $04, $03, $02
- db $04, $04, $04, $04, $04, $04, $04, $03
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $04, $04, $04, $04, $04, $04, $04, $04
- db $03, $04, $04, $04, $04, $04, $04, $04
- db $02, $03, $04, $04, $04, $04, $04, $04
- db $01, $02, $03, $04, $04, $04, $04, $04
- db $00, $01, $02, $03, $04, $04, $04, $04
- db $00, $00, $01, $02, $03, $04, $04, $04
- db $00, $00, $00, $01, $02, $03, $04, $04
- db $00, $00, $00, $00, $01, $02, $03, $04
- db $00, $00, $00, $00, $00, $01, $02, $03
- db $00, $00, $00, $00, $00, $00, $01, $02
- db $00, $00, $00, $00, $00, $00, $00, $01
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $00, $00, $00, $00
-; 10327a
-
-Unknown_10327a: ; 10327a
- db $00, $00, $00, $00
- db $00, $00, $01, $00
- db $00, $00, $02, $00
- db $00, $00, $03, $00
- db $00, $00, $01, $01
- db $00, $00, $00, $00
- db $00, $00, $01, $02
- db $00, $00, $02, $02
- db $00, $00, $03, $02
- db $00, $00, $01, $03
-
-GFX_1032a2:
-INCBIN "gfx/unknown/1032a2.2bpp"
-
-Palettes_1032e2:
- RGB 0, 0, 0
- RGB 31, 31, 7
- RGB 20, 31, 6
- RGB 13, 20, 16
-
- RGB 0, 0, 0
- RGB 7, 11, 17
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 31, 24, 4
- RGB 25, 12, 0
- RGB 31, 7, 4
-
- RGB 0, 0, 0
- RGB 25, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-; 103302
-
-Function103302: ; 103302
- call Function103309
- call Function103362
- ret
-; 103309
-
-Function103309: ; 103309
- xor a
- ld [hBGMapMode], a
- ld hl, Buffer1
- ld bc, 10
- xor a
- call ByteFill
- ld a, $04
- call GetSRAMBank
- ld a, [wdc41]
- ld [$a60c], a
- ld [Buffer1], a
- call CloseSRAM
- call Function1035c6
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld [wd1ef], a
- ld a, [hli]
- ld [wd1ec], a
- ld a, [hli]
- ld [wd1ed], a
- ld h, d
- ld l, e
- call Function3eea
- ld hl, wd1ec
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- ld [wd1ee], a
- call Function1034be
- call UpdateSprites
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ld a, $01
- ld [wd1f0], a
- call Function10339a
- ret
-; 103362
-
-Function103362: ; 103362
-.asm_103362
- ld a, [wd1f0]
- ld [wd1f1], a
- call Function1033af
- call Function10339a
- call Function10342c
- callba HDMATransferTileMapToWRAMBank3
- ld a, [Buffer2]
- bit 7, a
- jr z, .asm_103362
- ld hl, Buffer2
- bit 6, [hl]
- jr z, .asm_103398
- ld a, $04
- call GetSRAMBank
- ld a, [Buffer1]
- ld [$a60c], a
- ld [wdc41], a
- call CloseSRAM
- xor a
- ret
-
-.asm_103398
- scf
- ret
-; 10339a
-
-Function10339a: ; 10339a
- ld a, [wd1f0]
- ld [wd1f2], a
- ld c, a
- ld b, 0
- ld hl, wd1ec
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, bc
- ld a, [hl]
- ld [wd1f3], a
- ret
-; 1033af
-
-Function1033af: ; 1033af
- call GetJoypad
- ld a, [hJoyPressed]
- bit D_LEFT_F, a
- jr nz, .left
- bit D_RIGHT_F, a
- jr nz, .right
- bit B_BUTTON_F, a
- jr nz, .b
- bit A_BUTTON_F, a
- jr nz, .a
- bit D_UP_F, a
- jr nz, .up
- bit D_DOWN_F, a
- jr nz, .down
- ret
-
-.up
- ld a, [wd1f0]
- dec a
- ld [wd1f0], a
- cp 1
- ret nc
- ld a, [wd1ee]
- ld [wd1f0], a
- ret
-
-.down
- ld a, [wd1f0]
- inc a
- ld [wd1f0], a
- ld c, a
- ld a, [wd1ee]
- cp c
- ret nc
- ld a, 1
- ld [wd1f0], a
- ret
-
-.b
- call PlayClickSFX
- ld hl, Buffer2
- set 7, [hl]
- ret
-
-.a
- ld a, [wd1f3]
- cp 3
- jr nz, .a_return
- ld de, SFX_TRANSACTION
- call PlaySFX
- ld hl, Buffer2
- set 7, [hl]
- ld hl, Buffer2
- set 6, [hl]
- ret
-
-.left
-.right
-.a_return
- ld a, [wd1f3]
- cp 3
- ret z
- ld de, SFX_PUSH_BUTTON
- call PlaySFX
- ld bc, 8
- call Function10350f
- ld a, [Buffer1]
- xor e
- ld [Buffer1], a
- ret
-; 10342c
-
-Function10342c: ; 10342c
- ld a, [wd1f0]
- ld [wd1f2], a
- call Function103490
- call Function10343c
- call Function1034a7
- ret
-; 10343c
-
-Function10343c: ; 10343c
- ld a, [wd1f3]
- cp $02
- jr nz, .asm_103452
- ld bc, 1
- call Function1034f7
- ld c, $12
- ld b, $01
- call Function1034e0
- jr .asm_10345f
-
-.asm_103452
- ld bc, $ffed
- call Function1034f7
- ld c, $12
- ld b, $02
- call Function1034e0
-
-.asm_10345f
- ld bc, 0
- call Function10350f
- ld bc, 1
- call Function103487
- ld bc, 8
- call Function10350f
- ld a, [Buffer1]
- and e
- ld bc, 2
- jr z, .asm_10347d
- ld bc, 4
-
-.asm_10347d
- call Function10350f
- ld bc, 11
- call Function103487
- ret
-; 103487
-
-Function103487: ; 103487
- push de
- call Function1034f7
- pop de
- call PlaceString
- ret
-; 103490
-
-Function103490: ; 103490
- hlcoord 0, 15
- ld c, $14
- ld b, $03
- call Function1034e0
- ld bc, 6
- call Function10350f
- hlcoord 1, 16
- call PlaceString
- ret
-; 1034a7
-
-Function1034a7: ; 1034a7
- ld a, [wd1f1]
- ld [wd1f2], a
- ld bc, 10
- call Function1034f7
- ld [hl], $7f
- ld bc, 10
- call Function1034f1
- ld [hl], $ed
- ret
-; 1034be
-
-Function1034be: ; 1034be
- ld a, $01
- ld [wd1f2], a
- ld hl, wd1ec
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
-.asm_1034ca
- push af
- ld a, [hli]
- push hl
- ld [wd1f3], a
- call Function10343c
- ld hl, wd1f2
- inc [hl]
- pop hl
- pop af
- dec a
- jr nz, .asm_1034ca
- call Function103490
- ret
-; 1034e0
-
-Function1034e0: ; 1034e0
- push bc
- push hl
- call ClearBox
- pop hl
- ld bc, AttrMap - TileMap
- add hl, bc
- pop bc
- ld a, $06
- call FillBoxWithByte
- ret
-; 1034f1
-
-Function1034f1: ; 1034f1
- ld a, [wd1f0]
- ld [wd1f2], a
-
-Function1034f7: ; 10134f7
- hlcoord 0, 0
- add hl, bc
- ld a, [wd1ef]
- ld bc, SCREEN_WIDTH
- call AddNTimes
- ld a, [wd1f2]
- dec a
- ld bc, 40
- call AddNTimes
- ret
-; 10350f
-
-Function10350f: ; 10350f
- ld a, [wd1f3]
- push bc
- ld hl, Unknown_103522
- ld bc, 9
- call AddNTimes
- pop bc
- add hl, bc
- ld a, [hli]
- ld d, [hl]
- ld e, a
- ret
-; 103522
-
-Unknown_103522: ; 103522
- dw String_103546
- dw String_103598
- dw String_1035a0
- dw String_10355f
- db $01
- dw String_10354f
- dw String_1035a8
- dw String_1035b1
- dw String_103571
- db $02
- dw String_103557
- dw String_1035ba
- dw String_1035bd
- dw String_103585
- db $04
- dw String_103545
- dw String_1035c1
- dw String_1035c1
- dw String_103545
-
-String_103545: db "@"
-String_103546: db "せんとう アニメ@"
-String_10354f: db "でんわばんごう@"
-String_103557: db "めいしこうかん@"
-String_10355f: db "でんわを かけるひとが きめられる@"
-String_103571: db "でんわばんごうの にゅうりょくのしかた@"
-String_103585: db "あたらしいめいしが あれば こうかん@"
-String_103598: db "とばして みる@"
-String_1035a0: db "じっくり みる@"
-String_1035a8: db "めいしからえらぶ@"
-String_1035b1: db "すうじで いれる@"
-String_1035ba: db "する@"
-String_1035bd: db "しない@"
-String_1035c1: db "けってい@"
-; 1035c6
-
-Function1035c6: ; 1035c6
- callba Function10138b
- ld b, 0
- ld hl, Unknown_1035d7
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 1035d7
-
-Unknown_1035d7: ; 1035d7
- dw Unknown_1035e7
- dw Unknown_1035f3
- dw Unknown_103608
- dw Unknown_103608
- dw Unknown_1035fe
- dw AskMobileOrCable
- dw AskMobileOrCable
- dw AskMobileOrCable
-
-Unknown_1035e7: ; 1035e7
- dwcoord 0, 6
- db $12, $07, $07
- dw .this
-.this
- db 4, 2, 1, 0, 3
-
-Unknown_1035f3: ; 1035f3
- dwcoord 0, 7
- db $12, $06, $09
- dw .this
-.this
- db 3, 2, 1, 3
-
-Unknown_1035fe: ; 1035fe
- dwcoord 0, 9
- db $12, $04, $0b
- dw .this
-.this
- db 2, 0, 3
-
-Unknown_103608: ; 103608
- dwcoord 0, 9
- db $12, $04, $0b
- dw .this
-.this
- db 2, 2, 3
-; 103612
-
-AskMobileOrCable: ; 103612
- ld hl, MenuDataHeader_103640
- call LoadMenuDataHeader
- ld a, [wMobileOrCable_LastSelection]
- and $0f
- jr z, .skip_load
- ld [wMenuCursorBuffer], a
-
-.skip_load
- call VerticalMenu
- call CloseWindow
- jr c, .pressed_b
- ld a, [wMenuCursorY]
- ld [ScriptVar], a
- ld c, a
- ld a, [wMobileOrCable_LastSelection]
- and $f0
- or c
- ld [wMobileOrCable_LastSelection], a
- ret
-
-.pressed_b
- xor a
- ld [ScriptVar], a
- ret
-; 103640
-
-MenuDataHeader_103640: ; 103640
- db $40 ; flags
- db 6, 13 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_103648
- db 1 ; default option
-
-MenuData2_103648: ; 103648
- db $80 ; flags
- db 2
- db "モバイル@"
- db "ケーブル@"
-; 103654
-
-Function103654: ; 103654
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- jr nz, .asm_103666
- ld hl, wcd2a
- res 5, [hl]
- ld c, $02
- ret
-
-.asm_103666
- ld hl, wcd2a
- set 5, [hl]
- ld c, $01
- ret
-; 10366e
-
-Mobile_SelectThreeMons: ; 10366e
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- jr z, .asm_10369b
- ld hl, UnknownText_0x10375d
- call PrintText
- call YesNoBox
- jr c, .asm_103696
- callba CheckForMobileBattleRules
- jr nc, .asm_103690
- call JoyWaitAorB
- jr .asm_103696
-
-.asm_103690
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.asm_103696
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_10369b
- ld hl, wMobileOrCable_LastSelection
- bit 7, [hl]
- set 7, [hl]
- jr nz, .asm_1036b5
- ld hl, UnknownText_0x103762
- call PrintText
- call YesNoBox
- jr c, .asm_1036b5
- call Function1036f9
- call JoyWaitAorB
-
-.asm_1036b5
- call Function103700
- jr c, .asm_1036f4
- ld hl, MenuDataHeader_103747
- call LoadMenuDataHeader
- call VerticalMenu
- call ExitMenu
- jr c, .asm_1036f4
- ld a, [wMenuCursorY]
- cp $01
- jr z, .asm_1036d9
- cp $02
- jr z, .asm_1036f4
- cp $03
- jr z, .asm_1036ec
- jr .asm_1036b5
-
-.asm_1036d9
- callba CheckForMobileBattleRules
- jr nc, .asm_1036e6
- call JoyWaitAorB
- jr .asm_1036f4
-
-.asm_1036e6
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.asm_1036ec
- call Function1036f9
- call JoyWaitAorB
- jr .asm_1036b5
-
-.asm_1036f4
- xor a
- ld [ScriptVar], a
- ret
-; 1036f9
-
-Function1036f9: ; 1036f9
- ld hl, UnknownText_0x103767
- call PrintText
- ret
-; 103700
-
-Function103700: ; 103700
- ld c, $0a
- ld hl, SwarmFlags
- bit 4, [hl]
- jr z, .asm_10370f
- callba Function1008a6
-
-.asm_10370f
- ld a, c
- ld [StringBuffer2], a
- ld a, [StringBuffer2]
- cp $05
- jr nc, .asm_103724
- cp $02
- jr nc, .asm_10372c
- cp $01
- jr nc, .asm_103734
- jr .asm_10373c
-
-.asm_103724
- ld hl, UnknownText_0x10376c
- call PrintText
- and a
- ret
-
-.asm_10372c
- ld hl, UnknownText_0x103771
- call PrintText
- and a
- ret
-
-.asm_103734
- ld hl, UnknownText_0x103776
- call PrintText
- and a
- ret
-
-.asm_10373c
- ld hl, UnknownText_0x10377b
- call PrintText
- call JoyWaitAorB
- scf
- ret
-; 103747
-
-MenuDataHeader_103747: ; 103747
- db $40 ; flags
- db 5, 13 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_10374f
- db 1 ; default option
-
-MenuData2_10374f: ; 10374f
- db $c0 ; flags
- db 3
- db "はい@"
- db "やめる@"
- db "せつめい@"
-; 10375d
-
-UnknownText_0x10375d: ; 0x10375d
- text_jump UnknownText_0x1c422a
- db "@"
-; 0x103762
-UnknownText_0x103762: ; 0x103762
- text_jump UnknownText_0x1c4275
- db "@"
-; 0x103767
-UnknownText_0x103767: ; 0x103767
- text_jump UnknownText_0x1c4298
- db "@"
-; 0x10376c
-UnknownText_0x10376c: ; 0x10376c
- text_jump UnknownText_0x1c439c
- db "@"
-; 0x103771
-UnknownText_0x103771: ; 0x103771
- text_jump UnknownText_0x1c43dc
- db "@"
-; 0x103776
-UnknownText_0x103776: ; 0x103776
- text_jump UnknownText_0x1c4419
- db "@"
-; 0x10377b
-UnknownText_0x10377b: ; 0x10377b
- text_jump UnknownText_0x1c445a
- db "@"
-; 0x103780
-
-Function103780: ; 103780
- ld a, [wd265]
- push af
- call Function10378c
- pop af
- ld [wd265], a
- ret
-; 10378c
-
-Function10378c: ; 10378c
- ld c, 0
- ld hl, SwarmFlags
- bit 4, [hl]
- jr nz, .already_set
- ld c, $01
- ld hl, SwarmFlags
- set 4, [hl]
-
-.already_set
- push bc
- callba Link_SaveGame
- pop bc
- jr c, .failed_to_save
- ld a, $01
- ld [ScriptVar], a
- ld a, c
- and a
- ret z
- callba Function1006fd
- ret
-
-.failed_to_save
- xor a
- ld [ScriptVar], a
- ld a, c
- and a
- ret z
- ld hl, SwarmFlags
- res 4, [hl]
- ret
-; 1037c2
-
-Function1037c2: ; 1037c2
- call Function103823
- jr c, .nope
- ld a, [wdc5f]
- and a
- jr z, .nope
- ld hl, UnknownText_0x1037e6
- call PrintText
- call YesNoBox
- jr c, .nope
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.nope
- xor a
- ld [wdc5f], a
- ld [ScriptVar], a
- ret
-; 1037e6
-
-UnknownText_0x1037e6: ; 0x1037e6
- text_jump UnknownText_0x1c449c
- db "@"
-; 0x1037eb
-
-Function1037eb: ; 1037eb
- call Function103823
- jr nc, .asm_103807
- ld hl, UnknownText_0x103819
- call PrintText
- call JoyWaitAorB
- ld hl, UnknownText_0x10381e
- call PrintText
- call JoyWaitAorB
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_103807
- ld a, [wdc60]
- and a
- jr nz, .asm_103813
- ld a, $01
- ld [ScriptVar], a
- ret
-
-.asm_103813
- ld a, $02
- ld [ScriptVar], a
- ret
-; 103819
-
-UnknownText_0x103819: ; 0x103819
- text_jump UnknownText_0x1c44c0
- db "@"
-; 0x10381e
-
-UnknownText_0x10381e: ; 0x10381e
- text_jump UnknownText_0x1c44e7
- db "@"
-; 0x103823
-
-Function103823: ; 103823
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- jr nz, .asm_103838
- callba Function1008a6
- ld a, c
- cp $01
- jr c, .asm_10383a
-
-.asm_103838
- xor a
- ret
-
-.asm_10383a
- scf
- ret
-; 10383c
-
-Function10383c: ; 10383c
- ld a, $01
- ld [wdc60], a
- xor a
- ld hl, wPlayerMonSelection
- ld [hli], a
- ld [hli], a
- ld [hl], a
- ld hl, UnknownText_0x103876
- call PrintText
- call JoyWaitAorB
- callba Script_reloadmappart
- callba Function4a94e
- jr c, .asm_103870
- ld hl, wd002
- ld de, wPlayerMonSelection
- ld bc, 3
- call CopyBytes
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_103870
- ld a, $01
- ld [ScriptVar], a
- ret
-; 103876
-
-UnknownText_0x103876: ; 0x103876
- text_jump UnknownText_0x1c4508
- db "@"
-; 0x10387b
-
-Function10387b: ; 10387b
- callba Mobile_AlwaysReturnNotCarry
- bit 7, c
- ret nz
- callba Function1008a6
- ld a, c
- ld [StringBuffer2], a
- ld hl, UnknownText_0x103898
- call PrintText
- call JoyWaitAorB
- ret
-; 103898
-
-UnknownText_0x103898: ; 0x103898
- text_jump UnknownText_0x1c4525
- db "@"
-; 0x10389d
diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm
deleted file mode 100755
index 37e10a01e..000000000
--- a/misc/mobile_41.asm
+++ /dev/null
@@ -1,1115 +0,0 @@
-SECTION "bank41_2", ROMX
-
-; These functions deal with miscellaneous statistics
-; which were used for Trainer Rankings in Pokémon News.
-
-; Copies certain values at the time the player enters the Hall of Fame.
-TrainerRankings_HallOfFame2:: mobile ; 0x105ef6
- ld a, BANK(sTrainerRankingGameTimeHOF)
- call GetSRAMBank
-
- ld hl, GameTimeHours
- ld de, sTrainerRankingGameTimeHOF
- ld bc, 4
- call CopyBytes
-
- ld hl, sTrainerRankingStepCount
- ld de, sTrainerRankingStepCountHOF
- ld bc, 4
- call CopyBytes
-
- ; sTrainerRankingHealings is only a 3-byte value.
- ; One extraneous byte is copied from sTrainerRankingMysteryGift.
- ld hl, sTrainerRankingHealings
- ld de, sTrainerRankingHealingsHOF
- ld bc, 4
- call CopyBytes
-
- ld hl, sTrainerRankingBattles
- ld de, sTrainerRankingBattlesHOF
- ld bc, 3
- call CopyBytes
-
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105f33
-
-TrainerRankings_MagikarpLength: mobile ; 105f33
- ld a, BANK(sTrainerRankingLongestMagikarp)
- call GetSRAMBank
- ld de, Buffer1
- ld hl, sTrainerRankingLongestMagikarp
-
- ; Is this Magikarp the longest measured?
- ld a, [de]
- cp [hl]
- jr z, .isLowByteHigher
- jr nc, .newRecordLongest
- jr .checkShortest
-
-.isLowByteHigher
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- dec hl
- dec de
- jr c, .checkShortest
-
-.newRecordLongest
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- dec de
- ld [hl], a
-
-.checkShortest
- ; First, check if the record for shortest Magikarp is 0.
- ; This seems unnecessary, because the value is initialized to 100.0 cm.
- ld hl, sTrainerRankingShortestMagikarp
- ld a, [hli]
- or [hl]
- dec hl
- jr z, .newRecordShortest
-
- ; Now check if this Magikarp is the shortest
- ld a, [de]
- cp [hl]
- jr z, .isLowByteLower
- jr c, .newRecordShortest
- jr .done
-
-.isLowByteLower
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- jr nc, .done
- dec hl
- dec de
-
-.newRecordShortest
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105f79
-
-TrainerRankings_BugContestScore: mobile ; 105f79
- ld a, BANK(sTrainerRankingBugContestScore)
- call GetSRAMBank
- ld a, [hProduct]
- ld hl, sTrainerRankingBugContestScore
- cp [hl]
- jr z, .isLowByteHigher
- jr nc, .newHighScore
- jr .done
-
-.isLowByteHigher
- inc hl
- ld a, [hMultiplicand]
- cp [hl]
- jr c, .done
- dec hl
-
-.newHighScore
- ld a, [hProduct]
- ld [hli], a
- ld a, [hMultiplicand]
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105f9f
-
-TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f
- ld a, BANK(sTrainerRankingCurrentSlotsStreak)
- call GetSRAMBank
-
- ; Increment the current streak
- ld hl, sTrainerRankingCurrentSlotsStreak + 1
- inc [hl]
- jr nz, .noCarry
- dec hl
- inc [hl]
- inc hl
-
-.noCarry
- dec hl
- ; Now check if this is a new record for longest streak
- ld a, [sTrainerRankingLongestSlotsStreak]
- cp [hl]
- jr z, .isLowByteHigher
- jr c, .newRecordStreak
- jr .done
-
-.isLowByteHigher
- inc hl
- ld a, [sTrainerRankingLongestSlotsStreak + 1]
- cp [hl]
- jr nc, .done
- dec hl
-
-.newRecordStreak
- ld a, [hli]
- ld [sTrainerRankingLongestSlotsStreak], a
- ld a, [hl]
- ld [sTrainerRankingLongestSlotsStreak + 1], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105fd0
-
-TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0
- ld a, BANK(sTrainerRankingCurrentSlotsStreak)
- call GetSRAMBank
- ld hl, sTrainerRankingCurrentSlotsStreak
- xor a
- ld [hli], a
- ld [hl], a
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 105fe3
-
-TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3
- ld a, BANK(sTrainerRankingTotalSlotsPayouts)
- call GetSRAMBank
- ld hl, sTrainerRankingTotalSlotsPayouts + 3
- ld a, e
- add [hl]
- ld [hld], a
- ld a, d
- adc [hl]
- ld [hld], a
- jr nc, .done
- inc [hl]
- jr nz, .done
- dec hl
- inc [hl]
- jr nz, .done
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 106008
-
-TrainerRankings_AddToBattlePayouts: mobile ; 106008
- ld a, BANK(sTrainerRankingTotalBattlePayouts)
- call GetSRAMBank
- ld hl, sTrainerRankingTotalBattlePayouts + 3
- ld a, [bc]
- dec bc
- add [hl]
- ld [hld], a
- ld a, [bc]
- dec bc
- adc [hl]
- ld [hld], a
- ld a, [bc]
- adc [hl]
- ld [hld], a
- jr nc, .done
- inc [hl]
- jr nz, .done
- ld a, $ff
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
-.done
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 10602e
-
-TrainerRankings_StepCount: mobile ; 10602e (41:602e)
- ld hl, sTrainerRankingStepCount
- jp TrainerRankings_Increment4Byte
-
-; Unreferenced in English version.
-TrainerRankings_BattleTowerWins: mobile ; 106035
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- and a
- call CloseSRAM
- ret nz
- ld hl, sTrainerRankingBattleTowerWins
- jp TrainerRankings_Increment2Byte
-
-TrainerRankings_TMsHMsTaught: mobile ; 106049
- ld hl, sTrainerRankingTMsHMsTaught
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Battles: mobile ; 106050
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
- ret z
- ld hl, sTrainerRankingBattles
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_WildBattles: mobile ; 10605d
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
- ret z
- ld hl, sTrainerRankingWildBattles
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_TrainerBattles: mobile ; 10606a
- ld hl, sTrainerRankingTrainerBattles
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused1: mobile ; 106071
- ld hl, sTrainerRankingUnused1
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_HallOfFame:: mobile ; 0x106078
- ld hl, sTrainerRankingHOFEntries
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f)
- ld hl, sTrainerRankingWildMonsCaught
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_HookedEncounters: mobile ; 106086
- ld hl, sTrainerRankingHookedEncounters
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_EggsHatched: mobile ; 10608d (41:608d)
- ld hl, sTrainerRankingEggsHatched
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_MonsEvolved: mobile ; 106094
- ld hl, sTrainerRankingMonsEvolved
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_FruitPicked: mobile ; 10609b
- ld hl, sTrainerRankingFruitPicked
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_Healings: mobile ; 1060a2
- ld hl, sTrainerRankingHealings
- jp TrainerRankings_Increment3Byte
-
-TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9)
- ld hl, sTrainerRankingMysteryGift
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Trades: mobile ; 1060af
- ld hl, sTrainerRankingTrades
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Fly: mobile ; 1060b5
- ld hl, sTrainerRankingFly
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Surf: mobile ; 1060bb
- ld hl, sTrainerRankingSurf
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Waterfall: mobile ; 1060c1
- ld hl, sTrainerRankingWaterfall
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_WhiteOuts: mobile ; 1060c7
- ld hl, sTrainerRankingWhiteOuts
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_LuckyNumberShow: mobile ; 1060cd
- ld hl, sTrainerRankingLuckyNumberShow
- jr TrainerRankings_Increment2Byte
-
-TrainerRankings_PhoneCalls: mobile ; 1060d3
- ld hl, sTrainerRankingPhoneCalls
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused2: mobile ; 1060df
- ld hl, sTrainerRankingUnused2
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_LinkBattles: mobile ; 1060df
- ld hl, sTrainerRankingLinkBattles
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Splash: mobile ; 1060e5
- ; Only counts if it’s the player’s turn
- ld a, [hBattleTurn]
- and a
- ret nz
- ld hl, sTrainerRankingSplash
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_TreeEncounters: mobile ; 1060ef
- ld hl, sTrainerRankingTreeEncounters
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_Unused3: mobile ; 1060f5
- ld hl, sTrainerRankingUnused3
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_ColosseumWins: mobile ; win
- ld hl, sTrainerRankingColosseumWins
- jr TrainerRankings_Increment3Byte
-
-TrainerRankings_ColosseumLosses: mobile ; lose
- ld hl, sTrainerRankingColosseumLosses
- jr TrainerRankings_Increment3Byte
-; 106107
-
-TrainerRankings_ColosseumDraws: mobile ; draw
- ld hl, sTrainerRankingColosseumDraws
- jr TrainerRankings_Increment3Byte
-; 10610d
-
-; Counts uses of both Selfdestruct and Explosion.
-TrainerRankings_Selfdestruct: mobile ; 10610d
- ; Only counts if it’s the player’s turn
- ld a, [hBattleTurn]
- and a
- ret nz
- ld hl, sTrainerRankingSelfdestruct
- jr TrainerRankings_Increment3Byte
-; 106117
-
-TrainerRankings_Increment4Byte: ; 106117
- push bc
- ld bc, 3
- jr TrainerRankings_Increment
-; 10611d
-
-TrainerRankings_Increment3Byte: ; 10611d
- push bc
- ld bc, 2
- jr TrainerRankings_Increment
-; 106123
-
-TrainerRankings_Increment2Byte: ; 106123
- push bc
- ld bc, 1
- jr TrainerRankings_Increment
-; 106129
-
-; unused
-TrainerRankings_Increment1Byte: ; 106129
- push bc
- ld bc, 0
-
-; Increments a big-endian value of bc + 1 bytes at hl
-TrainerRankings_Increment: ; 10612d
- ld a, BANK(sTrainerRankings)
- call GetSRAMBank
- push hl
- push de
- ld e, c
- inc e
-.asm_106136
- ld a, [hli]
- inc a
- jr nz, .asm_10613d
- dec e
- jr nz, .asm_106136
-
-.asm_10613d
- pop de
- pop hl
- jr z, .asm_10614d
- add hl, bc
-.asm_106142
- inc [hl]
- jr nz, .asm_10614d
- ld a, c
- and a
- jr z, .asm_10614d
- dec hl
- dec c
- jr .asm_106142
-
-.asm_10614d
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- pop bc
- ret
-; 106155
-
-; Used when SRAM bank 5 isn’t already loaded — what’s the point of this?
-UpdateTrainerRankingsChecksum2: mobile ; 106155
- ld a, BANK(sTrainerRankings)
- call GetSRAMBank
- call UpdateTrainerRankingsChecksum
- call CloseSRAM
- ret
-; 106162
-
-UpdateTrainerRankingsChecksum: ; 106162
- push de
- call CalculateTrainerRankingsChecksum
- ld hl, sTrainerRankingsChecksum
- ld [hl], d
- inc hl
- ld [hl], e
- pop de
- ret
-; 10616e
-
-CalculateTrainerRankingsChecksum: ; 10616e
- push bc
- ld hl, sTrainerRankings
- ld bc, sTrainerRankingsChecksum - sTrainerRankings
- xor a
- ld de, 0
-.asm_106179
- ld a, e
- add [hl]
- ld e, a
- jr nc, .asm_10617f
- inc d
-
-.asm_10617f
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_106179
- pop bc
- ret
-; 106187
-
-
-BackupMobileEventIndex: ; 106187
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- ld a, [sMobileEventIndex]
- push af
- ld a, BANK(sMobileEventIndexBackup)
- call GetSRAMBank
- pop af
- ld [sMobileEventIndexBackup], a
- call CloseSRAM
- ret
-; 10619d
-
-
-RestoreMobileEventIndex: ; 10619d (41:619d)
- ld a, BANK(sMobileEventIndexBackup)
- call GetSRAMBank
- ld a, [sMobileEventIndexBackup]
- push af
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- pop af
- ld [sMobileEventIndex], a
- call CloseSRAM
- ret
-; 1061b3 (41:61b3)
-
-; Unreferenced in English version.
-VerifyTrainerRankingsChecksum: ; 1061b3
- call CalculateTrainerRankingsChecksum
- ld hl, sTrainerRankingsChecksum
- ld a, d
- cp [hl]
- ret nz
- inc hl
- ld a, e
- cp [hl]
- ret
-; 1061c0
-
-DeleteMobileEventIndex: ; 1061c0 (41:61c0)
- ld a, BANK(sMobileEventIndex)
- call GetSRAMBank
- xor a
- ld [sMobileEventIndex], a
- call CloseSRAM
- ret
-; 1061cd (41:61cd)
-
-; Used in the Japanese version to initialize Trainer Rankings data
-; for a new save file. Unreferenced in the English version.
-InitializeTrainerRankings:
- ld hl, sTrainerRankings
- ld bc, sTrainerRankingsEnd - sTrainerRankings
- xor a
- call ByteFill
-
- ; Initialize the shortest Magikarp to 100.0 cm
- ld hl, sTrainerRankingShortestMagikarp
- ld a, $3
- ld [hli], a
- ld [hl], $e8
-
- call UpdateTrainerRankingsChecksum
- ld hl, sTrainerRankings
- ld de, sTrainerRankingsBackup
- ld bc, sTrainerRankingsEnd - sTrainerRankings
- call CopyBytes
- ret
-; 1061ef
-
-
-_MobilePrintNum:: ; 1061ef
-; Supports signed 31-bit integers (up to 10 digits)
-; b: Bits 0-4 = # bytes
-; Bit 7 = set if negative
-; c: Number of digits
-; de: highest byte of number to convert
-; hl: where to print the converted string
- push bc
- xor a
- ld [hPrintNum1], a
- ld [hPrintNum2], a
- ld [hPrintNum3], a
- ld a, b
- and $f
- cp $1
- jr z, .one_byte
- cp $2
- jr z, .two_bytes
- cp $3
- jr z, .three_bytes
-; four bytes
- ld a, [de]
- ld [hPrintNum1], a
- inc de
-
-.three_bytes
- ld a, [de]
- ld [hPrintNum2], a
- inc de
-
-.two_bytes
- ld a, [de]
- ld [hPrintNum3], a
- inc de
-
-.one_byte
- ld a, [de]
- ld [hPrintNum4], a
- inc de
-
- push de
- xor a
- ld [hPrintNum9], a
- ld a, b
- ld [hPrintNum10], a
- ld a, c
- cp 2
- jr z, .two_digits
- ld de, ._2
- cp 3
- jr z, .three_to_nine_digits
- ld de, ._3
- cp 4
- jr z, .three_to_nine_digits
- ld de, ._4
- cp 5
- jr z, .three_to_nine_digits
- ld de, ._5
- cp 6
- jr z, .three_to_nine_digits
- ld de, ._6
- cp 7
- jr z, .three_to_nine_digits
- ld de, ._7
- cp 8
- jr z, .three_to_nine_digits
- ld de, ._8
- cp 9
- jr z, .three_to_nine_digits
- ld de, ._9
-
-.three_to_nine_digits
- inc de
- inc de
- inc de
- dec a
- dec a
-
-.digit_loop
- push af
- call .Function1062b2
- call .Function1062ff
-rept 4
- inc de
-endr
- pop af
- dec a
- jr nz, .digit_loop
-
-.two_digits
- ld c, 0
- ld a, [hPrintNum4]
-.mod_ten_loop
- cp 10
- jr c, .simple_divide_done
- sub 10
- inc c
- jr .mod_ten_loop
-
-.simple_divide_done
- ld b, a
- ld a, [hPrintNum9]
- or c
- ld [hPrintNum9], a
- jr nz, .create_digit
- call .LoadMinusTenIfNegative
- jr .done
-
-.create_digit
- ld a, "0"
- add c
- ld [hl], a
-
-.done
- call .Function1062ff
- ld a, "0"
- add b
- ld [hli], a
- pop de
- pop bc
- ret
-; 106292
-
-._9 dd 1000000000
-._8 dd 100000000
-._7 dd 10000000
-._6 dd 1000000
-._5 dd 100000
-._4 dd 10000
-._3 dd 1000
-._2 dd 100
-; 1062b2
-
-.Function1062b2: ; 1062b2
- ld c, $0
-.asm_1062b4
- ld a, [de]
- dec de
- ld b, a
- ld a, [hPrintNum4]
- sub b
- ld [hPrintNum8], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [hPrintNum3]
- sbc b
- ld [hPrintNum7], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [hPrintNum2]
- sbc b
- ld [hPrintNum6], a
- ld a, [de]
- inc de
- inc de
- inc de
- ld b, a
- ld a, [hPrintNum1]
- sbc b
- ld [hPrintNum5], a
- jr c, .asm_1062eb
- ld a, [hPrintNum5]
- ld [hPrintNum1], a
- ld a, [hPrintNum6]
- ld [hPrintNum2], a
- ld a, [hPrintNum7]
- ld [hPrintNum3], a
- ld a, [hPrintNum8]
- ld [hPrintNum4], a
- inc c
- jr .asm_1062b4
-
-.asm_1062eb
- ld a, [hPrintNum9]
- or c
- jr z, .LoadMinusTenIfNegative
- ld a, -10
- add c
- ld [hl], a
- ld [hPrintNum9], a
- ret
-
-.LoadMinusTenIfNegative:
- ld a, [hPrintNum10]
- bit 7, a
- ret z
-
- ld [hl], -10
- ret
-; 1062ff
-
-.Function1062ff: ; 1062ff
- ld a, [hPrintNum10]
- bit 7, a
- jr nz, .asm_10630d
- bit 6, a
- jr z, .asm_10630d
- ld a, [hPrintNum9]
- and a
- ret z
-
-.asm_10630d
- inc hl
- ret
-; 10630f
-
-; functions related to the cable club and various NPC scripts referencing mobile communications
-
-Mobile_DummyReturnFalse: ; 10630f
- xor a
- ld [ScriptVar], a
- ret
-; 106314
-
-MobileFn_106314: mobile ; 106314
- ld a, $4
- call GetSRAMBank
- ld a, c
- cpl
- ld [$b000], a
- call CloseSRAM
- ld a, $7
- call GetSRAMBank
- ld a, c
- ld [$a800], a
- call CloseSRAM
- ret
-; 10632f
-
-Mobile_AlwaysReturnNotCarry: ; 10632f
- or a
- ret
-
-Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
- ; check ~[4:b000] == [7:a800]
- ld a, $4
- call GetSRAMBank
- ld a, [$b000]
- cpl
- ld b, a
- call CloseSRAM
- ld a, $7
- call GetSRAMBank
- ld a, [$a800]
- ld c, a
- call CloseSRAM
- ld a, c
- cp b
- jr nz, .nope
-
- ; check [7:a800] != 0
- and a
- jr z, .nope
-
- ; check !([7:a800] & %01110000)
- and %10001111
- cp c
- jr nz, .nope
-
- ld c, a
- scf
- ret
-
-.nope
- xor a
- ld c, a
- ret
-; 10635c
-
-Function10635c: ; 10635c
- ld a, [wMobileCommsJumptableIndex]
- bit 7, a
- ret nz
- ld a, [wMobileCommsJumptableIndex]
- ld hl, .Jumptable
- rst JumpTable
- ret
-; 10636a
-
-.Jumptable: ; 10636a
- dw .init
- dw Function106392
- dw Function1063cc
- dw Function1063d8
- dw Function1063e5
- dw Function1063f3
- dw Function106403
- dw Function106442
- dw Function106453
-; 10637c
-
-.init: ; 10637c
- ld de, wcd30
- ld hl, $41
- ld bc, $41
- ld a, $40
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 106392
-
-Function106392: ; 106392
- xor a
- ld [wcf64], a
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_1063a2
- bit 0, a
- jr z, .asm_1063bf
- ret
-
-.asm_1063a2
- call Mobile_AlwaysReturnNotCarry
- ld a, c
- and a
- jr nz, .asm_1063b4
- ld a, $b
- ld [wcf64], a
- ld a, $7
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_1063b4
- ld a, $7
- ld [wcf64], a
- ld a, $7
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_1063bf
- ld a, $1
- ld [wcf64], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1063cc
-
-Function1063cc: ; 1063cc
- ld a, $78
- ld [wcd42], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
-
-Function1063d8: ; 1063d8
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1063e5
-
-Function1063e5: ; 1063e5
- ld a, [wcf64]
- cp $3
- ret nz
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 1063f3
-
-Function1063f3: ; 1063f3
- ld de, wcd31
- ld a, $32
- call Function3e32
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 106403
-
-Function106403: ; 106403
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_106426
- bit 0, a
- jr z, .asm_10640f
- ret
-
-.asm_10640f
- ld a, [wcd31]
- and $80
- ld c, a
- ld a, [wcd30]
- or c
- inc a
- ld c, a
- call MobileFn_106314
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_106426
- call Mobile_AlwaysReturnNotCarry
- ld a, c
- and a
- jr z, .asm_106435
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-
-.asm_106435
- ld c, $0
- call MobileFn_106314
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
- ret
-; 106442
-
-Function106442: ; 106442
- ld a, $36
- call Function3e32
- xor a
- ld [hMobile], a
- ld [hMobileReceive], a
- ld a, [wMobileCommsJumptableIndex]
- inc a
- ld [wMobileCommsJumptableIndex], a
-
-Function106453: ; 106453
- ld a, [wMobileCommsJumptableIndex]
- set 7, a
- ld [wMobileCommsJumptableIndex], a
- nop
- ld a, $4
- ld [wcf64], a
- ret
-; 106462
-
-MobileFunc_106462: mobile
- ret
-; 106464
-
-Function106464:: ; 106464
- ld de, MobilePhoneTilesGFX
- ld hl, VTiles2 tile $60
- lb bc, BANK(MobilePhoneTilesGFX), 1
- call Get2bpp
- ld de, FontsExtra2_UpArrowGFX
- ld hl, VTiles2 tile $61
- lb bc, BANK(FontsExtra2_UpArrowGFX), 1
- call Get2bpp
- ld de, GFX_106514
- ld hl, VTiles2 tile $62
- ld c, 9
- ld b, BANK(GFX_106514)
- call Get2bpp
- ld de, $40b0
- ld hl, VTiles2 tile $6b
- ld b, $f ; XXX no graphics at 0f:40b0
- call Get2bpp
- callba LoadFrame
- ret
-; 10649b
-
-Function10649b: ; 10649b
- ld a, [TextBoxFrame]
- and $7
- ld bc, 3 tiles
- ld hl, Frames
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, VTiles2 tile $79
- ld c, 6
- ld b, BANK(Frames)
- call Function1064c3
- ld hl, VTiles2 tile $7f
- ld de, TextBoxSpaceGFX
- ld c, 1
- ld b, BANK(TextBoxSpaceGFX)
- call Function1064c3
- ret
-; 1064c3
-
-Function1064c3: ; 1064c3
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push bc
- push hl
- ld hl, Function3f88
- ld a, b
- rst FarCall
- pop hl
- pop bc
- pop af
- ld [rSVBK], a
- jr asm_1064ed
-
-Function1064d8: ; 1064d8
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- push bc
- push hl
- ld hl, Function3f9f
- ld a, b
- rst FarCall
- pop hl
- pop bc
- pop af
- ld [rSVBK], a
- jr asm_1064ed
-
-asm_1064ed
- ld de, wDecompressScratch
- ld b, $0
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
- call Get2bpp
- pop af
- ld [rVBK], a
- pop af
- ld [rSVBK], a
- ret
-; 10650a
-
-Function10650a: ; 10650a
- ld de, MobilePhoneTilesGFX + $20
- lb bc, BANK(MobilePhoneTilesGFX), $11
- call Get2bpp
- ret
-; 106514
-
-GFX_106514:
-INCBIN "gfx/unknown/106514.2bpp"
diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm
deleted file mode 100644
index b625d6bcf..000000000
--- a/misc/mobile_42.asm
+++ /dev/null
@@ -1,2009 +0,0 @@
-MobileTradeAnimation_SendGivemonToGTS: ; 108000
- ld a, $80
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 10800b
-
-.TradeAnimScript:
- mobiletradeanim_showgtsgivemon
- mobiletradeanim_12
- mobiletradeanim_10
- mobiletradeanim_sendmon
- mobiletradeanim_06
- mobiletradeanim_0f
- mobiletradeanim_end
-
-MobileTradeAnimation_RetrieveGivemonFromGTS:
- ld a, $80
- jr asm_108018
-
-MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
- ld a, $0
-asm_108018:
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 108021
-
-.TradeAnimScript:
- mobiletradeanim_11
- mobiletradeanim_07
- mobiletradeanim_receivemon
- mobiletradeanim_showgtsgetmon
- mobiletradeanim_end
-
-Function108026: ; 108026
- ld a, $0
- jr asm_10802c
-
-Function10802a: ; 10802a
- ld a, $1
-
-asm_10802c:
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_Frontpics
-; 108035
-
-.TradeAnimScript: ; trade
- mobiletradeanim_showgivemon
- mobiletradeanim_12
- mobiletradeanim_02
- mobiletradeanim_sendmon
- mobiletradeanim_05
- mobiletradeanim_receivemon
- mobiletradeanim_showgetmon
- mobiletradeanim_end
-
-Function10803d: ; 10803d
- ld a, $0
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 108048
-
-.TradeAnimScript:
- mobiletradeanim_11
- mobiletradeanim_07
- mobiletradeanim_receivemon
- mobiletradeanim_showoddegg
- mobiletradeanim_end
-
-Function10804d: ; 10804d
- ld a, $0
- ld [wcf65], a
- ld de, .TradeAnimScript
- jp RunMobileTradeAnim_NoFrontpics
-; 108058
-
-.TradeAnimScript:
- mobiletradeanim_11
- mobiletradeanim_showgtsgetmon
- mobiletradeanim_end
-
-RunMobileTradeAnim_Frontpics: ; 10805b
- ld hl, wTradeAnimAddress
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld hl, VramState
- ld a, [hl]
- push af
- res 0, [hl]
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call Function1080b7
-.loop
- call MobileTradeAnim_JumptableLoop
- jr nc, .loop
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- pop af
- ld [hMapAnims], a
- ret
-; 108089
-
-RunMobileTradeAnim_NoFrontpics: ; 108089
- ld hl, wTradeAnimAddress
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [hMapAnims]
- push af
- xor a
- ld [hMapAnims], a
- ld hl, VramState
- ld a, [hl]
- push af
- res 0, [hl]
- ld hl, Options
- ld a, [hl]
- push af
- set NO_TEXT_SCROLL, [hl]
- call Function108157
-.loop
- call MobileTradeAnim_JumptableLoop
- jr nc, .loop
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- pop af
- ld [hMapAnims], a
- ret
-; 1080b7
-
-Function1080b7: ; 1080b7
- xor a
- ld [wJumptableIndex], a
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearVTiles
- call MobileTradeAnim_ClearBGMap
- call LoadStandardFont
- call LoadFontsBattleExtra
-
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_108da7
- ld de, VTiles2
- call Decompress
-
- ld a, $0
- ld [rVBK], a
- ld hl, LZ_108d27
- ld de, VTiles0 tile $20
- call Decompress
-
- call EnableLCD
-
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba ClearSpriteAnims
-
- call DelayFrame
-
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
-
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
-
- xor a
- ld hl, wSpriteAnimDict
- ld [hli], a
- ld [hl], $0
-
- ld a, [wPlayerTrademonSpecies]
- ld hl, wPlayerTrademonDVs
- ld de, VTiles0 tile $30
- call MobileTradeAnim_GetFrontpic
-
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- ld de, VTiles2 tile $31
- call MobileTradeAnim_GetFrontpic
-
- ld a, [wPlayerTrademonSpecies]
- ld de, wPlayerTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
-
- ld a, [wOTTrademonSpecies]
- ld de, wOTTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
-
- xor a
- call Function108b98
- call Function108af4
- ret
-; 108157
-
-Function108157: ; 108157
- xor a
- ld [wJumptableIndex], a
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearVTiles
- call MobileTradeAnim_ClearBGMap
- call LoadStandardFont
- call LoadFontsBattleExtra
- call EnableLCD
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba ClearSpriteAnims
- xor a
- ld hl, wSpriteAnimDict
- ld [hli], a
- ld [hl], $0
- call DelayFrame
- ld a, [wPlayerTrademonSpecies]
- ld de, wPlayerTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
- ld a, [wOTTrademonSpecies]
- ld de, wOTTrademonSpeciesName
- call MobileTradeAnim_InitSpeciesName
- xor a
- call Function108b98
- call Function108af4
- ret
-; 1081ad
-
-MobileTradeAnim_ClearVTiles: ; 1081ad
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, 3 * $80 tiles
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, 3 * $80 tiles
- xor a
- call ByteFill
- ret
-; 1081ca
-
-MobileTradeAnim_ClearBGMap: ; 1081ca
- ld a, $1
- ld [rVBK], a
- hlbgcoord 0, 0
- ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
- ld a, $0
- call ByteFill
- ld a, $0
- ld [rVBK], a
- hlbgcoord 0, 0
- ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
- ld a, $7f
- call ByteFill
- ret
-; 1081e9
-
-MobileTradeAnim_GetFrontpic: ; 1081e9
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef GetFrontpic
- ret
-; 108201
-
-Function108201: ; 108201
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef FrontpicPredef
- ret
-; 108219
-
-Function108219: ; 108219
- ld [CurPartySpecies], a
- hlcoord 7, 2
- ld d, $0
- ld e, ANIM_MON_TRADE
- predef AnimateFrontpic
- ret
-; 108229
-
-Function108229: ; 108229
- ld [CurPartySpecies], a
- hlcoord 7, 2
- ld d, $0
- ld e, ANIM_MON_TRADE
- predef LoadMonAnimation
- ret
-; 108239
-
-MobileTradeAnim_InitSpeciesName: ; 108239
- push de
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- pop de
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ret
-; 10824b
-
-MobileTradeAnim_JumptableLoop: ; 10824b
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .StopAnim
- call .ExecuteMobileTradeAnimCommand
- call DelayFrame
- and a
- ret
-
-.StopAnim:
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call LoadStandardFont
- call LoadFontsBattleExtra
- callba MobileFunc_106462
- callba Function106464
- scf
- ret
-; 10827b
-
-.ExecuteMobileTradeAnimCommand: ; 10827b
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 10828a
-
-.Jumptable: ; 10828a
-
- dw GetMobileTradeAnimByte ; 00
- dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
- dw MobileTradeAnim_02 ; 02
- dw MobileTradeAnim_GiveTrademon1 ; 03
- dw MobileTradeAnim_GiveTrademon2 ; 04
- dw MobileTradeAnim_05 ; 05
- dw MobileTradeAnim_06 ; 06
- dw MobileTradeAnim_07 ; 07
- dw MobileTradeAnim_GetTrademon1 ; 08
- dw MobileTradeAnim_GetTrademon2 ; 09
- dw MobileTradeAnim_GetTrademon3 ; 0a
- dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
- dw EndMobileTradeAnim ; 0c
- dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
- dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
- dw MobileTradeAnim_0f ; 0f
- dw MobileTradeAnim_10 ; 10
- dw MobileTradeAnim_11 ; 11
- dw MobileTradeAnim_FadeToBlack ; 12
- dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
-; 1082b2
-
-MobileTradeAnim_Next: ; 1082b2
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 1082b7
-
-GetMobileTradeAnimByte: ; 1082b7
- ld hl, wTradeAnimAddress
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- ld [wJumptableIndex], a
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-; 1082c6
-
-EndMobileTradeAnim: ; 1082c6
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 1082cc
-
-WaitMobileTradeSpriteAnims: ; 1082cc
-.loop
- push bc
- callba PlaySpriteAnimations
- pop bc
- call DelayFrame
- dec c
- jr nz, .loop
- ret
-; 1082db
-
-Function1082db: ; 1082db
-.loop
- callba PlaySpriteAnimations
- callba SetUpPokeAnim
- callba HDMATransferTileMapToWRAMBank3
- jr nc, .loop
- ret
-; 1082f0
-
-Function1082f0: ; 1082f0
-.loop
- call Function108b78
- call DelayFrame
- dec c
- jr nz, .loop
- ret
-; 1082fa
-
-Function1082fa: ; 1082fa
-.loop
- call Function108b78
- push hl
- push bc
- callba PlaySpriteAnimations
- pop bc
- pop hl
- call DelayFrame
- dec c
- jr nz, .loop
- ret
-; 10830e
-
-MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
- ld a, $80
- ld [hSCX], a
- xor a
- ld [hSCY], a
- ld a, $87
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- call MobileTradeAnim_DisplayMonToBeSent
- ld a, [wPlayerTrademonSpecies]
- ld [CurPartySpecies], a
- call Function10895e
- ld a, [wPlayerTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wPlayerTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call WaitBGMap
-.loop
- ld a, [hWX]
- cp $7
- jr z, .okay
- sub $4
- ld [hWX], a
- ld a, [hSCX]
- sub $4
- ld [hSCX], a
- call DelayFrame
- jr .loop
-
-.okay
- ld a, $7
- ld [hWX], a
- xor a
- ld [hSCX], a
- ld a, [wPlayerTrademonSpecies]
- call GetCryIndex
- jr c, .skip_cry
- ld e, c
- ld d, b
- call PlayCryHeader
-
-.skip_cry
- ld c, 80
- call DelayFrames
- call Function108bec
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
- call _InitSpriteAnimStruct
- ld de, SFX_BALL_POOF
- call PlaySFX
- hlcoord 0, 0
- ld bc, 12 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- ld c, 80
- call WaitMobileTradeSpriteAnims
- call GetMobileTradeAnimByte
- ret
-; 10839b
-
-MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- call Function108201
- call EnableLCD
- callba DeinitializeAllSprites
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
- call _InitSpriteAnimStruct
- call Function108b45
- ld a, $1
- call Function108b98
- call Function108af4
- ld c, 48
- call WaitMobileTradeSpriteAnims
- ld de, SFX_BALL_POOF
- call PlaySFX
- call MobileTradeAnim_DisplayReceivedMon
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call Function108963
- ld a, [wOTTrademonSpecies]
- call Function108229
- call Function1082db
- call Function108c16
- call GetMobileTradeAnimByte
- ret
-; 10842c
-
-MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
- ld a, $80
- ld [hSCX], a
- xor a
- ld [hSCY], a
- ld a, $87
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- call MobileTradeAnim_DisplayMonToBeSent
- ld a, [wPlayerTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wPlayerTrademonDVs
- call Function10898a
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
- ld a, [wPlayerTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wPlayerTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call WaitBGMap
-.loop
- ld a, [hWX]
- cp $7
- jr z, .done
- sub $4
- ld [hWX], a
- ld a, [hSCX]
- sub $4
- ld [hSCX], a
- call DelayFrame
- jr .loop
-
-.done
- ld a, $7
- ld [hWX], a
- xor a
- ld [hSCX], a
- ld a, [wPlayerTrademonSpecies]
- call GetCryIndex
- jr c, .skip_cry
- ld e, c
- ld d, b
- call PlayCryHeader
-
-.skip_cry
- ld c, 80
- call DelayFrames
- call Function108c2b
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
- call _InitSpriteAnimStruct
- ld de, SFX_BALL_POOF
- call PlaySFX
- hlcoord 0, 0
- ld bc, 12 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- ld c, 80
- call WaitMobileTradeSpriteAnims
- call GetMobileTradeAnimByte
- ret
-; 1084d7
-
-MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- call Function108201
- call EnableLCD
- callba DeinitializeAllSprites
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
- call _InitSpriteAnimStruct
- call Function108b45
- ld a, $1
- call Function108b98
- call Function108af4
- ld c, 48
- call WaitMobileTradeSpriteAnims
- ld de, SFX_BALL_POOF
- call PlaySFX
- call MobileTradeAnim_DisplayReceivedMon
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- call Function10898a
- ld a, [wOTTrademonSpecies]
- call Function108229
- call Function1082db
- call Function108c40
- call GetMobileTradeAnimByte
- ret
-; 108589
-
-MobileTradeAnim_GetOddEgg: ; 108589
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld hl, wOTTrademonDVs
- ld de, VTiles2
- call Function108201
- call EnableLCD
- callba DeinitializeAllSprites
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0
- lb bc, BANK(TradeBallGFX), $06
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $06
- lb bc, BANK(TradePoofGFX), $0c
- call Request2bpp
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
- call _InitSpriteAnimStruct
- call Function108b45
- ld a, $1
- call Function108b98
- call Function108af4
- ld c, 48
- call WaitMobileTradeSpriteAnims
- ld de, SFX_BALL_POOF
- call PlaySFX
- call Function108a33
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- ld a, [wOTTrademonSpecies]
- ld [CurPartySpecies], a
- ld a, [wOTTrademonDVs]
- ld [TempMonDVs], a
- ld a, [wOTTrademonDVs + 1]
- ld [TempMonDVs + 1], a
- ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
- call GetSGBLayout
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- ld a, [wOTTrademonSpecies]
- ld hl, wOTTrademonDVs
- call Function10898a
- ld a, [wOTTrademonSpecies]
- call Function108229
- call Function1082db
- call GetMobileTradeAnimByte
- ret
-; 108638
-
-MobileTradeAnim_02: ; 108638
- callba DeinitializeAllSprites
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- call Function108c80
- call Function108c6d
- call EnableLCD
- ld a, $c
- ld [hSCX], a
- ld a, $78
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_109107
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function108d07
- call Function108af4
- call GetMobileTradeAnimByte
- ret
-; 108689
-
-MobileTradeAnim_10: ; 108689
- callba DeinitializeAllSprites
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- call MobileTradeAnim_ClearBGMap
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_108da7
- ld de, VTiles2
- call Decompress
- ld a, $0
- ld [rVBK], a
- ld hl, LZ_108d27
- ld de, VTiles0 tile $20
- call Decompress
- call Function108c80
- call Function108c6d
- call EnableLCD
- ld a, $c
- ld [hSCX], a
- ld a, $78
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_109107
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function108d07
- call Function108af4
- call GetMobileTradeAnimByte
- ret
-; 1086f4
-
-MobileTradeAnim_11: ; 1086f4
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_108da7
- ld de, VTiles2
- call Decompress
- ld a, $0
- ld [rVBK], a
- ld hl, LZ_108d27
- ld de, VTiles0 tile $20
- call Decompress
- call Function108c80
- call Function108c6d
- call EnableLCD
- ld a, $80
- ld [hSCX], a
- ld a, $90
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_109107
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- call Function108d07
- call Function108af4
- call Function108b5a
- ld a, $e0
- ld [hSCX], a
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
- call GetMobileTradeAnimByte
- ret
-; 108763
-
-MobileTradeAnim_GiveTrademon1: ; 108763
- ld de, SFX_GIVE_TRADEMON
- call PlaySFX
- ld c, 40
- ld hl, BGPals + 6 palettes
- call Function1082f0
- call Function108af4
-.loop
- ld a, [hSCX]
- cp $e0
- jr z, .loop2
- dec a
- dec a
- ld [hSCX], a
- cp $f8
- jr nz, .next
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
-
-.next
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop
-
-.loop2
- ld a, [hSCY]
- cp $f8
- jr z, .done
- dec a
- dec a
- ld [hSCY], a
- cp $40
- jr z, .init
- cp $30
- jr z, .delete
- cp $68
- jr z, .replace
- jr .next2
-
-.init
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
- xor a
- call Function108ad4
- jr .next2
-
-.delete
- call MobileTradeAnim_DeleteSprites
- jr .next2
-
-.replace
- call MobileTradeAnim_DeleteSprites
- ld a, $1
- call Function108ad4
-.next2
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop2
-
-.done
- call MobileTradeAnim_Next
- ret
-; 1087cf
-
-MobileTradeAnim_GiveTrademon2: ; 1087cf
- ld c, 40
- ld hl, BGPals + 1 palettes
- call Function1082f0
- call Function108af4
- call Function108b5a
- depixel 9, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_25
- call _InitSpriteAnimStruct
- ld de, SFX_FORESIGHT
- call PlaySFX
- ld c, 10
- call WaitMobileTradeSpriteAnims
- xor a
- ld [wcf64], a
- depixel 9, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_23
- call _InitSpriteAnimStruct
-.loop
- ld a, [hSCY]
- cp $90
- jr z, .done
- sub $8
- ld [hSCY], a
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop
-
-.done
- call GetMobileTradeAnimByte
- ret
-; 108811
-
-MobileTradeAnim_05: ; 108811
- ld c, 40
- call WaitMobileTradeSpriteAnims
- ld a, $1
- ld [wcf64], a
- ld de, SFX_SHARPEN
- call PlaySFX
- ld c, 60
- call WaitMobileTradeSpriteAnims
- depixel 30, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_24
- call _InitSpriteAnimStruct
- call GetMobileTradeAnimByte
- ld de, SFX_THROW_BALL
- call PlaySFX
- ret
-; 108838
-
-MobileTradeAnim_06: ; 108838
- ld c, 40
- call WaitMobileTradeSpriteAnims
- ld a, $1
- ld [wcf64], a
- ld de, SFX_SHARPEN
- call PlaySFX
- call GetMobileTradeAnimByte
- ret
-; 10884c
-
-MobileTradeAnim_07: ; 10884c
- ld c, 80
- call DelayFrames
- depixel 30, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_24
- call _InitSpriteAnimStruct
- call GetMobileTradeAnimByte
- ld de, SFX_THROW_BALL
- call PlaySFX
- ret
-; 108863
-
-MobileTradeAnim_GetTrademon1: ; 108863
- ld c, 40
- call WaitMobileTradeSpriteAnims
-.loop
- ld a, [hSCY]
- cp $f8
- jr z, .done
- add $8
- ld [hSCY], a
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .loop
-
-.done
- callba DeinitializeAllSprites
- depixel 9, 10, 2, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_25
- call _InitSpriteAnimStruct
- ld de, SFX_GLASS_TING_2
- call PlaySFX
- call Function108af4
- call MobileTradeAnim_Next
- ret
-; 108894
-
-MobileTradeAnim_GetTrademon2: ; 108894
- ld c, 20
- ld hl, BGPals + 1 palettes
- call Function1082fa
- ld de, SFX_GIVE_TRADEMON
- call PlaySFX
- ld c, 20
- ld hl, BGPals + 1 palettes
- call Function1082fa
- call Function108af4
-.asm_1088ad
- ld a, [hSCY]
- cp $78
- jr z, .asm_1088ee
- inc a
- inc a
- ld [hSCY], a
- cp $30
- jr z, .asm_1088c5
- cp $40
- jr z, .asm_1088dd
- cp $68
- jr z, .asm_1088cf
- jr .asm_1088e7
-
-.asm_1088c5
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
- jr .asm_1088e7
-
-.asm_1088cf
- depixel 10, 11, 4, 0
- ld a, SPRITE_ANIM_INDEX_MOBILE_22
- call _InitSpriteAnimStruct
- xor a
- call Function108ad4
- jr .asm_1088e7
-
-.asm_1088dd
- call MobileTradeAnim_DeleteSprites
- ld a, $1
- call Function108ad4
- jr .asm_1088e7
-
-.asm_1088e7
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .asm_1088ad
-
-.asm_1088ee
- ld a, [hSCX]
- cp $c
- jr z, .asm_108906
- inc a
- inc a
- ld [hSCX], a
- cp -8
- jr nz, .asm_1088e7
- call MobileTradeAnim_DeleteSprites
- ld c, 1
- call WaitMobileTradeSpriteAnims
- jr .asm_1088ee
-
-.asm_108906
- call MobileTradeAnim_Next
- ret
-; 10890a
-
-MobileTradeAnim_GetTrademon3: ; 10890a
- ld c, 40
- ld hl, BGPals + 6 palettes
- call Function1082f0
- call Function108af4
- call GetMobileTradeAnimByte
- ret
-; 108919
-
-MobileTradeAnim_0f: ; 108919
- ld c, 40
- call WaitMobileTradeSpriteAnims
- callba DeinitializeAllSprites
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call MobileTradeAnim_ClearVTiles
- call MobileTradeAnim_ClearBGMap
- call EnableLCD
- call GetMobileTradeAnimByte
- ret
-; 10893d
-
-MobileTradeAnim_FadeToBlack: ; 10893d
-.loop
- ld a, [rBGP]
- and a
- jr z, .blank
- sla a
- sla a
- call DmgToCgbBGPals
- call DmgToCgbObjPal0
- ld c, 4
- call DelayFrames
- jr .loop
-
-.blank
- xor a
- call DmgToCgbBGPals
- call DmgToCgbObjPal0
- call GetMobileTradeAnimByte
- ret
-; 10895e
-
-Function10895e: ; 10895e
- ld de, VTiles0 tile $30
- jr asm_108966
-
-Function108963:
- ld de, VTiles2 tile $31
-asm_108966
- call DelayFrame
- ld hl, VTiles2
- lb bc, $a, $31 ; $a is the bank of ?????
- call Request2bpp
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- hlcoord 7, 2
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- call WaitBGMap
- ret
-; 10898a
-
-Function10898a: ; 10898a
- ld de, VTiles2
- call MobileTradeAnim_GetFrontpic
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- hlcoord 7, 2
- xor a
- ld [hGraphicStartTile], a
- lb bc, 7, 7
- predef PlaceGraphic
- call WaitBGMap
- ret
-; 1089a8
-
-MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
- ld de, wPlayerTrademonSpecies
- ld a, [de]
- cp EGG
- jr z, MobileTradeAnim_DisplayEggData
- call MobileTradeAnim_LoadMonTemplate
- ld de, wPlayerTrademonSpecies
- call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
- ld de, wPlayerTrademonSpeciesName
- call MobileTradeAnim_MonDisplay_PrintSpeciesName
- ld a, [wPlayerTrademonCaughtData]
- ld de, wPlayerTrademonOTName
- call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
- ld de, wPlayerTrademonID
- call MobileTradeAnim_MonDisplay_PrintIDNumber
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-
-MobileTradeAnim_DisplayReceivedMon:
- ld de, wOTTrademonSpecies
- ld a, [de]
- cp EGG
- jr z, MobileTradeAnim_DisplayEggData
- call MobileTradeAnim_LoadMonTemplate
- ld de, wOTTrademonSpecies
- call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
- ld de, wOTTrademonSpeciesName
- call MobileTradeAnim_MonDisplay_PrintSpeciesName
- ld a, [wOTTrademonCaughtData]
- ld de, wOTTrademonOTName
- call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
- ld de, wOTTrademonID
- call MobileTradeAnim_MonDisplay_PrintIDNumber
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-
-MobileTradeAnim_DisplayEggData
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 5, 0
- ld b, 6
- ld c, 9
- call TextBox
- hlcoord 6, 2
- ld de, .EggTemplate
- call PlaceString
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-; 108a1d
-
-.EggTemplate: ; 108a1d
- db "タマゴ"
- next "おや/?????"
- next "<ID>№<DOT>?????"
- db "@"
-; 108a33
-
-Function108a33: ; 108a33
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 5, 0
- ld b, 6
- ld c, 9
- call TextBox
- hlcoord 7, 4
- ld de, .OddEgg
- call PlaceString
- call MobileTradeAnim_MonDisplay_UpdateBGMap
- ret
-; 108a54
-
-.OddEgg: ; 108a54
- db "なぞのタマゴ@"
-; 108a5b
-
-MobileTradeAnim_LoadMonTemplate: ; 108a5b
- call WaitTop
- call MobileTradeAnim_ClearTilemap
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 4, 0
- ld b, 6
- ld c, 10
- call TextBox
- hlcoord 5, 0
- ld de, .MonTemplate
- call PlaceString
- ret
-; 108a79
-
-.MonTemplate: ; 108a79
- db "─ №<DOT>"
- next ""
- next "おや/"
- next "<ID>№<DOT>"
- db "@"
-; 108a87
-
-MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ret
-; 108a92
-
-MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
- hlcoord 9, 0
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ret
-; 108a9c
-
-MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
- hlcoord 5, 2
- call PlaceString
- ret
-; 108aa3
-
-MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
- cp $3
- jr c, .got_gender
- xor a
-.got_gender
- push af
- hlcoord 8, 4
- call PlaceString
- inc bc
- pop af
- ld hl, .GenderChars
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- ld [bc], a
- ret
-; 108abb
-
-.GenderChars: ; 108abb
- db " "
- db "♂"
- db "♀"
-; 108abe
-
-MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
- hlcoord 8, 6
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-; 108ac8
-
-MobileTradeAnim_ClearTilemap: ; 108ac8
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ret
-; 108ad4
-
-Function108ad4: ; 108ad4
- and a
- jr z, .asm_108adc
- ld de, GFX_1092c7
- jr .asm_108adf
-
-.asm_108adc
- ld de, GFX_1091c7
-.asm_108adf
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles2 tile $4a
- lb bc, BANK(GFX_1092c7), 16
- call Get2bpp_2
- call DelayFrame
- ld a, $0
- ld [rVBK], a
- ret
-; 108af4
-
-Function108af4: ; 108af4
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf65]
- and $1
- jr z, .copy_palette_109147
- ld hl, Palette_109187
- ld de, UnknOBPals
- ld bc, 8 palettes
- call CopyBytes
- ld hl, Palette_109187
- ld de, OBPals
- ld bc, 8 palettes
- call CopyBytes
- jr .done_copy
-
-.copy_palette_109147
- ld hl, Palette_109147
- ld de, UnknOBPals
- ld bc, 8 palettes
- call CopyBytes
- ld hl, Palette_109147
- ld de, OBPals
- ld bc, 8 palettes
- call CopyBytes
-
-.done_copy
- pop af
- ld [rSVBK], a
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbObjPal0
- ld a, %11100100 ; 3,2,1,0
- call DmgToCgbBGPals
- call DelayFrame
- ret
-; 108b45
-
-Function108b45: ; 108b45
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
- ld hl, UnknBGPals
- ld a, e
- ld [hli], a
- ld d, a
- ld [hli], a
- pop af
- ld [rSVBK], a
- ret
-; 108b5a
-
-Function108b5a: ; 108b5a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
- ld hl, BGPals + 4 palettes
- ld c, $10
-.loop
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- dec c
- jr nz, .loop
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 108b78
-
-Function108b78: ; 108b78
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, c
- and $2
- jr z, .Orange
- ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
- jr .load_pal
-
-.Orange:
- ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
-.load_pal
- ld a, e
- ld [hli], a
- ld a, d
- ld [hld], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 108b98
-
-Palette_108b98:
-; removed
-
-Function108b98: ; 108b98
- ld d, a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, [wcf65]
- and $1
- xor d
- jr z, .asm_108bad
- ld hl, Palette_108b98 + 1 palettes
- jr .asm_108bb0
-
-.asm_108bad
- ld hl, Palette_108b98
-.asm_108bb0
- ld de, UnknBGPals + 7 palettes
- ld bc, 8 palettes
- call CopyBytes
- pop af
- ld [rSVBK], a
- ret
-; 108bbd
-
-MobileTradeAnim_DeleteSprites: ; 108bbd
- callba DeinitializeAllSprites
- call ClearSprites
- ret
-; 108bc7
-
-Function108bc7: ; 108bc7 (42:4bc7)
- ld a, [wcf64]
- and a
- ret z
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- cp -1 * 8 - 6
- jr z, .delete
- sub 1 * 8
- ld [hl], a
- ret
-
-.delete
- callba DeinitializeSprite
- ret
-
-Function108be0: ; 108be0 (42:4be0)
- ld hl, SPRITEANIMSTRUCT_YCOORD
- add hl, bc
- ld a, [hl]
- cp 9 * 8 + 2
- ret z
- add 1 * 8
- ld [hl], a
- ret
-; 108bec (42:4bec)
-
-Function108bec: ; 108bec
- ld a, $90
- ld [hWY], a
- ld hl, .PlayerWillTradeMon
- call PrintText
- ld c, 80
- call DelayFrames
- ld hl, .ForPartnersMon
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c07
-
-.PlayerWillTradeMon: ; 0x108c07
- text_jump UnknownText_0x1bc787
- db "@"
-; 0x108c0c
-
-.ForPartnersMon: ; 0x108c0c
- text_jump UnknownText_0x1bc79d
- db "@"
-; 0x108c11
-
-.UnusedTextPlayersMonTrade: ; 0x108c11
- text_jump UnknownText_0x1bc7b0
- db "@"
-; 0x108c16
-
-Function108c16: ; 108c16
- ld a, $90
- ld [hWY], a
- ld hl, .TakeGoodCareOfMon
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c26
-
-.TakeGoodCareOfMon: ; 0x108c26
- text_jump UnknownText_0x1bc7c3
- db "@"
-; 0x108c2b
-
-Function108c2b: ; 108c2b
- ld a, $90
- ld [hWY], a
- ld hl, .PlayersMonTrade
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c3b
-
-.PlayersMonTrade: ; 0x108c3b
- text_jump UnknownText_0x1bc7dd
- db "@"
-; 0x108c40
-
-Function108c40: ; 108c40
- ld a, $90
- ld [hWY], a
- ld a, [wcf65]
- and %10000000
- jr z, .Getmon
- ld hl, .CameBack
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-
-.Getmon:
- ld hl, .TakeGoodCareOf
- call PrintText
- ld c, 80
- call DelayFrames
- ret
-; 108c63
-
-.TakeGoodCareOf: ; 0x108c63
- text_jump UnknownText_0x1bc7f0
- db "@"
-; 0x108c68
-
-.CameBack: ; 0x108c68
- text_jump UnknownText_0x1bc80a
- db "@"
-; 0x108c6d
-
-Function108c6d: ; 108c6d
- ld hl, LZ_108fe7
- debgcoord 0, 0
- call Decompress
- ld hl, LZ_108fe7
- debgcoord 0, 0, VBGMap1
- call Decompress
- ret
-; 108c80
-
-Function108c80: ; 108c80
- ld a, $1
- ld [rVBK], a
- ld hl, LZ_1090a7
- debgcoord 0, 0
- call Decompress
- ld hl, LZ_1090a7
- debgcoord 0, 0, VBGMap1
- call Decompress
- ld a, $0
- ld [rVBK], a
- ret
-; 108c9b
-
-DebugMobileTrade: ; 108c9b
-; localization error: NAME_LENGTH (11) should be 6 here
-
- ld hl, .DebugTradeData
- ld a, [hli]
- ld [wPlayerTrademonSpecies], a
-
- ld de, wPlayerTrademonSenderName
- ld c, NAME_LENGTH
-.your_name_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .your_name_loop
-
- ld de, wPlayerTrademonID
- ld c, 2
-.your_id_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .your_id_loop
-
- ld de, wPlayerTrademonOTName
- ld c, NAME_LENGTH
-.your_ot_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .your_ot_loop
-
- ld a, [hli]
- ld [wOTTrademonSpecies], a
-
- ld de, wOTTrademonSenderName
- ld c, NAME_LENGTH
-.their_name_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .their_name_loop
-
- ld de, wOTTrademonID
- ld c, 2
-.their_id_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .their_id_loop
-
- ld de, wOTTrademonOTName
- ld c, NAME_LENGTH
-.their_ot_loop
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .their_ot_loop
-
- ret
-; 108ce9
-
-.DebugTradeData:
- db VENUSAUR
- db "ゲーフり@@"
- dw $0123
- db "かびーん@@"
- db CHARIZARD
- db "クりーチャ@"
- dw $0456
- db "マツミヤ@@"
-; 108d07
-
-Function108d07: ; 108d07
- ld a, [wc74e]
- and $7f
- cp $8
- jr c, .asm_108d12
- ld a, $7
-
-.asm_108d12
- ld bc, 1 palettes
- ld hl, Palette_1093c7
- call AddNTimes
- ld a, $5
- ld de, UnknBGPals + 4 palettes
- ld bc, 1 palettes
- call FarCopyWRAM
- ret
-; 108d27
-
-LZ_108d27:
-INCBIN "gfx/unknown/108d27.2bpp.lz"
-
-LZ_108da7:
-INCBIN "gfx/unknown/108da7.2bpp.lz"
-
-LZ_108fe7:
-INCBIN "gfx/unknown/108fe7.tilemap.lz"
-
-LZ_1090a7:
-INCBIN "gfx/unknown/1090a7.tilemap.lz"
-
-Palette_1090f7:
-; unreferenced
- RGB 31, 31, 31
- RGB 0, 0, 0
-
- RGB 31, 0, 25
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
-
- RGB 9, 19, 31
- RGB 0, 0, 0
-
-Palette_109107:
- RGB 18, 31, 15
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 15, 1
- RGB 14, 14, 31
- RGB 12, 9, 31
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 14, 14, 31
- RGB 12, 9, 31
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 7, 9
- RGB 18, 0, 1
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 15, 1
- RGB 18, 0, 30
- RGB 9, 0, 17
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 18, 0, 30
- RGB 9, 0, 17
- RGB 0, 0, 0
-
-Palette_109147:
- RGB 31, 31, 31
- RGB 31, 31, 12
- RGB 31, 13, 12
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 23, 15
- RGB 31, 18, 7
- RGB 31, 15, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 0, 25
- RGB 31, 0, 25
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 9, 19, 31
- RGB 9, 19, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-Palette_109187:
- RGB 31, 31, 31
- RGB 31, 31, 12
- RGB 31, 13, 12
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 23, 15
- RGB 31, 18, 7
- RGB 31, 15, 0
-
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 11, 11, 11
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 9, 19, 31
- RGB 9, 19, 31
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 31, 0, 25
- RGB 31, 0, 25
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-GFX_1091c7:
-INCBIN "gfx/unknown/1091c7.2bpp"
-GFX_1092c7:
-INCBIN "gfx/unknown/1092c7.2bpp"
-
-Palette_1093c7:
- RGB 18, 31, 15
- RGB 4, 13, 31
- RGB 0, 0, 31
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 31, 0
- RGB 31, 15, 0
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 9, 24, 0
- RGB 2, 16, 0
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 7, 9
- RGB 18, 0, 1
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 28, 5, 31
- RGB 17, 0, 17
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 9, 9, 9
- RGB 4, 4, 4
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 31, 13, 21
- RGB 27, 7, 12
- RGB 0, 0, 0
-
- RGB 18, 31, 15
- RGB 21, 20, 20
- RGB 14, 14, 31
- RGB 0, 0, 0
diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm
deleted file mode 100644
index d6743acc2..000000000
--- a/misc/mobile_45.asm
+++ /dev/null
@@ -1,7690 +0,0 @@
-
-SECTION "bank45", ROMX
-
- charmap " ", $20 ; revert to ascii
-
-String_114000:
- db "---", 0
-String_114004:
- db "CGB-AAAA-00", 0, 0
-
-Unknown_114011: ; 114011
- dw String_114033
- dw String_11403a
- dw String_114043
- dw String_11404e
- dw String_114053
- dw String_114058
- dw String_114062
- dw String_114074
- dw String_11408d
- dw String_11409f
- dw String_1140b8
- dw String_1140e6
- dw String_114110
- dw String_11413f
- dw String_114160
- dw String_114160
- dw String_114163
-
-String_114033: ; 114033
- db "From: ", 0
-String_11403a: ; 11403a
- db "Sender: ", 0
-String_114043: ; 114043
- db "Reply-To: ", 0
-String_11404e: ; 11404e
- db "To: ", 0
-String_114053: ; 114053
- db "Cc: ", 0
-String_114058: ; 114058
- db "Subject: ", 0
-String_114062: ; 114062
- db "MIME-Version: 1.0", 0
-String_114074: ; 114074
- db "X-Game-title: XXXXXXXXXX", 0
-String_11408d: ; 11408d
- db "X-Game-code: CGB-", 0
-String_11409f: ; 11409f
- db "X-GBmail-type: exclusive", 0
-String_1140b8: ; 1140b8
- db "Content-Type: text/plain; charset=iso-2022-jp", 0
-String_1140e6: ; 1140e6
- db "Content-Type: multipart/mixed; boundary=\"", 0
-String_114110: ; 114110
- db "Content-Type: Application/Octet-Stream; name=\"", 0
-String_11413f: ; 11413f
- db "Content-Transfer-Encoding:Base64", 0
-String_114160: ; 114160
- db "--", 0
-String_114163: ; 114163
- db ".", 0
-; 114165
-
-Jumptable_114165: ; 114165
- dw Function114268
- dw Function114269
- dw Function11433c
- dw Function1143b7
- dw Function1144d1
- dw Function114b55
- dw Function114bbc
- dw Function114cd9
- dw Function114e62
- dw Function1152b8
- dw Function1154d4
- dw Function1156cc
- dw Function1159fb
-; 11417f
-
-Unknown_11417f: ; 11417f
- dw .From
- dw .Sender
- dw .ReplyTo
- dw .To
- dw .CC
- dw .Subject
- dw .Date
- dw .ContentType
- dw .MimeVersion
- dw .XMailer
- dw .XGameTitle
- dw .XGameCode
- dw .XGBMailType
-
-.From: ; 114199
- db "FROM:", 0
-.Sender: ; 11419f
- db "SENDER:", 0
-.ReplyTo: ; 1141a7
- db "REPLY-TO:", 0
-.To: ; 1141b1
- db "TO:", 0
-.CC: ; 1141b5
- db "CC:", 0
-.Subject: ; 1141b9
- db "SUBJECT:", 0
-.Date: ; 1141c2
- db "DATE:", 0
-.ContentType: ; 1141c8
- db "CONTENT-TYPE:", 0
-.MimeVersion: ; 1141d6
- db "MIME-VERSION:", 0
-.XMailer: ; 1141e4
- db "X-MAILER:", 0
-.XGameTitle: ; 1141ee
- db "X-GAME-TITLE:", 0
-.XGameCode: ; 1141fc
- db "X-GAME-CODE:", 0
-.XGBMailType: ; 114209
- db "X-GBMAIL-TYPE:", 0
-; 114218
-
-String_114218: ; 114218
- db "NAME=", 0
-String_11421e: ; 11421e
- db "MULTIPART", 0
-String_114228: ; 114228
- db "BOUNDARY=", 0
-String_114232: ; 114232
- db "=?ISO-2022-JP?B?", 0
-; 114243
-
-Function114243:: ; 114243
- ld a, SRAM_ENABLE
- ld [MBC3SRamEnable], a
- ld a, [hFF8C]
- push af ; if [$dc02] == 0, this is popped to pc.
- push de
- ld a, [$dc02]
- add a
- ld e, a
- ld d, 0
- ld hl, Jumptable_114165
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- jp hl
-
-; 11425c
-
-Function11425c: ; 11425c
- ld [$dc02], a
- pop af
- ld [hFF8C], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ret
-
-; 114268
-
-Function114268: mobile
-
-; 114269
-
-Function114269: ; 114269
- ld h, d
- ld l, e
- xor a
- ld [$dc02], a
- ld [$dc03], a
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
-.asm_114282
- ld a, [de]
- and a
- jr z, .asm_1142a4
- ld h, a
- ld a, [$dc03]
- and a
- jr nz, .asm_114292
- ld a, h
- cp $80
- jr nc, .asm_1142ae
-
-.asm_114292
- ld a, h
- cp $d
- jr z, .asm_1142bb
- xor a
- ld [$dc02], a
-.asm_11429b
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr nz, .asm_114282
-
-.asm_1142a4
- ld a, [$dc03]
- and a
- jr nz, .asm_114303
- ld b, $80
- jr .asm_1142b0
-
-.asm_1142ae
- ld b, $81
-
-.asm_1142b0
- ld a, [$dc00]
- ld c, a
- ld a, $1
- ld h, d
- ld l, e
- jp Function11425c
-
-.asm_1142bb
- and a
- jr z, .asm_1142a4
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr z, .asm_1142a4
- ld a, [de]
- ld h, a
- ld a, [$dc03]
- and a
- jr nz, .asm_1142d4
- ld a, h
- cp $80
- jr nc, .asm_1142ae
-
-.asm_1142d4
- ld a, h
- cp $a
- jr nz, .asm_1142ae
- ld a, [$dc03]
- and a
- jr nz, .asm_11430d
- ld a, [$dc02]
- and a
- jr nz, .asm_114309
- ld a, $1
- ld [$dc02], a
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr z, .asm_1142a4
- ld a, [de]
- cp $20
- jr z, .asm_11429b
- cp $9
- jr z, .asm_11429b
- jr .asm_114282
-
-.asm_1142fe
- xor a
- ld b, a
- jp Function11425c
-
-.asm_114303
- xor a
- ld b, $1
- jp Function11425c
-
-.asm_114309
- xor a
- ld [$dc02], a
-
-.asm_11430d
- ld a, [$dc02]
- and a
- jr nz, .asm_1142fe
- ld a, $1
- ld [$dc03], a
- inc e
- call z, Function114333
- dec bc
- ld a, b
- or c
- jr z, .asm_1142a4
- ld a, [de]
- and a
- jp z, .asm_1142a4
- cp $2e
- jp nz, .asm_114282
- ld a, $1
- ld [$dc02], a
- jp .asm_11429b
-
-; 114333
-
-Function114333: ; 114333
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 11433c
-
-Function11433c: ; 11433c
- push de
- ld h, d
- ld l, e
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, $b
- call Function1143f3
- cp $2
- jr z, .asm_114358
- and a
- jr z, .asm_114360
- pop hl
-.asm_114351
- xor a
- ld b, $3
- jp Function11425c
-
-.asm_114357
- pop hl
-
-.asm_114358
- pop hl
- ld a, $1
- ld b, $82
- jp Function11425c
-
-.asm_114360
- ld a, h
- ld [$dc03], a
- pop hl
- push bc
- push de
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld b, $c
- call Function1143f3
- cp $2
- jr z, .asm_114357
- and a
- jr z, .asm_114381
- xor a
- ld b, $2
- pop hl
- pop hl
- jp Function11425c
-
-.asm_114381
- pop de
- pop bc
- ld a, [$dc03]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114c0b
- ld hl, String_114004
-.asm_114394
- ld de, $dc24
-.asm_114397
- ld a, [hli]
- and a
- jr z, .asm_1143ad
- ld b, a
- ld a, [de]
- inc de
- cp b
- jr z, .asm_114397
-.asm_1143a1
- ld a, [hli]
- and a
- jr nz, .asm_1143a1
- ld a, [hl]
- and a
- jr nz, .asm_114394
- ld b, a
- jp Function11425c
-
-.asm_1143ad
- ld a, [de]
- and a
- jr nz, .asm_114351
- xor a
- ld b, $1
- jp Function11425c
-
-; 1143b7
-
-Function1143b7: ; 1143b7
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- ld c, a
- inc de
- ld a, [de]
- ld h, a
- inc de
- ld a, [de]
- inc de
- push de
- ld d, a
- ld e, h
- call Function1143f3
- cp $2
- jr z, .asm_1143eb
- and a
- jr nz, .asm_1143ed
- ld a, h
- pop hl
- push af
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- jp Function11425c
-
-.asm_1143eb
- ld b, $82
-
-.asm_1143ed
- ld a, $1
- pop hl
- jp Function11425c
-
-; 1143f3
-
-Function1143f3: ; 1143f3
- call Function114412
- and a
- jr nz, .asm_11440d
- ld a, $4
- cp b
- jr c, .asm_114407
- jr z, .asm_114402
-.asm_114400
- xor a
- ret
-
-.asm_114402
- ld a, $0
- cp c
- jr nc, .asm_114400
-
-.asm_114407
- lb bc, $4, $0
- ld a, $2
- ret
-
-.asm_11440d
- ld a, $1
- ld b, $84
- ret
-
-; 114412
-
-Function114412: ; 114412
- ld a, c
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, Unknown_11417f
- ld a, b
- add a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld c, $0
- jr .asm_11444a
-
-.asm_11442b
- ld a, [de]
- and a
- jp z, .asm_1144c2
- inc e
- call z, Function1144c8
- cp $d ; CR
- jr nz, .asm_11442b
- ld a, [de]
- inc e
- call z, Function1144c8
- cp $a ; NL
- jr nz, .asm_11442b
- ld a, [de]
- cp $2e ; .
- jr z, .asm_1144ae
- cp $d ; CR
- jr z, .asm_1144b8
-
-.asm_11444a
- ld a, [$dc00]
- ld [$dc02], a
- ld a, [de]
- and a
- jr z, .asm_1144c2
- inc e
- call z, Function1144c8
- cp $61 ; "a"
- jr c, .asm_114462
- cp $7b ; "z" + 1
- jr nc, .asm_114462
- sub $20
-
-.asm_114462
- ld b, a
- ld a, [hl]
- and a
- jr z, .asm_114476
- cp b
- jr nz, .asm_11446e
- inc c
- inc hl
- jr .asm_11444a
-
-.asm_11446e
- ld a, c
- and a
- jr z, .asm_11442b
- dec c
- dec hl
- jr .asm_11446e
-
-.asm_114476
- ld a, $20 ; " "
- cp b
- jr z, .asm_114481
- ld a, $a ; NL
- cp b
- jr z, .asm_114481
- dec de
-
-.asm_114481
- ld h, d
- ld l, e
- ld bc, NULL
-.asm_114486
- ld a, [de]
- and a
- jr z, .asm_1144c2
- inc bc
- inc e
- call z, Function1144c8
- cp $d ; CR
- jr nz, .asm_114486
- ld a, [de]
- inc bc
- inc e
- call z, Function1144c8
- cp $a ; NL
- jr nz, .asm_114486
- ld a, [de]
- cp $20 ; " "
- jr z, .asm_114486
- cp $9 ; TAB
- jr z, .asm_114486
- ld d, h
- ld e, l
- ld a, [$dc02]
- ld h, a
- xor a
- ret
-
-.asm_1144ae
- inc e
- call z, Function1144c8
- ld a, [de]
- cp $d ; CR
- jp nz, .asm_11442b
-
-.asm_1144b8
- inc e
- call z, Function1144c8
- ld a, [de]
- cp $a ; NL
- jp nz, .asm_11442b
-
-.asm_1144c2
- ld a, $0
- ld [hl], a
- ld a, $1
- ret
-
-; 1144c8
-
-Function1144c8: ; 1144c8
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 1144d1
-
-Function1144d1: ; 1144d1
- call Function114561
- dec de
- dec de
- push de
- inc de
- inc de
- inc de
- inc hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc hl
- ld a, [de]
- ld [hld], a
- dec de
- ld a, [de]
- ld [hl], a
- xor a
- ld [BigDoll], a
- ld [$dc17], a
- ld a, $2
- ld [$dc0e], a
- ld hl, $dc03
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114576
- cp $2
- jr z, .asm_11455b
- and a
- jr z, .asm_114511
- ld a, $1
- ld [$dc0d], a
- call Function1146fa
- and a
- jr nz, .asm_11455b
- jr .asm_11451c
-
-.asm_114511
- call Function1146a4
- and a
- jr nz, .asm_11455b
- ld a, $2
- ld [$dc0d], a
-
-.asm_11451c
- pop hl
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [$dc0d]
- ld [de], a
- ld b, $0
- ld a, [BigDoll]
- and a
- jr z, .asm_114537
- ld b, $1
-
-.asm_114537
- ld hl, $dc06
- ld a, [hl]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, $dc09
- ld e, [hl]
- inc hl
- ld d, [hl]
- dec de
- ld a, d
- or e
- jr z, .asm_114559
- ld hl, wCurrMapTriggerCount
- ld e, [hl]
- inc hl
- ld d, [hl]
- xor a
- ld [de], a
- jp Function11425c
-
-.asm_114559
- ld b, $83
-
-.asm_11455b
- pop hl
- ld a, $1
- jp Function11425c
-
-; 114561
-
-Function114561: ; 114561
- ld hl, $dc03
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- ret
-
-; 114576
-
-Function114576: ; 114576
- xor a
- ld [Bed], a
- ld b, $7
- call Function1143f3
- cp $2
- jr z, .asm_1145b6
- and a
- jr nz, .asm_1145b4
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- push hl
- push de
- push bc
- ld hl, $dc24
- call Function115d53
- call Function1145c5
- pop bc
- pop de
- pop hl
- and a
- jr z, .asm_1145bf
- ld a, b
- and a
- jr nz, .asm_1145ba
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, String_114218
- call Function114acf
-
-.asm_1145b4
- xor a
- ret
-
-.asm_1145b6
- ld b, $82
- jr .asm_1145bc
-
-.asm_1145ba
- ld b, $81
-
-.asm_1145bc
- ld a, $2
- ret
-
-.asm_1145bf
- ld a, $1
- ld [Bed], a
- ret
-
-; 1145c5
-
-Function1145c5: ; 1145c5
- ld hl, $dc24
- ld de, String_11421e
- ld c, $0
-.asm_1145cd
- ld a, [hli]
- and a
- jr z, .asm_1145ef
- cp $20
- jr z, .asm_1145cd
- cp $d
- jr z, .asm_1145f8
- cp $61
- jr c, .asm_1145e3
- cp $7b
- jr nc, .asm_1145e3
- sub $20
-
-.asm_1145e3
- ld b, a
- ld a, [de]
- and a
- jr z, .asm_11460e
- inc de
- cp b
- jr z, .asm_1145cd
- dec de
- jr .asm_1145cd
-
-.asm_1145ef
- ld b, $0
- jr .asm_1145f5
-
-.asm_1145f3
- ld b, $81
-
-.asm_1145f5
- ld a, $1
- ret
-
-.asm_1145f8
- ld a, [hli]
- and a
- jr z, .asm_1145f3
- cp $a
- jr nz, .asm_1145f3
- ld a, [hli]
- and a
- jr z, .asm_1145f3
- cp $20
- jr z, .asm_1145cd
- cp $9
- jr z, .asm_1145cd
- jr .asm_1145f3
-
-.asm_11460e
- ld a, c
- and a
- jr nz, .asm_114619
- ld c, $1
- ld de, String_114228
- jr .asm_1145cd
-
-.asm_114619
- dec hl
- ld a, [hl]
- cp $22
- jr nz, .asm_114620
- inc hl
-
-.asm_114620
- ld de, $ddc8
- ld b, $0
- ld c, $40
-.asm_114627
- ld a, [hli]
- cp $22
- jr z, .asm_114636
- cp $d
- jr z, .asm_114636
- ld [de], a
- inc de
- inc b
- dec c
- jr nz, .asm_114627
-
-.asm_114636
- ld a, b
- ld [PartyMon5Defense], a
- xor a
- ret
-
-; 11463c
-
-Function11463c: ; 11463c
- ld a, [$dc00]
- push af
- push de
- ld hl, $ddc8
- ld a, [PartyMon5Defense]
- ld b, a
-.asm_114648
- ld a, [de]
- ld c, a
- ld a, [hli]
- cp c
- jr nz, .asm_11468a
- inc e
- call z, Function11469b
- dec b
- jr nz, .asm_114648
- ld a, [de]
- cp $2d
- jr z, .asm_114673
- cp $d
- jr nz, .asm_11468a
- xor a
- ld [Carpet], a
-.asm_114662
- inc e
- call z, Function11469b
- ld a, [de]
- cp $a
- jr nz, .asm_11468a
- inc e
- call z, Function11469b
- xor a
- pop hl
- pop hl
- ret
-
-.asm_114673
- inc e
- call z, Function11469b
- ld a, [de]
- cp $2d
- jr nz, .asm_11468a
- inc e
- call z, Function11469b
- ld a, $1
- ld [Carpet], a
- ld a, [de]
- cp $d
- jr z, .asm_114662
-
-.asm_11468a
- pop de
- pop af
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- xor a
- ld [Carpet], a
- ld a, $1
- ret
-
-; 11469b
-
-Function11469b: ; 11469b
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 1146a4
-
-Function1146a4: ; 1146a4
- call Function114867
- and a
- jr nz, .asm_1146e4
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114a18
- and a
- jr nz, .asm_1146e8
- call Function1148c2
- and a
- jr nz, .asm_1146e4
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114a7a
- and a
- jr nz, .asm_1146e8
-.asm_1146da
- dec bc
- dec bc
- call Function1149cc
- and a
- jr nz, .asm_1146e4
- xor a
- ret
-
-.asm_1146e4
- ld b, $83
- jr .asm_1146f7
-
-.asm_1146e8
- ld a, [$dc17]
- and a
- jr z, .asm_1146f5
- ld a, $1
- ld [BigDoll], a
- jr .asm_1146da
-
-.asm_1146f5
- ld b, $81
-
-.asm_1146f7
- ld a, $1
- ret
-
-; 1146fa
-
-Function1146fa: ; 1146fa
- call Function114867
- and a
- jp nz, .asm_11478a
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function114a18
- and a
- jp nz, .asm_11478e
- call Function1149cc
- and a
- jp nz, .asm_11478a
- ld a, $1
- ld [$dc0e], a
- ld a, [$dc00]
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, $1
- ld [RightOrnament], a
- call Function1147cd
- and a
- jp nz, .asm_1147b7
-.asm_114737
- call Function114843
- cp $1
- jr nz, .asm_114749
- ld a, [$dc17]
- and a
- jr z, .asm_114794
- ld a, $1
- ld [BigDoll], a
-
-.asm_114749
- call Function11494d
- and a
- jr nz, .asm_11478a
- ld a, [BigDoll]
- and a
- jr nz, .asm_114786
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function1147cd
- and a
- jr nz, .asm_1147b7
- ld a, [$dc0e]
- cp $3
- jr nz, .asm_114773
- dec bc
- dec bc
-
-.asm_114773
- call Function1149cc
- and a
- jr nz, .asm_11478a
- ld a, [$dc0d]
- inc a
- ld [$dc0d], a
- ld a, [BigDoll]
- and a
- jr z, .asm_114799
-
-.asm_114786
- ld b, $1
- jr .asm_1147cb
-
-.asm_11478a
- ld b, $83
- jr .asm_114796
-
-.asm_11478e
- ld a, [$dc17]
- and a
- jr nz, .asm_114796
-
-.asm_114794
- ld b, $81
-
-.asm_114796
- ld a, $1
- ret
-
-.asm_114799
- ld a, [Carpet]
- and a
- jr z, .asm_114737
- jr .asm_1147cb
-
- ld hl, $dc03
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114a7a
- and a
- jr z, .asm_1147cb
- xor a
- ld [BigDoll], a
-
-.asm_1147b7
- ld a, [$dc17]
- and a
- jr z, .asm_114794
- ld a, $1
- ld [BigDoll], a
- ld a, [$dc0d]
- cp $1
- jr nz, .asm_114773
- ld b, $1
-
-.asm_1147cb
- xor a
- ret
-
-; 1147cd
-
-Function1147cd: ; 1147cd
- ld bc, NULL
- ld a, [RightOrnament]
- and a
- jr nz, .asm_11480c
-.asm_1147d6
- ld a, [de]
- and a
- jr z, .asm_11482f
- inc e
- call z, Function11483a
- inc bc
- cp $d
- jr nz, .asm_1147d6
- ld a, [de]
- cp $a
- jr nz, .asm_11482f
-.asm_1147e8
- inc bc
- inc e
- call z, Function11483a
- ld a, [de]
- cp $20
- jr z, .asm_114827
- cp $9
- jr z, .asm_114827
- cp $d
- jr nz, .asm_11482b
- inc e
- call z, Function11483a
- ld a, [de]
- cp $a
- jr nz, .asm_11482f
- inc e
- call z, Function11483a
- ld a, h
- and a
- jr z, .asm_11480c
- dec bc
-
-.asm_11480c
- ld a, [de]
- cp $2d
- jr nz, .asm_1147d6
- inc e
- call z, Function11483a
- ld a, [de]
- cp $2d
- jr nz, .asm_1147d6
- inc e
- call z, Function11483a
- push bc
- call Function11463c
- pop bc
- and a
- jr nz, .asm_1147d6
- ret
-
-.asm_114827
- ld h, $1
- jr .asm_1147e8
-
-.asm_11482b
- ld h, $0
- jr .asm_11480c
-
-.asm_11482f
- and a
- jr nz, .asm_114837
- ld a, $1
- ld [$dc17], a
-
-.asm_114837
- ld a, $1
- ret
-
-; 11483a
-
-Function11483a: ; 11483a
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114843
-
-Function114843: ; 114843
- ld a, [$dc00]
- push af
- push de
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114a18
- and a
- jr nz, .asm_11485f
- pop de
- pop af
- ld [$dc00], a
- ld hl, String_114218
- call Function114acf
- ret
-
-.asm_11485f
- pop de
- pop af
- ld [$dc00], a
- ld a, $1
- ret
-
-; 114867
-
-Function114867: ; 114867
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, $2
- ld [de], a
- inc e
- call z, Function1148b9
- ld a, $1
- ld [de], a
- inc e
- call z, Function1148b9
- ld hl, $dc03
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1148b9
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1148b9
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1148b9
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld d, $5
-.asm_1148a9
- dec bc
- ld a, b
- or c
- jr z, .asm_1148b6
- dec d
- jr nz, .asm_1148a9
- ld [hl], b
- dec hl
- ld [hl], c
- xor a
- ret
-
-.asm_1148b6
- ld a, $1
- ret
-
-; 1148b9
-
-Function1148b9: ; 1148b9
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 1148c2
-
-Function1148c2: ; 1148c2
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, c
- ld [de], a
- inc e
- call z, Function114944
- ld a, b
- ld [de], a
- inc e
- call z, Function114944
- ld a, [$dc0e]
- ld [de], a
- inc e
- call z, Function114944
- cp $3
- jr nz, .asm_114904
- ld hl, Plant
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
-
-.asm_114904
- ld hl, $dc03
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function114944
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, [$dc0e]
- cp $3
- jr z, .asm_114932
- ld d, $6
- jr .asm_114934
-
-.asm_114932
- ld d, $a
-
-.asm_114934
- dec bc
- ld a, b
- or c
- jr z, .asm_114941
- dec d
- jr nz, .asm_114934
- ld [hl], b
- dec hl
- ld [hl], c
- xor a
- ret
-
-.asm_114941
- ld a, $1
- ret
-
-; 114944
-
-Function114944: ; 114944
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 11494d
-
-Function11494d: ; 11494d
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [$dc0e]
- ld [de], a
- inc e
- call z, Function1149c3
- cp $3
- jr nz, .asm_114983
- ld hl, Plant
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
-
-.asm_114983
- ld hl, $dc03
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function1149c3
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, [$dc0e]
- cp $3
- jr z, .asm_1149b1
- ld d, $4
- jr .asm_1149b3
-
-.asm_1149b1
- ld d, $8
-
-.asm_1149b3
- dec bc
- ld a, b
- or c
- jr z, .asm_1149c0
- dec d
- jr nz, .asm_1149b3
- ld [hl], b
- dec hl
- ld [hl], c
- xor a
- ret
-
-.asm_1149c0
- ld a, $1
- ret
-
-; 1149c3
-
-Function1149c3: ; 1149c3
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 1149cc
-
-Function1149cc: ; 1149cc
- ld hl, $dc06
- ld a, [hl]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- push de
- ld hl, $dc09
- ld e, [hl]
- inc hl
- ld d, [hl]
- dec de
- ld a, d
- or e
- jr z, .asm_114a0b
- dec de
- ld a, d
- or e
- jr z, .asm_114a0b
- ld [hl], d
- dec hl
- ld [hl], e
- ld hl, wCurrMapTriggerCount
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, c
- ld [de], a
- inc e
- call z, Function114a0f
- ld a, b
- ld [de], a
- inc e
- call z, Function114a0f
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- pop de
- xor a
- ret
-
-.asm_114a0b
- pop de
- ld a, $1
- ret
-
-; 114a0f
-
-Function114a0f: ; 114a0f
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 114a18
-
-Function114a18: ; 114a18
- ld bc, NULL
- ld h, b
-.asm_114a1c
- inc bc
- ld a, [de]
- and a
- jr z, .asm_114a66
- inc e
- call z, Function114a71
- cp $d
- jr nz, .asm_114a1c
- ld a, [de]
- cp $a
- jr nz, .asm_114a66
-.asm_114a2e
- inc bc
- inc e
- call z, Function114a71
- ld a, [de]
- cp $20
- jr z, .asm_114a5e
- cp $9
- jr z, .asm_114a5e
- cp $d
- jr nz, .asm_114a62
- inc e
- call z, Function114a71
- ld a, [de]
- cp $a
- jr nz, .asm_114a66
- inc e
- call z, Function114a71
- ld a, h
- and a
- jr z, .asm_114a52
- dec bc
-
-.asm_114a52
- ld hl, $dc03
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- xor a
- ret
-
-.asm_114a5e
- ld h, $1
- jr .asm_114a2e
-
-.asm_114a62
- ld h, $0
- jr .asm_114a1c
-
-.asm_114a66
- and a
- jr nz, .asm_114a6e
- ld a, $1
- ld [$dc17], a
-
-.asm_114a6e
- ld a, $1
- ret
-
-; 114a71
-
-Function114a71: ; 114a71
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114a7a
-
-Function114a7a: ; 114a7a
- ld bc, NULL
-.asm_114a7d
- inc bc
- ld a, [de]
- and a
- jr z, .asm_114abb
- inc e
- call z, Function114ac6
- cp $d
- jr nz, .asm_114a7d
- ld a, [de]
- cp $a
- jr nz, .asm_114abb
- inc e
- call z, Function114ac6
- inc bc
- ld a, [de]
- cp $2e
- jr nz, .asm_114a7d
- inc e
- call z, Function114ac6
- ld a, [de]
- cp $d
- jr nz, .asm_114a7d
- inc e
- call z, Function114ac6
- ld a, [de]
- cp $a
- jr nz, .asm_114abb
- inc e
- call z, Function114ac6
- ld hl, $dc03
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- xor a
- ret
-
-.asm_114abb
- and a
- jr nz, .asm_114ac3
- ld a, $1
- ld [$dc17], a
-
-.asm_114ac3
- ld a, $1
- ret
-
-; 114ac6
-
-Function114ac6: ; 114ac6
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114acf
-
-Function114acf: ; 114acf
-.asm_114acf
- push hl
- push bc
-.asm_114ad1
- ld a, [hl]
- ld b, a
- ld a, [de]
- inc e
- call z, Function114b4c
- cp $61
- jr c, .asm_114ae2
- cp $7b
- jr nc, .asm_114ae2
- sub $20
-
-.asm_114ae2
- cp b
- jr z, .asm_114af4
- pop bc
- dec bc
- push bc
- ld a, b
- or c
- jr nz, .asm_114ad1
-.asm_114aec
- ld a, $2
- ld [$dc0e], a
- pop bc
- pop hl
- ret
-
-.asm_114af4
- inc hl
-.asm_114af5
- ld a, [hli]
- and a
- jr z, .asm_114b19
- ld b, a
- ld a, [de]
- inc e
- call z, Function114b4c
- cp $61
- jr c, .asm_114b09
- cp $7b
- jr nc, .asm_114b09
- sub $20
-
-.asm_114b09
- cp b
- jr nz, .asm_114b15
- pop bc
- dec bc
- push bc
- ld a, b
- or c
- jr nz, .asm_114af5
- jr .asm_114aec
-
-.asm_114b15
- pop bc
- pop hl
- jr .asm_114acf
-
-.asm_114b19
- ld b, $0
- ld c, $40
- ld a, [de]
- cp $22
- jr nz, .asm_114b26
- inc e
- call z, Function114b4c
-
-.asm_114b26
- ld hl, Plant
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
-.asm_114b31
- ld a, [de]
- cp $22
- jr z, .asm_114b42
- cp $d
- jr z, .asm_114b42
- inc e
- call z, Function114b4c
- inc b
- dec c
- jr nz, .asm_114b31
-
-.asm_114b42
- ld [hl], b
- pop bc
- pop hl
- ld a, $3
- ld [$dc0e], a
- xor a
- ret
-
-; 114b4c
-
-Function114b4c: ; 114b4c
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114b55
-
-Function114b55: ; 114b55
- call Function114561
- ld b, $0
- ld hl, $dc03
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
-.asm_114b65
- push de
- push bc
- push hl
- call Function1143f3
- cp $2
- jr z, .asm_114bb2
- and a
- jr nz, .asm_114b8c
- ld a, h
- pop hl
- inc hl
- ld [hld], a
- ld a, $1
- ld [hli], a
- inc hl
- ld [hl], e
- inc hl
- ld [hl], d
- inc hl
- ld [hl], c
- inc hl
- ld [hl], b
- inc hl
-.asm_114b82
- pop bc
- pop de
- inc b
- ld a, b
- cp $d
- jr z, .asm_114b96
- jr .asm_114b65
-
-.asm_114b8c
- pop hl
- xor a
-rept 6
- ld [hli], a
-endr
- jr .asm_114b82
-
-.asm_114b96
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld bc, $004e
- ld hl, $dc24
- call Function115d6a
- jp Function11425c
-
-.asm_114bb2
- ld a, $1
- pop bc
- pop bc
- pop bc
- ld b, $82
- jp Function11425c
-
-; 114bbc
-
-Function114bbc: ; 114bbc
- ld h, d
- ld l, e
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld e, a
- ld d, [hl]
- inc hl
- push hl
- call Function1143f3
- cp $2
- jr z, .asm_114c03
- and a
- jr nz, .asm_114bff
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- call Function114c0b
- ld hl, $dc24
- call Function114c5e
- ld a, b
- or c
- jr z, .asm_114bff
- pop hl
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld d, [hl]
- ld hl, $dc24
- push bc
- call Function115d6a
- pop hl
- jp Function11425c
-
-.asm_114bff
- ld b, $84
- jr .asm_114c05
-
-.asm_114c03
- ld b, $82
-
-.asm_114c05
- ld a, $1
- pop hl
- jp Function11425c
-
-; 114c0b
-
-Function114c0b: ; 114c0b
- ld hl, $dc24
- push bc
- call Function115d53
- pop bc
- ld hl, $dc24
- ld d, h
- ld e, l
-.asm_114c18
- ld a, [hli]
- cp $d
- jr z, .asm_114c34
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_114c18
-.asm_114c24
- xor a
- ld [de], a
- ld hl, $dc24
- ld bc, NULL
-.asm_114c2c
- ld a, [hli]
- inc bc
- and a
- jr nz, .asm_114c2c
- dec bc
- xor a
- ret
-
-.asm_114c34
- dec bc
- ld a, b
- or c
- jr z, .asm_114c24
- ld a, [hli]
- cp $a
- jr nz, .asm_114c18
- dec bc
- ld a, b
- or c
- jr z, .asm_114c24
- ld a, [hli]
- cp $20
- jr z, .asm_114c4e
- cp $9
- jr z, .asm_114c4e
- jr .asm_114c24
-
-.asm_114c4e
- dec bc
- ld a, b
- or c
- jr z, .asm_114c24
- jr .asm_114c18
-
-; 114c55
-
-Function114c55: ; 114c55
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 114c5e
-
-Function114c5e: ; 114c5e
- ld de, PartyMon5Defense
- push hl
-.asm_114c62
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_114cc6
- cp $3d
- jr nz, .asm_114c62
- ld a, [hli]
- ld [de], a
- inc de
- cp $3f
- jr nz, .asm_114c62
- dec de
- dec de
-.asm_114c75
- ld a, [hli]
- cp $3f
- jr nz, .asm_114c75
- ld a, [hli]
- cp $42
- jr nz, .asm_114cb8
- inc hl
- ld bc, NULL
- push hl
-.asm_114c84
- inc bc
- ld a, [hli]
- cp $3f
- jr nz, .asm_114c84
- inc bc
- ld a, [hli]
- cp $3d
- jr nz, .asm_114c84
- dec bc
- dec bc
- ld a, l
- ld [$dc03], a
- ld a, h
- ld [$dc04], a
- pop hl
- push de
- call Function115c49
- pop de
- ld h, d
- ld l, e
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-.asm_114ca6
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_114ca6
- ld a, [$dc03]
- ld l, a
- ld a, [$dc04]
- ld h, a
- jr .asm_114c62
-
-.asm_114cb8
- ld a, $3d
- ld [de], a
- inc de
- ld a, $3f
- ld [de], a
- inc de
-.asm_114cc0
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr nz, .asm_114cc0
-
-.asm_114cc6
- ld [de], a
- pop hl
- ld de, PartyMon5Defense
- ld bc, NULL
-.asm_114cce
- inc bc
- ld a, [de]
- ld [hli], a
- inc de
- and a
- jr z, .asm_114cd7
- jr .asm_114cce
-
-.asm_114cd7
- dec bc
- ret
-
-; 114cd9
-
-Function114cd9: ; 114cd9
- ld h, d
- ld l, e
- ld b, [hl]
- inc hl
- ld c, [hl]
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- push hl
- call Function1143f3
- and a
- jr nz, .asm_114d33
- ld [$dc03], a
- ld [$dc04], a
- ld a, h
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, $dc24
- call Function114d39
- ld hl, $dc24
- call Function114d99
- pop hl
- push hl
-rept 4
- inc hl
-endr
- ld a, [hld]
- cp b
- jr c, .asm_114d2d
- jr z, .asm_114d29
-.asm_114d11
- pop hl
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, PartyMon5Defense
- call Function115d6a
- xor a
- jp Function11425c
-
-.asm_114d29
- ld a, [hli]
- cp c
- jr nc, .asm_114d11
-
-.asm_114d2d
- ld b, $83
- jr .asm_114d33
-
- ld b, $82
-
-.asm_114d33
- pop hl
- ld a, $1
- jp Function11425c
-
-; 114d39
-
-Function114d39: ; 114d39
-.asm_114d39
- ld a, [$dc04]
- and a
- jr nz, .asm_114d4a
- ld a, [de]
- cp $28
- jr z, .asm_114d55
- cp $22
- jr z, .asm_114d55
- jr .asm_114d7f
-
-.asm_114d4a
- ld a, [de]
- cp $29
- jr z, .asm_114d5f
- cp $22
- jr z, .asm_114d6f
- jr .asm_114d84
-
-.asm_114d55
- ld [$dc03], a
- ld a, $1
- ld [$dc04], a
- jr .asm_114d84
-
-.asm_114d5f
- ld a, [$dc03]
- cp $28
- jr nz, .asm_114d84
- xor a
- ld [$dc03], a
- ld [$dc04], a
- jr .asm_114d84
-
-.asm_114d6f
- ld a, [$dc03]
- cp $22
- jr nz, .asm_114d84
- xor a
- ld [$dc03], a
- ld [$dc04], a
- jr .asm_114d84
-
-.asm_114d7f
- cp $20
- jr z, .asm_114d84
- ld [hli], a
-
-.asm_114d84
- dec bc
- ld a, b
- or c
- jr z, .asm_114d96
- inc e
- jr nz, .asm_114d39
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- jr .asm_114d39
-
-.asm_114d96
- xor a
- ld [hli], a
- ret
-
-; 114d99
-
-Function114d99: ; 114d99
- ld de, PartyMon5Defense
- xor a
- ld [de], a
-.asm_114d9e
- ld a, [hli]
- call Function114df1
- and a
- jr z, .asm_114dde
- cp $40
- jr nz, .asm_114d9e
- dec hl
-.asm_114daa
- dec hl
- ld a, [hl]
- call Function114e2d
- and a
- jr z, .asm_114daa
- inc hl
- push hl
- ld b, $0
-.asm_114db6
- ld a, [hli]
- cp $40
- jr z, .asm_114dc1
- call Function114e2d
- and a
- jr nz, .asm_114dc4
-
-.asm_114dc1
- inc b
- jr .asm_114db6
-
-.asm_114dc4
- pop hl
- ld a, [PartyMon5Defense]
- and a
- jr z, .asm_114dd2
- ld a, $2c
- inc de
- ld [de], a
- ld a, [PartyMon5Defense]
-
-.asm_114dd2
- inc a
- ld [PartyMon5Defense], a
-.asm_114dd6
- inc de
- ld a, [hli]
- ld [de], a
- dec b
- jr nz, .asm_114dd6
- jr .asm_114d9e
-
-.asm_114dde
- inc de
- xor a
- ld [de], a
- ld a, $dd
- cpl
- ld h, a
- ld a, $c8
- cpl
- ld l, a
- inc hl
- add hl, de
- ld b, h
- ld c, l
- inc bc
- inc bc
- xor a
- ret
-
-; 114df1
-
-Function114df1: ; 114df1
- cp $1b
- ret nz
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $24
- jr nz, .asm_114e09
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $42
- jr z, .asm_114e0b
- cp $40
- jr z, .asm_114e0b
- dec hl
-
-.asm_114e09
- dec hl
- ret
-
-.asm_114e0b
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $1b
- jr nz, .asm_114e0b
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $28
- jr nz, .asm_114e0b
- ld a, [hli]
- and a
- jr z, .asm_114e2b
- cp $42
- jr z, .asm_114e29
- cp $4a
- jr z, .asm_114e29
- jr .asm_114e0b
-
-.asm_114e29
- ld a, [hli]
- ret
-
-.asm_114e2b
- xor a
- ret
-
-; 114e2d
-
-Function114e2d: ; 114e2d
- cp $30
- jr c, .asm_114e45
- cp $40
- jr c, .asm_114e58
- cp $41
- jr c, .asm_114e45
- cp $5b
- jr c, .asm_114e58
- cp $61
- jr c, .asm_114e45
- cp $7b
- jr c, .asm_114e58
-
-.asm_114e45
- cp $20
- jr z, .asm_114e58
- cp $2d
- jr z, .asm_114e58
- cp $2e
- jr z, .asm_114e58
- cp $5f
- jr z, .asm_114e58
-.asm_114e55
- ld a, $1
- ret
-
-.asm_114e58
- cp $3c
- jr z, .asm_114e55
- cp $3e
- jr z, .asm_114e55
- xor a
- ret
-
-; 114e62
-
-Function114e62: ; 114e62
- ld a, c
- and a
- jr nz, .asm_114e6f
- ld a, [wStartDay]
- and a
- jp z, Function11425c
- jr .asm_114e76
-
-.asm_114e6f
- xor a
- ld [wStartDay], a
- call Function114ee9
-
-.asm_114e76
- call Function114f0a
- cp $ff
- jp z, Function11425c
- and a
- jr nz, .asm_114e99
- call Function114ea0
- and a
- jr nz, .asm_114e99
- ld hl, $dc09
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- jp Function11425c
-
-.asm_114e99
- ld a, $1
- ld b, $83
- jp Function11425c
-
-; 114ea0
-
-Function114ea0: ; 114ea0
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, $d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_114edb
- inc e
- call z, Function114ee0
- ld a, $a
- ld [de], a
- dec bc
- inc e
- call z, Function114ee0
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ld [wStartDay], a
- ret
-
-.asm_114edb
- ld a, $1
- ld b, $83
- ret
-
-; 114ee0
-
-Function114ee0: ; 114ee0
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 114ee9
-
-Function114ee9: ; 114ee9
- ld hl, $dc03
- ld a, b
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hli], a
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld c, a
- ld [hli], a
- inc de
- ld a, [de]
- ld b, a
- ld [hli], a
- inc de
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
- ld a, e
- ld [hli], a
- ld [hl], d
- ret
-
-; 114f0a
-
-Function114f0a: ; 114f0a
- call Function114f39
- and a
- jr nz, .asm_114f26
- ld a, [$dc03]
- cp $6
- jr c, .asm_114f21
- cp $c
- jr z, .asm_114f23
- call Function114f59
- and a
- jr nz, .asm_114f23
-
-.asm_114f21
- xor a
- ret
-
-.asm_114f23
- ld a, $1
- ret
-
-.asm_114f26
- call Function114f59
- and a
- jr nz, .asm_114f23
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- and a
- jr z, .asm_114f21
- ld a, $ff
- ret
-
-; 114f39
-
-Function114f39: ; 114f39
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [de]
- and a
- jr z, .asm_114f58
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, $1
- ret
-
-.asm_114f58
- ret
-
-; 114f59
-
-Function114f59: ; 114f59
- ld a, [wStartDay]
- and a
- jr nz, .asm_114f7c
- ld a, [$dc03]
- cp $11
- jr z, .asm_114fa7
- add a
- ld e, a
- ld d, 0
- ld hl, Unknown_114011
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Function115020
- and a
- jr nz, .asm_114fe7
- ld a, $1
- ld [wStartDay], a
-
-.asm_114f7c
- ld a, [$dc03]
- cp $5
- jr c, .asm_114fc9
- jr z, .asm_114fec
- cp $8
- jr c, .asm_114fa5
- jr z, .asm_114ff4
- cp $b
- jr c, .asm_114fa5
- jr z, .asm_114ffc
- cp $c
- jr z, .asm_115007
- cp $d
- jr z, .asm_114fa5
- cp $10
- jr c, .asm_115015
- jr z, .asm_114fa5
- cp $12
- jr c, .asm_114fa5
- jr .asm_114fe7
-
-.asm_114fa5
- xor a
- ret
-
-.asm_114fa7
- ld hl, Bed
- ld c, [hl]
- inc hl
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- call Function115d53
- ld hl, $dc24
- call Function115020
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_114fc9
- call Function115062
- and a
- jr nz, .asm_114fe7
- ld a, [$dc04]
- dec a
- ld [$dc04], a
- and a
- jr z, .asm_114fdf
- call Function114f39
- and a
- jr nz, .asm_114fc9
-
-.asm_114fdf
- ld a, [$dc05]
- ld [$dc04], a
- jr .asm_11501e
-
-.asm_114fe7
- ld a, $1
- ld b, $83
- ret
-
-.asm_114fec
- call Function115062
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_114ff4
- call Function115179
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_114ffc
- ld hl, String_114000
- call Function115217
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_115007
- call Function11528f
- ld hl, $dc24
- call Function115217
- and a
- jr nz, .asm_114fe7
- jr .asm_11501e
-
-.asm_115015
- ld hl, String_114000
- call Function115217
- and a
- jr nz, .asm_114fe7
-
-.asm_11501e
- xor a
- ret
-
-; 115020
-
-Function115020: ; 115020
- push hl
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- pop hl
-.asm_115036
- ld a, [hli]
- and a
- jr z, .asm_115046
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115056
- inc e
- call z, Function115059
- jr .asm_115036
-
-.asm_115046
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-.asm_115056
- ld a, $1
- ret
-
-; 115059
-
-Function115059: ; 115059
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115062
-
-Function115062: ; 115062
- ld hl, Bed
- ld a, [hli]
- and a
- jr z, .asm_1150ae
- ld c, a
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, $0
- ld hl, $dc24
- ld a, [wStartDay]
- cp $1
- jr z, .asm_11509b
- cp $2
- jr z, .asm_115098
- cp $3
- jr nz, .asm_1150b2
- ld a, $2c
- ld [hli], a
- ld a, $d
- ld [hli], a
- ld a, $a
- ld [hli], a
- ld a, $9
- ld [hli], a
- jr .asm_11509b
-
-.asm_115098
- ld a, $2c
- ld [hli], a
-
-.asm_11509b
- call Function115d53
- call Function1150b3
- call Function115136
- ld a, [wStartDay]
- inc a
- cp $4
- jr nz, .asm_1150ae
- ld a, $2
-
-.asm_1150ae
- ld [wStartDay], a
- xor a
-
-.asm_1150b2
- ret
-
-; 1150b3
-
-Function1150b3: ; 1150b3
- ld hl, $dc24
- ld de, PartyMon5Defense
- ld b, $0
-.asm_1150bb
- ld c, $0
- ld a, [hli]
- cp $1b
- jr z, .asm_1150c9
- ld [de], a
- inc de
- and a
- jr z, .asm_115133
- jr .asm_1150bb
-
-.asm_1150c9
- inc c
- ld a, [hl]
- cp $24
- jr nz, .asm_1150bb
- inc hl
- inc c
- ld a, [hl]
- cp $42
- jr z, .asm_1150dc
- cp $40
- jr z, .asm_1150dc
- jr .asm_1150bb
-
-.asm_1150dc
- push hl
-.asm_1150dd
- inc c
- ld a, [hli]
- and a
- jr z, .asm_115133
- cp $1b
- jr nz, .asm_1150dd
- inc c
- ld a, [hli]
- cp $28
- jr nz, .asm_1150dd
- inc c
- ld a, [hli]
- cp $42
- jr z, .asm_1150f8
- cp $4a
- jr z, .asm_1150f8
- jr .asm_1150dd
-
-.asm_1150f8
- ld a, l
- ld [Console], a
- ld a, h
- ld [LeftOrnament], a
- ld hl, String_114232
-.asm_115103
- ld a, [hli]
- and a
- jr z, .asm_11510b
- ld [de], a
- inc de
- jr .asm_115103
-
-.asm_11510b
- pop hl
- dec hl
- dec hl
- push de
- call Function1158c2
- pop de
- ld h, d
- ld l, e
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
-.asm_115119
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_115119
- ld a, $3f
- ld [de], a
- inc de
- ld a, $3d
- ld [de], a
- inc de
- ld a, [Console]
- ld l, a
- ld a, [LeftOrnament]
- ld h, a
- jr .asm_1150bb
-
-.asm_115133
- xor a
- ld [de], a
- ret
-
-; 115136
-
-Function115136: ; 115136
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld hl, PartyMon5Defense
-.asm_11514d
- ld a, [hli]
- and a
- jr z, .asm_11515d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_11516d
- inc e
- call z, Function115170
- jr .asm_11514d
-
-.asm_11515d
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-.asm_11516d
- ld a, $1
- ret
-
-; 115170
-
-Function115170: ; 115170
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115179
-
-Function115179: ; 115179
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld hl, $013f
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [hli]
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, $2d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, [$014c]
- ld h, a
- and $f0
- swap a
- cp $a
- jr nc, .asm_1151d8
- add $30
- jr .asm_1151da
-
-.asm_1151d8
- add $37
-
-.asm_1151da
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld a, h
- and $f
- cp $a
- jr nc, .asm_1151f2
- add $30
- jr .asm_1151f4
-
-.asm_1151ef
- ld a, $1
- ret
-
-.asm_1151f2
- add $37
-
-.asm_1151f4
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_1151ef
- inc e
- call z, Function11520e
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-; 11520e
-
-Function11520e: ; 11520e
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115217
-
-Function115217: ; 115217
- push hl
- ld hl, $dc06
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- pop hl
-.asm_11522d
- ld a, [hli]
- and a
- jr z, .asm_11523d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115262
- inc e
- call z, Function115286
- jr .asm_11522d
-
-.asm_11523d
- ld a, [$dc03]
- cp $b
- jr z, .asm_115278
- cp $c
- jr z, .asm_115278
- cp $e
- jr z, .asm_115252
- cp $f
- jr z, .asm_115265
- jr .asm_115262
-
-.asm_115252
- ld hl, $dc06
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld a, d
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- xor a
- ret
-
-.asm_115262
- ld a, $1
- ret
-
-.asm_115265
- ld h, $2
-.asm_115267
- ld a, $2d
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115262
- inc e
- call z, Function115286
- dec h
- jr nz, .asm_115267
- jr .asm_115252
-
-.asm_115278
- ld a, $22
- ld [de], a
- dec bc
- ld a, b
- or c
- jr z, .asm_115262
- inc e
- call z, Function115286
- jr .asm_115252
-
-; 115286
-
-Function115286: ; 115286
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 11528f
-
-Function11528f: ; 11528f
- ld hl, Bed
- ld c, [hl]
- inc hl
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, $dc24
-.asm_1152a4
- ld a, [de]
- ld [hli], a
- inc e
- call z, Function1152af
- dec c
- jr nz, .asm_1152a4
- ld [hl], c
- ret
-
-; 1152af
-
-Function1152af: ; 1152af
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 1152b8
-
-Function1152b8: ; 1152b8
- push bc
- call Function11537d
- push de
- ld h, d
- ld l, e
- ld a, [hli]
- ld b, a
- ld c, $1
- call Function1153d2
- pop de
- and a
- jr nz, .asm_1152f9
-.asm_1152ca
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
-.asm_1152d0
- ld a, [$dc03]
- cp $3
- jr nz, .asm_1152d8
- push de
-
-.asm_1152d8
- cp $5
- jr nz, .asm_1152e7
- pop hl
- ld a, [hli]
- ld b, a
- ld c, $3
- call Function1153d2
- and a
- jr nz, .asm_1152f9
-
-.asm_1152e7
- ld a, [de]
- inc de
- and a
- jr nz, .asm_115301
- ld a, [$dc03]
- cp $6
- jr z, .asm_115335
- inc a
- ld [$dc03], a
- jr .asm_1152d0
-
-.asm_1152f9
- pop hl
- ld a, $1
- ld b, $83
- jp Function11425c
-
-.asm_115301
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
-.asm_115307
- ld [$dc05], a
- ld a, $1
- ld [$dc04], a
- call Function1153b5
- call Function114f59
- and a
- jr nz, .asm_1152f9
- ld a, [$dc05]
- dec a
- jr nz, .asm_115307
- ld a, [$dc03]
- inc a
- ld [$dc03], a
- call Function114ea0
- and a
- jr nz, .asm_1152f9
- ld [wStartDay], a
- ld a, [$dc03]
- cp $6
- jr nz, .asm_1152ca
-
-.asm_115335
- call Function1153b5
- xor a
- ld [wStartDay], a
- call Function114f59
- and a
- jr nz, .asm_1152f9
- call Function114ea0
- and a
- jr nz, .asm_1152f9
- ld a, [$dc03]
- inc a
- ld [$dc03], a
- cp $9
- jr nz, .asm_115335
- pop bc
- ld a, b
- and a
- jr z, .asm_11536b
- call Function1153b5
- xor a
- ld [wStartDay], a
- call Function114f59
- and a
- jr nz, .asm_1152f9
- call Function114ea0
- and a
- jr nz, .asm_1152f9
-
-.asm_11536b
- ld hl, $dc09
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- jp Function11425c
-
-; 11537d
-
-Function11537d: ; 11537d
- ld hl, $dc06
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- ld b, a
- inc de
- ld a, [de]
- ld [hli], a
- inc hl
- ld a, [de]
- ld [hld], a
- ld a, b
- ld [hli], a
- inc de
- ld hl, RightOrnament
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
- xor a
- ld [$dc03], a
- ld [wStartDay], a
- ret
-
-; 1153b5
-
-Function1153b5: ; 1153b5
- ld hl, $dc0d
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- inc hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- inc de
- ld a, [de]
- ld [Bed], a
- inc de
- ld hl, $dc0d
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-
-; 1153d2
-
-Function1153d2: ; 1153d2
- ld a, [$dc03]
- ld d, a
- ld a, [$dc04]
- ld e, a
- push de
- xor a
- ld [$dc03], a
- ld [$dc04], a
- ld a, $24
- ld [Console], a
- ld a, $dc
- ld [LeftOrnament], a
- push bc
- jr .asm_1153f4
-
-.asm_1153ef
- ld a, [hli]
- and a
- jr z, .asm_115426
- ld b, a
-
-.asm_1153f4
- push bc
-.asm_1153f5
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld c, [hl]
- inc hl
- push hl
- ld a, [Console]
- ld l, a
- ld a, [LeftOrnament]
- ld h, a
- push bc
- ld b, $0
- call Function115d53
- inc hl
- ld [hl], a
- pop bc
- ld a, l
- ld e, a
- ld [Console], a
- ld a, h
- ld d, a
- ld [LeftOrnament], a
- dec b
- jr z, .asm_11542b
- pop hl
- jr .asm_1153f5
-
-.asm_115426
- dec c
- jr nz, .asm_1153ef
- jr .asm_115430
-
-.asm_11542b
- pop hl
- pop bc
- dec c
- jr nz, .asm_1153ef
-
-.asm_115430
- ld a, l
- ld [Console], a
- ld a, h
- ld [LeftOrnament], a
- xor a
- ld [de], a
- ld hl, $dc24
-.asm_11543d
- ld a, [hli]
- and a
- jr nz, .asm_11543d
- ld a, [hl]
- and a
- jr z, .asm_115457
- dec hl
- ld a, $2c
- ld [hli], a
- jr .asm_11543d
-
-.asm_11544b
- pop hl
- ld a, h
- ld [$dc03], a
- ld a, l
- ld [$dc04], a
- ld a, $1
- ret
-
-.asm_115457
- ld hl, $dc24
- call Function114d99
- ld hl, $ddc8
-.asm_115460
- ld a, [hli]
- and a
- jr z, .asm_11546d
- cp $2c
- jr nz, .asm_115460
- dec hl
- xor a
- ld [hli], a
- jr .asm_115460
-
-.asm_11546d
- pop de
- ld a, e
- cp $1
- jr z, .asm_115477
- xor a
- ld [hli], a
- jr .asm_115478
-
-.asm_115477
- dec bc
-
-.asm_115478
- ld hl, $dc18
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, b
- cp h
- jr c, .asm_11548c
- jr nz, .asm_11544b
- ld a, c
- cp l
- jr c, .asm_11548c
- jr z, .asm_11548c
- jr .asm_11544b
-
-.asm_11548c
- ld hl, $dc18
- ld a, c
- cpl
- ld e, a
- ld a, b
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ld de, $dc18
- ld a, l
- ld [de], a
- inc de
- ld a, h
- ld [de], a
- ld hl, RightOrnament
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $ddc8
- call Function115d6a
- ld hl, RightOrnament
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [Console]
- ld e, a
- ld a, [LeftOrnament]
- ld d, a
- pop hl
- ld a, h
- ld [$dc03], a
- ld a, l
- ld [$dc04], a
- xor a
- ret
-
-; 1154d4
-
-Function1154d4: ; 1154d4
- xor a
- ld [wStartDay], a
- call Function1155af
- call Function11560a
- and a
- jr nz, .asm_11552c
- call Function1155d1
- ld a, [RightOrnament]
- dec a
- ld [RightOrnament], a
- and a
- jp z, .asm_115577
- cp $1
- jr nz, .asm_115531
- xor a
- ld [wDailyResetTimer], a
-.asm_1154f7
- ld a, [BigDoll]
- cp $2
- jr z, .asm_115502
- cp $3
- jr z, .asm_11550f
-
-.asm_115502
- ld a, $a
- ld [$dc03], a
- call Function114f59
- and a
- jr z, .asm_11551a
- jr .asm_11552c
-
-.asm_11550f
- ld a, $c
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
-
-.asm_11551a
- call Function114ea0
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
- call Function11560a
- and a
- jr z, .asm_1155a0
-
-.asm_11552c
- ld a, $1
- jp Function11425c
-
-.asm_115531
- ld a, $1
- ld [wDailyResetTimer], a
- ld a, $b
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
-.asm_115547
- call Function114ea0
- and a
- jr nz, .asm_11552c
- ld a, $e
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
- jr .asm_1154f7
-
-.asm_115560
- call Function114ea0
- and a
- jr nz, .asm_11552c
- ld a, [wDailyResetTimer]
- and a
- jr z, .asm_11557d
- ld a, $f
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
-
-.asm_115577
- call Function114ea0
- and a
- jr nz, .asm_11552c
-
-.asm_11557d
- ld a, $10
- ld [$dc03], a
- call Function114f59
- and a
- jr nz, .asm_11552c
- call Function114ea0
- and a
- jr nz, .asm_11552c
- ld hl, $dc09
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- jp Function11425c
-
-.asm_1155a0
- ld a, [RightOrnament]
- dec a
- ld [RightOrnament], a
- and a
- jr z, .asm_115560
- call Function1155d1
- jr .asm_115547
-
-; 1155af
-
-Function1155af: ; 1155af
- ld hl, $dc06
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- ld b, a
- inc de
- ld a, [de]
- ld [hli], a
- ld [hl], b
- inc hl
- ld [hli], a
- inc de
- ld a, [de]
- ld [RightOrnament], a
- inc de
- ld a, e
- ld [hli], a
- ld [hl], d
- call Function1155d1
- ret
-
-; 1155d1
-
-Function1155d1: ; 1155d1
- ld a, [$dc0d]
- ld l, a
- ld a, [$dc0e]
- ld h, a
- ld a, [hli]
- ld [BigDoll], a
- cp $3
- jr nz, .asm_1155f0
- ld de, Carpet
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld a, [hli]
- ld [Bed], a
-
-.asm_1155f0
- ld de, $dc17
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ld a, l
- ld [$dc0d], a
- ld a, h
- ld [$dc0e], a
- ret
-
-; 11560a
-
-Function11560a: ; 11560a
- ld a, [$dc06]
- ld [wCurrentMapSignpostCount], a
- ld a, [$dc17]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, $dc1a
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, [wCurrMapCallbackCount]
- cp b
- jp c, .asm_1156b1
- jr nz, .asm_115631
- ld a, [$dc09]
- cp c
- jp c, .asm_1156b1
-
-.asm_115631
- ld a, b
- or c
- jr z, .asm_1156a9
- ld a, [$dc09]
- ld l, a
- ld a, [wCurrMapCallbackCount]
- ld h, a
- ld a, c
- cpl
- ld e, a
- ld a, b
- cpl
- ld d, a
- inc de
- add hl, de
- ld a, l
- ld [$dc09], a
- ld a, h
- ld [wCurrMapCallbackCount], a
-.asm_11564d
- ld a, $3
- cp b
- jr c, .asm_1156b6
- jr nz, .asm_115659
- ld a, $db
- cp c
- jr c, .asm_1156b6
-
-.asm_115659
- ld a, [$dc1a]
- ld e, a
- ld a, [$dc1b]
- ld d, a
- ld a, c
- cpl
- ld l, a
- ld a, b
- cpl
- ld h, a
- inc hl
- add hl, de
- ld a, l
- ld [$dc1a], a
- ld a, h
- ld [$dc1b], a
- push bc
- ld hl, $dc18
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- call Function115d53
- ld hl, $dc18
- ld [hl], e
- inc hl
- ld [hl], d
- pop bc
- ld a, [wCurrentMapSignpostCount]
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld hl, wCurrMapTriggerCount
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- call Function115d6a
- ld hl, wCurrMapTriggerCount
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $dc1a
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld a, b
- or c
- jr nz, .asm_11564d
-
-.asm_1156a9
- ld a, [wCurrentMapSignpostCount]
- ld [$dc06], a
- xor a
- ret
-
-.asm_1156b1
- ld a, $1
- ld b, $83
- ret
-
-.asm_1156b6
- ld a, $3
- cpl
- ld h, a
- ld a, $db
- cpl
- ld l, a
- add hl, bc
- ld de, $dc1a
- ld a, l
- ld [de], a
- inc de
- ld a, h
- ld [de], a
- ld bc, $03db
- jr .asm_115659
-
-; 1156cc
-
-Function1156cc: ; 1156cc
- ld a, [wStartDay]
- and a
- jp z, Function11425c
- cp $2
- jr z, .asm_1156fa
- cp $3
- jr z, .asm_1156fd
- cp $4
- jr z, .asm_1156fd
- cp $5
- jr z, .asm_115716
- cp $ff
- jr z, .asm_11572b
- cp $1
- jp nz, Function11425c
- call Function115732
- call Function11575c
- ld a, h
- ld [Poster], a
- ld a, l
- ld [Plant], a
-
-.asm_1156fa
- call Function1157d0
-
-.asm_1156fd
- call Function11581e
- and a
- jr nz, .asm_11572b
- ld a, [wStartDay]
- cp $5
- jr z, .asm_115716
- ld a, [Poster]
- ld h, a
- ld a, [Plant]
- ld l, a
- xor a
- jp Function11425c
-
-.asm_115716
- ld hl, wCurrMapCallbackCount
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- ld [wStartDay], a
- jp Function11425c
-
-.asm_11572b
- ld a, $1
- ld b, $83
- jp Function11425c
-
-; 115732
-
-Function115732: ; 115732
- ld hl, $dc02
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- dec de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- ld a, c
- ld [hli], a
- ld [hl], b
- ret
-
-; 11575c
-
-Function11575c: ; 11575c
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, $10
- ld b, $0
- ld c, b
- ld d, b
- ld a, $3
-.asm_11576a
- rl l
- rl h
- rl d
- cp d
- jr c, .asm_11577c
- rl c
- rl b
- dec e
- jr nz, .asm_11576a
- jr .asm_11578a
-
-.asm_11577c
- ld a, d
- sub $3
- ld d, a
- ld a, $3
- scf
- rl c
- rl b
- dec e
- jr nz, .asm_11576a
-
-.asm_11578a
- ld a, d
- and a
- jr z, .asm_11578f
- inc bc
-
-.asm_11578f
- sla c
- rl b
- sla c
- rl b
- ld h, b
- ld l, c
- push hl
- ld e, $10
- ld b, $0
- ld c, b
- ld d, b
- ld a, $40
-.asm_1157a2
- rl l
- rl h
- rl d
- cp d
- jr c, .asm_1157b4
- rl c
- rl b
- dec e
- jr nz, .asm_1157a2
- jr .asm_1157c3
-
-.asm_1157b4
- ld a, d
- sub $40
- ld d, a
- ld a, $40
- scf
- rl c
- rl b
- dec e
- jr nz, .asm_1157a2
- inc bc
-
-.asm_1157c3
- and a
- sla c
- rl b
- pop hl
- add hl, bc
- ld a, $2
- ld [wStartDay], a
- ret
-
-; 1157d0
-
-Function1157d0: ; 1157d0
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- cp h
- jr c, .asm_1157eb
- jr nz, .asm_1157e9
- ld a, c
- cp l
- jr c, .asm_1157eb
- jr z, .asm_1157eb
-
-.asm_1157e9
- ld b, h
- ld c, l
-
-.asm_1157eb
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [$dc05], a
- ld a, h
- ld [$dc06], a
- ld a, h
- or l
- jr nz, .asm_11580f
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $4
- ld [wStartDay], a
- ret
-
-.asm_11580f
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $3
- ld [wStartDay], a
- ret
-
-; 11581e
-
-Function11581e: ; 11581e
- ld a, [wStartDay]
- and a
- ret z
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- ld hl, $dc02
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc24
- push bc
- call Function115d53
- pop bc
- ld hl, $dc02
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $dc24
- ld de, PartyMon5Defense
- call Function1158c2
- ld hl, PartyMon5Defense
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- push hl
- ld a, [wCurrMapCallbackCount]
- ld l, a
- ld a, [wCurrMapCallbackHeaderPointer]
- ld h, a
- cp b
- jr c, .asm_1158bb
- jr nz, .asm_11586e
- ld a, l
- cp c
- jr c, .asm_1158bb
-
-.asm_11586e
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [wCurrMapCallbackCount], a
- ld a, h
- ld [wCurrMapCallbackHeaderPointer], a
- pop bc
- pop hl
- ld hl, wCurrMapTriggerCount
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, PartyMon5Speed
- call Function115d6a
- ld hl, wCurrMapTriggerCount
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld [hl], d
- ld a, [wStartDay]
- cp $3
- jr z, .asm_1158b4
- cp $4
- jr z, .asm_1158ad
- jr .asm_1158bc
-
-.asm_1158ad
- ld a, $5
- ld [wStartDay], a
- jr .asm_1158b9
-
-.asm_1158b4
- ld a, $2
- ld [wStartDay], a
-
-.asm_1158b9
- xor a
- ret
-
-.asm_1158bb
- pop hl
-
-.asm_1158bc
- ld a, $ff
- ld [wStartDay], a
- ret
-
-; 1158c2
-
-Function1158c2: ; 1158c2
- ld a, e
- ld [SwarmFlags], a
- ld a, d
- ld [$dc21], a
- xor a
- ld [$dc22], a
- xor a
- ld [de], a
- inc de
- ld [de], a
- inc de
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- ld c, e
- ld b, d
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- xor a
- ld [WeeklyFlags], a
-
-.asm_1158e5
- ld b, $3
- push hl
- ld hl, $dc1b
-.asm_1158eb
- ld a, [de]
- inc de
- ld [hli], a
- dec b
- jr nz, .asm_1158eb
- ld a, [$dc19]
- ld c, a
- ld a, [$dc1a]
- ld b, a
- xor a
- or b
- jr nz, .asm_115914
- ld a, $2
- cp c
- jr c, .asm_115914
- push hl
- dec hl
- ld a, c
- ld [WeeklyFlags], a
-.asm_115908
- xor a
- ld [hld], a
- inc c
- ld a, $3
- cp c
- jr nz, .asm_115908
- pop hl
- ld bc, $0003
-
-.asm_115914
- dec bc
- dec bc
- dec bc
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- push de
- push hl
- ld hl, SwarmFlags
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
-rept 4
- inc de
-endr
- ld [hl], d
- dec hl
- ld [hl], e
- pop hl
- dec hl
- ld c, [hl]
- dec hl
- ld b, [hl]
- dec hl
- ld a, [hl]
- ld d, a
- srl a
- srl a
- ld [hli], a
- ld a, $3
- and d
- ld d, a
- ld a, $f0
- and b
- or d
- swap a
- ld [hli], a
- ld a, $f
- and b
- ld d, a
- ld a, c
- and $c0
- or d
- rlca
- rlca
- ld [hli], a
- ld a, $3f
- and c
- ld [hld], a
- dec hl
- dec hl
- pop de
- ld b, h
- ld c, l
- pop hl
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [bc]
- inc bc
- call Function1159dc
- ld [hli], a
- ld a, [$dc22]
- inc a
- cp $10
- jr nz, .asm_1159b1
- push af
- push bc
- ld a, [$dc19]
- ld b, a
- ld a, [$dc1a]
- or b
- jr nz, .asm_115998
- ld a, [$dc05]
- ld b, a
- ld a, [$dc06]
- or b
- jr nz, .asm_115998
- pop bc
- pop af
- jr .asm_1159c4
-
-.asm_115998
- pop bc
- pop af
- ld a, $d
- ld [hli], a
- ld a, $a
- ld [hli], a
- push hl
- ld hl, SwarmFlags
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hli]
- ld c, a
- ld b, [hl]
- inc bc
- inc bc
- ld a, b
- ld [hld], a
- ld [hl], c
- pop hl
- xor a
-
-.asm_1159b1
- ld [$dc22], a
- ld a, [$dc19]
- cp $0
- jp nz, .asm_1158e5
- ld a, [$dc1a]
- cp $0
- jp nz, .asm_1158e5
-
-.asm_1159c4
- ld a, [WeeklyFlags]
- cp $0
- jr z, .asm_1159d8
- push hl
- dec hl
- ld b, a
-.asm_1159ce
- ld a, $3d
- ld [hld], a
- inc b
- ld a, $3
- cp b
- jr nz, .asm_1159ce
- pop hl
-
-.asm_1159d8
- ld a, $0
- ld [hl], a
- ret
-
-; 1159dc
-
-Function1159dc: ; 1159dc
- cp $1a
- jr c, .asm_1159ef
- cp $34
- jr c, .asm_1159f2
- cp $3e
- jr c, .asm_1159f5
- cp $3e
- jr z, .asm_1159f8
- ld a, $2f
- ret
-
-.asm_1159ef
- add $41
- ret
-
-.asm_1159f2
- add $47
- ret
-
-.asm_1159f5
- sub $4
- ret
-
-.asm_1159f8
- ld a, $2b
- ret
-
-; 1159fb
-
-Function1159fb: ; 1159fb
- ld a, [wStartDay]
- and a
- jp z, Function11425c
- cp $2
- jr z, .asm_115a29
- cp $3
- jr z, .asm_115a2c
- cp $4
- jr z, .asm_115a2c
- cp $5
- jr z, .asm_115a45
- cp $ff
- jr z, .asm_115a5a
- cp $1
- jp nz, Function11425c
- call Function115732
- call Function115a5f
- ld a, h
- ld [Plant], a
- ld a, l
- ld [Poster], a
-
-.asm_115a29
- call Function115ab0
-
-.asm_115a2c
- call Function115b00
- and a
- jr nz, .asm_115a5a
- ld a, [wStartDay]
- cp $5
- jr z, .asm_115a45
- ld a, [Poster]
- ld h, a
- ld a, [Plant]
- ld l, a
- xor a
- jp Function11425c
-
-.asm_115a45
- ld hl, wCurrMapCallbackCount
- ld a, [hli]
- cpl
- ld e, a
- ld a, [hli]
- cpl
- ld d, a
- inc de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- xor a
- ld [wStartDay], a
- jp Function11425c
-
-.asm_115a5a
- ld a, $1
- jp Function11425c
-
-; 115a5f
-
-Function115a5f: ; 115a5f
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- ld e, $10
- ld b, $0
- ld c, b
- ld d, b
- ld a, $42
-.asm_115a6e
- rl l
- rl h
- rl d
- cp d
- jr c, .asm_115a80
- rl c
- rl b
- dec e
- jr nz, .asm_115a6e
- jr .asm_115a8e
-
-.asm_115a80
- ld a, d
- sub $42
- ld d, a
- ld a, $42
- scf
- rl c
- rl b
- dec e
- jr nz, .asm_115a6e
-
-.asm_115a8e
- sla c
- rl b
- pop hl
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- srl h
- rr l
- srl h
- rr l
- ld b, h
- ld c, l
- sla c
- rl b
- add hl, bc
- ld a, $2
- ld [wStartDay], a
- ret
-
-; 115ab0
-
-Function115ab0: ; 115ab0
- ld hl, $dc05
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- cp h
- jr c, .asm_115acb
- jr nz, .asm_115ac9
- ld a, c
- cp l
- jr c, .asm_115acb
- jr z, .asm_115acb
-
-.asm_115ac9
- ld b, h
- ld c, l
-
-.asm_115acb
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [$dc05], a
- ld a, h
- ld [$dc06], a
- ld a, h
- or l
- jr nz, .asm_115af0
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $4
- ld [wStartDay], a
- xor a
- ret
-
-.asm_115af0
- pop bc
- ld a, c
- ld [$dc0e], a
- ld a, b
- ld [Bed], a
- ld a, $3
- ld [wStartDay], a
- xor a
- ret
-
-; 115b00
-
-Function115b00: ; 115b00
- ld a, [wStartDay]
- and a
- ret z
- ld a, [$dc0e]
- ld c, a
- ld a, [Bed]
- ld b, a
- ld hl, $dc02
- ld a, [hli]
- ld [$dc00], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, PartyMon5Defense
- push bc
- call Function115bc8
- pop hl
- and a
- jr z, .asm_115b43
- cp $2
- jr z, .asm_115b3b
- ld a, [wStartDay]
- cp $4
- jr z, .asm_115b43
- inc hl
- inc hl
- jr .asm_115b43
-
-.asm_115b36
- pop hl
- ld b, $83
- jr .asm_115b3d
-
-.asm_115b3b
- ld b, $81
-
-.asm_115b3d
- ld a, $ff
- ld [wStartDay], a
- ret
-
-.asm_115b43
- ld a, [Carpet]
- add a
- cpl
- ld c, a
- ld b, $ff
- inc bc
- add hl, bc
- ld b, h
- ld c, l
- ld hl, $dc02
- ld a, [$dc00]
- ld [hli], a
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, PartyMon5Defense
- ld de, $dc24
- call Function115c49
- ld hl, $dc24
- ld c, [hl]
- inc hl
- ld b, [hl]
- inc hl
- push hl
- ld a, [wCurrMapCallbackCount]
- ld l, a
- ld a, [wCurrMapCallbackHeaderPointer]
- ld h, a
- cp b
- jr c, .asm_115b36
- jr nz, .asm_115b7b
- ld a, l
- cp c
- jr c, .asm_115b36
-
-.asm_115b7b
- push bc
- ld a, b
- cpl
- ld b, a
- ld a, c
- cpl
- ld c, a
- inc bc
- add hl, bc
- ld a, l
- ld [wCurrMapCallbackCount], a
- ld a, h
- ld [wCurrMapCallbackHeaderPointer], a
- pop bc
- pop hl
- ld hl, wCurrMapTriggerCount
- ld a, [hli]
- ld [wCurrentMapSignpostCount], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, $dc26
- call Function115d6a
- ld hl, wCurrMapTriggerCount
- ld a, [wCurrentMapSignpostCount]
- ld [hli], a
- ld a, e
- ld [hli], a
- ld [hl], d
- ld a, [wStartDay]
- cp $3
- jr z, .asm_115bc1
- cp $4
- jr z, .asm_115bba
- jr .asm_115b3b
-
-.asm_115bba
- ld a, $5
- ld [wStartDay], a
- jr .asm_115bc6
-
-.asm_115bc1
- ld a, $2
- ld [wStartDay], a
-
-.asm_115bc6
- xor a
- ret
-
-; 115bc8
-
-Function115bc8: ; 115bc8
- xor a
- ld [Carpet], a
-.asm_115bcc
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c46
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c1b
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c46
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c3a
- ld a, [de]
- cp $d
- jr nz, .asm_115bcc
- inc e
- call z, .Function115c3d
- ld a, [de]
- cp $a
- jr nz, .asm_115c46
- inc e
- call z, .Function115c3d
- dec bc
- ld a, b
- or c
- jr z, .asm_115c46
- ld a, [Carpet]
- inc a
- ld [Carpet], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_115bcc
-
-.asm_115c1b
- ld a, [wStartDay]
- cp $4
- jr z, .asm_115c33
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- ld a, [de]
- ld [hli], a
- inc e
- call z, .Function115c3d
- xor a
- ld [hl], a
- ld a, $1
- ret
-
-.asm_115c33
- dec hl
- dec hl
- xor a
- ld [hl], a
- ld a, $1
- ret
-
-.asm_115c3a
- xor a
- ld [hl], a
- ret
-
-.Function115c3d:
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-.asm_115c46
- ld a, $2
- ret
-
-; 115c49
-
-Function115c49: ; 115c49
- ld a, e
- ld [WeeklyFlags], a
- ld a, d
- ld [SwarmFlags], a
- xor a
- ld [de], a
- inc de
- ld [de], a
- inc de
-
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- ld c, e
- ld b, d
- ld e, l
- ld d, h
- ld l, c
- ld h, b
-
-.asm_115c64
- ld a, [$dc1a]
- or a
- jr nz, .asm_115c71
- ld a, [$dc19]
- cp $4
- jr c, .asm_115c99
-
-.asm_115c71
- ld b, $4
- push hl
- ld hl, $dc1b
-.asm_115c77
- ld a, [de]
- inc de
- call Function115cfd
- ld [hli], a
- dec b
- jr nz, .asm_115c77
- ld a, [$dc19]
- ld c, a
- ld a, [$dc1a]
- ld b, a
-rept 4
- dec bc
-endr
-.asm_115c8c
- ld a, [de]
- cp $d
- jr z, .asm_115c95
- cp $a
- jr nz, .asm_115c9f
-
-.asm_115c95
- inc de
- dec bc
- jr .asm_115c8c
-
-.asm_115c99
- ld a, $ff
- ld [wStartDay], a
- ret
-
-.asm_115c9f
- ld a, c
- ld [$dc19], a
- ld a, b
- ld [$dc1a], a
- push de
- push hl
- ld hl, WeeklyFlags
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc de
- inc de
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- pop hl
- dec hl
- ld d, [hl]
- dec hl
- ld c, [hl]
- dec hl
- ld b, [hl]
- dec hl
- ld a, [hl]
- sla b
- sla b
- sla b
- rla
- sla b
- rla
- ld [hli], a
- ld [hl], b
- inc hl
- rrc c
- rrc c
- ld [hl], c
- dec hl
- ld a, $f
- and c
- or [hl]
- ld [hli], a
- ld a, [hli]
- and $c0
- or [hl]
- dec hl
- ld [hld], a
- dec hl
- pop de
- ld b, h
- ld c, l
- pop hl
- ld a, [bc]
- ld [hli], a
- inc bc
- ld a, [bc]
- ld [hli], a
- inc bc
- ld a, [bc]
- ld [hli], a
- ld a, [$dc19]
- cp $0
- jp nz, .asm_115c64
- ld a, [$dc1a]
- cp $0
- jp nz, .asm_115c64
- ret
-
-; 115cfd
-
-Function115cfd: ; 115cfd
- cp $2b
- jr c, .asm_115d27
- jr z, .asm_115d2f
- cp $2f
- jr c, .asm_115d27
- jr z, .asm_115d32
- cp $30
- jr c, .asm_115d27
- cp $3a
- jr c, .asm_115d35
- cp $3d
- jr c, .asm_115d27
- jr z, .asm_115d38
- cp $41
- jr c, .asm_115d27
- cp $5b
- jr c, .asm_115d4d
- cp $61
- jr c, .asm_115d27
- cp $7b
- jr c, .asm_115d50
-
-.asm_115d27
- pop hl
- pop hl
- ld a, $ff
- ld [wStartDay], a
- ret
-
-.asm_115d2f
- ld a, $3e
- ret
-
-.asm_115d32
- ld a, $3f
- ret
-
-.asm_115d35
- add $4
- ret
-
-.asm_115d38
- push de
- push hl
- ld a, [WeeklyFlags]
- ld l, a
- ld a, [SwarmFlags]
- ld h, a
- ld e, [hl]
- inc hl
- ld d, [hl]
- dec de
- ld [hl], d
- dec hl
- ld [hl], e
- pop hl
- pop de
- xor a
- ret
-
-.asm_115d4d
- sub $41
- ret
-
-.asm_115d50
- sub $47
- ret
-
-; 115d53
-
-Function115d53: ; 115d53
-.asm_115d53
- ld a, [de]
- ld [hli], a
- inc e
- call z, Function115d61
- dec bc
- ld a, b
- or c
- jr nz, .asm_115d53
- xor a
- ld [hl], a
- ret
-
-; 115d61
-
-Function115d61: ; 115d61
- push bc
- ld bc, $dc00
- call Function115d80
- pop bc
- ret
-
-; 115d6a
-
-Function115d6a: ; 115d6a
-.asm_115d6a
- ld a, [hli]
- ld [de], a
- inc e
- call z, Function115d77
- dec bc
- ld a, b
- or c
- jr nz, .asm_115d6a
- xor a
- ret
-
-; 115d77
-
-Function115d77: ; 115d77
- push bc
- ld bc, wCurrentMapSignpostCount
- call Function115d80
- pop bc
- ret
-
-; 115d80
-
-Function115d80: ; 115d80
- ld e, a
- ld a, d
- cp $bf
- jr z, .asm_115d8b
- inc d
- ld a, e
- ld e, $0
- ret
-
-.asm_115d8b
- ld a, [bc]
- inc a
- ld [bc], a
- ld [hFF8C], a
- ld [MBC3SRamBank], a
- ld a, e
- ld d, $a0
- ld e, $0
- ret
-
-; 115d99
-
-INCLUDE "misc/mobile_45_sprite_engine.asm"
-
-; 116567
-
-Function116567: ; 116567
- ld hl, wc3f7
- dec [hl]
- ret nz
- ld hl, wc3f6
- inc [hl]
-.asm_116570
- ld a, $7
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1167eb
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- pop hl
- ld a, [wc3f6]
- sla a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- cp $fe
- jr nz, .asm_116595
- xor a
- ld [wc3f6], a
- jr .asm_116570
-
-.asm_116595
- ld [wc3f5], a
- ld a, [hl]
- ld [wc3f7], a
- ret
-
-; 11659d
-
-Function11659d: ; 11659d
- ld a, [wc314]
- cp $12
- ret nc
- ld e, a
- ld d, 0
- ld hl, Jumptable_1165af
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-; 1165af
-
-Jumptable_1165af: ; 1165af
- dw Function11677e
- dw Function1165d5
- dw Function1165d8
- dw Function1165e3
- dw Function1165f5
- dw Function116600
- dw Function116615
- dw Function116618
- dw Function116623
- dw Function116635
- dw Function116640
- dw Function116655
- dw Function11665c
- dw Function11668d
- dw Function11669f
- dw Function1166a2
- dw Function1166c4
- dw Function1166d6
- dw Function1166d6
-; 1165d5
-
-Function1165d5: ; 1165d5
- call Function11678e
-
-Function1165d8:
- ld a, $0
- ld c, a
- ld a, $ff
- ld b, a
- ld a, $a8
- call Function1166f4
-
-Function1165e3:
- call Function116747
- ld a, [wc30e]
- cp $e8
- ret nz
- ld a, $1
- call Function116780
- ret c
- jp Function116797
-
-; 1165f5
-
-Function1165f5: ; 1165f5
- ld a, $1
- ld c, a
- ld a, $1
- ld b, a
- ld a, $e8
- call Function1166f4
-
-Function116600:
- call Function116747
- ld a, [wc30e]
- cp $a8
- ret nz
- ld a, $1
- call Function116780
- ret c
- ld a, $2
- ld [wc314], a
- ret
-
-; 116615
-
-Function116615: ; 116615
- call Function11678e
-
-Function116618:
- ld a, $3
- ld c, a
- ld a, $1
- ld b, a
- ld a, $28
- call Function11671f
-
-Function116623:
- call Function116747
- ld a, [wc30f]
- cp $a0
- ret nz
- ld a, $6
- call Function116780
- ret c
- jp Function116797
-
-; 116635
-
-Function116635: ; 116635
- ld a, $2
- ld c, a
- ld a, $ff
- ld b, a
- ld a, $a0
- call Function11671f
-
-Function116640:
- call Function116747
- ld a, [wc30f]
- cp $28
- ret nz
- ld a, $6
- call Function116780
- ret c
- ld a, $7
- ld [wc314], a
- ret
-
-; 116655
-
-Function116655: ; 116655
- xor a
- ld [wc314 + 3], a
- call Function11678e
-
-Function11665c:
- ld hl, wc314 + 3
- ld a, $1
- xor [hl]
- ld [hl], a
- add $4
- ld c, a
- call Function11679c
- ld a, [wc314 + 3]
- and a
- jr nz, .asm_116673
- ld a, $48
- jr .asm_116675
-
-.asm_116673
- ld a, $78
-
-.asm_116675
- ld [wc30f], a
- call Random
- ld a, [hRandomAdd]
- and $7
- sla a
- sla a
- sla a
- add $30
- ld [wc30e], a
- call Function116797
-
-Function11668d:
- ld a, [wc311]
- cp $ff
- ret nz
- ld a, $b
- call Function116780
- ret c
- ld a, $c
- ld [wc314], a
- ret
-
-; 11669f
-
-Function11669f: ; 11669f
- call Function11678e
-
-Function1166a2:
- ld a, $a8
- ld [wc30e], a
- ld [wc3f1], a
- ld a, $60
- ld [wc30f], a
- ld [wc3f3], a
- ld a, $ff
- ld [wc314 + 2], a
- xor a
- ld [wc314 + 3], a
- ld a, $0
- ld c, a
- call Function11679c
- call Function116797
-
-Function1166c4:
- call Function116747
- ld a, [wc30e]
- cp $58
- ret nz
- ld a, $6
- ld c, a
- call Function11679c
- call Function116797
-
-Function1166d6:
- call Function116747
- ld a, [wc30e]
- cp $48
- jr nz, .asm_1166e4
- xor a
- ld [wc314 + 2], a
-
-.asm_1166e4
- ld a, [wc311]
- cp $ff
- ret nz
- ld a, $4
- ld [$c319], a
- xor a
- ld [wc314], a
- ret
-
-; 1166f4
-
-Function1166f4: ; 1166f4
- ld [wc30e], a
- ld a, b
- ld [wc314 + 2], a
- xor a
- ld [wc314 + 3], a
- ld hl, wc30f
-.asm_116702
- call Random
- ld a, [hRandomAdd]
- and $7
- jr z, .asm_11670c
- dec a
-
-.asm_11670c
- sla a
- sla a
- sla a
- add $48
- cp [hl]
- jr z, .asm_116702
- ld [hl], a
- call Function11679c
- call Function116797
- ret
-
-; 11671f
-
-Function11671f: ; 11671f
- ld [wc30f], a
- ld a, b
- ld [wc314 + 3], a
- xor a
- ld [wc314 + 2], a
- ld hl, wc30e
-.asm_11672d
- call Random
- ld a, [hRandomAdd]
- and $7
- sla a
- sla a
- sla a
- add $30
- cp [hl]
- jr z, .asm_11672d
- ld [hl], a
- call Function11679c
- call Function116797
- ret
-
-; 116747
-
-Function116747: ; 116747
- ld hl, wc30e
- ld a, [wc314 + 2]
- add [hl]
- ld [hl], a
- ld hl, wc30f
- ld a, [wc314 + 3]
- add [hl]
- ld [hl], a
- ret
-
-; 116758
-
-Function116758: ; 116758
- ld a, [wc30f]
- cp $30
- jr c, .asm_116770
- jr z, .asm_116770
- cp $38
- jr c, .asm_116774
- jr z, .asm_116774
- cp $40
- jr c, .asm_116778
- jr z, .asm_116778
- xor a
- jr .asm_11677a
-
-.asm_116770
- ld a, $c
- jr .asm_11677a
-
-.asm_116774
- ld a, $8
- jr .asm_11677a
-
-.asm_116778
- ld a, $4
-
-.asm_11677a
- ld [wc314 + 4], a
- ret
-
-; 11677e
-
-Function11677e: ; 11677e
- ld a, $0
-
-Function116780:
- ld hl, wc314 + 1
- cp [hl]
- jr z, .asm_11678c
- ld a, [hl]
- ld [wc314], a
- scf
- ret
-
-.asm_11678c
- and a
- ret
-
-; 11678e
-
-Function11678e: ; 11678e
- ld hl, wc314
- ld a, [hl]
- ld [wc314 + 1], a
- inc [hl]
- ret
-
-; 116797
-
-Function116797: ; 116797
- ld hl, wc314
- inc [hl]
- ret
-
-; 11679c
-
-Function11679c:
- ld a, c
- ld [wc311], a
- xor a
- ld [wc312], a
- jr asm_1167af
-
-Function1167a6: ; 1167a6
- ld hl, wc313
- dec [hl]
- ret nz
- ld hl, wc312
- inc [hl]
-
-asm_1167af
-.asm_1167af
- ld a, [wc311]
- cp $ff
- ret z
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1167eb
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- pop hl
- ld a, [wc312]
- sla a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- cp $ff
- jr z, .asm_1167dc
- cp $fe
- jr nz, .asm_1167e3
- xor a
- ld [wc312], a
- jr .asm_1167af
-
-.asm_1167dc
- ld a, $ff
- ld [wc311], a
- ld a, $fd
-
-.asm_1167e3
- ld [wc310], a
- ld a, [hl]
- ld [wc313], a
- ret
-
-; 1167eb
-
-Unknown_1167eb:
- dw Unknown_1167fb
- dw Unknown_116808
- dw Unknown_116867
- dw Unknown_116870
- dw Unknown_116815
- dw Unknown_11683e
- dw Unknown_116881
- dw Unknown_1168ae
-
-Unknown_1167fb: ; 1167fb
- db $0, $6
- db $1, $4
- db $2, $4
- db $3, $6
- db $2, $4
- db $1, $4
- db $fe
-
-Unknown_116808: ; 116808
- db $4, $6
- db $5, $4
- db $6, $4
- db $7, $6
- db $6, $4
- db $5, $4
- db $fe
-
-Unknown_116815: ; 116815
- db $fd, $20
- db $8, $c
- db $9, $24
- db $a, $4
- db $b, $8
- db $a, $4
- db $9, $6
- db $c, $4
- db $d, $8
- db $c, $5
- db $9, $24
- db $a, $4
- db $b, $8
- db $a, $4
- db $9, $6
- db $c, $4
- db $d, $8
- db $c, $5
- db $9, $8
- db $8, $4
- db $ff
-
-Unknown_11683e: ; 11683e
- db $fd, $20
- db $e, $c
- db $f, $24
- db $10, $4
- db $11, $8
- db $10, $4
- db $f, $6
- db $12, $4
- db $13, $8
- db $12, $5
- db $f, $24
- db $10, $4
- db $11, $8
- db $10, $4
- db $f, $6
- db $12, $4
- db $13, $8
- db $12, $5
- db $f, $8
- db $e, $4
- db $ff
-
-Unknown_116867: ; 116867
- db $14, $8
- db $15, $8
- db $16, $8
- db $15, $8
- db $fe
-
-Unknown_116870: ; 116870
- db $17, $5
- db $18, $5
- db $19, $5
- db $1a, $5
- db $1b, $5
- db $1a, $5
- db $19, $5
- db $18, $5
- db $fe
-
-Unknown_116881: ; 116881
- db $1c, $7
- db $1d, $7
- db $1e, $a
- db $1f, $a
- db $20, $5
- db $21, $5
- db $20, $5
- db $21, $5
- db $20, $18
- db $22, $4
- db $23, $2
- db $22, $2
- db $23, $2
- db $22, $1
- db $23, $1
- db $22, $1
- db $23, $4
- db $fd, $1
- db $23, $1
- db $fd, $2
- db $23, $2
- db $fd, $40
- db $ff
-
-Unknown_1168ae: ; 1168ae
- db $24, $4
- db $25, $4
- db $26, $4
- db $27, $4
- db $28, $4
- db $29, $4
- db $2a, $4
- db $2b, $4
- db $2c, $4
- db $2d, $4
- db $2e, $4
- db $fe
-; 1168c5
-
-Unknown_1168c5:
- dw Unknown_116923
- dw Unknown_116960
- dw Unknown_1169a1
- dw Unknown_1169de
- dw Unknown_116a1b
- dw Unknown_116a58
- dw Unknown_116a99
- dw Unknown_116ad6
- dw Unknown_116d1b
- dw Unknown_116d4c
- dw Unknown_116d85
- dw Unknown_116dbe
- dw Unknown_116df7
- dw Unknown_116e30
- dw Unknown_116e69
- dw Unknown_116e9a
- dw Unknown_116ed3
- dw Unknown_116f0c
- dw Unknown_116f45
- dw Unknown_116f7e
- dw Unknown_116b13
- dw Unknown_116b54
- dw Unknown_116b95
- dw Unknown_116bd6
- dw Unknown_116c17
- dw Unknown_116c58
- dw Unknown_116c99
- dw Unknown_116cda
- dw Unknown_116fb7
- dw Unknown_116fec
- dw Unknown_117025
- dw Unknown_117056
- dw Unknown_117083
- dw Unknown_1170c0
- dw Unknown_1170fd
- dw Unknown_11713a
- dw Unknown_117177
- dw Unknown_11719c
- dw Unknown_1171c1
- dw Unknown_1171e6
- dw Unknown_11720b
- dw Unknown_117230
- dw Unknown_117255
- dw Unknown_11727a
- dw Unknown_11729f
- dw Unknown_1172c4
- dw Unknown_1172e9
-
-Unknown_116923: ; 116923
- db $f
- db $0, $0, $1, $a
- db $0, $8, $2, $d
- db $0, $10, $3, $d
- db $0, $18, $4, $d
- db $8, $0, $11, $a
- db $8, $8, $12, $a
- db $8, $10, $13, $a
- db $8, $18, $14, $d
- db $10, $0, $21, $a
- db $10, $8, $22, $a
- db $10, $10, $23, $a
- db $10, $18, $24, $a
- db $18, $0, $31, $a
- db $18, $8, $32, $a
- db $18, $10, $33, $a
-
-Unknown_116960: ; 116960
- db $10
- db $1, $0, $1, $a
- db $1, $8, $2, $d
- db $1, $10, $3, $d
- db $1, $18, $4, $d
- db $9, $0, $11, $a
- db $9, $8, $12, $a
- db $9, $10, $13, $a
- db $9, $18, $14, $d
- db $11, $0, $5, $a
- db $11, $8, $6, $a
- db $11, $10, $7, $a
- db $11, $18, $34, $a
- db $19, $0, $15, $a
- db $19, $8, $16, $a
- db $19, $10, $17, $a
- db $19, $18, $35, $a
-
-Unknown_1169a1: ; 1169a1
- db $f
- db $1, $0, $1, $a
- db $1, $8, $2, $d
- db $1, $10, $3, $d
- db $1, $18, $4, $d
- db $9, $0, $11, $a
- db $9, $8, $12, $a
- db $9, $10, $13, $a
- db $9, $18, $14, $d
- db $11, $0, $25, $a
- db $11, $8, $26, $a
- db $11, $10, $27, $a
- db $11, $18, $34, $a
- db $19, $8, $36, $a
- db $19, $10, $37, $a
- db $19, $18, $35, $a
-
-Unknown_1169de: ; 1169de
- db $f
- db $0, $0, $1, $a
- db $0, $8, $2, $d
- db $0, $10, $3, $d
- db $0, $18, $4, $d
- db $8, $0, $11, $a
- db $8, $8, $12, $a
- db $8, $10, $13, $a
- db $8, $18, $14, $d
- db $10, $0, $10, $a
- db $10, $8, $20, $a
- db $10, $10, $30, $a
- db $10, $18, $24, $a
- db $18, $0, $31, $a
- db $18, $8, $32, $a
- db $18, $10, $33, $a
-
-Unknown_116a1b: ; 116a1b
- db $f
- db $0, $0, $4, $2d
- db $0, $8, $3, $2d
- db $0, $10, $2, $2d
- db $0, $18, $1, $2a
- db $8, $0, $14, $2d
- db $8, $8, $13, $2a
- db $8, $10, $12, $2a
- db $8, $18, $11, $2a
- db $10, $0, $24, $2a
- db $10, $8, $23, $2a
- db $10, $10, $22, $2a
- db $10, $18, $21, $2a
- db $18, $8, $33, $2a
- db $18, $10, $32, $2a
- db $18, $18, $31, $2a
-
-Unknown_116a58: ; 116a58
- db $10
- db $1, $0, $4, $2d
- db $1, $8, $3, $2d
- db $1, $10, $2, $2d
- db $1, $18, $1, $2a
- db $9, $0, $14, $2d
- db $9, $8, $13, $2a
- db $9, $10, $12, $2a
- db $9, $18, $11, $2a
- db $11, $0, $34, $2a
- db $11, $8, $7, $2a
- db $11, $10, $6, $2a
- db $11, $18, $5, $2a
- db $19, $0, $35, $2a
- db $19, $8, $17, $2a
- db $19, $10, $16, $2a
- db $19, $18, $15, $2a
-
-Unknown_116a99: ; 116a99
- db $f
- db $1, $0, $4, $2d
- db $1, $8, $3, $2d
- db $1, $10, $2, $2d
- db $1, $18, $1, $2a
- db $9, $0, $14, $2d
- db $9, $8, $13, $2a
- db $9, $10, $12, $2a
- db $9, $18, $11, $2a
- db $11, $0, $34, $2a
- db $11, $8, $27, $2a
- db $11, $10, $26, $2a
- db $11, $18, $25, $2a
- db $19, $0, $35, $2a
- db $19, $8, $37, $2a
- db $19, $10, $36, $2a
-
-Unknown_116ad6: ; 116ad6
- db $f
- db $0, $0, $4, $2d
- db $0, $8, $3, $2d
- db $0, $10, $2, $2d
- db $0, $18, $1, $2a
- db $8, $0, $14, $2d
- db $8, $8, $13, $2a
- db $8, $10, $12, $2a
- db $8, $18, $11, $2a
- db $10, $0, $24, $2a
- db $10, $8, $30, $2a
- db $10, $10, $20, $2a
- db $10, $18, $10, $2a
- db $18, $8, $33, $2a
- db $18, $10, $32, $2a
- db $18, $18, $31, $2a
-
-Unknown_116b13: ; 116b13
- db $10
- db $18, $0, $0, $b
- db $18, $8, $8, $b
- db $18, $10, $5c, $b
- db $18, $18, $0, $b
- db $10, $0, $0, $b
- db $10, $8, $5d, $b
- db $10, $10, $5e, $b
- db $10, $18, $0, $b
- db $8, $0, $50, $b
- db $8, $8, $51, $b
- db $8, $10, $52, $b
- db $8, $18, $50, $2b
- db $0, $0, $43, $b
- db $0, $8, $44, $b
- db $0, $10, $44, $2b
- db $0, $18, $43, $2b
-
-Unknown_116b54: ; 116b54
- db $10
- db $19, $0, $0, $b
- db $19, $8, $18, $b
- db $19, $10, $c, $b
- db $19, $18, $0, $b
- db $11, $0, $42, $b
- db $11, $8, $3a, $b
- db $11, $10, $3a, $2b
- db $11, $18, $42, $2b
- db $9, $0, $58, $b
- db $9, $8, $45, $b
- db $9, $10, $45, $2b
- db $9, $18, $58, $2b
- db $1, $0, $d, $b
- db $1, $8, $44, $b
- db $1, $10, $44, $2b
- db $1, $18, $d, $2b
-
-Unknown_116b95: ; 116b95
- db $10
- db $18, $0, $0, $b
- db $18, $8, $5c, $2b
- db $18, $10, $8, $2b
- db $18, $18, $0, $b
- db $10, $0, $0, $b
- db $10, $8, $5e, $2b
- db $10, $10, $5d, $2b
- db $10, $18, $0, $b
- db $8, $0, $50, $b
- db $8, $8, $52, $2b
- db $8, $10, $51, $2b
- db $8, $18, $50, $2b
- db $0, $0, $43, $b
- db $0, $8, $44, $b
- db $0, $10, $44, $2b
- db $0, $18, $43, $2b
-
-Unknown_116bd6: ; 116bd6
- db $10
- db $18, $0, $0, $a
- db $18, $8, $56, $a
- db $18, $10, $57, $a
- db $18, $18, $0, $a
- db $10, $0, $64, $a
- db $10, $8, $4a, $a
- db $10, $10, $4b, $a
- db $10, $18, $71, $a
- db $8, $0, $54, $a
- db $8, $8, $55, $a
- db $8, $10, $55, $2a
- db $8, $18, $54, $2a
- db $0, $0, $48, $a
- db $0, $8, $49, $a
- db $0, $10, $49, $2a
- db $0, $18, $48, $2a
-
-Unknown_116c17: ; 116c17
- db $10
- db $19, $0, $0, $a
- db $19, $8, $76, $a
- db $19, $10, $77, $a
- db $19, $18, $0, $a
- db $11, $0, $64, $a
- db $11, $8, $69, $a
- db $11, $10, $6a, $a
- db $11, $18, $6b, $a
- db $9, $0, $6f, $a
- db $9, $8, $70, $a
- db $9, $10, $70, $2a
- db $9, $18, $6f, $2a
- db $1, $0, $63, $a
- db $1, $8, $19, $a
- db $1, $10, $19, $2a
- db $1, $18, $63, $2a
-
-Unknown_116c58: ; 116c58
- db $10
- db $1a, $0, $6c, $a
- db $1a, $8, $6d, $a
- db $1a, $10, $6e, $a
- db $1a, $18, $0, $a
- db $12, $0, $5f, $a
- db $12, $8, $60, $a
- db $12, $10, $61, $a
- db $12, $18, $62, $a
- db $a, $0, $53, $a
- db $a, $8, $55, $a
- db $a, $10, $55, $2a
- db $a, $18, $53, $2a
- db $2, $0, $46, $a
- db $2, $8, $47, $a
- db $2, $10, $47, $2a
- db $2, $18, $46, $2a
-
-Unknown_116c99: ; 116c99
- db $10
- db $19, $0, $0, $2a
- db $19, $8, $77, $2a
- db $19, $10, $76, $2a
- db $19, $18, $0, $2a
- db $11, $0, $6b, $2a
- db $11, $8, $6a, $2a
- db $11, $10, $69, $2a
- db $11, $18, $64, $2a
- db $9, $0, $6f, $a
- db $9, $8, $70, $a
- db $9, $10, $70, $2a
- db $9, $18, $6f, $2a
- db $1, $0, $63, $a
- db $1, $8, $19, $a
- db $1, $10, $19, $2a
- db $1, $18, $63, $2a
-
-Unknown_116cda: ; 116cda
- db $10
- db $18, $0, $0, $a
- db $18, $8, $57, $2a
- db $18, $10, $56, $2a
- db $18, $18, $0, $a
- db $10, $0, $71, $2a
- db $10, $8, $4b, $2a
- db $10, $10, $4a, $2a
- db $10, $18, $64, $2a
- db $8, $0, $54, $a
- db $8, $8, $55, $a
- db $8, $10, $55, $2a
- db $8, $18, $54, $2a
- db $0, $0, $48, $a
- db $0, $8, $49, $a
- db $0, $10, $49, $2a
- db $0, $18, $48, $2a
-
-Unknown_116d1b: ; 116d1b
- db $c
- db $0, $0, $38, $4a
- db $0, $8, $39, $4a
- db $0, $10, $39, $6a
- db $0, $18, $38, $6a
- db $8, $0, $28, $4a
- db $8, $8, $29, $4a
- db $8, $10, $29, $6a
- db $8, $18, $28, $6a
- db $10, $0, $9, $4d
- db $10, $8, $19, $4a
- db $10, $10, $19, $6a
- db $10, $18, $9, $6d
-
-Unknown_116d4c: ; 116d4c
- db $e
- db $0, $8, $3b, $4a
- db $0, $10, $3b, $6a
- db $8, $0, $2a, $4a
- db $8, $8, $2b, $4a
- db $8, $10, $2b, $6a
- db $8, $18, $2a, $6a
- db $10, $0, $1a, $4a
- db $10, $8, $1b, $4a
- db $10, $10, $1b, $6a
- db $10, $18, $1a, $6a
- db $18, $0, $a, $4a
- db $18, $8, $b, $4a
- db $18, $10, $b, $6a
- db $18, $18, $a, $6a
-
-Unknown_116d85: ; 116d85
- db $e
- db $0, $0, $35, $2a
- db $0, $8, $3c, $4a
- db $0, $10, $3d, $4a
- db $0, $18, $3e, $4a
- db $8, $0, $2c, $4a
- db $8, $8, $2d, $4a
- db $8, $10, $2e, $4a
- db $8, $18, $2f, $4a
- db $10, $0, $1c, $4a
- db $10, $8, $1d, $4a
- db $10, $10, $1e, $4d
- db $10, $18, $1f, $4d
- db $18, $10, $e, $4d
- db $18, $18, $f, $4a
-
-Unknown_116dbe: ; 116dbe
- db $e
- db $0, $0, $65, $4a
- db $0, $8, $66, $4a
- db $0, $10, $67, $4a
- db $0, $18, $68, $4a
- db $8, $8, $59, $4a
- db $8, $10, $5a, $4a
- db $8, $18, $5b, $4a
- db $10, $0, $4c, $4a
- db $10, $8, $4d, $4d
- db $10, $10, $4e, $4d
- db $10, $18, $4f, $4a
- db $18, $0, $3f, $4d
- db $18, $8, $40, $4d
- db $18, $10, $41, $4d
-
-Unknown_116df7: ; 116df7
- db $e
- db $0, $0, $3e, $6a
- db $0, $8, $3d, $6a
- db $0, $10, $3c, $6a
- db $0, $18, $35, $a
- db $8, $0, $2f, $6a
- db $8, $8, $2e, $6a
- db $8, $10, $2d, $6a
- db $8, $18, $2c, $6a
- db $10, $0, $1f, $6d
- db $10, $8, $1e, $6d
- db $10, $10, $1d, $6a
- db $10, $18, $1c, $6a
- db $18, $0, $f, $6a
- db $18, $8, $e, $6d
-
-Unknown_116e30: ; 116e30
- db $e
- db $0, $0, $68, $6a
- db $0, $8, $67, $6a
- db $0, $10, $66, $6a
- db $0, $18, $65, $6a
- db $8, $0, $5b, $6a
- db $8, $8, $5a, $6a
- db $8, $10, $59, $6a
- db $10, $0, $4f, $6a
- db $10, $8, $4e, $6d
- db $10, $10, $4d, $6d
- db $10, $18, $4c, $6a
- db $18, $8, $41, $6d
- db $18, $10, $40, $6d
- db $18, $18, $3f, $6d
-
-Unknown_116e69: ; 116e69
- db $c
- db $8, $0, $9, $d
- db $8, $8, $19, $a
- db $8, $10, $19, $2a
- db $8, $18, $9, $2d
- db $10, $0, $28, $a
- db $10, $8, $29, $a
- db $10, $10, $29, $2a
- db $10, $18, $28, $2a
- db $18, $0, $38, $a
- db $18, $8, $39, $a
- db $18, $10, $39, $2a
- db $18, $18, $38, $2a
-
-Unknown_116e9a: ; 116e9a
- db $e
- db $0, $0, $a, $a
- db $0, $8, $b, $a
- db $0, $10, $b, $2a
- db $0, $18, $a, $2a
- db $8, $0, $1a, $a
- db $8, $8, $1b, $a
- db $8, $10, $1b, $2a
- db $8, $18, $1a, $2a
- db $10, $0, $2a, $a
- db $10, $8, $2b, $a
- db $10, $10, $2b, $2a
- db $10, $18, $2a, $2a
- db $18, $8, $3b, $a
- db $18, $10, $3b, $2a
-
-Unknown_116ed3: ; 116ed3
- db $e
- db $0, $10, $e, $d
- db $0, $18, $f, $a
- db $8, $0, $1c, $a
- db $8, $8, $1d, $a
- db $8, $10, $1e, $d
- db $8, $18, $1f, $d
- db $10, $0, $2c, $a
- db $10, $8, $2d, $a
- db $10, $10, $2e, $a
- db $10, $18, $2f, $a
- db $18, $0, $35, $6a
- db $18, $8, $3c, $a
- db $18, $10, $3d, $a
- db $18, $18, $3e, $a
-
-Unknown_116f0c: ; 116f0c
- db $e
- db $0, $0, $3f, $d
- db $0, $8, $40, $d
- db $0, $10, $41, $d
- db $8, $0, $4c, $a
- db $8, $8, $4d, $d
- db $8, $10, $4e, $d
- db $8, $18, $4f, $a
- db $10, $8, $59, $a
- db $10, $10, $5a, $a
- db $10, $18, $5b, $a
- db $18, $0, $65, $a
- db $18, $8, $66, $a
- db $18, $10, $67, $a
- db $18, $18, $68, $a
-
-Unknown_116f45: ; 116f45
- db $e
- db $0, $0, $f, $2a
- db $0, $8, $e, $2d
- db $8, $0, $1f, $2d
- db $8, $8, $1e, $2d
- db $8, $10, $1d, $2a
- db $8, $18, $1c, $2a
- db $10, $0, $2f, $2a
- db $10, $8, $2e, $2a
- db $10, $10, $2d, $2a
- db $10, $18, $2c, $2a
- db $18, $0, $3e, $2a
- db $18, $8, $3d, $2a
- db $18, $10, $3c, $2a
- db $18, $18, $35, $4a
-
-Unknown_116f7e: ; 116f7e
- db $e
- db $0, $8, $41, $2d
- db $0, $10, $40, $2d
- db $0, $18, $3f, $2d
- db $8, $0, $4f, $2a
- db $8, $8, $4e, $2d
- db $8, $10, $4d, $2d
- db $8, $18, $4c, $2a
- db $10, $0, $5b, $2a
- db $10, $8, $5a, $2a
- db $10, $10, $59, $2a
- db $18, $0, $68, $2a
- db $18, $8, $67, $2a
- db $18, $10, $66, $2a
- db $18, $18, $65, $2a
-
-Unknown_116fb7: ; 116fb7
- db $d
- db $fa, $0, $72, $a
- db $fa, $8, $73, $d
- db $fa, $10, $74, $d
- db $fa, $18, $75, $d
- db $2, $0, $81, $a
- db $2, $8, $82, $a
- db $2, $10, $83, $a
- db $2, $18, $84, $a
- db $a, $0, $91, $a
- db $a, $8, $92, $a
- db $a, $10, $93, $a
- db $a, $18, $94, $a
- db $12, $10, $a3, $a
-
-Unknown_116fec: ; 116fec
- db $e
- db $fd, $0, $85, $d
- db $fd, $8, $86, $d
- db $5, $0, $95, $d
- db $5, $8, $96, $a
- db $5, $10, $97, $a
- db $5, $18, $98, $a
- db $d, $0, $a5, $a
- db $d, $8, $a6, $a
- db $d, $10, $a7, $a
- db $d, $18, $a8, $a
- db $15, $0, $b3, $a
- db $15, $8, $b4, $a
- db $15, $10, $b5, $a
- db $15, $18, $b6, $a
-
-Unknown_117025: ; 117025
- db $c
- db $8, $0, $79, $d
- db $8, $8, $7a, $d
- db $8, $10, $7b, $a
- db $8, $18, $7c, $a
- db $10, $0, $89, $d
- db $10, $8, $8a, $a
- db $10, $10, $8b, $a
- db $10, $18, $8c, $a
- db $18, $0, $99, $a
- db $18, $8, $9a, $a
- db $18, $10, $9b, $a
- db $18, $18, $9c, $a
-
-Unknown_117056: ; 117056
- db $b
- db $8, $0, $7d, $a
- db $8, $8, $7e, $d
- db $8, $10, $7f, $d
- db $8, $18, $80, $a
- db $10, $0, $8d, $a
- db $10, $8, $8e, $a
- db $10, $10, $8f, $a
- db $10, $18, $90, $a
- db $18, $8, $9e, $a
- db $18, $10, $9f, $a
- db $18, $18, $a0, $a
-
-Unknown_117083: ; 117083
- db $f
- db $0, $0, $a1, $a
- db $0, $8, $a2, $a
- db $0, $10, $a2, $2a
- db $0, $18, $a1, $2a
- db $8, $0, $b1, $a
- db $8, $8, $b2, $d
- db $8, $10, $b2, $2d
- db $8, $18, $b1, $2a
- db $10, $0, $ab, $a
- db $10, $8, $ac, $a
- db $10, $10, $ac, $2a
- db $10, $18, $ab, $2a
- db $18, $8, $a4, $a
- db $18, $10, $87, $a
- db $18, $18, $88, $a
-
-Unknown_1170c0: ; 1170c0
- db $f
- db $0, $0, $a1, $a
- db $0, $8, $a2, $d
- db $0, $10, $a2, $2a
- db $0, $18, $a1, $2a
- db $8, $0, $b1, $a
- db $8, $8, $78, $d
- db $8, $10, $78, $2d
- db $8, $18, $b1, $2a
- db $10, $0, $ab, $a
- db $10, $8, $ac, $a
- db $10, $10, $ac, $2a
- db $10, $18, $ab, $2a
- db $18, $8, $a4, $a
- db $18, $10, $87, $a
- db $18, $18, $88, $a
-
-Unknown_1170fd: ; 1170fd
- db $f
- db $0, $0, $a9, $a
- db $0, $8, $aa, $a
- db $0, $10, $aa, $2a
- db $0, $18, $a9, $2a
- db $8, $0, $b7, $a
- db $8, $8, $b8, $a
- db $8, $10, $b8, $2a
- db $8, $18, $b7, $2a
- db $10, $0, $ab, $a
- db $10, $8, $ac, $a
- db $10, $10, $ac, $2a
- db $10, $18, $ad, $a
- db $18, $8, $a4, $a
- db $18, $10, $ba, $a
- db $18, $18, $bb, $a
-
-Unknown_11713a: ; 11713a
- db $f
- db $0, $0, $ae, $c
- db $0, $8, $af, $c
- db $0, $10, $af, $2c
- db $0, $18, $ae, $2c
- db $8, $0, $bc, $c
- db $8, $8, $bd, $c
- db $8, $10, $bd, $2c
- db $8, $18, $bc, $2c
- db $10, $0, $bf, $c
- db $10, $8, $9d, $c
- db $10, $10, $9d, $2c
- db $10, $18, $b0, $c
- db $18, $8, $b9, $c
- db $18, $10, $c0, $c
- db $18, $18, $be, $c
-
-Unknown_117177: ; 117177
- db $9
- db $14, $0, $1f, $6
- db $14, $8, $20, $6
- db $14, $10, $21, $6
- db $c, $0, $10, $6
- db $c, $8, $11, $6
- db $c, $10, $12, $6
- db $4, $0, $1, $6
- db $4, $8, $2, $6
- db $4, $10, $3, $6
-
-Unknown_11719c: ; 11719c
- db $9
- db $14, $0, $22, $6
- db $14, $8, $23, $6
- db $14, $10, $24, $6
- db $c, $0, $13, $6
- db $c, $8, $14, $6
- db $c, $10, $15, $6
- db $4, $0, $4, $6
- db $4, $8, $5, $6
- db $4, $10, $6, $6
-
-Unknown_1171c1: ; 1171c1
- db $9
- db $14, $0, $25, $6
- db $14, $8, $26, $6
- db $14, $10, $27, $6
- db $c, $0, $16, $6
- db $c, $8, $17, $6
- db $c, $10, $18, $6
- db $4, $0, $7, $6
- db $4, $8, $8, $6
- db $4, $10, $9, $6
-
-Unknown_1171e6: ; 1171e6
- db $9
- db $14, $0, $28, $6
- db $14, $8, $29, $6
- db $14, $10, $2a, $6
- db $c, $0, $19, $6
- db $c, $8, $1a, $6
- db $c, $10, $1b, $6
- db $4, $0, $a, $6
- db $4, $8, $b, $6
- db $4, $10, $c, $6
-
-Unknown_11720b: ; 11720b
- db $9
- db $14, $0, $2b, $6
- db $14, $8, $2c, $6
- db $14, $10, $2d, $6
- db $c, $0, $1c, $6
- db $c, $8, $1d, $6
- db $c, $10, $1e, $6
- db $4, $0, $d, $6
- db $4, $8, $e, $6
- db $4, $10, $f, $6
-
-Unknown_117230: ; 117230
- db $9
- db $14, $0, $47, $6
- db $14, $8, $48, $6
- db $14, $10, $49, $6
- db $c, $0, $3b, $6
- db $c, $8, $3c, $6
- db $c, $10, $3b, $26
- db $4, $0, $2e, $6
- db $4, $8, $2f, $6
- db $4, $10, $30, $6
-
-Unknown_117255: ; 117255
- db $9
- db $14, $0, $35, $6
- db $14, $8, $4a, $6
- db $14, $10, $35, $6
- db $c, $0, $3d, $6
- db $c, $8, $35, $6
- db $c, $10, $3d, $26
- db $4, $0, $31, $6
- db $4, $8, $32, $6
- db $4, $10, $31, $26
-
-Unknown_11727a: ; 11727a
- db $9
- db $14, $0, $4b, $6
- db $14, $8, $4c, $6
- db $14, $10, $4d, $6
- db $c, $0, $3e, $6
- db $c, $8, $3f, $6
- db $c, $10, $40, $6
- db $4, $0, $33, $6
- db $4, $8, $34, $6
- db $4, $10, $35, $6
-
-Unknown_11729f: ; 11729f
- db $9
- db $14, $0, $4e, $6
- db $14, $8, $4f, $6
- db $14, $10, $50, $6
- db $c, $0, $41, $6
- db $c, $8, $42, $6
- db $c, $10, $43, $6
- db $4, $0, $35, $6
- db $4, $8, $36, $6
- db $4, $10, $37, $6
-
-Unknown_1172c4: ; 1172c4
- db $9
- db $14, $0, $51, $6
- db $14, $8, $52, $6
- db $14, $10, $35, $6
- db $c, $0, $44, $6
- db $c, $8, $45, $6
- db $c, $10, $46, $6
- db $4, $0, $38, $6
- db $4, $8, $39, $6
- db $4, $10, $3a, $6
-
-Unknown_1172e9: ; 1172e9
- db $9
- db $10, $0, $0, $2
- db $10, $8, $0, $2
- db $10, $10, $0, $2
- db $8, $0, $0, $2
- db $8, $8, $0, $2
- db $c, $10, $1f, $6
- db $0, $0, $0, $2
- db $0, $8, $0, $2
- db $4, $10, $10, $6
-; 11730e
-
-Palette_11730e:
- RGB 31, 31, 31
- RGB 7, 5, 4
- RGB 31, 28, 4
- RGB 31, 5, 5
- RGB 31, 31, 31
- RGB 7, 5, 4
- RGB 31, 23, 0
- RGB 31, 28, 4
- RGB 31, 31, 31
- RGB 16, 19, 31
- RGB 17, 31, 31
- RGB 31, 31, 31
- RGB 5, 5, 5
- RGB 7, 5, 4
- RGB 31, 28, 4
- RGB 19, 11, 6
- RGB 31, 31, 31
- RGB 3, 15, 31
- RGB 4, 25, 25
- RGB 0, 7, 12
- RGB 31, 31, 31
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 4, 11, 22
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 22, 11, 8
- RGB 0, 16, 0
- RGB 0, 16, 0
- RGB 0, 16, 0
-
-Palette_11734e:
- RGB 31, 30, 30
- RGB 2, 0, 0
- RGB 10, 9, 9
- RGB 15, 14, 14
-
-Unknown_117356: ; 117356
- db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
- db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2
- db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5
- db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
- db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
- db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
-
- db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
- db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f
- db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f
- db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
- db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
- db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
-; 117656
-
-
-SECTION "Mobile Stadium", ROMX
-
-Special_GiveOddEgg: ; 117656
- callba GiveOddEgg
- ret
-
-; 11765d
-
-Function11765d: ; 11765d (45:765d)
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function11766b
- pop af
- ld [hInMenu], a
- ret
-
-Function11766b: ; 11766b (45:766b)
- call Function117699
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Function1176ee
- ld a, $5
- call GetSRAMBank
- ld hl, $b1f3
- ld de, wcd49
- ld bc, $8
- call CopyBytes
- ld de, $c708
- ld bc, $11
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- ret
-
-Function117699: ; 117699 (45:7699)
- ld a, $5
- call GetSRAMBank
- ld hl, wcd49
- ld de, $b1f3
- ld bc, $8
- call CopyBytes
- ld hl, $c708
- ld bc, $11
- call CopyBytes
- call CloseSRAM
- xor a
- ld [wcd49], a
- ld [wcd4a], a
- ld [wcd4b], a
- ld [wcd4c], a
- ld [wcd4d], a
- ld [wcd4e], a
- ld [wcd4f], a
- ld hl, $c708
- ld bc, $11
- call ByteFill
- call ClearBGPalettes
- call ClearSprites
- callba Function171c87
- callba ReloadMapPart
- callba ClearSpriteAnims
- ret
-
-Function1176ee: ; 1176ee (45:76ee)
-.loop
- call JoyTextDelay
- ld a, [wcd49]
- bit 7, a
- jr nz, .quit
- call Function117719
- callba PlaySpriteAnimations
- callba ReloadMapPart
- jr .loop
-
-.quit
- callba ClearSpriteAnims
- call ClearBGPalettes
- call ClearScreen
- call ClearSprites
- ret
-
-Function117719: ; 117719 (45:7719)
- ld a, [wcd49]
- ld e, a
- ld d, 0
- ld hl, Jumptable_117728
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-Jumptable_117728: ; 117728 (45:7728)
- dw Function117738
- dw Function117764
- dw Function1178aa
- dw Function1178e8
- dw Function117942
- dw Function117976
- dw Function117984
- dw Function1179a7
-
-
-Function117738: ; 117738 (45:7738)
- callba Function171ccd
- depixel 6, 3
- ld a, $1d
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld a, $6
- ld [hl], a
- depixel 9, 4
- ld a, $1d
- call _InitSpriteAnimStruct
- ld hl, $c
- add hl, bc
- ld a, $7
- ld [hl], a
- ld a, $3
- ld [wcd23], a
- jp MobilePassword_IncrementJumptable
-
-Function117764: ; 117764 (45:7764)
- ld a, [wcd4a]
- cp $10
- jr nz, .asm_11776f
- ld a, $1
- jr .asm_117770
-
-.asm_11776f
- xor a
-.asm_117770
- ld [wcd24], a
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and SELECT
- jr nz, Function117764_select
- ld a, [hl]
- and START
- jr nz, Function117764_start
- ld a, [hl]
- and A_BUTTON
- jp nz, Function117764_a_button
- ld a, [hl]
- and B_BUTTON
- jr nz, Function117764_b_button
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, Function117764_d_up
- ld a, [hl]
- and D_DOWN
- jr nz, Function117764_d_down
- ld a, [hl]
- and D_LEFT
- jp nz, Function117764_d_left
- ld a, [hl]
- and D_RIGHT
- jp nz, Function117764_d_right
- ret
-
-Function117764_select: ; 1177a5 (45:77a5)
- callba Function171cf0
- ret
-
-Function117764_start: ; 1177ac (45:77ac)
- ld a, $2
- ld [wcd4c], a
- ld a, $4
- ld [wcd4d], a
- ret
-
-Function1177b7: ; 1177b7 (45:77b7)
- ld a, $3
- ld [wcd24], a
- ld a, [wcd4a]
- and a
- jr z, .asm_1177c5
- jp MobilePassword_IncrementJumptable
-
-.asm_1177c5
- ld a, $6
- ld [wcd49], a
- ret
-
-Function1177cb: ; 1177cb (45:77cb)
- ld a, $80
- ld [wcd49], a
- ld [ScriptVar], a
- jp MobilePassword_IncrementJumptable
-
-Function117764_b_button: ; 1177d6 (45:77d6)
- call PlayClickSFX
- ld a, [wcd4a]
- and a
- ret z
- dec a
- ld [wcd4a], a
- ld e, a
- ld d, $0
- ld hl, $c708
- add hl, de
- xor a
- ld [hl], a
- hlcoord 2, 4
- add hl, de
- ld [hl], a
- ret
-
-Function117764_d_up: ; 1177f1 (45:77f1)
- ld a, [wcd4d]
- and a
- ret z
- dec a
- ld [wcd4d], a
- cp $3
- ret nz
- ld a, [wcd4c]
- ld e, a
- sla a
- sla a
- add e
-Function117764_d_vertical_load: ; 117806 (45:7806)
- ld [wcd4c], a
- ret
-
-Function117764_d_down: ; 11780a (45:780a)
- ld a, [wcd4d]
- cp $4
- ret z
- inc a
- ld [wcd4d], a
- cp $4
- ret nz
- ld a, [wcd4c]
- cp $a
- jr nc, .asm_117825
- cp $5
- jr nc, .asm_117829
- xor a
- jr Function117764_d_vertical_load
-
-.asm_117825
- ld a, $2
- jr Function117764_d_vertical_load
-
-.asm_117829
- ld a, $1
- jr Function117764_d_vertical_load
-
-Function117764_d_left: ; 11782d (45:782d)
- ld a, [wcd4c]
- and a
- ret z
- dec a
- ld [wcd4c], a
- ret
-
-Function117764_d_right: ; 117837 (45:7837)
- ld e, $d
- ld a, [wcd4d]
- cp $4
- jr nz, .wrap
- ld e, $2
-.wrap
- ld a, [wcd4c]
- cp e
- ret z
- inc a
- ld [wcd4c], a
- ret
-
-Function117764_a_button: ; 11784c (45:784c)
- call PlayClickSFX
- ld a, [wcd4d]
- cp $4
- jr nz, .not_4
- ld a, [wcd4c]
- cp $2
- jp z, Function1177b7
- cp $1
- jp z, Function1177cb
- jp Function117764_select
-
-.not_4
- ld a, [wcd4a]
- ld e, a
- cp $10
- jp z, Function117764_start
- inc a
- ld [wcd4a], a
- ld d, $0
- ld a, [wcd4b]
- and a
- jr nz, .ascii_symbols
- ld hl, Unknown_117a0f
- jr .got_ascii
-
-.ascii_symbols
- ld hl, Unknown_117a47
-.got_ascii
- push de
- ld a, [wcd4c]
- ld b, a
- ld a, [wcd4d]
- ld c, $e
- call SimpleMultiply
- add b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld hl, $c708
- add hl, de
- ld [hl], a
- pop de
- hlcoord 2, 4
- add hl, de
- sub $20
- ld [hl], a
- ld a, e
- cp $f
- ret nz
- jp Function117764_start
-
-Function1178aa: ; 1178aa (45:78aa)
- ld hl, MenuDataHeader_1179b5
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- ld hl, MenuDataHeader_1179bd
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- hlcoord 16, 8
- ld de, YessNoString_1179c5
- call PlaceString
- hlcoord 15, 10
- ld a, "▶"
- ld [hl], a
- hlcoord 1, 14
- ld de, AskSavePasswordString
- call PlaceString
- ld a, $1
- ld [wcd4e], a
- jp MobilePassword_IncrementJumptable
-
-Function1178e8: ; 1178e8 (45:78e8)
- ld a, [hJoyPressed]
- cp B_BUTTON
- jr z, .b_button
- cp A_BUTTON
- jr z, .a_button
- cp D_DOWN
- jr z, .d_down
- cp D_UP
- ret nz
- ld a, [wcd4e]
- and a
- ret z
- dec a
- ld [wcd4e], a
- hlcoord 15, 8
- ld a, "▶"
- ld [hl], a
- hlcoord 15, 10
- ld a, " "
- ld [hl], a
- ret
-
-.d_down
- ld a, [wcd4e]
- and a
- ret nz
- inc a
- ld [wcd4e], a
- hlcoord 15, 8
- ld a, " "
- ld [hl], a
- hlcoord 15, 10
- ld a, "▶"
- ld [hl], a
- ret
-
-.a_button
- call PlayClickSFX
- ld a, [wcd4e]
- and a
- jr nz, .b_button
- call ExitMenu
- ld a, $1
- ld [wcd4f], a
- jp MobilePassword_IncrementJumptable
-
-.b_button
- call ExitMenu
- call ExitMenu
- jp MobilePassword_IncrementJumptable
-
-Function117942: ; 117942 (45:7942)
- call SpeechTextBox
- hlcoord 1, 14
- ld de, SavedPasswordString
- call PlaceString
- ld a, $1e
- ld [wcd4e], a
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- ld a, [wcd4f]
- ld [sMobileLoginPassword], a
- ld hl, $c708
- ld de, sMobileLoginPassword + 1
- ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
- call CopyBytes
- call CloseSRAM
- ld a, [wcd4f]
- and a
- jr z, asm_11797e
- call MobilePassword_IncrementJumptable
-
-Function117976: ; 117976 (45:7976)
- ld hl, wcd4e
- dec [hl]
- ret nz
- call ExitMenu
-asm_11797e: ; 11797e (45:797e)
- ld a, $80
- ld [wcd49], a
- ret
-
-Function117984: ; 117984 (45:7984)
- ld hl, MenuDataHeader_1179b5
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- hlcoord 1, 14
- ld de, NotAPokemonPasswordString
- call PlaceString
- ld a, $1e
- ld [wcd4e], a
- call MobilePassword_IncrementJumptable
-
-Function1179a7: ; 1179a7 (45:79a7)
- ld hl, wcd4e
- dec [hl]
- ret nz
- call ExitMenu
- ld a, $1
- ld [wcd49], a
- ret
-
-; 1179b5 (45:79b5)
-
-MenuDataHeader_1179b5: ; 1179b5
- db $40 ; flags
- db 12, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 1179bd
-
-MenuDataHeader_1179bd: ; 1179bd
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 1179c5
-
-
-YessNoString_1179c5: ; 1179c5
- db "はい"
- next "いいえ@"
-; 1179cc
-
-AskSavePasswordString: ; 1179cc
- db "こ%パスワード¯ほぞんして"
- line "おきますか?@"
-; 1179e1
-
-NotAPokemonPasswordString: ; 1179e1
- db "パスワード<PKMN>にゅうりょく"
- line "されていません!@"
-; 1179f7
-
-SavedPasswordString: ; 1179f7
- db "ログインパスワード¯ほぞん"
- line "しました@"
-; 117a0a
-
-MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a)
- ld hl, wcd49
- inc [hl]
- ret
-
-; 117a0f (45:7a0f)
-
-Unknown_117a0f:
-INCBIN "data/mobile/ascii-alpha.txt"
-
-Unknown_117a47:
-INCBIN "data/mobile/ascii-sym.txt"
-; 117a7f
-
-
-; everything from here to the end of the bank is related to the
-; Mobile Stadium option from the continue/newgame menu.
-; XXX better function names
-MobileStudium: ; 0x117a7f
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function117a8d
- pop af
- ld [hInMenu], a
- ret
-
-; 0x117a8d
-
-Function117a8d: ; 0x117a8d
- call Function117a94
- call Function117acd
- ret
-
-; 0x117a94
-
-Function117a94: ; 0x117a94
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- call ClearBGPalettes
- call ClearSprites
- callba Function172e78
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- ret
-
-; 0x117ab4
-
-Function117ab4: ; 0x117ab4
- call ClearBGPalettes
- call ClearSprites
- callba Function172e78
- callba Function172eb9
- callba ReloadMapPart
- ret
-
-; 0x117acd
-
-Function117acd: ; 0x117acd
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_117ae2
- call Function117ae9
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- jr Function117acd
-
-.asm_117ae2
- call ClearBGPalettes
- call ClearSprites
- ret
-
-Function117ae9: ; 0x117ae9
- ld a, [wJumptableIndex]
- ld e, a
- ld d, $0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.Jumptable: ; 0x117af8
- dw Function117b06
- dw Function117b14
- dw Function117b28
- dw Function117b31
- dw Function117b4f
- dw Function117bb6
- dw Function117c4a
-
-Function117b06:
- callba Function172eb9
- ld a, $10
- ld [wcf64], a
- jp MobileStudium_JumptableIncrement
-
-Function117b14:
- ld hl, wcf64
- dec [hl]
- ret nz
- ld hl, MenuDataHeader_117cbc
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- jp MobileStudium_JumptableIncrement
-
-Function117b28:
- ld hl, MobileStadiumEntryText
- call PrintText
- jp MobileStudium_JumptableIncrement
-
-Function117b31:
- ld hl, MenuDataHeader_117cc4
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- hlcoord 16, 8
- ld de, YesNo117ccc
- call PlaceString
- hlcoord 15, 8
- ld a, "▶"
- ld [hl], a
- jp MobileStudium_JumptableIncrement
-
-Function117b4f:
- ld a, [hJoyPressed]
- cp B_BUTTON
- jr z, .b_button
- cp A_BUTTON
- jr z, .a_button
- cp D_DOWN
- jr z, .d_down
- cp D_UP
- ret nz
- ld a, [wcf64]
- and a
- ret z
- dec a
- ld [wcf64], a
- hlcoord 15, 8
- ld a, "▶"
- ld [hl], a
- hlcoord 15, 10
- ld a, " "
- ld [hl], a
- ret
-
-.d_down
- ld a, [wcf64]
- and a
- ret nz
- inc a
- ld [wcf64], a
- hlcoord 15, 8
- ld a, " "
- ld [hl], a
- hlcoord 15, 10
- ld a, "▶"
- ld [hl], a
- ret
-
-.a_button
- call PlayClickSFX
- ld a, [wcf64]
- and a
- jr nz, .b_button
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- jp MobileStudium_JumptableIncrement
-
-.b_button
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-Function117bb6:
- call Function117c89
- ld a, $1
- ld [hBGMapMode], a
- callba Function118284
- call ClearSprites
- ld a, [wc300]
- and a
- jr z, .asm_117be7
- cp $a
- jr z, .asm_117be1
-.asm_117bd0
- ld a, $2
- ld [wc303], a
- callba DisplayMobileError
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-.asm_117be1
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-.asm_117be7
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [wcd89]
- and $1
- jr nz, .asm_117c16
- ld a, [w3_d000]
- cp $fe
- jr nz, .asm_117c16
- ld a, [w3_d001]
- cp $f
- jr nz, .asm_117c16
- ld hl, w3_dfec
- ld de, wcd69
- ld c, $10
-.asm_117c0b
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .asm_117c16
- inc hl
- dec c
- jr nz, .asm_117c0b
- jr .asm_117c20
-
-.asm_117c16
- pop af
- ld [rSVBK], a
- ld a, $d3
- ld [wc300], a
- jr .asm_117bd0
-
-.asm_117c20
- pop af
- ld [rSVBK], a
- callba Function172eb9
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, $7
- call GetSRAMBank
- ld hl, w3_d002
- ld de, $b000
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- jp MobileStudium_JumptableIncrement
-
-Function117c4a:
- ld hl, MenuDataHeader_117cbc
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- ld hl, MobileStadiumSuccessText
- call PrintText
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknBGPals
- ld de, 1 palettes
- ld c, 8
-.loop
- push hl
- ld a, $7fff % $100
- ld [hli], a
- ld a, $7fff / $100
- ld [hl], a
- pop hl
- add hl, de
- dec c
- jr nz, .loop
- call RotateThreePalettesRight
- pop af
- ld [rSVBK], a
- ld a, $80
- ld [wJumptableIndex], a
- ret
-
-Function117c89:
- ld a, $7
- call GetSRAMBank
- ld l, $0
- ld h, l
- ld de, $b000
- ld bc, $0ffc
-.asm_117c97
- push bc
- ld a, [de]
- inc de
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- dec bc
- ld a, b
- or c
- jr nz, .asm_117c97
- ld a, l
- ld [wcd83], a
- ld a, h
- ld [wcd84], a
- ld hl, $bfea
- ld de, wcd69
- ld bc, $10
- call CopyBytes
- call CloseSRAM
- ret
-
-MenuDataHeader_117cbc: ; 0x117cbc
- db $40 ; flags
- db 12, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL ; menu data 2
- db 0 ; default option
-
-MenuDataHeader_117cc4: ; 0x117cc4
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL ; menu data 2
- db 0 ; default item
-
-YesNo117ccc: ; 0x117ccc
- db "はい"
- next "いいえ@"
-
-MobileStadiumEntryText: ; 0x117cd3
- text_jump _MobileStadiumEntryText
- db "@"
-
-MobileStadiumSuccessText: ; 0x117cd8
- text_jump _MobileStadiumSuccessText
- db "@"
-
-MobileStudium_JumptableIncrement: ; 0x117cdd
- ld hl, wJumptableIndex
- inc [hl]
- ret
diff --git a/misc/mobile_45_sprite_engine.asm b/misc/mobile_45_sprite_engine.asm
deleted file mode 100755
index a85e7fce4..000000000
--- a/misc/mobile_45_sprite_engine.asm
+++ /dev/null
@@ -1,922 +0,0 @@
-Function115d99: ; 115d99
- ld de, GFX_11601a
- ld hl, VTiles0 tile $60
- lb bc, BANK(GFX_11601a), $14
- call Get2bpp
- xor a
- ld [wc305], a
- ld [wc306], a
- ld [wc309], a
- ld [wc30a], a
- ld [wc30b], a
- ld [wc30c], a
- ld a, $10
- ld [wc307], a
- ld a, $18
- ld [wc308], a
- ret
-
-; 115dc3
-
-Function115dc3: ; 115dc3
- xor a
- ld [wc305], a
- ld a, $a0
- ld hl, Sprites + 31 * 4
- ld bc, 8 * 4
- call ByteFill
- ret
-
-; 115dd3
-
-Function115dd3: ; 115dd3
- ld a, [wc305]
- and a
- ret z
- ld a, $a0
- ld hl, Sprites + 31 * 4
- ld bc, 8 * 4
- call ByteFill
- call Function115e22
- ld a, [wc309]
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_115e86
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld de, Sprites + 31 * 4
- ld a, [wc307]
- ld c, a
- ld a, [wc308]
- ld b, a
- ld a, [hli]
-.asm_115e04
- push af
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_115e04
- ret
-
-; 115e18
-
-Function115e18: ; 115e18
- ld a, c
- ld [wc30a], a
- xor a
- ld [wc30b], a
- jr Function115e2b
-
-; 115e22
-
-Function115e22: ; 115e22
- ld hl, wc30c
- dec [hl]
- ret nz
- ld hl, wc30b
- inc [hl]
-
-Function115e2b: ; 115e2b
- ld a, [wc30a]
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_115e59
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- pop hl
- ld a, [wc30b]
- sla a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hli]
- cp $ff
- jr nz, .not_end
- xor a
- ld [wc30b], a
- jr Function115e2b
-
-.not_end
- ld [wc309], a
- ld a, [hl]
- ld [wc30c], a
- ret
-
-; 115e59
-
-Unknown_115e59:
- dw Unknown_115e61
- dw Unknown_115e6c
- dw Unknown_115e76
- dw Unknown_115e79
-
-; OAM idx (see Unknown_115e86), flip flags/duration
-Unknown_115e61: ; 115e61
- db $04, $08
- db $05, $08
- db $06, $08
- db $07, $08
- db $08, $08
- db -1
-
-Unknown_115e6c: ; 115e6c
- db $01, $08
- db $02, $08
- db $03, $08
- db $09, $08
- db $0a, $08
-Unknown_115e76: ; 115e76
- db $00, $08
- db -1
-
-Unknown_115e79: ; 115e79
- db $0b, $08
- db $0c, $08
- db $0d, $08
- db $0e, $08
- db $0f, $08
- db $00, $08
- db -1
-; 115e86
-
-Unknown_115e86:
- dw Unknown_115ea6
- dw Unknown_115eb7
- dw Unknown_115ecc
- dw Unknown_115ee1
- dw Unknown_115ef6
- dw Unknown_115f13
- dw Unknown_115f30
- dw Unknown_115f4d
- dw Unknown_115f6a
- dw Unknown_115f87
- dw Unknown_115f9c
- dw Unknown_115fb1
- dw Unknown_115fc6
- dw Unknown_115fdb
- dw Unknown_115ff0
- dw Unknown_116005
-
-Unknown_115ea6: ; 115ea6
- db 4
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115eb7: ; 115eb7
- db 5
- dsprite 0, 0, 1, 0, $64, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ecc: ; 115ecc
- db 5
- dsprite 0, 0, 1, 0, $65, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ee1: ; 115ee1
- db 5
- dsprite 0, 0, 1, 0, $66, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ef6: ; 115ef6
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $6d, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f13: ; 115f13
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $6e, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f30: ; 115f30
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $6f, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f4d: ; 115f4d
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $70, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f6a: ; 115f6a
- db 7
- dsprite 0, 0, 0, 0, $67, $01
- dsprite 1, 0, 0, 0, $68, $01
- dsprite 2, 0, 0, 0, $71, $00
- dsprite 2, 0, 1, 0, $69, $00
- dsprite 2, 0, 2, 0, $6a, $00
- dsprite 3, 0, 1, 0, $6b, $00
- dsprite 3, 0, 2, 0, $6c, $00
-
-Unknown_115f87: ; 115f87
- db 5
- dsprite 0, 0, 1, 0, $72, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115f9c: ; 115f9c
- db 5
- dsprite 0, 0, 1, 0, $73, $00
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115fb1: ; 115fb1
- db 5
- dsprite 0, 1, 1, 0, $64, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115fc6: ; 115fc6
- db 5
- dsprite 0, 1, 1, 0, $65, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115fdb: ; 115fdb
- db 5
- dsprite 0, 1, 1, 0, $66, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_115ff0: ; 115ff0
- db 5
- dsprite 0, 1, 1, 0, $72, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-
-Unknown_116005: ; 116005
- db 5
- dsprite 0, 1, 1, 0, $73, $60
- dsprite 1, 0, 0, 0, $60, $01
- dsprite 1, 0, 1, 0, $61, $01
- dsprite 2, 0, 0, 0, $62, $01
- dsprite 2, 0, 1, 0, $63, $01
-; 11601a
-
-GFX_11601a:: ; 11601a
-INCBIN "gfx/unknown/11601a.2bpp"
-
-
-Function11615a: ; 11615a
- xor a
- ld [wc30d], a
- ld [$c319], a
- ld [wc310], a
- ld [wc311], a
- ld [wc312], a
- ld [wc313], a
- ld [wc314], a
- ld [wc314 + 1], a
- ld [wc314 + 4], a
- ld [wc3f6], a
- ld [wc3f8], a
- ld [wc3f2], a
- ld [wc3f4], a
- ld a, $24
- ld [wc3f5], a
- ld a, $7
- ld [wc3f7], a
- ld a, $b0
- ld [wc30e], a
- ld [wc3f1], a
- ld a, $48
- ld [wc30f], a
- ld [wc3f3], a
- ret
-
-; 11619d
-
-Function11619d: ; 11619d
- ld a, [wc30d]
- and a
- ret z
- ld a, [$c319]
- cp $2
- jr c, .asm_1161b4
- ld a, $a0
- ld hl, Sprites
- ld bc, $0064
- call ByteFill
-
-.asm_1161b4
- call Function1161b8
- ret
-
-; 1161b8
-
-Function1161b8: ; 1161b8
- ld a, [$c319]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-; 1161c7
-
-.Jumptable: ; 1161c7
- dw Function1161d5
- dw Function116294
- dw Function1162cb
- dw Function1162f2
- dw Function1163c0
- dw Function11636e
- dw Function116441
-; 1161d5
-
-Function1161d5: ; 1161d5
- ld a, [rSVBK]
- push af
-
- ld a, $6
- ld [rSVBK], a
-
- ld hl, Unknown_117356
- ld de, wDecompressScratch
- ld bc, $0300
- call CopyBytes
-
- di
-
-.wait_for_vblank
-; Wait until a vblank would occur had interrupts not just been disabled.
- ld a, [rLY]
- cp $91
- jr nz, .wait_for_vblank
-
- ld a, $d0
- ld [rHDMA1], a
- ld a, $0
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d0
- ld [rHDMA1], a
- ld a, $80
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- ld a, $80
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d1
- ld [rHDMA1], a
- ld a, $0
- ld [rHDMA2], a
- ld a, $1d
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $1
- ld [rVBK], a
-
- ld a, $d1
- ld [rHDMA1], a
- ld a, $80
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d2
- ld [rHDMA1], a
- ld a, $0
- ld [rHDMA2], a
- ld a, $1c
- ld [rHDMA3], a
- ld a, $80
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- ld a, $d2
- ld [rHDMA1], a
- ld a, $80
- ld [rHDMA2], a
- ld a, $1d
- ld [rHDMA3], a
- xor a
- ld [rHDMA4], a
- ld a, $8
- ld [rHDMA5], a
-
- xor a
- ld [rVBK], a
-
- ei
-
- pop af
- ld [rSVBK], a
-
- callba ReloadMapPart
- ld a, $8
- ld [MusicFade], a
- ld de, MUSIC_MOBILE_ADAPTER
- ld a, e
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- ld a, [$c319]
- inc a
- ld [$c319], a
- ret
-
-; 11628c
-
-MenuDataHeader_11628c: ; 11628c
- db $40 ; flags
- db 6, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 116294
-
-Function116294: ; 116294
- callba Function170d02
- ld a, [$c319]
- inc a
- ld [$c319], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknBGPals + 8 * 6
- ld de, $c320
- ld bc, 2 palettes
- call CopyBytes
- ld hl, Palette_11734e
- ld de, UnknBGPals + 8 * 7
- ld bc, 1 palettes
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ld a, $30
- ld [hWY], a
- ret
-
-; 1162cb
-
-Function1162cb: ; 1162cb
- callba Function170cc6
- ld a, [$c319]
- inc a
- ld [$c319], a
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_11730e
- ld de, UnknOBPals + 2 palettes
- ld bc, 6 palettes
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-
-; 1162f2
-
-Function1162f2: ; 1162f2
- call Function11659d
- call Function116758
- call Function1167a6
- ld a, [wc310]
- cp EGG
- ret z
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1168c5
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wc30e]
- ld c, a
- ld a, [wc30f]
- ld b, a
- ld a, [wc314 + 4]
- ld e, a
- ld a, [hli]
- sub e
- ld de, Sprites + $24
-.asm_116321
- push af
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_116321
- call Function116468
- ld a, [wc3f5]
- sla a
- ld c, a
- ld b, 0
- ld hl, Unknown_1168c5
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- push de
- pop hl
- ld a, [wc3f1]
- ld c, a
- ld a, [wc3f3]
- ld b, a
- ld a, [wc3f8]
- ld e, a
- ld a, [hli]
- sub e
- ld de, Sprites
-.asm_11635a
- push af
- ld a, [hli]
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- pop af
- dec a
- jr nz, .asm_11635a
- ret
-
-; 11636e
-
-Function11636e: ; 11636e
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, BGPals
- ld de, UnknBGPals
- ld bc, $0040
- call CopyBytes
- pop af
- ld [rSVBK], a
- call SetPalettes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, $a0
- ld hl, Sprites
- ld bc, 16 * 4
- call ByteFill
- ld a, $90
- ld [hWY], a
- call UpdateSprites
- pop af
- ld [rSVBK], a
- callba ReloadMapPart
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- xor a
- ld [$c319], a
- ld [wc30d], a
- ret
-
-; 1163c0
-
-Function1163c0: ; 1163c0
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, $a0
- ld hl, Sprites
- ld bc, 16 * 4
- call ByteFill
- call DelayFrame
- callba Function14146
- ld b, SCGB_MAPPALS
- call GetSGBLayout
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, $c320
- ld de, wd030
- ld bc, $0010
- call CopyBytes
- pop af
- ld [rSVBK], a
- call SetPalettes
- call DelayFrame
- ld a, $90
- ld [hWY], a
- call UpdateSprites
- callba Function14157
- pop af
- ld [rSVBK], a
- callba ReloadMapPart
- ld a, [wLinkMode]
- cp $4
- jr z, .asm_11642a
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- jr .asm_116439
-
-.asm_11642a
- ld a, $8
- ld [MusicFade], a
- ld a, $0
- ld [MusicFadeID], a
- ld a, $0
- ld [MusicFadeID + 1], a
-
-.asm_116439
- xor a
- ld [$c319], a
- ld [wc30d], a
- ret
-
-; 116441
-
-Function116441: ; 116441
- callba Function17d405
- ld a, $90
- ld [hWY], a
- callba ReloadMapPart
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- xor a
- ld [$c319], a
- ld [wc30d], a
- ret
-
-; 116468
-
-Function116468: ; 116468
- call Function116567
- ld a, [wc314]
- cp $d
- jr nz, .asm_1164a8
- ld hl, wc30e
- ld a, [hl]
- cp $50
- jr nc, .asm_116484
- ld a, $50
- sub [hl]
- add $50
- ld [wc3f1], a
- jr .asm_11648d
-
-.asm_116484
- sub $50
- ld c, a
- ld a, $50
- sub c
- ld [wc3f1], a
-
-.asm_11648d
- ld hl, wc30f
- ld a, [hl]
- cp $60
- jr nc, .asm_11649e
- ld a, $60
- sub [hl]
- add $60
- ld [wc3f3], a
- ret
-
-.asm_11649e
- sub $60
- ld c, a
- ld a, $60
- sub c
- ld [wc3f3], a
- ret
-
-.asm_1164a8
- ld hl, wc30e
- ld a, $b0
- cp [hl]
- jr nc, .asm_1164b8
- ld a, [wc3f1]
- and a
- jr z, .asm_11650b
- jr .asm_1164f2
-
-.asm_1164b8
- ld a, [wc3f1]
- sub [hl]
- jr nc, .asm_1164c1
- xor $ff
- inc a
-
-.asm_1164c1
- ld b, a
- ld c, $0
- ld a, $5
-.asm_1164c6
- srl b
- rr c
- dec a
- jr nz, .asm_1164c6
- ld a, c
- ld [wc3fa], a
- ld a, b
- ld [wc3f9], a
- ld a, [wc3f1]
- sub [hl]
- jr c, .asm_1164f2
- ld c, $0
- ld a, [wc3fa]
- xor $ff
- add $1
- rl c
- ld [wc3fa], a
- ld a, [wc3f9]
- xor $ff
- add c
- ld [wc3f9], a
-
-.asm_1164f2
- ld a, [wc3f2]
- ld l, a
- ld a, [wc3f1]
- ld h, a
- ld a, [wc3fa]
- ld e, a
- ld a, [wc3f9]
- ld d, a
- add hl, de
- ld a, l
- ld [wc3f2], a
- ld a, h
- ld [wc3f1], a
-
-.asm_11650b
- ld hl, wc30f
- ld a, $b0
- cp [hl]
- jr c, .asm_11654d
- ld a, [wc3f3]
- sub [hl]
- jr nc, .asm_11651c
- xor $ff
- inc a
-
-.asm_11651c
- ld b, a
- ld c, $0
- ld a, $5
-.asm_116521
- srl b
- rr c
- dec a
- jr nz, .asm_116521
- ld a, c
- ld [wc3fc], a
- ld a, b
- ld [wc3fb], a
- ld a, [wc3f3]
- sub [hl]
- jr c, .asm_11654d
- ld c, $0
- ld a, [wc3fc]
- xor $ff
- add $1
- rl c
- ld [wc3fc], a
- ld a, [wc3fb]
- xor $ff
- add c
- ld [wc3fb], a
-
-.asm_11654d
- ld a, [wc3f4]
- ld l, a
- ld a, [wc3f3]
- ld h, a
- ld a, [wc3fc]
- ld e, a
- ld a, [wc3fb]
- ld d, a
- add hl, de
- ld a, l
- ld [wc3f4], a
- ld a, h
- ld [wc3f3], a
- ret
diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm
deleted file mode 100755
index 48fed0f33..000000000
--- a/misc/mobile_46.asm
+++ /dev/null
@@ -1,7986 +0,0 @@
-SECTION "bank46", ROMX
-
-Function118000: ; 118000
- ld a, $1
- ld [wcd38], a
- jr asm_11800b
-
-Function118007: ; 118007
- xor a
- ld [wcd38], a
-
-asm_11800b
- call BattleTowerRoomMenu_InitRAM
- ld a, $18
- ld [wcd33], a
- ld a, $19
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.loop
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1b
- jr c, .skip
- ld a, [wcd34]
- ld [wcf66], a
-
-.skip
- call Function1184a5
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .loop
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
-BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e)
- ret
-; 11805f
-
-Function11805f: ; 11805f
- ld a, $1
- ld [wcd38], a
- call BattleTowerRoomMenu_InitRAM
- ld a, $18
- ld [wcd33], a
- ld a, $19
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_11807d
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1b
- jr c, .asm_118090
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118090
- call Function11857c
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11807d
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 1180b8
-
-Function1180b8: ; 1180b8
- call BattleTowerRoomMenu_InitRAM
- ld a, $22
- ld [wcd33], a
- ld a, $23
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_1180d1
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $28
- jr c, .asm_1180e4
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_1180e4
- ld a, [wcf66]
- cp $10
- jr c, .asm_1180f2
- cp $16
- jr nc, .asm_1180f2
- call Function11884c
-
-.asm_1180f2
- call Function1184ec
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1180d1
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 11811a
-
-Function11811a: ; 11811a
- ld a, 1
- ld [wcd38], a
- jr Function118125
-
-_BattleTowerRoomMenu: ; 118121
- xor a
- ld [wcd38], a
-Function118125: ; 118125
- call BattleTowerRoomMenu_InitRAM
- ld a, $3
- ld [wcd33], a
- ld a, $d
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.loop
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $f
- jr c, .skip
- ld a, [wcd34]
- ld [wcf66], a
-.skip
- call BattleTowerRoomMenu_Jumptable
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .loop
- xor a
- ld [w3_d000], a
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call Function118180
- call ReturnToMapFromSubmenu
- ret
-; 118180
-
-Function118180: ; 118180
- ld a, [ScriptVar]
- and a
- ret nz
- ld a, [wcd38]
- and a
- ret z
- ld a, $5
- call GetSRAMBank
- ld hl, wcd69
- ld de, $a89c
- ld bc, $0016
- call CopyBytes
-
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-
- ld de, w3_d202
- ld c, $96
- callba CheckStringForErrors_IgnoreTerminator
- jr c, .return_d3
-
- ld de, w3_d202
- lb bc, 1, $96
- callba CheckStringContainsLessThanBNextCharacters
- jr c, .return_d3
-
- ld hl, w3_d202
- ld de, $a8b2
- ld bc, $0096
- call CopyBytes
-.reset_banks
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-.return_d3
- ld a, $d3
- ld [wc300], a
- ld [ScriptVar], a
- jr .reset_banks
-; 1181da
-
-Function1181da: ; 1181da
- call BattleTowerRoomMenu_InitRAM
- ld a, $2
- ld [wcd38], a
- ld a, $21
- ld [wcd33], a
- ld a, $22
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_1181f8
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $28
- jr c, .asm_11820b
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_11820b
- call Function1185c3
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1181f8
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 118233
-
-Function118233: ; 118233
- call BattleTowerRoomMenu_InitRAM
- ld a, $1b
- ld [wcd33], a
- ld a, $1c
- ld [wcd34], a
- ld a, $6
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_11824c
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1e
- jr c, .asm_11825f
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_11825f
- call Function118624
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11824c
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 118284
-
-Function118284: ; 118284
- call BattleTowerRoomMenu_InitRAM
- ld a, $19
- ld [wcd33], a
- ld a, $1e
- ld [wcd34], a
- ld a, $5
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_11829d
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $20
- jr c, .asm_1182b0
- ld a, [wcd34]
- ld [wcf66], a
-.asm_1182b0
- call Function1186f5
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11829d
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 1182d5 (46:42d5)
-
-
-Function1182d5: ; 1182d5
- call BattleTowerRoomMenu_InitRAM
- ld a, $18
- ld [wcd33], a
- ld a, $19
- ld [wcd34], a
- ld a, $4
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_1182ee
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1b
- jr c, .asm_118301
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118301
- call Function118746
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1182ee
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- call ReturnToMapFromSubmenu
- ret
-; 118329
-
-Function118329: ; 118329
- call BattleTowerRoomMenu_InitRAM
- ld a, $15
- ld [wcd33], a
- ld a, $16
- ld [wcd34], a
- ld a, $6
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_118342
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $18
- jr c, .asm_118355
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118355
- call Function118671
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_118342
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 11837a
-
-Function11837a: ; 11837a
- call BattleTowerRoomMenu_InitRAM
- ld a, $16
- ld [wcd33], a
- ld a, $17
- ld [wcd34], a
- ld a, $6
- ld [wc3f0], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-.asm_118393
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $19
- jr c, .asm_1183a6
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_1183a6
- call Function1186b2
- call BattleTowerRoomMenu_WriteMessage
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_118393
- pop af
- ld [rSVBK], a
- call BattleTowerRoomMenu_Cleanup
- ret
-; 1183cb
-
-BattleTowerRoomMenu_InitRAM: ; 1183cb
- di
- ld a, [rIE]
- ld [wcd32], a
- call DoubleSpeed
- xor a
- ld [rIF], a
- ld [wc300], a
- ld [wc301], a
- ld [wc302], a
- ld [wcd80], a
- ld [wcd65], a
- ld [wcd66], a
- ld [wcd67], a
- ld [wcd68], a
- ld [$c31a], a
- ld [wcd89], a
- ld [wcd8a], a
- ld [wcd8b], a
- ld [wc3ec], a
- ld [wc3ed], a
- ld [wc3ee], a
- ld [wc3ef], a
- ld hl, VramState
- ld a, [hl]
- ld [wcd7f], a
- set 1, [hl]
- ld a, $f
- ld [rIE], a
- ld a, $1
- ld [hMobileReceive], a
- ld [hMobile], a
- ei
- callba MobileFunc_106462
- callba Function106464
- callba Function115d99
- callba Function11615a
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$bfff], a
- call CloseSRAM
- ret
-; 118440
-
-Function118440: ; 118440
- push af
- ld a, $5
- call GetSRAMBank
- ld a, [$bfff]
- inc a
- ld [$bfff], a
- call CloseSRAM
- pop af
- ret
-; 118452
-
-BattleTowerRoomMenu_Cleanup: ; 118452
- di
- xor a
- ld [hMobileReceive], a
- ld [hMobile], a
- ld [hVBlank], a
- call NormalSpeed
- xor a
- ld [rIF], a
- ld a, [wcd32]
- ld [rIE], a
- ei
- ld a, [wcd7f]
- ld [VramState], a
- ld a, [wc300]
- ld [ScriptVar], a
- ret
-; 118473
-
-Function118473: ; 118473
- ld a, [wcd65]
- and a
- ret z
- ld a, [wcd66]
- inc a
- ld [wcd66], a
- cp 60
- ret nz
- xor a
- ld [wcd66], a
- ld a, [wcd67]
- inc a
- ld [wcd67], a
- cp 60
- ret nz
- ld a, [wcd68]
- inc a
- ld [wcd68], a
- cp 99
- jr z, .ninety_nine
- xor a
- ld [wcd67], a
- ret
-
-.ninety_nine
- xor a
- ld [wcd65], a
- ret
-; 1184a5
-
-Function1184a5: ; 1184a5
- jumptable .Jumptable, wcf66
-; 1184b4
-
-.Jumptable: ; 1184b4
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118a8f
- dw Function11878d
- dw Function118d80
- dw Function118d9b
- dw Function11878d
- dw Function118ded
- dw Function118e6d
- dw Function11878d
- dw Function11984e
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1184ec
-
-Function1184ec: ; 1184ec
- jumptable .Jumptable, wcf66
-; 1184fb
-
-.Jumptable: ; 1184fb
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function119954
- dw Function11878d
- dw Function119973
- dw Function11878d
- dw Function119987
- dw Function11878d
- dw Function1199b4
- dw Function1199ca
- dw Function11878d
- dw Function1199e2
- dw Function119b0d
- dw Function11878d
- dw Function119b6b
- dw Function119b3b
- dw Function11878d
- dw Function119b52
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function119b45
- dw Function11878d
- dw Function119ac9
- dw Function118e76
-; 11854d
-
-BattleTowerRoomMenu_Jumptable: ; 11854d
- jumptable .Jumptable, wcf66
-; 11855c
-
-.Jumptable: ; 11855c
- dw BattleTowerRoomMenu_PickLevelMessage
- dw BattleTowerRoomMenu_PlacePickLevelMenu
- dw BattleTowerRoomMenu_UpdatePickLevelMenu
- dw BattleTowerRoomMenu_DoNothing
- dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage
- dw BattleTowerRoomMenu_WaitForMessage
- dw BattleTowerRoomMenu_DelayRestartMenu
- dw BattleTowerRoomMenu_QuitMessage
- dw BattleTowerRoomMenu_PlaceYesNoMenu
- dw BattleTowerRoomMenu_UpdateYesNoMenu
- dw BattleTowerRoomMenu_UberRestrictionMessage
- dw BattleTowerRoomMenu_WaitForMessage
- dw BattleTowerRoomMenu_DelayRestartMenu
- dw Function118e76 ; mobile
- dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile
- dw Function118e76 ; mobile
-; 11857c
-
-Function11857c: ; 11857c
- jumptable .Jumptable, wcf66
-; 11858b
-
-.Jumptable: ; 11858b
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118a7a
- dw Function11878d
- dw Function11891c
- dw Function1198ee
- dw Function1198f7
- dw Function11878d
- dw Function119937
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1185c3
-
-Function1185c3: ; 1185c3
- jumptable .Jumptable, wcf66
-; 1185d2
-
-.Jumptable: ; 1185d2
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118aa4
- dw Function11878d
- dw Function118e92
- dw Function11878d
- dw Function118eb0
- dw Function118ec6
- dw Function118f0d
- dw Function118f14
- dw Function118f5e
- dw Function11878d
- dw Function118fc0
- dw Function11878d
- dw Function119054
- dw Function1190d0
- dw Function11878d
- dw Function1190ec
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw BattleTowerRoomMenu_QuitMessage
- dw BattleTowerRoomMenu_PlaceYesNoMenu
- dw BattleTowerRoomMenu_UpdateYesNoMenu
- dw Function11914e
- dw Function118e76
-; 118624
-
-Function118624: ; 118624
- jumptable .Jumptable, wcf66
-; 118633
-
-.Jumptable: ; 118633
- dw Function118866
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118aa4
- dw Function11878d
- dw Function118e92
- dw Function11878d
- dw Function11915d
- dw Function118f68
- dw Function11878d
- dw Function119009
- dw Function11878d
- dw Function119054
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 118671
-
-Function118671: ; 118671
- jumptable .Jumptable, wcf66
-; 118680
-
-.Jumptable: ; 118680
- dw Function118866
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function119380
- dw Function119388
- dw Function1193a0
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1186b2
-
-Function1186b2: ; 1186b2
- jumptable .Jumptable, wcf66
-; 1186c1
-
-.Jumptable: ; 1186c1
- dw Function118866
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function119380
- dw Function1193e3
- dw Function1193fb
- dw Function11878d
- dw Function119413
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 1186f5
-
-Function1186f5: ; 1186f5 (46:46f5)
- jumptable .Jumptable, wcf66
-; 118704 (46:4704)
-
-.Jumptable: ; 118704 (46:4704)
- dw Function11886a
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118abc
- dw Function11878d
- dw Function119451
- dw Function1195f8
- dw Function119612
- dw Function119629
- dw Function119648
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function11967d
- dw Function119685
- dw Function119665
- dw Function11966d
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 118746 (46:4746)
-
-Function118746: ; 118746
- jumptable .Jumptable, wcf66
-; 118755
-
-.Jumptable: ; 118755
- dw Function11886e
- dw Function118880
- dw Function11878d
- dw Function1188b0
- dw Function11878d
- dw Function1188b8
- dw Function11878d
- dw Function1188c0
- dw Function11878d
- dw Function1188c8
- dw Function11878d
- dw Function118903
- dw Function118ad0
- dw Function11878d
- dw Function1196f2
- dw Function1197c9
- dw Function1197dc
- dw Function11878d
- dw Function118e6d
- dw Function11878d
- dw Function119800
- dw Function118e76
- dw Function118e7e
- dw Function11878d
- dw BattleTowerRoomMenu_DoNothing
- dw Function118e76
- dw BattleTowerRoomMenu_CallRoomMenu2
- dw Function118e76
-; 11878d
-
-Function11878d: ; 11878d (46:478d)
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_1187af
- bit 2, a
- jr nz, .asm_1187d1
- bit 0, a
- jr nz, .asm_1187aa
- ld a, [wcd89]
- and $1
- jr z, .asm_1187a7
- ld a, $3
- ld [rSVBK], a
-.asm_1187a7
- jp BattleTowerRoomMenu_IncrementJumptable
-.asm_1187aa
- call Function118821
- ret c
- ret
-.asm_1187af
- ld a, $0
- call Function3e32
- ld [wc300], a
- ld a, l
- ld [wc301], a
- ld a, h
- ld [wc302], a
- ld a, $a
- call Function3e32
- ld a, [wc3f0]
- ld [$c319], a
- ld a, [wcd34]
- ld [wcf66], a
- ret
-.asm_1187d1
- ld hl, wcd89
- bit 0, [hl]
- jr nz, .asm_118803
- set 0, [hl]
- ld a, $6
- ld [rSVBK], a
- ld de, w3_d000
- ld bc, $1000
- ld a, [hl]
- sla a
- jr c, .asm_1187f9
- sla a
- jr c, .asm_1187fd
- sla a
- jr c, .asm_1187f5
- ld a, $24
- jr .asm_1187ff
-.asm_1187f5
- ld a, $28
- jr .asm_1187ff
-.asm_1187f9
- ld a, $2a
- jr .asm_1187ff
-.asm_1187fd
- ld a, $2c
-.asm_1187ff
- call Function3e32
- ret
-.asm_118803
- ld a, $d3
-
-Function118805: ; 118805 (46:4805)
- ld [wc300], a
- xor a
- ld [wc301], a
- ld [wc302], a
- ld a, $a
- call Function3e32
- ld a, [wc3f0]
- ld [$c319], a
- ld a, [wcd34]
- ld [wcf66], a
- ret
-
-Function118821: ; 118821 (46:4821)
- ld a, [$c319]
- cp $3
- jr c, .asm_11884a
- cp $4
- jr z, .asm_11884a
- ld a, [hJoyDown]
- cp $5
- jr nz, .asm_11884a
- ld a, $a
- call Function3e32
- ld a, $a
- ld [wc300], a
- ld a, [wc3f0]
- ld [$c319], a
- ld a, [wcd34]
- ld [wcf66], a
- scf
- ret
-.asm_11884a
- and a
- ret
-; 11884c (46:484c)
-
-Function11884c: ; 11884c
- ld a, [hJoyDown]
- cp $5
- jr nz, .asm_118864
- ld a, $a
- call Function3e32
- ld a, $a
- ld [wc300], a
- ld a, [wcd34]
- ld [wcf66], a
- scf
- ret
-
-.asm_118864
- and a
- ret
-; 118866
-
-Function118866:
- ld a, 2
- jr asm_11886f
-
-Function11886a: ; 11886a (46:486a)
- ld a, 1
- jr asm_11886f
-; 11886e (46:486e)
-
-Function11886e:
- xor a
-
-asm_11886f
- ld [BGMapPalBuffer], a
- ld a, $0
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
- ld a, [wcd33]
- ld [wMobileInactivityTimerSeconds], a
-
-Function118880: ; 118880 (46:4880)
- call BattleTowerRoomMenu2
- ret c
- xor a
- ld [wcf64], a
- ld [wc807], a
- ld de, wcd81
- ld hl, $46
- ld a, $2
- jp Function119e2b
-; 118896 (46:4896)
-
-Function118896: ; 118896
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_1188a5
- bit 2, a
- jr nz, .asm_1188a5
- bit 0, a
- jr z, .asm_1188aa
-
-.asm_1188a5
- ld a, $34
- jp Function119e2b
-
-.asm_1188aa
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-; 1188b0
-
-Function1188b0: ; 1188b0 (46:48b0)
- ld de, $c346
- ld a, $c
- jp Function119e2b
-
-Function1188b8: ; 1188b8 (46:48b8)
- ld de, wc3ac
- ld a, $e
- jp Function119e2b
-
-Function1188c0: ; 1188c0 (46:48c0)
- ld de, wc3cd
- ld a, $10
- jp Function119e2b
-
-Function1188c8: ; 1188c8 (46:48c8)
- ld a, $1
- ld [wcd65], a
- call Function1188e7
- ld hl, $c708
-.asm_1188d3
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .asm_1188d3
- call Function119eb4
- call Function119ec2
- ld hl, $c708
- ld a, $6
- jp Function119e2b
-
-Function1188e7: ; 1188e7 (46:48e7)
- ld de, $c346
- ld a, $5
- call GetSRAMBank
- ld a, [$aa4a]
- call CloseSRAM
- and a
- ret z
- sla a
- ld c, a
-.asm_1188fa
- ld a, [de]
- inc de
- and a
- jr nz, .asm_1188fa
- dec c
- jr nz, .asm_1188fa
- ret
-
-Function118903: ; 118903 (46:4903)
- ld a, [wc3f0]
- ld [$c319], a
- ld c, $1
- callba Function115e18
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- jp BattleTowerRoomMenu_IncrementJumptable
-
-
-Function11891c: ; 11891c
- call Function118b42
- jp BattleTowerRoomMenu_IncrementJumptable
-
-
-BattleTowerRoomMenu_PickLevelMessage: ; 118922
- ld a, [wcd38]
- and a
- jr nz, .asm_11892d
- ld hl, Text_WhatLevelDoYouWantToChallenge
- jr .asm_118930
-
-.asm_11892d
- ld hl, Text_CheckBattleRoomListByMaxLevel
-
-.asm_118930
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_PlacePickLevelMenu:
- ld a, [$c31a]
- and a
- ret nz
- ld hl, MenuDataHeader_119cf7
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- call ApplyTilemap
- hlcoord 16, 8, AttrMap
- ld a, $40
- or [hl]
- ld [hl], a
- call WaitBGMap2
- ld a, $1
- ld [wcd4f], a
- ld a, $1
- ld [rSVBK], a
- ld a, [StatusFlags]
- bit 6, a ; Hall Of Fame
- jr nz, .asm_11896b
- ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels
- ld a, 5 ; 4 levels to choose from, including 'Cancel'-option
- jr .asm_118970
-
-.asm_11896b
- ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels
- ld a, 11 ; 10 levels to choose from, including 'Cancel'-option
-
-.asm_118970
- ld [wcd4a], a
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- ld a, $3
- ld [rSVBK], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_UpdatePickLevelMenu:
- hlcoord 13, 8
- ld de, String_119d07
- call PlaceString
- hlcoord 13, 10
- ld de, String_119d07
- call PlaceString
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld d, $0
- ld a, [wcd4f]
- dec a
- rlca
- rlca
- rlca
- ld e, a
- add hl, de
- ld a, l
- ld e, a
- ld a, h
- ld d, a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld bc, StringBuffer3
-.asm_1189b5
- ld a, [hli]
- cp $50
- jr z, .asm_1189c4
- cp $7f
- jr z, .asm_1189c2
- ld [bc], a
- inc bc
- jr .asm_1189b5
-
-.asm_1189c2
- ld a, $50
-
-.asm_1189c4
- ld [bc], a
- pop af
- ld [rSVBK], a
- hlcoord 13, 9
- call PlaceString
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .b_button
- ld a, [hl]
- and A_BUTTON
- jr nz, .a_button
- ld a, [hl]
- and D_DOWN
- jr nz, .d_down
- ld a, [hl]
- and D_UP
- jr nz, .d_up
-.asm_1189e5
- ret
-
-.d_down
- ld hl, wcd4f
- dec [hl]
- jr nz, .asm_1189e5
- ld a, [wcd4a]
- ld [hl], a
- jr .asm_1189e5
-
-.d_up
- ld a, [wcd4a]
- ld hl, wcd4f
- inc [hl]
- cp [hl]
- jr nc, .asm_1189e5
- ld a, $1
- ld [hl], a
- jr .asm_1189e5
-
-.a_button
- call PlayClickSFX
- ld a, [wcd4f]
- ld hl, wcd4a
- cp [hl]
- jr z, .asm_118a3c
- dec a
- and $fe
- srl a
- ld [wcf65], a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- call CloseWindow
- pop af
- ld [rSVBK], a
- ld a, [wcd38]
- and a
- jr nz, .asm_118a30
- call BattleTower_LevelCheck
- ret c
- call BattleTower_UbersCheck
- ret c
-
-.asm_118a30
- ld a, [wcd4f]
- ld [w3_d800], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.b_button
- call PlayClickSFX
-
-.asm_118a3c
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- call CloseWindow
- pop af
- ld [rSVBK], a
- ld a, $7
- ld [wcf66], a
- ld a, $0
- ld [wMobileInactivityTimerFrames], a
- ret
-
-
-
-Function118a54: ; 118a54
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, wc3ec
- ld bc, $0004
- jp Function118ae4
-; 118a65
-
-Function118a65: ; 118a65
- ld hl, BattleDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 118a7a
-
-Function118a7a: ; 118a7a
- ld hl, BattleDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 118a8f
-
-Function118a8f: ; 118a8f
- ld hl, ExchangeDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 118aa4
-
-Function118aa4: ; 118aa4
- ld hl, NewsDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld a, $5
- ld [rSVBK], a
- ld de, w3_d100
- ld bc, $e00
- jr Function118b10
-; 118abc
-
-Function118abc: ; 118abc (46:4abc)
- ld hl, MenuDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jr Function118b10
-; 118ad0 (46:4ad0)
-
-Function118ad0:
- ld hl, IndexDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, w3_d000
- ld bc, $1000
- jr Function118b10
-
-Function118ae4:
- push bc
- push de
- push hl
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- pop hl
- ld c, $0
- ld de, wcc60
-.asm_118af5
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_118b06
- inc c
- ld a, c
- cp $a6
- jr c, .asm_118af5
- ld a, $da
- jp Function118805
-
-.asm_118b06
- call Function118b24
- pop de
- pop bc
- ld a, $2a
- jp Function119e2b
-; 118b10
-
-Function118b10:
- push de
- push bc
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- call Function118b24
- pop bc
- pop de
- ld a, $2a
- jp Function119e2b
-
-Function118b24: ; 118b24 (46:4b24)
- ld hl, $c346
- ld a, $8
- ld [hli], a
- ld a, $c7
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $80
- ld [wcd89], a
- ld hl, $c346
- ret
-; 118b42 (46:4b42)
-
-Function118b42: ; 118b42
- ld hl, wd002
- ld a, l
- ld [wcd51], a
- ld a, h
- ld [wcd52], a
- call Function118b8c
- ld a, l
- ld [wcd55], a
- ld [wcd59], a
- ld a, h
- ld [wcd56], a
- ld [wcd5a], a
- call Function118b8c
- ld a, l
- ld [wcd53], a
- ld [wcd5d], a
- ld a, h
- ld [wcd54], a
- ld [wcd5e], a
- call Function118b8c
- ld a, l
- ld [wcd57], a
- ld [wcd5b], a
- ld a, h
- ld [wcd58], a
- ld [wcd5c], a
- call Function118b8c
- ld a, l
- ld [wcd5f], a
- ld a, h
- ld [wcd60], a
- ret
-; 118b8c
-
-Function118b8c: ; 118b8c
-.asm_118b8c
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_118b8c
- dec hl
- xor a
- ld [hli], a
- ld [hli], a
- ret
-; 118b9a
-
-Function118b9a: ; 118b9a
- ld a, h
- cp $e0
- ret c
- ld a, $d3
- call Function118805
- and a
- ret
-; 118ba5
-
-
- charmap " ", $20 ; revert to ascii
-
-ExchangeDownloadURL: ; 0x118ba5
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0
-
-BattleDownloadURL: ; 0x118bf7
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0
-
-NewsDownloadURL: ; 0x118c47
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0
-
-MenuDownloadURL: ; 0x118c95
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0
-
-IndexDownloadURL: ; 0x118ce5
- db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0
-
-
-Function118d35: ; 118d35
-; unreferenced
- ld hl, $d200
- ld a, [wcd38]
- and a
- jr nz, .asm_118d6e
- ld a, [hli]
- cp $94
- jr nz, .asm_118d7b
- ld a, [hl]
- cp $5
- jr nz, .asm_118d7b
- ld a, [wcd4f]
- sla a
- ld b, a
- sla a
- sla a
- add b
- ld b, a
- ld a, $5
- call GetSRAMBank
- ld a, b
- ld [$b2fb], a
- call CloseSRAM
- callba Function170be4
- callba Function1700c4
- jr .asm_118d78
-
-.asm_118d6e
- ld a, [hli]
- cp $96
- jr nz, .asm_118d7b
- ld a, [hl]
- cp $0
- jr nz, .asm_118d7b
-
-.asm_118d78
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_118d7b
- ld a, $d3
- jp Function118805
-; 118d80
-
-Function118d80: ; 118d80
- call Function118e06
- ld a, [wcd38]
- and a
- jr z, .asm_118d8e
- call BattleTowerRoomMenu_IncrementJumptable
- jr asm_118d9f
-
-.asm_118d8e
- ld a, $9
- ld [wcd3c], a
- ld a, $12
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function118d9b:
- call BattleTowerRoomMenu2
- ret c
-
-asm_118d9f
- ld hl, $c608
- call Function119940
- ld a, [wcd38]
- and a
- jr nz, .asm_118db2
- ld a, $8f
- ld [wcd3b], a
- jr .asm_118db7
-
-.asm_118db2
- ld a, $26
- ld [wcd3b], a
-
-.asm_118db7
- ld hl, w3_d800
- ld a, $8
- ld [hli], a
- ld a, $c6
- ld [hli], a
- ld a, [wcd3b]
- ld [hli], a
- xor a
- ld [hli], a
- ld a, $8
- ld [hli], a
- ld a, $c7
- ld [hli], a
- ld a, [wcd39]
- ld [hli], a
- ld a, [wcd3a]
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, w3_d800
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-; 118ded
-
-Function118ded: ; 118ded
- ld a, [wcd38]
- and a
- jr z, .asm_118e03
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba Function11b93b
- pop af
- ld [rSVBK], a
-
-.asm_118e03
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118e06
-
-Function118e06: ; 118e06
- ld hl, wd002
- ld a, [wcd38]
- and a
- jr z, .asm_118e1d
-.asm_118e0f
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_118e0f
- ld a, [hli]
- cp $a
- jr nz, .asm_118e0f
-
-.asm_118e1d
- ld a, l
- ld [wcd39], a
- ld a, h
- ld [wcd3a], a
-.asm_118e25
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_118e25
- ld a, [hli]
- cp $a
- jr nz, .asm_118e25
- dec hl
- xor a
- ld [hld], a
- ld [hl], a
- jr asm_118e3e
-
-Function118e39: ; 118e39 (46:4e39)
-.asm_118e39
- ld a, [hli]
- and a
- jr nz, .asm_118e39
- dec hl
-asm_118e3e
-.asm_118e3e
- ld a, [hld]
- cp $2f
- jr nz, .asm_118e3e
- inc hl
- inc hl
- ld de, wcd85
- ld c, $4
-.asm_118e4a
- ld a, [hli]
- cp $2e
- jr z, .asm_118e63
- cp $30
- jr c, .asm_118e67
- cp $3a
- jr nc, .asm_118e67
- sub $30
- add $f6
- ld [de], a
- inc de
- dec c
- jr nz, .asm_118e4a
- ld de, wcd85
-.asm_118e63
- ld a, $50
- ld [de], a
- ret
-.asm_118e67
- ld a, $f3
- ld [de], a
- inc de
- jr .asm_118e63
-
-Function118e6d: ; 118e6d (46:4e6d)
- xor a
- ld [wcd65], a
- ld a, $a
- jp Function119e2b
-
-Function118e76: ; 118e76 (46:4e76)
- ; Call $c in BattleTowerRoomMenu2
- ld a, $c
- ld [wcd3c], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function118e7e: ; 118e7e (46:4e7e)
- call BattleTowerRoomMenu2
- ret c
- ld a, $36
- jp Function119e2b
-
-BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87)
- call BattleTowerRoomMenu2
- ret c
- ld a, [wcd33]
- ld [wcf66], a
- ret
-; 118e92 (46:4e92)
-
-Function118e92: ; 118e92
- call Function118440
- call Function1191d3
- ld a, [wcd53]
- ld l, a
- ld a, [wcd54]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld de, w3_d800
- ld bc, $0800
- jp Function118b10
-; 118eb0
-
-Function118eb0: ; 118eb0
- call Function118440
- ld hl, $d802
- ld de, BGMapBuffer
- ld bc, $000c
- call CopyBytes
- call Function1192cc
- ret c
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118ec6
-
-Function118ec6: ; 118ec6
- call Function118440
- call SpeechTextBox
- ld hl, $d80e
- ld de, $c320
- ld bc, $0026
- call CopyBytes
- xor a
- ld [$c31f], a
- ld a, $20
- ld [$c31b], a
- ld a, $c3
- ld [$c31c], a
- hlcoord 1, 14
- ld a, l
- ld [$c31d], a
- ld a, h
- ld [$c31e], a
- ld a, $2
- ld [$c31a], a
- ld a, $1d
- ld [wcd3c], a
- ld a, $24
- ld [wMobileInactivityTimerSeconds], a
- ld a, $11
- ld [wMobileInactivityTimerFrames], a
- ld a, $1c
- ld [wcd47], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118f0d
-
-Function118f0d: ; 118f0d
- call BattleTowerRoomMenu2
- ret c
- call Function118440
-
-Function118f14:
- call Function118440
- ld a, [wcd51]
- ld l, a
- ld a, [wcd52]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .DontSendSaveFile
- ld hl, Text_SaveFileWillBeSent
- call BattleTowerRoomMenu_SetMessage
-
-.DontSendSaveFile:
- ld a, [wcd57]
- ld l, a
- ld a, [wcd58]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld hl, wcc60
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $24
- ld [wMobileInactivityTimerSeconds], a
- ld a, $13
- ld [wMobileInactivityTimerFrames], a
- ld a, $1c
- ld [wcd47], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118f5e
-
-Function118f5e: ; 118f5e
- call BattleTowerRoomMenu2
- ret c
- call Function118440
- call DelayFrame
-
-Function118f68:
- call Function119223
- ret c
- call Function118440
- ld a, [wcd51]
- ld l, a
- ld a, [wcd52]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .asm_118fba
- ld hl, $c346
- ld a, $c608 % $100
- ld [hli], a
- ld a, $c608 / $100
- ld [hli], a
- ld a, [wcd4b]
- ld [hli], a
- ld a, [wcd4c]
- ld [hli], a
- ld a, $c708 % $100
- ld [hli], a
- ld a, $c708 / $100
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, $c346
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-
-.asm_118fba
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-; 118fc0
-
-Function118fc0: ; 118fc0
- call Function118440
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .asm_118ffa
- ld a, [wcd51]
- ld l, a
- ld a, [wcd52]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld a, [wcc60]
- and a
- jr z, .asm_118ff2
- ld hl, Text_SentSaveFileReadingNews
- jr .asm_118ff5
-
-.asm_118ff2
- ld hl, Text_ReadingNews
-
-.asm_118ff5
- call BattleTowerRoomMenu_SetMessage
- jr Function119009
-
-.asm_118ffa
- ld hl, Text_ReadingNews
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119009:
- call Function118440
- call Function119300
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld hl, $c346
- ld a, $8
- ld [hli], a
- ld a, $c6
- ld [hli], a
- ld a, [wcd4b]
- ld [hli], a
- ld a, [wcd4c]
- ld [hli], a
- ld a, $8
- ld [hli], a
- ld a, $c7
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, $c346
- ld de, w3_d000
- ld bc, $1000
- ld a, $2c
- jp Function119e2b
-; 119054
-
-Function119054: ; 119054
- ld a, $6
- call GetSRAMBank
- ld hl, wd002
- ld a, [wcd4f]
- ld e, a
- ld a, [wcd50]
- ld d, a
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_11908a
- ld a, $6
- ld [rSVBK], a
- ld hl, wd002
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- call Function119192
- ret c
-
-.asm_11908a
- call CloseSRAM
- ld a, $3
- ld [rSVBK], a
- ld a, $5
- call GetSRAMBank
- ld a, [wcd4f]
- ld [$b1b3], a
- ld a, [wcd50]
- ld [$b1b4], a
- ld hl, BGMapBuffer
- ld de, $aa7f
- ld bc, $000c
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wd474]
- ld [$b2f3], a
- ld hl, wd475
- ld de, $b2f4
- ld bc, $0004
- call CopyBytes
- pop af
- ld [rSVBK], a
- call CloseSRAM
- jp BattleTowerRoomMenu_IncrementJumptable
-; 1190d0
-
-Function1190d0: ; 1190d0
- ld a, $3
- ld [rSVBK], a
- ld a, [wcd57]
- ld l, a
- ld a, [wcd58]
- ld h, a
- ld de, wcc60
- call Function1191ad
- ret c
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 1190ec
-
-Function1190ec: ; 1190ec
- ld a, $5
- call GetSRAMBank
- ld hl, BGMapBuffer
- ld de, $aa73
- ld bc, $000c
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$aa72], a
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- ld hl, wd002
- ld de, $a000
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_11913e
- ld a, $6
- ld [rSVBK], a
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- ld hl, wd002
- call Function119192
- ret c
-
-.asm_11913e
- ld a, $3
- ld [rSVBK], a
- call CloseSRAM
- ld hl, Text_ReceivedNews
- call BattleTowerRoomMenu_SetMessage
- jp BattleTowerRoomMenu_IncrementJumptable
-; 11914e
-
-Function11914e: ; 11914e
- call BattleTowerRoomMenu2
- ret c
- ld a, $1c
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- ret
-; 11915d
-
-Function11915d: ; 11915d
- ld hl, $d802
- ld de, BGMapBuffer
- ld bc, $000c
- call CopyBytes
- ld a, $5
- call GetSRAMBank
- ld hl, BGMapBuffer
- ld de, $aa7f
- ld c, $c
-.asm_119176
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .asm_119184
- inc hl
- dec c
- jr nz, .asm_119176
- call BattleTowerRoomMenu_IncrementJumptable
- jr .asm_11918e
-
-.asm_119184
- ld a, $16
- ld [wcf66], a
- ld a, $b
- ld [wc300], a
-
-.asm_11918e
- call CloseSRAM
- ret
-; 119192
-
-Function119192: ; 119192
- inc b
- inc c
- jr .asm_11919e
-
-.asm_119196
- ld a, [hli]
- ld [de], a
- inc de
- ld a, $bf
- cp d
- jr c, .asm_1191a6
-
-.asm_11919e
- dec c
- jr nz, .asm_119196
- dec b
- jr nz, .asm_119196
- and a
- ret
-
-.asm_1191a6
- ld a, $d3
- call Function118805
- scf
- ret
-; 1191ad
-
-Function1191ad: ; 1191ad
- push bc
- ld c, $0
- ld a, $5
- ld [rSVBK], a
-.asm_1191b4
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr z, .asm_1191cc
- inc c
- ld a, c
- cp $a6
- jr c, .asm_1191b4
- ld a, $da
- call Function118805
- ld a, $3
- ld [rSVBK], a
- pop bc
- scf
- ret
-
-.asm_1191cc
- ld a, $3
- ld [rSVBK], a
- pop bc
- and a
- ret
-; 1191d3
-
-Function1191d3: ; 1191d3
- ld hl, w3_d100 + 2
- ld a, l
- ld [wcd53], a
- ld a, h
- ld [wcd54], a
- call Function11920f
- ld a, l
- ld [wcd51], a
- ld a, [wcd4a]
- ld a, h
- ld [wcd52], a
- call Function11920f
- ld a, l
- ld [wcd55], a
- ld a, [wcd4a]
- ld a, h
- ld [wcd56], a
- call Function11920f
- ld a, [wcd49]
- ld a, l
- ld [wcd57], a
- ld a, [wcd4a]
- ld a, h
- ld [wcd58], a
- call Function11920f
- ret
-; 11920f
-
-Function11920f: ; 11920f
-.asm_11920f
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_11920f
- ld a, [hli]
- cp $a
- jr nz, .asm_11920f
- dec hl
- xor a
- ld [hld], a
- ld [hli], a
- inc hl
- ret
-; 119223
-
-Function119223: ; 119223
- xor a
- ld [wcd4b], a
- ld [wcd4c], a
- ld a, $5
- call GetSRAMBank
- ld hl, wc3cd
- ld de, $b092
- ld bc, $001f
- call CopyBytes
- dec de
- xor a
- ld [de], a
- ld hl, $d810
-.asm_119241
- ld a, [hli]
- cp $50
- jr nz, .asm_119241
- ld a, [hli]
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [$b1b1], a
- ld c, a
- ld a, [hli]
- ld [$b1b2], a
- ld b, a
- ld de, $b1d3
- call CopyBytes
- call CloseSRAM
- ld e, l
- ld d, h
- ld hl, $c608
-.asm_119266
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_1192c2
- cp $fe
- jr z, .asm_1192a5
- call GetSRAMBank
- ld a, [de]
- inc de
- ld c, a
- ld a, [de]
- inc de
- ld b, a
- ld a, [de]
- inc de
- push de
- push af
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld d, a
- pop af
-.asm_119286
- push af
- ld a, [bc]
- inc bc
- ld [hli], a
- inc de
- pop af
- dec a
- jr nz, .asm_119286
- call CloseSRAM
- ld a, e
- ld [wcd4b], a
- ld a, d
- ld [wcd4c], a
- pop de
-.asm_11929b
- and a
- jr z, .asm_119266
- ld a, $d3
- call Function118805
- scf
- ret
-
-.asm_1192a5
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4c]
- ld b, a
- ld a, [de]
- inc de
-.asm_1192af
- push af
- ld a, [de]
- inc de
- ld [hli], a
- inc bc
- pop af
- dec a
- jr nz, .asm_1192af
- ld a, c
- ld [wcd4b], a
- ld a, b
- ld [wcd4c], a
- jr .asm_11929b
-
-.asm_1192c2
- ld a, e
- ld [wcd4d], a
- ld a, d
- ld [wcd4e], a
- and a
- ret
-; 1192cc
-
-Function1192cc: ; 1192cc
- ld a, $5
- call GetSRAMBank
- ld hl, $aa73
- ld de, $c608
- ld bc, $000c
- call CopyBytes
- call CloseSRAM
- ld hl, $c608
- ld de, BGMapBuffer
- ld c, $c
-.asm_1192e8
- ld a, [de]
- inc de
- ld b, a
- ld a, [hli]
- cp b
- jr nz, .asm_1192fe
- dec c
- jr nz, .asm_1192e8
- ld a, $1f
- ld [wcd3c], a
- ld a, $27
- ld [wcf66], a
- scf
- ret
-
-.asm_1192fe
- and a
- ret
-; 119300
-
-Function119300: ; 119300
- xor a
- ld [wcd4b], a
- ld [wcd4c], a
- ld a, [wcd4d]
- ld e, a
- ld a, [wcd4e]
- ld d, a
- ld hl, $c608
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4c]
- ld b, a
-.asm_11931a
- ld a, [de]
- inc de
- cp $50
- jr z, .asm_119324
- ld [hli], a
- inc bc
- jr .asm_11931a
-
-.asm_119324
- ld a, $3d
- ld [hli], a
- inc bc
- ld a, c
- ld [wcd4b], a
- ld a, b
- ld [wcd4c], a
- ld a, [de]
- inc de
- call GetSRAMBank
- ld a, [de]
- inc de
- ld c, a
- ld a, [de]
- inc de
- ld b, a
- ld a, [de]
- inc de
- push de
- push af
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld d, a
- pop af
-.asm_119348
- push af
- ld a, [bc]
- and $f0
- swap a
- call Function1197bf
- ld [hli], a
- inc de
- ld a, [bc]
- inc bc
- and $f
- call Function1197bf
- ld [hli], a
- inc de
- pop af
- dec a
- jr nz, .asm_119348
- call CloseSRAM
- ld a, e
- ld [wcd4b], a
- ld a, d
- ld [wcd4c], a
- pop de
- ld a, [de]
- cp $50
- jr z, .asm_11937f
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4c]
- ld b, a
- ld a, $26
- ld [hli], a
- inc bc
- jr .asm_11931a
-
-.asm_11937f
- ret
-; 119380
-
-Function119380: ; 119380
- ld a, $80
- ld [wcd49], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119388
-
-Function119388: ; 119388
- ld hl, wcd49
- dec [hl]
- ret nz
- ld hl, wcc60
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $10
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1193a0:
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld hl, $c346
- ld a, wd000 % $100
- ld [hli], a
- ld a, wd000 / $100
- ld [hli], a
- ld a, [wcd3b]
- ld [hli], a
- xor a
- ld [hli], a
- ld a, $c708 % $100
- ld [hli], a
- ld a, $c708 / $100
- ld [hli], a
- ld a, $60
- ld [hli], a
- ld a, $cc
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, $c346
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-; 1193e3
-
-Function1193e3: ; 1193e3
- ld hl, wcd49
- dec [hl]
- ret nz
- ld hl, wcc60
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $11
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1193fb:
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld de, w3_d000
- ld bc, $1000
- jp Function118b10
-; 119413
-
-Function119413: ; 119413
- ld a, $6
- call GetSRAMBank
- ld a, [w3_d000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- dec bc
- dec bc
- ld hl, wd002
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_119447
- ld a, $6
- ld [rSVBK], a
- ld a, [wd000]
- ld c, a
- ld a, [w3_d000 + 1]
- ld b, a
- ld hl, wd002
- call Function119192
- ret c
-
-.asm_119447
- ld a, $3
- ld [rSVBK], a
- call CloseSRAM
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119451
-
-Function119451: ; 119451 (46:5451)
- ld a, [wcd89]
- and $1
- jr z, .asm_11945d
- ld a, $d3
- jp Function118805
-.asm_11945d
- xor a
- ld [wcd50], a
- call Function119694
- ld a, b
- ld [wcd49], a
- call Function1196cd
- ld a, [wd002]
- ld hl, wd003
-
-Function119471: ; 119471 (46:5471)
- push af
- ld a, [hli]
- ld [$c608], a
- ld a, [hli]
- ld [$c608 + 3], a
- ld a, [hli]
- ld [$c608 + 1], a
- ld a, [hli]
- ld [$c608 + 2], a
- ld a, [hli]
- ld [$c608 + 4], a
- ld a, [hli]
- ld [$c608 + 5], a ; $c608 + 5
- push hl
- ld a, [$c608]
- cp $ff
- jr z, .asm_1194a7
- ld a, [$c608 + 2]
- cp $ff
- jr z, .asm_1194a7
- ld a, [$c608 + 1]
- cp $ff
- jr nz, .asm_1194a7
- call Function119584
- jr c, .asm_11950c
- jr .asm_1194f0
-.asm_1194a7
- ld hl, $c608
- ld de, $c608 + 3
- ld c, $3
-.asm_1194af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr c, .asm_1194f3
- jr z, .asm_1194b9
- jr nc, .asm_1194bc
-.asm_1194b9
- dec c
- jr nz, .asm_1194af
-.asm_1194bc
- ld c, $3
- ld hl, wcd49
- ld de, $c608
-.asm_1194c4
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_1194d1
- cp [hl]
- jr z, .asm_1194d1
- jr c, .asm_1194d5
- jr nc, .asm_1194f0
-.asm_1194d1
- inc hl
- dec c
- jr nz, .asm_1194c4
-.asm_1194d5
- ld c, $3
- ld hl, wcd49
- ld de, $c608 + 3
-.asm_1194dd
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_1194ea
- cp [hl]
- jr c, .asm_1194f0
- jr z, .asm_1194ea
- jr nc, .asm_11950c
-.asm_1194ea
- inc hl
- dec c
- jr nz, .asm_1194dd
- jr .asm_11950c
-.asm_1194f0
- pop hl
- jr .asm_119557
-.asm_1194f3
- ld c, $3
- ld hl, wcd49
- ld de, $c608
-.asm_1194fb
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_119508
- cp [hl]
- jr c, .asm_11950c
- jr z, .asm_119508
- jr nc, .asm_1194d5
-.asm_119508
- inc hl
- dec c
- jr nz, .asm_1194fb
-.asm_11950c
- pop hl
- ld a, $1
- ld [wcd50], a
- ld a, l
- ld [$c608], a
- ld a, h
- ld [$c608 + 1], a
- ld de, wcd69
- ld c, $10
- ld b, $0
-.asm_119521
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_119528
- inc b
-.asm_119528
- dec c
- jr nz, .asm_119521
- ld a, $10
- cp b
- jr z, .asm_119536
-rept 4
- inc hl
-endr
- jr .asm_11957a
-.asm_119536
- ld a, [hli]
- cp $50
- jr nz, .asm_119552
- ld a, [hli]
- cp $33
- jr nz, .asm_119553
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [wcd83]
- cp c
- jr nz, .asm_119576
- ld a, [wcd84]
- cp b
- jr nz, .asm_119576
- jr .asm_11955b
-.asm_119552
- inc hl
-.asm_119553
- inc hl
- inc hl
- jr .asm_11955b
-.asm_119557
- ld de, $14
- add hl, de
-.asm_11955b
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- add hl, de
- pop af
- dec a
- jp nz, Function119471
- ld a, [wcd50]
- and a
- jr z, .asm_119571
- ld a, $1a
- ld [wcf66], a
- ret
-.asm_119571
- ld a, $d8
- jp Function118805
-.asm_119576
- ld a, $10
- jr .asm_11957c
-.asm_11957a
- ld a, $f
-.asm_11957c
- ld [wcf66], a
- pop af
- call Function1195c4
- ret
-
-Function119584: ; 119584 (46:5584)
- ld a, [$c608]
- ld b, a
- ld a, [$c608 + 3]
- ld c, a
- cp b
- jr c, .asm_11959c
- ld a, [wcd49]
- cp b
- jr c, .asm_1195c2
-.asm_119595
- cp c
- jr c, .asm_1195a2
- jr z, .asm_1195a2
- jr .asm_1195c2
-.asm_11959c
- ld a, [wcd49]
- cp b
- jr c, .asm_119595
-.asm_1195a2
- ld a, [$c608 + 2]
- ld b, a
- ld a, [$c608 + 5] ; $c608 + 5
- ld c, a
- cp b
- jr c, .asm_1195ba
- ld a, [wcd4b]
- cp b
- jr c, .asm_1195c2
-.asm_1195b3
- cp c
- jr c, .asm_1195c0
- jr z, .asm_1195c0
- jr .asm_1195c2
-.asm_1195ba
- ld a, [wcd4b]
- cp b
- jr c, .asm_1195b3
-.asm_1195c0
- scf
- ret
-.asm_1195c2
- and a
- ret
-
-Function1195c4: ; 1195c4 (46:55c4)
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld de, $a5
- ld a, b
- cp d
- jr c, .asm_1195d9
- jr z, .asm_1195d3
- jr nc, .asm_1195f3
-.asm_1195d3
- ld a, c
- cp e
- jr z, .asm_1195d9
- jr nc, .asm_1195f3
-.asm_1195d9
- ld de, wcc60
- call CopyBytes
- xor a
- ld [de], a
- ld a, [$c608]
- ld l, a
- ld a, [$c608 + 1]
- ld h, a
- ld de, wcd69
- ld bc, $10
- call CopyBytes
- ret
-.asm_1195f3
- ld a, $d8
- jp Function118805
-
-Function1195f8: ; 1195f8 (46:55f8)
- ld a, $11
- ld [wcd3c], a
- ld a, $1c
- ld [wMobileInactivityTimerSeconds], a
- ld a, $f
- ld [wMobileInactivityTimerFrames], a
- ld a, $14
- ld [wcd47], a
- call BattleTowerRoomMenu_IncrementJumptable
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119612: ; 119612 (46:5612)
- ld a, $14
- ld [wcd3c], a
- ld a, $1c
- ld [wMobileInactivityTimerSeconds], a
- ld a, $10
- ld [wMobileInactivityTimerFrames], a
- ld a, $14
- ld [wcd47], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-Function119629: ; 119629 (46:5629)
- call BattleTowerRoomMenu2
- ret c
- ld a, $60
- ld l, a
- ld a, $cc
- ld h, a
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $1c
- ld [wMobileInactivityTimerSeconds], a
- ld a, $14
- ld [wcd47], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function119648: ; 119648 (46:5648)
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- call Function118b24
- ld de, w3_d000
- ld bc, $1000
- ld a, $2a
- jp Function119e2b
-
-Function119665: ; 119665 (46:5665)
- ld a, $1a
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function11966d: ; 11966d (46:566d)
- call BattleTowerRoomMenu2
- ret c
- ld a, [wcd47]
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- ret
-
-Function11967d: ; 11967d (46:567d)
- ld a, $18
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function119685: ; 119685 (46:5685)
- call BattleTowerRoomMenu2
- ret c
- ld a, $14
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- ret
-
-Function119694: ; 119694 (46:5694)
- ld b, 0
- ld hl, Unknown_1196b8
-.asm_119699
- ld de, $c708
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_1196af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_1196b0
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_1196b1
- ret
-.asm_1196af
- inc hl
-.asm_1196b0
- inc hl
-.asm_1196b1
- inc b
- ld a, b
- cp $7
- jr nz, .asm_119699
- ret
-; 1196b8 (46:56b8)
-
-Unknown_1196b8: ; 1196b8
- db "Mon"
- db "Tue"
- db "Wed"
- db "Thu"
- db "Fri"
- db "Sat"
- db "Sun"
-; 1196cd
-
-SECTION "bank46_2", ROMX
-; A hack to use ascii above.
-
-Function1196cd: ; 1196cd (46:56cd)
- ld de, $c719
- call Function1196de
- ld [wcd4a], a
- inc de
- call Function1196de
- ld [wcd4b], a
- ret
-
-Function1196de: ; 1196de (46:56de)
- ld a, [de]
- inc de
- ; b = ([de] - 48) * 2
- ; c = ([de] - 48) * 10
- sub $30
- sla a
- ld b, a
- sla a
- sla a
- add b
- ld c, a
- add hl, bc
- ld a, [de]
- inc de
- sub $30
- add c
- ret
-; 1196f2 (46:56f2)
-
-Function1196f2: ; 1196f2
- ld hl, wd002
-.asm_1196f5
- call Function118b9a
- ret nc
- ld a, [hli]
- cp $d
- jr nz, .asm_1196f5
- ld a, [hl]
- cp $a
- jr nz, .asm_1196f5
- xor a
- ld [hld], a
- ld [hli], a
- ld a, l
- ld [wcd5b], a
- ld a, h
- ld [wcd5c], a
- inc hl
- ld e, l
- ld d, h
- ld a, [de]
- inc de
- cp $d
- jr nz, .asm_119722
- ld a, [de]
- inc de
- cp $a
- jr nz, .asm_119722
- ld a, $b
- jp Function118805
-
-.asm_119722
- call Random
- ld c, $0
- ld b, c
-.asm_119728
- call Function119798
- ld a, d
- cp $ff
- jr nz, .asm_119735
- ld a, e
- cp $ff
- jr z, .asm_11974c
-
-.asm_119735
- ld a, [hRandomSub]
- cp d
- jr c, .asm_11974c
- jr z, .asm_11973e
- jr .asm_119745
-
-.asm_11973e
- ld a, [hRandomAdd]
- cp e
- jr c, .asm_11974c
- jr z, .asm_11974c
-
-.asm_119745
- inc bc
- ld a, c
- or b
- jr z, .asm_119770
- jr .asm_119728
-
-.asm_11974c
- ld a, [wcd5b]
- ld l, a
- ld a, [wcd5c]
- ld h, a
-.asm_119754
- ld a, [hld]
- cp $58
- jr nz, .asm_119754
- ld d, $0
-.asm_11975b
- inc d
- ld a, [hld]
- cp $58
- jr z, .asm_11975b
- inc hl
- inc hl
- ld a, d
- dec a
- jr z, .asm_11978e
- dec a
- jr z, .asm_119785
- dec a
- jr z, .asm_11977e
- dec a
- jr z, .asm_119775
-
-.asm_119770
- ld a, $d3
- jp Function118805
-
-.asm_119775
- ld a, b
- and $f0
- swap a
- call Function1197bf
- ld [hli], a
-
-.asm_11977e
- ld a, b
- and $f
- call Function1197bf
- ld [hli], a
-
-.asm_119785
- ld a, c
- and $f0
- swap a
- call Function1197bf
- ld [hli], a
-
-.asm_11978e
- ld a, c
- and $f
- call Function1197bf
- ld [hli], a
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119798
-
-Function119798: ; 119798
- ld d, $0
- ld e, d
- call Function1197b4
- swap a
- or d
- ld d, a
- call Function1197b4
- or d
- ld d, a
- call Function1197b4
- swap a
- or e
- ld e, a
- call Function1197b4
- or e
- ld e, a
- ret
-; 1197b4
-
-Function1197b4: ; 1197b4
- ld a, [hli]
- cp $61
- jr nc, .asm_1197bc
- sub $30
- ret
-
-.asm_1197bc
- sub $57
- ret
-; 1197bf
-
-Function1197bf: ; 1197bf
- cp $a
- jr nc, .asm_1197c6
- add $30
- ret
-
-.asm_1197c6
- add $57
- ret
-; 1197c9
-
-Function1197c9: ; 1197c9
- ld hl, wd002
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $12
- ld [wMobileInactivityTimerSeconds], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1197dc:
- call BattleTowerRoomMenu2
- ret c
- call DelayFrame
- ld hl, wd002
- ld de, wcc60
- ld bc, $0080
- call CopyBytes
- dec de
- xor a
- ld [de], a
- call Function118b24
- ld de, w3_d000
- ld bc, $1000
- ld a, $2a
- jp Function119e2b
-; 119800
-
-Function119800: ; 119800
- ld a, $fd
- ld [$c6d0], a
- ld [wOTTrademonSpecies], a
- ld a, [wcd81]
- ld [wc74e], a
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcf65]
- push af
- ld a, [wcf66]
- push af
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba Function10803d
- call Function11a9ce
- call RestartMapMusic
- ld a, $3
- ld [rSVBK], a
- pop af
- ld [wcf66], a
- pop af
- ld [wcf65], a
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- callba Function115dc3
- jp BattleTowerRoomMenu_IncrementJumptable
-; 11984e
-
-Function11984e: ; 11984e
- ld a, [wcd80]
- and a
- jr nz, .asm_1198a0
- ld a, [wcd38]
- and a
- jr nz, .asm_1198a8
- callba Function170000
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcf65]
- push af
- ld a, [wcf66]
- push af
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba MobileTradeAnimation_SendGivemonToGTS
- call Function11a9ce
- call RestartMapMusic
- ld a, $3
- ld [rSVBK], a
- pop af
- ld [wcf66], a
- pop af
- ld [wcf65], a
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- callba Function115dc3
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_1198a0
- ld a, $a
- ld [wc300], a
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_1198a8
- callba Function17005a
- ld a, [wJumptableIndex]
- push af
- ld a, [wcf64]
- push af
- ld a, [wcf65]
- push af
- ld a, [wcf66]
- push af
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba MobileTradeAnimation_RetrieveGivemonFromGTS
- call Function11a9ce
- call RestartMapMusic
- ld a, $3
- ld [rSVBK], a
- pop af
- ld [wcf66], a
- pop af
- ld [wcf65], a
- pop af
- ld [wcf64], a
- pop af
- ld [wJumptableIndex], a
- callba Function115dc3
- jp BattleTowerRoomMenu_IncrementJumptable
-; 1198ee
-
-Function1198ee: ; 1198ee
- ld hl, Text_RegisteringRecord
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-Function1198f7:
- ld a, [$c31a]
- and a
- ret nz
- ld hl, $c608 + 2
- call Function119940
- ld hl, w3_d800
- ld a, $c608 % $100
- ld [hli], a
- ld a, $c608 / $100
- ld [hli], a
- ld a, $f6
- ld [hli], a
- xor a
- ld [hli], a
- ld a, $c708 % $100
- ld [hli], a
- ld a, $c708 / $100
- ld [hli], a
- ld a, [wcd51]
- ld [hli], a
- ld a, [wcd52]
- ld [hli], a
- call Function119eb4
- call Function119ec2
- ld a, $40
- ld [wcd89], a
- ld hl, w3_d800
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-; 119937
-
-Function119937: ; 119937
- callba Function1707f4
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119940
-
-Function119940: ; 119940
- ld de, wc3cd
- ld c, $1e
-.asm_119945
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr z, .asm_119953
- and a
- jr nz, .asm_119945
- xor a
-.asm_11994f
- ld [hli], a
- dec c
- jr nz, .asm_11994f
-
-.asm_119953
- ret
-; 119954
-
-Function119954: ; 119954
- ld a, $1c
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld hl, $c608
- ld de, wc3cd
-.asm_119962
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .asm_119962
- call Function119ec2
- ld hl, $c608
- ld a, $1e
- jp Function119e2b
-; 119973
-
-Function119973: ; 119973
- ld a, $1
- ld [wcf64], a
- xor a
- ld [wcf65], a
- ld [w3_d090], a
- ld de, w3_d000
- ld a, $20
- jp Function119e2b
-; 119987
-
-Function119987: ; 119987
- ld hl, w3_d000 + 1
- ld a, [w3_d000]
- or [hl]
- jr z, .asm_1199a0
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
- ld de, BGPals
- ld a, $22
- jp Function119e2b
-
-.asm_1199a0
- ld a, [w3_d090]
- and a
- jr z, .asm_1199ae
- ld a, $16
- ld [wcf66], a
- jp Function119b0d
-
-.asm_1199ae
- ld a, $1b
- ld [wcf66], a
- ret
-; 1199b4
-
-Function1199b4: ; 1199b4
- ld a, [wd000 + 130]
- and a
- jr nz, .asm_1199c7
- ld a, [wd000 + 129]
- cp $7
- jr nc, .asm_1199c7
- call BattleTowerRoomMenu_IncrementJumptable
- jp Function1199ca
-
-.asm_1199c7
- jp Function119ac9
-; 1199ca
-
-Function1199ca: ; 1199ca
- ld a, $20
- ld [wcd89], a
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
- ld de, w3_d100
- ld bc, $0700
- ld a, $28
- jp Function119e2b
-; 1199e2
-
-Function1199e2: ; 1199e2
- ld c, $c
- ld de, XGameCodePrefix
- call Function119e4f
- jp c, Function119ac9
- ld a, c
- cp $1
- jp nz, Function119ac9
- ld hl, w3_d880
- ld bc, XGameCode
-.loop
- ld a, [bc]
- and a
- jr z, .game_result_prefix
- cp [hl]
- jp nz, Function119ac9
- inc bc
- inc hl
- jr .loop
-
-.game_result_prefix
- ld c, $17
- ld de, XGameResultPrefix
- call Function119e4f
- jp c, .asm_119aa7
- ld a, c
- cp $1
- jp nz, .asm_119aa7
- ld a, [w3_d880]
- cp $31
- jp nz, .asm_119aa7
- ld a, [w3_d881]
- cp $20
- jp nz, .asm_119aa7
- ld a, [w3_d88a]
- cp $20
- jp nz, .asm_119aa7
- ld a, [w3_d894]
- cp $20
- jp nz, .asm_119aa7
- xor a
- ld [w3_d8a0], a
- ld [w3_d8a1], a
- ld [w3_d8a2], a
- ld [w3_d8a3], a
- ld hl, $d8a0
- ld bc, $d889
- call Function119e98
- call Function119e98
- ld hl, $d8a0
- ld a, [wcd2d]
- cp [hl]
- jr nz, Function119ac9
- inc hl
- ld a, [wcd2c]
- cp [hl]
- jr nz, Function119ac9
- inc hl
- ld a, [wcd2b]
- cp [hl]
- jr nz, Function119ac9
- inc hl
- ld a, [wcd2a]
- cp [hl]
- jr nz, Function119ac9
- xor a
- ld [w3_d8a0], a
- ld [w3_d8a1], a
- ld [w3_d8a2], a
- ld [w3_d8a3], a
- ld hl, $d8a0
- ld bc, $d88e
- call Function119e98
- ld bc, $d893
- call Function119e98
- ld hl, $d8a0
- ld a, [wcd2f]
- cp [hl]
- jr nz, .asm_119aa7
- inc hl
- ld a, [wcd2e]
- cp [hl]
- jr nz, .asm_119aa7
- inc hl
- ld a, [wcd31]
- cp [hl]
- jr nz, .asm_119aa7
- inc hl
- ld a, [wcd30]
- cp [hl]
- jr z, .asm_119aaf
-
-.asm_119aa7
- ld a, $25
- ld [wcf66], a
- jp Function119b45
-
-.asm_119aaf
- ld a, [w3_d090]
- and a
- jr nz, .asm_119aa7
- ld a, [w3_d895]
- sub $30
- ld [w3_d090], a
- ld a, [wcf64]
- ld [w3_d090 + 1], a
- ld a, [wcf65]
- ld [w3_d090 + 2], a
-
-Function119ac9:
- ld a, [w3_d000]
- ld l, a
- ld a, [w3_d000 + 1]
- ld h, a
- dec hl
- ld a, l
- ld [w3_d000], a
- ld a, h
- ld [w3_d000 + 1], a
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
- inc hl
- ld a, l
- ld [wcf64], a
- ld a, h
- ld [wcf65], a
- ld a, $10
- ld [wcf66], a
- ret
-; 119af1
-
-XGameCode:
-INCBIN "data/mobile/x-game-code.txt"
-XGameResult:
-INCBIN "data/mobile/x-game-result.txt"
-; 119b0d
-
-Function119b0d: ; 119b0d
- ld a, $8
- ld [wcd3c], a
- call BattleTowerRoomMenu2
- ld a, [w3_d090]
- cp $1
- jr z, .asm_119b23
- ld a, $19
- ld [wcf66], a
- jr Function119b3b
-
-.asm_119b23
- ld a, $10
- ld [wcd89], a
- ld a, [w3_d090 + 1]
- ld l, a
- ld a, [w3_d090 + 2]
- ld h, a
- ld de, w3_d100
- ld bc, $0700
- ld a, $24
- jp Function119e2b
-
-Function119b3b:
- ld a, [w3_d090 + 1]
- ld l, a
- ld a, [w3_d090 + 2]
- ld h, a
- jr asm_119b4d
-
-Function119b45:
- ld a, [wcf64]
- ld l, a
- ld a, [wcf65]
- ld h, a
-
-asm_119b4d
- ld a, $26
- jp Function119e2b
-; 119b52
-
-Function119b52: ; 119b52
- ld a, [w3_d090]
- cp $1
- jr nz, .asm_119b66
- ld a, $5
- call GetSRAMBank
- ld a, $4
- ld [$a800], a
- call CloseSRAM
-
-.asm_119b66
- ld a, $1c
- jp Function119e2b
-; 119b6b
-
-Function119b6b: ; 119b6b
- ld a, [w3_d090]
- cp $1
- jr z, .asm_119b75
- jp BattleTowerRoomMenu_IncrementJumptable
-
-.asm_119b75
- ld a, [w3_d100]
- ld b, a
- ld a, [w3_d100 + 1]
- or b
- jr z, .asm_119be3
- ld hl, w3_d800
- ld de, w3_d100 + 2
-.asm_119b85
- ld a, [de]
- inc de
- cp $d
- jr nz, .asm_119b85
- inc de
- ld a, [de]
- cp $d
- jr nz, .asm_119b85
- inc de
- inc de
-.asm_119b93
- ld a, [de]
- inc de
- cp $d
- jr z, .asm_119bfa
- call Function119c3e
- ret c
- ld [hli], a
- ld a, [de]
- inc de
- call Function119c3e
- ret c
- ld [hli], a
- ld a, [de]
- inc de
- call Function119c3e
- ret c
- ld [hli], a
- ld a, [de]
- inc de
- call Function119c3e
- ret c
- ld [hl], a
- push de
- ld d, [hl]
- dec hl
- ld c, [hl]
- dec hl
- ld b, [hl]
- dec hl
- ld a, [hl]
- sla b
- sla b
- sla b
- rla
- sla b
- rla
- ld [hli], a
- ld [hl], b
- inc hl
- rrc c
- rrc c
- ld [hl], c
- dec hl
- ld a, $f
- and c
- or [hl]
- ld [hli], a
- ld a, [hli]
- and $c0
- or [hl]
- dec hl
- ld [hld], a
- dec hl
- pop de
- inc hl
- inc hl
- inc hl
- ld a, h
- cp $e0
- jr c, .asm_119b93
-
-.asm_119be3
- ld a, $19
- ld [wcf66], a
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
- xor a
- ld [w3_d090], a
- ret
-
-.asm_119bfa
- inc de
- ld a, [de]
- cp $d
- jr nz, .asm_119b93
- ld a, l
- cp (w3_d869) % $100
- jr nz, .asm_119be3
- ld a, h
- cp (w3_d869) / $100
- jr nz, .asm_119be3
- ld a, $5
- call GetSRAMBank
- ld a, [wcf64]
- ld [$b090], a
- ld a, [wcf65]
- ld [$b091], a
- ld hl, w3_d800
- ld de, $b023
- ld bc, $0069
- call CopyBytes
- ld a, $3
- ld [$a800], a
- call CloseSRAM
- ld hl, w3_d800
- ld de, $c608
- ld bc, $0069
- call CopyBytes
- jp BattleTowerRoomMenu_IncrementJumptable
-; 119c3e
-
-Function119c3e: ; 119c3e
- cp $2b
- jr c, .asm_119c68
- jr z, .asm_119c80
- cp $2f
- jr c, .asm_119c68
- jr z, .asm_119c84
- cp $30
- jr c, .asm_119c68
- cp $3a
- jr c, .asm_119c88
- cp $3d
- jr c, .asm_119c68
- jr z, .asm_119c8c
- cp $41
- jr c, .asm_119c68
- cp $5b
- jr c, .asm_119c8f
- cp $61
- jr c, .asm_119c68
- cp $7b
- jr c, .asm_119c93
-
-.asm_119c68
- ld a, $19
- ld [wcf66], a
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
- xor a
- ld [w3_d090], a
- scf
- ret
-
-.asm_119c80
- ld a, $3e
- and a
- ret
-
-.asm_119c84
- ld a, $3f
- and a
- ret
-
-.asm_119c88
- add $4
- and a
- ret
-
-.asm_119c8c
- xor a
- and a
- ret
-
-.asm_119c8f
- sub $41
- and a
- ret
-
-.asm_119c93
- sub $47
- and a
- ret
-; 119c97
-
-BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97
- ld hl, Text_UberRestriction
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
- jr BattleTowerRoomMenu_WaitForMessage
-
-BattleTowerRoomMenu_PartyMonTopsThisLevelMessage:
- ld hl, Text_PartyMonTopsThisLevel
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_WaitForMessage:
- ld a, [$c31a]
- and a
- ret nz
- ld a, $80
- ld [wcd50], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_DelayRestartMenu:
- ; Loops while (--[wcd50] != 0),
- ; to create some sort of "delay" after the message is written on the screen,
- ; before starting the menu again.
- ld hl, wcd50
- dec [hl]
- ret nz
- ld a, $0
- ld [wcf66], a
- ret
-; 119cc3
-
-BattleTowerRoomMenu_QuitMessage: ; 119cc3
- ld a, [wcd38]
- and a
- jr z, .asm_119cd1
- dec a
- jr z, .asm_119cd6
- ld hl, Text_QuitReadingNews
- jr .asm_119cd9
-
-.asm_119cd1
- ld hl, Text_CancelBattleRoomChallenge
- jr .asm_119cd9
-
-.asm_119cd6
- ld hl, Text_ExitGymLeaderHonorRoll
-
-.asm_119cd9
- call BattleTowerRoomMenu_SetMessage
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_PlaceYesNoMenu:
- ld a, [$c31a]
- and a
- ret nz
- ld a, $f
- ld [wcd3c], a
- call BattleTowerRoomMenu_IncrementJumptable
-
-BattleTowerRoomMenu_UpdateYesNoMenu:
- ; Only ever called when [wcd3c] is $10
- call BattleTowerRoomMenu2
- ret c
- ld a, [wMobileInactivityTimerFrames]
- ld [wcf66], a
- ret
-; 119cf7
-
-MenuDataHeader_119cf7: ; 119cf7
- db $40 ; flags
- db 7, 12 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 119cff
-
-MenuData_119cff: ; 119cff
- db $40 ; flags
- db 7, 15 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 119d07
-
-String_119d07:
- db " ▼@"
-
-Strings_L10ToL100: ; 119d0c
- db " L:10 @@"
- db " L:20 @@"
- db " L:30 @@"
- db " L:40 @@"
- db " L:50 @@"
- db " L:60 @@"
- db " L:70 @@"
- db " L:80 @@"
- db " L:90 @@"
- db " L:100@@"
- db "CANCEL@@"
-
-Strings_Ll0ToL40: ; 119d64
- db " L:10 @@"
- db " L:20 @@"
- db " L:30 @@"
- db " L:40 @@"
- db "CANCEL@@"
-
-String_119d8c:
- db "CANCEL@"
-; 119d93
-
-BattleTower_LevelCheck: ; 119d93 (46:5d93)
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wcd4f]
- ld c, 10
- call SimpleMultiply
- ld hl, wcd50
- ld [hl], a
- ld bc, PARTYMON_STRUCT_LENGTH
- ld de, PartyMon1Level
- ld a, [PartyCount]
-.party_loop
- push af
- ld a, [de]
- push hl
- push de
- pop hl
- add hl, bc
- push hl
- pop de
- pop hl
- cp [hl]
- jr z, .equal
- jr nc, .exceeds
-.equal
- pop af
- dec a
- jr nz, .party_loop
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.exceeds
- pop af
- ld a, $4
- ld [wcf66], a
- pop af
- ld [rSVBK], a
- scf
- ret
-
-BattleTower_UbersCheck: ; 119dd1 (46:5dd1)
- ld a, [rSVBK]
- push af
- ld a, [wcd4f]
- cp 70 / 10
- jr nc, .level_70_or_more
- ld a, $1
- ld [rSVBK], a
- ld hl, PartyMon1Level
- ld bc, PARTYMON_STRUCT_LENGTH
- ld de, PartySpecies
- ld a, [PartyCount]
-.loop
- push af
- ld a, [de]
- cp MEWTWO
- jr z, .uber
- cp MEW
- jr z, .uber
- cp LUGIA
- jr c, .next
- cp NUM_POKEMON + 1
- jr nc, .next
-.uber
- ld a, [hl]
- cp 70
- jr c, .uber_under_70
-.next
- add hl, bc
- inc de
- pop af
- dec a
- jr nz, .loop
-.level_70_or_more
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.uber_under_70
- pop af
- ld a, [de]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, wcd49
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- ld a, $a
- ld [wcf66], a
- pop af
- ld [rSVBK], a
- scf
- ret
-; 119e2b (46:5e2b)
-
-Function119e2b: ; 119e2b (46:5e2b)
- call Function3e32
-
-BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e)
- ld hl, wcf66
- inc [hl]
- ret
-; 119e33 (46:5e33)
-
-XGameCodePrefix: ; 119e33
-INCBIN "data/mobile/x-game-code-prefix.txt"
-XGameCodePrefixEnd:
-;119e40
-
-XGameResultPrefix: ; 119e40
-INCBIN "data/mobile/x-game-result-prefix.txt"
-XGameResultPrefixEnd:
-; 119e4f
-
-Function119e4f: ; 119e4f
- push bc
- ld hl, w3_d100
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-.loop
- ld a, [de]
- cp [hl]
- jr z, .found_equality
-.next
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .loop
-.return_carry
- pop bc
- scf
- ret
-
-.found_equality
- push de
-.loop2
- ld a, [de]
- inc de
- cp "\n"
- jr z, .newline
- cp [hl]
- jr nz, .unequal
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .loop2
- pop de
- jr .return_carry
-
-.unequal
- pop de
- jr .next
-
-.newline
- pop de
- pop bc
- inc hl
- ld de, w3_d880
-.loop3
- ld a, [hli]
- ld [de], a
- inc de
- cp $d
- jr z, .finish
- dec c
- jr nz, .loop3
- scf
- ret
-
-.finish
- and a
- ret
-; 119e8e
-
-Function119e8e: ; 119e8e
- cp $60
- jr c, .less_than_0x60
- sub $57
- ret
-
-.less_than_0x60
- sub $30
- ret
-; 119e98
-
-Function119e98: ; 119e98
- ld a, $2
-.loop
- push af
- ld a, [bc]
- dec bc
- call Function119e8e
- or [hl]
- ld [hl], a
- ld a, [bc]
- dec bc
- call Function119e8e
- rlca
- rlca
- rlca
- rlca
- or [hl]
- ld [hl], a
- inc hl
- pop af
- dec a
- and a
- jr nz, .loop
- ret
-; 119eb4
-
-Function119eb4: ; 119eb4 (46:5eb4)
- xor a
- ld [wc3cc], a
- ld de, wc3ac
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .loop
- ret
-
-Function119ec2: ; 119ec2 (46:5ec2)
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- xor a
- ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a
- ld de, sMobileLoginPassword + 1
-.loop
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .loop
- call CloseSRAM
- ret
-
-BattleTowerRoomMenu2: ; 119ed8 (46:5ed8)
- ld a, [rSVBK]
- ld [wcd8c], a
- ld a, $1
- ld [rSVBK], a
-
- call .RunJumptable
-
- ld a, [wcd8c]
- ld [rSVBK], a
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.RunJumptable:
- jumptable .Jumptable, wcd3c
-
-.Jumptable:
- dw Function119f3f
- dw Function119f45
- dw Function119f56
- dw Function119f76
- dw Function119f98
- dw Function11a113
- dw Function11a129
- dw Function11a131
- dw Function11a13d
- dw Function11a14b
- dw Function11a16d
- dw Function11a192
- dw Function11a2e6
- dw Function11a302
- dw Function11a33a
- dw BattleTowerRoomMenu2_PlaceYesNoMenu
- dw BattleTowerRoomMenu2_UpdateYesNoMenu
- dw Function11a357
- dw Function11a36b
- dw Function11a38d
- dw Function11a3c5
- dw Function11a3d9
- dw Function11a3f9
- dw Function11a41b
- dw Function11a452
- dw Function11a47a
- dw Function11a488
- dw Function11a49e
- dw Function11a4db
- dw Function11a4e8
- dw Function11a4fe
- dw Function11a466
- dw Function11a47a
-; 119f3f
-
-Function119f3f: ; 119f3f
- call Function11a5b9
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f45
-
-Function119f45: ; 119f45
- hlcoord 4, 2
- ld de, String_11a661
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f56
-
-Function119f56: ; 119f56
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_119f62
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_119f62
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6aa
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f76
-
-Function119f76: ; 119f76
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_119f82
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_119f82
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a679
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 119f98
-
-Function119f98: ; 119f98
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_119fef
- call ExitMenu
- call Function11a63c
- xor a
- ld [ScriptVar], a
- call Function11a00e
- ld a, [ScriptVar]
- and a
- jr z, .asm_119fd4
- call ExitMenu
- callba ReloadMapPart
- callba Function115dc3
- ld a, [wcd33]
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- scf
- ret
-
-.asm_119fd4
- hlcoord 4, 2
- ld de, String_11a692
- call PlaceString
- ld a, $1
- ld [wc30d], a
- ld a, $1
- ld [wc314], a
- callba ReloadMapPart
- and a
- ret
-
-.asm_119fef
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- callba Function115dc3
- ld a, $a
- ld [wc300], a
- scf
- ret
-; 11a00e
-
-Function11a00e: ; 11a00e
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- ld a, [sMobileLoginPassword]
- and a
- jr z, .asm_11a02a
- ld a, [sMobileLoginPassword + 1]
- call CloseSRAM
- and a
- ret nz
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- xor a
- ld [sMobileLoginPassword], a
-
-.asm_11a02a
- call CloseSRAM
- ld a, [BGMapPalBuffer]
- and a
- jr z, .asm_11a039
- dec a
- jr z, .asm_11a081
- jp Function11a0ca
-
-.asm_11a039
- ld a, $3
- ld [rSVBK], a
- ld hl, $c608
- ld de, w3_d800
- ld bc, $00f6
- call CopyBytes
- ld a, $1
- ld [rSVBK], a
- call FadeToMenu
- callba Function11765d
- call Function11a9ce
- ld a, $3
- ld [rSVBK], a
- ld hl, w3_d800
- ld de, $c608
- ld bc, $00f6
- call CopyBytes
- ld a, $1
- ld [rSVBK], a
- callba Function115d99
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-
-.asm_11a081
- xor a
- ld [wMenuBorderLeftCoord], a
- ld [wMenuBorderTopCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $5
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- callba Function11765d
- callba Function117ab4
- callba MobileFunc_106462
- callba Function106464
- call ExitMenu
- callba ReloadMapPart
- callba Function115d99
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-; 11a0ca
-
-Function11a0ca: ; 11a0ca
- xor a
- ld [wMenuBorderLeftCoord], a
- ld [wMenuBorderTopCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $11
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- callba Function11765d
- callba Function17d3f6
- callba MobileFunc_106462
- callba Function106464
- call ExitMenu
- callba ReloadMapPart
- callba Function115d99
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-; 11a113
-
-Function11a113: ; 11a113
- call Function11a63c
- ld c, $1
- callba Function115e18
- hlcoord 4, 2
- ld de, String_11a6c8
- call PlaceString
- and a
- ret
-; 11a129
-
-Function11a129: ; 11a129
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a131
-
-Function11a131: ; 11a131
- ld hl, wMobileInactivityTimerMinutes
- dec [hl]
- ret nz
- ld a, [wcd3c]
- inc a
- ld [wcd3c], a
-
-Function11a13d:
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-; 11a14b
-
-Function11a14b: ; 11a14b
- ld hl, wcd85
- ld a, [hl]
- cp $f3
- jr nz, .asm_11a155
- and a
- ret
-
-.asm_11a155
- call Function11a1d6
- ret c
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6f1
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a16d
-
-Function11a16d: ; 11a16d
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a179
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a179
- call Function11a63c
- call Function11a1e6
- hlcoord 4, 2
- ld de, $c346
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a192
-
-Function11a192: ; 11a192
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a1b6
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a1b6
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- ld [wcd80], a
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- scf
- ret
-; 11a1d6
-
-Function11a1d6: ; 11a1d6
- ld a, [wcd85]
- cp $50
- jr nz, .asm_11a1e4
- ld a, $d3
- call Function118805
- scf
- ret
-
-.asm_11a1e4
- and a
- ret
-; 11a1e6
-
-Function11a1e6: ; 11a1e6
- ld hl, String_11a706
- ld de, $c346
- call Function11a1ff
- ld hl, wcd85
- call Function11a1ff
- ld hl, String_11a70b
- call Function11a1ff
- ld a, $50
- ld [de], a
- ret
-; 11a1ff
-
-Function11a1ff: ; 11a1ff
-.asm_11a1ff
- ld a, [hli]
- cp $50
- ret z
- ld [de], a
- inc de
- jr .asm_11a1ff
-; 11a207
-
-BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207
- ld hl, MenuDataHeader_11a2de
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- call ApplyTilemap
- hlcoord 16, 8
- ld de, String_11a2cf
- call PlaceString
- hlcoord 16, 10
- ld de, String_11a2d3
- call PlaceString
- hlcoord 15, 8
- ld a, $ed
- ld [hl], a
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a235
-
-BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON
- jr nz, .a_button
- ld a, [hl]
- and B_BUTTON
- jr nz, .b_button
- ld a, [hl]
- and D_UP
- jr nz, .d_up
- ld a, [hl]
- and D_DOWN
- jr nz, .d_down
-.asm_11a24c
- call Function11a9f0
- scf
- ret
-
-.d_up
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a24c
- xor a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 8
- ld a, $ed
- ld [hl], a
- hlcoord 15, 10
- ld a, $7f
- ld [hl], a
- jr .asm_11a24c
-
-.d_down
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a24c
- inc a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 8
- ld a, $7f
- ld [hl], a
- hlcoord 15, 10
- ld a, $ed
- ld [hl], a
- jr .asm_11a24c
-
-.a_button
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .exit_no_carry
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerFrames]
- cp $0
- jr z, .asm_11a2b4
- ld a, [wcd47]
- jr .exit_carry
-
-.asm_11a2b4
- ld a, [wcd33]
-
-.exit_carry
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- scf
- ret
-
-.b_button
- call PlayClickSFX
-
-.exit_no_carry
- call ExitMenu
- callba ReloadMapPart
- and a
- ret
-; 11a2cf
-
-String_11a2cf: ; 11a2cf
- db "YES@"
-; 11a2d3
-
-String_11a2d3: ; 11a2d3
- db "NO@"
-; 11a2d6
-
-MenuDataHeader_11a2d6: ; 11a2d6
- db $40 ; flags
- db 6, 14 ; start coords
- db 10, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11a2de
-
-MenuDataHeader_11a2de: ; 11a2de
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11a2e6
-
-Function11a2e6: ; 11a2e6
- call Function11a63c
- ld c, $2
- callba Function115e18
- hlcoord 4, 2
- ld de, String_11a71e
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a302
-
-Function11a302: ; 11a302
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a30e
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a30e
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a72a
- call PlaceString
- hlcoord 9, 4
- ld de, wcd68
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- hlcoord 14, 4
- ld de, wcd67
- lb bc, PRINTNUM_LEADINGZEROS | 1, 2
- call PrintNum
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a33a
-
-Function11a33a: ; 11a33a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a346
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a346
- call ExitMenu
- callba ReloadMapPart
- callba Function115dc3
- and a
- ret
-; 11a357
-
-Function11a357: ; 11a357
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a743
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a36b
-
-Function11a36b: ; 11a36b
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a377
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a377
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a755
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a38d
-
-Function11a38d: ; 11a38d
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a3b1
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a3b1
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a3c5
-
-Function11a3c5: ; 11a3c5
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a762
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a3d9
-
-Function11a3d9: ; 11a3d9
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a3e5
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a3e5
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a779
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a3f9
-
-Function11a3f9: ; 11a3f9
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a405
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a405
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a755
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a41b
-
-Function11a41b: ; 11a41b
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a43f
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a43f
- call ExitMenu
- callba ReloadMapPart
- ld a, $1c
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a452
-
-Function11a452: ; 11a452
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a791
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a466
-
-Function11a466: ; 11a466
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a7c1
- call PlaceString
- ld a, $80
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a47a
-
-Function11a47a: ; 11a47a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a486
- dec a
- ld [wMobileInactivityTimerMinutes], a
- scf
- ret
-
-.asm_11a486
- and a
- ret
-; 11a488
-
-Function11a488: ; 11a488
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a7ac
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a49e
-
-Function11a49e: ; 11a49e
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a4c7
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- ld a, $14
- ld [wcf66], a
- and a
- ret
-
-.asm_11a4c7
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerFrames]
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a4db
-
-Function11a4db: ; 11a4db
- call Function11a63c
- ld de, String_11a6db
- hlcoord 4, 2
- call PlaceString
- ret
-; 11a4e8
-
-Function11a4e8: ; 11a4e8
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a7d7
- call PlaceString
- call Function11a5f5
- xor a
- ld [wMobileInactivityTimerMinutes], a
- jp BattleTowerRoomMenu2_IncrementJumptable
-; 11a4fe
-
-Function11a4fe: ; 11a4fe
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a522
- call ExitMenu
- callba ReloadMapPart
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a522
- call ExitMenu
- callba ReloadMapPart
- ld a, [wMobileInactivityTimerSeconds]
- ld [wcf66], a
- ld [wcd80], a
- scf
- ret
-; 11a536
-
-Function11a536: ; 11a536
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- jr nz, .asm_11a5a7
- ld a, [hl]
- and $2
- jr nz, .asm_11a5a2
- ld a, [hl]
- and $40
- jr nz, .asm_11a564
- ld a, [hl]
- and $80
- jr nz, .asm_11a583
-.asm_11a54d
- ld a, [wcd3c]
- cp $4
- jr z, .asm_11a562
- call Function11a9f0
- jr nz, .asm_11a562
- call ExitMenu
- callba ReloadMapPart
-
-.asm_11a562
- scf
- ret
-
-.asm_11a564
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr z, .asm_11a54d
- xor a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 7
- ld a, $ed
- ld [hl], a
- hlcoord 15, 9
- ld a, $7f
- ld [hl], a
- jr .asm_11a54d
-
-.asm_11a583
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wMobileInactivityTimerMinutes]
- and a
- jr nz, .asm_11a54d
- inc a
- ld [wMobileInactivityTimerMinutes], a
- hlcoord 15, 7
- ld a, $7f
- ld [hl], a
- hlcoord 15, 9
- ld a, $ed
- ld [hl], a
- jr .asm_11a54d
-
-.asm_11a5a2
- ld a, $1
- ld [wMobileInactivityTimerMinutes], a
-
-.asm_11a5a7
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- and a
- ret
-; 11a5b0
-
-BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0
- ld a, [wcd3c]
- inc a
- ld [wcd3c], a
- scf
- ret
-; 11a5b9
-
-Function11a5b9: ; 11a5b9
- xor a
- ld [wMenuBorderLeftCoord], a
- ld [wMenuBorderTopCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $5
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- hlcoord 0, 0, AttrMap
- ld b, $6
- ld c, $14
- hlcoord 0, 0
- ld b, $4
- ld c, $12
- call Function3eea
- callba ReloadMapPart
- call UpdateSprites
- ld c, $0
- callba Function115e18
- ld a, $1
- ld [wc305], a
- ret
-; 11a5f5
-
-Function11a5f5: ; 11a5f5
- ld a, $e
- ld [wMenuBorderLeftCoord], a
- ld a, $13
- ld [wMenuBorderRightCoord], a
- ld a, $6
- ld [wMenuBorderTopCoord], a
- ld a, $a
- ld [wMenuBorderBottomCoord], a
- call PushWindow
- hlcoord 14, 6, AttrMap
- ld b, $5
- ld c, $6
- hlcoord 14, 6
- ld b, $3
- ld c, $4
- call Function3eea
- hlcoord 16, 7
- ld de, String_11a2cf
- call PlaceString
- hlcoord 16, 9
- ld de, String_11a2d3
- call PlaceString
- hlcoord 15, 7
- ld a, $ed
- ld [hl], a
- callba ReloadMapPart
- ret
-; 11a63c
-
-Function11a63c: ; 11a63c
- hlcoord 4, 1
- ld de, String_11a7f4
- call PlaceString
- hlcoord 4, 2
- ld de, String_11a7f4
- call PlaceString
- hlcoord 4, 3
- ld de, String_11a7f4
- call PlaceString
- hlcoord 4, 4
- ld de, String_11a7f4
- call PlaceString
- ret
-; 11a661
-
-String_11a661: ; 11a661
- db "これから モバイルセンターに"
- next "でんわ", $1f, "かけます@"
-; 11a679
-
-String_11a679: ; 11a679
- db "モバイルアダプタ", $25, "じゅんびは"
- next "できて いますか?@"
-; 11a692
-
-String_11a692: ; 11a692
- db "でんわ", $1f, "かけています"
- next "しばらく おまちください@"
-; 11a6aa
-
-String_11a6aa: ; 11a6aa
- db "でんわをかけると つうわりょう"
- next "せつぞくりょう", $4a, "かかります@"
-; 11a6c8
-
-String_11a6c8: ; 11a6c8
- db "せつぞく しました@"
-; 11a6d2
-
-String_11a6d2: ; 11a6d2
- db "つうしん ちゅう@"
-; 11a6db
-
-String_11a6db: ; 11a6db
- db "つうしん ちゅう"
- next "セレクト エーでちゅうし@"
-; 11a6f1
-
-String_11a6f1: ; 11a6f1
- db "この サービスには"
- next "つうわりょう", $25, "ほかに@"
-; 11a706
-
-String_11a706: ; 11a706
- db "おかね", $4a, "@"
-; 11a70b
-
-String_11a70b: ; 11a70b
- db "えん"
- next "かかります よろしい ですか?@"
-; 11a71e
-
-String_11a71e: ; 11a71e
- db "つうしん しゅうりょう@"
-; 11a72a
-
-String_11a72a: ; 11a72a
- db "つないだ じかん"
- next " やく ふん びょう@"
-; 11a743
-
-String_11a743: ; 11a743
- db "もっていない データが"
- next "あります!@"
-; 11a755
-
-String_11a755: ; 11a755
- db "データ", $1f, "よみこみますか?@"
-; 11a762
-
-String_11a762: ; 11a762
- db "おなじ データ", $1f, "よみこんだ"
- next "こと", $4a, "ありますが@"
-; 11a779
-
-String_11a779: ; 11a779
- db "そのデータ", $24, "なくなっているか"
- next "こわれて います@"
-; 11a791
-
-String_11a791: ; 11a791
- db "もっている データと"
- next "おなじデータしか ありません!@"
-; 11a7ac
-
-String_11a7ac: ; 11a7ac
- db "データ", $25, "よみこみを"
- next "ちゅうし しますか?@"
-; 11a7c1
-
-String_11a7c1: ; 11a7c1 ; new news?
- db "あたらしい ニュースは"
- next "ありません でした@"
-; 11a7d7
-
-String_11a7d7: ; 11a7d7
- db "あたらしいニュース", $4a, "あります"
- next "ニュース", $1f, "よみこみますか?@"
-; 11a7f4
-
-String_11a7f4: ; 11a7f4
- db " @"
-; 11a804
-
-MenuDataHeader_11a804: ; 11a804
- db $40 ; flags
- db 0, 0 ; start coords
- db 5, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11a80c
-
-Function11a80c: ; 11a80c
- ld de, hDivisor
- ld bc, hDividend
- ld hl, Unknown_11a89a
- call Function11a88c
- ld bc, hQuotient
- ld hl, Unknown_11a8ba
- call Function11a88c
- ld bc, hPrintNum3
- ld hl, Unknown_11a8da
- call Function11a88c
- xor a
- ld b, a
- ld a, [hDivisor]
- and $f
- ld e, a
- ld a, [hPrintNum7]
- and $f
- call Function11a884
- ld e, a
- ld a, [hPrintNum9]
- and $f
- call Function11a884
- ld [wcd62], a
- ld e, b
- xor a
- ld b, a
- ld a, [hDivisor]
- and $f0
- swap a
- call Function11a884
- ld e, a
- ld a, [hPrintNum7]
- and $f0
- swap a
- call Function11a884
- ld e, a
- ld a, [hPrintNum9]
- and $f0
- swap a
- call Function11a884
- ld [wcd63], a
- ld e, b
- xor a
- ld b, a
- ld a, [hMathBuffer]
- and $f
- call Function11a884
- ld e, a
- ld a, [hPrintNum8]
- and $f
- call Function11a884
- ld e, a
- ld a, [hPrintNum10]
- and $f
- call Function11a884
- ld [wcd64], a
- ret
-; 11a884
-
-Function11a884: ; 11a884
- add e
- cp $a
- ret c
- sub $a
- inc b
- ret
-; 11a88c
-
-Function11a88c: ; 11a88c
- ld a, [bc]
- sla a
- ld c, a
- xor a
- ld b, a
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
- ret
-; 11a89a
-
-Unknown_11a89a: ; 11a89a
-x = 0
-rept 16
- bcd x % 100, x / 100
-x = x + 1
-endr
-
-Unknown_11a8ba: ; 11a8ba
-x = 0
-rept 16
- bcd x % 100, x / 100
-x = x + 16
-endr
-
-Unknown_11a8da: ; 11a8da
-x = 0
-rept 16
- bcd x % 100, x / 100
-x = x + 256
-endr
-; 11a8fa
-
-BattleTowerRoomMenu_WriteMessage: ; 11a8fa
- jumptable .Jumptable, $c31a
-; 11a909
-
-.Jumptable: ; 11a909
- dw BattleTowerRoomMenu_WriteMessage_DoNothing
- dw Function11a90f
- dw Function11a971
-; 11a90f
-
-Function11a90f: ; 11a90f
- ld a, $1
- ld [rSVBK], a
- call SpeechTextBox
- ld a, $50
- ld hl, $c320
- ld bc, $008c
- call ByteFill
- ld a, [$c31b]
- ld l, a
- ld a, [$c31c]
- ld h, a
- ld de, $c320
-.asm_11a92c
- ld a, [hli]
- cp $57
- jr z, .asm_11a94f
- cp $0
- jr z, .asm_11a92c
- cp $50
- jr z, .asm_11a92c
- cp $1
- jr z, .asm_11a941
- ld [de], a
- inc de
- jr .asm_11a92c
-
-.asm_11a941
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-.asm_11a945
- ld a, [bc]
- inc bc
- cp $50
- jr z, .asm_11a92c
- ld [de], a
- inc de
- jr .asm_11a945
-
-.asm_11a94f
- xor a
- ld [$c31f], a
- ld a, $c320 % $100
- ld [$c31b], a
- ld a, $c320 / $100
- ld [$c31c], a
- hlcoord 1, 14
- ld a, l
- ld [$c31d], a
- ld a, h
- ld [$c31e], a
- ld hl, $c31a
- inc [hl]
- ld a, $3
- ld [rSVBK], a
-
-BattleTowerRoomMenu_WriteMessage_DoNothing:
- ret
-; 11a971
-
-Function11a971: ; 11a971
- ld hl, $c31f
- ld a, [hJoyDown]
- and a
- jr nz, .asm_11a97f
- ld a, [hl]
- and a
- jr z, .asm_11a97f
- dec [hl]
- ret
-
-.asm_11a97f
- ld a, [Options]
- and $7
- ld [hl], a
- ld hl, wcd8d
- ld a, [$c31b]
- ld e, a
- ld a, [$c31c]
- ld d, a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, e
- ld [$c31b], a
- ld a, d
- ld [$c31c], a
- ld a, $50
- ld [hl], a
- ld a, [$c31d]
- ld l, a
- ld a, [$c31e]
- ld h, a
- ld de, wcd8d
- call PlaceString
- ld a, c
- ld [$c31d], a
- ld a, b
- ld [$c31e], a
- ld a, [wcd8d]
- cp $50
- jr nz, .asm_11a9bf
- xor a
- ld [$c31a], a
-
-.asm_11a9bf
- ret
-; 11a9c0
-
-BattleTowerRoomMenu_SetMessage: ; 11a9c0
- ld a, l
- ld [$c31b], a
- ld a, h
- ld [$c31c], a
- ld a, $1
- ld [$c31a], a
- ret
-; 11a9ce
-
-Function11a9ce: ; 11a9ce
- call ClearBGPalettes
- call ReloadTilesetAndPalettes
- call Call_ExitMenu
- callba MobileFunc_106462
- callba Function106464
- call ret_d90
- callba FinishExitMenu
- call UpdateSprites
- ret
-; 11a9f0
-
-Function11a9f0: ; 11a9f0
- ld a, $1
- and a
- ret
-; 11a9f4
-
-Function11a9f4: ; 11a9f4
- ld a, [wcd8a]
- ld l, a
- ld a, [wcd8b]
- ld h, a
- inc hl
- ld a, l
- ld [wcd8a], a
- ld a, h
- ld [wcd8b], a
- ld de, $d5d0
- add hl, de
- bit 7, h
- ret nz
- ld a, $d6
- call Function118805
- and a
- ret
-; 11aa13
-
-Text_SaveFileWillBeSent: ; 0x11aa13
- text "SAVE FILE will be"
- line "sent."
- done
-; 0x11aa2c
-
-Text_SentSaveFileReadingNews: ; 0x11aa2c
- text "Sent SAVE FILE."
- line "Reading NEWS…"
- done
-; 0x11aa4b
-
-Text_ReadingNews: ; 0x11aa4b
- text "Reading NEWS…"
- done
-; 0x11aa5a
-
-Text_ReceivedNews: ; 0x11aa5a
- text "Received NEWS!"
- done
-; 0x11aa6a
-
-Text_QuitReadingNews: ; 0x11aa6a
- text "Quit reading NEWS?"
- done
-; 0x11aa7e
-
-Text_CanceledSendingSaveFile: ; 0x11aa7e
- text "Canceled sending"
- line "SAVE FILE."
- done
-; 0x11aa9b
-
-Text_ReceivedOddEgg: ; 0x11aa9b
- text "ODD EGG"
- line "was received!"
- done
-; 0x11aab2
-
-Text_RegisteringRecord: ; 0x11aab2
- text "Registering your"
- line "record…"
- done
-; 0x11aacc
-
-Text_BattleRoomVisitLimit: ; 0x11aacc
- text "One visit per day"
- line "per BATTLE ROOM!"
- done
-; 0x11aaf0
-
-Text_PartyMonTopsThisLevel: ; 0x11aaf0
- text "A party #MON"
- line "tops this level."
- done
-; 0x11ab0f
-
-Text_UberRestriction: ; 0x11ab0f
- text_from_ram wcd49
- text " may go"
- line "only to BATTLE"
-
- para "ROOMS that are"
- line "Lv.70 or higher."
- done
-; 0x11ab4a
-
-Text_CancelBattleRoomChallenge: ; 0x11ab4a
- text "Cancel your BATTLE"
- line "ROOM challenge?"
- done
-; 0x11ab6e
-
-Text_ExitGymLeaderHonorRoll: ; 0x11ab6e
- text "Exit GYM LEADER"
- line "HONOR ROLL?"
- done
-; 0x11ab8b
-
-Text_LinkingWithCenter: ; 0x11ab8b
- text "Linking with the"
- line "CENTER…"
- done
-; 0x11aba5
-
-Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5
- text "What level do you"
- line "want to challenge?"
- done
-; 0x11abcb
-
-Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb
- text "Check BATTLE ROOM"
- line "list by max level?"
- done
-; 0x11abf1
-
-Text_EnterWhichBattleRoom: ; 0x11abf1
- text "Enter which"
- line "BATTLE ROOM?"
- done
-; 0x11ac0b
-
-Text_WhichBattleRoom: ; 0x11ac0b
- text "Which BATTLE ROOM?"
- done
-; 0x11ac1f
-
-Text_ThisBattleRoomPleaseWait: ; 0x11ac1f
- text_from_ram StringBuffer3
- text "'s ROOM"
- line "@"
- text_from_ram StringBuffer4
- text "?"
- cont "Please wait…"
- done
-; 0x11ac3e
-
-Function11ac3e: ; 11ac3e
- call SpeechTextBox
- call FadeToMenu
- callab ClearSpriteAnims2
- call Function11ac51
- call CloseSubmenu
- ret
-; 11ac51
-
-Function11ac51: ; 11ac51
- xor a
- ld [hBGMapMode], a
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [hMapAnims], a
- ld [wcd49], a
- ld [wcd4a], a
- ld [wcd4c], a
- ld [wcd4d], a
- ld [wcd4e], a
- call Function11ad1b
- call DelayFrame
-.loop
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_11aca8
- call Function11b314
- call Function11acb7
- call Function11ad6e
- ld a, 30 * 4
- ld [wCurrSpriteOAMAddr], a
- callba DoNextFrameForAllSprites
- callba ReloadMapPart
- jr .loop
-
-.asm_11aca8
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-; 11acb7
-
-Function11acb7: ; 11acb7
- ld hl, TilemapPack_11ba44
- ld a, [wcd49]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- add hl, bc
- decoord 6, 6
- ld a, [hli]
- ld [de], a
- decoord 0, 7
- ld bc, 7
- call CopyBytes
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, [hl]
- cp $ff
- jr nz, .get_the_other
- xor a
- ld [wcd49], a
-.get_the_other
- ld hl, TilemapPack_11bb7d
- ld a, [wcd4a]
- ld c, a
- ld b, $0
- sla c
- rl b
- sla c
- rl b
- sla c
- rl b
- add hl, bc
- decoord 3, 9
- ld bc, 7
- call CopyBytes
- ld a, [wcd4a]
- inc a
- ld [wcd4a], a
- inc hl
- ld a, [hl]
- cp $ff
- ret nz
- xor a
- ld [wcd4a], a
- ret
-; 11ad1b
-
-Function11ad1b: ; 11ad1b
- call ClearBGPalettes
- call ClearSprites
- call ClearTileMap
- callba Function17c000
- ld a, [wMenuCursorY]
- ld [wcd82], a
- dec a
- ld [hObjectStructIndexBuffer], a
- ld a, $10
- ld [wCurIconTile], a
- ld hl, LoadMenuMonIcon
- ld a, BANK(LoadMenuMonIcon)
- ld e, $4
- rst FarCall
- ld hl, LoadMenuMonIcon
- ld a, BANK(LoadMenuMonIcon)
- ld e, $5
- rst FarCall
- ld hl, $c6d0
- ld bc, $0115
- xor a
- call ByteFill
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcd30], a
- ld a, $2
- ld [wc7d4], a
- callba Pokedex_OrderMonsByMode
- ret
-; 11ad6e
-
-Function11ad6e: ; 11ad6e
- ld a, [wJumptableIndex]
- ld hl, Jumptable_11ad78
- call Function11b239
- jp hl
-; 11ad78
-
-Jumptable_11ad78: ; 11ad78
- dw Function11b082
- dw Function11b0ff
- dw Function11ad95
- dw Function11adc4
- dw Function11ae4e
- dw Function11ae98
- dw Function11ad8f
- dw Function11af04
- dw Function11af4e
-; 11ad8a
-
-Function11ad8a: ; 11ad8a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 11ad8f
-
-Function11ad8f: ; 11ad8f
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 11ad95
-
-Function11ad95: ; 11ad95
- ld hl, MenuDataHeader_11ae38
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 12, 12
- ld de, String_11ae40
- call PlaceString
- hlcoord 10, 10, AttrMap
- lb bc, 8, 8
- call Function11afd6
- callba ReloadMapPart
- call Function11ad8a
- ld a, $1
- ld [wMenuCursorY], a
- ld hl, Unknown_11afcc
- call Function11afb7
-
-Function11adc4:
- ld hl, hJoyPressed
- ld a, [hl]
- and a
- ret z
- ld a, [hl]
- and $40
- jr nz, .asm_11ade6
- ld a, [hl]
- and $80
- jr nz, .asm_11aded
- ld a, [hl]
- and $1
- jr nz, .asm_11ae06
- ld a, [hl]
- and $2
- ret z
- call PlayClickSFX
- xor a
- ld [wJumptableIndex], a
- jr .asm_11ae2e
-
-.asm_11ade6
- ld a, [wMenuCursorY]
- dec a
- ret z
- jr .asm_11adf4
-
-.asm_11aded
- ld a, [wMenuCursorY]
- inc a
- cp $4
- ret z
-
-.asm_11adf4
- push af
- ld hl, Unknown_11afcc
- call Function11afbb
- pop af
- ld [wMenuCursorY], a
- ld hl, Unknown_11afcc
- call Function11afb7
- ret
-
-.asm_11ae06
- call PlayClickSFX
- ld a, [wMenuCursorY]
- dec a
- ld hl, wcd30
- ld [hl], a
- and a
- jr z, .asm_11ae28
- hlcoord 2, 14
- ld a, [wMenuCursorY]
- cp $2
- jr z, .asm_11ae23
- call Function11b272
- jr .asm_11ae2b
-
-.asm_11ae23
- call Function11b267
- jr .asm_11ae2b
-
-.asm_11ae28
- ld a, $3
- ld [hl], a
-
-.asm_11ae2b
- call Function11ad8a
-
-.asm_11ae2e
- call ExitMenu
- callba ReloadMapPart
- ret
-; 11ae38
-
-MenuDataHeader_11ae38: ; 11ae38
- db $40 ; flags
- db 10, 10 ; start coords
- db 17, 17 ; end coords
- dw NULL
- db 0 ; default option
-; 11ae40
-
-String_11ae40: ; 11ae40
- db "どちらでも"
- next "♂ォス"
- next "♀メス"
- db "@"
-; 11ae4e
-
-Function11ae4e: ; 11ae4e
- ld hl, MenuDataHeader_11afe8
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 10, 14
- ld de, String_11aff0
- call PlaceString
- ld hl, MenuDataHeader_11b013
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 16, 8
- ld de, String_11b01b
- call PlaceString
- hlcoord 14, 7, AttrMap
- lb bc, 5, 6
- call Function11afd6
- hlcoord 9, 12, AttrMap
- lb bc, 6, 11
- call Function11afd6
- callba ReloadMapPart
- call Function11ad8a
- ld a, $1
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
-
-Function11ae98:
- ld hl, hJoyPressed
- ld a, [hl]
- and a
- ret z
- ld a, [hl]
- and D_UP
- jr nz, .asm_11aec1
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_11aec8
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_11aee1
- ld a, [hl]
- and B_BUTTON
- ret z
- call PlayClickSFX
-.asm_11aeb4
- hlcoord 2, 14
- ld a, $7f
- ld [hl], a
- ld a, $1
- ld [wJumptableIndex], a
- jr .asm_11aef7
-
-.asm_11aec1
- ld a, [wMenuCursorY]
- dec a
- ret z
- jr .asm_11aecf
-
-.asm_11aec8
- ld a, [wMenuCursorY]
- inc a
- cp $3
- ret z
-
-.asm_11aecf
- push af
- ld hl, Unknown_11afd2
- call Function11afbb
- pop af
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
- ret
-
-.asm_11aee1
- call PlayClickSFX
- ld a, [wMenuCursorY]
- cp $2
- jr z, .asm_11aeb4
- ld a, [wcd4b]
- ld [ScriptVar], a
- call Function11b022
- call Function11ad8a
-
-.asm_11aef7
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ret
-; 11af04
-
-Function11af04: ; 11af04
- ld hl, MenuDataHeader_11afe8
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 10, 14
- ld de, String_11b003
- call PlaceString
- ld hl, MenuDataHeader_11b013
- call LoadMenuDataHeader
- call MenuBox
- hlcoord 16, 8
- ld de, String_11b01b
- call PlaceString
- hlcoord 14, 7, AttrMap
- lb bc, 5, 6
- call Function11afd6
- hlcoord 9, 12, AttrMap
- lb bc, 6, 11
- call Function11afd6
- callba ReloadMapPart
- call Function11ad8a
- ld a, $2
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
-
-Function11af4e:
- ld hl, hJoyPressed
- ld a, [hl]
- and a
- ret z
- ld a, [hl]
- and D_UP
- jr nz, .asm_11af77
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_11af7e
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_11af97
- ld a, [hl]
- and B_BUTTON
- ret z
- call PlayClickSFX
-.asm_11af6a
- hlcoord 2, 14
- ld a, $7f
- ld [hl], a
- ld a, $1
- ld [wJumptableIndex], a
- jr .asm_11afaa
-
-.asm_11af77
- ld a, [wMenuCursorY]
- dec a
- ret z
- jr .asm_11af85
-
-.asm_11af7e
- ld a, [wMenuCursorY]
- inc a
- cp $3
- ret z
-
-.asm_11af85
- push af
- ld hl, Unknown_11afd2
- call Function11afbb
- pop af
- ld [wMenuCursorY], a
- ld hl, Unknown_11afd2
- call Function11afb7
- ret
-
-.asm_11af97
- call PlayClickSFX
- ld a, [wMenuCursorY]
- cp $2
- jr z, .asm_11af6a
- ld a, $6
- ld [wJumptableIndex], a
- xor a
- ld [ScriptVar], a
-
-.asm_11afaa
- call ExitMenu
- call ExitMenu
- callba ReloadMapPart
- ret
-; 11afb7
-
-Function11afb7: ; 11afb7
- ld e, $ed
- jr asm_11afbd
-
-Function11afbb:
- ld e, $7f
-
-asm_11afbd:
- ld a, [wMenuCursorY]
- dec a
- ld c, a
- ld b, 0
- add hl, bc
- add hl, bc
- ld a, e
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld [de], a
- ret
-; 11afcc
-
-Unknown_11afcc:
- dwcoord 11, 12
- dwcoord 11, 14
- dwcoord 11, 16
-
-Unknown_11afd2:
- dwcoord 15, 8
- dwcoord 15, 10
-; 11afd6
-
-Function11afd6: ; 11afd6
- ld de, SCREEN_WIDTH
- ld a, $3
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .row
- ret
-; 11afe8
-
-MenuDataHeader_11afe8: ; 11afe8
- db $40 ; flags
- db 12, 9 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 11aff0
-
-String_11aff0: ; 11aff0
- db "この じょうけんで"
- next "よろしいですか?@"
-; 11b003
-
-String_11b003: ; 11b003
- db "こうかんを"
- next "ちゅうししますか?@"
-; 11b013
-
-MenuDataHeader_11b013: ; 11b013
- db $40 ; flags
- db 7, 14 ; start coords
- db 11, 19 ; end coords
- dw NULL
- db 1 ; default option
-; 11b01b
-
-String_11b01b:
- db "はい"
- next "いいえ@"
-; 11b022
-
-Function11b022: ; 11b022
- ld a, [wcd2e]
- and a
- jr z, .asm_11b02e
- ld hl, StringBuffer3
- call Function11b03d
-
-.asm_11b02e
- ld a, [wcd30]
- and a
- ret z
- cp $3
- ret z
- ld hl, StringBuffer4
- call Function11b03d
- ret
-; 11b03d
-
-Function11b03d: ; 11b03d
- push hl
- push af
- ld c, $1
-.loop
- ld a, [hli]
- cp "♂"
- jr z, .gender
- cp "♀"
- jr z, .gender
- cp "@"
- jr z, .done
- inc c
- jr .loop
-
-.gender
- dec hl
- ld a, "@"
- ld [hli], a
-
-.done
- dec hl
- push hl
- ld e, 4
- ld d, 0
- add hl, de
- ld e, l
- ld d, h
- pop hl
-.loop2
- ld a, [hld]
- ld [de], a
- dec de
- dec c
- jr nz, .loop2
- pop af
- pop de
- cp $1
- jr nz, .female
- ld hl, .MaleString
- jr .got_string
-
-.female
- ld hl, .FemaleString
-
-.got_string
- ld bc, 4 ; string length
- call CopyBytes
- ret
-; 11b07a
-
-.MaleString: db "ォスの "
-.FemaleString: db "メスの "
-
-Function11b082: ; 11b082
- call Function11b242
- ld a, $7
- ld [wc7d3], a
- call Function11b099
- call Function11b295
- call Function11b275
- call SetPalettes
- jp Function11ad8a
-; 11b099
-
-Function11b099: ; 11b099
- ld c, $6
- hlcoord 11, 1
- ld a, [wc7d3]
- add a
- ld b, a
- xor a
- call Function11b236
- ld a, [wc7d0]
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld e, l
- ld d, h
- hlcoord 11, 2
- ld a, [wc7d3]
-.loop
- push af
- ld a, [de]
- ld [wd265], a
- push de
- push hl
- call .PlaceMonNameOrPlaceholderString
- pop hl
- ld de, 2 * SCREEN_WIDTH
- add hl, de
- pop de
- inc de
- pop af
- dec a
- jr nz, .loop
- ret
-; 11b0cf
-
-.PlaceMonNameOrPlaceholderString: ; 11b0cf
- and a
- ret z
-
- call .CheckSeenFlag
- ret c
-
- call .SetCaughtFlag
- push hl
- call GetPokemonName
- pop hl
- call PlaceString
- ret
-; 11b0e1
-
-.SetCaughtFlag: ; 11b0e1
- call CheckCaughtMemMon
- jr nz, .okay
- inc hl
- ret
-
-.okay
- ld a, $1
- ld [hli], a
- ret
-; 11b0ec
-
-.CheckSeenFlag: ; 11b0ec
- call CheckSeenMemMon
- ret nz
-
- inc hl
- ld de, .EmptySlot
- call PlaceString
- scf
- ret
-; 11b0f9
-
-.EmptySlot: ; 11b0f9
- db "ーーーーー@"
-; 11b0ff
-
-Function11b0ff: ; 11b0ff
- ld hl, hJoyPressed
- ld a, [hl]
- and $2
- jr nz, .asm_11b141
- ld a, [hl]
- and $1
- jr nz, .asm_11b131
- call Function11b175
- jr nc, .asm_11b125
- ld a, [wcd4c]
- inc a
- and $3
- ld [wcd4c], a
- xor a
- ld [hBGMapMode], a
- call Function11b099
- ld a, $1
- ld [hBGMapMode], a
- ret
-
-.asm_11b125
- ld a, [wcd4c]
- and a
- ret z
- inc a
- and $3
- ld [wcd4c], a
- ret
-
-.asm_11b131
- call Function11b20b
- call CheckSeenMemMon
- jr z, .asm_11b13d
- ld a, $1
- jr .asm_11b148
-
-.asm_11b13d
- ld a, $2
- jr .asm_11b148
-
-.asm_11b141
- ld hl, wJumptableIndex
- ld a, $7
- ld [hl], a
- ret
-
-.asm_11b148
- call PlayClickSFX
- ld [wcd4b], a
- and a
- jr z, .asm_11b16c
- ld a, [wcf65]
- cp $0
- jr z, .asm_11b163
- cp $fe
- jr z, .asm_11b167
- cp $ff
- jr z, .asm_11b16b
- jp Function11ad8a
-
-.asm_11b163
- ld a, $1
- jr .asm_11b16c
-
-.asm_11b167
- ld a, $2
- jr .asm_11b16c
-
-.asm_11b16b
- xor a
-
-.asm_11b16c
- ld [wcd30], a
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 11b175
-
-Function11b175: ; 11b175
- ld a, [wc7d3]
- ld d, a
- ld a, [wc7d2]
- ld e, a
- ld hl, hJoyLast
- ld a, [hl]
- and $40
- jr nz, .asm_11b19a
- ld a, [hl]
- and $80
- jr nz, .asm_11b1ae
- ld a, d
- cp e
- jr nc, .asm_11b1ed
- ld a, [hl]
- and $20
- jr nz, .asm_11b1c6
- ld a, [hl]
- and $10
- jr nz, .asm_11b1d8
- jr .asm_11b1ed
-
-.asm_11b19a
- ld hl, wc7d1
- ld a, [hl]
- and a
- jr z, .asm_11b1a4
- dec [hl]
- jr .asm_11b1ef
-
-.asm_11b1a4
- ld hl, wc7d0
- ld a, [hl]
- and a
- jr z, .asm_11b1ed
- dec [hl]
- jr .asm_11b1ef
-
-.asm_11b1ae
- ld hl, wc7d1
- ld a, [hl]
- inc a
- cp e
- jr nc, .asm_11b1ed
- cp d
- jr nc, .asm_11b1bc
- inc [hl]
- jr .asm_11b1ef
-
-.asm_11b1bc
- ld hl, wc7d0
- add [hl]
- cp e
- jr nc, .asm_11b1ed
- inc [hl]
- jr .asm_11b1ef
-
-.asm_11b1c6
- ld hl, wc7d0
- ld a, [hl]
- and a
- jr z, .asm_11b1ed
- cp d
- jr nc, .asm_11b1d4
- xor a
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1d4
- sub d
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1d8
- ld hl, wc7d0
- ld a, d
- add a
- add [hl]
- jr c, .asm_11b1e3
- cp e
- jr c, .asm_11b1e8
-
-.asm_11b1e3
- ld a, e
- sub d
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1e8
- ld a, [hl]
- add d
- ld [hl], a
- jr .asm_11b1ef
-
-.asm_11b1ed
- and a
- ret
-
-.asm_11b1ef
- call Function11b295
- call Function11b275
- scf
- ret
-; 11b1f7
-
-Function11b1f7: ; 11b1f7
- hlcoord 0, 0
- ld a, $32
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ret
-; 11b203
-
-Function11b203: ; 11b203
-.asm_11b203
- ld a, [de]
- cp $ff
- ret z
- inc de
- ld [hli], a
- jr .asm_11b203
-; 11b20b
-
-Function11b20b: ; 11b20b
- ld a, [wc7d1]
- ld hl, wc7d0
- add [hl]
- ld e, a
- ld d, $0
- ld hl, $c6d0
- add hl, de
- ld a, [hl]
- ld [wd265], a
- ret
-; 11b21e
-
-CheckCaughtMemMon: ; 11b21e
- push de
- push hl
- ld a, [wd265]
- dec a
- call CheckCaughtMon
- pop hl
- pop de
- ret
-; 11b22a
-
-CheckSeenMemMon: ; 11b22a
- push de
- push hl
- ld a, [wd265]
- dec a
- call CheckSeenMon
- pop hl
- pop de
- ret
-; 11b236
-
-Function11b236: ; 11b236
- jp FillBoxWithByte
-; 11b239
-
-Function11b239: ; 11b239
- ld e, a
- ld d, 0
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 11b242
-
-Function11b242: ; 11b242
- hlcoord 3, 4
- ld de, StringBuffer3
- call PlaceString
- xor a
- ld [MonType], a
- callba GetGender
- hlcoord 1, 4
- ld a, [CurPartySpecies]
- ld bc, wcd2f
- ld [bc], a
- dec bc
- jr c, asm_11b26a
- jr z, asm_11b26f
- ld a, $1
- ld [bc], a
-
-Function11b267:
- ld [hl], $ef
- ret
-
-asm_11b26a
- xor a
- ld [bc], a
- ld [hl], $7f
- ret
-
-asm_11b26f
- ld a, $2
- ld [bc], a
-
-Function11b272:
- ld [hl], $f5
- ret
-; 11b275
-
-Function11b275: ; 11b275
- call Function11b279
- ret
-; 11b279
-
-Function11b279: ; 11b279
- ld a, [wd265]
- ld [CurSpecies], a
- call CheckSeenMemMon
- jr z, .asm_11b28f
- call GetBaseData
- ld a, [BaseGender]
- ld [wcf65], a
- jr .asm_11b294
-
-.asm_11b28f
- ld a, $ff
- ld [wcf65], a
-
-.asm_11b294
- ret
-; 11b295
-
-Function11b295: ; 11b295
- hlcoord 4, 13
- ld de, String_11b308
- call PlaceString
- hlcoord 4, 14
- ld de, String_11b308
- call PlaceString
- call Function11b20b
- call CheckSeenMemMon
- jr z, .asm_11b2d1
- ld a, [$c608]
- ld c, a
- ld a, [$c608 + 1]
- ld b, a
- ld hl, $0007
- add hl, bc
- xor a
- ld [hl], a
- ld hl, $0003
- add hl, bc
- ld e, [hl]
- callba FlyFunction_GetMonIcon
- hlcoord 4, 14
- push hl
- call GetPokemonName
- jr .asm_11b2e7
-
-.asm_11b2d1
- ld a, [$c608]
- ld c, a
- ld a, [$c608 + 1]
- ld b, a
- ld hl, $0007
- add hl, bc
- ld a, $50
- ld [hl], a
- hlcoord 4, 13
- push hl
- ld de, String_11b30e
-
-.asm_11b2e7
- ld a, $6
- ld bc, StringBuffer4
-.asm_11b2ec
- push af
- ld a, [de]
- ld [bc], a
- inc de
- inc bc
- pop af
- dec a
- and a
- jr nz, .asm_11b2ec
- pop hl
- ld de, StringBuffer4
- call PlaceString
- ret
-; 11b2fe
-
-String_11b2fe: ; 11b2fe
- db "あげる#@"
-; 11b303
-
-String_11b303: ; 11b303
- db "ほしい#@"
-; 11b308
-
-String_11b308: ; 11b308
- db " @"
-; 11b30e
-
-String_11b30e: ; 11b30e
- db "みはっけん@"
-; 11b314
-
-Function11b314: ; 11b314
- call Function11b31b
- call Function11b3d9
- ret
-; 11b31b
-
-Function11b31b: ; 11b31b
- ld hl, .Coords
- ld a, [wJumptableIndex]
- cp 2
- jr c, .tilemap_1
- ld a, [wc7d1]
- cp 4
- jr nc, .tilemap_3
- cp 3
- jr c, .tilemap_1
- ld a, [wJumptableIndex]
- cp 2
- jr z, .tilemap_1
- cp 3
- jr z, .tilemap_1
- cp 6
- jr z, .tilemap_1
-
- ld bc, .Tilemap2
- jr .load_sprites
-
-.tilemap_3
- ld bc, .Tilemap3
- jr .load_sprites
-
-.tilemap_1
- ld bc, .Tilemap1
-
-.load_sprites
- call Function11b397
- ret
-; 11b350
-
-.Coords:
- dbpixel 3, 11, 2, 6 ; 0
- dbpixel 3, 12, 2, 6 ; 1
- dbpixel 3, 13, 2, 6 ; 2
- dbpixel 3, 14, 2, 6 ; 3
- dbpixel 3, 15, 2, 6 ; 4
- dbpixel 3, 16, 2, 6 ; 5
- dbpixel 3, 17, 2, 6 ; 6
- dbpixel 4, 11, 2, 6 ; 7
- dbpixel 4, 12, 2, 6 ; 8
- dbpixel 4, 13, 2, 6 ; 9
- dbpixel 4, 14, 2, 6 ; 10
- dbpixel 4, 15, 2, 6 ; 11
- dbpixel 4, 16, 2, 6 ; 12
- dbpixel 4, 17, 2, 6 ; 13
- db -1
-
-.Tilemap1: ; vtiles
- db $30 ; 0
- db $31 ; 1
- db $31 ; 2
- db $31 ; 3
- db $31 ; 4
- db $31 ; 5
- db $32 ; 6
- db $40 ; 7
- db $41 ; 8
- db $41 ; 9
- db $41 ; 10
- db $41 ; 11
- db $41 ; 12
- db $42 ; 13
-
-.Tilemap2: ; vtiles
- db $30 ; 0
- db $31 ; 1
- db $31 ; 2
- db $39 ; 3
- db $39 ; 4
- db $39 ; 5
- db $39 ; 6
- db $40 ; 7
- db $41 ; 8
- db $41 ; 9
- db $39 ; 10
- db $39 ; 11
- db $39 ; 12
- db $39 ; 13
-
-.Tilemap3: ; vtiles
- db $39 ; 0
- db $39 ; 1
- db $39 ; 2
- db $39 ; 3
- db $39 ; 4
- db $39 ; 5
- db $39 ; 6
- db $39 ; 7
- db $39 ; 8
- db $39 ; 9
- db $39 ; 10
- db $39 ; 11
- db $39 ; 12
- db $39 ; 13
-
-Function11b397: ; 11b397
- ld de, Sprites
-.loop
- ld a, [hl]
- cp $ff
- ret z
- ld a, [wc7d1]
- and $7
- swap a
- add [hl]
- inc hl ; 1
- ld [de], a
- inc de
-
- ld a, [hli] ; 2
- ld [de], a
- inc de
-
- ld a, [bc]
- inc bc
- ld [de], a
- inc de
- ld a, $5 ; OBPal 5
- ld [de], a
- inc de
- jr .loop
-; 11b3b6
-
-Function11b3b6: ; 11b3b6
-; unreferenced
-.loop
- ld a, [hl]
- cp -1
- ret z
- ld a, [wcd4d]
- and $7
- swap a
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- push hl
- ld l, c
- ld h, b
- ld a, [wcd4e]
- add [hl]
- inc bc
- ld [de], a
- inc de
- pop hl
- ld a, $5
- ld [de], a
- inc de
- jr .loop
-; 11b3d9
-
-Function11b3d9: ; 11b3d9
- ld de, Sprites + 28 * 4
- push de
- ld a, [wc7d2]
- dec a
- ld e, a
- ld a, [wc7d1]
- ld hl, wc7d0
- add [hl]
- cp e
- jr z, .skip
- ld hl, 0
- ld bc, $70
- call AddNTimes
- ld e, l
- ld d, h
- ld b, 0
- ld a, d
- or e
- jr z, .load_sprites
- ld a, [wc7d2]
- ld c, a
-.loop1
- ld a, e
- sub c
- ld e, a
- ld a, d
- sbc $0
- ld d, a
- jr c, .load_sprites
- inc b
- jr .loop1
-
-.skip
- ld b, 14 * 8
-
-.load_sprites
- ld a, 2 * 8 + 5
- add b
- pop hl
- ld [hli], a
- cp $41
- jr c, .version1
- ld a, [wJumptableIndex]
- cp 4
- jr z, .version2
- cp 5
- jr z, .version2
- cp 7
- jr z, .version2
- cp 8
- jr z, .version2
-
-.version1
- ld a, 19 * 8 + 3
- ld [hli], a
- ld a, [wcd4c]
- add $3c
- ld [hli], a
- ld a, [wcd4c]
- add $1
- ld [hl], a
- ret
-
-.version2
- ld a, 19 * 8 + 3
- ld [hli], a
- ld a, $39
- ld [hli], a
- xor a
- ld [hl], a
- ret
-; 11b444
-
-Function11b444: ; 11b444
-; special
- call Mobile46_InitJumptable
- call Mobile46_RunJumptable
- ret
-; 11b44b
-
-Mobile46_InitJumptable: ; 11b44b
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- call UpdateTime
- ret
-; 11b45c
-
-Mobile46_RunJumptable: ; 11b45c
-.loop
- call .IterateJumptable
- call DelayFrame
- ld a, [wJumptableIndex]
- cp 4
- jr nz, .loop
- ret
-; 11b46a
-
-.IterateJumptable: ; 11b46a
- jumptable .Jumptable, wJumptableIndex
-
-.Jumptable:
- dw Function11b483
- dw Function11b570
- dw Function11b5c0
- dw Function11b5e0
- dw Function11b5e7 ; unused
-; 11b483
-
-Function11b483: ; 11b483
- call .InitRAM
- ld hl, PlayerName
- ld a, $5 ; Japanese Name Length
-.loop1
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop1
-
- ld de, PARTYMON_STRUCT_LENGTH
- ld hl, PartyMon1Species
- ld a, [wcd82]
- dec a
- push af
-.loop2
- and a
- jr z, .okay
- add hl, de
- dec a
- jr .loop2
-
-.okay
- push bc
- ld a, PARTYMON_STRUCT_LENGTH
-.loop3
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop3
-
- pop de
- push bc
- ld a, [de]
- ld [CurSpecies], a
- call GetBaseData
- ld hl, MON_LEVEL
- add hl, de
- ld a, [hl]
- ld [CurPartyLevel], a
- ld hl, MON_MAXHP
- add hl, de
- push hl
- ld hl, MON_STAT_EXP - 1
- add hl, de
- pop de
- push de
- ld b, OTPARTYMON
- predef CalcPkmnStats
- pop de
- ld h, d
- ld l, e
- dec hl
- dec hl
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- pop bc
- ld de, NAME_LENGTH
- ld hl, PartyMonOT
- pop af
- push af
-.loop4
- and a
- jr z, .okay2
- add hl, de
- dec a
- jr .loop4
-
-.okay2
- ld a, NAME_LENGTH - 1
-.loop5
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop5
- ld de, NAME_LENGTH
- ld hl, PartyMonNicknames
- pop af
- push af
-.loop6
- and a
- jr z, .okay3
- add hl, de
- dec a
- jr .loop6
-
-.okay3
- ld a, NAME_LENGTH - 1
-.loop7
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop7
- ld de, MAIL_STRUCT_LENGTH
- ld hl, sPartyMail
- pop af
-.loop8
- and a
- jr z, .okay4
- add hl, de
- dec a
- jr .loop8
-
-.okay4
- ld a, $0 ; BANK(sPartyMail)
- call GetSRAMBank
- ld a, MAIL_STRUCT_LENGTH
-.loop9
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .loop9
- call CloseSRAM
- jp Function11ad8a
-
-.InitRAM:
- ld bc, $c626
- ld a, [PlayerID]
- ld [wcd2a], a
- ld [bc], a
- inc bc
-
- ld a, [PlayerID + 1]
- ld [wcd2b], a
- ld [bc], a
- inc bc
-
- ld a, [wSecretID]
- ld [wcd2c], a
- ld [bc], a
- inc bc
-
- ld a, [wSecretID + 1]
- ld [wcd2d], a
- ld [bc], a
- inc bc
-
- ld a, [wcd2e]
- ld [bc], a
- inc bc
-
- ld a, [wcd2f]
- ld [bc], a
- inc bc
-
- ld a, [wcd30]
- ld [bc], a
- inc bc
-
- ld a, [wd265]
- ld [bc], a
- inc bc
- ret
-; 11b570
-
-Function11b570: ; 11b570
- call Function118007
- ld a, [ScriptVar]
- and a
- jr nz, .exit
- call .SaveData
- jp Function11ad8a
-
-.exit
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.SaveData:
- ld a, $3
- ld [rSVBK], a
-
- ld hl, w3_d800
- ld de, $c608
- ld bc, w3_d88f - w3_d800
- call CopyBytes
-
- ld a, $1
- ld [rSVBK], a
- ld a, $5
- call GetSRAMBank
-
- ld de, $a800
- ld a, $1
- ld [de], a
- inc de
- ld hl, $c608
- ld bc, w3_d88f - w3_d800
- call CopyBytes
-
- push de
- pop hl
-
- ld a, [hRTCMinutes]
- ld [hli], a
- ld a, [hRTCHours]
- ld [hli], a
- ld a, [hRTCDayLo]
- ld [hli], a
- ld a, [hRTCDayHi]
- ld [hl], a
-
- call CloseSRAM
- ret
-; 11b5c0
-
-Function11b5c0: ; 11b5c0
- ld a, [wcd82]
- dec a
- ld [CurPartyMon], a
- xor a
- ld [wPokemonWithdrawDepositParameter], a
- callba RemoveMonFromPartyOrBox
- callba Function170807
- callba SaveAfterLinkTrade
- jp Function11ad8a
-; 11b5e0
-
-Function11b5e0: ; 11b5e0
- xor a
- ld [ScriptVar], a
- jp Function11ad8a
-; 11b5e7
-
-Function11b5e7: ; 11b5e7
- ret
-; 11b5e8
-
-Function11b5e8: ; 11b5e8
- ld a, $0
- call GetSRAMBank
- ld hl, wRTC
- ld de, $c608
- ld bc, 4
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $c608
- ld de, $b08c
- ld bc, 4
- call CopyBytes
- ld a, $2
- ld [$a800], a
- ld a, [$a81f]
- ld [wcd2a], a
- ld a, [$a820]
- ld [wcd2b], a
- ld a, [$a821]
- ld [wcd2c], a
- ld a, [$a822]
- ld [wcd2d], a
- ld a, [$a823]
- ld [wcd2e], a
- ld a, [$a824]
- ld [wcd2f], a
- ld a, [$a825]
- ld [wcd30], a
- ld a, [$a826]
- ld [wcd31], a
- call CloseSRAM
- call Mobile46_InitJumptable
- call .loop
- ret
-
-.loop
- call .RunJumptable
- call DelayFrame
- ld a, [wJumptableIndex]
- cp $1
- jr nz, .loop
- ret
-
-.RunJumptable:
- jumptable .Jumptable, wJumptableIndex
-.Jumptable:
- dw Function11b66d
- dw Function11b6b3
-; 11b66d
-
-Function11b66d: ; 11b66d
- call Function1180b8
- ld a, [ScriptVar]
- and a
- jr nz, .asm_11b6b0
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, [w3_d090]
- ld b, a
- pop af
- ld [rSVBK], a
- ld a, b
- and a
- jr z, .asm_11b691
- cp $1
- jr nz, .asm_11b6b0
- call Function11b6b4
- jr .asm_11b6b0
-
-.asm_11b691
- callba Function17081d
- ld a, [ScriptVar]
- and a
- jr z, .asm_11b6b0
- xor a
- ld [ScriptVar], a
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld a, $2
- ld [w3_d090], a
- pop af
- ld [rSVBK], a
-
-.asm_11b6b0
- jp Function11ad8a
-; 11b6b3
-
-Function11b6b3: ; 11b6b3
- ret
-; 11b6b4
-
-Function11b6b4: ; 11b6b4
- ld a, $5
- call GetSRAMBank
- ld a, [wcd30]
- ld [$c708], a
- ld a, [wcd31]
- ld [$c709], a
-
- ld a, $c708 % $100
- ld [wMobileMonSpeciesPointerBuffer], a
- ld a, $c708 / $100
- ld [wMobileMonSpeciesPointerBuffer + 1], a
-
- ld a, $c60d % $100 ; Partymon Struct
- ld [wMobileMonStructurePointerBuffer], a
- ld a, $c60d / $100
- ld [wMobileMonStructurePointerBuffer + 1], a
-
- ld a, $c63d % $100 ; OT
- ld [wMobileMonOTNamePointerBuffer], a
- ld a, $c63d / $100
- ld [wMobileMonOTNamePointerBuffer + 1], a
-
- ld a, $c642 % $100 ; Nickname
- ld [wMobileMonNicknamePointerBuffer], a
- ld a, $c642 / $100
- ld [wMobileMonNicknamePointerBuffer + 1], a
-
- ld a, $c647 % $100 ; ???
- ld [wMobileMonMailPointerBuffer], a
- ld a, $c647 / $100
- ld [wMobileMonMailPointerBuffer + 1], a
-
- ld a, $46
- ld [$c628], a
-
- ld de, $c63d
- ld c, 5
- callba CheckStringForErrors
- jr nc, .length_check_OT
- callba Mobile_CopyDefaultOTName
-
-.length_check_OT
- ld de, $c63d
- lb bc, 1, 5
- callba CheckStringContainsLessThanBNextCharacters
- jr nc, .error_check_nick
- callba Mobile_CopyDefaultOTName
-
-.error_check_nick
- ld de, $c642
- ld c, 5
- callba CheckStringForErrors
- jr nc, .length_check_nick
- callba Mobile_CopyDefaultNickname
-
-.length_check_nick
- ld de, $c642
- lb bc, 1, 5
- callba CheckStringContainsLessThanBNextCharacters
- jr nc, .error_check_mail
- callba Mobile_CopyDefaultNickname
-
-.error_check_mail
- ld de, $c647
- ld c, MAIL_MSG_LENGTH + 1
- callba CheckStringForErrors
- jr nc, .length_check_mail
- callba Mobile_CopyDefaultMail
-
-.length_check_mail
- ld de, $c647
- lb bc, 2, MAIL_MSG_LENGTH + 1
- callba CheckStringContainsLessThanBNextCharacters
- jr c, .fix_mail
- ld a, b
- cp $2
- jr nz, .mail_ok
-
-.fix_mail
- callba Mobile_CopyDefaultMail
-
-.mail_ok
- ld de, $c668
- ld c, $5
- callba CheckStringForErrors
- jr nc, .length_check_author
- callba Mobile_CopyDefaultMailAuthor
-
-.length_check_author
- ld de, $c668
- lb bc, 1, 5
- callba CheckStringContainsLessThanBNextCharacters
- jr nc, .author_okay
- callba Mobile_CopyDefaultMailAuthor
-
-.author_okay
- ld a, [$c60e]
- cp -1
- jr nz, .item_okay
- xor a
- ld [$c60e], a
-
-.item_okay
- ld a, [wcd31]
- ld [$c60d], a
- ld [CurSpecies], a
- call GetBaseData
-
- ld hl, $c60d + MON_LEVEL
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .replace_level
- ld a, [hl]
- cp MAX_LEVEL
- jr c, .done_level
- ld a, MAX_LEVEL
-.replace_level
- ld [hl], a
-.done_level
- ld [CurPartyLevel], a
-
- ld hl, $c60d + MON_STAT_EXP - 1
- ld de, $c60d + MON_MAXHP
- ld b, $1
- predef CalcPkmnStats
- ld de, $c60d + MON_MAXHP
- ld hl, $c60d + MON_HP
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- call AddMobileMonToParty
- ret
-; 11b7e5
-
-Function11b7e5: ; 11b7e5
- ld a, [$c60d] ; species
- ld [wOTTrademonSpecies], a
- ld [CurPartySpecies], a
- ld a, [wcd81]
- ld [wc74e], a
- ld hl, $c63d ; OT
- ld de, wOTTrademonOTName
- ld bc, 5
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld a, [$c60d + MON_ID] ; id
- ld [wOTTrademonID], a
- ld a, [$c60d + MON_ID + 1]
- ld [wOTTrademonID + 1], a
- ld hl, $c60d + MON_DVS ; dvs
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld bc, $c60d ; pokemon_data_start
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- call SpeechTextBox
- call FadeToMenu
- callba MobileTradeAnimation_ReceiveGetmonFromGTS
- callba Function17d1f1
- ld a, $1
- ld [wForceEvolution], a
- ld a, $2
- ld [wLinkMode], a
- callba EvolvePokemon
- xor a
- ld [wLinkMode], a
- callba SaveAfterLinkTrade
- ld a, $5
- call GetSRAMBank
- ld a, $5
- ld [$a800], a
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_11b872
- ld a, $1
- ld [de], a
-
-.asm_11b872
- call CloseSubmenu
- call RestartMapMusic
- ret
-; 11b879
-
-Function11b879: ; 11b879
- callba BattleTower_CheckSaveFileExistsAndIsYours
- ld a, [ScriptVar]
- and a
- ret z
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- ld [ScriptVar], a
- ld a, [$a890]
- ld [wcd49], a
- ld a, [$a891]
- ld [wcd4a], a
- ld a, [$a892]
- ld [wcd4b], a
- ld a, [$a893]
- ld [wcd4c], a
- call CloseSRAM
- ld a, [ScriptVar]
- and a
- ret z
- ld hl, wcd4c
- ld a, [hRTCDayHi]
- cp [hl]
- ret nz
- dec hl
- ld a, [hRTCDayLo]
- cp [hl]
- ret nz
- ld hl, wcd4a
- ld a, [hRTCHours]
- cp [hl]
- jr nc, .asm_11b8d8
- ld a, $18
- sub [hl]
- ld hl, hRTCHours
- add [hl]
- ld [wcd4c], a
- ld a, [hRTCMinutes]
- ld [wcd4b], a
- xor a
- ld [wcd4a], a
- jr .asm_11b8e2
-
-.asm_11b8d8
- ld a, [hRTCMinutes]
- ld [wcd4b], a
- ld a, [hRTCHours]
- ld [wcd4c], a
-
-.asm_11b8e2
- xor a
- ld l, a
- ld h, a
- ld b, a
- ld d, a
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld c, $3c
- call AddNTimes
- add hl, de
- push hl
- xor a
- ld l, a
- ld h, a
- ld b, a
- ld d, a
- ld a, [wcd49]
- ld e, a
- ld a, [wcd4a]
- ld c, $3c
- call AddNTimes
- add hl, de
- ld a, l
- cpl
- add $1
- ld e, a
- ld a, h
- cpl
- adc $0
- ld d, a
- pop hl
- add hl, de
- ld de, $ff88
- add hl, de
- bit 7, h
- ret z
- ld a, $2
- ld [ScriptVar], a
- ret
-; 11b920
-
-Function11b920: ; 11b920
- call Mobile46_InitJumptable
- ld a, $5
- call GetSRAMBank
- ld hl, $a81f
- ld de, $c626
- ld bc, 8
- call CopyBytes
- call CloseSRAM
- call Function118000
- ret
-; 11b93b
-
-Function11b93b: ; 11b93b
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- ld hl, $a823
- ld de, $c608
- ld bc, $008f
- call CopyBytes
- call CloseSRAM
-
- ld a, $c608 % $100
- ld [wMobileMonSpeciesPointerBuffer], a
- ld a, $c608 / $100
- ld [wMobileMonSpeciesPointerBuffer + 1], a
-
- ld a, $c611 % $100
- ld [wMobileMonStructurePointerBuffer], a
- ld a, $c611 / $100
- ld [wMobileMonStructurePointerBuffer + 1], a
-
- ld a, $c641 % $100
- ld [wMobileMonOTNamePointerBuffer], a
- ld a, $c641 / $100
- ld [wMobileMonOTNamePointerBuffer + 1], a
-
- ld a, $c646 % $100
- ld [wMobileMonNicknamePointerBuffer], a
- ld a, $c646 / $100
- ld [wMobileMonNicknamePointerBuffer + 1], a
-
- ld a, $c64b % $100
- ld [wMobileMonMailPointerBuffer], a
- ld a, $c64b / $100
- ld [wMobileMonMailPointerBuffer + 1], a
- call AddMobileMonToParty
- callba SaveAfterLinkTrade
- ret
-; 11b98f
-
-AddMobileMonToParty: ; 11b98f
- ld hl, PartyCount
- ld a, [hl]
- ld e, a
- inc [hl]
-
- ld a, [wMobileMonSpeciesPointerBuffer]
- ld l, a
- ld a, [wMobileMonSpeciesPointerBuffer + 1]
- ld h, a
- inc hl
- ld bc, PartySpecies
- ld d, e
-.loop1
- inc bc
- dec d
- jr nz, .loop1
- ld a, e
- ld [CurPartyMon], a
- ld a, [hl]
- ld [bc], a
- inc bc
- ld a, -1
- ld [bc], a
-
- ld hl, PartyMon1Species
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, e
- ld [wMobileMonSpeciesBuffer], a
-.loop2
- add hl, bc
- dec a
- and a
- jr nz, .loop2
- ld e, l
- ld d, h
- ld a, [wMobileMonStructurePointerBuffer]
- ld l, a
- ld a, [wMobileMonStructurePointerBuffer + 1]
- ld h, a
- ld bc, PARTYMON_STRUCT_LENGTH
- call CopyBytes
-
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- ld a, [wMobileMonSpeciesBuffer]
-.loop3
- add hl, bc
- dec a
- and a
- jr nz, .loop3
- ld e, l
- ld d, h
- ld a, [wMobileMonOTNamePointerBuffer]
- ld l, a
- ld a, [wMobileMonOTNamePointerBuffer + 1]
- ld h, a
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
-
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- ld a, [wMobileMonSpeciesBuffer]
-.loop4
- add hl, bc
- dec a
- and a
- jr nz, .loop4
- ld e, l
- ld d, h
- ld a, [wMobileMonNicknamePointerBuffer]
- ld l, a
- ld a, [wMobileMonNicknamePointerBuffer + 1]
- ld h, a
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
-
- ld hl, sPartyMail
- ld bc, MAIL_STRUCT_LENGTH
- ld a, [wMobileMonSpeciesBuffer]
-.loop5
- add hl, bc
- dec a
- and a
- jr nz, .loop5
- ld a, BANK(sPartyMail)
- call GetSRAMBank
- ld e, l
- ld d, h
- ld a, [wMobileMonMailPointerBuffer]
- ld l, a
- ld a, [wMobileMonMailPointerBuffer + 1]
- ld h, a
- ld bc, MAIL_STRUCT_LENGTH
- call CopyBytes
-
- call CloseSRAM
- ret
-; 11ba38
-
-Function11ba38: ; 11ba38
- callba CheckCurPartyMonFainted
- ret c
- xor a
- ld [ScriptVar], a
- ret
-; 11ba44
-
-TilemapPack_11ba44:
- db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00
- db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01
- db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02
- db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03
- db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05
- db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06
- db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08
- db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09
- db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a
- db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b
- db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c
- db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d
- db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e
- db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f
- db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10
- db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11
- db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12
- db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13
- db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14
- db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15
- db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16
- db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17
- db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18
- db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a
- db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b
- db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c
- db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d
- db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e
- db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f
- db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20
- db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21
- db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22
- db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23
- db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24
- db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25
- db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26
- db -1
-
-TilemapPack_11bb7d:
- db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00
- db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01
- db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02
- db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03
- db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04
- db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05
- db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06
- db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07
- db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08
- db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09
- db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a
- db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b
- db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c
- db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d
- db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e
- db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f
- db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10
- db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11
- db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12
- db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13
- db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14
- db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15
- db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16
- db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17
- db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18
- db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19
- db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a
- db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b
- db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c
- db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d
- db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e
- db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f
- db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20
- db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21
- db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22
- db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23
- db -1
-
-
diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm
deleted file mode 100755
index 679f04342..000000000
--- a/misc/mobile_5b.asm
+++ /dev/null
@@ -1,833 +0,0 @@
-Function16c000: ; 16c000
-; unreferenced
- ; Only for CGB
- ld a, [hCGB]
- and a
- ret z
- ; Only do this once per boot cycle
- ld a, [hFFEA]
- and a
- ret z
- ; Set some flag, preserving the old state
- ld a, [wcfbe]
- push af
- set 7, a
- ld [wcfbe], a
- ; Do stuff
- call MobileSystemSplashScreen_InitGFX ; Load GFX
- callba SetRAMStateForMobile
- callba EnableMobile
- call .RunJumptable
- callba DisableMobile
- ; Prevent this routine from running again
- ; until the next time the syatem is turned on
- xor a
- ld [hFFEA], a
- ; Restore the flag state
- pop af
- ld [wcfbe], a
- ret
-; 16c031
-
-.RunJumptable: ; 16c031
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wd002], a
- ld [wd003], a
-.loop
- call DelayFrame
- callba Function10635c
- ld a, [wd002]
- ld hl, .Jumptable
- rst JumpTable
- call Function16cb2e
- call Function16cbae
- ld a, [wd002]
- cp $ff
- jr nz, .loop
- ret
-; 16c05c
-
-.Jumptable: ; 16c05c
- dw .init
- dw Function16c0ba
- dw Function16c089
- dw Function16c09e
- dw Function16c0a8
- dw Function16c0dc
- dw Function16c0ec
- dw Function16c0ba
- dw Function16c0ca
- dw Function16c0dc
- dw Function16c0ec
- dw .quit
-; 16c074
-
-.init ; 16c074
- ld a, [wcf64]
- and a
- ret z
- ld [wd002], a
- xor a
- ld [wd003], a
- ret
-; 16c081
-
-.quit ; 16c081
- push af
- ld a, $ff
- ld [wd002], a
- pop af
- ret
-; 16c089
-
-Function16c089: ; 16c089
- ld a, $1
- ld [Buffer2], a
- ld [wd1f1], a
- xor a
- ld [hWY], a
- call Function16c0fa
- ld a, [wd002]
- ld [wcf64], a
- ret
-; 16c09e
-
-Function16c09e: ; 16c09e
- ld a, [wcf64]
- cp $4
- ret nz
- call Function16c0fa
- ret
-; 16c0a8
-
-Function16c0a8: ; 16c0a8
- xor a
- ld [Buffer2], a
- ld [wd1f1], a
- call ClearSprites
- ld a, $90
- ld [hWY], a
- call Function16c0fa
- ret
-; 16c0ba
-
-Function16c0ba: ; 16c0ba
- call Function16c943
- push af
- ld a, [wd003]
- inc a
- ld [wd003], a
- pop af
- call c, Function16c0fa
- ret
-; 16c0ca
-
-Function16c0ca: ; 16c0ca
- ld a, [wd003]
- cp $28
- push af
- ld a, [wd003]
- inc a
- ld [wd003], a
- pop af
- call z, Function16c0fa
- ret
-; 16c0dc
-
-Function16c0dc: ; 16c0dc
- call Function16ca11
- push af
- ld a, [wd003]
- inc a
- ld [wd003], a
- pop af
- call c, Function16c0fa
- ret
-; 16c0ec
-
-Function16c0ec: ; 16c0ec
- call ClearBGPalettes
- call ClearScreen
- push af
- ld a, $ff
- ld [wd002], a
- pop af
- ret
-; 16c0fa
-
-Function16c0fa: ; 16c0fa
- push af
- ld a, [wd002]
- inc a
- ld [wd002], a
- xor a
- ld [wd003], a
- pop af
- ret
-; 16c108
-
-MobileSystemSplashScreen_InitGFX: ; 16c108
- call DisableLCD
- ld hl, VTiles2
- ld de, .Tiles
- lb bc, BANK(.Tiles), $68
- call Get2bpp
- call .LoadPals
- call .LoadTileMap
- call .LoadAttrMap
- hlbgcoord 0, 0
- call Function16cc73
- call Function16cc02
- xor a
- ld [hBGMapMode], a
- call EnableLCD
- ret
-; 16c130
-
-.LoadPals: ; 16c130
- ld de, UnknBGPals
- ld hl, UnknownMobilePalettes_16c903
- ld bc, 8
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ret
-; 16c145
-
-.LoadTileMap: ; 16c145
- hlcoord 0, 0
- ld bc, 20
- xor a
- call ByteFill
- ld hl, .TileMap
- decoord 0, 1
- ld bc, $0154
- call CopyBytes
- ret
-; 16c15c
-
-.LoadAttrMap: ; 16c15c
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH
- xor a
- call ByteFill
- ld hl, .AttrMap
- decoord 0, 1, AttrMap
- ld bc, 17 * SCREEN_WIDTH
- call CopyBytes
- ret
-; 16c173
-
-.Tiles:
-INCBIN "gfx/unknown/mobile_splash.2bpp"
-
-.TileMap:
-INCBIN "gfx/unknown/mobile_splash.tilemap"
-
-.AttrMap:
-INCBIN "gfx/unknown/mobile_splash.attrmap"
-
-UnknownMobilePalettes_16c903: ; 16c903
-INCLUDE "gfx/unknown/16c903.pal"
-
-; 16c943
-
-Function16c943: ; 16c943
- ld a, [wd003]
- and a
- jr nz, .asm_16c95e
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld a, $ff
- ld bc, $0008
- ld hl, UnknBGPals
- call ByteFill
- pop af
- ld [rSVBK], a
-
-.asm_16c95e
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld e, $0
- ld a, $0
-.asm_16c969
- ld hl, UnknownMobilePalettes_16c903
- call Function16cab6
- call Function16cabb
- ld d, a
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cabb
- cp d
- jr z, .asm_16c991
- ld b, $1
-.asm_16c981
- dec a
- cp d
- jr z, .asm_16c988
- dec b
- jr nz, .asm_16c981
-
-.asm_16c988
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cadc
-
-.asm_16c991
- ld hl, UnknownMobilePalettes_16c903
- call Function16cab6
- call Function16cad8
- ld d, a
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cad8
- cp d
- jr z, .asm_16c9b9
- ld b, $1
-.asm_16c9a9
- dec a
- cp d
- jr z, .asm_16c9b0
- dec b
- jr nz, .asm_16c9a9
-
-.asm_16c9b0
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cb08
-
-.asm_16c9b9
- ld hl, UnknownMobilePalettes_16c903
- call Function16cab6
- call Function16cac4
- ld d, a
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cac4
- cp d
- jr z, .asm_16c9e1
- ld b, $1
-.asm_16c9d1
- dec a
- cp d
- jr z, .asm_16c9d8
- dec b
- jr nz, .asm_16c9d1
-
-.asm_16c9d8
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cae8
-
-.asm_16c9e1
- inc e
- inc e
- ld a, e
- cp $8
- jr nz, .asm_16c969
- callba ApplyPals
- call SetPalettes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wd003]
- cp $1f
- jr z, .asm_16ca09
- pop af
- ld [rSVBK], a
- ld e, $0
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.asm_16ca09
- pop af
- ld [rSVBK], a
- pop af
- ld [rSVBK], a
- scf
- ret
-; 16ca11
-
-Function16ca11: ; 16ca11
- ld a, [wd003]
- and a
- jr nz, .asm_16ca1d
- callba ApplyPals
-
-.asm_16ca1d
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld e, $0
- ld a, $0
-.asm_16ca28
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cabb
- cp $1f
- jr z, .asm_16ca48
- ld b, $1
-.asm_16ca37
- inc a
- cp $1f
- jr z, .asm_16ca3f
- dec b
- jr nz, .asm_16ca37
-
-.asm_16ca3f
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cadc
-
-.asm_16ca48
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cad8
- cp $1f
- jr z, .asm_16ca68
- ld b, $1
-.asm_16ca57
- inc a
- cp $1f
- jr z, .asm_16ca5f
- dec b
- jr nz, .asm_16ca57
-
-.asm_16ca5f
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cb08
-
-.asm_16ca68
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cac4
- cp $1f
- jr z, .asm_16ca88
- ld b, $1
-.asm_16ca77
- inc a
- cp $1f
- jr z, .asm_16ca7f
- dec b
- jr nz, .asm_16ca77
-
-.asm_16ca7f
- ld hl, UnknBGPals
- call Function16cab6
- call Function16cae8
-
-.asm_16ca88
- inc e
- inc e
- ld a, e
- cp $8
- jr nz, .asm_16ca28
- callba ApplyPals
- call SetPalettes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [wd003]
- cp $1f
- jr z, .asm_16caae
- pop af
- ld [rSVBK], a
- pop af
- ld [rSVBK], a
- and a
- ret
-
-.asm_16caae
- pop af
- ld [rSVBK], a
- pop af
- ld [rSVBK], a
- scf
- ret
-; 16cab6
-
-Function16cab6: ; 16cab6
- ld b, $0
- ld c, e
- add hl, bc
- ret
-; 16cabb
-
-Function16cabb: ; 16cabb
- inc hl
- ld a, [hl]
- srl a
- srl a
- and $1f
- ret
-; 16cac4
-
-Function16cac4: ; 16cac4
- inc hl
- ld a, [hld]
- and $3
- ld b, a
- ld a, [hl]
- sla a
- rl b
- sla a
- rl b
- sla a
- rl b
- ld a, b
- ret
-; 16cad8
-
-Function16cad8: ; 16cad8
- ld a, [hl]
- and $1f
- ret
-; 16cadc
-
-Function16cadc: ; 16cadc
- sla a
- sla a
- ld b, a
- inc hl
- ld a, [hl]
- and $83
- or b
- ld [hl], a
- ret
-; 16cae8
-
-Function16cae8: ; 16cae8
- ld c, a
- srl a
- srl a
- srl a
- ld b, a
- inc hl
- ld a, [hl]
- and $fc
- or b
- ld [hld], a
- ld a, c
- sla a
- sla a
- sla a
- sla a
- sla a
- ld b, a
- ld a, [hl]
- and $1f
- or b
- ld [hl], a
- ret
-; 16cb08
-
-Function16cb08: ; 16cb08
- ld b, a
- ld a, [hl]
- and $e0
- or b
- ld [hl], a
- ret
-; 16cb0f
-
-Function16cb0f: ; 16cb0f
- xor a
- ld [Buffer1], a
- ld [Buffer2], a
- xor a
- ld [wd1ec], a
- ld a, $70
- ld [wd1ee], a
- ld a, $4
- ld [wd1ed], a
- ld a, $a0
- ld [wd1ef], a
- xor a
- ld [wd1f0], a
- ret
-; 16cb2e
-
-Function16cb2e: ; 16cb2e
- ld a, [Buffer2]
- and a
- ret z
- call Function16cb40
- ld hl, Unknown_16cb86
- ld de, Sprites
- call Function16cb5d
- ret
-; 16cb40
-
-Function16cb40: ; 16cb40
- ld hl, wd1ec
- inc [hl]
- ld a, [hl]
- cp $18
- ret c
- xor a
- ld [hl], a
- ld a, [wd1ef]
- cp $a0
- jr nz, .asm_16cb57
- ld a, $a7
- ld [wd1ef], a
- ret
-
-.asm_16cb57
- ld a, $a0
- ld [wd1ef], a
- ret
-; 16cb5d
-
-Function16cb5d: ; 16cb5d
- ld a, [hli]
- and a
- ret z
-.asm_16cb60
- push af
- ld a, [wd1ee]
- add [hl]
- add $10
- ld [de], a
- inc hl
- inc de
- ld a, [wd1ed]
- add [hl]
- add $8
- ld [de], a
- inc hl
- inc de
- ld a, [wd1ef]
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [wd1f0]
- or [hl]
- ld [de], a
- inc hl
- inc de
- pop af
- dec a
- jr nz, .asm_16cb60
- ret
-; 16cb86
-
-Unknown_16cb86:
- db 7
- db 0, 0, 0, 1
- db 8, 0, 1, 1
- db 8, 8, 2, 0
- db 8, 16, 3, 0
- db 16, 0, 4, 1
- db 16, 8, 5, 0
- db 16, 16, 6, 0
-; 16cba3
-
-Function16cba3: ; 16cba3
- xor a
- ld [wd1f1], a
- ld [wd1f2], a
- ld [wd1f3], a
- ret
-; 16cbae
-
-Function16cbae: ; 16cbae
- ld a, [wd1f1]
- and a
- ret z
- call Function16cbba
- call Function16cbd1
- ret
-; 16cbba
-
-Function16cbba: ; 16cbba
- ld hl, wd1f2
- inc [hl]
- ld a, [hl]
- cp $c
- ret c
- xor a
- ld [hl], a
- ld a, [wd1f3]
- inc a
- cp $4
- jr c, .asm_16cbcd
- xor a
-
-.asm_16cbcd
- ld [wd1f3], a
- ret
-; 16cbd1
-
-Function16cbd1: ; 16cbd1
- ld a, [wd1f3]
- ld c, a
- ld b, 0
- ld hl, Unknown_16cbfb
- add hl, bc
- ld a, [hl]
- ld bc, 2
- ld hl, Unknown_16cfa3
- call AddNTimes
- ld de, UnknBGPals + 1 palettes + 4
- ld bc, 2
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 16cbfb
-
-Unknown_16cbfb:
- db 0, 1, 2, 1, 0, 1, 2
-; 16cc02
-
-Function16cc02: ; 16cc02
- call Function16cc18
- call Function16cc49
- call Function16cc62
- call Function16cc25
- call Function16cc6e
- call Function16cb0f
- call Function16cba3
- ret
-; 16cc18
-
-Function16cc18: ; 16cc18
- ld hl, VTiles1
- ld de, GFX_16cca3
- lb bc, BANK(GFX_16cca3), $2e
- call Get2bpp
- ret
-; 16cc25
-
-Function16cc25: ; 16cc25
- ld hl, Unknown_16cfa9
- ld de, UnknBGPals + 1 palettes
- call .CopyPal
- ld hl, Unknown_16cfb1
- ld de, UnknOBPals
- call .CopyPal
- ld hl, Unknown_16cfb9
- ld de, UnknOBPals + 1 palettes
- call .CopyPal
- ret
-; 16cc41
-
-.CopyPal: ; 16cc41
- ld bc, 1 palettes
- ld a, $5
- jp FarCopyWRAM
-; 16cc49
-
-Function16cc49: ; 16cc49
- hlcoord 4, 15
- ld a, $80
- call Function16cc5a
- hlcoord 4, 16
- ld a, $90
- call Function16cc5a
- ret
-; 16cc5a
-
-Function16cc5a: ; 16cc5a
- ld c, $10
-.asm_16cc5c
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_16cc5c
- ret
-; 16cc62
-
-Function16cc62: ; 16cc62
- hlcoord 0, 15, AttrMap
- ld bc, $0028
- ld a, $1
- call ByteFill
- ret
-; 16cc6e
-
-Function16cc6e: ; 16cc6e
- hlbgcoord 0, 0, VBGMap1
- jr Function16cc73
-
-Function16cc73:
- ld a, [rVBK]
- push af
- ld a, $0
- ld [rVBK], a
- push hl
- decoord 0, 0
- call Function16cc90
- pop hl
- ld a, $1
- ld [rVBK], a
- decoord 0, 0, AttrMap
- call Function16cc90
- pop af
- ld [rVBK], a
- ret
-; 16cc90
-
-Function16cc90: ; 16cc90
- ld bc, $1214
-.asm_16cc93
- push bc
-.asm_16cc94
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_16cc94
- ld bc, $000c
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_16cc93
- ret
-; 16cca3
-
-GFX_16cca3:
-INCBIN "gfx/unknown/16cca3.2bpp"
-
-Unknown_16cfa3:
- RGB 31, 31, 31
- RGB 25, 27, 29
- RGB 16, 19, 25
-
-Unknown_16cfa9:
- RGB 31, 31, 31
- RGB 25, 27, 29
- RGB 31, 31, 31
- RGB 07, 07, 07
-
-
-Unknown_16cfb1:
- RGB 31, 31, 31
- RGB 13, 09, 18
- RGB 26, 21, 16
- RGB 07, 07, 07
-
-
-Unknown_16cfb9:
- RGB 31, 31, 31
- RGB 18, 05, 02
- RGB 27, 11, 12
- RGB 07, 07, 07
-
-; 16cfc1
diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm
deleted file mode 100755
index 5b7418a0f..000000000
--- a/misc/mobile_5c.asm
+++ /dev/null
@@ -1,944 +0,0 @@
-Function170000: ; 170000
- ld a, [$c62b]
- ld [wPlayerTrademonSpecies], a
- ld hl, $c62e
- ld de, wPlayerTrademonSenderName
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $c663
- ld de, wPlayerTrademonOTName
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $c648
- ld a, [hli]
- ld [wPlayerTrademonDVs], a
- ld a, [hl]
- ld [wPlayerTrademonDVs + 1], a
- ld hl, $c639
- ld a, [hli]
- ld [wPlayerTrademonID], a
- ld a, [hl]
- ld [wPlayerTrademonID + 1], a
- ld bc, $c633
- callba GetCaughtGender
- ld a, c
- ld [wPlayerTrademonCaughtData], a
- ld a, [wcd81]
- ld [wc74e], a
- ld hl, $c608
- ld de, $d800
- ld bc, $008f
- call CopyBytes
- ret
-
-; 17005a
-
-Function17005a: ; 17005a
- ld a, $5
- call GetSRAMBank
- ld a, [$a824]
- ld [wOTTrademonSpecies], a
- ld hl, $a827
- ld de, wOTTrademonSenderName
- ld bc, 5 ; Japanese Name Length
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld hl, $a85c
- ld de, wOTTrademonOTName
- ld bc, 5 ; Japanese Name Length
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld hl, $a841
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld hl, $a832
- ld a, [hli]
- ld [wOTTrademonID], a
- ld a, [hl]
- ld [wOTTrademonID + 1], a
- ld bc, $a82c
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- ld a, [wcd81]
- ld [wc74e], a
- call CloseSRAM
- ret
-
-; 1700b0
-
-INCLUDE "misc/battle_tower_5c.asm"
-
-Function170be4: ; 170be4
- ld a, $5
- call GetSRAMBank
- xor a
- ld hl, $a894
- ld bc, $0008
- call ByteFill
- call CloseSRAM
- ret
-
-; 170bf7
-
-Clears5_a89a: ; 170bf7
- ld a, $5
- call GetSRAMBank
- ld hl, $a89a
- xor a
- ld [hli], a
- ld [hl], a
- call CloseSRAM
- ret
-
-; 170c06
-
-Function170c06: ; 170c06
- ld a, $5
- call GetSRAMBank
- ld hl, $a894
- ld a, [wBattleResult]
- and a
- jr nz, .asm_170c15
- inc [hl]
-
-.asm_170c15
- inc hl
- inc hl
- ld a, [$a89b]
- add [hl]
- ld [hld], a
- ld a, [$a89a]
- adc [hl]
- ld [hli], a
- jr nc, .asm_170c27
- ld a, $ff
- ld [hld], a
- ld [hli], a
-
-.asm_170c27
- inc hl
- push hl
- ld de, 0
- xor a
- ld [wd265], a
-.asm_170c30
- ld hl, PartyMon1HP
- ld a, [wd265]
- call GetPartyLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
- inc hl
- inc hl
- ld a, [hld]
- sub c
- ld c, a
- ld a, [hl]
- sbc b
- ld b, a
- push de
- pop hl
- add hl, bc
- push hl
- pop de
- jr c, .asm_170c58
- ld a, [wd265]
- inc a
- ld [wd265], a
- cp $3
- jr c, .asm_170c30
- jr .asm_170c5b
-
-.asm_170c58
- ld de, -1
-
-.asm_170c5b
- pop hl
- inc hl
- ld a, e
- add [hl]
- ld [hld], a
- ld a, d
- adc [hl]
- ld [hli], a
- jr nc, .asm_170c69
- ld a, $ff
- ld [hld], a
- ld [hli], a
-
-.asm_170c69
- inc hl
- push hl
- ld b, $0
- ld c, $0
-.asm_170c6f
- ld hl, PartyMon1HP
- ld a, b
- push bc
- call GetPartyLocation
- pop bc
- ld a, [hli]
- or [hl]
- jr nz, .asm_170c7d
- inc c
-
-.asm_170c7d
- inc b
- ld a, b
- cp $3
- jr c, .asm_170c6f
- pop hl
- ld a, [hl]
- add c
- ld [hl], a
- call CloseSRAM
- ret
-
-; 170c8b
-
-Function170c8b: ; 170c8b
- ld hl, LastEnemyCounterMove
- ld b, $5
-.asm_170c90
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec b
- jr nz, .asm_170c90
- ret
-
-; 170c98
-
-CheckBTMonMovesForErrors: ; 170c98
- ld c, BATTLETOWER_NROFPKMNS
- ld hl, wBT_OTTempPkmn1Moves
-.loop
- push hl
- ld a, [hl]
- cp NUM_ATTACKS + 1
- jr c, .okay
- ld a, POUND
- ld [hl], a
-
-.okay
- inc hl
- ld b, NUM_MOVES - 1
-.loop2
- ld a, [hl]
- and a
- jr z, .loop3
- cp NUM_ATTACKS + 1
- jr c, .next
-
-.loop3
- xor a
- ld [hl], a
- inc hl
- dec b
- jr nz, .loop3
- jr .done
-
-.next
- inc hl
- dec b
- jr nz, .loop2
-
-.done
- pop hl
- ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
- add hl, de
- dec c
- jr nz, .loop
- ret
-
-; 170cc6
-
-Function170cc6: ; 170cc6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, LZ_170d16
- ld de, wDecompressScratch
- call Decompress
- ld a, $1
- ld [rVBK], a
- ld de, wd000
- ld hl, VTiles0
- lb bc, $6, $c1
- call Get2bpp
- xor a
- ld [rVBK], a
- ld hl, LZ_1715a4
- ld de, wd000
- call Decompress
- ld de, UnknBGPals
- ld hl, VTiles0
- lb bc, $6, $53
- call Get2bpp
- pop af
- ld [rSVBK], a
- ret
-
-; 170d02
-
-Function170d02: ; 170d02
- ld a, $1
- ld [rVBK], a
- ld de, GFX_171848
- ld hl, VTiles1 tile $41
- lb bc, BANK(GFX_171848), $18
- call Get2bpp
- xor a
- ld [rVBK], a
- ret
-
-; 170d16
-
-LZ_170d16:
-INCBIN "gfx/unknown/pichu_animated.2bpp.lz"
-
-LZ_1715a4:
-INCBIN "gfx/unknown/egg_animated.2bpp.lz"
-
-GFX_171848:
-INCBIN "gfx/unknown/171848.2bpp"
-
-Function1719c8: ; 1719c8 (5c:59c8)
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function1719d6
- pop af
- ld [hInMenu], a
- ret
-
-Function1719d6: ; 1719d6 (5c:59d6)
- callba BattleTowerRoomMenu_InitRAM
- call Function1719ed
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Function171a11
- pop af
- ld [rSVBK], a
- ret
-
-Function1719ed: ; 1719ed (5c:59ed)
- xor a
- ld [wcd49], a
- ld [wcd4a], a
- dec a
- ld [wcd4b], a
- call ClearBGPalettes
- call ClearSprites
- callba Function171d2b
- callba ReloadMapPart
- callba ClearSpriteAnims
- ret
-
-Function171a11: ; 171a11 (5c:5a11)
-.loop
- call JoyTextDelay
- ld a, [wcd49]
- bit 7, a
- jr nz, .done
- call Function171a36
- callba PlaySpriteAnimations
- callba ReloadMapPart
- jr .loop
-.done
- callba ClearSpriteAnims
- call ClearSprites
- ret
-
-Function171a36: ; 171a36 (5c:5a36)
- ld a, [wcd49]
- ld e, a
- ld d, 0
- ld hl, Jumptable_171a45
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-Jumptable_171a45: ; 171a45 (5c:5a45)
- dw Function171a95
- dw Function171ac9
- dw Function171a5d
- dw Function171ad7
- dw Function171a5d
- dw Function171aec
- dw Function171b4b
- dw Function171b85
- dw Function171bcc
- dw Function171c2c
- dw Function171c39
- dw Function171c41
-
-
-Function171a5d: ; 171a5d (5c:5a5d)
- ld a, [wc821]
- bit 1, a
- jr nz, .asm_171a6a
- bit 0, a
- ret nz
- jp Function171c66
-
-.asm_171a6a
- ld a, $0
- call Function3e32
- ld [wc300], a
- ld a, l
- ld [wc301], a
- ld a, h
- ld [wc302], a
- ld a, $a
- call Function3e32
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba BattleTowerRoomMenu_Cleanup
- pop af
- ld [rSVBK], a
- ld a, $a
- ld [wcd49], a
- ret
-
-Function171a95: ; 171a95 (5c:5a95)
- callba Function171ccd
- hlcoord 2, 8
- ld de, String_171aa7
- call PlaceString
- jp Function171c66
-
-; 171aa7 (5c:5aa7)
-
-String_171aa7: ; 171aa7
- db "モバイルアダプタに"
- next "せつぞく しています"
- next "しばらく おまちください"
- db "@"
-; 171ac9
-
-Function171ac9: ; 171ac9 (5c:5ac9)
- ld de, wcd81
- ld hl, $5c
- ld a, $2
- call Function3e32
- jp Function171c66
-
-Function171ad7: ; 171ad7 (5c:5ad7)
- xor a
- ld hl, $c608
- ld bc, $66
- call ByteFill
- ld de, $c608
- ld a, $c
- call Function3e32
- jp Function171c66
-
-Function171aec: ; 171aec (5c:5aec)
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba BattleTowerRoomMenu_Cleanup
- pop af
- ld [rSVBK], a
- hlcoord 2, 6
- ld a, $8
-.asm_171b01
- push af
- push hl
- xor a
- ld bc, $10
- call ByteFill
- pop hl
- ld de, $14
- add hl, de
- pop af
- dec a
- jr nz, .asm_171b01
- hlcoord 2, 7
- ld a, $3
- ld de, $c608
-.asm_171b1b
- push af
- push hl
- ld a, [de]
- and a
- jr z, .asm_171b34
- ld a, [wcd4b]
- inc a
- ld [wcd4b], a
- push hl
- call Function171b42
- pop hl
- ld bc, $ffec
- add hl, bc
- call Function171b42
-.asm_171b34
- pop hl
- ld bc, $14
- add hl, bc
- add hl, bc
- add hl, bc
- pop af
- dec a
- jr nz, .asm_171b1b
- jp Function171c66
-
-Function171b42: ; 171b42 (5c:5b42)
- ld a, [de]
- inc de
- and a
- ret z
- sub $20
- ld [hli], a
- jr Function171b42
-
-Function171b4b: ; 171b4b (5c:5b4b)
- depixel 8, 2
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $8
- ld [hl], a
-
- depixel 8, 19
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $9
- ld [hl], a
-
- depixel 17, 14, 2, 0
- ld a, SPRITE_ANIM_INDEX_1D
- call _InitSpriteAnimStruct
- ld hl, SPRITEANIMSTRUCT_0C
- add hl, bc
- ld a, $a
- ld [hl], a
-
- ld a, $4
- ld [wcd23], a
- ld a, $8
- ld [wcd24], a
- jp Function171c66
-
-Function171b85: ; 171b85 (5c:5b85)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and $2
- jp nz, Function171b9f
- ld a, [hl]
- and $1
- jp nz, Function171bbd
- ld a, [hl]
- and $40
- jr nz, asm_171ba5
- ld a, [hl]
- and $80
- jr nz, asm_171baf
- ret
-
-Function171b9f: ; 171b9f (5c:5b9f)
- ld a, $80
- ld [wcd49], a
- ret
-
-asm_171ba5: ; 171ba5 (5c:5ba5)
- ld a, [wcd4a]
- and a
- ret z
- dec a
- ld [wcd4a], a
- ret
-
-asm_171baf: ; 171baf (5c:5baf)
- ld a, [wcd4b]
- ld c, a
- ld a, [wcd4a]
- cp c
- ret z
- inc a
- ld [wcd4a], a
- ret
-
-Function171bbd: ; 171bbd (5c:5bbd)
- call PlayClickSFX
- ld a, $8
- ld [wcd23], a
- xor a
- ld [wcd24], a
- jp Function171c66
-
-Function171bcc: ; 171bcc (5c:5bcc)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and $2
- jp nz, Function171bdc
- ld a, [hl]
- and $1
- jp nz, Function171beb
- ret
-
-Function171bdc: ; 171bdc (5c:5bdc)
- ld a, $4
- ld [wcd23], a
- ld a, $8
- ld [wcd24], a
- ld hl, wcd49
- dec [hl]
- ret
-
-Function171beb: ; 171beb (5c:5beb)
- ld a, $5
- call GetSRAMBank
- ld a, [wcd4a]
- ld [$aa4a], a
- call CloseSRAM
- ld hl, MenuDataHeader_171c6b
- call LoadMenuDataHeader
- call MenuBox
- call MenuBoxCoord2Tile
- callba ReloadMapPart
- hlcoord 1, 14
- ld de, String_171c73
- call PlaceString
- ld a, [wcd4a]
- cp $2
- jr z, .asm_171c1f
- ld a, $8
- jr .asm_171c21
-.asm_171c1f
- ld a, $c
-.asm_171c21
- ld [wcd24], a
- ld a, $1e
- ld [wcd4c], a
- call Function171c66
-
-Function171c2c: ; 171c2c (5c:5c2c)
- ld hl, wcd4c
- dec [hl]
- ret nz
- call ExitMenu
- call ClearBGPalettes
- jr asm_171c60
-
-Function171c39: ; 171c39 (5c:5c39)
- ld a, $28
- ld [wcd4c], a
- call Function171c66
-
-Function171c41: ; 171c41 (5c:5c41)
- ld hl, wcd4c
- dec [hl]
- ret nz
- call ClearBGPalettes
- callba MobileFunc_106462
- callba Function106464
- ld a, $2
- ld [wc303], a
- callba DisplayMobileError
-asm_171c60: ; 171c60 (5c:5c60)
- ld a, $80
- ld [wcd49], a
- ret
-
-Function171c66: ; 171c66 (5c:5c66)
- ld hl, wcd49
- inc [hl]
- ret
-
-; 171c6b (5c:5c6b)
-
-MenuDataHeader_171c6b: ; 171c6b
- db $40 ; flags
- db 12, 0 ; start coords
- db 17, 19 ; end coords
- dw NULL
- db 0 ; default option
-; 171c73
-
-String_171c73: ; 171c73
- db "モバイルセンターを けってい"
- next "しました@"
-; 171c87
-
-Function171c87: ; 171c87 (5c:5c87)
- call DisableLCD
- ld hl, GFX_171db1
- ld de, VTiles2 tile $00
- ld bc, $6e0
- call CopyBytes
- ld hl, LZ_172abd
- ld de, VTiles0 tile $00
- call Decompress
- call EnableLCD
- ld hl, Tilemap_172491
- decoord 0, 0
- ld bc, $168
- call CopyBytes
- ld hl, Attrmap_1727ed
- decoord 0, 0, AttrMap
- ld bc, $168
- call CopyBytes
- hlcoord 3, 2
- ld de, String_172e31
- call PlaceString
- hlcoord 3, 16
- ld de, String_172e3f
- call PlaceString
- ret
-
-Function171ccd: ; 171ccd (5c:5ccd)
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_171d71
- ld de, UnknBGPals
- ld bc, $40
- call CopyBytes
- ld hl, EngineBuffer5
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hl], a
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-
-Function171cf0: ; 171cf0 (5c:5cf0)
- xor a
- hlcoord 4, 15
- ld [hli], a
- ld [hli], a
- ld a, [wcd4b]
- xor $1
- ld [wcd4b], a
- and a
- jr nz, .asm_171d16
- ld hl, Tilemap_17251d
- decoord 0, 7
- ld bc, $8c
- call CopyBytes
- hlcoord 3, 16
- ld de, String_172e3f
- jp PlaceString
-
-.asm_171d16
- ld hl, Tilemap_1725f9
- decoord 0, 7
- ld bc, $8c
- call CopyBytes
- hlcoord 3, 16
- ld de, String_172e4e
- jp PlaceString
-
-Function171d2b: ; 171d2b (5c:5d2b)
- call DisableLCD
- ld hl, GFX_171db1
- ld de, VTiles2 tile $00
- ld bc, $6e0
- call CopyBytes
- ld hl, LZ_172abd
- ld de, VTiles0 tile $00
- call Decompress
- call EnableLCD
- ld hl, Tilemap_172685
- decoord 0, 0
- ld bc, $168
- call CopyBytes
- ld hl, Attrmap_172955
- decoord 0, 0, AttrMap
- ld bc, $168
- call CopyBytes
- hlcoord 2, 2
- ld de, String_172e5d
- call PlaceString
- hlcoord 14, 16
- ld de, String_172e58
- call PlaceString
- ret
-
-; 171d71 (5c:5d71)
-
-Palette_171d71:
- RGB 0, 0, 0
- RGB 3, 0, 0
- RGB 5, 0, 0
- RGB 31, 31, 29
- RGB 0, 2, 10
- RGB 2, 10, 21
- RGB 0, 0, 0
- RGB 10, 26, 31
- RGB 0, 0, 0
- RGB 0, 7, 8
- RGB 31, 8, 0
- RGB 1, 17, 15
- RGB 31, 16, 0
- RGB 31, 22, 0
- RGB 31, 27, 0
- RGB 31, 31, 0
- RGB 31, 18, 6
- RGB 0, 3, 0
- RGB 0, 9, 0
- RGB 0, 12, 0
- RGB 0, 16, 0
- RGB 0, 22, 0
- RGB 0, 25, 0
- RGB 0, 27, 0
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 29
- RGB 21, 21, 20
- RGB 11, 11, 10
- RGB 0, 0, 0
-
-GFX_171db1:
-INCBIN "gfx/unknown/ascii_font.2bpp"
-Tilemap_172491:
-INCBIN "gfx/unknown/172491.tilemap"
-Tilemap_17251d:
-INCBIN "gfx/unknown/17251d.tilemap"
-Tilemap_1725f9:
-INCBIN "gfx/unknown/1725f9.tilemap"
-Tilemap_172685:
-INCBIN "gfx/unknown/172685.tilemap"
-Attrmap_1727ed:
-INCBIN "gfx/unknown/1727ed.attrmap"
-Attrmap_172955:
-INCBIN "gfx/unknown/172955.attrmap"
-LZ_172abd:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-
-String_172e31: ; 172e31
- db "パスワード", $1f, "いれてください@"
-String_172e3f: ; 172e3f
- db "きりかえ やめる けってい@"
-String_172e4e: ; 172e4e
- db "きりかえ やめる "
-String_172e58:
- db "けってい@"
-String_172e5d: ; 172e5d
- db "せつぞくする モバイルセンターを"
- next "えらんで ください@"
-; 172e78
-
-
-Function172e78: ; 172e78 (5c:6e78)
- ld a, $7f
- hlcoord 0, 0
- ld bc, $168
- call ByteFill
- ld a, $7
- hlcoord 0, 0, AttrMap
- ld bc, $168
- call ByteFill
- call DisableLCD
- ld hl, GameBoyN64GFX
- ld de, VTiles2 tile $00
- ld bc, $610
- call CopyBytes
- call EnableLCD
- ld hl, Tilemap_1733af
- decoord 0, 0
- ld bc, $168
- call CopyBytes
- ld hl, Attrmap_173517
- decoord 0, 0, AttrMap
- ld bc, $168
- call CopyBytes
- ret
-
-; 172eb9 (5c:6eb9)
-
-Function172eb9:
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_172edf
- ld de, UnknBGPals
- ld bc, $40
- call CopyBytes
- ld hl, Palette_172edf
- ld de, BGPals
- ld bc, $40
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-
-; 172edf (5c:6edf)
-
-Palette_172edf:
- RGB 5, 12, 17
- RGB 31, 31, 31
- RGB 18, 25, 28
- RGB 10, 17, 21
- RGB 6, 13, 18
- RGB 31, 31, 31
- RGB 20, 26, 28
- RGB 12, 19, 23
- RGB 3, 10, 16
- RGB 31, 31, 31
- RGB 6, 13, 18
- RGB 20, 26, 28
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-GameBoyN64GFX:
-INCBIN "gfx/trade/game_boy_n64.2bpp"
-
-Tilemap_1733af:
-IF DEF(CRYSTAL11)
-INCBIN "gfx/unknown/1733af_corrupt.tilemap"
-ELSE
-INCBIN "gfx/unknown/1733af.tilemap"
-ENDC
-
-Attrmap_173517:
-INCBIN "gfx/unknown/173517.attrmap"
diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm
deleted file mode 100644
index 816e23394..000000000
--- a/misc/mobile_5f.asm
+++ /dev/null
@@ -1,5310 +0,0 @@
-
-SECTION "bank5F", ROMX
-
-Function17c000: ; 17c000
-
- call DisableLCD
-
- ld hl, VTiles2
- ld bc, $31 tiles
- xor a
- call ByteFill
-
- call LoadStandardFont
- call LoadFontsExtra
-
- ld hl, HaveWantMap
- decoord 0, 0
- bccoord 0, 0, AttrMap
-
- ld a, SCREEN_HEIGHT
-.y
- push af
- ld a, SCREEN_WIDTH
-
- push hl
-.x
- push af
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .x
- pop hl
-
- push bc
- ld bc, BG_MAP_WIDTH * 2
- add hl, bc
- pop bc
-
- pop af
- dec a
- jr nz, .y
-
- ld a, [rSVBK]
- push af
-
- ld a, 5 ; BANK(UnknBGPals)
- ld [rSVBK], a
-
- ld hl, HaveWantPals
- ld de, UnknBGPals
- ld bc, $80
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- ld hl, MobileSelectGFX
- ld de, VTiles0 tile $30
- ld bc, $20 tiles
- call CopyBytes
-
- ld a, 1
- ld [rVBK], a
-
- ld hl, HaveWantGFX
- ld de, VTiles2
- ld bc, $80 tiles
- call CopyBytes
-
- ld hl, HaveWantGFX + $800
- ld de, VTiles1
- ld bc, $10 tiles
- call CopyBytes
-
- xor a
- ld [rVBK], a
-
- call EnableLCD
- callba ReloadMapPart
- ret
-; 17c083
-
-HaveWantGFX: ; 17c083
-INCBIN "gfx/mobile/havewant.2bpp"
-
-MobileSelectGFX: ; 17c983
-INCBIN "gfx/mobile/select.2bpp"
-
-HaveWantMap: ; 17cb83
-; Interleaved tile/palette map.
-INCBIN "gfx/mobile/havewant_map.bin"
-
-HaveWantPals: ; 17cff3
-; BG and OBJ palettes.
- RGB 0, 0, 0
- RGB 21, 21, 21
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 4, 17, 29
- RGB 6, 19, 31
- RGB 31, 31, 31
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 2, 13, 18
- RGB 6, 19, 31
- RGB 31, 31, 31
-
- RGB 0, 0, 0
- RGB 31, 5, 5
- RGB 29, 21, 21
- RGB 31, 31, 31
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 4, 17, 29
- RGB 6, 19, 31
- RGB 2, 15, 27
-
- RGB 0, 0, 0
- RGB 28, 19, 18
- RGB 25, 9, 0
- RGB 0, 0, 0
-
- RGB 0, 0, 0
- RGB 31, 27, 27
- RGB 31, 10, 4
- RGB 29, 0, 0
-
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 26, 8, 23
- RGB 22, 0, 16
-
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 8, 31
- RGB 15, 1, 26
-
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 17, 12, 31
- RGB 12, 6, 31
-
- RGB 0, 16, 0
- RGB 11, 11, 14
- RGB 5, 5, 7
- RGB 31, 31, 31
-
- RGB 0, 31, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
- RGB 16, 31, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
- RGB 0, 0, 0
-
-
-CheckStringForErrors: ; 17d073
-; Valid character ranges:
-; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
-.loop
- ld a, [de]
- inc de
- and a
- jr z, .NextChar
- cp $60
- jr nc, .NextChar
- cp $4e
- jr z, .NextChar
- cp "@"
- jr z, .Done
- cp $5
- jr c, .Fail
- cp "<PLAY_G>"
- jr c, .NextChar
- cp $19
- jr c, .Fail
- cp $1d
- jr c, .NextChar
- cp $26
- jr c, .Fail
- cp $35
- jr c, .NextChar
- cp $3a
- jr c, .Fail
- cp $3f
- jr c, .NextChar
- cp $40
- jr c, .Fail
- cp $49
- jr c, .NextChar
-
-.Fail:
- scf
- ret
-
-.NextChar:
- dec c
- jr nz, .loop
-
-.Done:
- and a
- ret
-; 17d0b3
-
-CheckStringForErrors_IgnoreTerminator: ; 17d0b3
-; Find control chars
-.loop
- ld a, [de]
- inc de
- and a
- jr z, .next
- cp "<DEXEND>" + 1
- jr nc, .next
- cp "<NEXT>"
- jr z, .next
- cp "@"
- jr z, .next
-
- cp $5
- jr c, .end
- cp "<PLAY_G>"
- jr c, .next
- cp $19
- jr c, .end
- cp $1d
- jr c, .next
- cp "%" + 1
- jr c, .end
- cp $35
- jr c, .next
- cp "<GREEN>" + 1
- jr c, .end
- cp "<ENEMY>"
- jr c, .next
- cp "<ENEMY>" + 1
- jr c, .end
- cp "<MOM>"
- jr c, .next
-
-.end
- scf
- ret
-
-.next
- dec c
- jr nz, .loop
- and a
- ret
-; 17d0f3
-
-Function17d0f3: ; 17d0f3
- ld a, [$c608 + 5]
- ld [wOTTrademonSpecies], a
- ld [CurPartySpecies], a
- ld a, [wcd81]
- ld [$c74e], a
- ld hl, $c63d
- ld de, wOTTrademonOTName
- ld bc, 5
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld a, [$c608 + 11]
- ld [wOTTrademonID], a
- ld a, [$c608 + 12]
- ld [wOTTrademonID + 1], a
- ld hl, $c608 + 26
- ld a, [hli]
- ld [wOTTrademonDVs], a
- ld a, [hl]
- ld [wOTTrademonDVs + 1], a
- ld bc, $c608 + 5
- callba GetCaughtGender
- ld a, c
- ld [wOTTrademonCaughtData], a
- call SpeechTextBox
- call FadeToMenu
- callba Function10804d
- callba Function17d1f1
- ld a, $1
- ld [wForceEvolution], a
- ld a, $2
- ld [wLinkMode], a
- callba EvolvePokemon
- xor a
- ld [wLinkMode], a
- callba SaveAfterLinkTrade
- ld a, $5
- call GetSRAMBank
- ld a, $5
- ld [$a800], a
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_17d180
- ld a, $1
- ld [de], a
-
-.asm_17d180
- call CloseSubmenu
- call RestartMapMusic
- ret
-; 17d187
-
-Mobile_CopyDefaultOTName: ; 17d187
- ld hl, Mobile5F_KrissName
- ld de, $c63d
- ld bc, 5
- call CopyBytes
- ret
-; 17d194
-
-Mobile5F_KrissName:
- db "クりス@@"
-; 17d198
-
-Mobile_CopyDefaultNickname: ; 17d199
- ld hl, .DefaultNickname
- ld de, $c642
- ld bc, 5
- call CopyBytes
- ret
-; 17d1a6
-
-.DefaultNickname:
- db "?????"
-
-Mobile_CopyDefaultMail: ; 17d1ab
- ld a, "@"
- ld hl, $c647
- ld bc, MAIL_MSG_LENGTH + 1
- call ByteFill
- ld hl, .DefaultMessage
- ld de, $c647
- ld bc, 6
- call CopyBytes
- ret
-; 17d1c3
-
-.DefaultMessage:
- db "こんにちは@"
-; 17d1c9
-
-Mobile_CopyDefaultMailAuthor: ; 17d1c9
- ld a, "@"
- ld de, $c668
- ld bc, 5
- call ByteFill
- ld hl, Mobile5F_KrissName
- ld de, $c668
- ld bc, 5
- call CopyBytes
- ret
-; 17d1e1
-
-CheckStringContainsLessThanBNextCharacters: ; 17d1e1
-.loop
- ld a, [de]
- inc de
- cp "<NEXT>"
- jr nz, .next_char
- dec b
- jr z, .done
-
-.next_char
- dec c
- jr nz, .loop
- and a
- ret
-
-.done
- scf
- ret
-; 17d1f1
-
-Function17d1f1: ; 17d1f1
- ld a, [CurPartySpecies]
- dec a
- call SetSeenAndCaughtMon
-
- ld a, [CurPartySpecies]
- cp UNOWN
- jr nz, .asm_17d223
-
- ld hl, PartyMon1DVs
- ld a, [PartyCount]
- dec a
- ld bc, PARTYMON_STRUCT_LENGTH
- call AddNTimes
- predef GetUnownLetter
- callab UpdateUnownDex
- ld a, [wFirstUnownSeen]
- and a
- jr nz, .asm_17d223
-
- ld a, [UnownLetter]
- ld [wFirstUnownSeen], a
-
-.asm_17d223
- ret
-; 17d224
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-; Parameter: [ScriptVar] = 0..1
-;
-; if [ScriptVar] == 0
-; Show japanese menu options
-; - News - News - ??? - Cancel
-; if [ScriptVar] == 1
-; Show BattleTower-Menu with 3 options in english language
-; - Challenge - Explanation - Cancel
-Special_Menu_ChallengeExplanationCancel: ; 17d224
- ld a, [ScriptVar]
- and a
- jr nz, .English
- ld a, $4
- ld [ScriptVar], a
- ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option
- jr .Load_Interpret
-
-.English:
- ld a, $4
- ld [ScriptVar], a
- ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu
-
-.Load_Interpret:
- call LoadMenuDataHeader
- call Function17d246
- call CloseWindow
- ret
-; 17d246
-
-Function17d246: ; 17d246
- call VerticalMenu
- jr c, .Exit
- ld a, [ScriptVar]
- cp $5
- jr nz, .UsewMenuCursorY
- ld a, [wMenuCursorY]
- cp $3
- ret z
- jr c, .UsewMenuCursorY
- dec a
- jr .LoadToScriptVar
-
-.UsewMenuCursorY:
- ld a, [wMenuCursorY]
-
-.LoadToScriptVar:
- ld [ScriptVar], a
- ret
-
-.Exit:
- ld a, $4
- ld [ScriptVar], a
- ret
-; 17d26a
-
-MenuDataHeader_17d26a: ; 17d26a
- db $40 ; flags
- db 0, 0 ; start coords
- db 9, 14 ; end coords
- dw MenuData2_17d272
- db 1 ; default option
-
-MenuData2_17d272: ; 17d272
- db $a0 ; flags
- db 4
- db "ニュース¯よみこむ@"
- db "ニュース¯みる@"
- db "せつめい@"
- db "やめる@"
-; 17d28f
-
-MenuDataHeader_ChallengeExplanationCancel: ; 17d28f
- db $40 ; flags
- db 0, 0 ; start coords
- db 7, 14 ; end coords
- dw MenuData2_ChallengeExplanationCancel
- db 1 ; default option
-
-MenuData2_ChallengeExplanationCancel: ; 17d297
- db $a0 ; flags
- db 3
- db "Challenge@"
- db "Explanation@"
- db "Cancel@"
-; 17d2b6
-
-Function17d2b6: ; 17d2b6
- call Function17d2c0
- callba Function1181da
- ret
-; 17d2c0
-
-Function17d2c0: ; 17d2c0
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ret
-; 17d2ce
-
-Function17d2ce: ; 17d2ce
- ld a, $5
- call GetSRAMBank
- ld a, [$aa72]
- call CloseSRAM
- and a
- jr nz, .asm_17d2e2
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_17d2e2
- call Function17d314
- ret c
- call SpeechTextBox
- call FadeToMenu
- ld a, [rSVBK]
- push af
- ld a, $4
- ld [rSVBK], a
- call Function17d370
- call Function17d45a
- pop af
- ld [rSVBK], a
- ld de, MUSIC_MOBILE_CENTER
- ld a, e
- ld [wMapMusic], a
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- call PlayMusic
- call ReturnToMapFromSubmenu
- call CloseSubmenu
- ret
-; 17d314
-
-Function17d314: ; 17d314
- ld a, $5
- call GetSRAMBank
- ld a, [$b1b1]
- call CloseSRAM
- cp $21
- jr nc, .asm_17d354
- ld a, $6
- call GetSRAMBank
- ld l, $0
- ld h, l
- ld de, $a006
- ld a, [$a004]
- ld c, a
- ld a, [$a005]
- ld b, a
-.asm_17d336
- push bc
- ld a, [de]
- inc de
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- dec bc
- ld a, b
- or c
- jr nz, .asm_17d336
- ld a, [$a002]
- cp l
- jr nz, .asm_17d354
- ld a, [$a003]
- cp h
- jr nz, .asm_17d354
- call CloseSRAM
- and a
- ret
-
-.asm_17d354
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- xor a
- ld hl, $aa73
- ld bc, $c
- call ByteFill
- call CloseSRAM
- ld a, $2
- ld [ScriptVar], a
- scf
- ret
-; 17d370
-
-Function17d370: ; 17d370
- xor a
- ld [wcd77], a
- ld [wcd78], a
- ld [wcd79], a
- dec a
- ld [wcd6c], a
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
- callba ReloadMapPart
- call DisableLCD
- ld hl, VTiles1 tile $6e
- ld de, $c608
- ld bc, 1 tiles
- call CopyBytes
- ld a, $1
- ld [rVBK], a
- ld hl, PokemonNewsGFX
- ld de, VTiles1
- ld bc, $48 tiles
- call CopyBytes
- xor a
- ld hl, VTiles2 tile $7f
- ld bc, 1 tiles
- call ByteFill
- ld hl, $c608
- ld de, VTiles1 tile $6e
- ld bc, 1 tiles
- call CopyBytes
- xor a
- ld [rVBK], a
- ld hl, GFX_17eb7e
- ld de, VTiles2 tile $60
- ld bc, 1 tiles
- call CopyBytes
- call EnableLCD
- call Function17d60b
- ld a, $0
- ld [BGMapBuffer], a
- ld a, $d0
- ld [wcd21], a
- ld a, $6
- call GetSRAMBank
- ld hl, $a006
- ld de, UnknBGPals
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- ret
-; 17d3f6
-
-Function17d3f6: ; 17d3f6
- call ClearBGPalettes
- call ClearSprites
- call ClearScreen
- callba ReloadMapPart
-
-Function17d405:
- call DisableLCD
- ld hl, VTiles1 tile $6e
- ld de, $c608
- ld bc, 1 tiles
- call CopyBytes
- ld a, $1
- ld [rVBK], a
- ld hl, PokemonNewsGFX
- ld de, VTiles1
- ld bc, $48 tiles
- call CopyBytes
- xor a
- ld hl, VTiles2 tile $7f
- ld bc, 1 tiles
- call ByteFill
- ld hl, $c608
- ld de, VTiles1 tile $6e
- ld bc, 1 tiles
- call CopyBytes
- xor a
- ld [rVBK], a
- call EnableLCD
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, Palette_17eff6
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a
- ret
-; 17d45a
-
-Function17d45a: ; 17d45a
-.asm_17d45a
- call JoyTextDelay
- ld a, [wcd77]
- bit 7, a
- jr nz, .asm_17d46f
- call Function17d474
- callba ReloadMapPart
- jr .asm_17d45a
-
-.asm_17d46f
- xor a
- ld [ScriptVar], a
- ret
-; 17d474
-
-Function17d474: ; 17d474
- jumptable Jumptable_17d483, wcd77
-; 17d483
-
-Jumptable_17d483: ; 17d483
- dw Function17d48d
- dw Function17d5be
- dw Function17d5c4
- dw Function17d6fd
- dw Function17e427
-; 17d48d
-
-Function17d48d: ; 17d48d
- ld hl, Palette_17eff6
- ld de, $c608
- ld bc, $40
- call CopyBytes
- ld hl, TileAttrmap_17eb8e
- decoord 0, 0
- bccoord 0, 0, AttrMap
- ld a, $12
-.asm_17d4a4
- push af
- ld a, $14
- push hl
-.asm_17d4a8
- push af
- ld a, [hli]
- cp $7f
- jr z, .asm_17d4b0
- add $80
-
-.asm_17d4b0
- ld [de], a
- inc de
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .asm_17d4a8
- pop hl
- push bc
- ld bc, $40
- add hl, bc
- pop bc
- pop af
- dec a
- jr nz, .asm_17d4a4
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- ld a, [hli]
- ld e, a
- ld a, [wcd6c]
- cp e
- jr z, .asm_17d4e0
- ld a, e
- ld [wcd6c], a
- ld [wMapMusic], a
- ld d, $0
- call PlayMusic2
-
-.asm_17d4e0
- ld a, [hli]
- ld de, $c608
- ld c, $8
-.asm_17d4e6
- srl a
- jr nc, .asm_17d4f6
- ld b, $8
- push af
-.asm_17d4ed
- ld a, [hli]
- ld [de], a
- inc de
- dec b
- jr nz, .asm_17d4ed
- pop af
- jr .asm_17d4fc
-
-.asm_17d4f6
- push af
- ld a, e
- add $8
- ld e, a
- pop af
-
-.asm_17d4fc
- dec c
- jr nz, .asm_17d4e6
- push hl
- call Function17d5f6
- pop hl
- ld a, [hli]
- and a
- jr z, .asm_17d539
-.asm_17d508
- push af
- ld a, [hli]
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [wcd51], a
- ld a, [hli]
- ld [wcd52], a
- ld a, [hli]
- sla a
- sla a
- sla a
- add $98
- ld [wcd53], a
- ld de, wcd4f
- call Function17e613
- ld a, [hli]
- ld [wcd53], a
- ld de, wcd4f
- call Function17e691
- pop af
- dec a
- jr nz, .asm_17d508
-
-.asm_17d539
- ld a, [hli]
-.asm_17d53a
- push af
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- pop de
- hlcoord 0, 0
- add hl, bc
- call PlaceString
- push de
- pop hl
- inc hl
- pop af
- dec a
- jr nz, .asm_17d53a
- ld de, CreditsTimer
- ld bc, $c
- call CopyBytes
- xor a
- ld [wcd2e], a
- ld [wcd2f], a
- inc a
- ld [wcd30], a
- ld [wcd31], a
- ld de, wcd32
- ld bc, $10
- call CopyBytes
- ld a, [hli]
- ld [wcd42], a
- ld a, [hli]
- ld [wcd43], a
- ld a, [hli]
- ld [wMobileInactivityTimerMinutes], a
- ld a, [hli]
- ld [wMobileInactivityTimerSeconds], a
- ld a, [hli]
- ld [wMobileInactivityTimerFrames], a
- ld a, [hli]
- and a
- jr z, .asm_17d58a
- call Function17d6a1
-
-.asm_17d58a
- ld a, l
- ld [wcd49], a
- ld a, h
- ld [wcd4a], a
- ld a, [wcd42]
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld a, l
- ld [wcd4b], a
- ld a, h
- ld [wcd4c], a
- add hl, bc
- add hl, bc
- ld a, l
- ld [wcd4d], a
- ld a, h
- ld [wcd4e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- callba ReloadMapPart
- jp Function17e438
-; 17d5be
-
-Function17d5be: ; 17d5be
- call SetPalettes
- call Function17e438
-
-Function17d5c4:
- ld a, [hJoyPressed]
- and a
- ret z
- ld c, 0
- ld b, c
- ld hl, wcd32
-.loop
- srl a
- jr c, .got_button
- inc c
- inc c
- jr .loop
-
-.got_button
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- and c
- cp $ff
- ret z
- ld a, [wcd20]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, bc
- ld a, l
- ld [wcd78], a
- ld a, h
- ld [wcd79], a
- ld a, $3
- ld [wcd77], a
- ret
-; 17d5f6
-
-Function17d5f6: ; 17d5f6
- ld a, $5
- ld [rSVBK], a
- ld hl, $c608
- ld de, UnknBGPals
- ld bc, 8 palettes
- call CopyBytes
- ld a, $4
- ld [rSVBK], a
- ret
-; 17d60b
-
-Function17d60b: ; 17d60b
- ld a, $5
- call GetSRAMBank
- ld hl, $b1d3
- ld de, $c608
- ld bc, $20
- call CopyBytes
- ld a, [$b1b1]
- ld c, a
- ld a, [$b1b2]
- ld b, a
- ld a, [$b1b3]
- ld l, a
- ld a, [$b1b4]
- ld h, a
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
- ld de, $c708
- ld a, c
- and a
- jr z, .asm_17d684
-.asm_17d63b
- push bc
- ld a, l
- ld [de], a
- inc de
- ld a, h
- ld [de], a
- inc de
- ld bc, $a
- add hl, bc
- pop bc
- ld a, [hli]
- ld [wcd4a], a
- ld a, [hli]
- ld [wcd49], a
- push hl
- push de
- ld hl, $c608
- ld e, b
- ld d, $0
- add hl, de
- ld a, [hli]
- ld [wcd4b], a
- ld a, [hl]
- ld [wcd4c], a
- pop de
- pop hl
- inc b
- inc b
- dec c
- dec c
- jr z, .asm_17d684
- push bc
- push de
- ld a, [wcd49]
- ld c, a
- ld a, [wcd4a]
- ld b, a
- ld a, [wcd4b]
- ld e, a
- ld a, [wcd4c]
- ld d, a
-.asm_17d67a
- add hl, de
- dec bc
- ld a, c
- or b
- jr nz, .asm_17d67a
- pop de
- pop bc
- jr .asm_17d63b
-
-.asm_17d684
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $c708
- ld de, $b1b3
- ld a, [$b1b1]
- ld c, a
- ld a, [$b1b2]
- ld b, a
- call CopyBytes
- call CloseSRAM
- ret
-; 17d6a1
-
-
-Function17d6a1: ; 17d6a1
- push hl
- ld a, [wcd6e]
- ld c, a
- ld b, $0
- ld a, $5
- call GetSRAMBank
- ld hl, $b1d3
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld [wcd47], a
- ld a, [hl]
- ld [BGMapPalBuffer], a
- ld hl, $b1b3
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld h, a
- ld l, c
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
- ld a, l
- ld [wcd5e], a
- ld a, h
- ld [wcd5f], a
- ld de, wcd60
- ld bc, $4
- call CopyBytes
- inc hl
- inc hl
- ld de, wcd64
- ld bc, $4
- call CopyBytes
- ld a, [hli]
- ld [wcd69], a
- ld a, [hli]
- ld [wcd68], a
- ld a, l
- ld [wcd6a], a
- ld a, h
- ld [wcd6b], a
- call CloseSRAM
- pop hl
- ret
-; 17d6fd
-
-Function17d6fd: ; 17d6fd
- ld a, [wcd77]
- bit 7, a
- jr nz, asm_17d721
- ld a, [wcd78]
- ld l, a
- ld a, [wcd79]
- ld h, a
- ld a, [hl]
- cp $ff
- jr z, asm_17d721
-
-Function17d711:
-.crash_loop
- cp $31
- jr nc, .crash_loop
- ld e, a
- ld d, 0
- ld hl, Jumptable17d72a
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-asm_17d721
- call Function17e5af
- ld a, $2
- ld [wcd77], a
- ret
-; 17d72a
-
-Jumptable17d72a: ; 17d72a
- dw Function17d78c
- dw Function17d78d
- dw Function17d7b4
- dw Function17d7c2
- dw Function17d7d3
- dw Function17d7e5
- dw Function17d818
- dw Function17d833
- dw Function17d85d
- dw Function17d902
- dw Function17d93a
- dw Function17d98b
- dw Function17d9e3
- dw Function17da31
- dw Function17da9c
- dw Function17dadc
- dw Function17db2d
- dw Function17db56
- dw Function17db77
- dw Function17dbe9
- dw Function17dc1f
- dw Function17dc9f
- dw Function17dca9
- dw Function17dccf
- dw Function17dd13
- dw Function17dd30
- dw Function17dd49
- dw Function17ddcd
- dw Function17de32
- dw Function17de91
- dw Function17ded9
- dw Function17e0fd
- dw Function17e133
- dw Function17e165
- dw Function17e1a1
- dw Function17e254
- dw Function17e261
- dw Function17e270
- dw Function17e27f
- dw Function17e293
- dw Function17e2a7
- dw Function17e367
- dw Function17e37e
- dw Function17e395
- dw Function17e3ac
- dw Function17e3c3
- dw Function17e3e0
- dw Function17e3f0
- dw Function17e409
-; 17d78c
-
-Function17d78c: ; 17d78c
- ret
-; 17d78d
-
-Function17d78d: ; 17d78d
- call Function17e415
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- ld a, $6
- call GetSRAMBank
- ld hl, $a006
- add hl, bc
- ld de, UnknBGPals
- ld bc, $1000
- call CopyBytes
- call CloseSRAM
- xor a
- ld [wcd77], a
- call ClearBGPalettes
- ret
-; 17d7b4
-
-Function17d7b4: ; 17d7b4
- call Function17e415
- ld a, [hli]
- ld e, a
- ld d, $0
- call PlayMusic2
- call Function17e41e
- ret
-; 17d7c2
-
-Function17d7c2: ; 17d7c2
- call Function17e415
- ld a, [hli]
- ld e, a
- ld d, $0
- call PlaySFX
- call WaitSFX
- call Function17e41e
- ret
-; 17d7d3
-
-Function17d7d3: ; 17d7d3
- call Function17e415
- ld a, [hli]
- dec a
- ld e, a
- ld d, $0
- call PlayCryHeader
- call WaitSFX
- call Function17e41e
- ret
-; 17d7e5
-
-Function17d7e5: ; 17d7e5
- call Function17e415
- ld a, [hli]
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [wcd51], a
- ld a, [hli]
- ld [wcd52], a
- ld a, [hli]
- sla a
- sla a
- sla a
- add $98
- ld [wcd53], a
- ld de, wcd4f
- call Function17e613
- ld a, [hli]
- ld [wcd53], a
- ld de, wcd4f
- call Function17e691
- call Function17e41e
- ret
-; 17d818
-
-Function17d818: ; 17d818
- call Function17e415
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call Function17e41e
- call Function17e447
- ld e, l
- ld d, h
- hlcoord 0, 0
- add hl, bc
- call PlaceString
- ret
-; 17d833
-
-Function17d833: ; 17d833
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- push de
- push bc
- call Function17e32b
- pop bc
- pop de
- call Function17e43d
- ld c, l
- ld b, h
- hlcoord 0, 0
- add hl, de
- ld e, l
- ld d, h
- callba Function11c08f
- call Function17e349
- ret
-; 17d85d
-
-Function17d85d: ; 17d85d
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld hl, UnknBGPals
- add hl, de
- ld de, wcc60
-.asm_17d86c
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr nz, .asm_17d86c
- pop hl
- ld de, $c608
- ld c, $0
-.asm_17d878
- ld a, [hli]
- cp $ff
- jr z, .asm_17d8c7
- ld [wcd4f], a
- ld a, [hli]
- ld [wcd50], a
- ld a, [hli]
- ld [wcd51], a
- ld a, [hli]
- ld [wcd52], a
- ld a, [wcd51]
- push af
- cp $c0
- jr c, .asm_17d89b
- ld a, [wcd4f]
- ld [rSVBK], a
- jr .asm_17d8a1
-
-.asm_17d89b
- ld a, [wcd4f]
- call GetSRAMBank
-
-.asm_17d8a1
- push hl
- ld a, [wcd50]
- ld l, a
- ld a, [wcd51]
- ld h, a
- ld a, [wcd52]
-.asm_17d8ad
- push af
- ld a, [hli]
- ld [de], a
- inc de
- inc c
- pop af
- dec a
- jr nz, .asm_17d8ad
- pop hl
- pop af
- cp $c0
- jr c, .asm_17d8c2
- ld a, $4
- ld [rSVBK], a
- jr .asm_17d878
-
-.asm_17d8c2
- call CloseSRAM
- jr .asm_17d878
-
-.asm_17d8c7
- call Function17e41e
- push bc
- ld a, $3
- ld [rSVBK], a
- ld hl, $c608
- ld de, UnknBGPals
- ld b, $0
- call CopyBytes
- ld a, $4
- ld [rSVBK], a
- call Function17e32b
- pop bc
- ld a, c
- ld [wcd3b], a
- xor a
- ld [wcf66], a
- callba Function118329
- ld a, [wc300]
- and a
- jr z, .asm_17d8fe
- cp $a
- jr z, .asm_17d8fe
- call Function17e309
- ret
-
-.asm_17d8fe
- call Function17e349
- ret
-; 17d902
-
-Function17d902: ; 17d902
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- call Function17e41e
- call Function17e32b
- pop de
- ld hl, UnknBGPals
- add hl, de
- ld de, wcc60
-.asm_17d918
- ld a, [hli]
- ld [de], a
- inc de
- and a
- jr nz, .asm_17d918
- xor a
- ld [wcf66], a
- callba Function11837a
- ld a, [wc300]
- and a
- jr z, .asm_17d936
- cp $a
- jr z, .asm_17d936
- call Function17e309
- ret
-
-.asm_17d936
- call Function17e349
- ret
-; 17d93a
-
-Function17d93a: ; 17d93a
- call Function17e415
- ld de, $c708
- ld bc, $5
- call CopyBytes
- call Function17e41e
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [$c70c]
- call Function17e6de
- ld a, [$c70a]
- ld [CurPartySpecies], a
- ld a, [$c70c]
- ld e, a
- callba LoadMonPaletteAsNthBGPal
- call SetPalettes
- ld a, [$c708]
- ld l, a
- ld a, [$c709]
- ld h, a
- ld a, [$c70b]
- ld c, a
- decoord 0, 0
- add hl, de
- ld e, l
- ld d, h
- callba HOF_AnimateFrontpic
- pop af
- ld [rSVBK], a
- call Function17e349
- ret
-; 17d98b
-
-Function17d98b: ; 17d98b
- call Function17e415
- ld de, $c708
- ld bc, $4
- call CopyBytes
- call Function17e41e
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, [$c70b]
- call Function17e6de
- ld a, [$c70a]
- ld [TrainerClass], a
- ld a, [$c70b]
- ld e, a
- callba LoadTrainerClassPaletteAsNthBGPal
- call SetPalettes
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- push de
- ld de, VTiles2
- callba GetTrainerPic
- pop hl
- decoord 0, 0
- add hl, de
- ld bc, $707
- predef PlaceGraphic
- pop af
- ld [rSVBK], a
- call Function17e349
- ret
-; 17d9e3
-
-Function17d9e3: ; 17d9e3
- call Function17e415
- ld de, $c708
- ld bc, $7
- call CopyBytes
- call Function17e41e
- ld a, [$c70b]
- push af
- cp $c0
- jr c, .asm_17da01
- ld a, [$c70c]
- ld [rSVBK], a
- jr .asm_17da07
-
-.asm_17da01
- ld a, [$c70c]
- call GetSRAMBank
-
-.asm_17da07
- ld a, [$c708]
- ld l, a
- ld a, [$c709]
- ld h, a
- ld a, [$c70a]
- ld e, a
- ld a, [$c70b]
- ld d, a
- ld a, [$c70d]
- ld c, a
- ld a, [$c70e]
- ld b, a
- call CopyBytes
- pop af
- cp $c0
- jr c, .asm_17da2d
- ld a, $4
- ld [rSVBK], a
- jr .asm_17da30
-
-.asm_17da2d
- call CloseSRAM
-
-.asm_17da30
- ret
-; 17da31
-
-Function17da31: ; 17da31
- call Function17e415
- ld de, $c708
- ld bc, $4
- call CopyBytes
- call Function17e41e
- ld a, [$c709]
- push af
- cp $c0
- jr c, .asm_17da4f
- ld a, [$c70a]
- ld [rSVBK], a
- jr .asm_17da55
-
-.asm_17da4f
- ld a, [$c70a]
- call GetSRAMBank
-
-.asm_17da55
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- ld a, [$c70b]
- ld c, a
- bit 7, c
- jr nz, .asm_17da70
- ld hl, Unknown_17da8c
- ld b, $0
- add hl, bc
- ld a, [de]
- or [hl]
- ld [de], a
- jr .asm_17da7d
-
-.asm_17da70
- ld hl, Unknown_17da94
- ld a, c
- and $7f
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- and [hl]
- ld [de], a
-
-.asm_17da7d
- pop af
- cp $c0
- jr c, .asm_17da88
- ld a, $4
- ld [rSVBK], a
- jr .asm_17da8b
-
-.asm_17da88
- call CloseSRAM
-
-.asm_17da8b
- ret
-; 17da8c
-
-Unknown_17da8c:
-x = 0
- rept 8
- db 1 << x
-x = x + 1
- endr
-
-Unknown_17da94:
-x = 0
- rept 8
- db (1 << x) ^ $ff
-x = x + 1
- endr
-; 17da9c
-
-Function17da9c: ; 17da9c
- ld a, [wcd31]
- dec a
- jr z, .asm_17dabd
- push af
- call Function17e566
- pop af
- ld [wcd31], a
- ld hl, wcd24
- ld a, [wcd2e]
- sub [hl]
- ld [wcd2e], a
- call Function17e55b
- call Function17e5af
-.asm_17daba
- jp Function17e415
-
-.asm_17dabd
- ld a, [wcd2f]
- and a
- jr z, .asm_17daba
- ld hl, wcd24
- sub [hl]
- ld [wcd2f], a
- ld a, [wcd2e]
- sub [hl]
- ld [wcd2e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- jr .asm_17daba
-; 17dadc
-
-Function17dadc: ; 17dadc
- ld a, [wcd2e]
- ld hl, wcd24
- add [hl]
- ld hl, wcd42
- cp [hl]
- jr z, .asm_17db0e
- jr nc, .asm_17db0e
- ld hl, wcd31
- ld a, [wcd2b]
- cp [hl]
- jr z, .asm_17db11
- call Function17e566
- ld a, [wcd31]
- inc a
- ld [wcd31], a
- ld hl, wcd24
- ld a, [wcd2e]
- add [hl]
- ld [wcd2e], a
- call Function17e55b
- call Function17e5af
-
-.asm_17db0e
- jp Function17e415
-
-.asm_17db11
- ld hl, wcd24
- ld a, [wcd2f]
- add [hl]
- ld [wcd2f], a
- ld a, [wcd2e]
- add [hl]
- ld [wcd2e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- jr .asm_17db0e
-; 17db2d
-
-Function17db2d: ; 17db2d
- ld a, [wcd30]
- ld hl, wcd24
- cp [hl]
- jr z, .asm_17db53
- ld hl, wcd42
- ld a, [wcd2e]
- inc a
- cp [hl]
- jr z, .asm_17db53
- ld [wcd2e], a
- call Function17e566
- ld a, [wcd30]
- inc a
- ld [wcd30], a
- call Function17e55b
- call Function17e5af
-
-.asm_17db53
- jp Function17e415
-; 17db56
-
-Function17db56: ; 17db56
- ld a, [wcd30]
- cp $1
- jr z, .asm_17db74
- call Function17e566
- ld a, [wcd30]
- dec a
- ld [wcd30], a
- ld a, [wcd2e]
- dec a
- ld [wcd2e], a
- call Function17e55b
- call Function17e5af
-
-.asm_17db74
- jp Function17e415
-; 17db77
-
-Function17db77: ; 17db77
- ld hl, wcd2d
- ld a, [wcd2f]
- add [hl]
- ld hl, wcd42
- cp [hl]
- jr z, .asm_17dbae
- jr nc, .asm_17dbae
- call Function17e566
- ld hl, wcd2d
- ld a, [wcd2f]
- add [hl]
- ld [wcd2f], a
- ld a, [wcd2e]
- add [hl]
- ld hl, wcd42
- cp [hl]
- jr c, .asm_17db9f
- ld a, [hl]
- dec a
-
-.asm_17db9f
- ld [wcd2e], a
- call Function17dbb1
- call Function17e451
- call Function17e55b
- call Function17e5af
-
-.asm_17dbae
- jp Function17e415
-; 17dbb1
-
-Function17dbb1: ; 17dbb1
- ld hl, wcd2f
- ld a, [wcd42]
- sub [hl]
- ld hl, wcd2d
- cp [hl]
- ret nc
- ld a, $1
- ld [wcd30], a
- ld [wcd31], a
- ld a, [wcd24]
- ld c, a
- ld a, [wcd24]
- ld b, a
- ld a, [wcd2e]
- ld hl, wcd2f
- sub [hl]
-.asm_17dbd4
- and a
- ret z
- push af
- ld hl, wcd30
- ld a, b
- cp [hl]
- jr nz, .asm_17dbe4
- ld a, $1
- ld [hl], a
- ld hl, wcd31
-
-.asm_17dbe4
- inc [hl]
- pop af
- dec a
- jr .asm_17dbd4
-; 17dbe9
-
-Function17dbe9: ; 17dbe9
- ld hl, wcd2d
- ld a, [wcd2f]
- sub [hl]
- bit 7, a
- jr z, .asm_17dbf5
- xor a
-
-.asm_17dbf5
- ld [wcd2f], a
- ld a, [wcd30]
- dec a
- ld c, a
- ld a, [wcd31]
- ld b, a
- xor a
- ld hl, wcd24
-.asm_17dc05
- dec b
- jr z, .asm_17dc0b
- add [hl]
- jr .asm_17dc05
-
-.asm_17dc0b
- add c
- ld hl, wcd2f
- add [hl]
- ld [wcd2e], a
- call Function17e451
- call Function17e55b
- call Function17e5af
- jp Function17e415
-; 17dc1f
-
-Function17dc1f: ; 17dc1f
- call Function17e415
- ld de, $c688
- ld bc, $6
- call CopyBytes
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c688
- ld a, $40
- ld [$c708], a
- ld a, [hli]
- ld [$c70a], a
- add $5
- ld [$c70c], a
- ld a, [hli]
- ld [$c709], a
- add $4
- ld [$c70b], a
- ld a, $96
- ld [$c70d], a
- ld a, $5c
- ld [$c70e], a
- ld a, $1
- ld [$c70f], a
- ld hl, $c708
- call LoadMenuDataHeader
- call VerticalMenu
- jr nc, .asm_17dc6e
- ld a, $2
- ld [wMenuCursorY], a
-
-.asm_17dc6e
- call CloseWindow
- pop af
- ld [rSVBK], a
- ld a, [wMenuCursorY]
- cp $1
- jr nz, .asm_17dc85
- ld a, [$c68a]
- ld l, a
- ld a, [$c68a + 1]
- ld h, a
- jr .asm_17dc8d
-
-.asm_17dc85
- ld a, [$c68a + 2]
- ld l, a
- ld a, [$c68a + 3]
- ld h, a
-
-.asm_17dc8d
- push hl
- call Function17e349
- pop hl
- call Function17e40f
- ret
-; 17dc96
-
-MenuData2_17dc96:
- db $e0 ; flags
- db 2
- db "はい@"
- db "いいえ@"
-; 17dc9f
-
-Function17dc9f: ; 17dc9f
- call Function17e415
- call Function17e41e
- call RotateFourPalettesLeft
- ret
-; 17dca9
-
-Function17dca9: ; 17dca9
- call Function17e415
- call Function17e41e
-
-Function17dcaf:
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknBGPals
- ld de, $8
- ld c, $8
-.asm_17dcbb
- push hl
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hl], a
- pop hl
- add hl, de
- dec c
- jr nz, .asm_17dcbb
- call RotateThreePalettesRight
- ld a, $4
- ld [rSVBK], a
- ret
-; 17dccf
-
-Function17dccf: ; 17dccf
- call Function17e415
- push hl
- ld a, [wcd4b]
- ld l, a
- ld a, [wcd4c]
- ld h, a
- ld a, [wcd2e]
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld b, a
- call Function17e43d
- call Function17e41e
-.asm_17dced
- ld a, [wcd78]
- ld l, a
- ld a, [wcd79]
- ld h, a
- ld a, [hl]
- cp $ff
- jr z, .asm_17dd0d
-.crash_loop
- cp $31
- jr nc, .crash_loop
- call Function17d711
- ld a, [wcd77]
- bit 7, a
- jr nz, .asm_17dd0d
- and a
- jr z, .asm_17dd11
- jr .asm_17dced
-
-.asm_17dd0d
- pop hl
- jp Function17e41e
-
-.asm_17dd11
- pop hl
- ret
-; 17dd13
-
-Function17dd13: ; 17dd13
- call Function17e415
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- call Function17e41e
- call Function17e447
- push hl
- hlcoord 0, 0
- add hl, bc
- push hl
- pop bc
- pop hl
- call PlaceHLTextAtBC
- ret
-; 17dd30
-
-Function17dd30: ; 17dd30
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld b, $0
- ld a, [hli]
- push af
- call Function17e41e
- pop af
- hlcoord 0, 0
- add hl, de
- call Function17e600
- ret
-; 17dd49
-
-Function17dd49: ; 17dd49
- call Function17e415
- ld de, $c708
- ld bc, $a
- call CopyBytes
- ld a, [$c711]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .sram
- ld a, [$c708]
- ld [rSVBK], a
- jr .got_bank
-
-.sram
- ld a, [$c708]
- call GetSRAMBank
-
-.got_bank
- ld a, [$c709]
- ld l, a
- ld a, [$c70a]
- ld h, a
- ld de, $c688
- ld a, [$c711]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .close_sram
- ld a, $4
- ld [rSVBK], a
- jr .exited_bank
-
-.close_sram
- call CloseSRAM
-
-.exited_bank
- ld a, [$c711]
- ld c, a
- ld hl, $c712
- ld de, $c688
-.loop
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr z, .next
- jr c, .load
- jr .load2
-
-.next
- dec c
- jr nz, .loop
- ld a, [$c70d]
- ld l, a
- ld a, [$c70e]
- ld h, a
- jr .done
-
-.load2
- ld a, [$c70f]
- ld l, a
- ld a, [$c710]
- ld h, a
- jr .done
-
-.load
- ld a, [$c70b]
- ld l, a
- ld a, [$c70c]
- ld h, a
-
-.done
- call Function17e40f
- ret
-; 17ddcd
-
-Function17ddcd: ; 17ddcd
- call Function17e415
- ld de, $c708
- ld bc, $8
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17dde7
- ld a, [$c708]
- ld [rSVBK], a
- jr .asm_17dded
-
-.asm_17dde7
- ld a, [$c708]
- call GetSRAMBank
-
-.asm_17dded
- ld a, [$c709]
- ld e, a
- ld a, [$c70a]
- ld d, a
- ld a, [de]
- ld [$c710], a
- ld a, [$c70b]
- ld c, a
- ld b, $0
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17de0c
- ld a, $4
- ld [rSVBK], a
- jr .asm_17de0f
-
-.asm_17de0c
- call CloseSRAM
-
-.asm_17de0f
- push hl
- ld hl, Unknown_17da8c
- add hl, bc
- ld a, [hl]
- ld hl, $c710
- and [hl]
- pop hl
- jr nz, .asm_17de26
- ld a, [$c70e]
- ld l, a
- ld a, [$c70f]
- ld h, a
- jr .asm_17de2e
-
-.asm_17de26
- ld a, [$c70c]
- ld l, a
- ld a, [$c70d]
- ld h, a
-
-.asm_17de2e
- call Function17e40f
- ret
-; 17de32
-
-Function17de32: ; 17de32
- call Function17e415
- ld de, $c708
- ld bc, $9
- call CopyBytes
- ld a, [$c710]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, $6
- call GetSRAMBank
- call Function17f4f6
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- add hl, de
- ld e, l
- ld d, h
- ld a, [$c710]
- ld c, a
- ld hl, $c711
-.asm_17de61
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr z, .asm_17de6b
- jr c, .asm_17de82
- jr .asm_17de78
-
-.asm_17de6b
- dec c
- jr nz, .asm_17de61
- ld a, [$c70c]
- ld l, a
- ld a, [$c70d]
- ld h, a
- jr .asm_17de8a
-
-.asm_17de78
- ld a, [$c70e]
- ld l, a
- ld a, [$c70f]
- ld h, a
- jr .asm_17de8a
-
-.asm_17de82
- ld a, [$c70a]
- ld l, a
- ld a, [$c70b]
- ld h, a
-
-.asm_17de8a
- call CloseSRAM
- call Function17e40f
- ret
-; 17de91
-
-Function17de91: ; 17de91
- call Function17e415
- ld de, $c708
- ld bc, $7
- call CopyBytes
- ld a, $6
- call GetSRAMBank
- call Function17f4f6
- ld a, [$c708]
- ld e, a
- ld a, [$c709]
- ld d, a
- add hl, de
- ld e, l
- ld d, h
- ld a, [$c70a]
- ld c, a
- ld b, $0
- ld hl, Unknown_17da8c
- add hl, bc
- ld a, [hl]
- ld l, e
- ld h, d
- and [hl]
- jr nz, .asm_17deca
- ld a, [$c70d]
- ld l, a
- ld a, [$c70e]
- ld h, a
- jr .asm_17ded2
-
-.asm_17deca
- ld a, [$c70b]
- ld l, a
- ld a, [$c70c]
- ld h, a
-
-.asm_17ded2
- call CloseSRAM
- call Function17e40f
- ret
-; 17ded9
-
-Function17ded9: ; 17ded9
- call Function17e415
- ld de, $c708
- ld bc, $1f
- call CopyBytes
- call Function17e32b
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [CurPartySpecies], a
- ld [TempEnemyMonSpecies], a
- ld a, [hli]
- ld [CurPartyLevel], a
- ld a, [hli]
- ld b, a
- ld a, [PartyCount]
- cp $6
- jp nc, Function17e026
- xor a
- ld [MonType], a
- push hl
- push bc
- predef TryAddMonToParty
- callba SetCaughtData
- pop bc
- pop hl
- bit 1, b
- jr z, .asm_17df33
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonNicknames
- call SkipNames
- ld d, h
- ld e, l
- pop hl
- call CopyBytes
- pop bc
- jr .asm_17df37
-
-.asm_17df33
- ld de, $6
- add hl, de
-
-.asm_17df37
- bit 2, b
- jr z, .asm_17df5a
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMonOT
- call SkipNames
- ld d, h
- ld e, l
- pop hl
- call CopyBytes
- ld a, [hli]
- ld b, a
- push hl
- callba SetGiftPartyMonCaughtData
- pop hl
- pop bc
- jr .asm_17df5e
-
-.asm_17df5a
- ld de, $7
- add hl, de
-
-.asm_17df5e
- bit 3, b
- jr z, .asm_17df79
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1ID
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17df7b
-
-.asm_17df79
- inc hl
- inc hl
-
-.asm_17df7b
- bit 4, b
- jr z, .asm_17dfd0
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1DVs
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld a, [hl]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1MaxHP
- call GetPartyLocation
- ld d, h
- ld e, l
- push hl
- ld b, $0
- callba CalcPkmnStats
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1HP
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- pop hl
- pop bc
- jr .asm_17dfd2
-
-.asm_17dfd0
- inc hl
- inc hl
-
-.asm_17dfd2
- bit 5, b
- jr z, .asm_17dfea
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Item
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17dfeb
-
-.asm_17dfea
- inc hl
-
-.asm_17dfeb
- bit 6, b
- jr z, .asm_17e01f
- push bc
- push hl
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1Moves
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- push de
- ld bc, $4
- call CopyBytes
- pop de
- push hl
- push de
- ld a, [PartyCount]
- dec a
- ld hl, PartyMon1PP
- call GetPartyLocation
- ld d, h
- ld e, l
- pop hl
- predef FillPP
- pop hl
- pop bc
- jp asm_17e0ee
-
-.asm_17e01f
- ld de, $4
- add hl, de
- jp asm_17e0ee
-; 17e026
-
-Function17e026: ; 17e026
- ld a, BANK(sBoxCount)
- call GetSRAMBank
- ld a, [sBoxCount]
- call CloseSRAM
- cp $14
- jp nc, .asm_17e0ea
- bit 0, b
- jp z, .asm_17e0ea
- push bc
- push hl
- callba LoadEnemyMon
- callba SentPkmnIntoBox
- callba SetBoxMonCaughtData
- pop hl
- pop bc
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- bit 1, b
- jr z, .asm_17e067
- push bc
- ld bc, $b
- ld de, sBoxMonNicknames
- call CopyBytes
- pop bc
- jr .asm_17e06b
-
-.asm_17e067
- ld de, $6
- add hl, de
-
-.asm_17e06b
- bit 2, b
- jr z, .asm_17e08e
- push bc
- ld bc, $6
- ld de, sBoxMonOT
- call CopyBytes
- ld a, [hli]
- ld b, a
- push hl
- call CloseSRAM
- callba SetGiftBoxMonCaughtData
- ld a, $1
- call GetSRAMBank
- pop hl
- pop bc
- jr .asm_17e092
-
-.asm_17e08e
- ld de, $7
- add hl, de
-
-.asm_17e092
- bit 3, b
- jr z, .asm_17e0a2
- push bc
- ld de, sBoxMon1ID
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17e0a4
-
-.asm_17e0a2
- inc hl
- inc hl
-
-.asm_17e0a4
- bit 4, b
- jr z, .asm_17e0b4
- push bc
- ld de, sBoxMon1DVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- pop bc
- jr .asm_17e0b6
-
-.asm_17e0b4
- inc hl
- inc hl
-
-.asm_17e0b6
- bit 5, b
- ld a, [hli]
- jr z, .asm_17e0be
- ld [sBoxMon1Item], a
-
-.asm_17e0be
- bit 6, b
- jr z, .asm_17e0e1
- push bc
- ld de, sBoxMon1Moves
- ld bc, $4
- call CopyBytes
- push hl
- ld hl, sBoxMon1Moves
- ld de, sBoxMon1PP
- predef FillPP
- call CloseSRAM
- pop hl
- pop bc
- inc hl
- inc hl
- jr asm_17e0ee
-
-.asm_17e0e1
- call CloseSRAM
- ld de, $6
- add hl, de
- jr asm_17e0ee
-
-.asm_17e0ea
- ld bc, $1a
- add hl, bc
-
-asm_17e0ee
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- ld [rSVBK], a
- push hl
- call Function17e349
- pop hl
- call Function17e40f
- ret
-; 17e0fd
-
-Function17e0fd: ; 17e0fd
- call Function17e415
- ld de, $c708
- ld bc, $6
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [CurItem], a
- ld a, [hli]
- ld [wItemQuantityChangeBuffer], a
- push hl
- ld hl, NumItems
- call ReceiveItem
- pop hl
- jr c, .asm_17e127
- inc hl
- inc hl
-
-.asm_17e127
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld h, a
- ld l, b
- pop af
- ld [rSVBK], a
- call Function17e40f
- ret
-; 17e133
-
-Function17e133: ; 17e133
- call Function17e415
- ld de, $c708
- ld bc, $5
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [ScriptVar], a
- push hl
- callba MobileCheckOwnMonAnywhere
- pop hl
- jr c, .asm_17e159
- inc hl
- inc hl
-
-.asm_17e159
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld h, a
- ld l, b
- pop af
- ld [rSVBK], a
- call Function17e40f
- ret
-; 17e165
-
-Function17e165: ; 17e165
- call Function17e415
- ld de, $c708
- ld bc, $5
- call CopyBytes
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld hl, $c708
- ld a, [hli]
- ld [CurItem], a
- push hl
- ld hl, NumItems
- call CheckItem
- pop hl
- jr c, .asm_17e195
- push hl
- ld hl, PCItems
- call CheckItem
- pop hl
- jr c, .asm_17e195
- inc hl
- inc hl
-
-.asm_17e195
- ld a, [hli]
- ld b, a
- ld a, [hl]
- ld h, a
- ld l, b
- pop af
- ld [rSVBK], a
- call Function17e40f
- ret
-; 17e1a1
-
-Function17e1a1: ; 17e1a1
- call Function17e415
- ld de, $c708
- ld bc, $d
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17e1bb
- ld a, [$c708]
- ld [rSVBK], a
- jr .asm_17e1c1
-
-.asm_17e1bb
- ld a, [$c708]
- call GetSRAMBank
-
-.asm_17e1c1
- ld a, [$c709]
- ld l, a
- ld a, [$c70a]
- ld h, a
- ld de, $c608
- ld a, [$c70b]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70a]
- cp $c0
- jr c, .asm_17e1e2
- ld a, $4
- ld [rSVBK], a
- jr .asm_17e1e5
-
-.asm_17e1e2
- call CloseSRAM
-
-.asm_17e1e5
- ld a, [$c70e]
- cp $c0
- jr c, .asm_17e1f3
- ld a, [$c70c]
- ld [rSVBK], a
- jr .asm_17e1f9
-
-.asm_17e1f3
- ld a, [$c70c]
- call GetSRAMBank
-
-.asm_17e1f9
- ld a, [$c70d]
- ld l, a
- ld a, [$c70e]
- ld h, a
- ld de, $c688
- ld a, [$c70b]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [$c70e]
- cp $c0
- jr c, .asm_17e21a
- ld a, $4
- ld [rSVBK], a
- jr .asm_17e21d
-
-.asm_17e21a
- call CloseSRAM
-
-.asm_17e21d
- ld a, [$c70b]
- ld c, a
- ld hl, $c688
- ld de, $c608
-.asm_17e227
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr z, .asm_17e231
- jr c, .asm_17e23e
- jr .asm_17e248
-
-.asm_17e231
- dec c
- jr nz, .asm_17e227
- ld a, [$c711]
- ld l, a
- ld a, [$c712]
- ld h, a
- jr .asm_17e250
-
-.asm_17e23e
- ld a, [$c70f]
- ld l, a
- ld a, [$c710]
- ld h, a
- jr .asm_17e250
-
-.asm_17e248
- ld a, [$c712 + 1]
- ld l, a
- ld a, [$c712 + 2]
- ld h, a
-
-.asm_17e250
- call Function17e40f
- ret
-; 17e254
-
-Function17e254: ; 17e254
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [de], a
- call Function17e41e
- ret
-; 17e261
-
-Function17e261: ; 17e261
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [de]
- add [hl]
- ld [de], a
- inc hl
- call Function17e41e
- ret
-; 17e270
-
-Function17e270: ; 17e270
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [de]
- sub [hl]
- ld [de], a
- inc hl
- call Function17e41e
- ret
-; 17e27f
-
-Function17e27f: ; 17e27f
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- ld l, c
- ld h, b
- ld a, [de]
- add [hl]
- ld [de], a
- ret
-; 17e293
-
-Function17e293: ; 17e293
- call Function17e415
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- call Function17e41e
- ld l, c
- ld h, b
- ld a, [de]
- sub [hl]
- ld [de], a
- ret
-; 17e2a7
-
-Function17e2a7: ; 17e2a7
- call Function17e415
- call Function17e41e
- call Function17e32b
- xor a
- ld [wcf66], a
- callba Function118233
- ld de, GFX_17eb7e
- ld hl, VTiles2 tile $60
- lb bc, BANK(GFX_17eb7e), 1
- call Get2bpp
- ld a, [wc300]
- and a
- jr z, .asm_17e2d8
- cp $a
- jr z, .asm_17e2f7
- cp $b
- jr z, .asm_17e300
- call Function17e309
- ret
-
-.asm_17e2d8
- call Function17d60b
- call Function17e349
- xor a
- ld [wcd7a], a
- ld a, $5
- call GetSRAMBank
- ld hl, $aa73
- ld de, $aa7f
- ld bc, $c
- call CopyBytes
- call CloseSRAM
- ret
-
-.asm_17e2f7
- call Function17e349
- ld a, $1
- ld [wcd7a], a
- ret
-
-.asm_17e300
- call Function17e349
- ld a, $2
- ld [wcd7a], a
- ret
-; 17e309
-
-Function17e309: ; 17e309
- ld a, $2
- ld [wc303], a
- call Function17dcaf
- call ClearScreen
- call Function17e349
- call Function17d5f6
- callba DisplayMobileError
- call Function17e349
- call Function17dcaf
- xor a
- ld [wcd77], a
- ret
-; 17e32b
-
-Function17e32b: ; 17e32b
- ld a, $5
- call GetSRAMBank
- ld hl, $c608
- ld de, $b0b1
- ld bc, $40
- call CopyBytes
- ld hl, BGMapBuffer
- ld bc, $5b
- call CopyBytes
- call CloseSRAM
- ret
-; 17e349
-
-Function17e349: ; 17e349
- ld a, $5
- call GetSRAMBank
- ld hl, $b0b1
- ld de, $c608
- ld bc, $40
- call CopyBytes
- ld de, BGMapBuffer
- ld bc, $5b
- call CopyBytes
- call CloseSRAM
- ret
-; 17e367
-
-Function17e367: ; 17e367
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveGameData_
- pop af
- ld [rSVBK], a
- ret
-; 17e37e
-
-Function17e37e: ; 17e37e
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveAfterLinkTrade
- pop af
- ld [rSVBK], a
- ret
-; 17e395
-
-Function17e395: ; 17e395
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveBox
- pop af
- ld [rSVBK], a
- ret
-; 17e3ac
-
-Function17e3ac: ; 17e3ac
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba SaveChecksum
- pop af
- ld [rSVBK], a
- ret
-; 17e3c3
-
-Function17e3c3: ; 17e3c3
- call Function17e415
- call Function17e41e
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- callba UpdateTrainerRankingsChecksum2
- callba BackupMobileEventIndex
- pop af
- ld [rSVBK], a
- ret
-; 17e3e0
-
-Function17e3e0: ; 17e3e0
- call Function17e415
- ld a, [hli]
- ld c, a
- call Function17e41e
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrames
- ret
-; 17e3f0
-
-Function17e3f0: ; 17e3f0
- call Function17e415
- call Function17e41e
-.asm_17e3f6
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- ret nz
- ld a, [hl]
- and $2
- ret nz
- call WaitBGMap
- jr .asm_17e3f6
-; 17e409
-
-Function17e409: ; 17e409
- ld hl, wcd77
- set 7, [hl]
- ret
-; 17e40f
-
-Function17e40f: ; 17e40f
- ld de, UnknBGPals
- add hl, de
- jr Function17e41e
-
-Function17e415:
- ld a, [wcd78]
- ld l, a
- ld a, [wcd79]
- ld h, a
- inc hl
-
-Function17e41e:
- ld a, l
- ld [wcd78], a
- ld a, h
- ld [wcd79], a
- ret
-; 17e427
-
-Function17e427: ; 17e427
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- jr nz, .asm_17e432
- and $2
- ret z
-
-.asm_17e432
- ld a, $3
- ld [wcd77], a
- ret
-; 17e438
-
-Function17e438: ; 17e438
- ld hl, wcd77
- inc [hl]
- ret
-; 17e43d
-
-Function17e43d: ; 17e43d
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, bc
- ret
-; 17e447
-
-Function17e447: ; 17e447
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, de
- ret
-; 17e451
-
-Function17e451: ; 17e451
- ld a, [wcd42]
- and a
- ret z
- call Function17e51b
- call Function17e4dd
- ld a, [wcd2e]
- push af
- ld a, [wcd49]
- ld l, a
- ld a, [wcd4a]
- ld h, a
- ld a, [wcd2f]
- ld [wcd2e], a
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- push hl
- hlcoord 0, 0
- ld bc, $14
- ld a, [wcd23]
- call AddNTimes
- ld a, [CreditsTimer]
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- ld a, [wMobileCommsJumptableIndex]
-.asm_17e48b
- push af
- push hl
- ld a, [wcd24]
-.asm_17e490
- push af
- push hl
- ld a, [bc]
- inc bc
- ld e, a
- ld a, [bc]
- inc bc
- ld d, a
- push bc
- push hl
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, de
- push hl
- pop de
- pop hl
- call PlaceString
- pop bc
- pop hl
- ld a, [wcd26]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [wcd2e]
- inc a
- ld [wcd2e], a
- ld e, a
- ld a, [wcd42]
- cp e
- jr z, .asm_17e4d5
- pop af
- dec a
- jr nz, .asm_17e490
- pop hl
- ld a, [wcd27]
- ld de, $14
-.asm_17e4cb
- add hl, de
- dec a
- jr nz, .asm_17e4cb
- pop af
- dec a
- jr nz, .asm_17e48b
- jr .asm_17e4d8
-
-.asm_17e4d5
- pop af
- pop hl
- pop af
-
-.asm_17e4d8
- pop af
- ld [wcd2e], a
- ret
-; 17e4dd
-
-Function17e4dd: ; 17e4dd
- ld a, [wcd2c]
- and $1
- ret z
- ld a, [wcd29]
- hlcoord 0, 0
- ld bc, $14
- call AddNTimes
- ld a, [wcd28]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [wcd2f]
- and a
- jr z, .asm_17e4ff
- ld a, $61
- ld [hl], a
-
-.asm_17e4ff
- ld a, [wcd2a]
- ld bc, $14
- call AddNTimes
- ld a, [wcd42]
- ld c, a
- ld a, [wcd2e]
- ld b, a
- ld a, [wcd24]
- add b
- cp c
- ret z
- ret nc
- ld a, $ee
- ld [hl], a
- ret
-; 17e51b
-
-Function17e51b: ; 17e51b
- ld a, [wcd28]
- ld hl, CreditsTimer
- sub [hl]
- inc a
- ld [wcd4f], a
- hlcoord 0, 0
- ld bc, $14
- ld a, [wcd23]
- dec a
- call AddNTimes
- ld a, [CreditsTimer]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [wMobileCommsJumptableIndex]
- ld c, a
- ld a, [wcd27]
- call SimpleMultiply
-.asm_17e544
- push af
- push hl
- ld a, [wcd4f]
- ld c, a
- ld b, $0
- ld a, $7f
- call ByteFill
- pop hl
- ld bc, $14
- add hl, bc
- pop af
- dec a
- jr nz, .asm_17e544
- ret
-; 17e55b
-
-Function17e55b: ; 17e55b
- ld a, [wcd42]
- and a
- ret z
- ld a, $ed
- call Function17e571
- ret
-; 17e566
-
-Function17e566: ; 17e566
- ld a, [wcd42]
- and a
- ret z
- ld a, $7f
- call Function17e571
- ret
-; 17e571
-
-Function17e571: ; 17e571
- push af
- hlcoord 0, 0
- ld bc, $14
- ld a, [wcd23]
- call AddNTimes
- ld a, [CreditsTimer]
- ld c, a
- ld b, $0
- add hl, bc
- dec hl
- push hl
- ld a, [wcd31]
- dec a
- ld c, a
- ld a, [wcd27]
- call SimpleMultiply
- ld l, $0
- ld h, l
- ld bc, $14
- call AddNTimes
- ld a, [wcd30]
- dec a
- ld c, a
- ld a, [wcd26]
- call SimpleMultiply
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- add hl, bc
- pop af
- ld [hl], a
- ret
-; 17e5af
-
-Function17e5af: ; 17e5af
- ld a, [wcd2c]
- and $2
- ret z
- ld a, [wcd43]
- ld l, a
- ld a, [wMobileInactivityTimerMinutes]
- ld h, a
- bccoord 0, 0
- add hl, bc
- ld bc, $ffec
- add hl, bc
- ld a, [wMobileInactivityTimerSeconds]
- ld c, a
- ld b, $0
- ld a, [wMobileInactivityTimerFrames]
- call Function17e600
- ld a, [wcd2e]
- ld c, a
- ld b, $0
- ld a, [wcd4d]
- ld l, a
- ld a, [wcd4e]
- ld h, a
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [BGMapBuffer]
- ld l, a
- ld a, [wcd21]
- ld h, a
- add hl, de
- push hl
- pop de
- ld a, [wcd43]
- ld l, a
- ld a, [wMobileInactivityTimerMinutes]
- ld h, a
- bccoord 0, 0
- add hl, bc
- call PlaceString
- ret
-; 17e600
-
-Function17e600: ; 17e600
-.asm_17e600
- push af
- push hl
- push bc
- ld a, $7f
- call ByteFill
- pop bc
- pop hl
- ld de, $14
- add hl, de
- pop af
- dec a
- jr nz, .asm_17e600
- ret
-; 17e613
-
-Function17e613: ; 17e613
- push hl
- hlcoord 0, 0
- ld bc, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.asm_17e620
- jr z, .asm_17e626
- add hl, bc
- dec a
- jr .asm_17e620
-
-.asm_17e626
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- push hl
- ld a, [wcd53]
- ld [hli], a
- ld a, [de]
- inc de
- dec a
- dec a
- jr z, .asm_17e63f
- ld c, a
- ld a, [wcd53]
- inc a
-.asm_17e63b
- ld [hli], a
- dec c
- jr nz, .asm_17e63b
-
-.asm_17e63f
- ld a, [wcd53]
- add $2
- ld [hl], a
- pop hl
- ld bc, $14
- add hl, bc
- ld a, [de]
- dec de
- dec a
- dec a
- jr z, .asm_17e674
- ld b, a
-.asm_17e651
- push hl
- ld a, [wcd53]
- add $3
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .asm_17e664
- ld c, a
- ld a, $7f
-.asm_17e660
- ld [hli], a
- dec c
- jr nz, .asm_17e660
-
-.asm_17e664
- ld a, [wcd53]
- add $4
- ld [hl], a
- pop hl
- push bc
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_17e651
-
-.asm_17e674
- ld a, [wcd53]
- add $5
- ld [hli], a
- ld a, [de]
- dec a
- dec a
- jr z, .asm_17e689
- ld c, a
- ld a, [wcd53]
- add $6
-.asm_17e685
- ld [hli], a
- dec c
- jr nz, .asm_17e685
-
-.asm_17e689
- ld a, [wcd53]
- add $7
- ld [hl], a
- pop hl
- ret
-; 17e691
-
-Function17e691: ; 17e691
- push hl
- ld hl, NULL
- ld bc, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- inc de
- and a
-.asm_17e69f
- jr z, .asm_17e6a5
- add hl, bc
- dec a
- jr .asm_17e69f
-
-.asm_17e6a5
- pop af
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- dec de
-.asm_17e6ac
- push af
- push hl
- ld a, [de]
-.asm_17e6af
- push af
- push hl
- push hl
- bccoord 0, 0
- add hl, bc
- ld a, [hl]
- cp $7f
- jr z, .asm_17e6c2
- ld a, [wcd53]
- add $8
- jr .asm_17e6c7
-
-.asm_17e6c2
- ld a, [wcd53]
- jr .asm_17e6c7
-
-.asm_17e6c7
- pop hl
- bccoord 0, 0, AttrMap
- add hl, bc
- ld [hl], a
- pop hl
- inc hl
- pop af
- dec a
- jr nz, .asm_17e6af
- pop hl
- ld bc, $14
- add hl, bc
- pop af
- dec a
- jr nz, .asm_17e6ac
- pop hl
- ret
-; 17e6de
-
-Function17e6de: ; 17e6de
- push af
- ld a, [$c708]
- ld l, a
- ld a, [$c709]
- ld h, a
- decoord 0, 0, AttrMap
- add hl, de
- pop af
- ld b, $7
-.asm_17e6ee
- push hl
- ld c, $7
-.asm_17e6f1
- ld [hli], a
- dec c
- jr nz, .asm_17e6f1
- pop hl
- ld de, $14
- add hl, de
- dec b
- jr nz, .asm_17e6ee
- ret
-; 17e6fe
-
-
-PokemonNewsGFX: ; 17e6fe
-INCBIN "gfx/mobile/pokemon_news.2bpp"
-
-GFX_17eb7e:
-INCBIN "gfx/unknown/17eb7e.2bpp"
-
-TileAttrmap_17eb8e:
-INCBIN "gfx/unknown/17eb8e.attrmap"
-
-Palette_17eff6:
- RGB 24, 9, 8
- RGB 4, 9, 18
- RGB 18, 18, 12
- RGB 0, 0, 0
- RGB 24, 24, 18
- RGB 18, 18, 12
- RGB 4, 9, 18
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 23, 11, 10
- RGB 13, 6, 5
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 15, 25, 5
- RGB 10, 20, 0
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 20, 28, 20
- RGB 10, 18, 15
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 22, 22, 12
- RGB 17, 12, 5
- RGB 0, 0, 0
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 27, 24, 0
- RGB 24, 16, 3
- RGB 0, 0, 0
-
-
-Function17f036:: ; 17f036
- ld a, $6
- call GetSRAMBank
- inc de
-.asm_17f03c
- call Function17f047
- jr c, .asm_17f043
- jr .asm_17f03c
-
-.asm_17f043
- call CloseSRAM
- ret
-; 17f047
-
-Function17f047: ; 17f047
- ld a, [de]
- inc de
- cp $50
- jr z, .finished
- cp $10
- jr nc, .finished
- dec a
- push de
- ld e, a
- ld d, 0
- ld hl, .Jumptable
- add hl, de
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-
-.finished
- scf
- ret
-; 17f061
-
-.Jumptable: ; 17f061
- dw Function17f081 ; 0
- dw Function17f0f8 ; 1
- dw Function17f154 ; 2
- dw Function17f181 ; 3
- dw Function17f1d0 ; 4
- dw Function17f220 ; 5
- dw Function17f27b ; 6
- dw Function17f2cb ; 7
- dw Function17f2ff ; 8
- dw Function17f334 ; 9
- dw Function17f382 ; a
- dw Function17f3c9 ; b
- dw Function17f3f0 ; c
- dw Function17f41d ; d
- dw Function17f44f ; e
- dw Function17f44f ; f
-; 17f081
-
-Function17f081: ; 17f081
- pop hl
- call Function17f524
- jr c, .asm_17f09f
- ld de, 4
- add hl, de
- ld a, [hli]
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f09d
- and a
- ret
-
-.asm_17f09d
- scf
- ret
-
-.asm_17f09f
- push bc
- ld de, wcd54
- ld bc, 7
- call CopyBytes
- pop bc
- push hl
- push bc
- call Function17f4f6
- pop bc
- ld a, [wcd54]
- ld e, a
- ld a, [wcd55]
- ld d, a
- add hl, de
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- push hl
- ld a, [wcd56]
- ld b, a
- ld a, [wcd57]
- ld c, a
- call MobilePrintNum
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- ld a, [wcd59]
- and a
- jr z, .asm_17f0ee
- ld c, a
- ld a, [wcd57]
- inc a
- ld b, a
- ld e, l
- ld d, h
- dec de
-.asm_17f0e0
- ld a, c
- cp b
- jr z, .asm_17f0ea
- ld a, [de]
- dec de
- ld [hld], a
- dec b
- jr .asm_17f0e0
-
-.asm_17f0ea
- ld a, [wcd5a]
- ld [hl], a
-
-.asm_17f0ee
- pop hl
- ld a, [wcd58]
- call Function17f50f
- pop de
- and a
- ret
-; 17f0f8
-
-Function17f0f8: ; 17f0f8
- pop hl
- call Function17f524
- jr c, .asm_17f114
- ld de, $3
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f112
- and a
- ret
-
-.asm_17f112
- scf
- ret
-
-.asm_17f114
- push bc
- ld de, wcd54
- ld bc, $4
- call CopyBytes
- pop bc
- push hl
- push bc
- call Function17f4f6
- ld a, [wcd54]
- ld e, a
- ld a, [wcd55]
- ld d, a
- add hl, de
- ld de, $c608
- ld a, [wcd56]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, $50
- ld [de], a
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd57]
- call Function17f50f
- pop de
- and a
- ret
-; 17f154
-
-Function17f154: ; 17f154
- pop hl
- call Function17f524
- jr c, .asm_17f167
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld a, [de]
- cp $50
- jr z, .asm_17f165
- and a
- ret
-
-.asm_17f165
- scf
- ret
-
-.asm_17f167
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld c, l
- ld b, h
- pop de
- callba Function11c08f
- ld c, l
- ld b, h
- pop de
- and a
- ret
-; 17f181
-
-Function17f181: ; 17f181
- pop hl
- call Function17f524
- jr c, .asm_17f19d
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f19b
- and a
- ret
-
-.asm_17f19b
- scf
- ret
-
-.asm_17f19d
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld c, a
- ld de, $c608
- callba Function48c63
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f1d0
-
-Function17f1d0: ; 17f1d0
- pop hl
- call Function17f524
- jr c, .asm_17f1ec
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f1ea
- and a
- ret
-
-.asm_17f1ea
- scf
- ret
-
-.asm_17f1ec
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld a, $1
- ld [rSVBK], a
- ld [wd265], a
- call GetPokemonName
- pop hl
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, $4
- ld [rSVBK], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f220
-
-Function17f220: ; 17f220
- pop hl
- call Function17f524
- jr c, .asm_17f23c
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f23a
- and a
- ret
-
-.asm_17f23a
- scf
- ret
-
-.asm_17f23c
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, .Genders
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- pop hl
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f26e
-
-.Genders: dw .Boy, .Girl
-.Boy: db "Boy@"
-.Girl: db "Girl@"
-
-Function17f27b: ; 17f27b
- pop hl
- call Function17f524
- jr c, .asm_17f297
- ld de, $2
- add hl, de
- ld a, [hli]
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f295
- and a
- ret
-
-.asm_17f295
- scf
- ret
-
-.asm_17f297
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- call Function17f4f6
- add hl, de
- ld a, [hl]
- ld a, $1
- ld [rSVBK], a
- ld [wd265], a
- call GetItemName
- pop hl
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, $4
- ld [rSVBK], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f2cb
-
-Function17f2cb: ; 17f2cb
- pop hl
- push bc
- ld a, [hli]
- ld [wcd54], a
- ld a, [hli]
- ld [wcd55], a
- ld a, [wcd2e]
- inc a
- ld [wcd56], a
- pop bc
- push hl
- ld l, c
- ld h, b
- push hl
- ld de, wcd56
- ld b, $1
- ld a, [wcd54]
- ld c, a
- call MobilePrintNum
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- pop hl
- ld a, [wcd55]
- call Function17f50f
- pop de
- and a
- ret
-; 17f2ff
-
-Function17f2ff: ; 17f2ff
- pop hl
- push bc
- ld a, [hli]
- ld [wcd54], a
- pop bc
- push hl
- push bc
- ld a, $1
- ld [rSVBK], a
- ld hl, PlayerName
- ld de, $c608
- ld bc, $6
- call CopyBytes
- ld a, $4
- ld [rSVBK], a
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f334
-
-Function17f334: ; 17f334
- pop hl
- push bc
- ld a, [hli]
- ld [wcd55], a
- and $f
- ld [wcd54], a
- pop bc
- push hl
- ld l, c
- ld h, b
- push hl
- ld a, [wcd55]
- bit 7, a
- jr nz, .asm_17f355
- ld a, BANK(sCrystalData)
- call GetSRAMBank
- ld a, [sCrystalData + 2]
- jr .asm_17f35d
-
-.asm_17f355
- ld a, $5
- call GetSRAMBank
- ld a, [$b2f3]
-
-.asm_17f35d
- ld c, a
- call CloseSRAM
- ld de, $c608
- callba Function48c63
- pop hl
- ld de, $c608
- call PlaceString
- ld a, c
- ld [wcd52], a
- ld a, b
- ld [wcd53], a
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f382
-
-Function17f382: ; 17f382
- pop hl
- push bc
- ld a, [hli]
- ld [wcd55], a
- and $f
- ld [wcd54], a
- pop bc
- push hl
- push bc
- ld l, c
- ld h, b
- ld a, [wcd55]
- bit 7, a
- jr nz, .asm_17f3a3
- ld a, BANK(sCrystalData)
- call GetSRAMBank
- ld de, sCrystalData + 3
- jr .asm_17f3ab
-
-.asm_17f3a3
- ld a, $5
- call GetSRAMBank
- ld de, $b2f4
-
-.asm_17f3ab
- ld a, PRINTNUM_LEADINGZEROS | 2
- ld b, a
- ld a, 3
- ld c, a
- call PrintNum
- call CloseSRAM
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- pop hl
- ld a, [wcd54]
- call Function17f50f
- pop de
- and a
- ret
-; 17f3c9
-
-Function17f3c9: ; 17f3c9
- push bc
- ld hl, wcd36
- ld de, $c708
- ld bc, 12
- call CopyBytes
- pop de
- ld c, $0
- callba Function11c075
- push hl
- ld hl, $c708
- ld de, wcd36
- ld bc, $c
- call CopyBytes
- pop bc
- pop de
- and a
- ret
-; 17f3f0
-
-Function17f3f0: ; 17f3f0
- pop hl
- push hl
- ld a, [hli]
- push af
- push bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [de]
- ld c, a
- ld b, $0
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld hl, UnknBGPals
- add hl, de
- ld e, l
- ld d, h
- pop hl
- call PlaceString
- pop af
- ld e, a
- ld d, $0
- pop hl
- add hl, de
- add hl, de
- inc hl
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- scf
- ret
-; 17f41d
-
-Function17f41d: ; 17f41d
- pop hl
- ld a, [hli]
- push hl
- push af
- ld l, c
- ld h, b
- ld bc, -TileMap + $10000
- add hl, bc
- ld de, -SCREEN_WIDTH
- ld c, $1
-.asm_17f42c
- ld a, h
- and a
- jr nz, .asm_17f435
- ld a, l
- cp SCREEN_WIDTH
- jr c, .asm_17f439
-
-.asm_17f435
- add hl, de
- inc c
- jr .asm_17f42c
-
-.asm_17f439
- hlcoord 0, 0
- ld de, SCREEN_WIDTH
- ld a, c
-.asm_17f440
- and a
- jr z, .asm_17f447
- add hl, de
- dec a
- jr .asm_17f440
-
-.asm_17f447
- pop af
- ld e, a
- ld d, 0
- add hl, de
- pop de
- and a
- ret
-; 17f44f
-
-Function17f44f: ; 17f44f
- pop hl
- call Function17f524
- jr c, .asm_17f46d
- ld de, $5
- add hl, de
- ld a, [hli]
- inc hl
- inc hl
- ld e, l
- ld d, h
- ld l, c
- ld h, b
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [de]
- cp $50
- jr z, .asm_17f46b
- and a
- ret
-
-.asm_17f46b
- scf
- ret
-
-.asm_17f46d
- push bc
- ld de, wcd54
- ld bc, $8
- call CopyBytes
- pop bc
- push hl
- push bc
- ld a, [wcd56]
- cp $c0
- jr c, .asm_17f488
- ld a, [wcd54]
- ld [rSVBK], a
- jr .asm_17f48e
-
-.asm_17f488
- ld a, [wcd54]
- call GetSRAMBank
-
-.asm_17f48e
- ld a, [wcd55]
- ld l, a
- ld a, [wcd56]
- ld h, a
- ld de, $c608
- ld a, [wcd57]
- ld c, a
- ld b, $0
- call CopyBytes
- ld a, [wcd56]
- cp $c0
- jr c, .asm_17f4af
- ld a, $4
- ld [rSVBK], a
- jr .asm_17f4b7
-
-.asm_17f4af
- call CloseSRAM
- ld a, $6
- call GetSRAMBank
-
-.asm_17f4b7
- ld de, $c608
- pop hl
- push hl
- ld a, [wcd57]
- ld b, a
- ld a, [wcd58]
- ld c, a
- call MobilePrintNum
- ld a, l
- ld [wcd52], a
- ld a, h
- ld [wcd53], a
- ld a, [wcd5a]
- and a
- jr z, .asm_17f4ec
- ld c, a
- ld a, [wcd58]
- inc a
- ld b, a
- ld e, l
- ld d, h
- dec de
-.asm_17f4de
- ld a, c
- cp b
- jr z, .asm_17f4e8
- ld a, [de]
- dec de
- ld [hld], a
- dec b
- jr .asm_17f4de
-
-.asm_17f4e8
- ld a, [wcd5b]
- ld [hl], a
-
-.asm_17f4ec
- pop hl
- ld a, [wcd59]
- call Function17f50f
- pop de
- and a
- ret
-; 17f4f6
-
-Function17f4f6: ; 17f4f6
- ld a, [wcd6a]
- ld l, a
- ld a, [wcd6b]
- ld h, a
- ld a, [wcd47]
- ld c, a
- ld a, [BGMapPalBuffer]
- ld b, a
- ld a, [wcd2e]
-.asm_17f509
- and a
- ret z
- dec a
- add hl, bc
- jr .asm_17f509
-; 17f50f
-
-Function17f50f: ; 17f50f
- and a
- jr z, .asm_17f519
- ld c, a
- ld b, $0
- add hl, bc
- ld c, l
- ld b, h
- ret
-
-.asm_17f519
- ld a, [wcd52]
- ld c, a
- ld l, a
- ld a, [wcd53]
- ld b, a
- ld h, a
- ret
-; 17f524
-
-Function17f524: ; 17f524
- push hl
- push bc
- push de
- ld a, [wcd42]
- dec a
- ld b, a
- ld a, [wcd2e]
- cp b
- jr z, .asm_17f53a
- ld hl, wcd68
- cp [hl]
-.asm_17f536
- pop de
- pop bc
- pop hl
- ret
-
-.asm_17f53a
- scf
- jr .asm_17f536
-; 17f53d
-
-BattleTowerMobileError: ; 17f53d
- call FadeToMenu
- xor a
- ld [wc303], a
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
-
- call DisplayMobileError
-
- pop af
- ld [rSVBK], a
- call ExitAllMenus
- ret
-; 17f555
-
-DisplayMobileError: ; 17f555
-.loop
- call JoyTextDelay
- call .RunJumptable
- ld a, [wc303]
- bit 7, a
- jr nz, .quit
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- jr .loop
-
-.quit
- call .deinit
- ret
-
-.deinit
- ld a, [wc300]
- cp $22
- jr z, .asm_17f597
- cp $31
- jr z, .asm_17f58a
- cp $33
- ret nz
- ld a, [wc301]
- cp $1
- ret nz
- ld a, [wc302]
- cp $2
- ret nz
- jr .asm_17f5a1
-
-.asm_17f58a
- ld a, [wc301]
- cp $3
- ret nz
- ld a, [wc302]
- and a
- ret nz
- jr .asm_17f5a1
-
-.asm_17f597
- ld a, [wc301]
- and a
- ret nz
- ld a, [wc302]
- and a
- ret nz
-
-.asm_17f5a1
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- xor a
- ld [sMobileLoginPassword], a
- call CloseSRAM
- ret
-; 17f5ae
-
-.RunJumptable: ; 17f5ae
- jumptable .Jumptable, wc303
-; 17f5bd
-
-.Jumptable: ; 17f5bd
- dw Function17f5c3
- dw Function17ff23
- dw Function17f5d2
-; 17f5c3
-
-Function17f5c3: ; 17f5c3
- call Function17f5e4
- callba FinishExitMenu
- ld a, $1
- ld [wc303], a
- ret
-; 17f5d2
-
-Function17f5d2: ; 17f5d2
- call Function17f5e4
- callba HDMATransferAttrMapAndTileMapToWRAMBank3
- call SetPalettes
- ld a, $1
- ld [wc303], a
- ret
-; 17f5e4
-
-Function17f5e4: ; 17f5e4
- ld a, $8
- ld [MusicFade], a
- ld de, MUSIC_NONE
- ld a, e
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- ld a, " "
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- ld a, $6
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call ByteFill
- hlcoord 2, 1
- ld b, $1
- ld c, $e
- call Function3eea
- hlcoord 1, 4
- ld b, $c
- ld c, $10
- call Function3eea
- hlcoord 3, 2
- ld de, String_17f6dc
- call PlaceString
- call Function17ff3c
- jr nc, .asm_17f632
- hlcoord 11, 2
- call Function17f6b7
-
-.asm_17f632
- ld a, [wc300]
- cp $d0
- jr nc, .asm_17f684
- cp $10
- jr c, .asm_17f679
- sub $10
- cp $24
- jr nc, .asm_17f679
- ld e, a
- ld d, $0
- ld hl, Table_17f706
- add hl, de
- add hl, de
- ld a, [wc301]
- ld e, a
- ld a, [wc302]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld h, a
- ld l, c
- ld a, [hli]
- and a
- jr z, .asm_17f679
- ld c, a
-.asm_17f65d
- ld a, [hli]
- ld b, a
- ld a, [hli]
- cp $ff
- jr nz, .asm_17f667
- cp b
- jr z, .asm_17f66e
-
-.asm_17f667
- xor d
- jr nz, .asm_17f674
- ld a, b
- xor e
- jr nz, .asm_17f674
-
-.asm_17f66e
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- jr .asm_17f67d
-
-.asm_17f674
- inc hl
- inc hl
- dec c
- jr nz, .asm_17f65d
-
-.asm_17f679
- ld a, $d9
- jr .asm_17f684
-
-.asm_17f67d
- hlcoord 2, 6
- call PlaceString
- ret
-
-.asm_17f684
- sub $d0
- ld e, a
- ld d, 0
- ld hl, Table_17f699
- add hl, de
- add hl, de
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- hlcoord 2, 6
- call PlaceString
- ret
-; 17f699
-
-Table_17f699: ; 17f699
- dw String_17fedf
- dw String_17fdd9
- dw String_17fdd9
- dw String_17fe03
- dw String_17fd84
- dw String_17fe63
- dw String_17fdb2
- dw String_17fe4b
- dw String_17fe03
- dw String_17fe03
- dw String_17fe03
-; 17f6af
-
-Palette_17f6af: ; 17f6af
- RGB 5, 5, 16
- RGB 8, 19, 28
- RGB 0, 0, 0
- RGB 31, 31, 31
-; 17f6b7
-
-Function17f6b7: ; 17f6b7
- ld a, [wc300]
- call .bcd_two_digits
- inc hl
- ld a, [wc302]
- and $f
- call .bcd_digit
- ld a, [wc301]
- call .bcd_two_digits
- ret
-; 17f6cd
-
-.bcd_two_digits ; 17f6cd
- ld c, a
- and $f0
- swap a
- call .bcd_digit
- ld a, c
- and $f
-
-.bcd_digit ; 17f6d8
- add "0"
- ld [hli], a
- ret
-; 17f6dc
-
-String_17f6dc: ; 17f6dc
- db "つうしんエラー ー@"
-; 17f6e8
-
-String_17f6e8: ; 17f6e8
- db "みていぎ", $25, "エラーです"
- next "プログラム", $1f
- next "かくにん してください"
- db "@"
-; 17f706
-
-Table_17f706:
- dw Unknown_17f74e
- dw Unknown_17f753
- dw Unknown_17f758
- dw Unknown_17f75d
- dw Unknown_17f762
- dw Unknown_17f767
- dw Unknown_17f778
- dw Unknown_17f77d
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f782
- dw Unknown_17f787
- dw Unknown_17f78c
- dw Unknown_17f791
- dw Unknown_17f796
- dw Unknown_17f79b
- dw Unknown_17f7a0
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7a5
- dw Unknown_17f7ea
- dw Unknown_17f7ff
- dw Unknown_17f844
-
-Unknown_17f74e: db 1
- dbbw $0, $0, String_17f891
-
-Unknown_17f753: db 1
- dbbw $0, $0, String_17f8d1
-
-Unknown_17f758: db 1
- dbbw $0, $0, String_17f913
-
-Unknown_17f75d: db 1
- dbbw $0, $0, String_17f8d1
-
-Unknown_17f762: db 1
- dbbw $0, $0, String_17fa71
-
-Unknown_17f767: db 4
- dbbw $0, $0, String_17f946
- dbbw $1, $0, String_17f946
- dbbw $2, $0, String_17f946
- dbbw $3, $0, String_17f946
-
-Unknown_17f778: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f77d: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f782: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f787: db 1
- dbbw $0, $0, String_17f98e
-
-Unknown_17f78c: db 1
- dbbw $0, $0, String_17f9d0
-
-Unknown_17f791: db 1
- dbbw $0, $0, String_17fa14
-
-Unknown_17f796: db 1
- dbbw $0, $0, String_17fcbf
-
-Unknown_17f79b: db 1
- dbbw $0, $0, String_17fa71
-
-Unknown_17f7a0: db 1
- dbbw $0, $0, String_17fbfe
-
-Unknown_17f7a5: db 17
- dbbw $0, $0, String_17f98e
- dbbw $21, $2, String_17fcbf
- dbbw $21, $4, String_17fcbf
- dbbw $50, $4, String_17faf9
- dbbw $51, $4, String_17fcbf
- dbbw $52, $4, String_17fcbf
- dbbw $0, $5, String_17f98e
- dbbw $1, $5, String_17f98e
- dbbw $2, $5, String_17f98e
- dbbw $3, $5, String_17f98e
- dbbw $4, $5, String_17f98e
- dbbw $50, $5, String_17faf9
- dbbw $51, $5, String_17faf9
- dbbw $52, $5, String_17fcbf
- dbbw $53, $5, String_17faf9
- dbbw $54, $5, String_17fcbf
- dbbw $ff, $ff, String_17fcbf
-
-Unknown_17f7ea: db 5
- dbbw $0, $0, String_17f98e
- dbbw $2, $0, String_17fb2a
- dbbw $3, $0, String_17fb6e
- dbbw $4, $0, String_17f98e
- dbbw $ff, $ff, String_17fcbf
-
-Unknown_17f7ff: db 17
- dbbw $0, $0, String_17f98e
- dbbw $1, $3, String_17f98e
- dbbw $2, $3, String_17f98e
- dbbw $0, $4, String_17f98e
- dbbw $1, $4, String_17f98e
- dbbw $3, $4, String_17fbb6
- dbbw $4, $4, String_17fbb6
- dbbw $5, $4, String_17f98e
- dbbw $6, $4, String_17f98e
- dbbw $7, $4, String_17f98e
- dbbw $8, $4, String_17fbfe
- dbbw $0, $5, String_17fa49
- dbbw $1, $5, String_17f98e
- dbbw $2, $5, String_17fa49
- dbbw $3, $5, String_17fab0
- dbbw $4, $5, String_17fa49
- dbbw $ff, $ff, String_17fa49
-
-Unknown_17f844: db 19
- dbbw $1, $1, String_17fc3e
- dbbw $2, $1, String_17fc88
- dbbw $3, $1, String_17fcff
- dbbw $4, $1, String_17fd84
- dbbw $5, $1, String_17fd84
- dbbw $6, $1, String_17fd47
- dbbw $1, $2, String_17fb6e
- dbbw $2, $2, String_17f98e
- dbbw $3, $2, String_17fd84
- dbbw $4, $2, String_17f98e
- dbbw $5, $2, String_17fa49
- dbbw $6, $2, String_17fd84
- dbbw $99, $2, String_17fc88
- dbbw $1, $3, String_17fa49
- dbbw $1, $4, String_17fa49
- dbbw $2, $4, String_17fa49
- dbbw $3, $4, String_17fa49
- dbbw $4, $4, String_17fa49
- dbbw $ff, $ff, String_17fa49
-
-String_17f891: ; 17f891
- db "モバイルアダプタが ただしく"
- next "さしこまれていません"
- next "とりあつかいせつめいしょを"
- next "ごらんのうえ しっかりと"
- next "さしこんで ください"
- db "@"
-
-String_17f8d1: ; 17f8d1
- db "でんわが うまく かけられないか"
- next "でんわかいせんが こんでいるので"
- next "つうしん できません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17f913: ; 17f913
- db "でんわかいせんが こんでいるため"
- next "でんわが かけられません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17f946: ; 17f946
- db "モバイルアダプタの エラーです"
- next "しばらく まって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17f98e: ; 17f98e
- db "つうしんエラーです"
- next "しばらく まって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17f9d0: ; 17f9d0
- db "ログインパスワードか"
- next "ログイン アイディーに"
- next "まちがいがあります"
- next "パスワードを かくにんして"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fa14: ; 17fa14
- db "でんわが きれました"
- next "とりあつかいせつめいしょを"
- next "ごらんのうえ"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fa49: ; 17fa49
- db "モバイルセンターの"
- next "つうしんエラーです"
- next "しばらくまって"
- next "かけなおして ください"
- db "@"
-
-String_17fa71: ; 17fa71
- db "モバイルアダプタに"
- next "とうろくされた じょうほうが"
- next "ただしく ありません"
- next "モバイルトレーナーで"
- next "しょきとうろくを してください"
- db "@"
-
-String_17fab0: ; 17fab0
- db "モバイルセンターが"
- next "こんでいて つながりません"
- next "しばらくまって"
- next "かけなおして ください"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17faf9: ; 17faf9
- db "あてさき メールアドレスに"
- next "まちがいがあります"
- next "ただしい メールアドレスを"
- next "いれなおしてください"
- db "@"
-
-String_17fb2a: ; 17fb2a
- db "メールアドレスに"
- next "まちがいが あります"
- next "とりあつかいせつめいしょを"
- next "ごらんのうえ"
- next "モバイルトレーナーで"
- next "しょきとうろくを してください"
- db "@"
-
-String_17fb6e: ; 17fb6e
- db "ログインパスワードに"
- next "まちがいが あるか"
- next "モバイルセンターの エラーです"
- next "パスワードを かくにんして"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fbb6: ; 17fbb6
- db "データの よみこみが できません"
- next "しばらくまって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17fbfe: ; 17fbfe
- db "じかんぎれです"
- next "でんわが きれました"
- next "でんわを かけなおしてください"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fc3e: ; 17fc3e
- db "ごりよう りょうきんの "
- next "おしはらいが おくれたばあいには"
- next "ごりようが できなくなります"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fc88: ; 17fc88
- db "おきゃくさまの ごつごうにより"
- next "ごりようできません"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fcbf: ; 17fcbf
- db "でんわかいせんが こんでいるか"
- next "モバイルセンターの エラーで"
- next "つうしんが できません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fcff: ; 17fcff
- db "ごりよう りょうきんが"
- next "じょうげんを こえているため"
- next "こんげつは ごりようできません"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fd47: ; 17fd47
- db "げんざい モバイルセンターの"
- next "てんけんを しているので"
- next "つうしんが できません"
- next "しばらく まって"
- next "かけなおして ください"
- db "@"
-
-String_17fd84: ; 17fd84
- db "データの よみこみが できません"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-
-String_17fdb2: ; 17fdb2
- db "3ぷん いじょう なにも"
- next "にゅうりょく しなかったので"
- next "でんわが きれました"
- db "@"
-
-String_17fdd9: ; 17fdd9
- db "つうしんが うまく"
- next "できませんでした"
- next "もういちど はじめから"
- next "やりなおしてください"
- db "@"
-
-String_17fe03: ; 17fe03
- db "データの よみこみが できません"
- next "しばらくまって"
- next "かけなおして ください"
- next "なおらない ときは"
- next "モバイルサポートセンターへ"
- next "おといあわせください"
- db "@"
-
-String_17fe4b: ; 17fe4b
- db "まちじかんが ながいので"
- next "でんわが きれました"
- db "@"
-
-String_17fe63: ; 17fe63
- db "あいての モバイルアダプタと"
- next "タイプが ちがいます"
- next "くわしくは とりあつかい"
- next "せつめいしょを ごらんください"
- db "@"
-
-String_17fe9a: ; 17fe9a ; unreferenced
- db "ポケモンニュースが"
- next "あたらしくなっているので"
- next "レポートを おくれません"
- next "あたらしい ポケモンニュースの"
- next "よみこみを さきに してください"
- db "@"
-
-String_17fedf: ; 17fedf
- db "つうしんの じょうきょうが"
- next "よくないか かけるあいてが"
- next "まちがっています"
- next "もういちど かくにんをして"
- next "でんわを かけなおして ください"
- db "@"
-; 17ff23
-
-Function17ff23: ; 17ff23
- ld a, [hJoyPressed]
- and a
- ret z
- ld a, $8
- ld [MusicFade], a
- ld a, [wMapMusic]
- ld [MusicFadeID], a
- xor a
- ld [MusicFadeID + 1], a
- ld hl, wc303
- set 7, [hl]
- ret
-; 17ff3c
-
-Function17ff3c: ; 17ff3c
- nop
- ld a, [wc300]
- cp $d0
- ret c
- hlcoord 10, 2
- ld de, String_17ff68
- call PlaceString
- ld a, [wc300]
- push af
- sub $d0
- inc a
- ld [wc300], a
- hlcoord 14, 2
- ld de, wc300
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- pop af
- ld [wc300], a
- and a
- ret
-; 17ff68
-
-String_17ff68: ; 17ff68
- db "101@"
-; 17ff6c
diff --git a/misc/mobile_menu.asm b/misc/mobile_menu.asm
deleted file mode 100755
index 1bee0cced..000000000
--- a/misc/mobile_menu.asm
+++ /dev/null
@@ -1,879 +0,0 @@
-MainMenu_Mobile: ; 49efc
- call ClearBGPalettes
- ld a, MUSIC_MOBILE_ADAPTER_MENU
- ld [wMapMusic], a
- ld de, MUSIC_MOBILE_ADAPTER_MENU
- call Function4a6c5
-Function49f0a: ; 49f0a
- call ClearBGPalettes
- call Function4a3a7
- call Function4a492
- call ClearBGPalettes
-Function49f16: ; 49f16
- call MobileMenu_InitMenuBuffers
- ld c, 12
- call DelayFrames
- hlcoord 4, 0
- ld b, 10
- ld c, 10
- call Function48cdc
- hlcoord 6, 2
- ld de, MobileString1
- call PlaceString
- hlcoord 0, 12
- ld b, 4
- ld c, SCREEN_HEIGHT
- call TextBox
- xor a
- ld de, String_0x49fe9
- hlcoord 1, 14
- call PlaceString
- call WaitBGMap2
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr .check_buttons
-
-.joy_loop
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-
-.check_buttons
- bit A_BUTTON_F, a
- jr nz, .a_button
- bit B_BUTTON_F, a
- jr nz, .b_button
- jr .next
-
-.a_button
- ld hl, wMenuCursorY
- ld a, [hl]
- cp 1
- jp z, Function4a098
- cp 2
- jp z, Function4a0b9
- cp 3
- jp z, Function4a0c2
- cp 4
- jp z, Function4a100
- ld a, 1
- call MenuClickSound
-.b_button
- pop bc
- call ClearBGPalettes
- call ClearTileMap
- ld a, MUSIC_MAIN_MENU
- ld [wMapMusic], a
- ld de, MUSIC_MAIN_MENU
- call Function4a6c5
- ret
-
-.next
- ld hl, wMenuCursorY
- ld a, [hl]
- dec a
- ld hl, MobileStrings2
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, 4
- ld c, SCREEN_HEIGHT
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- jp .useless_jump
-
-.useless_jump
- call MobileMenu_InitMenuBuffers
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- ld b, $a
- ld c, $1
- hlcoord 5, 1
- call ClearBox
- jp .joy_loop
-; 49fcc
-
-
-MobileString1: ; 49fcc
- db "めいしフ,ルダー"
- next "あいさつ"
- next "プロフィール"
- next "せ", $1e, "い"
- next "もどる"
- db "@"
-; 49fe9
-
-
-MobileStrings2:
-
-String_0x49fe9: ; 49fe9
- db "めいし¯つくったり"
- next "ほぞんしておける フ,ルダーです@"
-; 4a004
-
-String_0x4a004: ; 4a004
- db "モバイルたいせんや じぶんのめいしで"
- next "つかう あいさつ¯つくります@"
-; 4a026
-
-String_0x4a026: ; 4a026
- db "あなた%じゅうしょや ねんれいの"
- next "せ", $1e, "い¯かえられます@"
-; 4a042
-
-String_0x4a042: ; 4a042
- db "モバイルセンター", $1d, "せつぞくするとき"
- next "ひつような こと¯きめます@"
-; 4a062
-
-String_0x4a062: ; 4a062
- db "まえ%がめん ", $1d, "もどります"
- next "@"
-; 4a071
-
-MobileMenu_InitMenuBuffers: ; 4a071 (12:6071)
- ld hl, w2DMenuCursorInitY
- ld a, 2
- ld [hli], a
- ld a, 5 ; w2DMenuCursorInitX
- ld [hli], a
- ld a, 5 ; w2DMenuNumRows
- ld [hli], a
- ld a, 1 ; w2DMenuNumCols
- ld [hli], a
- ld [hl], $0 ; w2DMenuFlags1
- set 5, [hl]
- inc hl
- xor a ; w2DMenuFlags2
- ld [hli], a
- ld a, $20 ; w2DMenuCursorOffsets
- ld [hli], a
- ; this is a stupid way to load $c3
- ld a, A_BUTTON
- add D_UP
- add D_DOWN
- add B_BUTTON
- ld [hli], a ; wMenuJoypadFilter
- ld a, 1
- ld [hli], a ; wMenuCursorY, wMenuCursorX
- ld [hli], a ; wMenuCursorY, wMenuCursorX
- ret
-
-Function4a098: ; 4a098 (12:6098)
- ld a, 2
- call MenuClickSound
- call PlaceHollowCursor
- call WaitBGMap
- call LoadStandardMenuDataHeader
- callba Function89de0
- call Call_ExitMenu
- call MG_Mobile_Layout_LoadPals
- call Function4a485
- pop bc
- jp Function49f16
-
-Function4a0b9: ; 4a0b9 (12:60b9)
- ld a, 2
- call MenuClickSound
- pop bc
- jp Function4a4c4
-
-Function4a0c2: ; 4a0c2 (12:60c2)
- ld a, 2
- call MenuClickSound
- ld a, BANK(sPlayerData)
- call GetSRAMBank
- ld hl, sPlayerData + PlayerName - wPlayerData
- ld de, PlayerName
- ld bc, 6 ; japanese name length
- call CopyBytes
- call CloseSRAM
- callba _LoadData
- ld c, 2
- call DelayFrames
- ld c, $1
- call InitMobileProfile
- push af
- call ClearBGPalettes
- pop af
- and a
- jr nz, .skip_save
- callba _SaveData
-.skip_save
- ld c, 5
- call DelayFrames
- jr asm_4a111
-
-Function4a100: ; 4a100 (12:6100)
- ld a, 2
- call MenuClickSound
- call ClearBGPalettes
- call Function4a13b
- call ClearBGPalettes
- call ClearTileMap
-
-asm_4a111: ; 4a111 (12:6111)
- pop bc
- call LoadFontsExtra
- jp Function49f0a
-
-Function4a118: ; 4a118 (12:6118)
- ld hl, w2DMenuCursorInitY
- ld a, $1
- ld [hli], a
- ld a, $d
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $2
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hli], a
- ret
-
-Function4a13b: ; 4a13b (12:613b)
- call Function4a3a7
- call Function4a492
- call Function4a373
- ld c, 10
- call DelayFrames
-
-Function4a149: ; 4a149 (12:6149)
- hlcoord 1, 2
- ld b, $6
- ld c, $10
- call Function48cdc
- hlcoord 3, 4
- ld de, String_4a1ef
- call PlaceString
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- ld a, [wMenuCursorY]
- dec a
- ld hl, Strings_4a23d
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr asm_4a19d
-
-Function4a195: ; 4a195 (12:6195)
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-
-asm_4a19d: ; 4a19d (12:619d)
- bit 0, a
- jr nz, .asm_4a1a7
- bit 1, a
- jr nz, .asm_4a1ba
- jr .asm_4a1bc
-.asm_4a1a7
- ld hl, wMenuCursorY
- ld a, [hl]
- cp $1
- jp z, Function4a20e
- cp $2
- jp z, Function4a221
- ld a, $1
- call MenuClickSound
-.asm_4a1ba
- pop bc
- ret
-.asm_4a1bc
- ld hl, wMenuCursorY
- ld a, [hl]
- dec a
- ld hl, Strings_4a23d
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- jr .asm_4a1db
-.asm_4a1db
- call Function4a373
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- lb bc, 6, 1
- hlcoord 2, 3
- call ClearBox
- jp Function4a195
-; 4a1ef (12:61ef)
-
-String_4a1ef: ; 4a1ef
- db "モバイルセンター¯えらぶ"
- next "ログインパスワード¯いれる"
- next "もどる@"
-; 4a20e
-
-Function4a20e: ; 4a20e (12:620e)
- ld a, $1
- call MenuClickSound
- callba Function1719c8
- call ClearBGPalettes
- call DelayFrame
- jr Function4a239
-
-Function4a221: ; 4a221 (12:6221)
- ld a, $1
- call MenuClickSound
- call Function4a28a
- jr c, Function4a239
- call Function4a373
- ld a, $2
- ld [wMenuCursorY], a
- jr .asm_4a235
-.asm_4a235
- pop bc
- jp Function4a149
-
-Function4a239: ; 4a239 (12:6239)
- pop bc
- jp Function4a13b
-; 4a23d (12:623d)
-
-Strings_4a23d: ; 4a23d
- db "いつも せつぞく¯する"
- next "モバイルセンター¯えらびます@"
-
- db "モバイルセンター", $1d, "せつぞくするとき"
- next "つかうパスワード¯ほぞんできます@"
-
- db "まえ%がめん ", $1d, "もどります@"
-
- db "@"
-; 4a28a
-
-Function4a28a: ; 4a28a (12:628a)
- hlcoord 2, 3
- lb bc, 6, 1
- ld a, " "
- call Function4a6d8
- call PlaceHollowCursor
- call WaitBGMap
- call LoadStandardMenuDataHeader
- ld a, $5
- call GetSRAMBank
- ld a, [$aa4b]
- call CloseSRAM
- and a
- jr z, .asm_4a2df
- hlcoord 12, 0
- ld b, $5
- ld c, $6
- call Function48cdc
- hlcoord 14, 1
- ld de, String_4a34b
- call PlaceString
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- call Function4a118
- call ScrollingMenuJoypad
- push af
- call PlayClickSFX
- pop af
- bit B_BUTTON_F, a
- jr nz, .quit
- ld a, [wMenuCursorY]
- cp $2
- jr z, .DeleteLoginPassword
- cp $3
- jr z, .quit
-.asm_4a2df
- callba Function11765d
- call ClearBGPalettes
- call Call_ExitMenu
- call LoadFontsExtra
- scf
- ret
-
-.DeleteLoginPassword:
- call PlaceHollowCursor
- ld hl, UnknownText_0x4a358
- call PrintText
- hlcoord 14, 7
- ld b, 3
- ld c, 4
- call TextBox
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- ld hl, DeletePassword_YesNo_MenuDataHeader
- call LoadMenuDataHeader
- call VerticalMenu
- bit B_BUTTON_F, a
- jr nz, .dont_delete_password
- ld a, [wMenuCursorY]
- cp $2
- jr z, .dont_delete_password
- ld a, BANK(sMobileLoginPassword)
- call GetSRAMBank
- ld hl, sMobileLoginPassword
- xor a
- ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
- call ByteFill
- call CloseSRAM
- ld hl, UnknownText_0x4a35d
- call PrintText
- call JoyWaitAorB
-.dont_delete_password
- call ExitMenu
-.quit
- call Call_ExitMenu
- callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
- xor a
- ret
-; 4a346 (12:6346)
-
-MenuDataHeader_0x4a346: ; 0x4a346
- db $40 ; flags
- db 00, 12 ; start coords
- db 06, 19 ; end coords
-
-String_4a34b: ; 4a34b
- db "いれなおす"
- next "けす"
- next "もどる@"
-; 4a358
-
-UnknownText_0x4a358: ; 0x4a358
- ; Delete the saved LOG-IN PASSWORD?
- text_jump UnknownText_0x1c5196
- db "@"
-; 0x4a35d
-
-UnknownText_0x4a35d: ; 0x4a35d
- ; Deleted the LOG-IN PASSWORD.
- text_jump UnknownText_0x1c51b9
- db "@"
-; 0x4a362
-
-DeletePassword_YesNo_MenuDataHeader: ; 0x4a362
- db $40 ; flags
- db 07, 14 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_0x4a36a
- db 2 ; default option
-; 0x4a36a
-
-MenuData2_0x4a36a: ; 0x4a36a
- db $e0 ; flags
- db 2 ; items
- db "はい@"
- db "いいえ@"
-; 0x4a373
-
-Function4a373: ; 4a373 (12:6373)
- ld hl, w2DMenuCursorInitY
- ld a, $4
- ld [hli], a
- ld a, $2
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- add $2
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hli], a
- ret
-; 4a39a (12:639a)
-
-Function4a39a: ; 4a39a
- call Function4a485
- call Function4a492
- call Function4a3aa
- call SetPalettes
- ret
-; 4a3a7
-
-Function4a3a7: ; 4a3a7 (12:63a7)
- call Function4a485
-Function4a3aa: ; 4a3aa
- hlcoord 0, 0
- lb bc, 3, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 1, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 4, 1
- ld a, $2
- call Function4a6d8
- lb bc, 1, 1
- ld a, $3
- call Function4a6d8
- lb bc, 1, 1
- ld a, " "
- call Function4a6d8
- hlcoord 1, 0
- ld a, $1
- lb bc, 3, 18
- call Function4a6d8
- lb bc, 1, 18
- ld a, $0
- call Function4a6d8
- lb bc, 1, 18
- ld a, $1
- call Function4a6d8
- lb bc, 1, 18
- ld a, $2
- call Function4a6d8
- lb bc, 11, 18
- ld a, " "
- call Function4a6d8
- hlcoord 19, 0
- lb bc, 3, 1
- ld a, $0
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 1, 1
- xor a
- call Function4a6d8
- lb bc, 1, 1
- ld a, $1
- call Function4a6d8
- lb bc, 4, 1
- ld a, $2
- call Function4a6d8
- lb bc, 1, 1
- ld a, $3
- call Function4a6d8
- lb bc, 1, 1
- ld a, " "
- call Function4a6d8
- ret
-; 4a449 (12:6449)
-
-Function4a449: ; 4a449
- ld bc, 3 * SCREEN_WIDTH
- ld a, $0
- hlcoord 0, 0
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $1
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $0
- call ByteFill
- ld bc, 2 * SCREEN_WIDTH
- ld a, $1
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, $2
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, $3
- call ByteFill
- ld bc, SCREEN_WIDTH
- ld a, " "
- call ByteFill
- ret
-; 4a485
-
-Function4a485: ; 4a485 (12:6485)
- ld de, GFX_49c0c
- ld hl, VTiles2 tile $00
- lb bc, BANK(GFX_49c0c), 13
- call Get2bpp
- ret
-
-Function4a492: ; 4a492 (12:6492)
- call MG_Mobile_Layout00
- ret
-
-
-MainMenu_MobileStudium: ; 4a496
- ld a, [StartDay]
- ld b, a
- ld a, [StartHour]
- ld c, a
- ld a, [StartMinute]
- ld d, a
- ld a, [StartSecond]
- ld e, a
- push bc
- push de
- callba MobileStudium
- call ClearBGPalettes
- pop de
- pop bc
- ld a, b
- ld [StartDay], a
- ld a, c
- ld [StartHour], a
- ld a, d
- ld [StartMinute], a
- ld a, e
- ld [StartSecond], a
- ret
-; 4a4c4
-
-
-Function4a4c4: ; 4a4c4 (12:64c4)
- call ClearBGPalettes
- call Function4a3a7
- call Function4a492
- call Function4a680
- call ClearBGPalettes
- ld c, 20
- call DelayFrames
- hlcoord 2, 0
- ld b, $a
- ld c, $e
- call Function48cdc
- hlcoord 4, 2
- ld de, String_4a5c5
- call PlaceString
- hlcoord 4, 4
- ld de, String_4a5cd
- call PlaceString
- hlcoord 4, 6
- ld de, String_4a5da
- call PlaceString
- hlcoord 4, 8
- ld de, String_4a5e6
- call PlaceString
- hlcoord 4, 10
- ld de, String_4a5f2
- call PlaceString
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- xor a
- ld hl, Strings_4a5f6
- ld d, h
- ld e, l
- hlcoord 1, 14
- call PlaceString
- ld a, $1
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- call WaitBGMap2
- call SetPalettes
- call StaticMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
- jr asm_4a54d
-
-Function4a545: ; 4a545 (12:6545)
- call ScrollingMenuJoypad
- ld hl, wMenuCursorY
- ld b, [hl]
- push bc
-
-asm_4a54d: ; 4a54d (12:654d)
- bit 0, a
- jr nz, .asm_4a557
- bit 1, a
- jr nz, .asm_4a574
- jr .asm_4a57e
-.asm_4a557
- ld hl, wMenuCursorY
- ld a, [hl]
- cp $1
- jp z, Function4a6ab
- cp $2
- jp z, Function4a6ab
- cp $3
- jp z, Function4a6ab
- cp $4
- jp z, Function4a6ab
- ld a, $1
- call MenuClickSound
-.asm_4a574
- pop bc
- call ClearBGPalettes
- call ClearTileMap
- jp Function49f0a
-.asm_4a57e
- ld hl, wMenuCursorY
- ld a, [hl]
- dec a
- add a
- push af
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 13
- ld b, $4
- ld c, $12
- call ClearBox
- hlcoord 1, 14
- call PlaceString
- pop af
- inc a
- ld hl, Strings_4a5f6
- call GetNthString
- ld d, h
- ld e, l
- hlcoord 1, 16
- call PlaceString
- jp Function4a5b0
-
-Function4a5b0: ; 4a5b0 (12:65b0)
- call Function4a680
- pop bc
- ld hl, wMenuCursorY
- ld [hl], b
- ld b, $a
- ld c, $1
- hlcoord 3, 1
- call ClearBox
- jp Function4a545
-; 4a5c5 (12:65c5)
-
-String_4a5c5: ; 4a5c5
- db "じこしょうかい@"
-String_4a5cd: ; 4a5cd
- db "たいせん ", $4a, "はじまるとき@"
-String_4a5da: ; 4a5da
- db "たいせん ", $1d, "かったとき@"
-String_4a5e6: ; 4a5e6
- db "たいせん ", $1d, "まけたとき@"
-String_4a5f2: ; 4a5f2
- db "もどる@"
-; 4a5f6
-
-Strings_4a5f6: ; 4a5f6
- db "めいし や ニュース ", $1d, "のせる@"
- db "あなた%あいさつです@"
- db "モバイル たいせん", $4a, "はじまるとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "モバイル たいせんで かったとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "モバイル たいせんで まけたとき@"
- db "あいて", $1d, "みえる あいさつです@"
- db "まえ%がめん ", $1d, "もどります@"
- db "@"
-; 4a680
-
-Function4a680: ; 4a680 (12:6680)
- ld hl, w2DMenuCursorInitY
- ld a, $2
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld a, $5
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hl], $0
- set 5, [hl]
- inc hl
- xor a
- ld [hli], a
- ld a, $20
- ld [hli], a
- ld a, $1
- add $40
- add $80
- add $2
- ld [hli], a
- ld a, $1
- ld [hli], a
- ld [hli], a
- xor a
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ret
-
-Function4a6ab: ; 4a6ab (12:66ab)
- ld a, $2
- call MenuClickSound
- call ClearBGPalettes
- ld b, SCGB_DIPLOMA
- call GetSGBLayout
- callba Function11c1ab
- pop bc
- call LoadFontsExtra
- jp Function4a4c4
-
-Function4a6c5: ; 4a6c5 (12:66c5)
- ld a, $5
- ld [MusicFade], a
- ld a, e
- ld [MusicFadeID], a
- ld a, d
- ld [MusicFadeID + 1], a
- ld c, 22
- call DelayFrames
- ret
-
-Function4a6d8: ; 4a6d8 (12:66d8)
- push bc
- push hl
-.asm_4a6da
- ld [hli], a
- dec c
- jr nz, .asm_4a6da
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, Function4a6d8
- ret
diff --git a/misc/printer_77.asm b/misc/printer_77.asm
deleted file mode 100755
index 4f67909b0..000000000
--- a/misc/printer_77.asm
+++ /dev/null
@@ -1,356 +0,0 @@
-PrintPage1: ; 1dc1b0
- hlcoord 0, 0
- decoord 0, 0, wPrinterTileMapBuffer
- ld bc, 17 * SCREEN_WIDTH
- call CopyBytes
- hlcoord 17, 1, wPrinterTileMapBuffer
- ld a, $62
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 17, 2, wPrinterTileMapBuffer
- ld a, $64
- ld [hli], a
- inc a
- ld [hl], a
- hlcoord 1, 9, wPrinterTileMapBuffer
- ld a, " "
- ld [hli], a
- ld [hl], a
- hlcoord 1, 10, wPrinterTileMapBuffer
- ld a, $61
- ld [hli], a
- ld [hl], a
- hlcoord 2, 11, wPrinterTileMapBuffer
- lb bc, 5, 18
- call ClearBox
- ld a, [wd265]
- dec a
- call CheckCaughtMon
- push af
- ld a, [wd265]
- ld b, a
- ld c, 1 ; get page 1
- callba GetDexEntryPagePointer
- pop af
- ld a, b
- hlcoord 1, 11, wPrinterTileMapBuffer
- call nz, FarString
- hlcoord 19, 0, wPrinterTileMapBuffer
- ld [hl], $35
- ld de, SCREEN_WIDTH
- add hl, de
- ld b, $f
-.column_loop
- ld [hl], $37
- add hl, de
- dec b
- jr nz, .column_loop
- ld [hl], $3a
- ret
-; 1dc213
-
-PrintPage2: ; 1dc213
- hlcoord 0, 0, wPrinterTileMapBuffer
- ld bc, 8 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- hlcoord 0, 0, wPrinterTileMapBuffer
- ld a, $36
- ld b, 6
- call .FillColumn
- hlcoord 19, 0, wPrinterTileMapBuffer
- ld a, $37
- ld b, 6
- call .FillColumn
- hlcoord 0, 6, wPrinterTileMapBuffer
- ld [hl], $38
- inc hl
- ld a, $39
- ld bc, SCREEN_HEIGHT
- call ByteFill
- ld [hl], $3a
- hlcoord 0, 7, wPrinterTileMapBuffer
- ld bc, SCREEN_WIDTH
- ld a, $32
- call ByteFill
- ld a, [wd265]
- dec a
- call CheckCaughtMon
- push af
- ld a, [wd265]
- ld b, a
- ld c, 2 ; get page 2
- callba GetDexEntryPagePointer
- pop af
- hlcoord 1, 1, wPrinterTileMapBuffer
- ld a, b
- call nz, FarString
- ret
-; 1dc26a
-
-.FillColumn: ; 1dc26a
- push de
- ld de, SCREEN_WIDTH
-.column_loop
- ld [hl], a
- add hl, de
- dec b
- jr nz, .column_loop
- pop de
- ret
-; 1dc275
-
-GBPrinterStrings:
-GBPrinterString_Null: db "@"
-GBPrinterString_CheckingLink: next " CHECKING LINK...@"
-GBPrinterString_Transmitting: next " TRANSMITTING...@"
-GBPrinterString_Printing: next " PRINTING...@"
-GBPrinterString_PrinterError1:
- db " Printer Error 1"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-GBPrinterString_PrinterError2:
- db " Printer Error 2"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-GBPrinterString_PrinterError3:
- db " Printer Error 3"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-GBPrinterString_PrinterError4:
- db " Printer Error 4"
- next ""
- next "Check the Game Boy"
- next "Printer Manual."
- db "@"
-; 1dc381
-
-PrintPartyMonPage1: ; 1dc381
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- call LoadFontsBattleExtra
-
- ld de, MobileHPIcon
- ld hl, VTiles2 tile $71
- lb bc, BANK(MobileHPIcon), 1
- call Request1bpp
-
- ld de, MobileLvIcon
- ld hl, VTiles2 tile $6e
- lb bc, BANK(MobileLvIcon), 1
- call Request1bpp
-
- ld de, ShinyIconGFX
- ld hl, VTiles2 tile $3f
- lb bc, BANK(ShinyIconGFX), 1
- call Get2bpp
-
- xor a
- ld [MonType], a
- callba CopyPkmnToTempMon
- hlcoord 0, 7
- ld b, 9
- ld c, 18
- call TextBox
- hlcoord 8, 2
- ld a, [TempMonLevel]
- call PrintLevel_Force3Digits
- hlcoord 12, 2
- ld [hl], "◀" ; Filled left triangle
- inc hl
- ld de, TempMonMaxHP
- lb bc, 2, 3
- call PrintNum
- ld a, [CurPartySpecies]
- ld [wd265], a
- ld [CurSpecies], a
- ld hl, PartyMonNicknames
- call Function1dc50e
- hlcoord 8, 4
- call PlaceString
- hlcoord 9, 6
- ld [hl], "/"
- call GetPokemonName
- hlcoord 10, 6
- call PlaceString
- hlcoord 8, 0
- ld [hl], "№"
- inc hl
- ld [hl], "."
- inc hl
- ld de, wd265
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- hlcoord 1, 9
- ld de, String1dc550
- call PlaceString
- ld hl, PartyMonOT
- call Function1dc50e
- hlcoord 4, 9
- call PlaceString
- hlcoord 1, 11
- ld de, String1dc559
- call PlaceString
- hlcoord 4, 11
- ld de, TempMonID
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- hlcoord 1, 14
- ld de, String1dc554
- call PlaceString
- hlcoord 7, 14
- ld a, [TempMonMoves + 0]
- call Function1dc51a
- call Function1dc52c
- ld hl, TempMonDVs
- predef GetUnownLetter
- ld hl, wBoxAlignment
- xor a
- ld [hl], a
- ld a, [CurPartySpecies]
- cp UNOWN
- jr z, .asm_1dc469
- inc [hl]
-
-.asm_1dc469
- hlcoord 0, 0
- call _PrepMonFrontpic
- call WaitBGMap
- ld b, SCGB_STATS_SCREEN_HP_PALS
- call GetSGBLayout
- call SetPalettes
- ret
-; 1dc47b
-
-PrintPartyMonPage2: ; 1dc47b
- call ClearBGPalettes
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- call LoadFontsBattleExtra
- xor a
- ld [MonType], a
- callba CopyPkmnToTempMon
- hlcoord 0, 0
- ld b, 15
- ld c, 18
- call TextBox
- ld bc, SCREEN_WIDTH
- decoord 0, 0
- hlcoord 0, 1
- call CopyBytes
- hlcoord 7, 0
- ld a, [TempMonMoves + 1]
- call Function1dc51a
- hlcoord 7, 2
- ld a, [TempMonMoves + 2]
- call Function1dc51a
- hlcoord 7, 4
- ld a, [TempMonMoves + 3]
- call Function1dc51a
- hlcoord 7, 7
- ld de, String1dc55d
- call PlaceString
- hlcoord 16, 7
- ld de, TempMonAttack
- call .PrintTempMonStats
- hlcoord 16, 9
- ld de, TempMonDefense
- call .PrintTempMonStats
- hlcoord 16, 11
- ld de, TempMonSpclAtk
- call .PrintTempMonStats
- hlcoord 16, 13
- ld de, TempMonSpclDef
- call .PrintTempMonStats
- hlcoord 16, 15
- ld de, TempMonSpeed
- call .PrintTempMonStats
- call WaitBGMap
- ld b, SCGB_STATS_SCREEN_HP_PALS
- call GetSGBLayout
- call SetPalettes
- ret
-; 1dc507
-
-.PrintTempMonStats: ; 1dc507
- lb bc, 2, 3
- call PrintNum
- ret
-; 1dc50e
-
-Function1dc50e: ; 1dc50e
- ld bc, NAME_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld e, l
- ld d, h
- ret
-; 1dc51a
-
-Function1dc51a: ; 1dc51a
- and a
- jr z, .no_move
-
- ld [wd265], a
- call GetMoveName
- jr .got_string
-
-.no_move
- ld de, String1dc584
-
-.got_string
- call PlaceString
- ret
-; 1dc52c
-
-Function1dc52c: ; 1dc52c
- callba GetGender
- ld a, " "
- jr c, .got_gender
- ld a, "♂"
- jr nz, .got_gender
- ld a, "♀"
-
-.got_gender
- hlcoord 17, 2
- ld [hl], a
- ld bc, TempMonDVs
- callba CheckShininess
- ret nc
- hlcoord 18, 2
- ld [hl], "<SHINY>"
- ret
-; 1dc550
-
-String1dc550: ; 1dc550
- db "OT/@"
-
-String1dc554: ; 1dc554
- db "MOVE@"
-
-String1dc559: ; 1dc559
- db "<ID>№.@"
-
-String1dc55d: ; 1dc55d
- db "ATTACK"
- next "DEFENSE"
- next "SPCL.ATK"
- next "SPCL.DEF"
- next "SPEED"
- db "@"
-
-String1dc584: ; 1dc584
- db "------------@"
-; 1dc591
diff --git a/misc/unused_title.asm b/misc/unused_title.asm
deleted file mode 100644
index 6cd79237b..000000000
--- a/misc/unused_title.asm
+++ /dev/null
@@ -1,556 +0,0 @@
-UnusedTitleScreen: ; 10c000
-
- call ClearBGPalettes
- call ClearTileMap
- call DisableLCD
- xor a
- ld [hBGMapMode], a
-
- ld hl, wJumptableIndex
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld [hl], a
-
- ld hl, UnusedTitleBG_GFX
- ld de, VTiles2
- ld bc, VBGMap0 - VTiles2
- call CopyBytes
-
- ld hl, UnusedTitleBG_GFX + $800
- ld de, VTiles1
- ld bc, VTiles2 - VTiles1
- call CopyBytes
-
- ld hl, UnusedTitleFG_GFX
- ld de, VTiles0
- ld bc, VTiles1 - VTiles0
- call CopyBytes
-
- ld hl, UnusedTitleBG_Tilemap
- debgcoord 0, 0
- ld bc, 32 * 32
-.copy
- ld a, 0
- ld [rVBK], a
- ld a, [hli]
- ld [de], a
- ld a, 1
- ld [rVBK], a
- ld a, [hli]
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .copy
-
- ld hl, UnusedTitleFG_OAM
- ld de, Sprites
- ld bc, $a0
- call CopyBytes
-
- call EnableLCD
- ld a, [rLCDC]
- set 1, a
- set 2, a
- ld [rLCDC], a
-
- call DelayFrame
-
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
-
- ld hl, UnusedTitleBG_Palettes
- ld de, UnknBGPals
- ld bc, $40
- call CopyBytes
-
- ld hl, UnusedTitleFG_Palettes
- ld de, UnknOBPals
- ld bc, $40
- call CopyBytes
-
- ld hl, UnusedTitleBG_Palettes
- ld de, BGPals
- ld bc, $40
- call CopyBytes
-
- ld hl, UnusedTitleFG_Palettes
- ld de, OBPals
- ld bc, $40
- call CopyBytes
-
- pop af
- ld [rSVBK], a
-
- ld a, $1
- ld [hCGBPalUpdate], a
-
- ld de, MUSIC_TITLE
- call PlayMusic
-
- ret
-; 10c0b1
-
-UnusedTitleBG_GFX: ; 10c0b1
-INCBIN "gfx/title/old_bg.2bpp"
-; 10d0b1
-
-UnusedTitleBG_Tilemap: ; 10d0b1
-; 32x32 (tile, attributes)
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $01,$00, $02,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $03,$00, $04,$00, $05,$01, $06,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $07,$05, $08,$05, $09,$05, $0a,$05, $0b,$00, $0c,$00, $0d,$00, $0e,$00, $0f,$01, $10,$01, $11,$01, $12,$01, $13,$05, $14,$05, $15,$05, $16,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $17,$04, $18,$04, $19,$04, $1a,$04, $1b,$00, $1c,$00, $1d,$02, $1e,$02, $1f,$07, $20,$07, $21,$01, $22,$01, $23,$04, $24,$04, $25,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $27,$04, $28,$04, $29,$04, $2a,$04, $2b,$00, $2c,$00, $2d,$03, $2e,$01, $2f,$01, $30,$01, $31,$01, $32,$01, $33,$04, $34,$04, $35,$04, $36,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $37,$04, $38,$04, $39,$04, $3a,$04, $3b,$00, $3c,$00, $3d,$01, $00,$00, $00,$00, $3e,$07, $3f,$01, $40,$01, $41,$04, $42,$04, $43,$04, $44,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $45,$04, $46,$04, $47,$04, $48,$04, $49,$00, $3c,$00, $4a,$01, $00,$00, $00,$00, $4b,$07, $3f,$01, $4c,$01, $4d,$06, $4e,$06, $4f,$06, $50,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $51,$04, $52,$06, $53,$06, $54,$06, $55,$00, $3c,$00, $56,$01, $00,$00, $00,$00, $57,$07, $58,$01, $59,$01, $5a,$06, $5b,$06, $5c,$06, $5d,$06, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $5e,$06, $5f,$06, $60,$06, $61,$06, $62,$00, $63,$00, $64,$03, $65,$01, $66,$01, $67,$07, $68,$01, $69,$01, $26,$04, $6a,$06, $26,$04, $26,$04, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $6b,$00, $6c,$05, $6d,$05, $6e,$05, $6f,$00, $70,$02, $71,$02, $72,$01, $73,$00, $74,$02, $75,$01, $76,$01, $77,$05, $78,$05, $79,$05, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $7a,$00, $7b,$00, $7c,$00, $7d,$00, $0f,$01, $7e,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $a2,$00, $80,$00, $81,$00, $82,$00, $83,$00, $84,$07, $85,$01, $86,$01, $87,$01, $88,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $89,$00, $8a,$00, $8b,$00, $8c,$07, $8d,$01, $8e,$01, $8f,$01, $90,$01, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $91,$01, $92,$01, $93,$01, $94,$01, $95,$01, $00,$00, $00,$00, $00,$00, $96,$05, $97,$05, $98,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $99,$05, $9a,$05, $9b,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9c,$05, $9d,$05, $9e,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $9f,$05, $a0,$05, $a1,$05, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $6b,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
- db $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00, $00,$00
-; 10d8b1
-
-UnusedTitleBG_Palettes: ; 10d8b1
- RGB 00, 00, 00
- RGB 25, 15, 28
- RGB 22, 11, 28
- RGB 19, 08, 26
-
- RGB 00, 00, 00
- RGB 17, 07, 22
- RGB 13, 07, 16
- RGB 19, 08, 26
-
- RGB 25, 15, 28
- RGB 22, 11, 28
- RGB 19, 08, 26
- RGB 17, 07, 22
-
- RGB 22, 11, 28
- RGB 19, 08, 26
- RGB 17, 07, 22
- RGB 13, 07, 16
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 22, 10, 31
- RGB 19, 08, 26
- RGB 17, 07, 22
-
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
-
- RGB 31, 31, 31
- RGB 20, 04, 20
- RGB 16, 08, 16
- RGB 24, 00, 24
-
- rept 54
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 31, 31
- endr
-; 10dab1
-
-UnusedTitleFG_GFX: ; 10dab1
-INCBIN "gfx/title/old_fg.2bpp"
-; 10eab1
-
-UnusedTitleFG_Palettes: ; 10eab1
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 22, 00
- RGB 31, 27, 00
- RGB 31, 31, 00
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 16, 31, 00
- RGB 22, 31, 00
- RGB 27, 31, 00
- RGB 31, 31, 00
-
-
- RGB 31, 00, 18
- RGB 31, 31, 31
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 00, 00, 00
- RGB 31, 31, 31
- RGB 20, 20, 20
- RGB 12, 12, 12
-
- RGB 00, 00, 00
- RGB 01, 11, 23
- RGB 16, 16, 24
- RGB 02, 13, 21
-
- RGB 16, 31, 00
- RGB 22, 31, 00
- RGB 27, 31, 00
- RGB 31, 31, 00
-
- RGB 24, 18, 31
- RGB 31, 31, 00
- RGB 31, 31, 01
- RGB 31, 31, 03
-
- RGB 31, 31, 05
- RGB 31, 31, 08
- RGB 31, 31, 10
- RGB 31, 31, 12
-
- RGB 31, 31, 14
- RGB 31, 31, 16
- RGB 31, 31, 18
- RGB 31, 31, 20
-
- RGB 31, 31, 22
- RGB 31, 31, 25
- RGB 31, 31, 27
- RGB 31, 31, 29
-
- RGB 24, 06, 06
- RGB 01, 01, 01
- RGB 03, 03, 03
- RGB 05, 05, 05
-
- RGB 08, 08, 08
- RGB 10, 10, 10
- RGB 12, 12, 12
- RGB 14, 14, 14
-
- RGB 16, 16, 16
- RGB 18, 18, 18
- RGB 20, 20, 20
- RGB 22, 22, 22
-
- RGB 25, 25, 25
- RGB 27, 27, 27
- RGB 29, 29, 29
- RGB 31, 31, 31
-
- RGB 18, 24, 18
- RGB 31, 29, 01
- RGB 31, 27, 03
- RGB 31, 25, 05
-
- RGB 31, 22, 08
- RGB 31, 20, 10
- RGB 31, 18, 12
- RGB 31, 16, 14
-
- RGB 31, 14, 16
- RGB 31, 12, 18
- RGB 31, 10, 20
- RGB 31, 08, 22
-
- RGB 31, 05, 25
- RGB 31, 03, 27
- RGB 31, 01, 29
- RGB 31, 00, 31
-
- RGB 18, 06, 31
- RGB 00, 31, 31
- RGB 00, 31, 29
- RGB 00, 31, 27
-
- RGB 00, 31, 25
- RGB 00, 31, 22
- RGB 00, 31, 20
- RGB 00, 31, 18
-
- RGB 00, 31, 16
- RGB 00, 31, 14
- RGB 00, 31, 12
- RGB 00, 31, 10
-
- RGB 00, 31, 08
- RGB 00, 31, 05
- RGB 00, 31, 03
- RGB 00, 31, 01
-
- RGB 12, 31, 06
- RGB 00, 00, 31
- RGB 00, 01, 31
- RGB 00, 03, 31
-
- RGB 00, 05, 31
- RGB 00, 08, 31
- RGB 00, 10, 31
- RGB 00, 12, 31
-
- RGB 00, 14, 31
- RGB 00, 16, 31
- RGB 00, 18, 31
- RGB 00, 20, 31
-
- RGB 00, 22, 31
- RGB 00, 25, 31
- RGB 00, 27, 31
- RGB 00, 29, 31
-
- RGB 00, 00, 00
- RGB 06, 00, 04
- RGB 19, 02, 09
- RGB 28, 04, 11
-
- RGB 31, 07, 16
- RGB 31, 17, 23
- RGB 31, 26, 30
- RGB 07, 05, 10
-
- RGB 14, 10, 18
- RGB 20, 20, 25
- RGB 25, 27, 31
- RGB 09, 05, 06
-
- RGB 23, 16, 13
- RGB 30, 23, 22
- RGB 31, 28, 28
- RGB 31, 31, 31
-
- RGB 06, 31, 31
- RGB 04, 00, 04
- RGB 11, 02, 04
- RGB 17, 02, 04
-
- RGB 24, 05, 04
- RGB 28, 07, 04
- RGB 31, 11, 04
- RGB 02, 01, 15
-
- RGB 04, 11, 22
- RGB 12, 25, 25
- RGB 20, 31, 31
- RGB 09, 04, 03
-
- RGB 22, 11, 08
- RGB 27, 19, 16
- RGB 30, 28, 26
- RGB 31, 31, 31
-
- RGB 06, 18, 06
- RGB 04, 04, 02
- RGB 07, 07, 02
- RGB 18, 18, 04
-
- RGB 24, 24, 06
- RGB 27, 27, 11
- RGB 31, 31, 20
- RGB 02, 03, 10
-
- RGB 04, 05, 13
- RGB 06, 10, 25
- RGB 08, 15, 31
- RGB 04, 00, 06
-
- RGB 11, 07, 14
- RGB 21, 16, 23
- RGB 29, 26, 31
- RGB 31, 31, 31
-
- RGB 06, 00, 18
- RGB 00, 04, 03
- RGB 02, 09, 05
- RGB 11, 19, 07
-
- RGB 16, 24, 08
- RGB 22, 31, 09
- RGB 24, 31, 18
- RGB 03, 01, 03
-
- RGB 10, 04, 10
- RGB 20, 08, 20
- RGB 31, 17, 31
- RGB 01, 03, 06
-
- RGB 05, 09, 10
- RGB 15, 21, 21
- RGB 23, 25, 25
- RGB 31, 31, 31
-
- RGB 00, 18, 31
- RGB 00, 05, 07
- RGB 00, 08, 13
- RGB 00, 12, 17
-
- RGB 01, 20, 24
- RGB 04, 27, 31
- RGB 14, 31, 31
- RGB 04, 02, 02
-
- RGB 15, 01, 03
- RGB 26, 04, 07
- RGB 31, 13, 16
- RGB 00, 05, 02
-
- RGB 01, 11, 03
- RGB 06, 21, 06
- RGB 13, 31, 16
- RGB 31, 31, 31
-
- RGB 00, 06, 06
- RGB 00, 01, 08
- RGB 00, 05, 14
- RGB 00, 08, 19
-
- RGB 02, 14, 26
- RGB 04, 21, 31
- RGB 06, 26, 31
- RGB 13, 00, 00
-
- RGB 27, 07, 00
- RGB 31, 17, 05
- RGB 31, 25, 16
- RGB 02, 04, 00
-
- RGB 07, 11, 03
- RGB 17, 19, 05
- RGB 27, 31, 16
- RGB 31, 31, 31
-
- RGB 02, 00, 00
- RGB 04, 01, 06
- RGB 11, 03, 14
- RGB 16, 04, 19
-
- RGB 20, 07, 22
- RGB 26, 12, 27
- RGB 26, 20, 31
- RGB 04, 07, 00
-
- RGB 16, 20, 07
- RGB 24, 28, 15
- RGB 29, 31, 24
- RGB 05, 02, 02
-
- RGB 15, 04, 02
- RGB 24, 11, 10
- RGB 31, 22, 20
- RGB 31, 31, 31
-
- RGB 00, 00, 14
- RGB 12, 00, 00
- RGB 27, 05, 00
- RGB 31, 15, 05
-
- RGB 31, 26, 13
- RGB 31, 30, 21
- RGB 05, 07, 16
- RGB 04, 16, 20
-
- RGB 04, 24, 26
- RGB 08, 31, 31
- RGB 23, 31, 31
- RGB 00, 00, 00
-
- RGB 05, 05, 05
- RGB 17, 17, 15
- RGB 28, 28, 24
- RGB 31, 31, 31
-; 10ecb1
-
-UnusedTitleFG_OAM: ; 10ecb1
- db $18, $38, $00, $01, $18, $40, $02, $01, $18, $48, $04, $01, $18, $50, $06, $01
- db $18, $58, $08, $01, $18, $60, $0a, $01, $18, $68, $0c, $01, $18, $70, $0e, $01
-
- db $28, $38, $10, $00, $28, $40, $12, $00, $28, $48, $14, $00, $28, $50, $16, $00
- db $28, $58, $18, $00, $28, $60, $1a, $00, $28, $68, $1c, $00, $28, $70, $1e, $00
-
- db $38, $38, $20, $00, $38, $40, $22, $00, $38, $48, $24, $00, $38, $50, $26, $00
- db $38, $58, $28, $00, $38, $60, $2a, $00, $38, $68, $2c, $00, $38, $70, $2e, $00
-
- db $48, $38, $30, $02, $48, $40, $32, $02, $48, $48, $34, $02, $48, $50, $36, $02
- db $48, $58, $38, $02, $48, $60, $3a, $02, $48, $68, $3c, $02, $48, $70, $3e, $02
-
- db $58, $38, $40, $01, $58, $40, $42, $01, $58, $48, $44, $01, $58, $50, $46, $01
- db $58, $58, $48, $01, $58, $60, $4a, $01, $58, $68, $4c, $01, $58, $70, $4e, $01
-; 10ed51
-
-
-Function10ed51: ; 10ed51
- call _TitleScreen
-.loop
- call JoyTextDelay
- ld a, [hJoyLast]
- ld b, a
- and 1
- jr nz, .done
- call SuicuneFrameIterator
- call DelayFrame
- jr .loop
-.done
- ret
-; 10ed67
diff --git a/mobile/battle_tower_47.asm b/mobile/battle_tower_47.asm
new file mode 100755
index 000000000..d0ca6edd8
--- /dev/null
+++ b/mobile/battle_tower_47.asm
@@ -0,0 +1,784 @@
+BattleTowerText:: ; 11c000
+; Print text c for trainer [BT_OTTrainerClass]
+; 1: Intro text
+; 2: Player lost
+; 3: Player won
+ ld a, [rSVBK]
+ push af
+ ld a, 3 ; BANK(BT_OTTrainerClass)
+ ld [rSVBK], a
+IF DEF(CRYSTAL11)
+ ld hl, BT_OTTrainerClass
+ELSE
+ ld hl, BT_OTName + 5
+; BUG ALERT
+; Instead of loading the Trainer Class, this routine
+; loads the 6th character in the Trainer's name, then
+; uses it to get the gender of the trainer.
+; As a consequence, the enemy trainer's dialog will
+; always be sampled from the female array.
+ENDC
+ ld a, [hl]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, BTTrainerClassGenders
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .female
+ ; generate a random number between 0 and 24
+ ld a, [hRandomAdd]
+ and $1f
+ cp 25
+ jr c, .okay0
+ sub 25
+
+.okay0
+ ld hl, BTMaleTrainerTexts
+ jr .proceed
+
+.female
+ ; generate a random number between 0 and 14
+ ld a, [hRandomAdd]
+ and $f
+ cp 15
+ jr c, .okay1
+ sub 15
+
+.okay1
+ ld hl, BTFemaleTrainerTexts
+
+.proceed
+ ld b, 0
+ dec c
+ jr nz, .restore
+ ld [BT_TrainerTextIndex], a
+ jr .okay2
+
+.restore
+ ld a, [BT_TrainerTextIndex]
+
+.okay2
+ push af
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ pop af
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld l, c
+ ld h, a
+ bccoord 1, 14
+ pop af
+ ld [rSVBK], a
+ call PlaceHLTextAtBC
+ ret
+; 11c05d
+
+INCLUDE "mobile/fixed_words.asm"
+
+BTTrainerClassGenders: ; 11f2f0
+ db MALE ; FALKNER
+ db FEMALE ; WHITNEY
+ db FEMALE ; BUGSY
+ db MALE ; MORTY
+ db MALE ; PRYCE
+ db FEMALE ; JASMINE
+ db MALE ; CHUCK
+ db FEMALE ; CLAIR
+ db MALE ; RIVAL1
+ db MALE ; POKEMON_PROF
+ db FEMALE ; WILL
+ db MALE ; CAL
+ db MALE ; BRUNO
+ db FEMALE ; KAREN
+ db MALE ; KOGA
+ db MALE ; CHAMPION
+ db MALE ; BROCK
+ db FEMALE ; MISTY
+ db MALE ; LT_SURGE
+ db MALE ; SCIENTIST
+ db FEMALE ; ERIKA
+ db MALE ; YOUNGSTER
+ db MALE ; SCHOOLBOY
+ db MALE ; BIRD_KEEPER
+ db FEMALE ; LASS
+ db FEMALE ; JANINE
+ db MALE ; COOLTRAINERM
+ db FEMALE ; COOLTRAINERF
+ db FEMALE ; BEAUTY
+ db MALE ; POKEMANIAC
+ db MALE ; GRUNTM
+ db MALE ; GENTLEMAN
+ db FEMALE ; SKIER
+ db FEMALE ; TEACHER
+ db FEMALE ; SABRINA
+ db MALE ; BUG_CATCHER
+ db MALE ; FISHER
+ db MALE ; SWIMMERM
+ db FEMALE ; SWIMMERF
+ db MALE ; SAILOR
+ db MALE ; SUPER_NERD
+ db MALE ; RIVAL2
+ db MALE ; GUITARIST
+ db MALE ; HIKER
+ db MALE ; BIKER
+ db MALE ; BLAINE
+ db MALE ; BURGLAR
+ db MALE ; FIREBREATHER
+ db MALE ; JUGGLER
+ db MALE ; BLACKBELT_T
+ db MALE ; EXECUTIVEM
+ db MALE ; PSYCHIC_T
+ db FEMALE ; PICNICKER
+ db MALE ; CAMPER
+ db FEMALE ; EXECUTIVEF
+ db MALE ; SAGE
+ db FEMALE ; MEDIUM
+ db MALE ; BOARDER
+ db MALE ; POKEFANM
+ db FEMALE ; KIMONO_GIRL
+ db FEMALE ; TWINS
+ db FEMALE ; POKEFANF
+ db MALE ; RED
+ db MALE ; BLUE
+ db MALE ; OFFICER
+ db FEMALE ; GRUNTF
+
+
+BTMaleTrainerTexts: ; 11f332
+ dw .Greetings
+ dw .PlayerLost
+ dw .PlayerWon
+
+.Greetings: ; 11f338
+ dw BTGreetingM1
+ dw BTGreetingM2
+ dw BTGreetingM3
+ dw BTGreetingM4
+ dw BTGreetingM5
+ dw BTGreetingM6
+ dw BTGreetingM7
+ dw BTGreetingM8
+ dw BTGreetingM9
+ dw BTGreetingM10
+ dw BTGreetingM11
+ dw BTGreetingM12
+ dw BTGreetingM13
+ dw BTGreetingM14
+ dw BTGreetingM15
+ dw BTGreetingM16
+ dw BTGreetingM17
+ dw BTGreetingM18
+ dw BTGreetingM19
+ dw BTGreetingM20
+ dw BTGreetingM21
+ dw BTGreetingM22
+ dw BTGreetingM23
+ dw BTGreetingM24
+ dw BTGreetingM25
+
+.PlayerLost: ; 11f36a
+ dw BTLossM1
+ dw BTLossM2
+ dw BTLossM3
+ dw BTLossM4
+ dw BTLossM5
+ dw BTLossM6
+ dw BTLossM7
+ dw BTLossM8
+ dw BTLossM9
+ dw BTLossM10
+ dw BTLossM11
+ dw BTLossM12
+ dw BTLossM13
+ dw BTLossM14
+ dw BTLossM15
+ dw BTLossM16
+ dw BTLossM17
+ dw BTLossM18
+ dw BTLossM19
+ dw BTLossM20
+ dw BTLossM21
+ dw BTLossM22
+ dw BTLossM23
+ dw BTLossM24
+ dw BTLossM25
+
+.PlayerWon: ; 11f39c
+ dw BTWinM1
+ dw BTWinM2
+ dw BTWinM3
+ dw BTWinM4
+ dw BTWinM5
+ dw BTWinM6
+ dw BTWinM7
+ dw BTWinM8
+ dw BTWinM9
+ dw BTWinM10
+ dw BTWinM11
+ dw BTWinM12
+ dw BTWinM13
+ dw BTWinM14
+ dw BTWinM15
+ dw BTWinM16
+ dw BTWinM17
+ dw BTWinM18
+ dw BTWinM19
+ dw BTWinM20
+ dw BTWinM21
+ dw BTWinM22
+ dw BTWinM23
+ dw BTWinM24
+ dw BTWinM25
+
+
+BTFemaleTrainerTexts:
+ dw .Greetings
+ dw .PlayerLost
+ dw .PlayerWon
+
+.Greetings: ; 11f3d4
+ dw BTGreetingF1
+ dw BTGreetingF2
+ dw BTGreetingF3
+ dw BTGreetingF4
+ dw BTGreetingF5
+ dw BTGreetingF6
+ dw BTGreetingF7
+ dw BTGreetingF8
+ dw BTGreetingF9
+ dw BTGreetingF10
+ dw BTGreetingF11
+ dw BTGreetingF12
+ dw BTGreetingF13
+ dw BTGreetingF14
+ dw BTGreetingF15
+
+.PlayerLost: ; 11f3f2
+ dw BTLossF1
+ dw BTLossF2
+ dw BTLossF3
+ dw BTLossF4
+ dw BTLossF5
+ dw BTLossF6
+ dw BTLossF7
+ dw BTLossF8
+ dw BTLossF9
+ dw BTLossF10
+ dw BTLossF11
+ dw BTLossF12
+ dw BTLossF13
+ dw BTLossF14
+ dw BTLossF15
+
+.PlayerWon: ; 11f410
+ dw BTWinF1
+ dw BTWinF2
+ dw BTWinF3
+ dw BTWinF4
+ dw BTWinF5
+ dw BTWinF6
+ dw BTWinF7
+ dw BTWinF8
+ dw BTWinF9
+ dw BTWinF10
+ dw BTWinF11
+ dw BTWinF12
+ dw BTWinF13
+ dw BTWinF14
+ dw BTWinF15
+
+
+BTGreetingM1: ; 0x11f42e
+ text_jump BattleTowerText_0x1ec000
+ db "@"
+
+BTLossM1: ; 0x11f433
+ text_jump BattleTowerText_0x1ec03b
+ db "@"
+
+BTWinM1: ; 0x11f438
+ text_jump UnknownText_0x1ec060
+ db "@"
+
+BTGreetingM2: ; 0x11f43d
+ text_jump BattleTowerText_0x1ec080
+ db "@"
+
+BTLossM2: ; 0x11f442
+ text_jump UnknownText_0x1ec0a3
+ db "@"
+
+BTWinM2: ; 0x11f447
+ text_jump UnknownText_0x1ec0c4
+ db "@"
+
+BTGreetingM3: ; 0x11f44c
+ text_jump UnknownText_0x1ec0e1
+ db "@"
+
+BTLossM3: ; 0x11f451
+ text_jump UnknownText_0x1ec108
+ db "@"
+
+BTWinM3: ; 0x11f456
+ text_jump UnknownText_0x1ec12a
+ db "@"
+
+BTGreetingM4: ; 0x11f45b
+ text_jump UnknownText_0x1ec14d
+ db "@"
+
+BTLossM4: ; 0x11f460
+ text_jump UnknownText_0x1ec16f
+ db "@"
+
+BTWinM4: ; 0x11f465
+ text_jump UnknownText_0x1ec190
+ db "@"
+
+BTGreetingM5: ; 0x11f46a
+ text_jump UnknownText_0x1ec1ae
+ db "@"
+
+BTLossM5: ; 0x11f46f
+ text_jump UnknownText_0x1ec1d0
+ db "@"
+
+BTWinM5: ; 0x11f474
+ text_jump UnknownText_0x1ec1f4
+ db "@"
+
+BTGreetingM6: ; 0x11f479
+ text_jump UnknownText_0x1ec216
+ db "@"
+
+BTLossM6: ; 0x11f47e
+ text_jump UnknownText_0x1ec238
+ db "@"
+
+BTWinM6: ; 0x11f483
+ text_jump UnknownText_0x1ec259
+ db "@"
+
+BTGreetingM7: ; 0x11f488
+ text_jump UnknownText_0x1ec27b
+ db "@"
+
+BTLossM7: ; 0x11f48d
+ text_jump UnknownText_0x1ec2a0
+ db "@"
+
+BTWinM7: ; 0x11f492
+ text_jump UnknownText_0x1ec2c0
+ db "@"
+
+BTGreetingM8: ; 0x11f497
+ text_jump UnknownText_0x1ec2d9
+ db "@"
+
+BTLossM8: ; 0x11f49c
+ text_jump UnknownText_0x1ec2fe
+ db "@"
+
+BTWinM8: ; 0x11f4a1
+ text_jump UnknownText_0x1ec320
+ db "@"
+
+BTGreetingM9: ; 0x11f4a6
+ text_jump UnknownText_0x1ec33f
+ db "@"
+
+BTLossM9: ; 0x11f4ab
+ text_jump UnknownText_0x1ec36c
+ db "@"
+
+BTWinM9: ; 0x11f4b0
+ text_jump UnknownText_0x1ec389
+ db "@"
+
+BTGreetingM10: ; 0x11f4b5
+ text_jump UnknownText_0x1ec3ad
+ db "@"
+
+BTLossM10: ; 0x11f4ba
+ text_jump UnknownText_0x1ec3c5
+ db "@"
+
+BTWinM10: ; 0x11f4bf
+ text_jump UnknownText_0x1ec3e5
+ db "@"
+
+BTGreetingM11: ; 0x11f4c4
+ text_jump UnknownText_0x1ec402
+ db "@"
+
+BTLossM11: ; 0x11f4c9
+ text_jump UnknownText_0x1ec411
+ db "@"
+
+BTWinM11: ; 0x11f4ce
+ text_jump UnknownText_0x1ec41f
+ db "@"
+
+BTGreetingM12: ; 0x11f4d3
+ text_jump UnknownText_0x1ec42e
+ db "@"
+
+BTLossM12: ; 0x11f4d8
+ text_jump UnknownText_0x1ec461
+ db "@"
+
+BTWinM12: ; 0x11f4dd
+ text_jump UnknownText_0x1ec4a0
+ db "@"
+
+BTGreetingM13: ; 0x11f4e2
+ text_jump UnknownText_0x1ec4d6
+ db "@"
+
+BTLossM13: ; 0x11f4e7
+ text_jump UnknownText_0x1ec4f5
+ db "@"
+
+BTWinM13: ; 0x11f4ec
+ text_jump UnknownText_0x1ec512
+ db "@"
+
+BTGreetingM14: ; 0x11f4f1
+ text_jump UnknownText_0x1ec532
+ db "@"
+
+BTLossM14: ; 0x11f4f6
+ text_jump UnknownText_0x1ec54b
+ db "@"
+
+BTWinM14: ; 0x11f4fb
+ text_jump UnknownText_0x1ec565
+ db "@"
+
+BTGreetingM15: ; 0x11f500
+ text_jump UnknownText_0x1ec580
+ db "@"
+
+BTLossM15: ; 0x11f505
+ text_jump UnknownText_0x1ec59d
+ db "@"
+
+BTWinM15: ; 0x11f50a
+ text_jump UnknownText_0x1ec5b5
+ db "@"
+
+BTGreetingM16: ; 0x11f50f
+ text_jump UnknownText_0x1ec5d3
+ db "@"
+
+BTLossM16: ; 0x11f514
+ text_jump UnknownText_0x1ec5ee
+ db "@"
+
+BTWinM16: ; 0x11f519
+ text_jump UnknownText_0x1ec60d
+ db "@"
+
+BTGreetingM17: ; 0x11f51e
+ text_jump UnknownText_0x1ec631
+ db "@"
+
+BTLossM17: ; 0x11f523
+ text_jump UnknownText_0x1ec651
+ db "@"
+
+BTWinM17: ; 0x11f528
+ text_jump UnknownText_0x1ec68f
+ db "@"
+
+BTGreetingM18: ; 0x11f52d
+ text_jump UnknownText_0x1ec6b1
+ db "@"
+
+BTLossM18: ; 0x11f532
+ text_jump UnknownText_0x1ec6d0
+ db "@"
+
+BTWinM18: ; 0x11f537
+ text_jump UnknownText_0x1ec708
+ db "@"
+
+BTGreetingM19: ; 0x11f53c
+ text_jump UnknownText_0x1ec720
+ db "@"
+
+BTLossM19: ; 0x11f541
+ text_jump UnknownText_0x1ec73e
+ db "@"
+
+BTWinM19: ; 0x11f546
+ text_jump UnknownText_0x1ec75b
+ db "@"
+
+BTGreetingM20: ; 0x11f54b
+ text_jump UnknownText_0x1ec77f
+ db "@"
+
+BTLossM20: ; 0x11f550
+ text_jump UnknownText_0x1ec798
+ db "@"
+
+BTWinM20: ; 0x11f555
+ text_jump UnknownText_0x1ec7bb
+ db "@"
+
+BTGreetingM21: ; 0x11f55a
+ text_jump UnknownText_0x1ec7d8
+ db "@"
+
+BTLossM21: ; 0x11f55f
+ text_jump UnknownText_0x1ec818
+ db "@"
+
+BTWinM21: ; 0x11f564
+ text_jump UnknownText_0x1ec837
+ db "@"
+
+BTGreetingM22: ; 0x11f569
+ text_jump UnknownText_0x1ec858
+ db "@"
+
+BTLossM22: ; 0x11f56e
+ text_jump UnknownText_0x1ec876
+ db "@"
+
+BTWinM22: ; 0x11f573
+ text_jump UnknownText_0x1ec898
+ db "@"
+
+BTGreetingM23: ; 0x11f578
+ text_jump UnknownText_0x1ec8b1
+ db "@"
+
+BTLossM23: ; 0x11f57d
+ text_jump UnknownText_0x1ec8d5
+ db "@"
+
+BTWinM23: ; 0x11f582
+ text_jump UnknownText_0x1ec8f0
+ db "@"
+
+BTGreetingM24: ; 0x11f587
+ text_jump UnknownText_0x1ec911
+ db "@"
+
+BTLossM24: ; 0x11f58c
+ text_jump UnknownText_0x1ec928
+ db "@"
+
+BTWinM24: ; 0x11f591
+ text_jump UnknownText_0x1ec949
+ db "@"
+
+BTGreetingM25: ; 0x11f596
+ text_jump UnknownText_0x1ec969
+ db "@"
+
+BTLossM25: ; 0x11f59b
+ text_jump UnknownText_0x1ec986
+ db "@"
+
+BTWinM25: ; 0x11f5a0
+ text_jump UnknownText_0x1ec99b
+ db "@"
+
+
+
+
+BTGreetingF1: ; 0x11f5a5
+ text_jump UnknownText_0x1ec9bd
+ db "@"
+
+BTLossF1: ; 0x11f5aa
+ text_jump UnknownText_0x1ec9d9
+ db "@"
+
+BTWinF1: ; 0x11f5af
+ text_jump UnknownText_0x1ec9f7
+ db "@"
+
+BTGreetingF2: ; 0x11f5b4
+ text_jump UnknownText_0x1eca0a
+ db "@"
+
+BTLossF2: ; 0x11f5b9
+ text_jump UnknownText_0x1eca2a
+ db "@"
+
+BTWinF2: ; 0x11f5be
+ text_jump UnknownText_0x1eca47
+ db "@"
+
+BTGreetingF3: ; 0x11f5c3
+ text_jump UnknownText_0x1eca64
+ db "@"
+
+BTLossF3: ; 0x11f5c8
+ text_jump UnknownText_0x1eca82
+ db "@"
+
+BTWinF3: ; 0x11f5cd
+ text_jump UnknownText_0x1eca9d
+ db "@"
+
+BTGreetingF4: ; 0x11f5d2
+ text_jump UnknownText_0x1ecabf
+ db "@"
+
+BTLossF4: ; 0x11f5d7
+ text_jump UnknownText_0x1ecade
+ db "@"
+
+BTWinF4: ; 0x11f5dc
+ text_jump UnknownText_0x1ecafa
+ db "@"
+
+BTGreetingF5: ; 0x11f5e1
+ text_jump UnknownText_0x1ecb19
+ db "@"
+
+BTLossF5: ; 0x11f5e6
+ text_jump UnknownText_0x1ecb37
+ db "@"
+
+BTWinF5: ; 0x11f5eb
+ text_jump UnknownText_0x1ecb55
+ db "@"
+
+BTGreetingF6: ; 0x11f5f0
+ text_jump UnknownText_0x1ecb70
+ db "@"
+
+BTLossF6: ; 0x11f5f5
+ text_jump UnknownText_0x1ecb92
+ db "@"
+
+BTWinF6: ; 0x11f5fa
+ text_jump UnknownText_0x1ecbb6
+ db "@"
+
+BTGreetingF7: ; 0x11f5ff
+ text_jump UnknownText_0x1ecbd9
+ db "@"
+
+BTLossF7: ; 0x11f604
+ text_jump UnknownText_0x1ecbf3
+ db "@"
+
+BTWinF7: ; 0x11f609
+ text_jump UnknownText_0x1ecc15
+ db "@"
+
+BTGreetingF8: ; 0x11f60e
+ text_jump UnknownText_0x1ecc39
+ db "@"
+
+BTLossF8: ; 0x11f613
+ text_jump UnknownText_0x1ecc55
+ db "@"
+
+BTWinF8: ; 0x11f618
+ text_jump UnknownText_0x1ecc75
+ db "@"
+
+BTGreetingF9: ; 0x11f61d
+ text_jump UnknownText_0x1ecc92
+ db "@"
+
+BTLossF9: ; 0x11f622
+ text_jump UnknownText_0x1ecca7
+ db "@"
+
+BTWinF9: ; 0x11f627
+ text_jump UnknownText_0x1eccc1
+ db "@"
+
+BTGreetingF10: ; 0x11f62c
+ text_jump UnknownText_0x1eccd7
+ db "@"
+
+BTLossF10: ; 0x11f631
+ text_jump UnknownText_0x1eccef
+ db "@"
+
+BTWinF10: ; 0x11f636
+ text_jump UnknownText_0x1ecd0e
+ db "@"
+
+BTGreetingF11: ; 0x11f63b
+ text_jump UnknownText_0x1ecd2b
+ db "@"
+
+BTLossF11: ; 0x11f640
+ text_jump UnknownText_0x1ecd4d
+ db "@"
+
+BTWinF11: ; 0x11f645
+ text_jump UnknownText_0x1ecd6b
+ db "@"
+
+BTGreetingF12: ; 0x11f64a
+ text_jump UnknownText_0x1ecd8d
+ db "@"
+
+BTLossF12: ; 0x11f64f
+ text_jump UnknownText_0x1ecdaf
+ db "@"
+
+BTWinF12: ; 0x11f654
+ text_jump UnknownText_0x1ecdcf
+ db "@"
+
+BTGreetingF13: ; 0x11f659
+ text_jump UnknownText_0x1ecded
+ db "@"
+
+BTLossF13: ; 0x11f65e
+ text_jump UnknownText_0x1ece0d
+ db "@"
+
+BTWinF13: ; 0x11f663
+ text_jump UnknownText_0x1ece2a
+ db "@"
+
+BTGreetingF14: ; 0x11f668
+ text_jump UnknownText_0x1ece4b
+ db "@"
+
+BTLossF14: ; 0x11f66d
+ text_jump UnknownText_0x1ece70
+ db "@"
+
+BTWinF14: ; 0x11f672
+ text_jump UnknownText_0x1ece8a
+ db "@"
+
+BTGreetingF15: ; 0x11f677
+ text_jump UnknownText_0x1ecea8
+ db "@"
+
+BTLossF15: ; 0x11f67c
+ text_jump UnknownText_0x1ecec9
+ db "@"
+
+BTWinF15: ; 0x11f681
+ text_jump UnknownText_0x1ecee8
+ db "@"
diff --git a/mobile/battle_tower_5c.asm b/mobile/battle_tower_5c.asm
new file mode 100755
index 000000000..4ab57ea2c
--- /dev/null
+++ b/mobile/battle_tower_5c.asm
@@ -0,0 +1,1772 @@
+BattleTowerRoomMenu: ; 1700b0
+; special
+ call InitBattleTowerChallengeRAM
+ callba _BattleTowerRoomMenu
+ ret
+; 1700ba
+
+Function1700ba: ; 1700ba
+ call InitBattleTowerChallengeRAM
+ callba Function11811a
+ ret
+; 1700c4
+
+Function1700c4: ; 1700c4
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+
+ call Function17042c
+
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$be45], a
+ xor a
+ ld [$be46], a
+ ld hl, w3_dffc
+ ld de, $aa41
+ ld bc, 4
+ call CopyBytes
+ ld hl, w3_d202Name
+ ld de, $aa8e
+ ld bc, 7 * $cc ; length of battle tower struct from japanese games?
+ call CopyBytes
+ ld hl, $aa5d ; some sort of count
+ ld a, [hl]
+ inc [hl]
+ inc hl
+ sla a
+ sla a
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, w3_dffc
+ ld bc, 4
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+; 170114
+
+Function170114: ; 170114
+ call InitBattleTowerChallengeRAM
+ call .Function170121
+ callba Function11805f
+ ret
+; 170121
+
+.Function170121: ; 170121
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a948
+ ld de, wMisc
+ ld bc, $f6 ; 246
+ call CopyBytes
+ call CloseSRAM
+ call Function170c8b
+ ret
+; 170139
+
+Function170139: ; 170139
+; Convert the 4-digit decimal number at 5:aa41 into binary
+ ld a, $5
+ call GetSRAMBank
+ ld de, $aa41
+ ld h, $0
+ ld l, h
+ ld bc, 1000
+ call .DecToBin
+ ld bc, 100
+ call .DecToBin
+ ld bc, 10
+ call .DecToBin
+ ld a, [de]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ call CloseSRAM
+; Store that number in wMisc
+ ld a, h
+ ld [wMisc], a
+ ld a, l
+ ld [wMisc + 1], a
+ ld hl, wBT_OTTempPkmn1DVs
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [PlayerID + 1]
+ ld [hli], a
+ ld a, [wSecretID]
+ ld [hli], a
+ ld a, [wSecretID + 1]
+ ld [hli], a
+ ld e, l
+ ld d, h
+ ld hl, PlayerName
+ ld bc, NAME_LENGTH_JAPANESE - 1
+ call CopyBytes
+ ld bc, PlayerID
+ ld de, PlayerGender
+ callba GetMobileOTTrainerClass
+ ld de, wBT_OTTempPkmn1CaughtGender
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, PartyMons % $100
+ ld [wcd49], a
+ ld a, PartyMons / $100
+ ld [wcd4a], a
+ ld a, PartyMonNicknames % $100
+ ld [wcd4b], a
+ ld a, PartyMonNicknames / $100
+ ld [wcd4c], a
+ ld a, 3
+.CopyLoop:
+ push af
+ ld a, [wcd49]
+ ld l, a
+ ld a, [wcd4a]
+ ld h, a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld a, l
+ ld [wcd49], a
+ ld a, h
+ ld [wcd4a], a
+ ld a, [wcd4b]
+ ld l, a
+ ld a, [wcd4c]
+ ld h, a
+ ld bc, $0006
+ call CopyBytes
+ ld a, l
+ ld [wcd4b], a
+ ld a, h
+ ld [wcd4c], a
+ pop af
+ dec a
+ jr nz, .CopyLoop
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a013
+ ld bc, $24
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a894
+ ld bc, NAME_LENGTH_JAPANESE
+ call CopyBytes
+ ld hl, wMisc
+ ld de, $a948
+ ld bc, $f6
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17020c
+
+.DecToBin: ; 17020c
+ ld a, [de]
+ inc de
+ and a
+ ret z
+
+.digit_loop
+ add hl, bc
+ dec a
+ jr nz, .digit_loop
+ ret
+; 170215
+
+BattleTowerBattle: ; 170215
+ xor a
+ ld [wBattleTowerBattleEnded], a
+ call _BattleTowerBattle
+ ret
+; 17021d
+
+EmptySpecial_17021d: ; 17021d
+ ret
+; 17021e
+
+InitBattleTowerChallengeRAM: ; 17021e
+ xor a
+ ld [wBattleTowerBattleEnded], a
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ret
+; 17022c
+
+_BattleTowerBattle: ; 17022c
+.loop
+ call .do_dw
+ call DelayFrame
+ ld a, [wBattleTowerBattleEnded]
+ cp $1
+ jr nz, .loop
+ ret
+; 17023a
+
+.do_dw ; 17023a
+ ld a, [wBattleTowerBattleEnded]
+ ld e, a
+ ld d, 0
+ ld hl, .dw
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 170249
+
+.dw ; 170249
+ dw RunBattleTowerTrainer
+ dw SkipBattleTowerTrainer
+; 17024d
+
+RunBattleTowerTrainer: ; 17024d
+ ld a, [Options]
+ push af
+ ld hl, Options
+ set BATTLE_SHIFT, [hl] ; SET MODE
+
+ ld a, [InBattleTowerBattle]
+ push af
+ or $1
+ ld [InBattleTowerBattle], a
+
+ xor a
+ ld [wLinkMode], a
+ callba TrainerRankings_Healings
+ callba HealParty
+ call ReadBTTrainerParty
+ call Clears5_a89a
+
+ predef StartBattle
+
+ callba LoadPokemonData
+ callba HealParty
+ ld a, [wBattleResult]
+ ld [ScriptVar], a
+ and a
+ jr nz, .lost
+ ld a, BANK(sNrOfBeatenBattleTowerTrainers)
+ call GetSRAMBank
+ ld a, [sNrOfBeatenBattleTowerTrainers]
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call CloseSRAM
+ ld hl, StringBuffer3
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ add "1"
+ ld [hli], a
+ ld a, "@"
+ ld [hl], a
+
+.lost
+ pop af
+ ld [InBattleTowerBattle], a
+ pop af
+ ld [Options], a
+ ld a, $1
+ ld [wBattleTowerBattleEnded], a
+ ret
+
+
+ReadBTTrainerParty: ; 1702b7
+; Initialise the BattleTower-Trainer and his Pkmn
+ call CopyBTTrainer_FromBT_OT_TowBT_OTTemp
+
+; Check the nicknames for illegal characters, and replace bad nicknames
+; with their species names.
+ ld de, wBT_OTTempPkmn1Name ; $c643
+ ld c, PKMN_NAME_LENGTH
+ callba CheckStringForErrors
+ jr nc, .skip_mon_1
+
+ ld a, [wBT_OTTempPkmn1]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld l, e
+ ld h, d
+ ld de, wBT_OTTempPkmn1Name ; $c643
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+.skip_mon_1
+ ld de, wBT_OTTempPkmn2Name ; $c67e
+ ld c, PKMN_NAME_LENGTH
+ callba CheckStringForErrors
+ jr nc, .skip_mon_2
+ ld a, [wBT_OTTempPkmn2] ; [$c64e]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld l, e
+ ld h, d
+ ld de, wBT_OTTempPkmn2Name ; $c67e
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+.skip_mon_2
+ ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
+ ld c, PKMN_NAME_LENGTH
+ callba CheckStringForErrors
+ jr nc, .skip_mon_3
+ ld a, [wBT_OTTempPkmn3] ; [$c689]
+ ld [wNamedObjectIndexBuffer], a
+ call GetPokemonName
+ ld l, e
+ ld h, d
+ ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+.skip_mon_3
+; Add the terminator character to each of these names
+ ld a, "@"
+ ld [wBT_OTTempPkmn1NameEnd - 1], a ; $c64d
+ ld [wBT_OTTempPkmn2NameEnd - 1], a ; $c688
+ ld [wBT_OTTempPkmn3NameEnd - 1], a ; $c68a + 57 = $c6c3
+; Fix errors in the movesets
+ call CheckBTMonMovesForErrors
+; Repair the trainer name if needed, then copy it to OTPlayerName
+ ld de, wBT_OTTempName
+ ld c, NAME_LENGTH - 1
+ callba CheckStringForErrors
+ jr nc, .trainer_name_okay
+ ld hl, BT_ChrisName
+ jr .done_trainer_name
+
+.trainer_name_okay
+ ld hl, wBT_OTTempName ; 0xc608
+
+.done_trainer_name
+ ld de, OTPlayerName
+ ld bc, NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+
+ ld hl, wBT_OTTempTrainerClass
+ ld a, [hli]
+ ld [OtherTrainerClass], a
+ ld a, OTPartyMonNicknames % $100
+ ld [BGMapBuffer], a
+ ld a, OTPartyMonNicknames / $100
+ ld [BGMapBuffer + 1], a
+
+ ; Copy Pkmn into Memory from the address in hl
+ ld de, OTPartyMon1Species
+ ld bc, OTPartyCount
+ ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has
+ ld [bc], a
+ inc bc
+.otpartymon_loop
+ push af
+ ld a, [hl]
+ ld [bc], a
+ inc bc
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ push de
+ ld a, [BGMapBuffer]
+ ld e, a
+ ld a, [BGMapBuffer + 1]
+ ld d, a
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ld a, e
+ ld [BGMapBuffer], a
+ ld a, d
+ ld [BGMapBuffer + 1], a
+ pop de
+ pop bc
+ pop af
+ dec a
+ and a
+ jr nz, .otpartymon_loop
+ ld a, -1
+ ld [bc], a
+ ret
+; 170394
+
+ValidateBTParty: ; 170394
+; Check for and fix errors in party data
+ ld hl, wBT_OTTempPkmn1Species
+ ld d, BATTLETOWER_NROFPKMNS
+.pkmn_loop
+ push de
+ push hl
+ ld b, h
+ ld c, l
+ ld a, [hl]
+ and a
+idx = $ff
+rept ($ff +- NUM_POKEMON)
+ jr z, .invalid
+ cp idx
+idx = idx +- 1
+endr
+ jr nz, .valid
+
+.invalid
+ ld a, SMEARGLE
+ ld [hl], a
+
+.valid
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb] ; s5_b2fb ; max level?
+ call CloseSRAM
+ ld e, a
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .load
+ ld a, [hl]
+ cp e
+ jr c, .dont_load
+ ld a, e
+
+.load
+ ld [hl], a
+
+.dont_load
+ ld [CurPartyLevel], a
+ ld hl, MON_MOVES
+ add hl, bc
+ ld d, NUM_MOVES - 1
+ ld a, [hli]
+ and a
+ jr z, .not_move
+ cp NUM_ATTACKS + 1
+ jr nc, .not_move
+ jr .valid_move
+
+.not_move
+ dec hl
+ ld a, POUND
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ jr .done_moves
+
+.valid_move
+ ld a, [hl]
+ cp NUM_ATTACKS + 1
+ jr c, .next
+ ld [hl], $0
+
+.next
+ inc hl
+ dec d
+ jr nz, .valid_move
+
+.done_moves
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ push hl
+ push de
+ ld hl, MON_STAT_EXP - 1
+ add hl, bc
+ ld b, $1
+ predef CalcPkmnStats
+ pop de
+ pop hl
+ dec de
+ dec de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ pop hl
+ ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
+ add hl, bc
+ pop de
+ dec d
+ jp nz, .pkmn_loop
+ ret
+; 170426
+
+BT_ChrisName: ; 170426
+ db "CHRIS@"
+; 17042c
+
+Function17042c: ; 17042c
+ ld hl, w3_d202TrainerData
+ ld a, BATTLETOWER_NROFTRAINERS
+.loop
+ push af
+ push hl
+ ld c, BATTLETOWER_TRAINERDATALENGTH / 2
+.loop2
+ ; First byte is a comparison value.
+ ld a, [hli]
+ ld b, a
+ ; Second byte is a lookup index.
+ ld a, [hli]
+ and a
+ jr z, .empty
+ cp 15
+ jr nc, .copy_data
+
+ push hl
+ ld hl, Unknown_170470
+ dec a
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ pop hl
+
+ ; If Unknown_170470[a-1] <= b, overwrite the current trainer's data
+ ; with Unknown17047e, and exit the inner loop.
+ cp b
+ jr c, .copy_data
+ jr z, .copy_data
+ jr .next_iteration
+
+.empty
+ ; If a == 0 and b >= $fc, overwrite the current trainer's data with
+ ; Unknown17047e, and exit the inner loop.
+ ld a, b
+ cp $fc
+ jr nc, .copy_data
+
+.next_iteration
+ dec c
+ jr nz, .loop2
+ jr .next_trainer
+
+.copy_data
+ pop de
+ push de
+ ld hl, Unknown_17047e
+ ld bc, BATTLETOWER_TRAINERDATALENGTH
+ call CopyBytes
+
+.next_trainer
+ pop hl
+ ld de, BATTLE_TOWER_STRUCT_LENGTH
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+; 170470
+
+Unknown_170470:
+ db $12
+ db $24
+ db $45
+ db $45
+ db $42
+ db $42
+ db $45
+ db $42
+ db $27
+ db $27
+ db $45
+ db $27
+ db $42
+ db $24
+
+Unknown_17047e:
+; see data/battle_tower_2.asm
+ db $03, 4
+ db $05, 8
+ db $03, 5
+ db $0e, 6
+ db $03, 2
+ db $00, 0
+ db $39, 7
+ db $07, 4
+ db $00, 5
+ db $04, 7
+ db $01, 5
+ db $00, 0
+ db $0f, 5
+ db $14, 7
+ db $05, 5
+ db $11, 12
+ db $0c, 6
+ db $06, 4
+
+
+CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2
+; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp'
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(BT_OTTrainer)
+ ld [rSVBK], a
+
+ ld hl, BT_OTTrainer
+ ld de, wBT_OTTemp
+ ld bc, BATTLE_TOWER_STRUCT_LENGTH
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, BATTLETOWER_CHALLENGE_IN_PROGESS
+ ld [sBattleTowerChallengeState], a
+ ld hl, sNrOfBeatenBattleTowerTrainers
+ inc [hl]
+ call CloseSRAM
+SkipBattleTowerTrainer: ; 1704c9
+ ret
+; 1704ca
+
+Function1704ca: ; 1704ca
+; unreferenced mobile function
+ ld a, [$be46]
+ cp $7
+ jr c, .asm_1704d3
+ ld a, $6
+
+.asm_1704d3
+ ld hl, $afce
+ ld de, -$e0
+.asm_1704d9
+ and a
+ jr z, .asm_1704e0
+ add hl, de
+ dec a
+ jr .asm_1704d9
+
+.asm_1704e0
+ ret
+; 1704e1
+
+Function1704e1: ; 1704e1
+; unreferenced special
+ call SpeechTextBox
+ call FadeToMenu
+ call InitBattleTowerChallengeRAM
+ call .JumptableLoop
+ call CloseSubmenu
+ ret
+; 1704f1
+
+.JumptableLoop: ; 1704f1
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+.loop
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .done
+ call .DoJumptable
+ callba ReloadMapPart
+ jr .loop
+
+.done
+ ret
+; 170510
+
+.DoJumptable: ; 170510
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .dw
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 17051f
+
+.dw ; 17051f
+ dw .Jumptable_0
+ dw .Jumptable_1
+ dw .Jumptable_2
+; 170525
+
+.Jumptable_0: ; 170525
+ ld a, $5
+ call GetSRAMBank
+
+ ld hl, $a89c
+ ld de, StringBuffer3
+ ld bc, $16
+ call CopyBytes
+
+ ld hl, $a8b2
+ ld de, wMisc
+ ld bc, $0096
+ call CopyBytes
+
+ call CloseSRAM
+ hlcoord 1, 1
+ ld de, StringBuffer3
+ call PlaceString
+ hlcoord 1, 3
+ ld de, .String_Mail
+ call PlaceString
+ hlcoord 4, 3
+ ld de, StringBuffer4
+ call PlaceString
+ hlcoord 8, 3
+ ld de, .String_PastReaders
+ call PlaceString
+ call .DrawBorder
+ call .PlaceTextItems
+ jr .NextJumptableFunction
+
+
+.Jumptable_1:
+ call SetPalettes
+ call .NextJumptableFunction
+
+
+.Jumptable_2:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressed_a_or_b
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .pressed_a_or_b
+ ld a, [hl]
+ and D_UP
+ jr nz, .pressed_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .pressed_down
+ ret
+
+.pressed_up
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ and a
+ ret z
+ sub 15
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call .PlaceTextItems
+ ret
+
+.pressed_down
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ cp 60
+ ret z
+ add 15
+ ld [wNrOfBeatenBattleTowerTrainers], a
+ call .PlaceTextItems
+ ret
+
+.pressed_a_or_b
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.NextJumptableFunction:
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 1705b7
+
+.DrawBorder: ; 1705b7
+ hlcoord 0, 4
+ ld a, $79
+ ld [hli], a
+ ld c, SCREEN_WIDTH - 2
+.top_border_loop
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .top_border_loop
+ ld a, $7b
+ ld [hli], a
+ ld de, SCREEN_WIDTH
+ ld c, 12
+.left_border_loop
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .left_border_loop
+ ld a, $7d
+ ld [hli], a
+ ld c, SCREEN_WIDTH - 2
+.bottom_border_loop
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .bottom_border_loop
+ ld a, $7e
+ ld [hl], a
+ ld de, -SCREEN_WIDTH
+ add hl, de
+ ld c, 12
+.right_border_loop
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .right_border_loop
+ ret
+; 1705f0
+
+.PlaceTextItems: ; 1705f0
+ call .ClearBox
+ call .PlaceUpDownArrows
+ ld a, $50
+ ld [wcd4e], a
+ ld hl, wMisc
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ push hl
+ pop bc
+ hlcoord 1, 6
+ ld a, 6
+.loop1
+ push af
+ push hl
+ ld a, 3
+.loop2
+ push af
+ ld de, wcd49
+ ld a, [bc]
+ and a
+ jr z, .fill_with_e3
+; .copy
+ ld a, 5
+.loop3a
+ push af
+ ld a, [bc]
+ ld [de], a
+ inc bc
+ inc de
+ pop af
+ dec a
+ jr nz, .loop3a
+ jr .rejoin
+
+.fill_with_e3
+ ld a, 5
+.loop3b
+ push af
+ ld a, $e3
+ ld [de], a
+ inc de
+ inc bc
+ pop af
+ dec a
+ jr nz, .loop3b
+
+.rejoin
+ ld de, wcd49
+ push bc
+ call PlaceString
+ ld de, NAME_LENGTH_JAPANESE
+ add hl, de
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop2
+ pop hl
+ ld de, $28
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop1
+ ret
+; 17064b
+
+.ClearBox: ; 17064b
+ hlcoord 1, 5
+ xor a
+ ld b, 12
+.clearbox_row
+ ld c, SCREEN_WIDTH - 2
+.clearbox_column
+ ld [hli], a
+ dec c
+ jr nz, .clearbox_column
+ inc hl
+ inc hl
+ dec b
+ jr nz, .clearbox_row
+ ret
+; 17065d
+
+.PlaceUpDownArrows: ; 17065d
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ and a
+ jr z, .nope
+ hlcoord 18, 5
+ ld a, "▲"
+ ld [hl], a
+
+.nope
+ ld a, [wNrOfBeatenBattleTowerTrainers]
+ cp 60
+ ret z
+ hlcoord 18, 16
+ ld a, "▼"
+ ld [hl], a
+ ret
+; 170676
+
+.String_Mail: ; 170676
+ db "ルーム@"
+; 17067a
+
+.String_PastReaders: ; 17067a
+ db "れきだいりーダーいちらん@"
+; 170687
+
+BattleTowerAction: ; 170687
+ ld a, [ScriptVar]
+ ld e, a
+ ld d, 0
+ ld hl, .dw
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 170696
+
+
+.dw ; 170696 (5c:4696)
+ dw BattleTowerAction_CheckExplanationRead ; 0x00
+ dw BattleTowerAction_SetExplanationRead ; 0x01
+ dw BattleTowerAction_GetChallengeState ; 0x02
+ dw BattleTowerAction_SetByteToQuickSaveChallenge ; 0x03
+ dw BattleTowerAction_SetByteToCancelChallenge ; 0x04
+ dw Function1707ac ; 0x05
+ dw Function1707f4 ; 0x06
+ dw SaveBattleTowerLevelGroup ; 0x07
+ dw LoadBattleTowerLevelGroup ; 0x08
+ dw BattleTower_CheckSaveFileExistsAndIsYours ; 0x09
+ dw Function1708b1 ; 0x0a
+ dw CheckMobileEventIndex ; 0x0b
+ dw Function1708c8 ; 0x0c
+ dw Function1708f0 ; 0x0d
+ dw BattleTowerAction_EggTicket ; 0x0e
+ dw Function1709aa ; 0x0f
+ dw Function1709bb ; 0x10
+ dw Function170a9c ; 0x11
+ dw Function170aa0 ; 0x12
+ dw Function170aaf ; 0x13
+ dw Function170abe ; 0x14
+ dw Function170ad7 ; 0x15
+ dw Function170807 ; 0x16
+ dw Function17081d ; 0x17
+ dw BattleTowerAction_LevelCheck ; 0x18
+ dw BattleTowerAction_UbersCheck ; 0x19
+ dw ResetBattleTowerTrainersSRAM ; 0x1a
+ dw BattleTower_GiveReward ; 0x1b
+ dw Function17071b ; 0x1c
+ dw Function170729 ; 0x1d
+ dw BattleTower_RandomlyChooseReward ; 0x1e
+ dw BattleTower_SaveOptions ; 0x1f
+
+
+; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
+ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a
+ ld a, BANK(sBTTrainers)
+ call GetSRAMBank
+
+ ld a, $ff
+ ld hl, sBTTrainers
+ ld bc, BATTLETOWER_NROFTRAINERS
+ call ByteFill
+
+ xor a
+ ld [sNrOfBeatenBattleTowerTrainers], a
+
+ call CloseSRAM
+
+ ret
+
+BattleTower_GiveReward: ; 1706ee (5c:46ee) BattleTowerAction $1b
+ ld a, BANK(sBattleTowerReward)
+ call GetSRAMBank
+
+ ld a, [sBattleTowerReward]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ld hl, NumItems
+ ld a, [hli]
+ cp MAX_ITEMS
+ ret c
+ ld b, MAX_ITEMS
+ ld a, [ScriptVar]
+ ld c, a
+.loop
+ ld a, [hli]
+ cp c
+ jr nz, .next
+ ld a, [hl]
+ cp 95
+ ret c
+.next
+ inc hl
+ dec b
+ jr nz, .loop
+ ld a, POTION
+ ld [ScriptVar], a
+ ret
+
+Function17071b: ; 17071b (5c:471b) BattleTowerAction $1c
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, BATTLETOWER_WON_CHALLENGE
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+Function170729: ; 170729 (5c:4729) BattleTowerAction $1d
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, BATTLETOWER_RECEIVED_REWARD
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+BattleTower_SaveOptions: ; 170737 (5c:4737) BattleTowerAction $1f
+ callba SaveOptions
+ ret
+
+BattleTower_RandomlyChooseReward: ; 17073e (5c:473e) BattleTowerAction $1e
+; Generate a random stat boosting item.
+.loop
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ cp 6
+ jr c, .okay
+ sub 6
+.okay
+ add HP_UP
+ cp LUCKY_PUNCH
+ jr z, .loop
+ push af
+ ld a, BANK(sBattleTowerReward)
+ call GetSRAMBank
+ pop af
+ ld [sBattleTowerReward], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_CheckExplanationRead: ; 17075f (5c:475f) BattleTowerAction $00
+ call BattleTower_CheckSaveFileExistsAndIsYours
+ ld a, [ScriptVar]
+ and a
+ ret z
+
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ and $2
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_GetChallengeState: ; 170778 (5c:4778) BattleTowerAction $02
+ ld hl, sBattleTowerChallengeState
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, [hl]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_SetExplanationRead: ; 170788 (5c:4788) BattleTowerAction $01
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ or $2
+ ld [sBattleTowerSaveFileFlags], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_SetByteToQuickSaveChallenge: ; 170799 (5c:4799) BattleTowerAction $03
+ ld c, BATTLETOWER_SAVED_AND_LEFT
+ jr asm_17079f
+
+BattleTowerAction_SetByteToCancelChallenge: ; 17079d (5c:479d) BattleTowerAction $04
+ ld c, BATTLETOWER_NO_CHALLENGE
+asm_17079f: ; 17079f (5c:479f)
+ ld a, BANK(sBattleTowerChallengeState)
+ call GetSRAMBank
+ ld a, c
+ ld [sBattleTowerChallengeState], a
+ call CloseSRAM
+ ret
+
+Function1707ac: ; 1707ac (5c:47ac) BattleTowerAction $05
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8c]
+ ld b, a
+ ld a, [$be46]
+ ld [ScriptVar], a
+ call CloseSRAM
+ and a
+ ret z
+ ld a, b
+ cp $2
+ jr nc, .asm_1707ef
+ push bc
+ call UpdateTime
+ pop bc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8b]
+ call CloseSRAM
+ ld c, a
+ ld a, [CurDay]
+ sub c
+ jr c, .asm_1707e5
+ cp $8
+ jr nc, .asm_1707ef
+ ld a, b
+ and a
+ jr nz, .asm_1707ef
+ ret
+.asm_1707e5
+ ld hl, CurDay
+ ld a, $8c
+ sub c
+ add [hl]
+ cp $8
+ ret c
+.asm_1707ef
+ ld a, $8
+ ld [ScriptVar], a
+
+Function1707f4: ; 1707f4 (5c:47f4) BattleTowerAction $06
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$be46], a
+ ld [$aa8b], a
+ ld [$aa8c], a
+ call CloseSRAM
+ ret
+
+Function170807: ; 170807 (5c:4807) BattleTowerAction $16
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [CurDay]
+ ld [$b2f9], a
+ xor a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+Function17081d: ; 17081d (5c:481d) BattleTowerAction $17
+ xor a
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2f9]
+ ld c, a
+ ld a, [$b2fa]
+ ld b, a
+ call CloseSRAM
+ cp $2
+ jr nc, .asm_170853
+ push bc
+ call UpdateTime
+ pop bc
+ ld a, [CurDay]
+ sub c
+ jr c, .asm_170849
+ cp $b
+ jr nc, .asm_170853
+ ld a, b
+ and a
+ jr nz, .asm_170853
+ ret
+
+.asm_170849
+ ld hl, CurDay
+ ld a, 140
+ sub c
+ add [hl]
+ cp $b
+ ret c
+.asm_170853
+ ld a, $1
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$b2f9], a
+ ld [$b2fa], a
+ call CloseSRAM
+ ret
+
+SaveBattleTowerLevelGroup: ; 170868 (5c:4868) BattleTowerAction $07
+ ld a, BANK(sBTChoiceOfLevelGroup)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wBTChoiceOfLvlGroup]
+ ld [sBTChoiceOfLevelGroup], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+LoadBattleTowerLevelGroup: ; 170881 (5c:4881) BattleTowerAction $08 ; Load level group choice
+ ld a, BANK(sBTChoiceOfLevelGroup)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [sBTChoiceOfLevelGroup]
+ ld [wBTChoiceOfLvlGroup], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+BattleTower_CheckSaveFileExistsAndIsYours: ; 17089a BattleTowerAction $09
+ ld a, [wSaveFileExists]
+ and a
+ jr z, .nope
+ callba CompareLoadedAndSavedPlayerID
+ jr z, .yes
+ xor a
+ jr .nope
+
+.yes
+ ld a, $1
+
+.nope
+ ld [ScriptVar], a
+ ret
+; 1708b1
+
+
+Function1708b1: ; 1708b1 (5c:48b1) BattleTowerAction $0a
+ xor a
+ ld [MusicFade], a
+ call MaxVolume
+ ret
+
+CheckMobileEventIndex: ; 1708b9 (5c:48b9) BattleTowerAction $0b something to do with GS Ball
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ ld a, [sMobileEventIndex]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function1708c8: ; 1708c8 (5c:48c8) BattleTowerAction $0c
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [CurDay]
+ ld [$aa8b], a
+ xor a
+ ld [$aa8c], a
+ ld a, [$aa5d]
+ cp $2
+ jr nc, .asm_1708ec
+ ld a, [CurDay]
+ ld [$aa48], a
+ ld a, $1
+ ld [$aa47], a
+.asm_1708ec
+ call CloseSRAM
+ ret
+
+Function1708f0: ; 1708f0 (5c:48f0) BattleTowerAction $0d
+ xor a
+ ld [ScriptVar], a
+ call UpdateTime
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa48]
+ ld c, a
+ ld a, [$aa47]
+ call CloseSRAM
+ and a
+ ret z
+ ld hl, CurDay
+ ld a, c
+ cp [hl]
+ jr nz, Function170923
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa5d]
+ call CloseSRAM
+ cp $5
+ ret c
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+
+Function170923: ; 170923
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$aa48], a
+ ld [$aa47], a
+ ld hl, $aa5d
+ ld bc, $0011
+ call ByteFill
+ call CloseSRAM
+ ret
+; 17093c
+
+
+BattleTowerAction_EggTicket: ; 17093c (5c:493c) BattleTowerAction $0e
+ xor a
+ ld [ScriptVar], a
+ ld a, EGG_TICKET
+ ld [CurItem], a
+ ld hl, NumItems
+ call CheckItem
+ ret nc
+ ld a, [PartyCount]
+ ld b, 0
+ ld c, a
+ ld hl, PartySpecies
+.loop
+ ld a, [hli]
+ cp EGG
+ jr nz, .not_egg
+ push hl
+ ld hl, PartyMonOT
+ ld de, NAME_LENGTH_JAPANESE
+ ld a, b
+ and a
+ jr z, .skip
+.loop2
+ add hl, de
+ dec a
+ jr nz, .loop2
+.skip
+ ld de, String_1709a4
+ ld a, NAME_LENGTH_JAPANESE
+.compare_loop
+ push af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .different
+ pop af
+ dec a
+ jr nz, .compare_loop
+rept 4
+ dec hl
+endr
+ ld a, "@"
+ ld [hli], a
+ ld [hli], a
+ pop hl
+ ld a, EGG_TICKET
+ ld [CurItem], a
+ ld a, 1
+ ld [wItemQuantityChangeBuffer], a
+ ld a, -1
+ ld [CurItemQuantity], a
+ ld hl, NumItems
+ call TossItem
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.different
+ pop af
+ pop hl
+.not_egg
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 1709a4 (5c:49a4)
+
+String_1709a4: ; 1709a4
+ db "なぞナゾ@@"
+
+Function1709aa: ; 1709aa (5c:49aa) BattleTowerAction $0f
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(w3_d090)
+ ld [rSVBK], a
+ ld a, [w3_d090]
+ ld [ScriptVar], a
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function1709bb: ; 1709bb (5c:49bb) BattleTowerAction $10
+ xor a
+ ld [ScriptVar], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ call CloseSRAM
+ cp 6
+ jr nc, .invalid
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1709e7
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.invalid
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ call CloseSRAM
+ ret
+; 1709e7 (5c:49e7)
+
+Jumptable_1709e7: ; 1709e7
+ dw .NoAction
+ dw .NoAction
+ dw .DoAction1
+ dw .DoAction1
+ dw .Action4
+ dw .Action5
+; 1709f3
+
+.DoAction1: ; 1709f3
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+
+.NoAction: ; 170a00
+ ret
+; 170a01
+
+.Action4: ; 170a01
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b023
+ ld de, wMisc
+ ld bc, $0069
+ call CopyBytes
+ ld a, [$a825]
+ ld [wcd30], a
+ ld a, [$a826]
+ ld [wcd31], a
+ call CloseSRAM
+ callba Function11b6b4
+ callba Function17d0f3
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 170a33
+
+.Action5: ; 170a33
+ ld a, $0
+ call GetSRAMBank
+ ld hl, wRTC
+ ld de, wMisc
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b08c
+ ld de, wMisc
+ ld c, $4
+.compare_loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .different
+ inc hl
+ dec c
+ jr nz, .compare_loop
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .no_trigger
+ ld a, [de]
+ and a
+ ret nz
+
+.no_trigger
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.different
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ call CloseSRAM
+ ld [ScriptVar], a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .no_trigger_2
+ xor a
+ ld [de], a
+
+.no_trigger_2
+ ret
+; 170a9c
+
+Function170a9c: ; 170a9c (5c:4a9c) BattleTowerAction $11
+ ld c, $0
+ jr asm_170aa2
+
+Function170aa0: ; 170aa0 (5c:4aa0) BattleTowerAction $12
+ ld c, $1
+asm_170aa2: ; 170aa2 (5c:4aa2)
+ ld a, $5
+ call GetSRAMBank
+ ld a, c
+ ld [$aa8d], a
+ call CloseSRAM
+ ret
+
+Function170aaf: ; 170aaf (5c:4aaf) BattleTowerAction $13
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8d]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170abe: ; 170abe (5c:4abe) BattleTowerAction $14
+ call BattleTower_CheckSaveFileExistsAndIsYours
+ ld a, [ScriptVar]
+ and a
+ ret z
+
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ and $1
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170ad7: ; 170ad7 (5c:4ad7) BattleTowerAction $15
+ ld a, BANK(sBattleTowerSaveFileFlags)
+ call GetSRAMBank
+ ld a, [sBattleTowerSaveFileFlags]
+ or $1
+ ld [sBattleTowerSaveFileFlags], a
+ call CloseSRAM
+ ret
+
+BattleTowerAction_LevelCheck: ; 170ae8 (5c:4ae8) BattleTowerAction $18
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld c, 10
+ call SimpleDivide
+ ld a, b
+ ld [wcd4f], a
+ xor a
+ ld [ScriptVar], a
+ callba BattleTower_LevelCheck ; level check
+ ret nc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ret
+
+BattleTowerAction_UbersCheck: ; 170b16 (5c:4b16) BattleTowerAction $19
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld c, 10
+ call SimpleDivide
+ ld a, b
+ ld [wcd4f], a
+ xor a
+ ld [ScriptVar], a
+ callba BattleTower_UbersCheck
+ ret nc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ret
+
+Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44
+ callba Function_LoadOpponentTrainerAndPokemons
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, BT_OTTrainerClass
+ ld a, [hl]
+ dec a
+ ld c, a
+ ld b, $0
+ pop af
+ ld [rSVBK], a
+ ld hl, .Sprites
+ add hl, bc
+ ld a, [hl]
+ ld [wBTTempOTSprite], a
+
+; Load sprite of the opponent trainer
+; because s/he is chosen randomly and appears out of nowhere
+ ld a, [ScriptVar]
+ dec a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ ld d, 0
+ ld hl, MapObjects
+ add hl, bc
+ inc hl
+ ld a, [wBTTempOTSprite]
+ ld [hl], a
+ ld hl, UsedSprites
+ add hl, de
+ ld [hli], a
+ ld [hUsedSpriteIndex], a
+ ld a, [hl]
+ ld [hUsedSpriteTile], a
+ callba GetUsedSprite
+ ret
+; 170b90
+
+.Sprites:
+ db SPRITE_FALKNER
+ db SPRITE_WHITNEY
+ db SPRITE_BUGSY
+ db SPRITE_MORTY
+ db SPRITE_PRYCE
+ db SPRITE_JASMINE
+ db SPRITE_CHUCK
+ db SPRITE_CLAIR
+ db SPRITE_SILVER
+ db SPRITE_OAK
+ db SPRITE_WILL
+ db SPRITE_CHRIS
+ db SPRITE_BRUNO
+ db SPRITE_KAREN
+ db SPRITE_KOGA
+ db SPRITE_LANCE
+ db SPRITE_BROCK
+ db SPRITE_MISTY
+ db SPRITE_SURGE
+ db SPRITE_SCIENTIST
+ db SPRITE_ERIKA
+ db SPRITE_YOUNGSTER
+ db SPRITE_YOUNGSTER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_JANINE
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_BUENA
+ db SPRITE_SUPER_NERD
+ db SPRITE_ROCKET
+ db SPRITE_GENTLEMAN
+ db SPRITE_BUENA
+ db SPRITE_TEACHER
+ db SPRITE_SABRINA
+ db SPRITE_BUG_CATCHER
+ db SPRITE_FISHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SAILOR
+ db SPRITE_SUPER_NERD
+ db SPRITE_BLUE
+ db SPRITE_ROCKER
+ db SPRITE_POKEFAN_M
+ db SPRITE_BIKER
+ db SPRITE_BLAINE
+ db SPRITE_PHARMACIST
+ db SPRITE_FISHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BLACK_BELT
+ db SPRITE_ROCKET
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_YOUNGSTER
+ db SPRITE_ROCKET_GIRL
+ db SPRITE_SAGE
+ db SPRITE_GRANNY
+ db SPRITE_ROCKER
+ db SPRITE_POKEFAN_M
+ db SPRITE_KIMONO_GIRL
+ db SPRITE_TWIN
+ db SPRITE_POKEFAN_F
+ db SPRITE_RED
+ db SPRITE_BLUE
+ db SPRITE_OFFICER
+ db SPRITE_ROCKET_GIRL
+
+ret_170bd2: ; 170bd2
+ ret
+; 170bd3
+
+SpecialCheckForBattleTowerRules: ; 170bd3
+ callba CheckForBattleTowerRules
+ jr c, .asm_170bde
+ xor a
+ jr .asm_170be0
+
+.asm_170bde
+ ld a, $1
+
+.asm_170be0
+ ld [ScriptVar], a
+ ret
+; 170be4
diff --git a/mobile/fixed_words.asm b/mobile/fixed_words.asm
new file mode 100755
index 000000000..d98470095
--- /dev/null
+++ b/mobile/fixed_words.asm
@@ -0,0 +1,4294 @@
+; These functions seem to be related to the selection of preset phrases
+; for use in mobile communications. Annoyingly, they separate the
+; Battle Tower function above from the data it references.
+Function11c05d: ; 11c05d
+ ld a, e
+ or d
+ jr z, .error
+ ld a, e
+ and d
+ cp $ff
+ jr z, .error
+ push hl
+ call CopyMobileEZChatToC608
+ pop hl
+ call PlaceString
+ and a
+ ret
+
+.error
+ ld c, l
+ ld b, h
+ scf
+ ret
+; 11c075
+
+Function11c075: ; 11c075
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call Function11c08f
+ ret
+; 11c082
+
+Function11c082: ; 11c082
+; XXX
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call PrintEZChatBattleMessage
+ ret
+; 11c08f
+
+Function11c08f: ; 11c08f
+ ld l, e
+ ld h, d
+ push hl
+ ld a, 3
+.loop
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .okay
+ inc bc
+
+.okay
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ ld a, $3
+.loop2
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .okay2
+ inc bc
+
+.okay2
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop2
+ ret
+; 11c0c6
+
+PrintEZChatBattleMessage: ; 11c0c6
+; Use up to 6 words from bc to print text starting at de.
+ ; Preserve $cf63, $cf64
+ ld a, [wJumptableIndex]
+ ld l, a
+ ld a, [wcf64]
+ ld h, a
+ push hl
+ ; reset value at c618 (not preserved)
+ ld hl, $c618
+ ld a, $0
+ ld [hli], a
+ ; preserve de
+ push de
+ ; $cf63 keeps track of which line we're on (0, 1, or 2)
+ ; $cf64 keeps track of how much room we have left in the current line
+ xor a
+ ld [wJumptableIndex], a
+ ld a, 18
+ ld [wcf64], a
+ ld a, $6 ; up to 6 times
+.loop
+ push af
+ ; load the 2-byte word data pointed to by bc
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ ; if $0000, we're done
+ or e
+ jr z, .done
+ ; preserving hl and bc, get the length of the word
+ push hl
+ push bc
+ call CopyMobileEZChatToC608
+ call GetLengthOfWordAtC608
+ ld e, c
+ pop bc
+ pop hl
+ ; if the functions return 0, we're done
+ ld a, e
+ or a
+ jr z, .done
+.loop2
+ ; e contains the length of the word
+ ; add 1 for the space, unless we're at the start of the line
+ ld a, [wcf64]
+ cp 18
+ jr z, .skip_inc
+ inc e
+
+.skip_inc
+ ; if the word fits, put it on the same line
+ cp e
+ jr nc, .same_line
+ ; otherwise, go to the next line
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ; if we're on line 2, insert "<NEXT>"
+ ld [hl], "<NEXT>"
+ rra
+ jr c, .got_line_terminator
+ ; else, insert "<CONT>"
+ ld [hl], "<CONT>"
+
+.got_line_terminator
+ inc hl
+ ; init the next line, holding on to the same word
+ ld a, 18
+ ld [wcf64], a
+ dec e
+ jr .loop2
+
+.same_line
+ ; add the space, unless we're at the start of the line
+ cp 18
+ jr z, .skip_space
+ ld [hl], " "
+ inc hl
+
+.skip_space
+ ; deduct the length of the word
+ sub e
+ ld [wcf64], a
+ ld de, $c608
+.place_string_loop
+ ; load the string from de to hl
+ ld a, [de]
+ cp "@"
+ jr z, .done
+ inc de
+ ld [hli], a
+ jr .place_string_loop
+
+.done
+ ; next word?
+ pop af
+ dec a
+ jr nz, .loop
+ ; we're finished, place "<DONE>"
+ ld [hl], "<DONE>"
+ ; now, let's place the string from c618 to bc
+ pop bc
+ ld hl, $c618
+ call PlaceHLTextAtBC
+ ; restore the original values of $cf63 and $cf64
+ pop hl
+ ld a, l
+ ld [wJumptableIndex], a
+ ld a, h
+ ld [wcf64], a
+ ret
+; 11c14a
+
+GetLengthOfWordAtC608: ; 11c14a
+ ld c, $0
+ ld hl, $c608
+.loop
+ ld a, [hli]
+ cp "@"
+ ret z
+ inc c
+ jr .loop
+; 11c156
+
+CopyMobileEZChatToC608: ; 11c156
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, "@"
+ ld hl, $c608
+ ld bc, NAME_LENGTH
+ call ByteFill
+ ld a, d
+ and a
+ jr z, .get_name
+ ld hl, MobileEZChatCategoryPointers
+ dec d
+ sla d
+ ld c, d
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ push bc
+ pop hl
+ ld c, e
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ ld bc, NAME_LENGTH_JAPANESE - 1
+.copy_string
+ ld de, $c608
+ call CopyBytes
+ ld de, $c608
+ pop af
+ ld [rSVBK], a
+ ret
+
+.get_name
+ ld a, e
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH - 1
+ jr .copy_string
+; 11c1ab
+
+Function11c1ab: ; 11c1ab
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function11c1b9
+ pop af
+ ld [hInMenu], a
+ ret
+; 11c1b9
+
+Function11c1b9: ; 11c1b9
+ call .InitKanaMode
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call EZChat_MasterLoop
+ pop af
+ ld [rSVBK], a
+ ret
+; 11c1ca
+
+.InitKanaMode: ; 11c1ca
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wcd23], a
+ ld [wcd20], a
+ ld [wcd21], a
+ ld [wcd22], a
+ ld [wcd35], a
+ ld [wcd2b], a
+ ld a, $ff
+ ld [wcd24], a
+ ld a, [wMenuCursorY]
+ dec a
+ call Function11c254
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+ call Function11d323
+ call SetPalettes
+ call DisableLCD
+ ld hl, GFX_11d67e
+ ld de, VTiles2
+ ld bc, $60
+ call CopyBytes
+ ld hl, LZ_11d6de
+ ld de, VTiles0
+ call Decompress
+ call EnableLCD
+ callba ReloadMapPart
+ callba ClearSpriteAnims
+ callba LoadPokemonData
+ callba Pokedex_ABCMode
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $c6d0
+ ld de, LYOverrides
+ ld bc, $100
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call EZChat_GetCategoryWordsByKana
+ call EZChat_GetSeenPokemonByKana
+ ret
+; 11c254
+
+Function11c254: ; 11c254
+ push af
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a007
+ pop af
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld de, wcd36
+ ld bc, 12
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 11c277
+
+EZChat_ClearBottom12Rows: ; 11c277 (47:4277)
+ ld a, " "
+ hlcoord 0, 6
+ ld bc, (SCREEN_HEIGHT - 6) * SCREEN_WIDTH
+ call ByteFill
+ ret
+
+EZChat_MasterLoop: ; 11c283
+.loop
+ call JoyTextDelay
+ ld a, [hJoyPressed]
+ ld [hJoypadPressed], a
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .exit
+ call .DoJumptableFunction
+ callba PlaySpriteAnimations
+ callba ReloadMapPart
+ jr .loop
+
+.exit
+ callba ClearSpriteAnims
+ call ClearSprites
+ ret
+; 11c2ac
+
+.DoJumptableFunction: ; 11c2ac
+ jumptable .Jumptable, wJumptableIndex
+; 11c2bb
+
+.Jumptable: ; 11c2bb (47:42bb)
+ dw .SpawnObjects ; 00
+ dw .InitRAM ; 01
+ dw Function11c35f ; 02
+ dw Function11c373 ; 03
+ dw Function11c3c2 ; 04
+ dw Function11c3ed ; 05
+ dw Function11c52c ; 06
+ dw Function11c53d ; 07
+ dw Function11c658 ; 08
+ dw Function11c675 ; 09
+ dw Function11c9bd ; 0a
+ dw Function11c9c3 ; 0b
+ dw Function11caad ; 0c
+ dw Function11cab3 ; 0d
+ dw Function11cb52 ; 0e
+ dw Function11cb66 ; 0f
+ dw Function11cbf5 ; 10
+ dw Function11ccef ; 11
+ dw Function11cd04 ; 12
+ dw Function11cd20 ; 13
+ dw Function11cd54 ; 14
+ dw Function11ce0b ; 15
+ dw Function11ce2b ; 16
+
+.SpawnObjects: ; 11c2e9 (47:42e9)
+ depixel 3, 1, 2, 5
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ depixel 8, 1, 2, 5
+
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $1
+ ld [hl], a
+
+ depixel 9, 2, 2, 0
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $3
+ ld [hl], a
+
+ depixel 10, 16
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $4
+ ld [hl], a
+
+ depixel 10, 4
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $5
+ ld [hl], a
+
+ depixel 10, 2
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $2
+ ld [hl], a
+
+ ld hl, wcd23
+ set 1, [hl]
+ set 2, [hl]
+ jp Function11cfb5
+
+.InitRAM: ; 11c346 (47:4346)
+ ld a, $9
+ ld [wcd2d], a
+ ld a, $2
+ ld [wcd2e], a
+ ld [wcd2f], a
+ ld [wcd30], a
+ ld de, wcd2d
+ call Function11cfce
+ jp Function11cfb5
+
+Function11c35f: ; 11c35f (47:435f)
+ ld hl, wcd2f
+ inc [hl]
+ inc [hl]
+ dec hl
+ dec hl
+ dec [hl]
+ push af
+ ld de, wcd2d
+ call Function11cfce
+ pop af
+ ret nz
+ jp Function11cfb5
+
+Function11c373: ; 11c373 (47:4373)
+ ld hl, wcd30
+ inc [hl]
+ inc [hl]
+ dec hl
+ dec hl
+ dec [hl]
+ push af
+ ld de, wcd2d
+ call Function11cfce
+ pop af
+ ret nz
+ call Function11c38a
+ jp Function11cfb5
+
+Function11c38a: ; 11c38a (47:438a)
+ ld hl, Unknown_11c986
+ ld bc, wcd36
+ ld a, $6
+.asm_11c392
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ push de
+ pop hl
+ ld a, [bc]
+ inc bc
+ ld e, a
+ ld a, [bc]
+ inc bc
+ ld d, a
+ push bc
+ or e
+ jr z, .asm_11c3af
+ ld a, e
+ and d
+ cp $ff
+ jr z, .asm_11c3af
+ call Function11c05d
+ jr .asm_11c3b5
+.asm_11c3af
+ ld de, String_11c3bc
+ call PlaceString
+.asm_11c3b5
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_11c392
+ ret
+; 11c3bc (47:43bc)
+
+String_11c3bc: ; 11c3bc
+ db "ーーーーー@"
+; 11c3c2
+
+Function11c3c2: ; 11c3c2 (47:43c2)
+ call EZChat_ClearBottom12Rows
+ ld de, Unknown_11cfbe
+ call Function11d035
+ hlcoord 1, 7
+ ld de, String_11c4db
+ call PlaceString
+ hlcoord 1, 16
+ ld de, String_11c51b
+ call PlaceString
+ call Function11c4be
+ ld hl, wcd23
+ set 0, [hl]
+ ld hl, wcd24
+ res 0, [hl]
+ call Function11cfb5
+
+Function11c3ed: ; 11c3ed (47:43ed)
+ ld hl, wcd20 ; wcd20
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $8
+ jr nz, .asm_11c426
+ ld a, [de]
+ and $2
+ jr nz, .asm_11c41a
+ ld a, [de]
+ and $1
+ jr nz, .asm_11c42c
+ ld de, hJoyLast
+ ld a, [de]
+ and $40
+ jr nz, .asm_11c47c
+ ld a, [de]
+ and $80
+ jr nz, .asm_11c484
+ ld a, [de]
+ and $20
+ jr nz, .asm_11c48c
+ ld a, [de]
+ and $10
+ jr nz, .asm_11c498
+ ret
+
+.asm_11c41a
+ call PlayClickSFX
+.asm_11c41d
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $c
+ jr .asm_11c475
+.asm_11c426
+ ld a, $8
+ ld [wcd20], a ; wcd20
+ ret
+
+.asm_11c42c
+ ld a, [wcd20] ; wcd20
+ cp $6
+ jr c, .asm_11c472
+ sub $6
+ jr z, .asm_11c469
+ dec a
+ jr z, .asm_11c41d
+ ld hl, wcd36
+ ld c, $c
+ xor a
+.asm_11c440
+ or [hl]
+ inc hl
+ dec c
+ jr nz, .asm_11c440
+ and a
+ jr z, .asm_11c460
+ ld de, Unknown_11cfba
+ call Function11cfce
+ decoord 1, 2
+ ld bc, wcd36
+ call Function11c08f
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $e
+ jr .asm_11c475
+.asm_11c460
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $11
+ jr .asm_11c475
+.asm_11c469
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $a
+ jr .asm_11c475
+.asm_11c472
+ call Function11c4a5
+.asm_11c475
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.asm_11c47c
+ ld a, [hl]
+ cp $3
+ ret c
+ sub $3
+ jr .asm_11c4a3
+.asm_11c484
+ ld a, [hl]
+ cp $6
+ ret nc
+ add $3
+ jr .asm_11c4a3
+.asm_11c48c
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ dec a
+ jr .asm_11c4a3
+.asm_11c498
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ inc a
+.asm_11c4a3
+ ld [hl], a
+ ret
+
+Function11c4a5: ; 11c4a5 (47:44a5)
+ ld hl, wcd23
+ res 0, [hl]
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c4b7
+ xor a
+ ld [wcd21], a
+ ld a, $6
+ ret
+
+.asm_11c4b7
+ xor a
+ ld [wcd22], a
+ ld a, $15
+ ret
+
+Function11c4be: ; 11c4be (47:44be)
+ ld a, $1
+ hlcoord 0, 6, AttrMap
+ ld bc, $a0
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 14, AttrMap
+ ld bc, $28
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11c4db (47:44db)
+
+String_11c4db: ; 11c4db
+ db "6つのことば¯くみあわせます"
+ next "かえたいところ¯えらぶと でてくる"
+ next "ことばのグループから いれかえたい"
+ next "たんご¯えらんでください"
+ db "@"
+; 11c51b
+
+String_11c51b: ; 11c51b
+ db "ぜんぶけす やめる けってい@"
+; 11c52c
+
+Function11c52c: ; 11c52c (47:452c)
+ call EZChat_ClearBottom12Rows
+ call EZChat_PlaceCategoryNames
+ call Function11c618
+ ld hl, wcd24
+ res 1, [hl]
+ call Function11cfb5
+
+Function11c53d: ; 11c53d (47:453d)
+ ld hl, wcd21
+ ld de, hJoypadPressed ; $ffa3
+
+ ld a, [de]
+ and START
+ jr nz, .start
+
+ ld a, [de]
+ and SELECT
+ jr nz, .select
+
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+
+ ld de, hJoyLast
+
+ ld a, [de]
+ and D_UP
+ jr nz, .up
+
+ ld a, [de]
+ and D_DOWN
+ jr nz, .down
+
+ ld a, [de]
+ and D_LEFT
+ jr nz, .left
+
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .right
+
+ ret
+
+.a
+ ld a, [wcd21]
+ cp 15
+ jr c, .got_category
+ sub $f
+ jr z, .done
+ dec a
+ jr z, .mode
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [wcd20], a ; wcd20
+
+.b
+ ld a, $4
+ jr .go_to_function
+
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $15
+ jr .go_to_function
+
+.mode
+ ld a, $13
+ jr .go_to_function
+
+.got_category
+ ld a, $8
+
+.go_to_function
+ ld hl, wcd24
+ set 1, [hl]
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.done
+ ld a, [wcd20] ; wcd20
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.up
+ ld a, [hl]
+ cp $3
+ ret c
+ sub $3
+ jr .finish_dpad
+
+.down
+ ld a, [hl]
+ cp $f
+ ret nc
+ add $3
+ jr .finish_dpad
+
+.left
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ cp $9
+ ret z
+ cp $c
+ ret z
+ cp $f
+ ret z
+ dec a
+ jr .finish_dpad
+
+.right
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ cp $b
+ ret z
+ cp $e
+ ret z
+ cp $11
+ ret z
+ inc a
+
+.finish_dpad
+ ld [hl], a
+ ret
+; 11c5f0
+
+EZChat_PlaceCategoryNames: ; 11c5f0 (47:45f0)
+ ld de, MobileEZChatCategoryNames
+ ld bc, Coords_11c63a
+ ld a, 15
+.loop
+ push af
+ ld a, [bc]
+ inc bc
+ ld l, a
+ ld a, [bc]
+ inc bc
+ ld h, a
+ push bc
+ call PlaceString
+ ; The category names are padded with "@".
+ ; To find the next category, the system must
+ ; find the first character at de that is not "@".
+.find_next_string_loop
+ inc de
+ ld a, [de]
+ cp "@"
+ jr z, .find_next_string_loop
+ pop bc
+ pop af
+ dec a
+ jr nz, .loop
+ hlcoord 1, 17
+ ld de, EZChatString_Stop_Mode_Cancel
+ call PlaceString
+ ret
+
+Function11c618: ; 11c618 (47:4618)
+ ld a, $2
+ hlcoord 0, 6, AttrMap
+ ld bc, $c8
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11c62a (47:462a)
+
+EZChatString_Stop_Mode_Cancel: ; 11c62a
+ db "けす モード やめる@"
+; 11c63a
+
+Coords_11c63a: ; 11c63a
+ dwcoord 1, 7
+ dwcoord 7, 7
+ dwcoord 13, 7
+ dwcoord 1, 9
+ dwcoord 7, 9
+ dwcoord 13, 9
+ dwcoord 1, 11
+ dwcoord 7, 11
+ dwcoord 13, 11
+ dwcoord 1, 13
+ dwcoord 7, 13
+ dwcoord 13, 13
+ dwcoord 1, 15
+ dwcoord 7, 15
+ dwcoord 13, 15
+; 11c658
+
+Function11c658: ; 11c658 (47:4658)
+ call EZChat_ClearBottom12Rows
+ call Function11c770
+ ld de, Unknown_11cfc2
+ call Function11d035
+ call Function11c9ab
+ call Function11c7bc
+ call Function11c86e
+ ld hl, wcd24
+ res 3, [hl]
+ call Function11cfb5
+
+Function11c675: ; 11c675 (47:4675)
+ ld hl, wMobileCommsJumptableIndex
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [de]
+ and START
+ jr nz, .start
+ ld a, [de]
+ and SELECT
+ jr z, .select
+
+ ld a, [wcd26]
+ and a
+ ret z
+ sub $c
+ jr nc, .asm_11c699
+ xor a
+.asm_11c699
+ ld [wcd26], a
+ jr .asm_11c6c4
+
+.start
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ cp [hl]
+ ret nc
+ ld [wcd26], a
+ ld a, [hl]
+ ld b, a
+ ld hl, wMobileCommsJumptableIndex
+ ld a, [wcd26]
+ add [hl]
+ jr c, .asm_11c6b9
+ cp b
+ jr c, .asm_11c6c4
+.asm_11c6b9
+ ld a, [wcd28]
+ ld hl, wcd26
+ sub [hl]
+ dec a
+ ld [wMobileCommsJumptableIndex], a
+.asm_11c6c4
+ call Function11c992
+ call Function11c7bc
+ call Function11c86e
+ ret
+
+.select
+ ld de, hJoyLast
+ ld a, [de]
+ and D_UP
+ jr nz, .asm_11c708
+ ld a, [de]
+ and D_DOWN
+ jr nz, .asm_11c731
+ ld a, [de]
+ and D_LEFT
+ jr nz, .asm_11c746
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .asm_11c755
+ ret
+
+.a
+ call Function11c8f6
+ ld a, $4
+ ld [wcd35], a
+ jr .asm_11c6fc
+.b
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c6fa
+ ld a, $6
+ jr .asm_11c6fc
+.asm_11c6fa
+ ld a, $15
+.asm_11c6fc
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 3, [hl]
+ call PlayClickSFX
+ ret
+
+.asm_11c708
+ ld a, [hl]
+ cp $3
+ jr c, .asm_11c711
+ sub $3
+ jr .asm_11c76e
+.asm_11c711
+ ld a, [wcd26]
+ sub $3
+ ret c
+ ld [wcd26], a
+ jr .asm_11c6c4
+.asm_11c71c
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ ret c
+ cp [hl]
+ ret nc
+ ld a, [wcd26]
+ add $3
+ ld [wcd26], a
+ jr .asm_11c6c4
+.asm_11c731
+ ld a, [wcd28]
+ ld b, a
+ ld a, [wcd26]
+ add [hl]
+ add $3
+ cp b
+ ret nc
+ ld a, [hl]
+ cp $9
+ jr nc, .asm_11c71c
+ add $3
+ jr .asm_11c76e
+.asm_11c746
+ ld a, [hl]
+ and a
+ ret z
+ cp $3
+ ret z
+ cp $6
+ ret z
+ cp $9
+ ret z
+ dec a
+ jr .asm_11c76e
+.asm_11c755
+ ld a, [wcd28]
+ ld b, a
+ ld a, [wcd26]
+ add [hl]
+ inc a
+ cp b
+ ret nc
+ ld a, [hl]
+ cp $2
+ ret z
+ cp $5
+ ret z
+ cp $8
+ ret z
+ cp $b
+ ret z
+ inc a
+.asm_11c76e
+ ld [hl], a
+ ret
+
+Function11c770: ; 11c770 (47:4770)
+ xor a
+ ld [wMobileCommsJumptableIndex], a
+ ld [wcd26], a
+ ld [wcd27], a
+ ld a, [wcd2b]
+ and a
+ jr nz, .cd2b_is_nonzero
+ ld a, [wcd21]
+ and a
+ jr z, .cd21_is_zero
+ ; load from data array
+ dec a
+ sla a
+ ld hl, MobileEZChatData_WordAndPageCounts
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld [wcd28], a
+ ld a, [hl]
+.load
+ ld [wcd29], a
+ ret
+
+.cd21_is_zero
+ ; compute from [wc7d2]
+ ld a, [wc7d2]
+ ld [wcd28], a
+.div_12
+ ld c, 12
+ call SimpleDivide
+ and a
+ jr nz, .no_need_to_floor
+ dec b
+.no_need_to_floor
+ ld a, b
+ jr .load
+
+.cd2b_is_nonzero
+ ; compute from [c6a8 + 2 * [cd22]]
+ ld hl, $c6a8 ; $c68a + 30
+ ld a, [wcd22]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hl]
+ ld [wcd28], a
+ jr .div_12
+
+Function11c7bc: ; 11c7bc (47:47bc)
+ ld bc, Unknown_11c854
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c814
+ ld a, [wcd21]
+ ld d, a
+ and a
+ jr z, .asm_11c7e9
+ ld a, [wcd26]
+ ld e, a
+.asm_11c7d0
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ ret z
+ push bc
+ push de
+ call Function11c05d
+ pop de
+ pop bc
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c7d0
+ ret
+
+.asm_11c7e9
+ ld hl, wListPointer
+ ld a, [wcd26]
+ ld e, a
+ add hl, de
+.asm_11c7f1
+ push de
+ ld a, [hli]
+ ld e, a
+ ld d, $0
+ push hl
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ jr z, .asm_11c811
+ push bc
+ call Function11c05d
+ pop bc
+ pop hl
+ pop de
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c7f1
+ ret
+
+.asm_11c811
+ pop hl
+ pop de
+ ret
+
+.asm_11c814
+ ld hl, $c648
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [wcd26]
+ ld e, a
+.asm_11c831
+ push de
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld a, [bc]
+ ld l, a
+ inc bc
+ ld a, [bc]
+ ld h, a
+ inc bc
+ and l
+ cp $ff
+ jr z, .asm_11c851
+ push bc
+ call Function11c05d
+ pop bc
+ pop hl
+ pop de
+ inc e
+ ld a, [wcd28]
+ cp e
+ jr nz, .asm_11c831
+ ret
+
+.asm_11c851
+ pop hl
+ pop de
+ ret
+; 11c854 (47:4854)
+
+Unknown_11c854: ; 11c854
+ dwcoord 2, 8
+ dwcoord 8, 8
+ dwcoord 14, 8
+ dwcoord 2, 10
+ dwcoord 8, 10
+ dwcoord 14, 10
+ dwcoord 2, 12
+ dwcoord 8, 12
+ dwcoord 14, 12
+ dwcoord 2, 14
+ dwcoord 8, 14
+ dwcoord 14, 14
+ dw -1
+; 11c86e
+
+Function11c86e: ; 11c86e (47:486e)
+ ld a, [wcd26]
+ and a
+ jr z, .asm_11c88a
+ hlcoord 2, 17
+ ld de, MobileString_Prev
+ call PlaceString
+ hlcoord 6, 17
+ ld c, $3
+ xor a
+.asm_11c883
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_11c883
+ jr .asm_11c895
+.asm_11c88a
+ hlcoord 2, 17
+ ld c, $7
+ ld a, $7f
+.asm_11c891
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c891
+.asm_11c895
+ ld hl, wcd28
+ ld a, [wcd26]
+ add $c
+ jr c, .asm_11c8b7
+ cp [hl]
+ jr nc, .asm_11c8b7
+ hlcoord 16, 17
+ ld de, MobileString_Next
+ call PlaceString
+ hlcoord 11, 17
+ ld a, $3
+ ld c, a
+.asm_11c8b1
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_11c8b1
+ ret
+
+.asm_11c8b7
+ hlcoord 17, 16
+ ld a, $7f
+ ld [hl], a
+ hlcoord 11, 17
+ ld c, $7
+.asm_11c8c2
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c8c2
+ ret
+; 11c8c7 (47:48c7)
+
+BCD2String: ; 11c8c7
+ inc a
+ push af
+ and $f
+ ld [hDividend], a
+ pop af
+ and $f0
+ swap a
+ ld [hDividend + 1], a
+ xor a
+ ld [hDividend + 2], a
+ push hl
+ callba Function11a80c
+ pop hl
+ ld a, [wcd63]
+ add "0"
+ ld [hli], a
+ ld a, [wcd62]
+ add "0"
+ ld [hli], a
+ ret
+; 11c8ec
+
+MobileString_Page: ; 11c8ec
+ db "ぺージ@"
+; 11c8f0
+
+MobileString_Prev: ; 11c8f0
+ db "まえ@"
+; 11c8f3
+
+MobileString_Next: ; 11c8f3
+ db "つぎ@"
+; 11c8f6
+
+Function11c8f6: ; 11c8f6 (47:48f6)
+ ld a, [wcd20] ; wcd20
+ call Function11c95d
+ push hl
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c938
+ ld a, [wcd21]
+ ld d, a
+ and a
+ jr z, .asm_11c927
+ ld hl, wcd26
+ ld a, [wMobileCommsJumptableIndex]
+ add [hl]
+.asm_11c911
+ ld e, a
+.asm_11c912
+ pop hl
+ push de
+ call Function11c05d
+ pop de
+ ld a, [wcd20] ; wcd20
+ ld c, a
+ ld b, $0
+ ld hl, wcd36
+ add hl, bc
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+.asm_11c927
+ ld hl, wcd26
+ ld a, [wMobileCommsJumptableIndex]
+ add [hl]
+ ld c, a
+ ld b, $0
+ ld hl, wListPointer
+ add hl, bc
+ ld a, [hl]
+ jr .asm_11c911
+.asm_11c938
+ ld hl, $c648
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+ add hl, de
+ add hl, de
+ ld a, [wMobileCommsJumptableIndex]
+ ld e, a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ jr .asm_11c912
+
+Function11c95d: ; 11c95d (47:495d)
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_11c986
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ push bc
+ push bc
+ pop hl
+ ld a, $5
+ ld c, a
+ ld a, $7f
+.asm_11c972
+ ld [hli], a
+ dec c
+ jr nz, .asm_11c972
+ dec hl
+ ld bc, -20
+ add hl, bc
+ ld a, $5
+ ld c, a
+ ld a, $7f
+.asm_11c980
+ ld [hld], a
+ dec c
+ jr nz, .asm_11c980
+ pop hl
+ ret
+; 11c986 (47:4986)
+
+Unknown_11c986:
+ dwcoord 1, 2
+ dwcoord 7, 2
+ dwcoord 13, 2
+ dwcoord 1, 4
+ dwcoord 7, 4
+ dwcoord 13, 4
+; 11c992
+
+Function11c992: ; 11c992 (47:4992)
+ ld a, $8
+ hlcoord 2, 7
+.asm_11c997
+ push af
+ ld a, $7f
+ push hl
+ ld bc, $11
+ call ByteFill
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_11c997
+ ret
+
+Function11c9ab: ; 11c9ab (47:49ab)
+ ld a, $7
+ hlcoord 0, 6, AttrMap
+ ld bc, $c8
+ call ByteFill
+ callba ReloadMapPart
+ ret
+
+Function11c9bd: ; 11c9bd (47:49bd)
+ ld de, String_11ca38
+ call Function11ca7f
+
+Function11c9c3: ; 11c9c3 (47:49c3)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11c9de
+ ld a, [de]
+ and $2
+ jr nz, .asm_11c9e9
+ ld a, [de]
+ and $40
+ jr nz, .asm_11c9f7
+ ld a, [de]
+ and $80
+ jr nz, .asm_11c9fc
+ ret
+
+.asm_11c9de
+ ld a, [hl]
+ and a
+ jr nz, .asm_11c9e9
+ call Function11ca5e
+ xor a
+ ld [wcd20], a ; wcd20
+.asm_11c9e9
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.asm_11c9f7
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+
+.asm_11c9fc
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+
+Function11ca01: ; 11ca01 (47:4a01)
+ hlcoord 14, 7, AttrMap
+ ld de, $14
+ ld a, $5
+ ld c, a
+.asm_11ca0a
+ push hl
+ ld a, $6
+ ld b, a
+ ld a, $7
+.asm_11ca10
+ ld [hli], a
+ dec b
+ jr nz, .asm_11ca10
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_11ca0a
+
+Function11ca19: ; 11ca19 (47:4a19)
+ hlcoord 0, 12, AttrMap
+ ld de, $14
+ ld a, $6
+ ld c, a
+.asm_11ca22
+ push hl
+ ld a, $14
+ ld b, a
+ ld a, $7
+.asm_11ca28
+ ld [hli], a
+ dec b
+ jr nz, .asm_11ca28
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_11ca22
+ callba ReloadMapPart
+ ret
+; 11ca38 (47:4a38)
+
+String_11ca38: ; 11ca38
+ db "とうろくちゅう", $25, "あいさつ¯ぜんぶ"
+ next "けしても よろしいですか?@"
+; 11ca57
+
+String_11ca57: ; 11ca57
+ db "はい"
+ next "いいえ@"
+; 11ca5e
+
+Function11ca5e: ; 11ca5e (47:4a5e)
+ xor a
+.loop
+ push af
+ call Function11ca6a
+ pop af
+ inc a
+ cp $6
+ jr nz, .loop
+ ret
+
+Function11ca6a: ; 11ca6a (47:4a6a)
+ ld hl, wcd36
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld [hl], b
+ inc hl
+ ld [hl], b
+ call Function11c95d
+ ld de, String_11c3bc
+ call PlaceString
+ ret
+
+Function11ca7f: ; 11ca7f (47:4a7f)
+ push de
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ ld de, Unknown_11cfca
+ call Function11cfce
+ hlcoord 1, 14
+ pop de
+ call PlaceString
+ hlcoord 16, 8
+ ld de, String_11ca57
+ call PlaceString
+ call Function11ca01
+ ld a, $1
+ ld [wcd2a], a
+ ld hl, wcd24
+ res 4, [hl]
+ call Function11cfb5
+ ret
+
+Function11caad: ; 11caad (47:4aad)
+ ld de, String_11cb1c
+ call Function11ca7f
+
+Function11cab3: ; 11cab3 (47:4ab3)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11cace
+ ld a, [de]
+ and $2
+ jr nz, .asm_11caf9
+ ld a, [de]
+ and $40
+ jr nz, .asm_11cb12
+ ld a, [de]
+ and $80
+ jr nz, .asm_11cb17
+ ret
+
+.asm_11cace
+ call PlayClickSFX
+ ld a, [hl]
+ and a
+ jr nz, .asm_11cafc
+ ld a, [wcd35]
+ and a
+ jr z, .asm_11caf3
+ cp $ff
+ jr z, .asm_11caf3
+ ld a, $ff
+ ld [wcd35], a
+ hlcoord 1, 14
+ ld de, String_11cb31
+ call PlaceString
+ ld a, $1
+ ld [wcd2a], a
+ ret
+
+.asm_11caf3
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.asm_11caf9
+ call PlayClickSFX
+.asm_11cafc
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ ld a, [wcd35]
+ cp $ff
+ ret nz
+ ld a, $1
+ ld [wcd35], a
+ ret
+
+.asm_11cb12
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+
+.asm_11cb17
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+; 11cb1c (47:4b1c)
+
+String_11cb1c: ; 11cb1c
+ db "あいさつ", $25, "とうろく¯ちゅうし"
+ next "しますか?@"
+; 11cb31
+
+String_11cb31: ; 11cb31
+ db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
+ next "されません", $4a, "よろしい ですか?@"
+; 11cb52
+
+Function11cb52: ; 11cb52 (47:4b52)
+ ld hl, Unknown_11cc01
+ ld a, [wMenuCursorY]
+.asm_11cb58
+ dec a
+ jr z, .asm_11cb5f
+ inc hl
+ inc hl
+ jr .asm_11cb58
+.asm_11cb5f
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ call Function11ca7f
+
+Function11cb66: ; 11cb66 (47:4b66)
+ ld hl, wcd2a
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and $1
+ jr nz, .asm_11cb81
+ ld a, [de]
+ and $2
+ jr nz, .asm_11cbd7
+ ld a, [de]
+ and $40
+ jr nz, .asm_11cbeb
+ ld a, [de]
+ and $80
+ jr nz, .asm_11cbf0
+ ret
+
+.asm_11cb81
+ ld a, [hl]
+ and a
+ jr nz, .asm_11cbd4
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a007
+ ld a, [wMenuCursorY]
+ dec a
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld de, wcd36
+ ld c, $c
+.asm_11cba2
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .asm_11cba2
+ call CloseSRAM
+ call PlayClickSFX
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ ld hl, Unknown_11cc7e
+ ld a, [wMenuCursorY]
+.asm_11cbba
+ dec a
+ jr z, .asm_11cbc1
+ inc hl
+ inc hl
+ jr .asm_11cbba
+.asm_11cbc1
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ hlcoord 1, 14
+ call PlaceString
+ ld hl, wJumptableIndex
+ inc [hl]
+ inc hl
+ ld a, $10
+ ld [hl], a
+ ret
+
+.asm_11cbd4
+ call PlayClickSFX
+.asm_11cbd7
+ ld de, Unknown_11cfba
+ call Function11cfce
+ call Function11c38a
+ ld hl, wcd24
+ set 4, [hl]
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+
+.asm_11cbeb
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+
+.asm_11cbf0
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ret
+
+Function11cbf5: ; 11cbf5 (47:4bf5)
+ call WaitSFX
+ ld hl, wcf64
+ dec [hl]
+ ret nz
+ dec hl
+ set 7, [hl]
+ ret
+; 11cc01 (47:4c01)
+
+Unknown_11cc01: ; 11cc01
+ dw String_11cc09
+ dw String_11cc23
+ dw String_11cc42
+ dw String_11cc60
+
+String_11cc09: ; 11cc09
+ db "じこしょうかい は"
+ next "この あいさつで いいですか?@"
+
+String_11cc23: ; 11cc23
+ db "たいせん ", $4a, "はじまるとき は"
+ next "この あいさつで いいですか?@"
+
+String_11cc42: ; 11cc42
+ db "たいせん ", $1d, "かったとき は"
+ next "この あいさつで いいですか?@"
+
+String_11cc60: ; 11cc60
+ db "たいせん ", $1d, "まけたとき は"
+ next "この あいさつで いいですか?@"
+; 11cc7e
+
+Unknown_11cc7e: ; 11cc7e
+ dw String_11cc86
+ dw String_11cc9d
+ dw String_11ccb9
+ dw String_11ccd4
+
+String_11cc86: ; 11cc86
+ db "じこしょうかい の"
+ next "あいさつ¯とうろくした!@"
+
+String_11cc9d: ; 11cc9d
+ db "たいせん ", $4a, "はじまるとき の"
+ next "あいさつ¯とうろくした!@"
+
+String_11ccb9: ; 11ccb9
+ db "たいせん ", $1d, "かったとき の"
+ next "あいさつ¯とうろくした!@"
+
+String_11ccd4: ; 11ccd4
+ db "たいせん ", $1d, "まけたとき の"
+ next "あいさつ¯とうろくした!@"
+; 11ccef
+
+Function11ccef: ; 11ccef (47:4cef)
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ hlcoord 1, 14
+ ld de, String_11cd10
+ call PlaceString
+ call Function11ca19
+ call Function11cfb5
+
+Function11cd04: ; 11cd04 (47:4d04)
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and a
+ ret z
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 11cd10 (47:4d10)
+
+String_11cd10: ; 11cd10
+ db "なにか ことば¯いれてください@"
+; 11cd20
+
+Function11cd20: ; 11cd20 (47:4d20)
+ call EZChat_ClearBottom12Rows
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ hlcoord 1, 14
+ ld a, [wcd2b]
+ ld [wcd2c], a
+ and a
+ jr nz, .asm_11cd3a
+ ld de, String_11cdc7
+ jr .asm_11cd3d
+.asm_11cd3a
+ ld de, String_11cdd9
+.asm_11cd3d
+ call PlaceString
+ hlcoord 4, 8
+ ld de, String_11cdf5
+ call PlaceString
+ call Function11cdaa
+ ld hl, wcd24
+ res 5, [hl]
+ call Function11cfb5
+
+Function11cd54: ; 11cd54 (47:4d54)
+ ld hl, wcd2c
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .asm_11cd6f
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .asm_11cd73
+ ld a, [de]
+ and D_UP
+ jr nz, .asm_11cd8b
+ ld a, [de]
+ and D_DOWN
+ jr nz, .asm_11cd94
+ ret
+
+.asm_11cd6f
+ ld a, [hl]
+ ld [wcd2b], a
+.asm_11cd73
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11cd7d
+ ld a, $6
+ jr .asm_11cd7f
+
+.asm_11cd7d
+ ld a, $15
+.asm_11cd7f
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 5, [hl]
+ call PlayClickSFX
+ ret
+
+.asm_11cd8b
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ld de, String_11cdc7
+ jr .asm_11cd9b
+
+.asm_11cd94
+ ld a, [hl]
+ and a
+ ret nz
+ inc [hl]
+ ld de, String_11cdd9
+.asm_11cd9b
+ push de
+ ld de, Unknown_11cfc6
+ call Function11cfce
+ pop de
+ hlcoord 1, 14
+ call PlaceString
+ ret
+
+Function11cdaa: ; 11cdaa (47:4daa)
+ ld a, $2
+ hlcoord 0, 6, AttrMap
+ ld bc, 6 * SCREEN_WIDTH
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 12, AttrMap
+ ld bc, 4 * SCREEN_WIDTH
+ call ByteFill
+ callba ReloadMapPart
+ ret
+; 11cdc7 (47:4dc7)
+
+String_11cdc7: ; 11cdc7
+; Words will be displayed by category
+ db "ことば¯しゅるいべつに"
+ next "えらべます@"
+; 11cdd9
+
+String_11cdd9: ; 11cdd9
+; Words will be displayed in alphabetical order
+ db "ことば¯アイウエォ の"
+ next "じゅんばんで ひょうじ します@"
+; 11cdf5
+
+String_11cdf5: ; 11cdf5
+ db "しゅるいべつ モード" ; Category mode
+ next "アイウエォ モード@" ; ABC mode
+; 11ce0b
+
+Function11ce0b: ; 11ce0b (47:4e0b)
+ call EZChat_ClearBottom12Rows
+ hlcoord 1, 7
+ ld de, String_11cf79
+ call PlaceString
+ hlcoord 1, 17
+ ld de, EZChatString_Stop_Mode_Cancel
+ call PlaceString
+ call Function11c618
+ ld hl, wcd24
+ res 2, [hl]
+ call Function11cfb5
+
+Function11ce2b: ; 11ce2b (47:4e2b)
+ ld a, [wcd22]
+ sla a
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_11ceb9
+ add hl, bc
+
+ ld de, hJoypadPressed ; $ffa3
+ ld a, [de]
+ and START
+ jr nz, .start
+ ld a, [de]
+ and SELECT
+ jr nz, .select
+ ld a, [de]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [de]
+ and B_BUTTON
+ jr nz, .b
+
+ ld de, hJoyLast
+ ld a, [de]
+ and D_UP
+ jr nz, .up
+ ld a, [de]
+ and D_DOWN
+ jr nz, .down
+ ld a, [de]
+ and D_LEFT
+ jr nz, .left
+ ld a, [de]
+ and D_RIGHT
+ jr nz, .right
+
+ ret
+
+.a
+ ld a, [wcd22]
+ cp NUM_KANA
+ jr c, .place
+ sub NUM_KANA
+ jr z, .done
+ dec a
+ jr z, .mode
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [wcd20], a ; wcd20
+.b
+ ld a, $4
+ jr .load
+
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $6
+ jr .load
+
+.place
+ ld a, $8
+ jr .load
+
+.mode
+ ld a, $13
+.load
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 2, [hl]
+ call PlayClickSFX
+ ret
+
+.done
+ ld a, [wcd20] ; wcd20
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.left
+ inc hl
+.down
+ inc hl
+.right
+ inc hl
+.up
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [wcd22], a
+ ret
+; 11ceb9 (47:4eb9)
+
+Unknown_11ceb9: ; 11ceb9
+ ; up left down right
+ db $ff, $01
+ db $05, $ff
+ db $ff, $02
+ db $06, $00
+ db $ff, $03
+ db $07, $01
+ db $ff, $04
+ db $08, $02
+ db $ff, $14
+ db $09, $03
+ db $00, $06
+ db $0a, $ff
+ db $01, $07
+ db $0b, $05
+ db $02, $08
+ db $0c, $06
+ db $03, $09
+ db $0d, $07
+ db $04, $19
+ db $0e, $08
+ db $05, $0b
+ db $0f, $ff
+ db $06, $0c
+ db $10, $0a
+ db $07, $0d
+ db $11, $0b
+ db $08, $0e
+ db $12, $0c
+ db $09, $1e
+ db $13, $0d
+ db $0a, $10
+ db $2d, $ff
+ db $0b, $11
+ db $2d, $0f
+ db $0c, $12
+ db $2d, $10
+ db $0d, $13
+ db $2d, $11
+ db $0e, $26
+ db $2d, $12
+ db $ff, $15
+ db $19, $04
+ db $ff, $16
+ db $1a, $14
+ db $ff, $17
+ db $1b, $15
+ db $ff, $18
+ db $1c, $16
+ db $ff, $23
+ db $1d, $17
+ db $14, $1a
+ db $1e, $09
+ db $15, $1b
+ db $1f, $19
+ db $16, $1c
+ db $20, $1a
+ db $17, $1d
+ db $21, $1b
+ db $18, $2b
+ db $22, $1c
+ db $19, $1f
+ db $26, $0e
+ db $1a, $20
+ db $27, $1e
+ db $1b, $21
+ db $28, $1f
+ db $1c, $22
+ db $29, $20
+ db $1d, $2c
+ db $2a, $21
+ db $ff, $24
+ db $2b, $18
+ db $ff, $25
+ db $2b, $23
+ db $ff, $ff
+ db $2b, $24
+ db $1e, $27
+ db $2e, $13
+ db $1f, $28
+ db $2e, $26
+ db $20, $29
+ db $2e, $27
+ db $21, $2a
+ db $2e, $28
+ db $22, $ff
+ db $2e, $29
+ db $23, $ff
+ db $2c, $1d
+ db $2b, $ff
+ db $2f, $22
+ db $0f, $2e
+ db $ff, $ff
+ db $26, $2f
+ db $ff, $2d
+ db $2c, $ff
+ db $ff, $2e
+; 11cf79
+
+String_11cf79: ; 11cf79
+; Hiragana table
+ db "あいうえお なにぬねの や ゆ よ"
+ next "かきくけこ はひふへほ わ"
+ next "さしすせそ まみむめも そのた"
+ next "たちつてと らりるれろ"
+ db "@"
+; 11cfb5
+
+Function11cfb5: ; 11cfb5 (47:4fb5)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 11cfba (47:4fba)
+
+Unknown_11cfba:
+ db 0, 0 ; start coords
+ db 20, 6 ; end coords
+
+Unknown_11cfbe:
+ db 0, 14 ; start coords
+ db 20, 4 ; end coords
+
+Unknown_11cfc2:
+ db 0, 6 ; start coords
+ db 20, 10 ; end coords
+
+Unknown_11cfc6:
+ db 0, 12 ; start coords
+ db 20, 6 ; end coords
+
+Unknown_11cfca:
+ db 14, 7 ; start coords
+ db 6, 5 ; end coords
+; 11cfce
+
+Function11cfce: ; 11cfce (47:4fce)
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.add_n_times
+ jr z, .done_add_n_times
+ add hl, bc
+ dec a
+ jr .add_n_times
+.done_add_n_times
+ pop af
+ ld c, a
+ ld b, 0
+ add hl, bc
+ push hl
+ ld a, $79
+ ld [hli], a
+ ld a, [de]
+ inc de
+ dec a
+ dec a
+ jr z, .skip_fill
+ ld c, a
+ ld a, $7a
+.fill_loop
+ ld [hli], a
+ dec c
+ jr nz, .fill_loop
+.skip_fill
+ ld a, $7b
+ ld [hl], a
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld a, [de]
+ dec de
+ dec a
+ dec a
+ jr z, .skip_section
+ ld b, a
+.loop
+ push hl
+ ld a, $7c
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .skip_row
+ ld c, a
+ ld a, $7f
+.row_loop
+ ld [hli], a
+ dec c
+ jr nz, .row_loop
+.skip_row
+ ld a, $7c
+ ld [hl], a
+ pop hl
+ push bc
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop
+.skip_section
+ ld a, $7d
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .skip_remainder
+ ld c, a
+ ld a, $7a
+.final_loop
+ ld [hli], a
+ dec c
+ jr nz, .final_loop
+.skip_remainder
+ ld a, $7e
+ ld [hl], a
+ ret
+
+Function11d035: ; 11d035 (47:5035)
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.add_n_times
+ jr z, .done_add_n_times
+ add hl, bc
+ dec a
+ jr .add_n_times
+.done_add_n_times
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ push hl
+ ld a, $79
+ ld [hl], a
+ pop hl
+ push hl
+ ld a, [de]
+ dec a
+ inc de
+ ld c, a
+ add hl, bc
+ ld a, $7b
+ ld [hl], a
+ call .AddNMinusOneTimes
+ ld a, $7e
+ ld [hl], a
+ pop hl
+ push hl
+ call .AddNMinusOneTimes
+ ld a, $7d
+ ld [hl], a
+ pop hl
+ push hl
+ inc hl
+ push hl
+ call .AddNMinusOneTimes
+ pop bc
+ dec de
+ ld a, [de]
+ cp $2
+ jr z, .skip
+ dec a
+ dec a
+.loop
+ push af
+ ld a, $7a
+ ld [hli], a
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .loop
+.skip
+ pop hl
+ ld bc, $14
+ add hl, bc
+ push hl
+ ld a, [de]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ inc de
+ ld a, [de]
+ cp $2
+ ret z
+ push bc
+ dec a
+ dec a
+ ld c, a
+ ld b, a
+ ld de, $14
+.loop2
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .loop2
+ pop hl
+.loop3
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .loop3
+ ret
+
+.AddNMinusOneTimes: ; 11d0ac (47:50ac)
+ ld a, [de]
+ dec a
+ ld bc, SCREEN_WIDTH
+.add_n_minus_one_times
+ add hl, bc
+ dec a
+ jr nz, .add_n_minus_one_times
+ ret
+
+AnimateEZChatCursor: ; 11d0b6 (47:50b6)
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.Jumptable:
+ dw .zero
+ dw .one
+ dw .two
+ dw .three
+ dw .four
+ dw .five
+ dw .six
+ dw .seven
+ dw .eight
+ dw .nine
+ dw .ten
+
+.zero ; 11d0dd (47:50dd)
+ ld a, [wcd20] ; wcd20
+ sla a
+ ld hl, .Coords_Zero
+ ld e, $1
+ jr .load
+
+.one ; 11d0e9 (47:50e9)
+ ld a, [wcd21]
+ sla a
+ ld hl, .Coords_One
+ ld e, $2
+ jr .load
+
+.two ; 11d0f5 (47:50f5)
+ ld hl, .FramesetsIDs_Two
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ call ReinitSpriteAnimFrame
+
+ ld a, [wcd22]
+ sla a
+ ld hl, .Coords_Two
+ ld e, $4
+ jr .load
+
+.three ; 11d10f (47:510f)
+ ld a, SPRITE_ANIM_FRAMESET_27
+ call ReinitSpriteAnimFrame
+ ld a, [wMobileCommsJumptableIndex]
+ sla a
+ ld hl, .Coords_Three
+ ld e, $8
+.load ; 11d11e (47:511e)
+ push de
+ ld e, a
+ ld d, $0
+ add hl, de
+ push hl
+ pop de
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ pop de
+ ld a, e
+ call .UpdateObjectFlags
+ ret
+
+.four ; 11d134 (47:5134)
+ ld a, SPRITE_ANIM_FRAMESET_27
+ call ReinitSpriteAnimFrame
+ ld a, [wcd2a]
+ sla a
+ ld hl, .Coords_Four
+ ld e, $10
+ jr .load
+
+.five ; 11d145 (47:5145)
+ ld a, SPRITE_ANIM_FRAMESET_27
+ call ReinitSpriteAnimFrame
+ ld a, [wcd2c]
+ sla a
+ ld hl, .Coords_Five
+ ld e, $20
+ jr .load
+
+.six ; 11d156 (47:5156)
+ ld a, SPRITE_ANIM_FRAMESET_2A
+ call ReinitSpriteAnimFrame
+ ; X = [wcd4a] * 8 + 24
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ add $18
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hli], a
+ ; Y = 48
+ ld a, $30
+ ld [hl], a
+
+ ld a, $1
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.seven ; 11d175 (47:5175)
+ ld a, [wEZChatCursorYCoord]
+ cp $4
+ jr z, .frameset_26
+ ld a, SPRITE_ANIM_FRAMESET_28
+ jr .got_frameset
+
+.frameset_26
+ ld a, SPRITE_ANIM_FRAMESET_26
+.got_frameset
+ call ReinitSpriteAnimFrame
+ ld a, [wEZChatCursorYCoord]
+ cp $4
+ jr z, .asm_11d1b1
+ ; X = [wEZChatCursorXCoord] * 8 + 32
+ ld a, [wEZChatCursorXCoord]
+ sla a
+ sla a
+ sla a
+ add $20
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hli], a
+ ; Y = [wEZChatCursorYCoord] * 16 + 72
+ ld a, [wEZChatCursorYCoord]
+ sla a
+ sla a
+ sla a
+ sla a
+ add $48
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.asm_11d1b1
+ ; X = [wEZChatCursorXCoord] * 40 + 24
+ ld a, [wEZChatCursorXCoord]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ add e
+ add $18
+ ld hl, SPRITEANIMSTRUCT_XCOORD
+ add hl, bc
+ ld [hli], a
+ ; Y = 138
+ ld a, $8a
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.nine ; 11d1d1 (47:51d1)
+ ld d, -13 * 8
+ ld a, SPRITE_ANIM_FRAMESET_2C
+ jr .eight_nine_load
+
+.eight ; 11d1d7 (47:51d7)
+ ld d, 2 * 8
+ ld a, SPRITE_ANIM_FRAMESET_2B
+.eight_nine_load ; 11d1db (47:51db)
+ push de
+ call ReinitSpriteAnimFrame
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ add e
+ add 8 * 8
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld [hld], a
+ pop af
+ ld [hl], a
+ ld a, $4
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+
+.ten ; 11d1fc (47:51fc)
+ ld a, SPRITE_ANIM_FRAMESET_26
+ call ReinitSpriteAnimFrame
+ ld a, $8
+ ld e, a
+ call .UpdateObjectFlags
+ ret
+; 11d208 (47:5208)
+
+.Coords_Zero: ; 11d208
+ dbpixel 1, 3, 5, 2
+ dbpixel 7, 3, 5, 2
+ dbpixel 13, 3, 5, 2
+ dbpixel 1, 5, 5, 2
+ dbpixel 7, 5, 5, 2
+ dbpixel 13, 5, 5, 2
+ dbpixel 1, 17, 5, 2
+ dbpixel 7, 17, 5, 2
+ dbpixel 13, 17, 5, 2
+
+.Coords_One: ; 11d21a
+ dbpixel 1, 8, 5, 2
+ dbpixel 7, 8, 5, 2
+ dbpixel 13, 8, 5, 2
+ dbpixel 1, 10, 5, 2
+ dbpixel 7, 10, 5, 2
+ dbpixel 13, 10, 5, 2
+ dbpixel 1, 12, 5, 2
+ dbpixel 7, 12, 5, 2
+ dbpixel 13, 12, 5, 2
+ dbpixel 1, 14, 5, 2
+ dbpixel 7, 14, 5, 2
+ dbpixel 13, 14, 5, 2
+ dbpixel 1, 16, 5, 2
+ dbpixel 7, 16, 5, 2
+ dbpixel 13, 16, 5, 2
+ dbpixel 1, 18, 5, 2
+ dbpixel 7, 18, 5, 2
+ dbpixel 13, 18, 5, 2
+
+.Coords_Two: ; 11d23e
+ dbpixel 2, 9 ; 00
+ dbpixel 3, 9 ; 01
+ dbpixel 4, 9 ; 02
+ dbpixel 5, 9 ; 03
+ dbpixel 6, 9 ; 04
+ dbpixel 2, 11 ; 05
+ dbpixel 3, 11 ; 06
+ dbpixel 4, 11 ; 07
+ dbpixel 5, 11 ; 08
+ dbpixel 6, 11 ; 09
+ dbpixel 2, 13 ; 0a
+ dbpixel 3, 13 ; 0b
+ dbpixel 4, 13 ; 0c
+ dbpixel 5, 13 ; 0d
+ dbpixel 6, 13 ; 0e
+ dbpixel 2, 15 ; 0f
+ dbpixel 3, 15 ; 10
+ dbpixel 4, 15 ; 11
+ dbpixel 5, 15 ; 12
+ dbpixel 6, 15 ; 13
+ dbpixel 8, 9 ; 14
+ dbpixel 9, 9 ; 15
+ dbpixel 10, 9 ; 16
+ dbpixel 11, 9 ; 17
+ dbpixel 12, 9 ; 18
+ dbpixel 8, 11 ; 19
+ dbpixel 9, 11 ; 1a
+ dbpixel 10, 11 ; 1b
+ dbpixel 11, 11 ; 1c
+ dbpixel 12, 11 ; 1d
+ dbpixel 8, 13 ; 1e
+ dbpixel 9, 13 ; 1f
+ dbpixel 10, 13 ; 20
+ dbpixel 11, 13 ; 21
+ dbpixel 12, 13 ; 22
+ dbpixel 14, 9 ; 23
+ dbpixel 16, 9 ; 24
+ dbpixel 18, 9 ; 25
+ dbpixel 8, 15 ; 26
+ dbpixel 9, 15 ; 27
+ dbpixel 10, 15 ; 28
+ dbpixel 11, 15 ; 29
+ dbpixel 12, 15 ; 2a
+ dbpixel 14, 11 ; 2b
+ dbpixel 14, 13 ; 2c
+ dbpixel 1, 18, 5, 2 ; 2d
+ dbpixel 7, 18, 5, 2 ; 2e
+ dbpixel 13, 18, 5, 2 ; 2f
+
+.Coords_Three: ; 11d29e
+ dbpixel 2, 10
+ dbpixel 8, 10
+ dbpixel 14, 10
+ dbpixel 2, 12
+ dbpixel 8, 12
+ dbpixel 14, 12
+ dbpixel 2, 14
+ dbpixel 8, 14
+ dbpixel 14, 14
+ dbpixel 2, 16
+ dbpixel 8, 16
+ dbpixel 14, 16
+
+.Coords_Four: ; 11d2b6
+ dbpixel 16, 10
+ dbpixel 16, 12
+
+.Coords_Five: ; 11d2ba
+ dbpixel 4, 10
+ dbpixel 4, 12
+
+.FramesetsIDs_Two: ; 11d2be
+ db SPRITE_ANIM_FRAMESET_28 ; 00
+ db SPRITE_ANIM_FRAMESET_28 ; 01
+ db SPRITE_ANIM_FRAMESET_28 ; 02
+ db SPRITE_ANIM_FRAMESET_28 ; 03
+ db SPRITE_ANIM_FRAMESET_28 ; 04
+ db SPRITE_ANIM_FRAMESET_28 ; 05
+ db SPRITE_ANIM_FRAMESET_28 ; 06
+ db SPRITE_ANIM_FRAMESET_28 ; 07
+ db SPRITE_ANIM_FRAMESET_28 ; 08
+ db SPRITE_ANIM_FRAMESET_28 ; 09
+ db SPRITE_ANIM_FRAMESET_28 ; 0a
+ db SPRITE_ANIM_FRAMESET_28 ; 0b
+ db SPRITE_ANIM_FRAMESET_28 ; 0c
+ db SPRITE_ANIM_FRAMESET_28 ; 0d
+ db SPRITE_ANIM_FRAMESET_28 ; 0e
+ db SPRITE_ANIM_FRAMESET_28 ; 0f
+ db SPRITE_ANIM_FRAMESET_28 ; 10
+ db SPRITE_ANIM_FRAMESET_28 ; 11
+ db SPRITE_ANIM_FRAMESET_28 ; 12
+ db SPRITE_ANIM_FRAMESET_28 ; 13
+ db SPRITE_ANIM_FRAMESET_28 ; 14
+ db SPRITE_ANIM_FRAMESET_28 ; 15
+ db SPRITE_ANIM_FRAMESET_28 ; 16
+ db SPRITE_ANIM_FRAMESET_28 ; 17
+ db SPRITE_ANIM_FRAMESET_28 ; 18
+ db SPRITE_ANIM_FRAMESET_28 ; 19
+ db SPRITE_ANIM_FRAMESET_28 ; 1a
+ db SPRITE_ANIM_FRAMESET_28 ; 1b
+ db SPRITE_ANIM_FRAMESET_28 ; 1c
+ db SPRITE_ANIM_FRAMESET_28 ; 1d
+ db SPRITE_ANIM_FRAMESET_28 ; 1e
+ db SPRITE_ANIM_FRAMESET_28 ; 1f
+ db SPRITE_ANIM_FRAMESET_28 ; 20
+ db SPRITE_ANIM_FRAMESET_28 ; 21
+ db SPRITE_ANIM_FRAMESET_28 ; 22
+ db SPRITE_ANIM_FRAMESET_28 ; 23
+ db SPRITE_ANIM_FRAMESET_28 ; 24
+ db SPRITE_ANIM_FRAMESET_28 ; 25
+ db SPRITE_ANIM_FRAMESET_28 ; 26
+ db SPRITE_ANIM_FRAMESET_28 ; 27
+ db SPRITE_ANIM_FRAMESET_28 ; 28
+ db SPRITE_ANIM_FRAMESET_28 ; 29
+ db SPRITE_ANIM_FRAMESET_28 ; 2a
+ db SPRITE_ANIM_FRAMESET_28 ; 2b
+ db SPRITE_ANIM_FRAMESET_29 ; 2c
+ db SPRITE_ANIM_FRAMESET_26 ; 2d
+ db SPRITE_ANIM_FRAMESET_26 ; 2e
+ db SPRITE_ANIM_FRAMESET_26 ; 2f
+
+.UpdateObjectFlags: ; 11d2ee (47:52ee)
+ ld hl, wcd24
+ and [hl]
+ jr nz, .update_y_offset
+ ld a, e
+ ld hl, wcd23
+ and [hl]
+ jr z, .reset_y_offset
+ ld hl, SPRITEANIMSTRUCT_0E
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .flip_bit_0
+ dec [hl]
+ ret
+
+.flip_bit_0
+ ld a, $0
+ ld [hld], a
+ ld a, $1
+ xor [hl]
+ ld [hl], a
+ and a
+ jr nz, .update_y_offset
+.reset_y_offset
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ xor a
+ ld [hl], a
+ ret
+
+.update_y_offset
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, $b0
+ sub [hl]
+ ld hl, SPRITEANIMSTRUCT_YOFFSET
+ add hl, bc
+ ld [hl], a
+ ret
+
+Function11d323: ; 11d323
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_11d33a
+ ld de, UnknBGPals
+ ld bc, 16 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d33a
+
+Palette_11d33a:
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 16, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 23, 17, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; 11d3ba
+
+EZChat_GetSeenPokemonByKana: ; 11d3ba
+ ld a, [rSVBK]
+ push af
+ ld hl, $c648
+ ld a, w5_d800 % $100
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, w5_d800 / $100
+ ld [wcd2e], a
+ ld [hl], a
+
+ ld a, SortedPokemon % $100
+ ld [wcd2f], a
+ ld a, SortedPokemon / $100
+ ld [wcd30], a
+
+ ld a, $c6a8 % $100
+ ld [wcd31], a
+ ld a, $c6a8 / $100
+ ld [wcd32], a
+
+ ld a, $c64a % $100
+ ld [wcd33], a
+ ld a, $c64a / $100
+ ld [wcd34], a
+
+ ld hl, EZChat_SortedWords
+ ld a, (EZChat_SortedWordsEnd - EZChat_SortedWords) / 4
+
+.MasterLoop: ; 11d3ef
+ push af
+; read row
+; offset
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+; size
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+; save the pointer to the next row
+ push hl
+; add de to w3_d000
+ ld hl, w3_d000
+ add hl, de
+; recover de from wcd2d (default: w5_d800)
+ ld a, [wcd2d]
+ ld e, a
+ ld a, [wcd2e]
+ ld d, a
+; save bc for later
+ push bc
+
+.loop1
+; copy 2*bc bytes from 3:hl to 5:de
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+
+ dec bc
+ ld a, c
+ or b
+ jr nz, .loop1
+
+; recover the pointer from wcd2f (default: SortedPokemon)
+ ld a, [wcd2f]
+ ld l, a
+ ld a, [wcd30]
+ ld h, a
+; copy the pointer from [hl] to bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+; store the pointer to the next pointer back in wcd2f
+ ld a, l
+ ld [wcd2f], a
+ ld a, h
+ ld [wcd30], a
+; push pop that pointer to hl
+ push bc
+ pop hl
+ ld c, $0
+.loop2
+; Have you seen this Pokemon?
+ ld a, [hl]
+ cp $ff
+ jr z, .done
+ call .CheckSeenMon
+ jr nz, .next
+; If not, skip it.
+ inc hl
+ jr .loop2
+
+.next
+; If so, append it to the list at 5:de, and increase the count.
+ ld a, [hli]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ inc c
+ jr .loop2
+
+.done
+; Remember the original value of bc from the table?
+; Well, the stack remembers it, and it's popping it to hl.
+ pop hl
+; Add the number of seen Pokemon from the list.
+ ld b, $0
+ add hl, bc
+; Push pop to bc.
+ push hl
+ pop bc
+; Load the pointer from [wcd31] (default: $c6a8)
+ ld a, [wcd31]
+ ld l, a
+ ld a, [wcd32]
+ ld h, a
+; Save the quantity from bc to [hl]
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+; Save the new value of hl to [wcd31]
+ ld a, l
+ ld [wcd31], a
+ ld a, h
+ ld [wcd32], a
+; Recover the pointer from [wcd33] (default: $c64a)
+ ld a, [wcd33]
+ ld l, a
+ ld a, [wcd34]
+ ld h, a
+; Save the current value of de there
+ ld a, e
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, d
+ ld [wcd2e], a
+; Save the new value of hl back to [wcd33]
+ ld [hli], a
+ ld a, l
+ ld [wcd33], a
+ ld a, h
+ ld [wcd34], a
+; Next row
+ pop hl
+ pop af
+ dec a
+ jr z, .ExitMasterLoop
+ jp .MasterLoop
+
+.ExitMasterLoop:
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d493
+
+.CheckSeenMon: ; 11d493
+ push hl
+ push bc
+ push de
+ dec a
+ ld hl, rSVBK
+ ld e, $1
+ ld [hl], e
+ call CheckSeenMon
+ ld hl, rSVBK
+ ld e, $5
+ ld [hl], e
+ pop de
+ pop bc
+ pop hl
+ ret
+; 11d4aa
+
+EZChat_GetCategoryWordsByKana: ; 11d4aa
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+
+ ; load pointers
+ ld hl, MobileEZChatCategoryPointers
+ ld bc, MobileEZChatData_WordAndPageCounts
+
+ ; init WRAM registers
+ xor a
+ ld [wcd2d], a
+ inc a
+ ld [wcd2e], a
+
+ ; enter the first loop
+ ld a, 14
+.loop1
+ push af
+
+ ; load the pointer to the category
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+
+ ; skip to the attributes
+ ld hl, NAME_LENGTH_JAPANESE - 1
+ add hl, de
+
+ ; get the number of words in the category
+ ld a, [bc] ; number of entries to copy
+ inc bc
+ inc bc
+ push bc
+
+.loop2
+ push af
+ push hl
+
+ ; load offset at [hl]
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+
+ ; add to w3_d000
+ ld hl, w3_d000
+ add hl, de
+
+ ; copy from wcd2d and increment [wcd2d] in place
+ ld a, [wcd2d]
+ ld [hli], a
+ inc a
+ ld [wcd2d], a
+
+ ; copy from wcd2e
+ ld a, [wcd2e]
+ ld [hl], a
+
+ ; next entry
+ pop hl
+ ld de, 8
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop2
+
+ ; reset and go to next category
+ ld hl, wcd2d
+ xor a
+ ld [hli], a
+ inc [hl]
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .loop1
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d4fe
+
+SortedPokemon:
+; Pokemon sorted by kana.
+; Notably, Rhydon is missing.
+ dw .a
+ dw .i
+ dw .u
+ dw .e
+ dw .o
+ dw .ka_ga
+ dw .ki_gi
+ dw .ku_gu
+ dw .ke_ge
+ dw .ko_go
+ dw .sa_za
+ dw .shi_ji
+ dw .su_zu
+ dw .se_ze
+ dw .so_zo
+ dw .ta_da
+ dw .chi_dhi
+ dw .tsu_du
+ dw .te_de
+ dw .to_do
+ dw .na
+ dw .ni
+ dw .nu
+ dw .ne
+ dw .no
+ dw .ha_ba_pa
+ dw .hi_bi_pi
+ dw .fu_bu_pu
+ dw .he_be_pe
+ dw .ho_bo_po
+ dw .ma
+ dw .mi
+ dw .mu
+ dw .me
+ dw .mo
+ dw .ya
+ dw .yu
+ dw .yo
+ dw .ra
+ dw .ri
+ dw .ru
+ dw .re
+ dw .ro
+ dw .wa
+ dw .end
+
+.a: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, -1
+.i: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, -1
+.u: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, -1
+.e: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, -1
+.o: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, -1
+.ka_ga db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, -1
+.ki_gi db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, -1
+.ku_gu db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, -1
+.ke_ge db ABRA, GENGAR, TAUROS, -1
+.ko_go db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, -1
+.sa_za db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, -1 ; RHYDON should lead this list
+.shi_ji db SEADRA, SHELLDER, VAPOREON, DEWGONG, -1
+.su_zu db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, -1
+.se_ze db SQUIRTLE, CELEBI, -1
+.so_zo db WOBBUFFET, -1
+.ta_da db DUGTRIO, HORSEA, EXEGGCUTE, -1
+.chi_dhi db CHIKORITA, CHINCHOU, -1
+.tsu_du db SHUCKLE, -1
+.te_de db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, -1
+.to_do db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, -1
+.na db ODDISH, EXEGGUTOR, -1
+.ni db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, -1
+.nu db QUAGSIRE, -1
+.ne db NATU, XATU, -1
+.no db DUNSPARCE, -1
+.ha_ba_pa db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, -1
+.hi_bi_pi db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, -1
+.fu_bu_pu db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, -1
+.he_be_pe db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, -1
+.ho_bo_po db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, -1
+.ma db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, -1
+.mi db DRATINI, MEW, MEWTWO, MILTANK, -1
+.mu db MISDREAVUS, SMOOCHUM, -1
+.me db MEGANIUM, DITTO, TENTACOOL, MAREEP, -1
+.mo db FLAAFFY, VENOMOTH, TANGELA, -1
+.ya db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, -1
+.yu db KADABRA, -1
+.yo db LARVITAR, NOCTOWL, -1
+.ra db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, -1
+.ri db CHARMELEON, CHARIZARD, URSARING, -1
+.ru db JYNX, LUGIA, -1
+.re db MAGNETON, LEDIAN, LEDYBA, -1
+.ro db VULPIX, -1
+.wa db JUMPLUFF, TOTODILE, MACHOP;, -1
+.end db -1
+; 11d67e
+
+GFX_11d67e:
+INCBIN "gfx/pokedex/select_start.2bpp"
+; 11d6de
+
+LZ_11d6de:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+; 11da52
+
+MobileEZChatCategoryNames: ; 11da52
+; Fixed message categories
+ db "ポケモン@@" ; 00
+ db "タイプ@@@" ; 01
+ db "あいさつ@@" ; 02
+ db "ひと@@@@" ; 03
+ db "バトル@@@" ; 04
+ db "こえ@@@@" ; 05
+ db "かいわ@@@" ; 06
+ db "きもち@@@" ; 07
+ db "じょうたい@" ; 08
+ db "せいかつ@@" ; 09
+ db "しゅみ@@@" ; 0a
+ db "こうどう@@" ; 0b
+ db "じかん@@@" ; 0c
+ db "むすび@@@" ; 0d
+ db "あれこれ@@" ; 0e
+; 11daac
+
+MobileEZChatCategoryPointers: ; 11daac
+; entries correspond to EZCHAT_* constants
+ dw .Types ; 01
+ dw .Greetings ; 02
+ dw .People ; 03
+ dw .Battle ; 04
+ dw .Exclamations ; 05
+ dw .Conversation ; 06
+ dw .Feelings ; 07
+ dw .Conditions ; 08
+ dw .Life ; 09
+ dw .Hobbies ; 0a
+ dw .Actions ; 0b
+ dw .Time ; 0c
+ dw .Farewells ; 0d
+ dw .ThisAndThat ; 0e
+
+.Types: ; 11dac8
+ db "あく@@@", $26, $0, $0
+ db "いわ@@@", $aa, $0, $0
+ db "エスパー@", $da, $0, $0
+ db "かくとう@", $4e, $1, $0
+ db "くさ@@@", $ba, $1, $0
+ db "ゴースト@", $e4, $1, $0
+ db "こおり@@", $e6, $1, $0
+ db "じめん@@", $68, $2, $0
+ db "タイプ@@", $e8, $2, $0
+ db "でんき@@", $8e, $3, $0
+ db "どく@@@", $ae, $3, $0
+ db "ドラゴン@", $bc, $3, $0
+ db "ノーマル@", $22, $4, $0
+ db "はがね@@", $36, $4, $0
+ db "ひこう@@", $5e, $4, $0
+ db "ほのお@@", $b2, $4, $0
+ db "みず@@@", $f4, $4, $0
+ db "むし@@@", $12, $5, $0
+
+.Greetings: ; 11db58
+ db "ありがと@", $58, $0, $0
+ db "ありがとう", $5a, $0, $0
+ db "いくぜ!@", $80, $0, $0
+ db "いくよ!@", $82, $0, $0
+ db "いくわよ!", $84, $0, $0
+ db "いやー@@", $a6, $0, $0
+ db "おっす@@", $a, $1, $0
+ db "おはつです", $22, $1, $0
+ db "おめでとう", $2a, $1, $0
+ db "ごめん@@", $f8, $1, $0
+ db "ごめんよ@", $fa, $1, $0
+ db "こらっ@@", $fc, $1, $0
+ db "こんちは!", $a, $2, $0
+ db "こんにちは", $10, $2, $0
+ db "さようなら", $28, $2, $0
+ db "サンキュー", $2e, $2, $0
+ db "さんじょう", $30, $2, $0
+ db "しっけい@", $48, $2, $0
+ db "しつれい@", $4c, $2, $0
+ db "じゃーね@", $6c, $2, $0
+ db "すいません", $8c, $2, $0
+ db "それじゃ@", $ca, $2, $0
+ db "どうも@@", $a6, $3, $0
+ db "なんじゃ@", $ee, $3, $0
+ db "ハーイ@@", $2c, $4, $0
+ db "はいはい@", $32, $4, $0
+ db "バイバイ@", $34, $4, $0
+ db "へイ@@@", $8a, $4, $0
+ db "またね@@", $de, $4, $0
+ db "もしもし@", $32, $5, $0
+ db "やあ@@@", $3e, $5, $0
+ db "やっほー@", $4e, $5, $0
+ db "よう@@@", $62, $5, $0
+ db "ようこそ@", $64, $5, $0
+ db "よろしく@", $80, $5, $0
+ db "らっしゃい", $94, $5, $0
+
+.People: ; 11dc78
+ db "あいて@@", $1c, $0, $0
+ db "あたし@@", $36, $0, $0
+ db "あなた@@", $40, $0, $0
+ db "あなたが@", $42, $0, $0
+ db "あなたに@", $44, $0, $0
+ db "あなたの@", $46, $0, $0
+ db "あなたは@", $48, $0, $0
+ db "あなたを@", $4a, $0, $0
+ db "おかあさん", $e8, $0, $0
+ db "おじいさん", $fc, $0, $0
+ db "おじさん@", $2, $1, $0
+ db "おとうさん", $e, $1, $0
+ db "おとこのこ", $10, $1, $0
+ db "おとな@@", $14, $1, $0
+ db "おにいさん", $16, $1, $0
+ db "おねえさん", $18, $1, $0
+ db "おばあさん", $1c, $1, $0
+ db "おばさん@", $20, $1, $0
+ db "おれさま@", $34, $1, $0
+ db "おんなのこ", $3a, $1, $0
+ db "ガール@@", $40, $1, $0
+ db "かぞく@@", $52, $1, $0
+ db "かのじょ@", $72, $1, $0
+ db "かれ@@@", $7c, $1, $0
+ db "きみ@@@", $9a, $1, $0
+ db "きみが@@", $9c, $1, $0
+ db "きみに@@", $9e, $1, $0
+ db "きみの@@", $a0, $1, $0
+ db "きみは@@", $a2, $1, $0
+ db "きみを@@", $a4, $1, $0
+ db "ギャル@@", $ae, $1, $0
+ db "きょうだい", $b2, $1, $0
+ db "こども@@", $f0, $1, $0
+ db "じぶん@@", $54, $2, $0
+ db "じぶんが@", $56, $2, $0
+ db "じぶんに@", $58, $2, $0
+ db "じぶんの@", $5a, $2, $0
+ db "じぶんは@", $5c, $2, $0
+ db "じぶんを@", $5e, $2, $0
+ db "だれ@@@", $18, $3, $0
+ db "だれか@@", $1a, $3, $0
+ db "だれが@@", $1c, $3, $0
+ db "だれに@@", $1e, $3, $0
+ db "だれの@@", $20, $3, $0
+ db "だれも@@", $22, $3, $0
+ db "だれを@@", $24, $3, $0
+ db "ちゃん@@", $38, $3, $0
+ db "ともだち@", $b8, $3, $0
+ db "なかま@@", $d4, $3, $0
+ db "ひと@@@", $62, $4, $0
+ db "ボーイ@@", $98, $4, $0
+ db "ボク@@@", $a0, $4, $0
+ db "ボクが@@", $a2, $4, $0
+ db "ボクに@@", $a4, $4, $0
+ db "ボクの@@", $a6, $4, $0
+ db "ボクは@@", $a8, $4, $0
+ db "ボクを@@", $aa, $4, $0
+ db "みんな@@", $4, $5, $0
+ db "みんなが@", $6, $5, $0
+ db "みんなに@", $8, $5, $0
+ db "みんなの@", $a, $5, $0
+ db "みんなは@", $c, $5, $0
+ db "ライバル@", $8a, $5, $0
+ db "わたし@@", $c2, $5, $0
+ db "わたしが@", $c4, $5, $0
+ db "わたしに@", $c6, $5, $0
+ db "わたしの@", $c8, $5, $0
+ db "わたしは@", $ca, $5, $0
+ db "わたしを@", $cc, $5, $0
+
+.Battle: ; 11dea0
+ db "あいしょう", $18, $0, $0
+ db "いけ!@@", $88, $0, $0
+ db "いちばん@", $96, $0, $0
+ db "かくご@@", $4c, $1, $0
+ db "かたせて@", $54, $1, $0
+ db "かち@@@", $56, $1, $0
+ db "かつ@@@", $58, $1, $0
+ db "かった@@", $60, $1, $0
+ db "かったら@", $62, $1, $0
+ db "かって@@", $64, $1, $0
+ db "かてない@", $66, $1, $0
+ db "かてる@@", $68, $1, $0
+ db "かなわない", $70, $1, $0
+ db "きあい@@", $84, $1, $0
+ db "きめた@@", $a8, $1, $0
+ db "きりふだ@", $b6, $1, $0
+ db "くらえ@@", $c2, $1, $0
+ db "こい!@@", $da, $1, $0
+ db "こうげき@", $e0, $1, $0
+ db "こうさん@", $e2, $1, $0
+ db "こんじょう", $8, $2, $0
+ db "さいのう@", $16, $2, $0
+ db "さくせん@", $1a, $2, $0
+ db "さばき@@", $22, $2, $0
+ db "しょうぶ@", $7e, $2, $0
+ db "しょうり@", $80, $2, $0
+ db "せめ@@@", $b4, $2, $0
+ db "センス@@", $b6, $2, $0
+ db "たいせん@", $e6, $2, $0
+ db "たたかい@", $f6, $2, $0
+ db "ちから@@", $32, $3, $0
+ db "チャレンジ", $36, $3, $0
+ db "つよい@@", $58, $3, $0
+ db "つよすぎ@", $5a, $3, $0
+ db "つらい@@", $5c, $3, $0
+ db "つらかった", $5e, $3, $0
+ db "てかげん@", $6c, $3, $0
+ db "てき@@@", $6e, $3, $0
+ db "てんさい@", $90, $3, $0
+ db "でんせつ@", $94, $3, $0
+ db "トレーナー", $c6, $3, $0
+ db "にげ@@@", $4, $4, $0
+ db "ぬるい@@", $10, $4, $0
+ db "ねらう@@", $16, $4, $0
+ db "バトル@@", $4a, $4, $0
+ db "ファイト@", $72, $4, $0
+ db "ふっかつ@", $78, $4, $0
+ db "ポイント@", $94, $4, $0
+ db "ポケモン@", $ac, $4, $0
+ db "ほんき@@", $bc, $4, $0
+ db "まいった!", $c4, $4, $0
+ db "まけ@@@", $c8, $4, $0
+ db "まけたら@", $ca, $4, $0
+ db "まけて@@", $cc, $4, $0
+ db "まける@@", $ce, $4, $0
+ db "まもり@@", $ea, $4, $0
+ db "みかた@@", $f2, $4, $0
+ db "みとめない", $fe, $4, $0
+ db "みとめる@", $0, $5, $0
+ db "むてき@@", $16, $5, $0
+ db "もらった!", $3c, $5, $0
+ db "よゆう@@", $7a, $5, $0
+ db "よわい@@", $82, $5, $0
+ db "よわすぎ@", $84, $5, $0
+ db "らくしょう", $8e, $5, $0
+ db "りーダー@", $9e, $5, $0
+ db "ルール@@", $a0, $5, $0
+ db "レべル@@", $a6, $5, $0
+ db "わざ@@@", $be, $5, $0
+
+.Exclamations: ; 11e0c8
+ db "!@@@@", $0, $0, $0
+ db "!!@@@", $2, $0, $0
+ db "!?@@@", $4, $0, $0
+ db "?@@@@", $6, $0, $0
+ db "…@@@@", $8, $0, $0
+ db "…!@@@", $a, $0, $0
+ db "………@@", $c, $0, $0
+ db "ー@@@@", $e, $0, $0
+ db "ーーー@@", $10, $0, $0
+ db "あーあ@@", $14, $0, $0
+ db "あーん@@", $16, $0, $0
+ db "あははー@", $52, $0, $0
+ db "あら@@@", $54, $0, $0
+ db "いえ@@@", $72, $0, $0
+ db "イエス@@", $74, $0, $0
+ db "うう@@@", $ac, $0, $0
+ db "うーん@@", $ae, $0, $0
+ db "うおー!@", $b0, $0, $0
+ db "うおりゃー", $b2, $0, $0
+ db "うひょー@", $bc, $0, $0
+ db "うふふ@@", $be, $0, $0
+ db "うわー@@", $ca, $0, $0
+ db "うわーん@", $cc, $0, $0
+ db "ええ@@@", $d2, $0, $0
+ db "えー@@@", $d4, $0, $0
+ db "えーん@@", $d6, $0, $0
+ db "えへへ@@", $dc, $0, $0
+ db "おいおい@", $e0, $0, $0
+ db "おお@@@", $e2, $0, $0
+ db "おっと@@", $c, $1, $0
+ db "がーん@@", $42, $1, $0
+ db "キャー@@", $aa, $1, $0
+ db "ギャー@@", $ac, $1, $0
+ db "ぐふふふふ", $bc, $1, $0
+ db "げっ@@@", $ce, $1, $0
+ db "しくしく@", $3e, $2, $0
+ db "ちえっ@@", $2e, $3, $0
+ db "てへ@@@", $86, $3, $0
+ db "ノー@@@", $20, $4, $0
+ db "はあー@@", $2a, $4, $0
+ db "はい@@@", $30, $4, $0
+ db "はっはっは", $48, $4, $0
+ db "ひいー@@", $56, $4, $0
+ db "ひゃあ@@", $6a, $4, $0
+ db "ふっふっふ", $7c, $4, $0
+ db "ふにゃ@@", $7e, $4, $0
+ db "ププ@@@", $80, $4, $0
+ db "ふふん@@", $82, $4, $0
+ db "ふん@@@", $88, $4, $0
+ db "へっへっへ", $8e, $4, $0
+ db "へへー@@", $90, $4, $0
+ db "ほーほほほ", $9c, $4, $0
+ db "ほら@@@", $b6, $4, $0
+ db "まあ@@@", $c0, $4, $0
+ db "むきー!!", $10, $5, $0
+ db "むふー@@", $18, $5, $0
+ db "むふふ@@", $1a, $5, $0
+ db "むむ@@@", $1c, $5, $0
+ db "よーし@@", $6a, $5, $0
+ db "よし!@@", $72, $5, $0
+ db "ラララ@@", $98, $5, $0
+ db "わーい@@", $ac, $5, $0
+ db "わーん!!", $b0, $5, $0
+ db "ワォ@@@", $b2, $5, $0
+ db "わっ!!@", $ce, $5, $0
+ db "わははは!", $d0, $5, $0
+
+.Conversation: ; 11e2d8
+ db "あのね@@", $50, $0, $0
+ db "あんまり@", $6e, $0, $0
+ db "いじわる@", $8e, $0, $0
+ db "うそ@@@", $b6, $0, $0
+ db "うむ@@@", $c4, $0, $0
+ db "おーい@@", $e4, $0, $0
+ db "おすすめ@", $6, $1, $0
+ db "おばかさん", $1e, $1, $0
+ db "かなり@@", $6e, $1, $0
+ db "から@@@", $7a, $1, $0
+ db "きぶん@@", $98, $1, $0
+ db "けど@@@", $d6, $1, $0
+ db "こそ@@@", $ea, $1, $0
+ db "こと@@@", $ee, $1, $0
+ db "さあ@@@", $12, $2, $0
+ db "さっぱり@", $1e, $2, $0
+ db "さて@@@", $20, $2, $0
+ db "じゅうぶん", $72, $2, $0
+ db "すぐ@@@", $94, $2, $0
+ db "すごく@@", $98, $2, $0
+ db "すこしは@", $9a, $2, $0
+ db "すっっごい", $a0, $2, $0
+ db "ぜーんぜん", $b0, $2, $0
+ db "ぜったい@", $b2, $2, $0
+ db "それで@@", $ce, $2, $0
+ db "だけ@@@", $f2, $2, $0
+ db "だって@@", $fc, $2, $0
+ db "たぶん@@", $6, $3, $0
+ db "たら@@@", $14, $3, $0
+ db "ちょー@@", $3a, $3, $0
+ db "ちょっと@", $3c, $3, $0
+ db "ったら@@", $4e, $3, $0
+ db "って@@@", $50, $3, $0
+ db "ていうか@", $62, $3, $0
+ db "でも@@@", $88, $3, $0
+ db "どうしても", $9c, $3, $0
+ db "とうぜん@", $a0, $3, $0
+ db "どうぞ@@", $a2, $3, $0
+ db "とりあえず", $be, $3, $0
+ db "なあ@@@", $cc, $3, $0
+ db "なんて@@", $f4, $3, $0
+ db "なんでも@", $fc, $3, $0
+ db "なんとか@", $fe, $3, $0
+ db "には@@@", $8, $4, $0
+ db "バッチり@", $46, $4, $0
+ db "ばりばり@", $52, $4, $0
+ db "ほど@@@", $b0, $4, $0
+ db "ほんと@@", $be, $4, $0
+ db "まさに@@", $d0, $4, $0
+ db "マジ@@@", $d2, $4, $0
+ db "マジで@@", $d4, $4, $0
+ db "まったく@", $e4, $4, $0
+ db "まで@@@", $e6, $4, $0
+ db "まるで@@", $ec, $4, $0
+ db "ムード@@", $e, $5, $0
+ db "むしろ@@", $14, $5, $0
+ db "めちゃ@@", $24, $5, $0
+ db "めっぽう@", $28, $5, $0
+ db "もう@@@", $2c, $5, $0
+ db "モード@@", $2e, $5, $0
+ db "もっと@@", $36, $5, $0
+ db "もはや@@", $38, $5, $0
+ db "やっと@@", $4a, $5, $0
+ db "やっぱり@", $4c, $5, $0
+ db "より@@@", $7c, $5, $0
+ db "れば@@@", $a4, $5, $0
+
+.Feelings: ; 11e4e8
+ db "あいたい@", $1a, $0, $0
+ db "あそびたい", $32, $0, $0
+ db "いきたい@", $7c, $0, $0
+ db "うかれて@", $b4, $0, $0
+ db "うれしい@", $c6, $0, $0
+ db "うれしさ@", $c8, $0, $0
+ db "エキサイト", $d8, $0, $0
+ db "えらい@@", $de, $0, $0
+ db "おかしい@", $ec, $0, $0
+ db "ォッケー@", $8, $1, $0
+ db "かえりたい", $48, $1, $0
+ db "がっくし@", $5a, $1, $0
+ db "かなしい@", $6c, $1, $0
+ db "がんばって", $80, $1, $0
+ db "きがしない", $86, $1, $0
+ db "きがする@", $88, $1, $0
+ db "ききたい@", $8a, $1, $0
+ db "きになる@", $90, $1, $0
+ db "きのせい@", $96, $1, $0
+ db "きらい@@", $b4, $1, $0
+ db "くやしい@", $be, $1, $0
+ db "くやしさ@", $c0, $1, $0
+ db "さみしい@", $24, $2, $0
+ db "ざんねん@", $32, $2, $0
+ db "しあわせ@", $36, $2, $0
+ db "したい@@", $44, $2, $0
+ db "したくない", $46, $2, $0
+ db "しまった@", $64, $2, $0
+ db "しょんぼり", $82, $2, $0
+ db "すき@@@", $92, $2, $0
+ db "だいきらい", $da, $2, $0
+ db "たいくつ@", $dc, $2, $0
+ db "だいじ@@", $de, $2, $0
+ db "だいすき@", $e4, $2, $0
+ db "たいへん@", $ea, $2, $0
+ db "たのしい@", $0, $3, $0
+ db "たのしすぎ", $2, $3, $0
+ db "たべたい@", $8, $3, $0
+ db "ダメダメ@", $e, $3, $0
+ db "たりない@", $16, $3, $0
+ db "ちくしょー", $34, $3, $0
+ db "どうしよう", $9e, $3, $0
+ db "ドキドキ@", $ac, $3, $0
+ db "ナイス@@", $d0, $3, $0
+ db "のみたい@", $26, $4, $0
+ db "びっくり@", $60, $4, $0
+ db "ふあん@@", $74, $4, $0
+ db "ふらふら@", $86, $4, $0
+ db "ほしい@@", $ae, $4, $0
+ db "ボロボロ@", $b8, $4, $0
+ db "まだまだ@", $e0, $4, $0
+ db "まてない@", $e8, $4, $0
+ db "まんぞく@", $f0, $4, $0
+ db "みたい@@", $f8, $4, $0
+ db "めずらしい", $22, $5, $0
+ db "メラメラ@", $2a, $5, $0
+ db "やだ@@@", $46, $5, $0
+ db "やったー@", $48, $5, $0
+ db "やばい@@", $50, $5, $0
+ db "やばすぎる", $52, $5, $0
+ db "やられた@", $54, $5, $0
+ db "やられて@", $56, $5, $0
+ db "よかった@", $6e, $5, $0
+ db "ラブラブ@", $96, $5, $0
+ db "ロマン@@", $a8, $5, $0
+ db "ろんがい@", $aa, $5, $0
+ db "わから@@", $b4, $5, $0
+ db "わかり@@", $b6, $5, $0
+ db "わくわく@", $ba, $5, $0
+
+.Conditions: ; 11e710
+ db "あつい@@", $38, $0, $0
+ db "あった@@", $3a, $0, $0
+ db "あり@@@", $56, $0, $0
+ db "ある@@@", $5e, $0, $0
+ db "あわてて@", $6a, $0, $0
+ db "いい@@@", $70, $0, $0
+ db "いか@@@", $76, $0, $0
+ db "イカス@@", $78, $0, $0
+ db "いきおい@", $7a, $0, $0
+ db "いける@@", $8a, $0, $0
+ db "いじょう@", $8c, $0, $0
+ db "いそがしい", $90, $0, $0
+ db "いっしょに", $9a, $0, $0
+ db "いっぱい@", $9c, $0, $0
+ db "いない@@", $a0, $0, $0
+ db "いや@@@", $a4, $0, $0
+ db "いる@@@", $a8, $0, $0
+ db "うまい@@", $c0, $0, $0
+ db "うまく@@", $c2, $0, $0
+ db "おおきい@", $e6, $0, $0
+ db "おくれ@@", $f2, $0, $0
+ db "おしい@@", $fa, $0, $0
+ db "おもしろい", $2c, $1, $0
+ db "おもしろく", $2e, $1, $0
+ db "かっこいい", $5c, $1, $0
+ db "かわいい@", $7e, $1, $0
+ db "かんぺき@", $82, $1, $0
+ db "けっこう@", $d0, $1, $0
+ db "げんき@@", $d8, $1, $0
+ db "こわい@@", $6, $2, $0
+ db "さいこう@", $14, $2, $0
+ db "さむい@@", $26, $2, $0
+ db "さわやか@", $2c, $2, $0
+ db "しかたない", $38, $2, $0
+ db "すごい@@", $96, $2, $0
+ db "すごすぎ@", $9c, $2, $0
+ db "すてき@@", $a4, $2, $0
+ db "たいした@", $e0, $2, $0
+ db "だいじょぶ", $e2, $2, $0
+ db "たかい@@", $ec, $2, $0
+ db "ただしい@", $f8, $2, $0
+ db "だめ@@@", $c, $3, $0
+ db "ちいさい@", $2c, $3, $0
+ db "ちがう@@", $30, $3, $0
+ db "つかれ@@", $48, $3, $0
+ db "とくい@@", $b0, $3, $0
+ db "とまらない", $b6, $3, $0
+ db "ない@@@", $ce, $3, $0
+ db "なかった@", $d2, $3, $0
+ db "なし@@@", $d8, $3, $0
+ db "なって@@", $dc, $3, $0
+ db "はやい@@", $50, $4, $0
+ db "ひかる@@", $5a, $4, $0
+ db "ひくい@@", $5c, $4, $0
+ db "ひどい@@", $64, $4, $0
+ db "ひとりで@", $66, $4, $0
+ db "ひま@@@", $68, $4, $0
+ db "ふそく@@", $76, $4, $0
+ db "へた@@@", $8c, $4, $0
+ db "まちがって", $e2, $4, $0
+ db "やさしい@", $42, $5, $0
+ db "よく@@@", $70, $5, $0
+ db "よわって@", $86, $5, $0
+ db "らく@@@", $8c, $5, $0
+ db "らしい@@", $90, $5, $0
+ db "わるい@@", $d4, $5, $0
+
+.Life: ; 11e920
+ db "アルバイト", $64, $0, $0
+ db "うち@@@", $ba, $0, $0
+ db "おかね@@", $ee, $0, $0
+ db "おこづかい", $f4, $0, $0
+ db "おふろ@@", $24, $1, $0
+ db "がっこう@", $5e, $1, $0
+ db "きねん@@", $92, $1, $0
+ db "グループ@", $c6, $1, $0
+ db "ゲット@@", $d2, $1, $0
+ db "こうかん@", $de, $1, $0
+ db "しごと@@", $40, $2, $0
+ db "しゅぎょう", $74, $2, $0
+ db "じゅぎょう", $76, $2, $0
+ db "じゅく@@", $78, $2, $0
+ db "しんか@@", $88, $2, $0
+ db "ずかん@@", $90, $2, $0
+ db "せいかつ@", $ae, $2, $0
+ db "せんせい@", $b8, $2, $0
+ db "センター@", $ba, $2, $0
+ db "タワー@@", $28, $3, $0
+ db "つうしん@", $40, $3, $0
+ db "テスト@@", $7e, $3, $0
+ db "テレビ@@", $8c, $3, $0
+ db "でんわ@@", $96, $3, $0
+ db "どうぐ@@", $9a, $3, $0
+ db "トレード@", $c4, $3, $0
+ db "なまえ@@", $e8, $3, $0
+ db "ニュース@", $a, $4, $0
+ db "にんき@@", $c, $4, $0
+ db "パーティー", $2e, $4, $0
+ db "べんきょう", $92, $4, $0
+ db "マシン@@", $d6, $4, $0
+ db "めいし@@", $1e, $5, $0
+ db "メッセージ", $26, $5, $0
+ db "もようがえ", $3a, $5, $0
+ db "ゆめ@@@", $5a, $5, $0
+ db "ようちえん", $66, $5, $0
+ db "ラジォ@@", $92, $5, $0
+ db "ワールド@", $ae, $5, $0
+
+.Hobbies: ; 11ea58
+ db "アイドル@", $1e, $0, $0
+ db "アニメ@@", $4c, $0, $0
+ db "うた@@@", $b8, $0, $0
+ db "えいが@@", $d0, $0, $0
+ db "おかし@@", $ea, $0, $0
+ db "おしゃべり", $4, $1, $0
+ db "おままごと", $28, $1, $0
+ db "おもちゃ@", $30, $1, $0
+ db "おんがく@", $38, $1, $0
+ db "カード@@", $3e, $1, $0
+ db "かいもの@", $46, $1, $0
+ db "グルメ@@", $c8, $1, $0
+ db "ゲーム@@", $cc, $1, $0
+ db "ざっし@@", $1c, $2, $0
+ db "さんぽ@@", $34, $2, $0
+ db "じてんしゃ", $50, $2, $0
+ db "しゅみ@@", $7a, $2, $0
+ db "スポーツ@", $a8, $2, $0
+ db "ダイエット", $d8, $2, $0
+ db "たからもの", $f0, $2, $0
+ db "たび@@@", $4, $3, $0
+ db "ダンス@@", $2a, $3, $0
+ db "つり@@@", $60, $3, $0
+ db "デート@@", $6a, $3, $0
+ db "でんしゃ@", $92, $3, $0
+ db "ぬいぐるみ", $e, $4, $0
+ db "パソコン@", $3e, $4, $0
+ db "はな@@@", $4c, $4, $0
+ db "ヒーロー@", $58, $4, $0
+ db "ひるね@@", $6e, $4, $0
+ db "ヒロイン@", $70, $4, $0
+ db "ぼうけん@", $96, $4, $0
+ db "ボード@@", $9a, $4, $0
+ db "ボール@@", $9e, $4, $0
+ db "ほん@@@", $ba, $4, $0
+ db "マンガ@@", $ee, $4, $0
+ db "やくそく@", $40, $5, $0
+ db "やすみ@@", $44, $5, $0
+ db "よてい@@", $74, $5, $0
+
+.Actions: ; 11eb90
+ db "あう@@@", $20, $0, $0
+ db "あきらめ@", $24, $0, $0
+ db "あげる@@", $28, $0, $0
+ db "あせる@@", $2e, $0, $0
+ db "あそび@@", $30, $0, $0
+ db "あそぶ@@", $34, $0, $0
+ db "あつめ@@", $3e, $0, $0
+ db "あるき@@", $60, $0, $0
+ db "あるく@@", $62, $0, $0
+ db "いく@@@", $7e, $0, $0
+ db "いけ@@@", $86, $0, $0
+ db "おき@@@", $f0, $0, $0
+ db "おこり@@", $f6, $0, $0
+ db "おこる@@", $f8, $0, $0
+ db "おしえ@@", $fe, $0, $0
+ db "おしえて@", $0, $1, $0
+ db "おねがい@", $1a, $1, $0
+ db "おぼえ@@", $26, $1, $0
+ db "かえる@@", $4a, $1, $0
+ db "がまん@@", $74, $1, $0
+ db "きく@@@", $8c, $1, $0
+ db "きたえ@@", $8e, $1, $0
+ db "きめ@@@", $a6, $1, $0
+ db "くる@@@", $c4, $1, $0
+ db "さがし@@", $18, $2, $0
+ db "さわぎ@@", $2a, $2, $0
+ db "した@@@", $42, $2, $0
+ db "しって@@", $4a, $2, $0
+ db "して@@@", $4e, $2, $0
+ db "しない@@", $52, $2, $0
+ db "しまう@@", $60, $2, $0
+ db "じまん@@", $66, $2, $0
+ db "しらない@", $84, $2, $0
+ db "しる@@@", $86, $2, $0
+ db "しんじて@", $8a, $2, $0
+ db "する@@@", $aa, $2, $0
+ db "たべる@@", $a, $3, $0
+ db "つかう@@", $42, $3, $0
+ db "つかえ@@", $44, $3, $0
+ db "つかって@", $46, $3, $0
+ db "できない@", $70, $3, $0
+ db "できる@@", $72, $3, $0
+ db "でない@@", $84, $3, $0
+ db "でる@@@", $8a, $3, $0
+ db "なげる@@", $d6, $3, $0
+ db "なやみ@@", $ea, $3, $0
+ db "ねられ@@", $18, $4, $0
+ db "ねる@@@", $1a, $4, $0
+ db "のがし@@", $24, $4, $0
+ db "のむ@@@", $28, $4, $0
+ db "はしり@@", $3a, $4, $0
+ db "はしる@@", $3c, $4, $0
+ db "はたらき@", $40, $4, $0
+ db "はたらく@", $42, $4, $0
+ db "はまって@", $4e, $4, $0
+ db "ぶつけ@@", $7a, $4, $0
+ db "ほめ@@@", $b4, $4, $0
+ db "みせて@@", $f6, $4, $0
+ db "みて@@@", $fc, $4, $0
+ db "みる@@@", $2, $5, $0
+ db "めざす@@", $20, $5, $0
+ db "もって@@", $34, $5, $0
+ db "ゆずる@@", $58, $5, $0
+ db "ゆるす@@", $5c, $5, $0
+ db "ゆるせ@@", $5e, $5, $0
+ db "られない@", $9a, $5, $0
+ db "られる@@", $9c, $5, $0
+ db "わかる@@", $b8, $5, $0
+ db "わすれ@@", $c0, $5, $0
+
+.Time: ; 11edb8
+ db "あき@@@", $22, $0, $0
+ db "あさ@@@", $2a, $0, $0
+ db "あした@@", $2c, $0, $0
+ db "いちにち@", $94, $0, $0
+ db "いつか@@", $98, $0, $0
+ db "いつも@@", $9e, $0, $0
+ db "いま@@@", $a2, $0, $0
+ db "えいえん@", $ce, $0, $0
+ db "おととい@", $12, $1, $0
+ db "おわり@@", $36, $1, $0
+ db "かようび@", $78, $1, $0
+ db "きのう@@", $94, $1, $0
+ db "きょう@@", $b0, $1, $0
+ db "きんようび", $b8, $1, $0
+ db "げつようび", $d4, $1, $0
+ db "このあと@", $f4, $1, $0
+ db "このまえ@", $f6, $1, $0
+ db "こんど@@", $c, $2, $0
+ db "じかん@@", $3c, $2, $0
+ db "じゅうねん", $70, $2, $0
+ db "すいようび", $8e, $2, $0
+ db "スタート@", $9e, $2, $0
+ db "ずっと@@", $a2, $2, $0
+ db "ストップ@", $a6, $2, $0
+ db "そのうち@", $c4, $2, $0
+ db "ついに@@", $3e, $3, $0
+ db "つぎ@@@", $4a, $3, $0
+ db "どようび@", $ba, $3, $0
+ db "なつ@@@", $da, $3, $0
+ db "にちようび", $6, $4, $0
+ db "はじめ@@", $38, $4, $0
+ db "はる@@@", $54, $4, $0
+ db "ひる@@@", $6c, $4, $0
+ db "ふゆ@@@", $84, $4, $0
+ db "まいにち@", $c6, $4, $0
+ db "もくようび", $30, $5, $0
+ db "よなか@@", $76, $5, $0
+ db "よる@@@", $7e, $5, $0
+ db "らいしゅう", $88, $5, $0
+
+.Farewells: ; 11eef0
+ db "いたします", $92, $0, $0
+ db "おります@", $32, $1, $0
+ db "か!?@@", $3c, $1, $0
+ db "かい?@@", $44, $1, $0
+ db "かしら?@", $50, $1, $0
+ db "かな?@@", $6a, $1, $0
+ db "かも@@@", $76, $1, $0
+ db "くれ@@@", $ca, $1, $0
+ db "ございます", $e8, $1, $0
+ db "しがち@@", $3a, $2, $0
+ db "します@@", $62, $2, $0
+ db "じゃ@@@", $6a, $2, $0
+ db "じゃん@@", $6e, $2, $0
+ db "しよう@@", $7c, $2, $0
+ db "ぜ!@@@", $ac, $2, $0
+ db "ぞ!@@@", $bc, $2, $0
+ db "た@@@@", $d4, $2, $0
+ db "だ@@@@", $d6, $2, $0
+ db "だからね@", $ee, $2, $0
+ db "だぜ@@@", $f4, $2, $0
+ db "だった@@", $fa, $2, $0
+ db "だね@@@", $fe, $2, $0
+ db "だよ@@@", $10, $3, $0
+ db "だよねー!", $12, $3, $0
+ db "だわ@@@", $26, $3, $0
+ db "ッス@@@", $4c, $3, $0
+ db "ってかんじ", $52, $3, $0
+ db "っぱなし@", $54, $3, $0
+ db "つもり@@", $56, $3, $0
+ db "ていない@", $64, $3, $0
+ db "ている@@", $66, $3, $0
+ db "でーす!@", $68, $3, $0
+ db "でした@@", $74, $3, $0
+ db "でしょ?@", $76, $3, $0
+ db "でしょー!", $78, $3, $0
+ db "です@@@", $7a, $3, $0
+ db "ですか?@", $7c, $3, $0
+ db "ですよ@@", $80, $3, $0
+ db "ですわ@@", $82, $3, $0
+ db "どうなの?", $a4, $3, $0
+ db "どうよ?@", $a8, $3, $0
+ db "とかいって", $aa, $3, $0
+ db "なの@@@", $e0, $3, $0
+ db "なのか@@", $e2, $3, $0
+ db "なのだ@@", $e4, $3, $0
+ db "なのよ@@", $e6, $3, $0
+ db "なんだね@", $f2, $3, $0
+ db "なんです@", $f8, $3, $0
+ db "なんてね@", $fa, $3, $0
+ db "ね@@@@", $12, $4, $0
+ db "ねー@@@", $14, $4, $0
+ db "の@@@@", $1c, $4, $0
+ db "の?@@@", $1e, $4, $0
+ db "ばっかり@", $44, $4, $0
+ db "まーす!@", $c2, $4, $0
+ db "ます@@@", $d8, $4, $0
+ db "ますわ@@", $da, $4, $0
+ db "ません@@", $dc, $4, $0
+ db "みたいな@", $fa, $4, $0
+ db "よ!@@@", $60, $5, $0
+ db "よー@@@", $68, $5, $0
+ db "よーん@@", $6c, $5, $0
+ db "よね@@@", $78, $5, $0
+ db "るよ@@@", $a2, $5, $0
+ db "わけ@@@", $bc, $5, $0
+ db "わよ!@@", $d2, $5, $0
+
+.ThisAndThat: ; 11f100
+ db "ああ@@@", $12, $0, $0
+ db "あっち@@", $3c, $0, $0
+ db "あの@@@", $4e, $0, $0
+ db "ありゃ@@", $5c, $0, $0
+ db "あれ@@@", $66, $0, $0
+ db "あれは@@", $68, $0, $0
+ db "あんな@@", $6c, $0, $0
+ db "こう@@@", $dc, $1, $0
+ db "こっち@@", $ec, $1, $0
+ db "この@@@", $f2, $1, $0
+ db "こりゃ@@", $fe, $1, $0
+ db "これ@@@", $0, $2, $0
+ db "これだ!@", $2, $2, $0
+ db "これは@@", $4, $2, $0
+ db "こんな@@", $e, $2, $0
+ db "そう@@@", $be, $2, $0
+ db "そっち@@", $c0, $2, $0
+ db "その@@@", $c2, $2, $0
+ db "そりゃ@@", $c6, $2, $0
+ db "それ@@@", $c8, $2, $0
+ db "それだ!@", $cc, $2, $0
+ db "それは@@", $d0, $2, $0
+ db "そんな@@", $d2, $2, $0
+ db "どう@@@", $98, $3, $0
+ db "どっち@@", $b2, $3, $0
+ db "どの@@@", $b4, $3, $0
+ db "どりゃ@@", $c0, $3, $0
+ db "どれ@@@", $c2, $3, $0
+ db "どれを@@", $c8, $3, $0
+ db "どんな@@", $ca, $3, $0
+ db "なに@@@", $de, $3, $0
+ db "なんか@@", $ec, $3, $0
+ db "なんだ@@", $f0, $3, $0
+ db "なんで@@", $f6, $3, $0
+ db "なんなんだ", $0, $4, $0
+ db "なんの@@", $2, $4, $0
+; 11f220
+
+MobileEZChatData_WordAndPageCounts:
+macro_11f220: macro
+; parameter: number of words
+ db \1
+; 12 words per page (0-based indexing)
+x = \1 / 12
+if \1 % 12 == 0
+x = x +- 1
+endc
+ db x
+endm
+ macro_11f220 18 ; 01: Types
+ macro_11f220 36 ; 02: Greetings
+ macro_11f220 69 ; 03: People
+ macro_11f220 69 ; 04: Battle
+ macro_11f220 66 ; 05: Exclamations
+ macro_11f220 66 ; 06: Conversation
+ macro_11f220 69 ; 07: Feelings
+ macro_11f220 66 ; 08: Conditions
+ macro_11f220 39 ; 09: Life
+ macro_11f220 39 ; 0a: Hobbies
+ macro_11f220 69 ; 0b: Actions
+ macro_11f220 39 ; 0c: Time
+ macro_11f220 66 ; 0d: Farewells
+ macro_11f220 36 ; 0e: ThisAndThat
+
+EZChat_SortedWords:
+; Addresses in WRAM bank 3 where EZChat words beginning
+; with the given kana are sorted in memory, and the pre-
+; allocated size for each.
+; These arrays are expanded dynamically to accomodate
+; any Pokemon you've seen that starts with each kana.\
+macro_11f23c: macro
+ dw x - w3_d000, \1
+x = x + 2 * \1
+endm
+x = $d012
+ macro_11f23c $2f ; a
+ macro_11f23c $1e ; i
+ macro_11f23c $11 ; u
+ macro_11f23c $09 ; e
+ macro_11f23c $2e ; o
+ macro_11f23c $24 ; ka_ga
+ macro_11f23c $1b ; ki_gi
+ macro_11f23c $09 ; ku_gu
+ macro_11f23c $07 ; ke_ge
+ macro_11f23c $1c ; ko_go
+ macro_11f23c $12 ; sa_za
+ macro_11f23c $2b ; shi_ji
+ macro_11f23c $10 ; su_zu
+ macro_11f23c $08 ; se_ze
+ macro_11f23c $0c ; so_zo
+ macro_11f23c $2c ; ta_da
+ macro_11f23c $09 ; chi_dhi
+ macro_11f23c $12 ; tsu_du
+ macro_11f23c $1b ; te_de
+ macro_11f23c $1a ; to_do
+ macro_11f23c $1c ; na
+ macro_11f23c $05 ; ni
+ macro_11f23c $02 ; nu
+ macro_11f23c $05 ; ne
+ macro_11f23c $07 ; no
+ macro_11f23c $16 ; ha_ba_pa
+ macro_11f23c $0e ; hi_bi_pi
+ macro_11f23c $0c ; fu_bu_pu
+ macro_11f23c $05 ; he_be_pe
+ macro_11f23c $16 ; ho_bo_po
+ macro_11f23c $19 ; ma
+ macro_11f23c $0e ; mi
+ macro_11f23c $08 ; mu
+ macro_11f23c $07 ; me
+ macro_11f23c $09 ; mo
+ macro_11f23c $0d ; ya
+ macro_11f23c $04 ; yu
+ macro_11f23c $14 ; yo
+ macro_11f23c $0b ; ra
+ macro_11f23c $01 ; ri
+ macro_11f23c $02 ; ru
+ macro_11f23c $02 ; re
+ macro_11f23c $02 ; ro
+ macro_11f23c $15 ; wa
+x = $d000
+ macro_11f23c $09 ; end
+EZChat_SortedWordsEnd:
diff --git a/mobile/get_trainer_class.asm b/mobile/get_trainer_class.asm
new file mode 100644
index 000000000..37fe91c56
--- /dev/null
+++ b/mobile/get_trainer_class.asm
@@ -0,0 +1,46 @@
+GetMobileOTTrainerClass: ; mobile function
+ ld h, b
+ ld l, c
+ call .GetMobileOTTrainerClass
+ ld c, a
+ ret
+
+.GetMobileOTTrainerClass: ; 4e930
+ ld a, [hli]
+ xor [hl]
+ ld c, a
+ jr z, .skip_male_trainers
+ srl c
+ srl c
+.male_trainer_loop
+ srl c
+ ld a, c
+ cp MaleTrainersEnd - MaleTrainers - 1
+ jr nc, .male_trainer_loop
+ inc c
+
+.skip_male_trainers
+ ld a, [de]
+ cp $1
+ ld hl, MaleTrainers
+ jr nz, .finished
+
+ ld hl, FemaleTrainers
+ ld a, c
+ and a
+ jr z, .finished
+
+.female_trainer_loop
+ srl c
+ ld a, c
+ cp FemaleTrainersEnd - FemaleTrainers - 1
+ jr nc, .female_trainer_loop
+ inc c
+
+.finished
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+
+INCLUDE "data/trainers/gendered_trainers.asm"
diff --git a/mobile/mobile_12.asm b/mobile/mobile_12.asm
new file mode 100755
index 000000000..8b21bb6a6
--- /dev/null
+++ b/mobile/mobile_12.asm
@@ -0,0 +1,1845 @@
+InitMobileProfile: ; 4802f (12:402f)
+ xor a
+ set 6, a
+ ld [wd002], a
+ ld hl, wd003
+ set 0, [hl]
+ ld a, c
+ and a
+ call z, InitCrystalData
+ call ClearBGPalettes
+ call Function48d3d
+ ld a, [wd479]
+ bit 1, a
+ jr z, .not_yet_initialized
+ ld a, [wd003]
+ set 0, a
+ set 1, a
+ set 2, a
+ set 3, a
+ ld [wd003], a
+.not_yet_initialized
+ call Function486bf
+ call LoadFontsExtra
+ ld de, MobileUpArrowGFX
+ ld hl, VTiles2 tile $10
+ lb bc, BANK(MobileUpArrowGFX), 1
+ call Request1bpp
+ ld de, MobileDownArrowGFX
+ ld hl, VTiles2 tile $11
+ lb bc, BANK(MobileDownArrowGFX), 1
+ call Request1bpp
+ call Function4a3a7
+ call ClearBGPalettes
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4808a
+ call Function48689
+ jr .asm_480d7
+.asm_4808a
+ ld a, $5
+ ld [MusicFade], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU % $100
+ ld [MusicFadeID], a
+ ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
+ ld [MusicFadeID + 1], a
+ ld c, 20
+ call DelayFrames
+ ld b, $1
+ call GetMysteryGift_MobileAdapterLayout
+ call ClearBGPalettes
+ hlcoord 0, 0
+ ld b, 2
+ ld c, 20
+ call ClearBox
+ hlcoord 0, 1
+ ld a, $c
+ ld [hl], a
+ ld bc, $13
+ add hl, bc
+ ld [hl], a
+ ld de, MobileProfileString
+ hlcoord 1, 1
+ call PlaceString
+ hlcoord 0, 2
+ ld b, $a
+ ld c, $12
+ call Function48cdc
+ hlcoord 2, 4
+ ld de, MobileString_Gender
+ call PlaceString
+.asm_480d7
+ hlcoord 2, 6
+ ld de, MobileString_Age
+ call PlaceString
+ hlcoord 2, 8
+ ld de, MobileString_Address
+ call PlaceString
+ hlcoord 2, 10
+ ld de, MobileString_ZipCode
+ call PlaceString
+ hlcoord 2, 12
+ ld de, MobileString_OK
+ call PlaceString
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_48113
+ ld a, [PlayerGender]
+ ld hl, Strings_484fb
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 11, 4
+ call PlaceString
+.asm_48113
+ hlcoord 11, 6
+ call Function487ec
+ ld a, [wd474]
+ dec a
+ ld hl, Prefectures
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 11, 8
+ call PlaceString
+ hlcoord 11, 10
+ call Function489ea
+ hlcoord 0, 14
+ ld b, $2
+ ld c, $12
+ call TextBox
+ hlcoord 1, 16
+ ld de, MobileString_PersonalInfo
+ call PlaceString
+ call Function48187
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4815f
+
+Function48157: ; 48157 (12:4157)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+asm_4815f: ; 4815f (12:415f)
+ bit A_BUTTON_F, a
+ jp nz, Function4820d
+ ld b, a
+ ld a, [wd002]
+ bit 6, a
+ jr z, .dont_check_b_button
+ ld hl, wd479
+ bit 1, [hl]
+ jr z, .dont_check_b_button
+ bit B_BUTTON_F, b
+ jr nz, .b_button
+.dont_check_b_button
+ jp Function48272
+
+.b_button
+ call ClearBGPalettes
+ call Function48d30
+ pop bc
+ call ClearTileMap
+ ld a, $ff
+ ret
+
+Function48187: ; 48187 (12:4187)
+ ld a, [wd479]
+ bit 1, a
+ jr nz, .asm_481f1
+ ld a, [wd003]
+ ld d, a
+ call Function48725
+ jr c, .asm_481a2
+ lb bc, 1, 4
+ hlcoord 2, 12
+ call ClearBox
+ jr .asm_481ad
+.asm_481a2
+ push de
+ hlcoord 2, 12
+ ld de, MobileString_OK
+ call PlaceString
+ pop de
+.asm_481ad
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .asm_481c1
+ bit 0, d
+ jr nz, .asm_481c1
+ lb bc, 1, 8
+ hlcoord 11, 4
+ call ClearBox
+.asm_481c1
+ bit 1, d
+ jr nz, .asm_481ce
+ lb bc, 1, 8
+ hlcoord 11, 6
+ call ClearBox
+.asm_481ce
+ bit 2, d
+ jr nz, .asm_481db
+ lb bc, 2, 8
+ hlcoord 11, 7
+ call ClearBox
+.asm_481db
+ bit 3, d
+ jr nz, .asm_481f1
+ ld a, [wd479]
+ bit 0, a
+ jr nz, .asm_481f8
+ lb bc, 1, 8
+ hlcoord 11, 10
+ call ClearBox
+ jr .asm_48201
+.asm_481f1
+ ld a, [wd479]
+ bit 0, a
+ jr nz, .asm_48201
+.asm_481f8
+ hlcoord 11, 10
+ ld de, .String_TellLater
+ call PlaceString
+.asm_48201
+ ret
+; 48202 (12:4202)
+
+.String_TellLater: ; 48202
+ db "Tell Later@"
+; 4820d
+
+Function4820d: ; 4820d (12:420d)
+ call PlaceHollowCursor
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ push af
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4821f
+ pop af
+ inc a
+ push af
+.asm_4821f
+ pop af
+ cp $1
+ jr z, asm_4828d
+ cp $2
+ jp z, Function4876f
+ cp $3
+ jp z, Function48304
+ cp $4
+ jp z, Function488d3
+ ld a, $2
+ call MenuClickSound
+ ld a, [wd002]
+ bit 6, a
+ jr z, .asm_4825c
+ jr .asm_4825c
+; 48241 (12:4241)
+
+ hlcoord 1, 15
+ ld b, $2
+ ld c, $12
+ call ClearBox
+ ld de, MobileString_ProfileChanged
+ hlcoord 1, 16
+ call PlaceString
+ call WaitBGMap
+ ld c, 48
+ call DelayFrames
+
+.asm_4825c
+ call ClearBGPalettes
+ call Function48d30
+ pop bc
+ call ClearTileMap
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ ld hl, wd479
+ set 1, [hl]
+ xor a
+ ret
+
+Function48272: ; 48272 (12:4272)
+ jp Function4840c
+; 48275 (12:4275)
+
+MobileString_PersonalInfo: ; 48275
+ db "Personal Info@"
+; 48283
+
+Function48283: ; 48283 (12:4283)
+ lb bc, 2, 18
+ hlcoord 1, 15
+ call ClearBox
+ ret
+
+asm_4828d: ; 4828d (12:428d)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_Gender
+ call PlaceString
+ ld hl, MenuDataHeader_0x484f1
+ call LoadMenuDataHeader
+ call Function4873c
+ hlcoord 11, 2
+ ld b, $4
+ ld c, $7
+ call Function48cdc
+ hlcoord 13, 4
+ ld de, String_484fb
+ call PlaceString
+ hlcoord 13, 6
+ ld de, String_484ff
+ call PlaceString
+ call WaitBGMap
+ ld a, [PlayerGender]
+ inc a
+ ld [wMenuCursorBuffer], a
+ call StaticMenuJoypad
+ call PlayClickSFX
+ call ExitMenu
+ bit 0, a
+ jp z, Function4840c
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ ld hl, Strings_484fb
+ cp $1
+ jr z, .asm_482ed
+.asm_482e1
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_482e1
+ ld a, $1
+ ld [PlayerGender], a
+ jr .asm_482f1
+.asm_482ed
+ xor a
+ ld [PlayerGender], a
+.asm_482f1
+ ld d, h
+ ld e, l
+ hlcoord 11, 4
+ call PlaceString
+ ld a, [wd003]
+ set 0, a
+ ld [wd003], a
+ jp Function4840c
+
+Function48304: ; 48304 (12:4304)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_Address
+ call PlaceString
+ ld hl, MenuDataHeader_0x48504
+ call LoadMenuDataHeader
+ ld hl, MenuDataHeader_0x48513
+ call LoadMenuDataHeader
+ hlcoord 10, 0
+ ld b, $c
+ ld c, $8
+ call Function48cdc
+ ld a, [wMenuCursorBuffer]
+ ld b, a
+ ld a, [wMenuScrollPosition]
+ ld c, a
+ push bc
+ ld a, [wd474]
+ dec a
+ cp $29
+ jr c, .asm_4833f
+ sub $29
+ inc a
+ ld [wMenuCursorBuffer], a
+ ld a, $29
+.asm_4833f
+ ld [wMenuScrollPosition], a
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+.asm_48348
+ call ScrollingMenu
+ ld de, $629
+ call Function48383
+ jr c, .asm_48348
+ ld d, a
+ pop bc
+ ld a, b
+ ld [wMenuCursorBuffer], a
+ ld a, c
+ ld [wMenuScrollPosition], a
+ ld a, d
+ push af
+ call ExitMenu
+ call ExitMenu
+ pop af
+ ld a, [hJoyPressed]
+ bit 0, a
+ jr z, .asm_48377
+ call Function483bb
+ ld a, [wd003]
+ set 2, a
+ ld [wd003], a
+.asm_48377
+ call Function48187
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ jp Function4840c
+
+Function48383: ; 48383 (12:4383)
+ push bc
+ push af
+ bit 5, a
+ jr nz, .asm_48390
+ bit 4, a
+ jr nz, .asm_4839f
+ and a
+ jr .asm_483b7
+.asm_48390
+ ld a, [wMenuScrollPosition]
+ sub d
+ ld [wMenuScrollPosition], a
+ jr nc, .asm_483af
+ xor a
+ ld [wMenuScrollPosition], a
+ jr .asm_483af
+.asm_4839f
+ ld a, [wMenuScrollPosition]
+ add d
+ ld [wMenuScrollPosition], a
+ cp e
+ jr c, .asm_483af
+ ld a, e
+ ld [wMenuScrollPosition], a
+ jr .asm_483af
+.asm_483af
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ ld [wMenuCursorBuffer], a
+ scf
+.asm_483b7
+ pop bc
+ ld a, b
+ pop bc
+ ret
+
+Function483bb: ; 483bb (12:43bb)
+ ld hl, wScrollingMenuCursorPosition
+ ld a, [hl]
+ inc a
+ ld [wd474], a
+ dec a
+ ld b, a
+ ld hl, Prefectures
+.asm_483c8
+ and a
+ jr z, .asm_483d5
+.asm_483cb
+ ld a, [hli]
+ cp "@"
+ jr nz, .asm_483cb
+ ld a, b
+ dec a
+ ld b, a
+ jr .asm_483c8
+.asm_483d5
+ ld d, h
+ ld e, l
+ ld b, $2
+ ld c, $8
+ hlcoord 11, 7
+ call ClearBox
+ hlcoord 11, 8
+ call PlaceString
+ ret
+; 483e8 (12:43e8)
+
+Function483e8: ; 483e8
+ push de
+ ld hl, Prefectures
+ ld a, [MenuSelection]
+ cp $ff
+ jr nz, .asm_483f8
+ ld hl, Wakayama ; last string
+ jr .asm_48405
+
+.asm_483f8
+ ld d, a
+ and a
+ jr z, .asm_48405
+.asm_483fc
+ ld a, [hli]
+ cp "@"
+ jr nz, .asm_483fc
+ ld a, d
+ dec a
+ jr .asm_483f8
+
+.asm_48405
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ ret
+; 4840c
+
+Function4840c: ; 4840c (12:440c)
+ call Function48187
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileString_PersonalInfo
+ call PlaceString
+ call Function486bf
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .narrower_box
+ ld b, 9
+ ld c, 1
+ hlcoord 1, 4
+ call ClearBox
+ jp Function48157
+
+.narrower_box
+ ld b, 7
+ ld c, 1
+ hlcoord 1, 6
+ call ClearBox
+ jp Function48157
+
+Mobile12_Bin2Dec: ; 48444 (12:4444)
+ push bc
+ push af
+ push de
+ push hl
+ ld hl, .DigitStrings
+.loop
+ and a
+ jr z, .got_string
+ inc hl
+ inc hl
+ dec a
+ jr .loop
+.got_string
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ pop de
+ pop af
+ pop bc
+ ret
+; 4845d (12:445d)
+
+.DigitStrings: ; 4845d
+; 4845d
+ db "0@"
+ db "1@"
+ db "2@"
+ db "3@"
+ db "4@"
+ db "5@"
+ db "6@"
+ db "7@"
+ db "8@"
+ db "9@"
+; 48471
+
+MobileProfileString: db " Mobile Profile@"
+MobileString_Gender: db "Gender@"
+MobileString_Age: db "Age@"
+MobileString_Address: db "Address@"
+MobileString_ZipCode: db "Zip Code@"
+MobileString_OK: db "OK@"
+MobileString_ProfileChanged: db "Profile Changed@"
+MobileDesc_Gender: db "Boy or girl?@"
+MobileDesc_Age: db "How old are you?@"
+MobileDesc_Address: db "Where do you live?@"
+MobileDesc_ZipCode: db "Your zip code?@"
+; 484f1
+
+MenuDataHeader_0x484f1: ; 0x484f1
+ db $40 ; flags
+ db 02, 11 ; start coords
+ db 07, 19 ; end coords
+ dw MenuData2_0x484f9
+ db 1 ; default option
+; 0x484f9
+
+MenuData2_0x484f9: ; 0x484f9
+ db $a0 ; flags
+ db 2 ; items
+Strings_484fb:
+String_484fb: db "Boy@"
+String_484ff: db "Girl@"
+; 0x48504
+
+MenuDataHeader_0x48504: ; 0x48504
+ db $40 ; flags
+ db 00, 10 ; start coords
+ db 17, 19 ; end coords
+
+MenuDataHeader_0x48509: ; 0x48509
+ db $40 ; flags
+ db 05, 10 ; start coords
+ db 07, 19 ; end coords
+
+MenuDataHeader_0x4850e: ; 0x4850e
+ db $40 ; flags
+ db 09, 10 ; start coords
+ db 11, 19 ; end coords
+
+MenuDataHeader_0x48513: ; 0x48513
+ db $40 ; flags
+ db 01, 11 ; start coords
+ db 12, 18 ; end coords
+ dw MenuData2_0x4851b
+ db 1 ; default option
+; 0x4851b
+
+MenuData2_0x4851b: ; 0x4851b
+ db $1d ; flags
+ db 6 ; items
+
+Unknown_4851d: ; 4851d
+ db $00, $01, $12, $2b, $45, $12, $e8, $43, $00, $00, $00, $00, $00, $00, $2e, $00, $01, $02, $03, $04
+ db $05, $06, $07, $08, $09, $0a, $0b, $0c, $0d, $0e, $0f, $10, $11, $12, $13, $14, $15, $16, $17, $18
+ db $19, $1a, $1b, $1c, $1d, $1e, $1f, $20, $21, $22, $23, $24, $25, $26, $27, $28, $29, $2a, $2b, $2c
+ db $2d, $ff
+
+Prefectures:
+Aichi: db "あいちけん@" ; Aichi
+Aomori: db "あおもりけん@" ; Aomori
+Akita: db "あきたけん@" ; Akita
+Ishikawa: db "いしかわけん@" ; Ishikawa
+Ibaraki: db "いばらきけん@" ; Ibaraki
+Iwate: db "いわてけん@" ; Iwate
+Ehime: db "えひめけん@" ; Ehime
+Oita: db "おおいたけん@" ; Oita
+Osakafu: db "おおさかふ@" ; Osakafu
+Okayama: db "おかやまけん@" ; Okayama
+Okinawa: db "おきなわけん@" ; Okinawa
+Kagawa: db "かがわけん@" ; Kagawa
+Kagoshima: db "かごしまけん@" ; Kagoshima
+Kanagawa: db "かながわけん@" ; Kanagawa
+Gifu: db "ぎふけん@" ; Gifu
+Kyotofu: db "きょうとふ@" ; Kyotofu
+Kumamoto: db "くまもとけん@" ; Kumamoto
+Gunma: db "ぐんまけん@" ; Gunma
+Kochi: db "こうちけん@" ; Kochi
+Saitama: db "さいたまけん@" ; Saitama
+Saga: db "さがけん@" ; Saga
+Shiga: db "しがけん@" ; Shiga
+Shizuoka: db "しずおかけん@" ; Shizuoka
+Shimane: db "しまねけん@" ; Shimane
+Chiba: db "ちばけん@" ; Chiba
+Tokyo: db "とうきょうと@" ; Tokyo
+Tokushima: db "とくしまけん@" ; Tokushima
+Tochigi: db "とちぎけん@" ; Tochigi
+Tottori: db "とっとりけん@" ; Tottori
+Toyama: db "とやまけん@" ; Toyama
+Nagasaki: db "ながさきけん@" ; Nagasaki
+Nagano: db "ながのけん@" ; Nagano
+Naraken: db "ならけん@" ; Naraken
+Niigata: db "にいがたけん@" ; Niigata
+Hyogo: db "ひょうごけん@" ; Hyogo
+Hiroshima: db "ひろしまけん@" ; Hiroshima
+Fukui: db "ふくいけん@" ; Fukui
+Fukuoka: db "ふくおかけん@" ; Fukuoka
+Fukushima: db "ふくしまけん@" ; Fukushima
+Hokkaido: db "ほっかいどう@" ; Hokkaido
+Mie: db "みえけん@" ; Mie
+Miyagi: db "みやぎけん@" ; Miyagi
+Miyazaki: db "みやざきけん@" ; Miyazaki
+Yamagata: db "やまがたけん@" ; Yamagata
+Yamaguchi: db "やまぐちけん@" ; Yamaguchi
+Yamanashi: db "やまなしけん@" ; Yamanashi
+Wakayama: db "わかやまけん@" ; Wakayama
+; 48689
+
+Function48689: ; 48689 (12:4689)
+ ld c, 7
+ call DelayFrames
+ ld b, $1
+ call GetMysteryGift_MobileAdapterLayout
+ call ClearBGPalettes
+ hlcoord 0, 0
+ ld b, 4
+ ld c, SCREEN_WIDTH
+ call ClearBox
+ hlcoord 0, 2
+ ld a, $c
+ ld [hl], a
+ ld bc, SCREEN_WIDTH - 1
+ add hl, bc
+ ld [hl], a
+ ld de, MobileProfileString
+ hlcoord 1, 2
+ call PlaceString
+ hlcoord 0, 4
+ ld b, $8
+ ld c, $12
+ call Function48cdc
+ ret
+
+Function486bf: ; 486bf (12:46bf)
+ ld hl, w2DMenuCursorInitY
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .start_at_6
+ ld a, 4
+ ld [hli], a
+ jr .got_init_y
+
+.start_at_6
+ ld a, 6
+ ld [hli], a
+.got_init_y
+ ld a, 1
+ ld [hli], a ; init x
+ ld a, [wd002]
+ bit 6, a
+ jr nz, .check_wd479
+ call Function48725
+ ld a, 4
+ jr nc, .got_num_rows_1
+ ld a, 5
+.got_num_rows_1
+ ld [hli], a
+ jr .got_num_rows_2
+
+.check_wd479
+ ld a, [wd479]
+ bit 1, a
+ jr nz, .four_rows
+ call Function48725
+ jr c, .four_rows
+ ld a, 3
+ ld [hli], a
+ jr .got_num_rows_2
+
+.four_rows
+ ld a, 4
+ ld [hli], a
+.got_num_rows_2
+ ld a, 1
+ ld [hli], a ; num cols
+ ld [hl], $0 ; flags 1
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a ; flags 2
+ ld a, $20
+ ld [hli], a ; cursor offsets
+ ld a, A_BUTTON
+ add D_UP
+ add D_DOWN
+ push af
+ ld a, [wd002]
+ bit 6, a
+ jr z, .got_joypad_mask
+ pop af
+ add B_BUTTON
+ push af
+.got_joypad_mask
+ pop af
+ ld [hli], a
+ ld a, $1
+ ld [hli], a ; cursor y
+ ld [hli], a ; cursor x
+ xor a
+ ld [hli], a ; off char
+ ld [hli], a ; cursor tile
+ ld [hli], a ; cursor tile + 1
+ ret
+
+Function48725: ; 48725 (12:4725)
+; ld a, [wd003]
+; and $f
+; cp $f
+; jr nz, .clear_carry
+; scf
+; ret
+; .clear_carry
+; and a
+; ret
+
+ ld a, [wd003]
+ bit 0, a
+ jr z, .clear_carry
+ bit 1, a
+ jr z, .clear_carry
+ bit 2, a
+ jr z, .clear_carry
+ bit 3, a
+ jr z, .clear_carry
+ scf
+ ret
+
+.clear_carry
+ and a
+ ret
+
+Function4873c: ; 4873c (12:473c)
+ ld hl, w2DMenuCursorInitY
+ ld a, 4
+ ld [hli], a
+ ld a, 12
+ ld [hli], a ; init x
+ ld a, 2
+ ld [hli], a ; num rows
+ ld a, 1
+ ld [hli], a ; num cols
+ ld [hl], $0 ; flags 1
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a ; flags 2
+ ln a, 2, 0
+ ld [hli], a ; cursor offsets
+ ld a, A_BUTTON
+ add B_BUTTON
+ ld [hli], a ; joypad filter
+ ; ld a, [PlayerGender]
+ ; xor 1
+ ; inc a
+ ld a, [PlayerGender]
+ and a
+ jr z, .male
+ ld a, 2
+ jr .okay_gender
+
+.male
+ ld a, 1
+.okay_gender
+ ld [hli], a ; cursor y
+ ld a, $1
+ ld [hli], a ; cursor x
+ xor a
+ ld [hli], a ; off char
+ ld [hli], a ; cursor tile
+ ld [hli], a ; cursor tile + 1
+ ret
+
+Function4876f: ; 4876f (12:476f)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_Age
+ call PlaceString
+ ld hl, MenuDataHeader_0x48509
+ call LoadMenuDataHeader
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ call WaitBGMap
+ ld a, [wd473]
+ and a
+ jr z, .asm_487ab
+ cp $64
+ jr z, .asm_487b2
+ hlcoord 12, 5
+ ld [hl], $10
+ hlcoord 12, 7
+ ld [hl], $11
+ jr .asm_487b7
+.asm_487ab
+ hlcoord 12, 5
+ ld [hl], $10
+ jr .asm_487b7
+.asm_487b2
+ hlcoord 12, 7
+ ld [hl], $11
+.asm_487b7
+ hlcoord 11, 6
+ call Function487ec
+ ld c, 10
+ call DelayFrames
+ ld a, [wd473]
+ push af
+.asm_487c6
+ call JoyTextDelay
+ call Function4880e
+ jr nc, .asm_487c6
+ ld a, $1
+ call MenuClickSound
+ pop bc
+ jr nz, .asm_487da
+ ld a, b
+ ld [wd473], a
+.asm_487da
+ ld a, [wd473]
+ call ExitMenu
+ hlcoord 11, 6
+ call Function487ec
+ pop af
+ ld [hInMenu], a
+ jp Function4840c
+
+Function487ec: ; 487ec (12:47ec)
+ push hl
+ ld de, wd473
+ call Function487ff
+ pop hl
+rept 4
+ inc hl
+endr
+ ld de, String_4880d
+ call PlaceString
+ ret
+
+Function487ff: ; 487ff (12:47ff)
+ push hl
+ ld a, " "
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ ld b, PRINTNUM_LEADINGZEROS | 1
+ ld c, 3
+ call PrintNum
+ ret
+; 4880d (12:480d)
+
+String_4880d: ; 4880d
+ db "@"
+; 4880e
+
+Function4880e: ; 4880e (12:480e)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jp nz, Function488b9
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jp nz, Function488b4
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_48843
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_48838
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_4884f
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_4885f
+ call DelayFrame
+ and a
+ ret
+.asm_48838
+ ld hl, wd473
+ ld a, [hl]
+ and a
+ jr z, .asm_48840
+ dec a
+.asm_48840
+ ld [hl], a
+ jr .asm_4886f
+.asm_48843
+ ld hl, wd473
+ ld a, [hl]
+ cp $64
+ jr nc, .asm_4884c
+ inc a
+.asm_4884c
+ ld [hl], a
+ jr .asm_4886f
+.asm_4884f
+ ld a, [wd473]
+ cp $5b
+ jr c, .asm_48858
+ ld a, $5a
+.asm_48858
+ add $a
+ ld [wd473], a
+ jr .asm_4886f
+.asm_4885f
+ ld a, [wd473]
+ cp $a
+ jr nc, .asm_48868
+ ld a, $a
+.asm_48868
+ sub $a
+ ld [wd473], a
+ jr .asm_4886f
+.asm_4886f
+ ld a, [wd473]
+ and a
+ jr z, .asm_48887
+ cp $64
+ jr z, .asm_48898
+ jr z, .asm_488a7
+ hlcoord 12, 5
+ ld [hl], $10
+ hlcoord 12, 7
+ ld [hl], $11
+ jr .asm_488a7
+.asm_48887
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 5
+ ld [hl], $10
+ jr .asm_488a7
+.asm_48898
+ hlcoord 10, 5
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 7
+ ld [hl], $11
+.asm_488a7
+ hlcoord 11, 6
+ call Function487ec
+ call WaitBGMap
+ ld a, $1
+ and a
+ ret
+
+Function488b4: ; 488b4 (12:48b4)
+ ld a, $0
+ and a
+ scf
+ ret
+
+Function488b9: ; 488b9 (12:48b9)
+ ld a, [wd003]
+ set 1, a
+ ld [wd003], a
+ scf
+ ret
+; 488c3 (12:48c3)
+
+MobileUpArrowGFX: ; 488c3
+INCBIN "gfx/mobile/up_arrow.2bpp"
+
+MobileDownArrowGFX: ; 488cb
+INCBIN "gfx/mobile/down_arrow.2bpp"
+
+Function488d3: ; 488d3 (12:48d3)
+ call Function48283
+ hlcoord 1, 16
+ ld de, MobileDesc_ZipCode
+ call PlaceString
+ call Function48a3a
+ jp c, Function4840c
+ ld hl, MenuDataHeader_0x4850e
+ call LoadMenuDataHeader
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ ld a, [wd475]
+ and $f
+ ld d, $0
+ hlcoord 11, 10
+ call Function489ea
+ call WaitBGMap
+ ld a, [wd475]
+ ld b, a
+ ld a, [wd476]
+ ld c, a
+ ld a, [wd477]
+ ld d, a
+ ld a, [wd478]
+ ld e, a
+ push de
+ push bc
+ ld d, $0
+ ld b, $0
+
+asm_48922: ; 48922 (12:4922)
+ push bc
+ call JoyTextDelay
+ ld a, [hJoyDown]
+ and a
+ jp z, Function4896e
+ bit 0, a
+ jp nz, Function4896e
+ bit 1, a
+ jp nz, Function4896e
+ ld a, [wd002]
+ and %11001111
+ res 7, a
+ ld [wd002], a
+ pop bc
+ inc b
+ ld a, b
+ cp $5
+ push bc
+ jr c, .asm_4894c
+ pop bc
+ ld b, $4
+ push bc
+.asm_4894c
+ pop bc
+ push bc
+ ld a, b
+ cp $4
+ jr nz, asm_48972
+ ld c, 10
+ call DelayFrames
+ jr asm_48972
+; 4895a (12:495a)
+
+Function4895a: ; 4895a
+ ld a, [hJoyPressed]
+ and a
+ jr z, .asm_48965
+ pop bc
+ ld b, $1
+ push bc
+ jr asm_48972
+
+.asm_48965
+ ld a, [hJoyLast]
+ and a
+ jr z, asm_48972
+
+ pop bc
+ ld b, $1
+ push bc
+
+Function4896e: ; 4896e (12:496e)
+ pop bc
+ ld b, $0
+ push bc
+
+asm_48972: ; 48972 (12:4972)
+ call Function48ab5
+ push af
+ cp $f0
+ jr z, .asm_48994
+ cp $f
+ jr nz, .asm_48988
+ ld a, [wd002]
+ set 7, a
+ and $cf
+ ld [wd002], a
+.asm_48988
+ hlcoord 11, 10
+ ld b, $0
+ ld c, d
+ add hl, bc
+ ld b, $3
+ call Function48c11
+.asm_48994
+ call WaitBGMap
+ pop af
+ pop bc
+ jr nc, asm_48922
+ jr nz, .asm_489b1
+ pop bc
+ ld a, b
+ ld [wd475], a
+ ld a, c
+ ld [wd476], a
+ pop bc
+ ld a, b
+ ld [wd477], a
+ ld a, c
+ ld [wd478], a
+ jr .asm_489c5
+.asm_489b1
+ push af
+ ld a, [wd479]
+ set 0, a
+ ld [wd479], a
+ ld a, [wd003]
+ set 3, a
+ ld [wd003], a
+ pop af
+ pop bc
+ pop bc
+.asm_489c5
+ push af
+ push bc
+ push de
+ push hl
+ ld a, $1
+ call MenuClickSound
+ pop hl
+ pop de
+ pop bc
+ pop af
+ call ExitMenu
+ hlcoord 11, 10
+ call Function489ea
+ hlcoord 11, 9
+ lb bc, 1, 8
+ call ClearBox
+ pop af
+ ld [hInMenu], a
+ jp Function4840c
+
+Function489ea: ; 489ea (12:49ea)
+ push de
+ ld a, [wd475]
+ and $f
+ call Mobile12_Bin2Dec
+ ld a, [wd476]
+ and $f0
+ swap a
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd476]
+ and $f
+ inc hl
+ call Mobile12_Bin2Dec
+ inc hl
+ ld de, String_48a38
+ call PlaceString
+ ld a, [wd477]
+ and $f0
+ swap a
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd477]
+ and $f
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd478]
+ and $f0
+ swap a
+ inc hl
+ call Mobile12_Bin2Dec
+ ld a, [wd478]
+ and $f
+ inc hl
+ call Mobile12_Bin2Dec
+ pop de
+ ret
+; 48a38 (12:4a38)
+
+String_48a38: ; 48a38
+ db "-@"
+; 48a3a
+
+Function48a3a: ; 48a3a (12:4a3a)
+ ld hl, MenuDataHeader_0x48a9c
+ call LoadMenuDataHeader
+ call Function4873c
+ ld a, $a
+ ld [w2DMenuCursorInitY], a
+ ld a, $b
+ ld [w2DMenuCursorInitX], a
+ ld a, $1
+ ld [wMenuCursorY], a
+ hlcoord 10, 8
+ ld b, $4
+ ld c, $8
+ call Function48cdc
+ hlcoord 12, 10
+ ld de, String_48aa1
+ call PlaceString
+ call StaticMenuJoypad
+ push af
+ call PlayClickSFX
+ call ExitMenu
+ pop af
+ bit 1, a
+ jp nz, Function48a9a
+ ld a, [wMenuCursorY]
+ cp $1
+ jr z, .asm_48a98
+ ld a, [wd003]
+ set 3, a
+ ld [wd003], a
+ ld a, [wd479]
+ res 0, a
+ ld [wd479], a
+ xor a
+ ld bc, $4
+ ld hl, wd475
+ call ByteFill
+ jr Function48a9a
+.asm_48a98
+ and a
+ ret
+
+Function48a9a: ; 48a9a (12:4a9a)
+ scf
+ ret
+; 48a9c (12:4a9c)
+
+MenuDataHeader_0x48a9c: ; 0x48a9c
+ db $40 ; flags
+ db 08, 10 ; start coords
+ db 13, 19 ; end coord
+
+String_48aa1: ; 48aa1
+ db "Tell Now"
+ next "Tell Later@"
+; 48ab5
+
+
+Function48ab5: ; 48ab5 (12:4ab5)
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jp nz, Function48c0f
+ ld a, [hJoyPressed]
+ and B_BUTTON
+ jp nz, Function48c0d
+ ld a, d
+ and a
+ jr z, .asm_48adf
+ cp $1
+ jr z, .asm_48ae7
+ cp $2
+ jr z, .asm_48af1
+ cp $3
+ jr z, .asm_48af9
+ cp $4
+ jr z, .asm_48b03
+ cp $5
+ jr z, .asm_48b0b
+ cp $6
+ jr .asm_48b15
+.asm_48adf
+ ld hl, wd475
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48ae7
+ ld hl, wd476
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48af1
+ ld hl, wd476
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48af9
+ ld hl, wd477
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48b03
+ ld hl, wd477
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48b0b
+ ld hl, wd478
+ ld a, [hl]
+ swap a
+ or $f0
+ jr .asm_48b1d
+.asm_48b15
+ ld hl, wd478
+ ld a, [hl]
+ and $f
+ jr .asm_48b1d
+.asm_48b1d
+ push hl
+ push af
+ ld e, $0
+ hlcoord 11, 10
+ ld a, d
+.asm_48b25
+ and a
+ jr z, .asm_48b2c
+ inc e
+ dec a
+ jr .asm_48b25
+.asm_48b2c
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_48b8d
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_48b55
+ ld a, [hl]
+ and D_LEFT
+ jp nz, Function48bd7
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_48b9d
+ hlcoord 11, 10
+ call Function489ea
+ ld a, [wd002]
+ bit 7, a
+ jr nz, .asm_48b51
+.asm_48b51
+ pop bc
+ pop bc
+ and a
+ ret
+.asm_48b55
+ pop af
+ ld b, a
+ and $f
+ and a
+ ld a, b
+ jr nz, .asm_48b61
+ and $f0
+ add $a
+.asm_48b61
+ dec a
+.asm_48b62
+ push de
+ push af
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop af
+ pop de
+ hlcoord 11, 10
+ ld b, a
+ ld a, d
+ cp $3
+ jr c, .asm_48b7a
+ inc hl
+.asm_48b7a
+ ld a, b
+ pop hl
+ bit 7, a
+ jr z, .asm_48b85
+ call Function48c4d
+ jr .asm_48b88
+.asm_48b85
+ call Function48c5a
+.asm_48b88
+ ld a, $f0
+ jp Function48c00
+.asm_48b8d
+ pop af
+ ld b, a
+ and $f
+ cp $9
+ ld a, b
+ jr c, .asm_48b9a
+ and $f0
+ add $ff
+.asm_48b9a
+ inc a
+ jr .asm_48b62
+.asm_48b9d
+ push de
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop de
+ ld a, d
+ cp $6
+ jr nc, .asm_48baf
+ inc d
+.asm_48baf
+ pop af
+ pop hl
+ ld b, a
+ ld a, d
+ cp $6
+ ld a, b
+ jr z, .asm_48bc4
+ bit 7, a
+ jr nz, .asm_48bc4
+ inc hl
+ ld a, [hl]
+ swap a
+ and $f
+ jr asm_48bc7
+.asm_48bc4
+ ld a, [hl]
+ and $f
+
+asm_48bc7: ; 48bc7 (12:4bc7)
+ hlcoord 11, 10
+ push af
+ ld a, d
+ cp $3
+ pop bc
+ ld a, b
+ jr c, .asm_48bd3
+ inc hl
+.asm_48bd3
+ ld a, $f
+ jr Function48c00
+
+Function48bd7: ; 48bd7 (12:4bd7)
+ push de
+ hlcoord 10, 9
+ ld b, $1
+ ld c, $8
+ call Function48cdc
+ pop de
+ ld a, d
+ and a
+ pop af
+ pop hl
+ ld b, a
+ ld a, d
+ and a
+ ld a, b
+ jr z, .asm_48bf3
+ bit 7, a
+ jr z, .asm_48bf8
+ dec d
+ dec hl
+.asm_48bf3
+ ld a, [hl]
+ and $f
+ jr asm_48bc7
+.asm_48bf8
+ dec d
+ ld a, [hl]
+ swap a
+ and $f
+ jr asm_48bc7
+
+Function48c00: ; 48c00 (12:4c00)
+ push af
+ hlcoord 11, 10
+ call Function489ea
+ ld a, $1
+ and a
+ pop bc
+ ld a, b
+ ret
+
+Function48c0d: ; 48c0d (12:4c0d)
+ xor a
+ and a
+
+Function48c0f: ; 48c0f (12:4c0f)
+ scf
+ ret
+
+Function48c11: ; 48c11 (12:4c11)
+ ld a, [wd002]
+ bit 7, a
+ jr z, .asm_48c20
+ ld a, d
+ cp $3
+ jr c, .asm_48c1e
+ inc hl
+.asm_48c1e
+ ld [hl], $7f
+.asm_48c20
+ ld a, [wd002]
+ swap a
+ and $3
+ inc a
+ cp b
+ jr nz, .asm_48c40
+ ld a, [wd002]
+ bit 7, a
+ jr z, .asm_48c3a
+ res 7, a
+ ld [wd002], a
+ xor a
+ jr .asm_48c40
+.asm_48c3a
+ set 7, a
+ ld [wd002], a
+ xor a
+.asm_48c40
+ swap a
+ ld b, a
+ ld a, [wd002]
+ and $cf
+ or b
+ ld [wd002], a
+ ret
+
+Function48c4d: ; 48c4d (12:4c4d)
+ swap a
+ and $f0
+ push af
+ ld a, [hl]
+ and $f
+ ld [hl], a
+ pop af
+ or [hl]
+ ld [hl], a
+ ret
+
+Function48c5a: ; 48c5a (12:4c5a)
+ push af
+ ld a, [hl]
+ and $f0
+ ld [hl], a
+ pop af
+ or [hl]
+ ld [hl], a
+ ret
+
+Function48c63: ; 48c63
+ ld a, "@"
+ ld [de], a
+ ld a, c
+ cp $30
+ jr nc, .asm_48c8c
+ and a
+ jr z, .asm_48c8c
+ dec c
+ push de
+ ld h, d
+ ld l, e
+ ld a, "@"
+ ld b, 7
+.asm_48c76
+ ld [hli], a
+ dec b
+ jr nz, .asm_48c76
+ ld hl, Prefectures
+ ld a, c
+ call GetNthString
+.asm_48c81
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ cp "@"
+ jr nz, .asm_48c81
+ and a
+ pop de
+ ret
+
+.asm_48c8c
+ scf
+ ret
+; 48c8e
+
+Function48c8e: ; 48c8e
+; unreferenced
+ ld hl, $d02a
+ ld d, h
+ ld e, l
+ callba Function48c63
+ hlcoord 10, 7
+ call PlaceString
+ call WaitBGMap
+ ret
+; 48ca3
+
+Function48ca3: ; 48ca3
+ push af
+ push bc
+ push de
+ push hl
+ ld b, 0
+ ld c, 0
+ ld d, 0
+.asm_48cad
+ cp 100
+ jr c, .asm_48cb6
+ sub 100
+ inc b
+ jr .asm_48cad
+
+.asm_48cb6
+ cp 10
+ jr c, .asm_48cbf
+ sub 10
+ inc c
+ jr .asm_48cb6
+
+.asm_48cbf
+ cp 1
+ jr c, .asm_48cc7
+ dec a
+ inc d
+ jr .asm_48cbf
+
+.asm_48cc7
+ ld a, b
+ call Mobile12_Bin2Dec
+ inc hl
+ ld a, c
+ call Mobile12_Bin2Dec
+ inc hl
+ ld a, d
+ call Mobile12_Bin2Dec
+ pop hl
+ pop de
+ pop bc
+ pop af
+ ret
+; 48cda
+
+Function48cda: ; 48cda (12:4cda)
+ ld h, d
+ ld l, e
+
+Function48cdc: ; 48cdc (12:4cdc)
+ push bc
+ push hl
+ call Function48cfd
+ pop hl
+ pop bc
+ ld de, AttrMap - TileMap
+ add hl, de
+ inc b
+ inc b
+ inc c
+ inc c
+ ld a, $0
+.asm_48ced
+ push bc
+ push hl
+.asm_48cef
+ ld [hli], a
+ dec c
+ jr nz, .asm_48cef
+ pop hl
+ ld de, $14
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_48ced
+ ret
+
+Function48cfd: ; 48cfd (12:4cfd)
+ push hl
+ ld a, $4
+ ld [hli], a
+ inc a
+ call Function48d2a
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $14
+ add hl, de
+.asm_48d0c
+ push hl
+ ld a, $7
+ ld [hli], a
+ ld a, $7f
+ call Function48d2a
+ ld [hl], $8
+ pop hl
+ ld de, $14
+ add hl, de
+ dec b
+ jr nz, .asm_48d0c
+ ld a, $9
+ ld [hli], a
+ ld a, $a
+ call Function48d2a
+ ld [hl], $b
+ ret
+
+Function48d2a: ; 48d2a (12:4d2a)
+ ld d, c
+.asm_48d2b
+ ld [hli], a
+ dec d
+ jr nz, .asm_48d2b
+ ret
+
+Function48d30: ; 48d30 (12:4d30)
+ ld hl, wd475
+ call Function48d4a
+ ld hl, wd477
+ call Function48d4a
+ ret
+
+Function48d3d: ; 48d3d (12:4d3d)
+ ld hl, wd475
+ call Function48d94
+ ld hl, wd477
+ call Function48d94
+ ret
+
+Function48d4a: ; 48d4a (12:4d4a)
+ inc hl
+ ld a, [hl]
+ ld b, a
+ and $f
+ ld c, a
+ srl b
+ srl b
+ srl b
+ srl b
+ push bc
+ ld c, 10
+ ld a, b
+ call SimpleMultiply
+ pop bc
+ add c
+ ld [hld], a
+ xor a
+ ld [hMultiplicand + 0], a
+ ld [hMultiplicand + 1], a
+ ld a, [hl]
+ srl a
+ srl a
+ srl a
+ srl a
+ ld c, 10
+ call SimpleMultiply
+ ld b, a
+ ld a, [hli]
+ and $f
+ add b
+ ld [hMultiplicand + 2], a
+ ld a, 100
+ ld [hMultiplier], a
+ call Multiply
+ ld a, [hProduct + 2]
+ ld b, a
+ ld a, [hProduct + 3]
+ ld c, a
+ ld e, [hl]
+ add e
+ ld c, a
+ ld a, b
+ adc $0
+ ld b, a
+ ld a, c
+ ld [hld], a
+ ld [hl], b
+ ret
+
+Function48d94: ; 48d94 (12:4d94)
+ xor a
+ ld [hDividend + 0], a
+ ld [hDividend + 1], a
+ ld a, [hli]
+ ld [hDividend + 0], a
+ ld a, [hl]
+ ld [hDividend + 1], a
+ ld a, 100
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+ ld a, [hRemainder]
+ ld c, 10
+ call SimpleDivide
+ sla b
+ sla b
+ sla b
+ sla b
+ or b
+ ld [hld], a
+ ld a, [hQuotient + 2]
+ ld c, 10
+ call SimpleDivide
+ sla b
+ sla b
+ sla b
+ sla b
+ or b
+ ld [hl], a
+ ret
diff --git a/misc/mobile_12_2.asm b/mobile/mobile_12_2.asm
index 37179c122..37179c122 100755
--- a/misc/mobile_12_2.asm
+++ b/mobile/mobile_12_2.asm
diff --git a/mobile/mobile_22.asm b/mobile/mobile_22.asm
new file mode 100644
index 000000000..59a858bcd
--- /dev/null
+++ b/mobile/mobile_22.asm
@@ -0,0 +1,4450 @@
+String_89116:
+ db "-----@"
+
+String_8911c: ; 8911c
+ db "でんわばんごうが ただしく" ; Phone number is not
+ next "はいって いません!@" ; entered correctly!
+; 89135
+
+String_89135: ; 89135
+ db "データが かわって いますが" ; The data has changed.
+ next "かきかえないで やめますか?@" ; Quit anyway?
+; 89153
+
+String_89153: ; 89153
+ db "メッセージは ありません@" ; No message
+; 89160
+
+OpenSRAMBank4: ; 89160
+ push af
+ ld a, $4
+ call GetSRAMBank
+ pop af
+ ret
+; 89168
+
+
+Function89168: ; 89168 (22:5168)
+ ld hl, GameTimerPause
+ set 7, [hl]
+ ret
+
+Function8916e: ; 8916e (22:516e)
+ ld hl, GameTimerPause
+ res 7, [hl]
+ ret
+
+Function89174: ; 89174 (22:5174)
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ ret
+
+Function8917a: ; 8917a (22:517a)
+ ld hl, wd002
+ ld bc, $32
+ xor a
+ call ByteFill
+ ret
+
+Function89185: ; 89185 (22:5185)
+; strcmp(hl, de, c)
+; Compares c bytes starting at de and hl and incrementing together until a mismatch is found.
+; Preserves hl and de.
+ push de
+ push hl
+.loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .done
+ inc hl
+ dec c
+ jr nz, .loop
+.done
+ pop hl
+ pop de
+ ret
+
+Function89193: ; 89193
+; copy(hl, de, 4)
+; Copies c bytes from hl to de.
+; Preserves hl and de.
+ push de
+ push hl
+.loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop
+ pop hl
+ pop de
+ ret
+; 8919e
+
+
+Function8919e: ; 8919e (22:519e)
+; Searches for the c'th string starting at de. Returns the pointer in de.
+ ld a, c
+ and a
+ ret z
+.loop
+ ld a, [de]
+ inc de
+ cp "@"
+ jr nz, .loop
+ dec c
+ jr nz, .loop
+ ret
+
+Function891ab: ; 891ab
+ call Mobile22_SetBGMapMode1
+ callba ReloadMapPart
+ call Mobile22_SetBGMapMode0
+ ret
+; 891b8
+
+Function891b8: ; 891b8
+ call Mobile22_SetBGMapMode0
+ hlcoord 0, 0
+ ld a, " "
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call DelayFrame
+ ret
+; 891ca
+
+
+Function891ca: ; 891ca (22:51ca)
+ push bc
+ call Function891b8
+ call WaitBGMap
+ pop bc
+ ret
+
+Function891d3: ; 891d3 (22:51d3)
+ push bc
+ call Function891ca
+ ld c, $10
+ call DelayFrames
+ pop bc
+ ret
+
+Function891de: ; 891de
+ call Mobile22_SetBGMapMode0
+ call ClearPalettes
+ hlcoord 0, 0, AttrMap
+ ld a, $7
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ hlcoord 0, 0
+ ld a, " "
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call Function891ab
+ ret
+; 891fe
+
+Function891fe: ; 891fe
+ push bc
+ call Function891de
+ ld c, $10
+ call DelayFrames
+ pop bc
+ ret
+; 89209
+
+Function89209: ; 89209
+ ld a, 1
+ ld [wSpriteUpdatesEnabled], a
+ ret
+; 8920f
+
+Function8920f: ; 8920f
+ ld a, 0
+ ld [wSpriteUpdatesEnabled], a
+ ret
+; 89215
+
+Function89215: ; 89215
+ push hl
+ push bc
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ ld [hl], a
+ pop bc
+ pop hl
+ ret
+; 8921f
+
+
+Function8921f: ; 8921f (22:521f)
+ push de
+ ld de, SCREEN_WIDTH
+ add hl, de
+ inc hl
+ ld a, $7f
+.loop
+ push bc
+ push hl
+.asm_89229
+ ld [hli], a
+ dec c
+ jr nz, .asm_89229
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .loop
+ pop de
+ ret
+
+Mobile22_ButtonSound: ; 89235 (22:5235)
+ call JoyWaitAorB
+ call PlayClickSFX
+ ret
+
+Mobile22_SetBGMapMode0: ; 8923c
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 89240
+
+Mobile22_SetBGMapMode1: ; 89240
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 89245
+
+
+Function89245: ; 89245 (22:5245)
+ callba TryLoadSaveFile
+ ret c
+ callba _LoadData
+ and a
+ ret
+
+Function89254: ; 89254 (22:5254)
+ ld bc, $d07
+ jr Function89261
+
+Function89259: ; 89259
+ ld bc, $0e07
+ jr Function89261
+
+Function8925e: ; 8925e
+ ld bc, $0e0c
+
+Function89261: ; 89261
+ push af
+ push bc
+ ld hl, MenuDataHeader_0x892a3
+ call CopyMenuDataHeader
+ pop bc
+ ld hl, wMenuBorderTopCoord
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, c
+ add $4
+ ld [hli], a
+ ld a, b
+ add $5
+ ld [hl], a
+ pop af
+ ld [wMenuCursorBuffer], a
+ call PushWindow
+ call Mobile22_SetBGMapMode0
+ call Function89209
+ call VerticalMenu
+ push af
+ ld c, $a
+ call DelayFrames
+ call CloseWindow
+ call Function8920f
+ pop af
+ jr c, .done
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .done
+ and a
+ ret
+
+.done
+ scf
+ ret
+; 892a3
+
+MenuDataHeader_0x892a3: ; 0x892a3
+ db $40 ; flags
+ db 05, 10 ; start coords
+ db 09, 15 ; end coords
+ dw MenuData2_0x892ab
+ db 1 ; default option
+; 0x892ab
+
+MenuData2_0x892ab: ; 0x892ab
+ db $c0 ; flags
+ db 2 ; items
+ db "はい@"
+ db "いいえ@"
+; 0x892b4
+
+Function892b4: ; 892b4 (22:52b4)
+ call Function8931b
+
+Function892b7: ; 892b7
+ ld d, b
+ ld e, c
+ ld hl, 0
+ add hl, bc
+ ld a, "@"
+ ld bc, 6
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, 6
+ add hl, bc
+ ld a, "@"
+ ld bc, 6
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld hl, 12
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld hl, 14
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld hl, 16
+ add hl, bc
+ ld [hl], a
+ ld hl, 17
+ add hl, bc
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ ld b, d
+ ld c, e
+ ld e, 6
+ ld hl, 25
+ add hl, bc
+.loop
+ ld a, -1
+ ld [hli], a
+ ld a, -1
+ ld [hli], a
+ dec e
+ jr nz, .loop
+ ret
+; 89305
+
+
+Function89305: ; 89305 (22:5305)
+ xor a
+ ld [MenuSelection], a
+ ld c, 40
+.loop
+ ld a, [MenuSelection]
+ inc a
+ ld [MenuSelection], a
+ push bc
+ call Function892b4
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+
+Function8931b: ; 8931b
+ push hl
+ ld hl, $a03b ; 4:a03b
+ ld a, [MenuSelection]
+ dec a
+ ld bc, 37
+ call AddNTimes
+ ld b, h
+ ld c, l
+ pop hl
+ ret
+; 8932d
+
+Function8932d: ; 8932d
+ ld hl, 0
+ add hl, bc
+
+Function89331: ; 89331
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator.
+; Sets carry if it does not find a nonspace character.
+; Returns the location of the following character in hl.
+ push bc
+ ld c, NAME_LENGTH_JAPANESE - 1
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
+ dec c
+ jr nz, .loop
+
+.terminator
+ scf
+ jr .done
+
+.nonspace
+ and a
+
+.done
+ pop bc
+ ret
+; 89346
+
+
+Function89346: ; 89346 (22:5346)
+ ld h, b
+ ld l, c
+ jr _incave
+
+Function8934a: ; 8934a
+ ld hl, NAME_LENGTH_JAPANESE
+ add hl, bc
+_incave:
+; Scans up to 5 characters starting at hl, looking for a nonspace character up to the next terminator. Sets carry if it does not find a nonspace character. Returns the location of the following character in hl.
+ push bc
+ ld c, NAME_LENGTH_JAPANESE - 1
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .terminator
+ cp " "
+ jr nz, .nonspace
+ dec c
+ jr nz, .loop
+
+.terminator
+ scf
+ jr .done
+
+.nonspace
+ and a
+
+.done
+ pop bc
+ ret
+; 89363
+
+Function89363: ; 89363
+; Scans six byte pairs starting at bc to find $ff. Sets carry if it does not find a $ff. Returns the location of the byte after the first $ff found in hl.
+ ld h, b
+ ld l, c
+ jr ._incave
+
+ ld hl, 25
+ add hl, bc
+
+._incave
+ push de
+ ld e, NAME_LENGTH_JAPANESE
+.loop
+ ld a, [hli]
+ cp -1
+ jr nz, .ok
+ ld a, [hli]
+ cp -1
+ jr nz, .ok
+ dec e
+ jr nz, .loop
+ scf
+ jr .done
+
+.ok
+ and a
+
+.done
+ pop de
+ ret
+; 89381
+
+Function89381: ; 89381
+ push bc
+ push de
+ call Function89b45
+ jr c, .ok
+ push hl
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ pop hl
+
+.ok
+ pop de
+ ld c, 8
+ call Function89193
+ pop bc
+ ret
+; 8939a
+
+Function8939a: ; 8939a
+ push bc
+ ld hl, 0
+ add hl, bc
+ ld de, wd002
+ ld c, 6
+ call Function89193
+ pop bc
+ ld hl, 17
+ add hl, bc
+ ld de, wd008
+ call Function89381
+ ret
+; 893b3
+
+
+Function893b3: ; 893b3 (22:53b3)
+ call DisableLCD
+ call ClearSprites
+ call LoadStandardFont
+ call LoadFontsExtra
+ call Function893ef
+ call Function8942b
+ call Function89455
+ call EnableLCD
+ ret
+
+Function893cc: ; 893cc
+ call DisableLCD
+ call ClearSprites
+ call LoadStandardFont
+ call LoadFontsExtra
+ call Function893ef
+ call Function89464
+ call EnableLCD
+ ret
+; 893e2
+
+
+Function893e2: ; 893e2 (22:53e2)
+ call Function89b1e
+ call Function893b3
+ call Function8a5b6
+ call Function8949c
+ ret
+
+Function893ef: ; 893ef
+ ld de, VTiles0
+ ld hl, GFX_8940b
+ ld bc, $20
+ ld a, BANK(GFX_8940b)
+ call FarCopyBytes
+ ret
+; 893fe
+
+Function893fe: ; 893fe
+ call DisableLCD
+ call Function893ef
+ call EnableLCD
+ call DelayFrame
+ ret
+; 8940b
+
+GFX_8940b: ; 8940b
+INCBIN "gfx/unknown/08940b.2bpp"
+; 8942b
+
+Function8942b: ; 8942b (22:542b)
+ ld de, VTiles0 tile $02
+ ld hl, MobileAdapterGFX + $7d0
+ ld bc, $80
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ld de, VTiles0 tile $0a
+ ld hl, MobileAdapterGFX + $c60
+ ld bc, $40
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+
+Function89448: ; 89448 (22:5448)
+; Clears the Sprites array
+ push af
+ ld hl, Sprites
+ ld d, $10 * 6
+ xor a
+.loop
+ ld [hli], a
+ dec d
+ jr nz, .loop
+ pop af
+ ret
+
+Function89455: ; 89455 (22:5455)
+ ld hl, MobileAdapterGFX + $7d0
+ ld de, VTiles2 tile $0c
+ ld bc, $490
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+
+Function89464: ; 89464
+ ld hl, MobileAdapterGFX
+ ld de, VTiles2
+ ld bc, $200
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ld hl, MobileAdapterGFX + $660
+ ld de, VTiles2 tile $20
+ ld bc, $170
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ ret
+; 89481
+
+Function89481: ; 89481
+ ld d, 2
+ call Function8934a
+ ret c
+ ld d, 0
+ ld hl, 16
+ add hl, bc
+ bit 0, [hl]
+ ret z
+ inc d
+ ret
+; 89492
+
+
+Function89492: ; 89492 (22:5492)
+ ld d, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ ret z
+ inc d
+ ret
+
+Function8949c: ; 8949c
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, Palette_894b3
+ ld de, UnknBGPals + 8 * 7
+ ld bc, 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 894b3
+
+Palette_894b3: ; 894b3
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+; 894bb
+
+Function894bb: ; 894bb
+ call Function894dc
+ push bc
+ call Function8956f
+ call Function8949c
+ call Function8a60d
+ pop bc
+ ret
+; 894ca
+
+
+Function894ca: ; 894ca (22:54ca)
+ push bc
+ call Function894dc
+ call Function895c7
+ call Function8949c
+ call Function8a60d
+ call SetPalettes
+ pop bc
+ ret
+
+Function894dc: ; 894dc
+ push bc
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+
+ ld c, d
+ ld b, 0
+ ld hl, .PalettePointers
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, UnknBGPals
+ ld bc, 3 palettes
+ call CopyBytes
+ ld hl, .Pals345
+ ld de, UnknBGPals + 3 palettes
+ ld bc, 3 palettes
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 89509
+
+.PalettePointers: ; 89509
+ dw .Pals012a
+ dw .Pals012b
+ dw .Pals012c
+; 8950f
+
+.Pals012a: ; 8950f
+ RGB 31, 31, 31
+ RGB 10, 17, 13
+ RGB 10, 08, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 10, 08, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 10, 17, 13
+ RGB 00, 00, 00
+
+.Pals012b: ; 89527
+ RGB 31, 31, 31
+ RGB 30, 22, 11
+ RGB 31, 08, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 31, 08, 15
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 30, 22, 11
+ RGB 00, 00, 00
+
+.Pals012c: ; 8953f
+ RGB 31, 31, 31
+ RGB 15, 20, 26
+ RGB 25, 07, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 25, 07, 20
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 20, 31
+ RGB 15, 20, 26
+ RGB 00, 00, 00
+
+.Pals345: ; 89557
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 13, 00
+ RGB 14, 08, 00
+
+ RGB 31, 31, 31
+ RGB 16, 16, 31
+ RGB 00, 00, 31
+ RGB 00, 00, 00
+
+ RGB 19, 31, 11
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+; 8956f
+
+Function8956f: ; 8956f
+ push bc
+ ld hl, 16
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000c
+ add hl, bc
+ ld b, h
+ ld c, l
+ callba GetMobileOTTrainerClass
+ ld a, c
+ ld [TrainerClass], a
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, wd030
+ ld a, -1
+ ld [hli], a
+ ld a, " "
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ ld a, [TrainerClass]
+ ld h, 0
+ ld l, a
+ add hl, hl
+ add hl, hl
+ ld de, TrainerPalettes
+ add hl, de
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, wd032
+ ld c, 4
+.loop
+ ld a, BANK(TrainerPalettes)
+ call GetFarByte
+ ld [de], a
+ inc de
+ inc hl
+ dec c
+ jr nz, .loop
+ ld hl, wd036
+ xor a
+ ld [hli], a
+ ld [hl], a
+ pop af
+ ld [rSVBK], a
+ pop bc
+ ret
+; 895c7
+
+
+Function895c7: ; 895c7 (22:55c7)
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+ ld hl, Palette_895de
+ ld de, wd030
+ ld bc, 8
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 895de (22:55de)
+
+Palette_895de: ; 895de
+ RGB 31, 31, 31
+ RGB 07, 07, 06
+ RGB 07, 07, 06
+ RGB 00, 00, 00
+; 895e6
+
+Function895e6: ; 895e6
+ ld a, 7
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ret
+; 895f2
+
+Function895f2: ; 895f2
+ push bc
+ xor a
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ call Function89605
+ call Function89655
+ pop bc
+ ret
+; 89605
+
+Function89605: ; 89605
+ hlcoord 19, 2, AttrMap
+ ld a, 1
+ ld de, SCREEN_WIDTH
+ ld c, 14
+.loop
+ ld [hl], a
+ dec c
+ jr z, .done
+ add hl, de
+ inc a
+ ld [hl], a
+ dec a
+ add hl, de
+ dec c
+ jr nz, .loop
+
+.done
+ hlcoord 0, 16, AttrMap
+ ld c, 10
+ ld a, 2
+.loop2
+ ld [hli], a
+ dec a
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .loop2
+ hlcoord 1, 11, AttrMap
+ ld a, 4
+ ld bc, 4
+ call ByteFill
+ ld a, 5
+ ld bc, 14
+ call ByteFill
+ ret
+; 8963d
+
+Function8963d: ; 8963d
+ hlcoord 12, 3, AttrMap
+ ld a, 6
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
+.loop
+ push hl
+ ld c, 7
+.next
+ ld [hli], a
+ dec c
+ jr nz, .next
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 89655
+
+Function89655: ; 89655
+ hlcoord 1, 12, AttrMap
+ ld de, SCREEN_WIDTH
+ ld a, 5
+ ld b, 4
+.loop
+ ld c, 18
+ push hl
+.next
+ ld [hli], a
+ dec c
+ jr nz, .next
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .loop
+ ret
+; 8966c
+
+Function8966c: ; 8966c
+ push bc
+ call Function89688
+ hlcoord 4, 0
+ ld c, 8
+ call Function896f5
+ pop bc
+ ret
+; 8967a
+
+
+Function8967a: ; 8967a (22:567a)
+ push bc
+ call Function89688
+ hlcoord 2, 0
+ ld c, 12
+ call Function896f5
+ pop bc
+ ret
+
+Function89688: ; 89688
+ hlcoord 0, 0
+ ld a, 1
+ ld e, SCREEN_WIDTH
+ call Function896e1
+ ld a, 2
+ ld e, SCREEN_WIDTH
+ call Function896eb
+ ld a, 3
+ ld [hli], a
+ ld a, 4
+ ld e, SCREEN_HEIGHT
+ call Function896e1
+ ld a, 6
+ ld [hli], a
+ push bc
+ ld c, 13
+.loop
+ call Function896cb
+ dec c
+ jr z, .done
+ call Function896d6
+ dec c
+ jr nz, .loop
+
+.done
+ pop bc
+ ld a, 25
+ ld [hli], a
+ ld a, 26
+ ld e, SCREEN_HEIGHT
+ call Function896e1
+ ld a, 28
+ ld [hli], a
+ ld a, 2
+ ld e, SCREEN_WIDTH
+ call Function896eb
+ ret
+; 896cb
+
+Function896cb: ; 896cb
+ ld de, SCREEN_WIDTH - 1
+ ld a, 7
+ ld [hl], a
+ add hl, de
+ ld a, 9
+ ld [hli], a
+ ret
+; 896d6
+
+Function896d6: ; 896d6
+ ld de, SCREEN_WIDTH - 1
+ ld a, 10
+ ld [hl], a
+ add hl, de
+ ld a, 11
+ ld [hli], a
+ ret
+; 896e1
+
+Function896e1: ; 896e1
+.loop
+ ld [hli], a
+ inc a
+ dec e
+ ret z
+ ld [hli], a
+ dec a
+ dec e
+ jr nz, .loop
+ ret
+; 896eb
+
+Function896eb: ; 896eb
+.loop
+ ld [hli], a
+ dec a
+ dec e
+ ret z
+ ld [hli], a
+ inc a
+ dec e
+ jr nz, .loop
+ ret
+; 896f5
+
+Function896f5: ; 896f5
+ call Function8971f
+ call Function89736
+ inc hl
+ inc hl
+ ld b, 2
+
+ClearScreenArea: ; 0x896ff
+; clears an area of the screen
+; INPUT:
+; hl = address of upper left corner of the area
+; b = height
+; c = width
+
+ ld a, " " ; blank tile
+ ld de, 20 ; screen width
+.loop
+ push bc
+ push hl
+.innerLoop
+ ld [hli], a
+ dec c
+ jr nz, .innerLoop
+ pop hl
+ pop bc
+ add hl, de
+ dec b
+ jr nz, .loop
+
+ dec hl
+ inc c
+ inc c
+.asm_89713
+ ld a, $36
+ ld [hli], a
+ dec c
+ ret z
+ ld a, $18
+ ld [hli], a
+ dec c
+ jr nz, .asm_89713 ; 0x8971c $f5
+ ret
+; 0x8971f
+
+Function8971f: ; 8971f
+ ld a, $2c
+ ld [hli], a
+ ld a, $2d
+ ld [hld], a
+ push hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld a, $31
+ ld [hli], a
+ ld a, $32
+ ld [hld], a
+ add hl, de
+ ld a, $35
+ ld [hl], a
+ pop hl
+ ret
+; 89736
+
+Function89736: ; 89736
+ push hl
+ inc hl
+ inc hl
+ ld e, c
+ ld d, $0
+ add hl, de
+ ld a, $2f
+ ld [hli], a
+ ld a, $30
+ ld [hld], a
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld a, $33
+ ld [hli], a
+ ld a, $34
+ ld [hl], a
+ add hl, de
+ ld a, $1f
+ ld [hl], a
+ pop hl
+ ret
+; 89753
+
+Function89753: ; 89753
+ ld a, $c
+ ld [hl], a
+ xor a
+ call Function89215
+ ret
+; 8975b
+
+Function8975b: ; 8975b
+ ld a, $1d
+ ld [hli], a
+ inc a
+ ld [hli], a
+ ld a, $d
+ ld [hl], a
+ dec hl
+ dec hl
+ ld a, $4
+ ld e, $3
+.asm_89769
+ call Function89215
+ inc hl
+ dec e
+ jr nz, .asm_89769
+ ret
+; 89771
+
+Function89771: ; 89771
+ ld a, $12
+ ld [hl], a
+ ld a, $3
+ call Function89215
+ ret
+; 8977a
+
+Function8977a: ; 8977a
+ ld e, $4
+ ld d, $13
+.asm_8977e
+ ld a, d
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc d
+ dec e
+ jr nz, .asm_8977e
+ ld e, $e
+.asm_8978c
+ ld a, d
+ ld [hl], a
+ xor a
+ call Function89215
+ inc hl
+ dec e
+ jr nz, .asm_8978c
+ ret
+; 89797
+
+Function89797: ; 89797
+ push bc
+ ld a, $e
+ ld [hl], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld a, $11
+ ld [hli], a
+ ld a, $10
+ ld c, $8
+.asm_897a6
+ ld [hli], a
+ dec c
+ jr nz, .asm_897a6
+ ld a, $f
+ ld [hl], a
+ pop bc
+ ret
+; 897af
+
+Function897af: ; 897af
+ push bc
+ ld hl, $0010
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, $000c
+ add hl, bc
+ ld b, h
+ ld c, l
+ callba GetMobileOTTrainerClass
+ ld a, c
+ ld [TrainerClass], a
+ xor a
+ ld [CurPartySpecies], a
+ ld de, VTiles2 tile $37
+ callba GetTrainerPic
+ pop bc
+ ret
+; 897d5
+
+Function897d5: ; 897d5
+ push bc
+ call Function8934a
+ jr nc, .asm_897f3
+ hlcoord 12, 3, AttrMap
+ xor a
+ ld de, SCREEN_WIDTH
+ lb bc, 7, 7
+.asm_897e5
+ push hl
+ ld c, $7
+.asm_897e8
+ ld [hli], a
+ dec c
+ jr nz, .asm_897e8
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_897e5
+ pop bc
+ ret
+
+.asm_897f3
+ ld a, $37
+ ld [hGraphicStartTile], a
+ hlcoord 12, 3
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call Function8963d
+ pop bc
+ ret
+; 89807
+
+
+Function89807: ; 89807 (22:5807)
+ ld hl, MobileAdapterGFX + $200
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_89814
+ ld hl, MobileAdapterGFX + $200 + $230
+.asm_89814
+ call DisableLCD
+ ld de, VTiles2 tile $37
+ ld bc, $230
+ ld a, BANK(MobileAdapterGFX)
+ call FarCopyBytes
+ call EnableLCD
+ call DelayFrame
+ ret
+
+Function89829: ; 89829 (22:5829)
+ push bc
+ ld bc, $705
+ ld de, $14
+ ld a, $37
+.asm_89832
+ push bc
+ push hl
+.asm_89834
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_89834
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_89832
+ call Function8963d
+ pop bc
+ ret
+
+Function89844: ; 89844
+ call Function89481
+ call Function894bb
+ call Function897af
+ push bc
+ call WaitBGMap2
+ call SetPalettes
+ pop bc
+ ret
+; 89856
+
+Function89856: ; 89856
+ push bc
+ call Function891b8
+ pop bc
+ call Function895f2
+ call Function8966c
+ call Function899d3
+ call Function898aa
+ call Function898be
+ call Function898dc
+ call Function898f3
+ push bc
+ ld bc, wd008
+ hlcoord 2, 10
+ call Function89975
+ pop bc
+ call Function897d5
+ ret
+; 8987f
+
+
+Function8987f: ; 8987f (22:587f)
+ call Function891b8
+ call Function895f2
+ call Function8967a
+ call Function899d3
+ hlcoord 5, 1
+ call Function8999c
+ hlcoord 13, 3
+ call Function89829
+ call Function899b2
+ hlcoord 5, 5
+ call Function899c9
+ ld bc, wd008
+ hlcoord 2, 10
+ call Function89975
+ ret
+
+Function898aa: ; 898aa
+ ld a, [MenuSelection]
+ and a
+ ret z
+ push bc
+ hlcoord 6, 1
+ ld de, MenuSelection
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ pop bc
+ ret
+; 898be
+
+Function898be: ; 898be
+ push bc
+ ld de, wd002
+ ld hl, wd002
+ call Function89331
+ jr nc, .asm_898cd
+ ld de, String_89116
+
+.asm_898cd
+ hlcoord 9, 1
+ ld a, [MenuSelection]
+ and a
+ jr nz, .asm_898d7
+ dec hl
+
+.asm_898d7
+ call PlaceString
+ pop bc
+ ret
+; 898dc
+
+Function898dc: ; 898dc
+ ld hl, $0006
+ add hl, bc
+ push bc
+ ld d, h
+ ld e, l
+ call Function8934a
+ jr nc, .asm_898eb
+ ld de, String_89116
+
+.asm_898eb
+ hlcoord 6, 4
+ call PlaceString
+ pop bc
+ ret
+; 898f3
+
+Function898f3: ; 898f3
+ push bc
+ ld hl, $000c
+ add hl, bc
+ ld d, h
+ ld e, l
+ call Function8934a
+ jr c, .asm_8990a
+ hlcoord 5, 5
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ jr .asm_89913
+
+.asm_8990a
+ hlcoord 5, 5
+ ld de, String_89116
+ call PlaceString
+
+.asm_89913
+ pop bc
+ ret
+; 89915
+
+Function89915: ; 89915
+ push bc
+ push hl
+ ld de, Unknown_89942
+ ld c, $8
+.asm_8991c
+ ld a, [de]
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc de
+ dec c
+ jr nz, .asm_8991c
+ pop hl
+ ld b, $4
+ ld c, $2b
+ ld a, $8
+ ld de, Unknown_8994a
+.asm_89932
+ push af
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_8993b
+ call Function8994e
+ inc de
+
+.asm_8993b
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_89932
+ pop bc
+ ret
+; 89942
+
+Unknown_89942: ; 89942
+ db $24, $25, $26, " ", $27, $28, $29, $2a
+Unknown_8994a: ; 8994a
+ db $24, $27, $29, $ff
+; 8994e
+
+Function8994e: ; 8994e
+ push hl
+ push de
+ ld de, SCREEN_WIDTH
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ ld a, c
+ ld [hl], a
+ ld a, b
+ call Function89215
+ pop de
+ pop hl
+ ret
+; 89962
+
+Function89962: ; 89962
+ push bc
+ ld c, $4
+ ld b, $20
+.asm_89967
+ ld a, b
+ ld [hl], a
+ ld a, $4
+ call Function89215
+ inc hl
+ inc b
+ dec c
+ jr nz, .asm_89967
+ pop bc
+ ret
+; 89975
+
+Function89975: ; 89975
+ push bc
+ ld e, $8
+.asm_89978
+ ld a, [bc]
+ ld d, a
+ call Function8998b
+ swap d
+ inc hl
+ ld a, d
+ call Function8998b
+ inc bc
+ inc hl
+ dec e
+ jr nz, .asm_89978
+ pop bc
+ ret
+; 8998b
+
+Function8998b: ; 8998b
+ push bc
+ and $f
+ cp $a
+ jr nc, .asm_89997
+ ld c, $f6
+ add c
+ jr .asm_89999
+
+.asm_89997
+ ld a, $7f
+
+.asm_89999
+ ld [hl], a
+ pop bc
+ ret
+; 8999c
+
+
+Function8999c: ; 8999c (22:599c)
+ ld de, PlayerName
+ call PlaceString
+ inc bc
+ ld h, b
+ ld l, c
+ ld de, String_899ac
+ call PlaceString
+ ret
+; 899ac (22:59ac)
+
+String_899ac: ; 899ac
+ db "の めいし@"
+; 899b2
+
+Function899b2: ; 899b2 (22:59b2)
+ ld bc, PlayerName
+ call Function89346
+ jr c, .asm_899bf
+ ld de, PlayerName
+ jr .asm_899c2
+.asm_899bf
+ ld de, String_89116
+.asm_899c2
+ hlcoord 6, 4
+ call PlaceString
+ ret
+
+Function899c9: ; 899c9 (22:59c9)
+ ld de, PlayerID
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+
+Function899d3: ; 899d3
+ hlcoord 1, 4
+ call Function89753
+ hlcoord 2, 5
+ call Function8975b
+ hlcoord 1, 9
+ call Function89771
+ hlcoord 1, 11
+ call Function8977a
+ hlcoord 1, 5
+ call Function89797
+ hlcoord 2, 4
+ call Function89962
+ hlcoord 2, 9
+ call Function89915
+ ret
+; 899fe
+
+Function899fe: ; 899fe
+ push bc
+ push hl
+ ld hl, $0019
+ add hl, bc
+ ld b, h
+ ld c, l
+ pop hl
+ call Function89a0c
+ pop bc
+ ret
+; 89a0c
+
+Function89a0c: ; 89a0c
+ push hl
+ call Function89363
+ pop hl
+ jr c, .asm_89a1c
+ ld d, h
+ ld e, l
+ callba Function11c08f
+ ret
+
+.asm_89a1c
+ ld de, String_89153
+ call PlaceString
+ ret
+; 89a23
+
+
+Function89a23: ; 89a23 (22:5a23)
+ hlcoord 0, 11
+ ld b, $4
+ ld c, $12
+ call Function8921f
+ ret
+
+Function89a2e: ; 89a2e (22:5a2e)
+ hlcoord 11, 12
+ ld b, $2
+ ld c, $6
+ call TextBox
+ hlcoord 13, 13
+ ld de, String_89a4e
+ call PlaceString
+ hlcoord 13, 14
+ ld de, String_89a53
+ call PlaceString
+ call Function89655
+ ret
+; 89a4e (22:5a4e)
+
+String_89a4e: ; 89a4e
+ db "けってい@"
+; 89a53
+
+String_89a53: ; 89a53
+ db "やめる@"
+; 89a57
+
+Function89a57: ; 89a57
+ call JoyTextDelay_ForcehJoyDown ; joypad
+ bit D_UP_F, c
+ jr nz, .d_up
+ bit D_DOWN_F, c
+ jr nz, .d_down
+ bit A_BUTTON_F, c
+ jr nz, .a_b_button
+ bit B_BUTTON_F, c
+ jr nz, .a_b_button
+ bit START_F, c
+ jr nz, .start_button
+ scf
+ ret
+
+.a_b_button
+ ld a, $1
+ and a
+ ret
+
+.start_button
+ ld a, $2
+ and a
+ ret
+
+.d_up
+ call .MoveCursorUp
+ call nc, .PlayPocketSwitchSFX
+ ld a, $0
+ ret
+
+.d_down
+ call .MoveCursorDown
+ call nc, .PlayPocketSwitchSFX
+ ld a, $0
+ ret
+; 89a8a
+
+.PlayPocketSwitchSFX: ; 89a8a
+ push af
+ ld de, SFX_SWITCH_POCKETS
+ call PlaySFX
+ pop af
+ ret
+; 89a93
+
+.MoveCursorDown: ; 89a93
+ ld d, 40
+ ld e, 1
+ call .ApplyCursorMovement
+ ret
+; 89a9b
+
+.MoveCursorUp: ; 89a9b
+ ld d, 1
+ ld e, -1
+ call .ApplyCursorMovement
+ ret
+; 89aa3
+
+.ApplyCursorMovement: ; 89aa3
+ ld a, [MenuSelection]
+ ld c, a
+ push bc
+.loop
+ ld a, [MenuSelection]
+ cp d
+ jr z, .equal_to_d
+ add e
+ jr nz, .not_zero
+ inc a
+
+.not_zero
+ ld [MenuSelection], a
+ call .Function89ac7 ; BCD conversion of data in SRAM?
+ jr nc, .loop
+ call .Function89ae6 ; split [MenuSelection] into [wd030] + [wd031] where [wd030] <= 5
+ pop bc
+ and a
+ ret
+
+.equal_to_d
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ scf
+ ret
+; 89ac7
+
+.Function89ac7: ; 89ac7
+ call OpenSRAMBank4
+ call Function8931b
+ call .Function89ad4
+ call CloseSRAM
+ ret
+; 89ad4
+
+.Function89ad4: ; 89ad4
+ push de
+ call Function8932d ; find a non-space character within 5 bytes of bc
+ jr c, .no_nonspace_character
+ ld hl, 17
+ add hl, bc
+ call Function89b45
+ jr c, .finish_decode
+
+.no_nonspace_character
+ and a
+
+.finish_decode
+ pop de
+ ret
+; 89ae6
+
+.Function89ae6: ; 89ae6
+ ld hl, wd031
+ xor a
+ ld [hl], a
+ ld a, [MenuSelection]
+.loop2
+ cp 6
+ jr c, .load_and_ret
+ sub 5
+ ld c, a
+ ld a, [hl]
+ add 5
+ ld [hl], a
+ ld a, c
+ jr .loop2
+
+.load_and_ret
+ ld [wd030], a
+ ret
+; 89b00
+
+
+Function89b00: ; 89b00 (22:5b00)
+ callba MG_Mobile_Layout_LoadPals
+ ret
+; 89b07 (22:5b07)
+
+Function89b07: ; 89b07
+ call Mobile22_SetBGMapMode0
+ call DelayFrame
+ callba Function4a3a7
+ ret
+; 89b14
+
+Function89b14: ; 89b14
+ call ClearBGPalettes
+ call Function89b07
+ call Function89b00
+ ret
+; 89b1e
+
+Function89b1e: ; 89b1e (22:5b1e)
+ callba Function4a485
+ call Function89b00
+ ret
+
+Function89b28: ; 89b28 (22:5b28)
+ call Function891de
+ call ClearBGPalettes
+ call Function893e2
+ call Call_ExitMenu
+ call Function891ab
+ call SetPalettes
+ ret
+
+Function89b3b: ; 89b3b (22:5b3b)
+ call Mobile22_SetBGMapMode0
+ callba Function48cda
+ ret
+
+Function89b45: ; 89b45
+ ; some sort of decoder?
+ ; BCD?
+ push hl
+ push bc
+ ld c, $10
+ ld e, $0
+.loop
+ ld a, [hli]
+ ld b, a
+ and $f
+ cp 10
+ jr c, .low_nybble_less_than_10
+ ld a, c
+ cp $b
+ jr nc, .clear_carry
+ jr .set_carry
+
+.low_nybble_less_than_10
+ dec c
+ swap b
+ inc e
+ ld a, b
+ and $f
+ cp 10
+ jr c, .high_nybble_less_than_10
+ ld a, c
+ cp $b
+ jr nc, .clear_carry
+ jr .set_carry
+
+.high_nybble_less_than_10
+ inc e
+ dec c
+ jr nz, .loop
+ dec e
+
+.set_carry
+ scf
+ jr .finish
+
+.clear_carry
+ and a
+
+.finish
+ pop bc
+ pop hl
+ ret
+; 89b78
+
+
+Function89b78: ; 89b78 (22:5b78)
+ push bc
+ ld a, [wd010]
+ cp $10
+ jr c, .asm_89b8c
+ ld a, e
+ and a
+ jr z, .asm_89b89
+ ld c, e
+.asm_89b85
+ inc hl
+ dec c
+ jr nz, .asm_89b85
+.asm_89b89
+ ld a, $7f
+ ld [hl], a
+.asm_89b8c
+ ld a, [wd010]
+ inc a
+ and $1f
+ ld [wd010], a
+ pop bc
+ ret
+
+Function89b97: ; 89b97 (22:5b97)
+ call Function89c34
+ jr c, .asm_89ba0
+ call Function89448
+ ret
+.asm_89ba0
+ ld a, [wd011]
+ ld hl, Unknown_89bd8
+ and a
+ jr z, .asm_89bae
+.asm_89ba9
+ inc hl
+ inc hl
+ dec a
+ jr nz, .asm_89ba9
+.asm_89bae
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Sprites
+.asm_89bb4
+ ld a, [hli]
+ cp $ff
+ ret z
+ ld c, a
+ ld b, $0
+.asm_89bbb
+ push hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, $8
+ add b
+ ld b, a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop hl
+ dec c
+ jr nz, .asm_89bbb
+ ld b, $0
+ ld c, $4
+ add hl, bc
+ jr .asm_89bb4
+; 89bd8 (22:5bd8)
+
+Unknown_89bd8: ; 89bd8
+ dw Unknown_89be0
+ dw Unknown_89bf5
+ dw Unknown_89c0a
+ dw Unknown_89c1f
+; 89be0
+
+Unknown_89be0: ; 89be0
+ db $01, $12, $4e, $01, $00
+ db $01, $19, $4e, $01, $40
+ db $01, $12, $72, $01, $20
+ db $01, $19, $72, $01, $60
+ db $ff
+
+Unknown_89bf5: ; 89bf5
+ db $01, $60, $16, $01, $00
+ db $01, $62, $16, $01, $40
+ db $01, $60, $92, $01, $20
+ db $01, $62, $92, $01, $60
+ db $ff
+
+Unknown_89c0a: ; 89c0a
+ db $01, $78, $66, $01, $00
+ db $01, $78, $66, $01, $40
+ db $01, $78, $92, $01, $20
+ db $01, $78, $92, $01, $60
+ db $ff
+
+Unknown_89c1f: ; 89c1f
+ db $01, $80, $66, $01, $00
+ db $01, $80, $66, $01, $40
+ db $01, $80, $92, $01, $20
+ db $01, $80, $92, $01, $60
+ db $ff
+; 89c34
+
+Function89c34: ; 89c34 (22:5c34)
+ push bc
+ ld a, [wd012]
+ ld c, a
+ inc a
+ and $f
+ ld [wd012], a
+ ld a, c
+ cp $8
+ pop bc
+ ret
+
+Function89c44: ; 89c44 (22:5c44)
+ call Function89c34
+ jr c, .asm_89c4f
+ push de
+ call Function89448
+ pop de
+ ret
+.asm_89c4f
+ ld hl, Sprites
+ push de
+ ld a, b
+ ld [hli], a
+ ld d, $8
+ ld a, e
+ and a
+ ld a, c
+ jr z, .asm_89c60
+.asm_89c5c
+ add d
+ dec e
+ jr nz, .asm_89c5c
+.asm_89c60
+ pop de
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ret
+
+Function89c67: ; 89c67 (22:5c67)
+; menu scrolling?
+ call JoyTextDelay_ForcehJoyDown ; joypad
+ ld b, $0
+ bit A_BUTTON_F, c
+ jr z, .not_a_button
+ ld b, $1
+ and a
+ ret
+
+.not_a_button
+ bit B_BUTTON_F, c
+ jr z, .not_b_button
+ scf
+ ret
+
+.not_b_button
+ xor a
+ bit D_UP_F, c
+ jr z, .not_d_up
+ ld a, $1
+.not_d_up
+ bit D_DOWN_F, c
+ jr z, .not_d_down
+ ld a, $2
+.not_d_down
+ bit D_LEFT_F, c
+ jr z, .not_d_left
+ ld a, $3
+.not_d_left
+ bit D_RIGHT_F, c
+ jr z, .not_d_right
+ ld a, $4
+.not_d_right
+ and a
+ ret z ; no dpad pressed
+ dec a
+ ld c, a
+ ld d, $0
+ ld hl, .ScrollData0
+ ld a, [wd02f]
+ and a
+ jr z, .got_data
+ ld hl, .ScrollData1
+.got_data
+ ld a, [wd011]
+ and a
+ jr z, .got_row
+ ld e, $4
+.add_n_times
+ add hl, de
+ dec a
+ jr nz, .add_n_times
+.got_row
+ ld e, c
+ add hl, de
+ ld a, [hl]
+ and a
+ ret z
+ dec a
+ ld [wd011], a
+ xor a
+ ld [wd012], a
+ ret
+; 89cbf (22:5cbf)
+
+.ScrollData0: ; 89cbf
+ db 0, 2, 0, 0
+ db 1, 3, 0, 0
+ db 2, 4, 0, 0
+ db 3, 0, 0, 0
+
+.ScrollData1: ; 89ccf
+ db 0, 0, 0, 0
+ db 0, 3, 0, 0
+ db 2, 4, 0, 0
+ db 3, 0, 0, 0
+; 89cdf
+
+Function89cdf: ; 89cdf (22:5cdf)
+ ld a, $10
+ add b
+ ld b, a
+ ld a, $8
+ add c
+ ld c, a
+ ld e, $2
+ ld a, $2
+ ld hl, Sprites
+.asm_89cee
+ push af
+ push bc
+ ld d, $4
+.asm_89cf2
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld a, $8
+ add c
+ ld c, a
+ inc e
+ dec d
+ jr nz, .asm_89cf2
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ pop af
+ dec a
+ jr nz, .asm_89cee
+ ret
+
+Function89d0d: ; 89d0d (22:5d0d)
+ call Mobile22_SetBGMapMode0
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld c, 8
+ ld de, UnknBGPals
+.loop
+ push bc
+ ld hl, .Palette1
+ ld bc, 1 palettes
+ call CopyBytes
+ pop bc
+ dec c
+ jr nz, .loop
+
+ ld hl, .Palette2
+ ld de, UnknBGPals + 2 palettes
+ ld bc, 1 palettes
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ call SetPalettes
+ callba PrintMail_
+ call Mobile22_SetBGMapMode1
+ ld c, 24
+ call DelayFrames
+ call RestartMapMusic
+ ret
+; 89d4e (22:5d4e)
+
+.Palette1: ; 89d4e
+ RGB 31, 31, 31
+ RGB 19, 19, 19
+ RGB 15, 15, 15
+ RGB 00, 00, 00
+; 89d56
+
+.Palette2: ; 89d56
+ RGB 31, 31, 31
+ RGB 19, 19, 19
+ RGB 19, 19, 19
+ RGB 00, 00, 00
+; 89d5e
+
+Function89d5e: ; 89d5e (22:5d5e)
+ push af
+ call CopyMenuDataHeader
+ pop af
+ ld [wMenuCursorBuffer], a
+ call Mobile22_SetBGMapMode0
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ ret
+
+Function89d75: ; 89d75 (22:5d75)
+ push hl
+ call Mobile22_SetBGMapMode0
+ call _hl_
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ pop hl
+ jr asm_89d90
+
+Function89d85: ; 89d85 (22:5d85)
+ push hl
+ call Mobile22_SetBGMapMode0
+ call _hl_
+ call CGBOnly_LoadEDTile
+ pop hl
+
+asm_89d90: ; 89d90 (22:5d90)
+ call Mobile22_SetBGMapMode0
+ push hl
+ call _hl_
+ call Function89dab
+ ld a, [wMenuCursorY]
+ push af
+ call Function891ab
+ pop af
+ pop hl
+ jr c, .asm_89da9
+ jr z, asm_89d90
+ scf
+ ret
+.asm_89da9
+ and a
+ ret
+
+Function89dab: ; 89dab (22:5dab)
+ call Mobile22_SetBGMapMode0
+ callba MobileMenuJoypad
+ call Mobile22_SetBGMapMode0
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ bit 0, a
+ jr nz, .asm_89dc7
+ bit 1, a
+ jr nz, .asm_89dd9
+ xor a
+ ret
+.asm_89dc7
+ call PlayClickSFX
+ ld a, [w2DMenuNumRows]
+ ld c, a
+ ld a, [wMenuCursorY]
+ cp c
+ jr z, .asm_89dd9
+ call PlaceHollowCursor
+ scf
+ ret
+.asm_89dd9
+ call PlayClickSFX
+ ld a, $1
+ and a
+ ret
+
+Function89de0: ; 89de0 (22:5de0)
+ call ClearSprites
+ call Function89e0a
+ jr c, .asm_89e00
+ ld c, $1
+.asm_89dea
+ call Function8a31c
+ jr z, .asm_89dfd
+ ld a, [wMenuCursorY]
+ ld c, a
+ push bc
+ ld hl, Jumptable_89e04
+ ld a, e
+ dec a
+ rst JumpTable
+ pop bc
+ jr .asm_89dea
+.asm_89dfd
+ call Function891fe
+.asm_89e00
+ call Function8917a
+ ret
+
+Jumptable_89e04: ; 89e04 (22:5e04)
+ dw Function8a62c
+ dw Function8a999
+ dw Function8ab93
+
+
+Function89e0a: ; 89e0a (22:5e0a)
+ call OpenSRAMBank4
+ call Function8b3b0
+ call CloseSRAM
+ ld hl, Jumptable_89e18
+ rst JumpTable
+ ret
+
+Jumptable_89e18: ; 89e18 (22:5e18)
+ dw Function89e1e
+ dw Function8a116
+ dw Function8a2aa
+
+
+Function89e1e: ; 89e1e (22:5e1e)
+ call OpenSRAMBank4
+ ld bc, $a037 ; 4:a037
+ call Function8b36c
+ call CloseSRAM
+ xor a
+ ld [wd02d], a
+
+asm_89e2e: ; 89e2e (22:5e2e)
+ ld a, [wd02d]
+ ld hl, Jumptable_89e3c
+ rst JumpTable
+ ret
+
+Function89e36: ; 89e36 (22:5e36)
+ ld hl, wd02d
+ inc [hl]
+ jr asm_89e2e
+
+Jumptable_89e3c: ; 89e3c (22:5e3c)
+ dw Function89e6f
+ dw Function89fed
+ dw Function89ff6
+ dw Function8a03d
+ dw Function89eb9
+ dw Function89efd
+ dw Function89fce
+ dw Function8a04c
+ dw Function8a055
+ dw Function8a0e6
+ dw Function8a0ec
+ dw Function8a0f5
+ dw Function89e58
+ dw Function89e68
+
+
+Function89e58: ; 89e58 (22:5e58)
+ ld a, $1
+ call Function8a2fe
+ call Function891fe
+ call Function893e2
+ call Function89168
+ and a
+ ret
+
+Function89e68: ; 89e68 (22:5e68)
+ call Function891fe
+ ld a, $1
+ scf
+ ret
+
+Function89e6f: ; 89e6f (22:5e6f)
+ call Function891de
+ call Function89245
+ call Function89ee1
+ call Function89e9a
+ hlcoord 7, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function891ab
+ call SetPalettes
+ jp Function89e36
+
+Function89e9a: ; 89e9a (22:5e9a)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_89eb1
+ ld de, UnknBGPals palette 5
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 89eb1 (22:5eb1)
+
+Palette_89eb1: ; 89eb1
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+; 89eb9
+
+Function89eb9: ; 89eb9 (22:5eb9)
+ call Function891fe
+ call Function89ee1
+ call Function89e9a
+ hlcoord 7, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function891ab
+ call SetPalettes
+ jp Function89e36
+
+Function89ee1: ; 89ee1 (22:5ee1)
+ call ClearBGPalettes
+ call Function893e2
+ call Mobile22_SetBGMapMode0
+ callba Function4a3a7
+ callba MG_Mobile_Layout_CreatePalBoxes
+ hlcoord 1, 0
+ call Function8a53d
+ ret
+
+Function89efd: ; 89efd (22:5efd)
+ ld hl, wd012
+ ld a, $ff
+ ld [hli], a
+ xor a
+rept 4
+ ld [hli], a
+endr
+ ld [hl], a
+.asm_89f09
+ ld hl, wd012
+ inc [hl]
+ ld a, [hli]
+ and $3
+ jr nz, .asm_89f2e
+ ld a, [hl]
+ cp $4
+ jr nc, .asm_89f2e
+ ld b, $32
+ inc [hl]
+ ld a, [hl]
+ dec a
+ jr z, .asm_89f26
+ ld c, a
+.asm_89f1f
+ ld a, $b
+ add b
+ ld b, a
+ dec c
+ jr nz, .asm_89f1f
+.asm_89f26
+ ld c, $e8
+ ld a, [wd013]
+ call Function89fa5
+.asm_89f2e
+ ld a, [wd013]
+ and a
+ jr z, .asm_89f58
+.asm_89f34
+ call Function89f6a
+ ld e, a
+ ld a, c
+ cp $a8
+ jr nc, .asm_89f4d
+ cp $46
+ jr c, .asm_89f4d
+ ld d, $0
+ dec e
+ ld hl, wd014
+ add hl, de
+ set 0, [hl]
+ inc e
+ jr .asm_89f51
+.asm_89f4d
+ ld a, $2
+ add c
+ ld c, a
+.asm_89f51
+ ld a, e
+ call Function89f77
+ dec a
+ jr nz, .asm_89f34
+.asm_89f58
+ call DelayFrame
+ ld hl, wd014
+ ld c, $4
+.asm_89f60
+ ld a, [hli]
+ and a
+ jr z, .asm_89f09
+ dec c
+ jr nz, .asm_89f60
+ jp Function89e36
+
+Function89f6a: ; 89f6a (22:5f6a)
+ push af
+ ld de, $10
+ call Function89f9a
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld c, a
+ pop af
+ ret
+
+Function89f77: ; 89f77 (22:5f77)
+ push af
+ ld de, $10
+ call Function89f9a
+ ld d, $2
+.asm_89f80
+ push bc
+ ld e, $2
+.asm_89f83
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ inc hl
+ inc hl
+ ld a, $8
+ add c
+ ld c, a
+ dec e
+ jr nz, .asm_89f83
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ dec d
+ jr nz, .asm_89f80
+ pop af
+ ret
+
+Function89f9a: ; 89f9a (22:5f9a)
+ dec a
+ ld hl, Sprites
+ and a
+ ret z
+.asm_89fa0
+ add hl, de
+ dec a
+ jr nz, .asm_89fa0
+ ret
+
+Function89fa5: ; 89fa5 (22:5fa5)
+ ld de, $10
+ call Function89f9a
+ ld e, $2
+ ld d, $a
+.asm_89faf
+ push bc
+ ld a, $2
+.asm_89fb2
+ push af
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld a, d
+ inc d
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld a, $8
+ add c
+ ld c, a
+ pop af
+ dec a
+ jr nz, .asm_89fb2
+ pop bc
+ ld a, $8
+ add b
+ ld b, a
+ dec e
+ jr nz, .asm_89faf
+ ret
+
+Function89fce: ; 89fce (22:5fce)
+ call Function8a5b6
+ ld a, $5
+ hlcoord 7, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 10, 4, AttrMap
+ call Function8a5a3
+ call Function89448
+ call SetPalettes
+ call Function891ab
+ jp Function89e36
+
+Function89fed: ; 89fed (22:5fed)
+ ld hl, UnknownText_0x8a102
+ call PrintText
+ jp Function89e36
+
+Function89ff6: ; 89ff6 (22:5ff6)
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld a, -1
+ ld bc, 8
+ call ByteFill
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function8987f
+ call OpenSRAMBank4
+ hlcoord 1, 13
+ ld bc, $a007
+ call Function89a0c
+ call CloseSRAM
+ call Function891ab
+ call Mobile22_ButtonSound
+ jp Function89e36
+
+Function8a03d: ; 8a03d (22:603d)
+ ld hl, UnknownText_0x8a107
+ call Function89209
+ call PrintText
+ call Function8920f
+ jp Function89e36
+
+Function8a04c: ; 8a04c (22:604c)
+ ld hl, UnknownText_0x8a10c
+ call PrintText
+ jp Function89e36
+
+Function8a055: ; 8a055 (22:6055)
+ ld c, $7
+ ld b, $4
+.asm_8a059
+ call Function8a0a1
+ inc c
+ call Function8a0c9
+ push bc
+ call Function8a58d
+ pop bc
+ call Function8a0de
+ push bc
+ push hl
+ ld a, $5
+ call Function8a5a3
+ pop hl
+ inc hl
+ inc hl
+ inc hl
+ ld a, $6
+ call Function8a5a3
+ call CGBOnly_LoadEDTile
+ pop bc
+ ld a, c
+ cp $b
+ jr nz, .asm_8a059
+ call Function8a0a1
+ hlcoord 12, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ pop hl
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ call CGBOnly_LoadEDTile
+ jp Function89e36
+
+Function8a0a1: ; 8a0a1 (22:60a1)
+ call Mobile22_SetBGMapMode0
+ push bc
+ call Function8a0c9
+ ld e, $6
+.asm_8a0aa
+ push hl
+ ld bc, $6
+ add hl, bc
+ ld d, [hl]
+ call Function8a0c1
+ pop hl
+ ld [hl], d
+ call Function89215
+ ld bc, $14
+ add hl, bc
+ dec e
+ jr nz, .asm_8a0aa
+ pop bc
+ ret
+
+Function8a0c1: ; 8a0c1 (22:60c1)
+ push hl
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ ret
+
+Function8a0c9: ; 8a0c9 (22:60c9)
+ push bc
+ hlcoord 0, 0
+ ld de, $14
+ ld a, b
+ and a
+ jr z, .asm_8a0d8
+.asm_8a0d4
+ add hl, de
+ dec b
+ jr nz, .asm_8a0d4
+.asm_8a0d8
+ ld d, $0
+ ld e, c
+ add hl, de
+ pop bc
+ ret
+
+Function8a0de: ; 8a0de (22:60de)
+ call Function8a0c9
+ ld de, AttrMap - TileMap
+ add hl, de
+ ret
+
+Function8a0e6: ; 8a0e6 (22:60e6)
+ call Function8b539
+ jp Function89e36
+
+Function8a0ec: ; 8a0ec (22:60ec)
+ ld hl, UnknownText_0x8a111
+ call PrintText
+ jp Function89e36
+
+Function8a0f5: ; 8a0f5 (22:60f5)
+ call Function8b555
+ jp nc, Function8a0ff
+ ld hl, wd02d
+ inc [hl]
+
+Function8a0ff: ; 8a0ff (22:60ff)
+ jp Function89e36
+; 8a102 (22:6102)
+
+UnknownText_0x8a102: ; 0x8a102
+ ; The CARD FOLDER stores your and your friends' CARDS. A CARD contains information like the person's name, phone number and profile.
+ text_jump UnknownText_0x1c5238
+ db "@"
+; 0x8a107
+
+UnknownText_0x8a107: ; 0x8a107
+ ; This is your CARD. Once you've entered your phone number, you can trade CARDS with your friends.
+ text_jump UnknownText_0x1c52bc
+ db "@"
+; 0x8a10c
+
+UnknownText_0x8a10c: ; 0x8a10c
+ ; If you have your friend's CARD, you can use it to make a call from a mobile phone on the 2nd floor of a #MON CENTER.
+ text_jump UnknownText_0x1c531e
+ db "@"
+; 0x8a111
+
+UnknownText_0x8a111: ; 0x8a111
+ ; To safely store your collection of CARDS, you must set a PASSCODE for your CARD FOLDER.
+ text_jump UnknownText_0x1c5394
+ db "@"
+; 0x8a116
+
+Function8a116: ; 8a116 (22:6116)
+ ld a, $1
+ ld [wd030], a
+ ld hl, MenuDataHeader_0x8a176
+ call LoadMenuDataHeader
+.asm_8a121
+ call Mobile22_SetBGMapMode0
+ call Function8a17b
+ jr c, .asm_8a16b
+ ld a, [wMenuCursorY]
+ ld [wd030], a
+ dec d
+ jr z, .asm_8a140
+ call Function8a20d
+ jr c, .asm_8a121
+ xor a
+ call Function8a2fe
+ call Function8916e
+ jr .asm_8a16b
+.asm_8a140
+ call Function89174
+ jr nz, .asm_8a14c
+ call Function8a241
+ jr c, .asm_8a121
+ jr .asm_8a15a
+.asm_8a14c
+ call WaitSFX
+ ld de, SFX_TWINKLE
+ call PlaySFX
+ ld c, $10
+ call DelayFrames
+.asm_8a15a
+ call ExitMenu
+ call Function891de
+ call Function893e2
+ call Function89245
+ call Function89168
+ and a
+ ret
+.asm_8a16b
+ call Function89209
+ call CloseWindow
+ call Function8920f
+ scf
+ ret
+; 8a176 (22:6176)
+
+MenuDataHeader_0x8a176: ; 0x8a176
+ db $40 ; flags
+ db 00, 14 ; start coords
+ db 06, 19 ; end coords
+; 8a17b
+
+Function8a17b: ; 8a17b (22:617b)
+ decoord 14, 0
+ ld b, $5
+ ld c, $4
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a19a
+ ld a, [wd030]
+ call Function89d5e
+ ld hl, Function8a1b0
+ call Function89d75
+ jr nc, .asm_8a198
+ ld a, $0
+.asm_8a198
+ ld d, a
+ ret
+; 8a19a (22:619a)
+
+MenuDataHeader_0x8a19a: ; 0x8a19a
+ db $40 ; flags
+ db 00, 14 ; start coords
+ db 06, 19 ; end coords
+ dw MenuData2_0x8a1a2
+ db 1 ; default option
+; 0x8a1a2
+
+MenuData2_0x8a1a2: ; 0x8a1a2
+ db $e0 ; flags
+ db 3 ; items
+ db "ひらく@"
+ db "すてる@"
+ db "もどる@"
+; 0x8a1b0
+
+Function8a1b0: ; 8a1b0
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld a, [wMenuCursorY]
+ ld de, Strings_8a1cc
+ dec a
+ ld c, a
+ call Function8919e
+ call PlaceString
+ ret
+; 8a1cc
+
+Strings_8a1cc: ; 8a1cc
+ db "めいし", $25, "せいりと へんしゅうを"
+ next "おこないます"
+ db "@"
+
+ db "めいしフ,ルダー", $25, "めいしと"
+ next "あんしょうばんごう", $1f, "けします"
+ db "@"
+
+ db "まえ", $25, "がめん", $1d, "もどります"
+ db "@"
+; 8a20d
+
+
+Function8a20d: ; 8a20d (22:620d)
+ ld hl, UnknownText_0x8a232
+ call PrintText
+ ld a, $2
+ call Function89259
+ ret c
+ ld hl, UnknownText_0x8a237
+ call PrintText
+ ld a, $2
+ call Function89259
+ ret c
+ xor a
+ call Function8a2fe
+ ld hl, UnknownText_0x8a23c
+ call PrintText
+ xor a
+ and a
+ ret
+; 8a232 (22:6232)
+
+UnknownText_0x8a232: ; 0x8a232
+ ; If the CARD FOLDER is deleted, all its CARDS and the PASSCODE will also be deleted. Beware--a deleted CARD FOLDER can't be restored. Want to delete your CARD FOLDER?
+ text_jump UnknownText_0x1c53ee
+ db "@"
+; 0x8a237
+
+UnknownText_0x8a237: ; 0x8a237
+ ; Are you sure you want to delete it?
+ text_jump UnknownText_0x1c5494
+ db "@"
+; 0x8a23c
+
+UnknownText_0x8a23c: ; 0x8a23c
+ ; The CARD FOLDER has been deleted.
+ text_jump UnknownText_0x1c54b9
+ db "@"
+; 0x8a241
+
+Function8a241: ; 8a241 (22:6241)
+ call LoadStandardMenuDataHeader
+ call Function891fe
+ call Function8a262
+ jr nc, .asm_8a254
+ call Function891fe
+ call Function89b28
+ scf
+ ret
+.asm_8a254
+ call Function891de
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call Function891de
+ and a
+ ret
+
+Function8a262: ; 8a262 (22:6262)
+ call ClearBGPalettes
+ call Function893e2
+ call Mobile22_SetBGMapMode0
+ callba Function4a3a7
+ callba MG_Mobile_Layout_CreatePalBoxes
+ hlcoord 1, 0
+ call Function8a53d
+ hlcoord 12, 4
+ call Function8a58d
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ xor a
+ ld [wd02e], a
+ ld bc, wd013
+ call Function8b36c
+ call Function8b493
+ call Function891ab
+ call SetPalettes
+ call Function8b5e7
+ ret
+
+Function8a2aa: ; 8a2aa (22:62aa)
+ ld hl, MenuDataHeader_0x8a2ef
+ call LoadMenuDataHeader
+ ld hl, UnknownText_0x8a2f4
+ call PrintText
+ ld a, $1
+ call Function89259
+ jr nc, .asm_8a2cf
+ ld hl, UnknownText_0x8a2f9
+ call PrintText
+ ld a, $2
+ call Function89259
+ jr c, .asm_8a2ea
+ call Function8a20d
+ jr .asm_8a2ea
+.asm_8a2cf
+ call ExitMenu
+ call Function8a241
+ jr c, .asm_8a2ed
+ ld a, $1
+ call Function8a313
+ call CloseSRAM
+ call Function891de
+ call Function89245
+ call Function89168
+ and a
+ ret
+.asm_8a2ea
+ call CloseWindow
+.asm_8a2ed
+ scf
+ ret
+; 8a2ef (22:62ef)
+
+MenuDataHeader_0x8a2ef: ; 0x8a2ef
+ db $40 ; flags
+ db 12, 00 ; start coords
+ db 17, 19 ; end coords
+; 8a2f4
+
+UnknownText_0x8a2f4: ; 0x8a2f4
+ ; There is an older CARD FOLDER from a previous journey. Do you want to open it?
+ text_jump UnknownText_0x1c54dd
+ db "@"
+; 0x8a2f9
+
+UnknownText_0x8a2f9: ; 0x8a2f9
+ ; Delete the old CARD FOLDER?
+ text_jump UnknownText_0x1c552d
+ db "@"
+; 0x8a2fe
+
+Function8a2fe: ; 8a2fe (22:62fe)
+ call Function8a313
+ call Function89305
+ ld hl, $a603
+ ld bc, $8
+ ld a, -1
+ call ByteFill
+ call CloseSRAM
+ ret
+
+Function8a313: ; 8a313 (22:6313)
+ ld c, a
+ call OpenSRAMBank4
+ ld a, c
+ ld [$a60b], a
+ ret
+
+Function8a31c: ; 8a31c (22:631c)
+ push bc
+ call Mobile22_SetBGMapMode0
+ callba Function4a3a7
+ callba MG_Mobile_Layout_CreatePalBoxes
+ hlcoord 1, 0
+ call Function8a53d
+ hlcoord 12, 4
+ call Function8a58d
+ call Function8a3b2
+ pop bc
+ ld a, c
+ ld [wMenuCursorBuffer], a
+ ld [MenuSelection], a
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+.asm_8a34e
+ call Function8a3a2
+ call Mobile22_SetBGMapMode0
+ call Function8a453
+ call Function8a4d3
+ call Function8a4fc
+ call Function891ab
+ call SetPalettes
+ call Function8a383
+ jr c, .asm_8a370
+ jr z, .asm_8a34e
+.asm_8a36a
+ call Function89448
+ xor a
+ ld e, a
+ ret
+.asm_8a370
+ call Function89448
+ call PlaceHollowCursor
+ call Function8a3a2
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_8a36a
+ ld e, a
+ and a
+ ret
+
+Function8a383: ; 8a383 (22:6383)
+ callba MobileMenuJoypad
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ bit 0, a
+ jr nz, .asm_8a399
+ bit 1, a
+ jr nz, .asm_8a39e
+ xor a
+ ret
+.asm_8a399
+ call PlayClickSFX
+ scf
+ ret
+.asm_8a39e
+ call PlayClickSFX
+ ret
+
+Function8a3a2: ; 8a3a2 (22:63a2)
+ ld a, [wMenuCursorY]
+ dec a
+ ld hl, wd002
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld [MenuSelection], a
+ ret
+
+Function8a3b2: ; 8a3b2 (22:63b2)
+ ld a, $1
+ ld [MenuSelection], a
+ call Function8a4fc
+ call Function8a3df
+ jr nc, .asm_8a3ce
+ decoord 0, 2
+ ld b, $6
+ ld c, $9
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a435
+ jr .asm_8a3db
+.asm_8a3ce
+ decoord 0, 2
+ ld b, $8
+ ld c, $9
+ call Function89b3b
+ ld hl, MenuDataHeader_0x8a40f
+.asm_8a3db
+ call CopyMenuDataHeader
+ ret
+
+Function8a3df: ; 8a3df (22:63df)
+ call OpenSRAMBank4
+ ld hl, $a603
+ call Function89b45
+ call CloseSRAM
+ ld hl, wd002
+ jr c, .asm_8a3f8
+ ld de, Unknown_8a408
+ call Function8a400
+ scf
+ ret
+.asm_8a3f8
+ ld de, Unknown_8a40b
+ call Function8a400
+ and a
+ ret
+
+Function8a400: ; 8a400 (22:6400)
+ ld a, [de]
+ inc de
+ ld [hli], a
+ cp $ff
+ jr nz, Function8a400
+ ret
+; 8a408 (22:6408)
+
+Unknown_8a408: db 1, 2, -1
+Unknown_8a40b: db 1, 2, 3, -1
+
+MenuDataHeader_0x8a40f: ; 0x8a40f
+ db $40 ; flags
+ db 02, 00 ; start coords
+ db 11, 10 ; end coords
+ dw MenuData2_0x8a417
+ db 1 ; default option
+; 0x8a417
+
+MenuData2_0x8a417: ; 0x8a417
+ db $a0 ; flags
+ db 4 ; items
+ db "めいしりスト@"
+ db "じぶんの めいし@"
+ db "めいしこうかん@"
+ db "やめる@"
+; 0x8a435
+
+MenuDataHeader_0x8a435: ; 0x8a435
+ db $40 ; flags
+ db 02, 00 ; start coords
+ db 09, 10 ; end coords
+ dw MenuData2_0x8a43d
+ db 1 ; default option
+; 0x8a43d
+
+MenuData2_0x8a43d: ; 0x8a43d
+ db $a0 ; flags
+ db 3 ; items
+ db "めいしりスト@"
+ db "じぶんの めいし@"
+ db "やめる@"
+; 0x8a453
+
+Function8a453: ; 8a453 (22:6453)
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld de, String_8a476
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .asm_8a472
+ ld de, Strings_8a483
+ dec a
+ ld c, a
+ call Function8919e
+.asm_8a472
+ call PlaceString
+ ret
+; 8a476 (22:6476)
+
+String_8a476: ; 8a476
+ db "まえ", $25, "がめん", $1d, "もどります@"
+; 8a483
+
+Strings_8a483: ; 8a483
+ db "おともだち", $25, "めいしは"
+ next "ここ", $1d, "いれておきます@"
+
+ db "でんわばんごう", $1f, "いれると"
+ next "めいしこうかん", $4a, "できます@"
+
+ db "ともだちと じぶん", $25, "めいしを"
+ next "せきがいせんで こうかん します@"
+; 8a4d3
+
+Function8a4d3: ; 8a4d3 (22:64d3)
+ ld a, [MenuSelection]
+ cp $1
+ jr nz, .asm_8a4eb
+ ld a, $5
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $7
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ ret
+.asm_8a4eb
+ ld a, $7
+ hlcoord 12, 4, AttrMap
+ call Function8a5a3
+ ld a, $6
+ hlcoord 15, 4, AttrMap
+ call Function8a5a3
+ ret
+
+Function8a4fc: ; 8a4fc (22:64fc)
+ ld a, [MenuSelection]
+ cp $3
+ jr nz, asm_8a529
+ ld hl, wd012
+ ld a, [hli]
+ ld b, a
+ ld a, [hld]
+ add b
+ ld [hl], a
+ ld b, a
+ ld c, $80
+ call Function89cdf
+ call Function8a515
+ ret
+
+Function8a515: ; 8a515 (22:6515)
+ ld hl, wd012
+ ld a, [hl]
+ cp $38
+ jr c, .asm_8a520
+ cp $3c
+ ret c
+.asm_8a520
+ ld a, [wd013]
+ cpl
+ inc a
+ ld [wd013], a
+ ret
+
+asm_8a529: ; 8a529 (22:6529)
+ ld hl, wd012
+ ld a, $3c
+ ld [hli], a
+ ld a, $ff
+ ld [hli], a
+ ld hl, Sprites
+ xor a
+ ld bc, $20
+ call ByteFill
+ ret
+
+Function8a53d: ; 8a53d (22:653d)
+ push hl
+ ld a, $15
+ ld c, $8
+ ld de, $14
+ call Function8a573
+ ld a, $1d
+ ld c, $9
+ call Function8a57c
+ inc a
+ ld [hl], a
+ call Function8a584
+ pop hl
+ add hl, de
+ ld a, $1f
+ ld c, $8
+ call Function8a573
+ dec hl
+ ld a, $51
+ ld [hli], a
+ ld a, $26
+ ld c, $1
+ call Function8a57c
+ ld a, $52
+ ld c, $3
+ call Function8a573
+ ld a, $27
+ ld c, $6
+
+Function8a573: ; 8a573 (22:6573)
+ ld [hl], a
+ call Function8a584
+ inc a
+ dec c
+ jr nz, Function8a573
+ ret
+
+Function8a57c: ; 8a57c (22:657c)
+ ld [hl], a
+ call Function8a584
+ dec c
+ jr nz, Function8a57c
+ ret
+
+Function8a584: ; 8a584 (22:6584)
+ push af
+ ld a, $4
+ call Function89215
+ inc hl
+ pop af
+ ret
+
+Function8a58d: ; 8a58d (22:658d)
+ ld a, $2d
+ ld bc, $606
+ ld de, $14
+.asm_8a595
+ push bc
+ push hl
+.asm_8a597
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_8a597
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8a595
+ ret
+
+Function8a5a3: ; 8a5a3 (22:65a3)
+ ld bc, $603
+ ld de, $14
+.asm_8a5a9
+ push bc
+ push hl
+.asm_8a5ab
+ ld [hli], a
+ dec c
+ jr nz, .asm_8a5ab
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_8a5a9
+ ret
+
+Function8a5b6: ; 8a5b6 (22:65b6)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_8a5e5
+ ld de, UnknBGPals + 4 palettes
+ ld bc, 3 palettes
+ call CopyBytes
+ ld hl, Palette_8a5fd
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ call CopyBytes
+ ld hl, Palette_8a605
+ ld de, UnknOBPals + 1 palettes
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 8a5e5 (22:65e5)
+
+Palette_8a5e5: ; 8a5e5
+ RGB 31, 31, 31
+ RGB 27, 19, 00
+ RGB 07, 11, 22
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 16, 16, 31
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+
+ RGB 31, 31, 31
+ RGB 31, 00, 00
+ RGB 27, 19, 00
+ RGB 00, 00, 00
+; 8a5fd
+
+Palette_8a5fd: ; 8a5fd
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; 8a605
+
+Palette_8a605: ; 8a605
+ RGB 00, 00, 00
+ RGB 14, 18, 31
+ RGB 16, 16, 31
+ RGB 31, 31, 31
+; 8a60d
+
+Function8a60d: ; 8a60d
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_8a624
+ ld de, UnknOBPals
+ ld bc, 1 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 8a624
+
+Palette_8a624: ; 8a624
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 00, 00, 00
+; 8a62c
+
+Function8a62c: ; 8a62c (22:662c)
+ call LoadStandardMenuDataHeader
+ call Function891fe
+ xor a
+ call Function8b94a
+ call Function8b677
+.asm_8a639
+ xor a
+ ld [wd033], a
+ ld [wd032], a
+ ld [wd0e3], a
+ call Function8b7bd
+ ld a, c
+ and a
+ jr z, .asm_8a66a
+ ld [MenuSelection], a
+ ld b, a
+ ld a, [wScrollingMenuCursorPosition]
+ inc a
+ ld [wd034], a
+ push bc
+ call Function8b960
+ ld a, c
+ pop bc
+ jr z, .asm_8a639
+ ld c, a
+ ld hl, Jumptable_8a671
+ ld a, b
+ ld [MenuSelection], a
+ ld a, c
+ dec a
+ rst JumpTable
+ jr .asm_8a639
+.asm_8a66a
+ call Function891fe
+ call Function89b28
+ ret
+
+Jumptable_8a671: ; 8a671 (22:6671)
+ dw Function8a679
+ dw Function8a6cd
+ dw Function8a8c3
+ dw Function8a930
+
+
+Function8a679: ; 8a679 (22:6679)
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call CloseSRAM
+ call OpenSRAMBank4
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call Function891ab
+ call CloseSRAM
+.asm_8a6a3
+ call Function89a57
+ jr c, .asm_8a6a3
+ and a
+ jr z, Function8a679
+ ld hl, Jumptable_8a6bc
+ dec a
+ rst JumpTable
+ jr c, Function8a679
+ call Function891fe
+ call Function8b677
+ call Function89448
+ ret
+
+Jumptable_8a6bc: ; 8a6bc (22:66bc)
+ dw Function8a6c0
+ dw Function8a6c5
+
+
+Function8a6c0: ; 8a6c0 (22:66c0)
+ call PlayClickSFX
+ and a
+ ret
+
+Function8a6c5: ; 8a6c5 (22:66c5)
+ call PlayClickSFX
+ call Function89d0d
+ scf
+ ret
+
+Function8a6cd: ; 8a6cd (22:66cd)
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function8a757
+ call CloseSRAM
+.asm_8a6e5
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89856
+ call Function89a2e
+ call Function891ab
+ xor a
+ ld [wd02f], a
+ call CloseSRAM
+.asm_8a6fb
+ call Function89b97
+ call Function89c67
+ jr c, .asm_8a718
+ ld a, b
+ and a
+ jr z, .asm_8a6fb
+ call PlayClickSFX
+ call Function89448
+ ld a, [wd011]
+ ld hl, Jumptable_8a74f
+ rst JumpTable
+ jr nc, .asm_8a6e5
+ jr .asm_8a742
+.asm_8a718
+ call OpenSRAMBank4
+ call Function8a765
+ call CloseSRAM
+ jr nc, .asm_8a73f
+ call Mobile22_SetBGMapMode0
+ call Function89448
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ call WaitBGMap
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a6e5
+.asm_8a73f
+ call CloseSRAM
+.asm_8a742
+ call ClearBGPalettes
+ call Function89448
+ call Function891d3
+ call Function8b677
+ ret
+
+Jumptable_8a74f: ; 8a74f (22:674f)
+ dw Function8a78c
+ dw Function8a7cb
+ dw Function8a818
+ dw Function8a8a1
+
+
+Function8a757: ; 8a757 (22:6757)
+ call Function8939a
+ xor a
+ ld [wd010], a
+ ld [wd011], a
+ ld [wd012], a
+ ret
+
+Function8a765: ; 8a765 (22:6765)
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld de, wd002
+ ld c, $6
+ call Function89185
+ pop bc
+ jr nz, .asm_8a78a
+ push bc
+ ld hl, $11
+ add hl, bc
+ ld de, wd008
+ ld c, $8
+ call Function89185
+ pop bc
+ jr nz, .asm_8a78a
+ and a
+ ret
+.asm_8a78a
+ scf
+ ret
+
+Function8a78c: ; 8a78c (22:678c)
+ call Function891fe
+ ld de, wd002
+ ld b, $5
+ callba NamingScreen
+ call OpenSRAMBank4
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ call InitName
+ call CloseSRAM
+ call DelayFrame
+ call JoyTextDelay
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ pop bc
+ call Function89844
+ call CloseSRAM
+ and a
+ ret
+
+Function8a7cb: ; 8a7cb (22:67cb)
+ ld a, [MenuSelection]
+ push af
+ call Function891de
+ ld de, wd008
+ ld c, $0
+ callba Function17a68f
+ jr c, .asm_8a7f4
+ ld hl, wd008
+ ld a, $ff
+ ld bc, $8
+ call ByteFill
+ ld h, d
+ ld l, e
+ ld de, wd008
+ ld c, $8
+ call Function89193
+.asm_8a7f4
+ pop af
+ ld [MenuSelection], a
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function89856
+ call Function89a2e
+ call Function891ab
+ call CloseSRAM
+ and a
+ ret
+
+Function8a818: ; 8a818 (22:6818)
+ call Function89a23
+ ld hl, wd002
+ call Function89331
+ jr c, .asm_8a875
+ ld hl, wd008
+ call Function89b45
+ jr nc, .asm_8a87a
+ call OpenSRAMBank4
+ call Function8a765
+ jr nc, .asm_8a863
+ call Function8931b
+ push bc
+ ld hl, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ ld c, $6
+ call Function89193
+ pop bc
+ ld hl, $11
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, wd008
+ ld c, $8
+ call Function89193
+ hlcoord 1, 13
+ ld de, .string_8a868
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+.asm_8a863
+ call CloseSRAM
+ scf
+ ret
+; 8a868 (22:6868)
+
+.string_8a868
+ db "めいし", $1f, "かきかえ まし", $22, "@"
+
+.asm_8a875
+ ld de, String_8a88b
+ jr .asm_8a87d
+.asm_8a87a
+ ld de, String_8911c
+.asm_8a87d
+ hlcoord 1, 13
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+ and a
+ ret
+; 8a88b (22:688b)
+
+String_8a88b: ; 8a88b
+ db "おともだち", $25, "なまえが"
+ next "かかれて いません!@"
+; 8a8a1
+
+Function8a8a1: ; 8a8a1 (22:68a1)
+ call OpenSRAMBank4
+ call Function8a765
+ call CloseSRAM
+ jr nc, .asm_8a8bf
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a8c1
+.asm_8a8bf
+ scf
+ ret
+.asm_8a8c1
+ and a
+ ret
+
+Function8a8c3: ; 8a8c3 (22:68c3)
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call Function8939a
+ call Function89856
+ call CloseSRAM
+ call Function891ab
+ hlcoord 1, 13
+ ld de, String_8a919
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8a90f
+ call OpenSRAMBank4
+ call Function892b4
+ call CloseSRAM
+ call Function89a23
+ call Mobile22_SetBGMapMode0
+ hlcoord 1, 13
+ ld de, String_8a926
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+.asm_8a90f
+ call Function89448
+ call Function891fe
+ call Function8b677
+ ret
+; 8a919 (22:6919)
+
+String_8a919: ; 8a919
+ db "このデータ", $1f, "けしますか?@"
+; 8a926
+
+String_8a926: ; 8a926
+ db "データ", $1f, "けしまし", $22, "@"
+; 8a930
+
+Function8a930: ; 8a930 (22:6930)
+ ld a, [MenuSelection]
+ push af
+ xor a
+ ld [wd032], a
+ ld a, $1
+ ld [wd033], a
+ ld a, [wd034]
+ ld [wd0e3], a
+.asm_8a943
+ call Function8b7bd
+ ld a, [wMenuJoypad]
+ and $1
+ jr nz, .asm_8a953
+ ld a, c
+ and a
+ jr nz, .asm_8a943
+ pop af
+ ret
+.asm_8a953
+ call OpenSRAMBank4
+ pop af
+ cp c
+ jr z, .asm_8a995
+ push bc
+ ld [MenuSelection], a
+ call Function8931b
+ push bc
+ ld h, b
+ ld l, c
+ ld de, wd002
+ ld bc, $25
+ call CopyBytes
+ pop de
+ pop bc
+ ld a, c
+ ld [MenuSelection], a
+ call Function8931b
+ push bc
+ ld h, b
+ ld l, c
+ ld bc, $25
+ call CopyBytes
+ pop de
+ ld hl, wd002
+ ld bc, $25
+ call CopyBytes
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+ ld de, SFX_SWITCH_POKEMON
+ call WaitPlaySFX
+.asm_8a995
+ call CloseSRAM
+ ret
+
+Function8a999: ; 8a999 (22:6999)
+ ld hl, MenuDataHeader_0x8a9c9
+ call LoadMenuDataHeader
+ ld c, $1
+.asm_8a9a1
+ call Function8a9ce
+ jr c, .asm_8a9bb
+ push bc
+ push de
+ call LoadStandardMenuDataHeader
+ pop de
+ dec e
+ ld a, e
+ ld hl, Jumptable_8a9c5
+ rst JumpTable
+ call Function891fe
+ call Function89b28
+ pop bc
+ jr .asm_8a9a1
+.asm_8a9bb
+ call Function89209
+ call CloseWindow
+ call Function8920f
+ ret
+
+Jumptable_8a9c5: ; 8a9c5 (22:69c5)
+ dw Function8aa0a
+ dw Function8ab3b
+; 8a9c9 (22:69c9)
+
+MenuDataHeader_0x8a9c9: ; 0x8a9c9
+ db $40 ; flags
+ db 04, 11 ; start coords
+ db 11, 18 ; end coords
+; 8a9ce
+
+Function8a9ce: ; 8a9ce (22:69ce)
+ push bc
+ decoord 11, 4
+ ld b, $6
+ ld c, $6
+ call Function89b3b
+ pop bc
+ ld a, c
+ ld hl, MenuDataHeader_0x8a9f2
+ call Function89d5e
+ ld hl, Function8aa09
+ call Function89d85
+ jr c, .asm_8a9ed
+ ld c, a
+ ld e, a
+ and a
+ ret
+.asm_8a9ed
+ ld c, a
+ ld e, $0
+ scf
+ ret
+; 8a9f2 (22:69f2)
+
+MenuDataHeader_0x8a9f2: ; 0x8a9f2
+ db $40 ; flags
+ db 04, 11 ; start coords
+ db 11, 18 ; end coords
+ dw MenuData2_0x8a9fa
+ db 1 ; default option
+; 0x8a9fa
+
+MenuData2_0x8a9fa: ; 0x8a9fa
+ db $a0 ; flags
+ db 3 ; items
+ db "へんしゅう@"
+ db "みる@"
+ db "やめる@"
+; 0x8aa09
+
+Function8aa09: ; 8aa09
+ ret
+; 8aa0a
+
+Function8aa0a: ; 8aa0a (22:6a0a)
+ ld a, $1
+ ld [wd02f], a
+ ld [wd011], a
+ xor a
+ ld [wd010], a
+ ld [wd012], a
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+.asm_8aa3a
+ call Function8987f
+ call Function89a2e
+ call Function891ab
+.asm_8aa43
+ call Function89b97
+ call Function89c67
+ jr c, .asm_8aa61
+ ld a, b
+ and a
+ jr z, .asm_8aa43
+ call PlayClickSFX
+ call Function89448
+ ld a, [wd011]
+ dec a
+ ld hl, Jumptable_8aa6d
+ rst JumpTable
+ jr nc, .asm_8aa3a
+ jr .asm_8aa69
+.asm_8aa61
+ call Function89448
+ call Function8ab11
+ jr nc, .asm_8aa3a
+.asm_8aa69
+ call Function89448
+ ret
+
+Jumptable_8aa6d: ; 8aa6d (22:6a6d)
+ dw Function8aa73
+ dw Function8aab6
+ dw Function8ab11
+
+
+Function8aa73: ; 8aa73 (22:6a73)
+ ld a, [MenuSelection]
+ ld e, a
+ push de
+ call Function891de
+ ld de, wd008
+ ld c, $0
+ callba Function17a68f
+ jr c, .asm_8aa9d
+ ld hl, wd008
+ ld a, $ff
+ ld bc, $8
+ call ByteFill
+ ld h, d
+ ld l, e
+ ld de, wd008
+ ld c, $8
+ call Function89193
+.asm_8aa9d
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ pop de
+ ld a, e
+ ld [MenuSelection], a
+ and a
+ ret
+
+Function8aab6: ; 8aab6 (22:6ab6)
+ call Function89a23
+ ld hl, wd008
+ call Function89b45
+ jr nc, Function8ab00
+ call OpenSRAMBank4
+ ld de, wd008
+ ld hl, $a603
+ ld c, $8
+ call Function89185
+ jr z, .asm_8aaeb
+ ld hl, wd008
+ ld de, $a603
+ ld c, $8
+ call Function89193
+ hlcoord 1, 13
+ ld de, String_8aaf0
+ call PlaceString
+ call WaitBGMap
+ call JoyWaitAorB
+.asm_8aaeb
+ call CloseSRAM
+ scf
+ ret
+; 8aaf0 (22:6af0)
+
+String_8aaf0: ; 8aaf0
+ db "あたらしい めいし<PKMN>できまし<LNBRK>@"
+; 8ab00
+
+Function8ab00: ; 8ab00
+ ld de, String_8911c
+ hlcoord 1, 13
+ call PlaceString
+ call WaitBGMap
+ call Mobile22_ButtonSound
+ and a
+ ret
+
+Function8ab11: ; 8ab11 (22:6b11)
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ ld c, $8
+ call Function89185
+ call CloseSRAM
+ jr z, .asm_8ab37
+ call Function89a23
+ hlcoord 1, 13
+ ld de, String_89135
+ call PlaceString
+ ld a, $2
+ call Function89254
+ jr c, .asm_8ab39
+.asm_8ab37
+ scf
+ ret
+.asm_8ab39
+ and a
+ ret
+
+Function8ab3b: ; 8ab3b (22:6b3b)
+.pressed_start
+ call Function891fe
+ call ClearBGPalettes
+ call Function893cc
+ call Function89807
+ call Function89492
+ call Function894ca
+ call OpenSRAMBank4
+ ld hl, $a603
+ ld de, wd008
+ call Function89381
+ call CloseSRAM
+ call Function8987f
+ call OpenSRAMBank4
+ hlcoord 1, 13
+ ld bc, $a007
+ call Function89a0c
+ call CloseSRAM
+ call Function891ab
+ call .JoypadLoop
+ jr c, .pressed_start
+ ret
+
+.JoypadLoop: ; 8ab77 (22:6b77)
+ call JoyTextDelay_ForcehJoyDown
+ bit A_BUTTON_F, c
+ jr nz, .a_b_button
+ bit B_BUTTON_F, c
+ jr nz, .a_b_button
+ bit START_F, c
+ jr z, .JoypadLoop
+ call PlayClickSFX
+ call Function89d0d
+ scf
+ ret
+
+.a_b_button
+ call PlayClickSFX
+ and a
+ ret
+
+Function8ab93: ; 8ab93 (22:6b93)
+ call ClearBGPalettes
+ call LoadStandardMenuDataHeader
+ callba Function105688
+ call ClearSprites
+ call Function891fe
+ call Function89b28
+ ret
+; 8aba9 (22:6ba9)
+
+Function8aba9: ; 8aba9
+ ld a, $2
+ call Function8b94a
+ ld a, $1
+ ld [wd032], a
+.asm_8abb3
+ call Function891fe
+ call Function8b677
+.asm_8abb9
+ call Function8b7bd
+ jr z, .asm_8abdf
+ ld a, c
+ ld [MenuSelection], a
+ call OpenSRAMBank4
+ call Function8931b
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ call CloseSRAM
+ jr c, .asm_8abe2
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call CloseSRAM
+ jr .asm_8abb9
+
+.asm_8abdf
+ xor a
+ ld c, a
+ ret
+
+.asm_8abe2
+ call PlayClickSFX
+.asm_8abe5
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ call Function89844
+ call CloseSRAM
+ call OpenSRAMBank4
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call CloseSRAM
+ call Function891ab
+.asm_8ac0f
+ call Function89a57
+ jr c, .asm_8ac0f
+ and a
+ jr z, .asm_8abe5
+ cp $2
+ jr z, .asm_8ac0f
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ hlcoord 1, 14
+ ld de, String_8ac3b
+ call PlaceString
+ ld a, $1
+ call Function8925e
+ jp c, .asm_8abb3
+ ld a, [MenuSelection]
+ ld c, a
+ ret
+; 8ac3b
+
+String_8ac3b: ; 8ac3b
+ db "こ", $25, "ともだち", $1d, "でんわを"
+ next "かけますか?@"
+; 8ac4e
+
+Function8ac4e: ; 8ac4e
+ xor a
+ ld [MenuSelection], a
+ push de
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ pop bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call Function891ab
+ ret
+; 8ac70
+
+Function8ac70: ; 8ac70
+ push de
+ ld a, $3
+ call Function8b94a
+
+Function8ac76: ; 8ac76
+ call Function891fe
+ call Function8b677
+
+Function8ac7c: ; 8ac7c
+ call Function8b7bd
+ jr z, .asm_8acf0
+ ld a, c
+ ld [wd02f], a
+ ld [MenuSelection], a
+ call OpenSRAMBank4
+ call Function8931b
+ call Function8932d
+ call CloseSRAM
+ jr nc, .asm_8acb0
+ call OpenSRAMBank4
+ ld hl, $0011
+ add hl, bc
+ call Function89b45
+ call CloseSRAM
+ jr nc, .asm_8accc
+ call OpenSRAMBank4
+ call Function892b7
+ call CloseSRAM
+ jr .asm_8accc
+
+.asm_8acb0
+ call Function8ad0b
+ jr c, Function8ac76
+ and a
+ jr nz, .asm_8accc
+ call OpenSRAMBank4
+ ld h, b
+ ld l, c
+ ld d, $0
+ ld e, $6
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld c, $1f
+ call Function89193
+ jr .asm_8ace4
+
+.asm_8accc
+ pop hl
+ call OpenSRAMBank4
+ ld d, b
+ ld e, c
+ ld c, $6
+ call Function89193
+ ld a, $6
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld c, $1f
+ call Function89193
+
+.asm_8ace4
+ call CloseSRAM
+ call LoadStandardFont
+ ld a, [wd02f]
+ ld c, a
+ and a
+ ret
+
+.asm_8acf0
+ ld hl, UnknownText_0x8ad06
+ call PrintText
+ ld a, $2
+ call Function89259
+ jp c, Function8ac7c
+ call LoadStandardFont
+ pop de
+ ld c, $0
+ scf
+ ret
+; 8ad06
+
+UnknownText_0x8ad06: ; 0x8ad06
+ ; Finish registering CARDS?
+ text_jump UnknownText_0x1c554a
+ db "@"
+; 0x8ad0b
+
+Function8ad0b: ; 8ad0b
+.asm_8ad0b
+ ld a, [MenuSelection]
+ ld [wd02f], a
+ call Function891de
+ call ClearBGPalettes
+ call Function893cc
+ call OpenSRAMBank4
+ call Function8931b
+ push bc
+ call Function89844
+ call Function8939a
+ call Function89856
+ hlcoord 1, 13
+ call Function899fe
+ call CloseSRAM
+ call Function891ab
+ pop bc
+.asm_8ad37
+ push bc
+ call Function89a57
+ pop bc
+ jr c, .asm_8ad37
+ and a
+ jr z, .asm_8ad0b
+ cp $2
+ jr z, .asm_8ad37
+ call Mobile22_SetBGMapMode0
+ push bc
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, String_8ad89
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $2
+ call Function8925e
+ jr c, .asm_8ad87
+ call Mobile22_SetBGMapMode0
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld de, String_8ad9c
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $1
+ call Function8925e
+ jr c, .asm_8ad84
+ ld a, $0
+ jr .asm_8ad86
+
+.asm_8ad84
+ ld a, $1
+
+.asm_8ad86
+ and a
+
+.asm_8ad87
+ pop bc
+ ret
+; 8ad89
+
+String_8ad89: ; 8ad89
+ db "こ", $25, "めいし", $1f, "けして"
+ next "いれかえますか?@"
+; 8ad9c
+
+String_8ad9c: ; 8ad9c
+ db "おともだち", $25, "なまえを"
+ next "のこして おきますか?@"
+; 8adb3
+
+Function8adb3: ; 8adb3
+ call Function891de
+ call Function8a262
+ push af
+ call Function891de
+ pop af
+ ret
+; 8adbf
+
+Function8adbf: ; 8adbf
+ call OpenSRAMBank4
+ ld hl, $a603
+ call Function89b45
+ call CloseSRAM
+ ret
+; 8adcc
+
+Function8adcc: ; 8adcc
+ call OpenSRAMBank4
+ call Function8b3b0
+ call CloseSRAM
+ ret nc
+ cp $2
+ ret z
+ scf
+ ret
+; 8addb
diff --git a/misc/mobile_22_2.asm b/mobile/mobile_22_2.asm
index 321998dc7..321998dc7 100644
--- a/misc/mobile_22_2.asm
+++ b/mobile/mobile_22_2.asm
diff --git a/mobile/mobile_40.asm b/mobile/mobile_40.asm
new file mode 100644
index 000000000..79cba8310
--- /dev/null
+++ b/mobile/mobile_40.asm
@@ -0,0 +1,8158 @@
+SECTION "mobile_40", ROMX
+
+Function100000: ; 100000
+; d: 1 or 2
+; e: bank
+; bc: addr
+ ld a, [rSVBK]
+ push af
+ ld a, 1
+ ld [rSVBK], a
+
+ call Function100022
+ call Function1000ba
+ call Function100675
+ call Function100057
+ call Function10016f
+ call Function100276
+
+ push bc
+ call Function100301
+ pop bc
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 100022
+
+Function100022: ; 100022
+ push de
+ push bc
+ call SetRAMStateForMobile
+ pop bc
+ pop de
+ ld a, d
+ ld [wcd21], a
+ ld a, e
+ ld [wcd22], a
+ ld a, c
+ ld [wcd23], a
+ ld a, b
+ ld [wcd24], a
+ callba Function10127e
+ callba MobileFunc_106462
+ callba Function106464 ; load broken gfx
+ callba Function11615a ; init RAM
+ ld hl, VramState
+ set 1, [hl]
+ ret
+; 100057
+
+Function100057: ; 100057
+ call DisableMobile
+ call ReturnToMapFromSubmenu
+ ld hl, VramState
+ res 1, [hl]
+ ret
+; 100063
+
+SetRAMStateForMobile: ; 100063
+ xor a
+ ld hl, BGMapBuffer
+ ld bc, $65
+ call ByteFill
+ xor a
+ ld hl, wc300
+ ld bc, $100
+ call ByteFill
+ ld a, [rIE]
+ ld [BGMapBuffer], a
+ xor a
+ ld [hMapAnims], a
+ ld [hLCDCPointer], a
+ ret
+; 100082
+
+EnableMobile: ; 100082
+ xor a
+ ld hl, OverworldMap
+ ld bc, OverworldMapEnd - OverworldMap
+ call ByteFill
+
+ di
+ call DoubleSpeed
+ xor a
+ ld [rIF], a
+ ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL
+ ld [rIE], a
+ xor a
+ ld [hMapAnims], a
+ ld [hLCDCPointer], a
+ ld a, $01
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ei
+
+ ret
+; 0x1000a4
+
+DisableMobile: ; 1000a4
+ di
+ xor a
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ xor a
+ ld [hVBlank], a
+ call NormalSpeed
+ xor a
+ ld [rIF], a
+ ld a, [BGMapBuffer]
+ ld [rIE], a
+ ei
+ ret
+; 1000ba
+
+Function1000ba: ; 1000ba
+.loop
+ ; call [wcd22]:([wcd23][wcd24] + [wMobileCommsJumptableIndex])
+ ld hl, wcd23
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wMobileCommsJumptableIndex]
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [wcd22]
+ call GetFarHalfword
+ ld a, [wcd22]
+ rst FarCall
+
+ call Function1000e8
+ call Function1000fa
+ call Function100144
+ call Function100163
+ ld a, [wcd2b]
+ and a
+ jr z, .loop
+ call DelayFrame
+ ret
+; 1000e8
+
+Function1000e8: ; 1000e8
+ ld hl, wcd29
+ bit 7, [hl]
+ ret z
+ callba Function115dd3
+ ld hl, wcd29
+ set 6, [hl]
+ ret
+; 1000fa
+
+Function1000fa: ; 1000fa
+ ld a, [wc30d]
+ and a
+ ret z
+ ld hl, wcd29
+ bit 4, [hl]
+ ret z
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100117
+ callba Function11619d
+ ld hl, wcd29
+ set 6, [hl]
+ ret
+
+.asm_100117
+ di
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ and $13
+ ld [rIE], a
+ xor a
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ei
+
+ ld a, [wLinkMode]
+ push af
+ xor a
+ ld [wLinkMode], a
+ ld a, $04
+ ld [wc314 + 5], a
+ callba Function11619d
+ ld hl, wcd29
+ set 6, [hl]
+ pop af
+ ld [wLinkMode], a
+ ret
+; 100144
+
+Function100144: ; 100144
+ ld hl, wcd29
+ bit 5, [hl]
+ jr z, .asm_100155
+ res 5, [hl]
+ res 2, [hl]
+ res 6, [hl]
+ call Function100320
+ ret
+
+.asm_100155
+ bit 2, [hl]
+ ret z
+ res 2, [hl]
+ res 6, [hl]
+ callba HDMATransferTileMapToWRAMBank3
+ ret
+; 100163
+
+Function100163: ; 100163
+ ld hl, wcd29
+ bit 6, [hl]
+ ret z
+ res 6, [hl]
+ call DelayFrame
+ ret
+; 10016f
+
+Function10016f: ; 10016f
+ ld a, [wcd2b]
+ cp $01
+ ret z
+ cp $02
+ ret z
+ cp $ff
+ jp z, .asm_1001f5
+ cp $fe
+ jr z, .asm_1001c4
+ cp $f5
+ jr z, .asm_1001e7
+ cp $f6
+ jr z, .asm_1001b6
+ cp $fa
+ jp z, .asm_1001bd
+ cp $f7
+ jp z, .asm_1001ee
+ cp $f4
+ jr z, .asm_1001d2
+ cp $f3
+ jr z, .asm_1001cb
+ cp $f1
+ jr z, .asm_1001c4
+ cp $f2
+ jr z, .asm_1001c4
+ cp $fc
+ jr z, .asm_1001e6
+ cp $fb
+ jr z, .asm_1001af
+ cp $f8
+ ret z
+ ret ; ????????????????????????????
+
+.asm_1001af
+ ld a, $d7
+ ld de, 0
+ jr .asm_1001d7
+
+.asm_1001b6
+ ld a, $d5
+ ld de, 0
+ jr .asm_1001d7
+
+.asm_1001bd
+ ld a, $d6
+ ld de, 0
+ jr .asm_1001d7
+
+.asm_1001c4
+ ld a, $d2
+ ld de, 2
+ jr .asm_1001d7
+
+.asm_1001cb
+ ld a, $d1
+ ld de, 1
+ jr .asm_1001d7
+
+.asm_1001d2
+ ld a, $d0
+ ld de, 0
+
+.asm_1001d7
+ ld [wc300], a
+ ld a, d
+ ld [wc302], a
+ ld a, e
+ ld [wc301], a
+ call Function10020b
+ ret
+
+.asm_1001e6
+ ret
+
+.asm_1001e7
+ ld de, String10025e
+ call Function100232
+ ret
+
+.asm_1001ee
+ ld de, String10024d
+ call Function100232
+ ret
+
+.asm_1001f5
+ ld a, [wcd2c]
+ ld [wc300], a
+ ld a, [wcd2d]
+ ld [wc302], a
+ ld a, [wcd2d]
+ ld [wc301], a
+ call Function10020b
+ ret
+; 10020b
+
+Function10020b: ; 10020b
+ xor a
+ ld [wc303], a
+ callba FadeOutPalettes
+ callba Function106464
+ call HideSprites
+ call DelayFrame
+
+ ld a, [rSVBK]
+ push af
+ ld a, $01
+ ld [rSVBK], a
+
+ callba DisplayMobileError
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 100232
+
+Function100232: ; 100232
+ push de
+ callba Function106464
+ call Function3f20
+ call UpdateSprites
+ hlcoord 1, 2
+ pop de
+ call PlaceString
+ call Function100320
+ call JoyWaitAorB
+ ret
+; 10024d
+
+String10024d: ; 10024d
+ db "つうしんを キャンセル しました@"
+; 10025e
+
+String10025e: ; 10025e
+ db "おともだちと えらんだ へやが"
+ next "ちがうようです@"
+; 100276
+
+Function100276: ; 100276
+ ld a, [wcd2b]
+ cp $01
+ jr z, .asm_10029f
+ cp $02
+ jr z, .asm_100296
+ cp $f5
+ jr z, .asm_1002a5
+ cp $f6
+ jr z, .asm_1002a5
+ cp $f7
+ jr z, .asm_100293
+ cp $f8
+ jr z, .asm_1002b1
+ jr .asm_1002c0
+
+.asm_100293
+ ld c, $02
+ ret
+
+.asm_100296
+ callba Script_reloadmappart
+ ld c, $04
+ ret
+
+.asm_10029f
+ call Function1002dc
+ ld c, 0
+ ret
+
+.asm_1002a5
+ callba Script_reloadmappart
+ call Function1002ed
+ ld c, $03
+ ret
+
+.asm_1002b1
+ call Function1002c9
+ call Function1002dc
+ ld de, String10024d
+ call Function100232
+ ld c, $02
+ ret
+
+.asm_1002c0
+ call Function1002c9
+ call Function1002dc
+ ld c, $01
+ ret
+; 1002c9
+
+Function1002c9: ; 1002c9
+ ld hl, wcd2a
+ bit 0, [hl]
+ ret z
+ callba CleanUpBattleRAM
+ callba LoadPokemonData
+ ret
+; 1002dc
+
+Function1002dc: ; 1002dc
+ ld a, MAPSETUP_LINKRETURN
+ ld [hMapEntryMethod], a
+ callba RunMapSetupScript
+ xor a
+ ld [hMapEntryMethod], a
+ call LoadStandardFont
+ ret
+; 1002ed
+
+Function1002ed: ; 1002ed
+ callba LoadOW_BGPal7
+ callba ApplyPals
+ ld a, $01
+ ld [hCGBPalUpdate], a
+ call DelayFrame
+ ret
+; 100301
+
+Function100301: ; 100301
+ ld hl, wcd2a
+ bit 1, [hl]
+ ret z
+ callba Function106464
+ callba Function10202c
+ callba Function115dd3
+ call Function100320
+ call JoyWaitAorB
+ ret
+; 100320
+
+Function100320: ; 100320
+ callba Mobile_ReloadMapPart
+ ret
+; 100327
+
+Function100327: ; 100327
+ callba HDMATransferTileMapToWRAMBank3
+ ret
+; 100327
+
+
+Function10032e: ; 10032e
+ call Function10034d
+ ld e, a
+ ret nc
+ ld [wcd2b], a
+ ret
+; 100337
+
+Function100337: ; 100337
+ call Function10032e
+ ret c
+ ld a, [wc821]
+ bit 4, a
+ jr z, .asm_100345
+ ld a, e
+ and a
+ ret
+
+.asm_100345
+ ld a, $f9
+ ld e, a
+ ld [wcd2b], a
+ scf
+ ret
+; 10034d
+
+Function10034d: ; 10034d
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_10036a
+ bit 2, a
+ jr nz, .asm_10037e
+ bit 3, a
+ jr nz, .asm_100366
+ bit 0, a
+ jr nz, .asm_100364
+ ld a, $01
+ and a
+ ret
+
+.asm_100364
+ xor a
+ ret
+
+.asm_100366
+ ld a, $02
+ and a
+ ret
+
+.asm_10036a
+ ld a, 0
+ call Function3e32
+ ld [wcd2c], a
+ ld a, h
+ ld [wcd2d], a
+ ld a, l
+ ld [wcd2e], a
+ ld a, $ff
+ scf
+ ret
+
+.asm_10037e
+ ld a, $fe
+ scf
+ ret
+; 100382
+
+Function100382: ; 100382
+ ld a, [wcd27]
+ ld hl, Jumptable_10044e
+ rst JumpTable
+ ret
+; 10038a
+
+Function10038a: ; 10038a
+ ld hl, wccb4
+ ld a, $2e
+ call Function3e32
+ ret
+; 100393
+
+Function100393: ; 100393
+ ld hl, wcc60
+ ld a, $3a
+ call Function3e32
+ ret
+; 10039c
+
+Function10039c: ; 10039c
+ ld hl, wcc60
+ ld de, w3_d000
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003ab
+
+Function1003ab: ; 1003ab
+ ld hl, w3_d000
+ ld de, wcc60
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003ba
+
+Function1003ba: ; 1003ba
+ ld hl, wccb4
+ ld de, w3_d080
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003c9
+
+Function1003c9: ; 1003c9
+ ld hl, w3_d080
+ ld de, wccb4
+ ld bc, $54
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1003d8
+
+Function1003d8: ; 1003d8
+ ld hl, wccb4
+ ld a, [hli]
+ ld c, a
+ ld b, 0
+ push hl
+ add hl, bc
+ ld a, [BGMapPalBuffer]
+ ld [hl], a
+ pop hl
+ inc bc
+ call Function10043a
+ add hl, bc
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, c
+ add $02
+ ld [wccb4], a
+ ret
+; 1003f5
+
+Function1003f5: ; 1003f5
+ ld a, [wcc60]
+ sub $03
+ ld [wcc60], a
+ ld a, [wccb4]
+ sub $03
+ ld [wccb4], a
+ ret
+; 100406
+
+Function100406: ; 100406
+ ld a, [wcc60]
+ sub $02
+ ld c, a
+ ld b, 0
+ ld hl, wcc61
+ call Function10043a
+ add hl, bc
+ ld a, [hli]
+ cp e
+ jr nz, .asm_100426
+ ld a, [hld]
+ cp d
+ jr nz, .asm_100426
+ dec hl
+ ld a, [BGMapPalBuffer]
+ cp [hl]
+ jr nz, .asm_10042d
+ xor a
+ ret
+
+.asm_100426
+ ld a, $f4
+ ld [wcd2b], a
+ jr .asm_100432
+
+.asm_10042d
+ ld a, $f3
+ ld [wcd2b], a
+
+.asm_100432
+ push hl
+ ld hl, wcd7c
+ inc [hl]
+ pop hl
+ scf
+ ret
+; 10043a
+
+Function10043a: ; 10043a
+ push hl
+ push bc
+ ld de, 0
+.asm_10043f
+ ld a, [hli]
+ add e
+ ld e, a
+ ld a, d
+ adc 0
+ ld d, a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_10043f
+ pop bc
+ pop hl
+ ret
+; 10044e
+
+
+Jumptable_10044e: ; 10044e (40:444e)
+ dw Function10046a
+ dw Function10047c
+ dw Function100493
+ dw Function1004ba
+ dw Function1004f4
+ dw Function1004ce
+ dw Function1004de
+ dw Function1004a4
+ dw Function100495
+ dw Function1004ce
+ dw Function1004de
+ dw Function1004e9
+ dw Function1004f4
+ dw Function1004a4
+
+Function10046a: ; 10046a
+ ld hl, BGMapPalBuffer
+ inc [hl]
+ call Function1003d8
+ call Function1003ba
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 10047c
+
+Function10047c: ; 10047c
+ call Function100337
+ ret c
+ ret z
+ cp $02
+ jr z, .asm_100487
+ jr .asm_10048d
+
+.asm_100487
+ ld a, $08
+ ld [wcd27], a
+ ret
+
+.asm_10048d
+ ld a, $02
+ ld [wcd27], a
+ ret
+; 100493
+
+Function100493: ; 100493
+ jr asm_100497
+
+Function100495: ; 100495
+ jr asm_100497
+
+asm_100497
+ call Function100337
+ ret c
+ ret z
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004a4
+
+Function1004a4: ; 1004a4
+ call Function100406
+ jr c, .asm_1004b8
+ call Function1003c9
+ call Function1003f5
+ ld a, [wcd27]
+ set 7, a
+ ld [wcd27], a
+ ret
+
+.asm_1004b8
+ scf
+ ret
+; 1004ba
+
+Function1004ba: ; 1004ba
+ call Function10038a
+ and a
+ jr nz, .asm_1004c8
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+
+.asm_1004c8
+ ld a, $08
+ ld [wcd27], a
+ ret
+; 1004ce
+
+Function1004ce: ; 1004ce
+ call Function100337
+ ret c
+ ret z
+ cp $02
+ ret nz
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004de
+
+Function1004de: ; 1004de
+ call Function100393
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004e9
+
+Function1004e9: ; 1004e9
+ call Function10038a
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ ret
+; 1004f4
+
+Function1004f4: ; 1004f4
+ call Function100337
+ ret c
+ ret z
+ ld a, [wcd27]
+ inc a
+ ld [wcd27], a
+ call Function10039c
+ ret
+; 100504
+
+Function100504: ; 100504
+ push de
+ call Function3f20
+ call UpdateSprites
+ pop de
+ hlcoord 4, 2
+ call PlaceString
+ ret
+; 100513
+
+Function100513: ; 100513
+ call Function3f7c
+ call PlaceVerticalMenuItems
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ ret
+; 100522
+
+Function100522: ; 100522
+ ld a, [wcd28]
+ ld hl, Jumptable_10052a
+ rst JumpTable
+ ret
+; 10052a
+
+Jumptable_10052a: ; 10052a
+ dw Function100534
+ dw Function100545
+ dw Function100545
+ dw Function100545
+ dw Function10054d
+; 100534
+
+Function100534: ; 100534
+ call Function100513
+ call UpdateSprites
+ call ApplyTilemap
+ ld a, [wcd28]
+ inc a
+ ld [wcd28], a
+ ret
+; 100545
+
+Function100545: ; 100545
+ ld a, [wcd28]
+ inc a
+ ld [wcd28], a
+ ret
+; 10054d
+
+Function10054d: ; 10054d
+ callba MobileMenuJoypad
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ call MenuClickSound
+ bit 0, a
+ jr nz, .asm_100565
+ bit 1, a
+ jr nz, .asm_10056f
+ ret
+
+.asm_100565
+ ld a, [wcd28]
+ set 7, a
+ ld [wcd28], a
+ and a
+ ret
+
+.asm_10056f
+ ld a, [wcd28]
+ set 7, a
+ ld [wcd28], a
+ scf
+ ret
+; 100579
+
+Function100579: ; 100579
+ ld a, [wcd26]
+ ld hl, Jumptable_100581
+ rst JumpTable
+ ret
+; 100581
+
+Jumptable_100581: ; 100581
+ dw Function100585
+ dw Function100597
+; 100585
+
+Function100585: ; 100585
+ ld hl, MenuDataHeader_1005b2
+ call LoadMenuDataHeader
+ ld a, 0
+ ld [wcd28], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function100597: ; 100597
+ call Function100522
+ ld a, [wcd28]
+ bit 7, a
+ ret z
+ jr nc, .asm_1005a6
+ xor a
+ ld [wMenuCursorY], a
+
+.asm_1005a6
+ call ExitMenu
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 1005b2
+
+MenuDataHeader_1005b2: ; 1005b2
+ db $40 ; flags
+ db 6, 14
+ db 10, 19
+ dw MenuData2_1005ba
+ db 1 ; default option
+
+MenuData2_1005ba:
+ db $c0 ; flags
+ db 2
+ db "はい@"
+ db "いいえ@"
+; 1005c3
+
+Function1005c3: ; 1005c3
+ ld a, [wcd26]
+ ld hl, Jumptable_1005cb
+ rst JumpTable
+ ret
+; 1005cb
+
+Jumptable_1005cb: ; 1005cb
+ dw Function1005cf
+ dw Function1005e1
+; 1005cf
+
+Function1005cf: ; 1005cf
+ ld hl, MenuDataHeader_1005fc
+ call LoadMenuDataHeader
+ ld a, 0
+ ld [wcd28], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function1005e1: ; 1005e1
+ call Function100522
+ ld a, [wcd28]
+ bit 7, a
+ ret z
+ jr nc, .asm_1005f0
+ xor a
+ ld [wMenuCursorY], a
+.asm_1005f0
+ call ExitMenu
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 1005fc
+
+MenuDataHeader_1005fc: ; 1005fc
+ db $40 ; flags
+ db 6, 14
+ db 10, 19
+ dw MenuData2_100604
+ db 1 ; default option
+
+MenuData2_100604: ; 100604
+ db $c0 ; flags
+ db 2
+ db "かける@"
+ db "まつ@"
+; 10060d
+
+Mobile_CommunicationStandby: ; 10060d
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+ call Function3eea
+ ld de, .String
+ hlcoord 4, 11
+ call PlaceString
+ ret
+; 100621
+
+.String: ; 100621
+ db "つうしんたいきちゅう!@"
+; 10062d
+
+AdvanceMobileInactivityTimerAndCheckExpired: ; 10062d
+ push bc
+ call IncrementMobileInactivityTimerByCFrames
+ pop bc
+ ld a, [wMobileInactivityTimerMinutes]
+ cp b
+ jr nc, .timed_out
+ and a
+ ret
+
+.timed_out
+ ld a, $fa
+ ld [wcd2b], a
+ scf
+ ret
+; 100641
+
+StartMobileInactivityTimer: ; 100641
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ ld [wMobileInactivityTimerSeconds], a
+ ld [wMobileInactivityTimerFrames], a
+ ret
+; 10064c
+
+IncrementMobileInactivityTimerBy1Frame: ; 10064c
+ ld c, 1
+IncrementMobileInactivityTimerByCFrames: ; 10064e
+ ld hl, wMobileInactivityTimerFrames ; timer?
+ ld a, [hl]
+ add c
+ cp 60
+ jr c, .seconds
+ xor a
+
+.seconds
+ ld [hld], a
+ ret c
+ ld a, [hl]
+ inc a
+ cp 60
+ jr c, .minutes
+ xor a
+
+.minutes
+ ld [hld], a
+ ret c
+ inc [hl]
+ ret
+; 100665
+
+Function100665: ; 100665
+ call UpdateTime
+ ld hl, wcd36
+ ld a, [hHours]
+ ld [hli], a
+ ld a, [hMinutes]
+ ld [hli], a
+ ld a, [hSeconds]
+ ld [hl], a
+ ret
+; 100675
+
+Function100675: ; 100675
+ ld hl, wcd2a
+ bit 2, [hl]
+ set 2, [hl]
+ ret nz
+ call Function1006d3
+ ret
+; 100681
+
+Function100681: ; 100681
+ push hl
+ ld hl, wcd2a
+ bit 2, [hl]
+ ld hl, wcd2a
+ set 2, [hl]
+ pop hl
+ jr nz, .asm_100694
+ push hl
+ call Function1006d3
+ pop hl
+.asm_100694
+ ld de, wcd32
+
+Function100697: ; 100697
+ ld a, [de]
+ and a
+ jr nz, .asm_1006bb
+ inc de
+ push de
+ call .asm_1006b4
+ ld de, String1006c2
+ call PlaceString
+ ld h, b
+ ld l, c
+ pop de
+ inc de
+ call .asm_1006b4
+ ld de, String1006c6
+ call PlaceString
+ ret
+
+.asm_1006b4
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ret
+
+.asm_1006bb
+ ld de, String1006ca
+ call PlaceString
+ ret
+; 1006c2
+
+String1006c2: ; 1006c2
+ db "ふん @"
+String1006c6: ; 1006c6
+ db "びょう@"
+String1006ca: ; 1006ca
+ db "1じかんいじょう@"
+; 1006d3
+
+Function1006d3: ; 1006d3
+ call UpdateTime
+ ld de, wcd34
+ ld hl, wcd38
+
+Function1006dc: ; 1006dc
+ ld a, [hld]
+ ld c, a
+ ld a, [hSeconds]
+ sub c
+ jr nc, .asm_1006e5
+ add $3c
+
+.asm_1006e5
+ ld [de], a
+ dec de
+ ld a, [hld]
+ ld c, a
+ ld a, [hMinutes]
+ sbc c
+ jr nc, .asm_1006f0
+ add $3c
+
+.asm_1006f0
+ ld [de], a
+ dec de
+ ld a, [hl]
+ ld c, a
+ ld a, [hHours]
+ sbc c
+ jr nc, .asm_1006fb
+ add $18
+
+.asm_1006fb
+ ld [de], a
+ ret
+; 1006fd
+
+Function1006fd: ; 1006fd
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 10070d
+
+Function10070d: ; 10070d
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ xor a
+ ld [hli], a
+ ld a, $0a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ call CloseSRAM
+ ret
+; 100720
+
+Function100720: ; 100720
+ xor a
+ ld [wcd6a], a
+ call UpdateTime
+ ld a, [hHours]
+ ld [wcd72], a
+ ld a, [hMinutes]
+ ld [wcd73], a
+ ld a, [hSeconds]
+ ld [wcd74], a
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ ld a, [hli]
+ ld [wcd6c], a
+ ld a, [hli]
+ ld [wcd6d], a
+ ld a, [hli]
+ ld [wcd6e], a
+ call CloseSRAM
+ ld a, [wcd6d]
+ ld [wcd6b], a
+ ret
+; 100754
+
+Function100754: ; 100754
+ call UpdateTime
+ ld a, [hHours]
+ ld [wcd72], a
+ ld a, [hMinutes]
+ ld [wcd73], a
+ ld a, [hSeconds]
+ ld [wcd74], a
+ ld a, [wcd6d]
+ ld [wcd6b], a
+ ld hl, wcd2a
+ res 6, [hl]
+ ret
+; 100772
+
+Function100772: ; 100772
+ push de
+ ld hl, wcd6c
+ ld a, [de]
+ cp [hl]
+ jr c, .asm_10079a
+ jr nz, .asm_10078c
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr c, .asm_10079a
+ jr nz, .asm_10078c
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr c, .asm_10079a
+ jr z, .asm_10079a
+
+.asm_10078c
+ pop hl
+ ld a, [hli]
+ ld [wcd6c], a
+ ld a, [hli]
+ ld [wcd6d], a
+ ld a, [hli]
+ ld [wcd6e], a
+ ret
+
+.asm_10079a
+ pop de
+ ret
+; 10079c
+
+
+Function10079c: ; 10079c
+ ld a, [wcd21]
+ cp $01
+ jr nz, .dont_quit
+ ld hl, wcd2a
+ bit 5, [hl]
+ jr nz, .dont_quit
+ ld hl, wcd2a
+ bit 6, [hl]
+ jr nz, .dont_quit
+ ld a, [wcd6a]
+ add c
+ cp 60
+ jr nc, .overflow
+ ld [wcd6a], a
+ and a
+ ret
+
+.overflow
+ sub 60
+ ld [wcd6a], a
+ ld d, b
+ push de
+ call Function1007f6
+ pop de
+ jr c, .quit
+ ld a, c
+ and a
+ jr nz, .quit
+ ld a, b
+ cp 10
+ jr nc, .quit
+ ld a, d
+ and a
+ ret z
+ ld a, [wcd6b]
+ cp b
+ ret z
+ ld a, b
+ ld [wcd6b], a
+ call Function1008e0
+ and a
+ ret
+
+.quit
+ call Function1008e0
+ ld hl, wcd2a
+ set 4, [hl]
+ ld a, $fc
+ ld [wcd2b], a
+ scf
+ ret
+
+.dont_quit
+ and a
+ ret
+; 1007f6
+
+Function1007f6: ; 1007f6
+ call UpdateTime
+ ld hl, wcd74
+ ld de, wcd71
+ call Function1006dc
+ ld a, $04
+ call GetSRAMBank
+ ld hl, $a802
+ call Function100826
+ call CloseSRAM
+ ld hl, wcd6e
+ call Function100826
+ ld a, [hHours]
+ ld [wcd72], a
+ ld a, [hMinutes]
+ ld [wcd73], a
+ ld a, [hSeconds]
+ ld [wcd74], a
+ ret
+; 100826
+
+Function100826: ; 100826
+ ld a, [wcd71]
+ add [hl]
+ sub $3c
+ jr nc, .asm_100830
+ add $3c
+
+.asm_100830
+ ld [hld], a
+ ccf
+ ld a, [BGMapBufferPtrs]
+ adc [hl]
+ sub $3c
+ jr nc, .asm_10083c
+ add $3c
+
+.asm_10083c
+ ld [hld], a
+ ld b, a
+ ccf
+ ld a, [wcd6f]
+ adc [hl]
+ ld [hl], a
+ ld c, a
+ ret
+; 100846
+
+Function100846: ; 100846
+ ld hl, wcd2a
+ bit 5, [hl]
+ jr nz, .asm_10087c
+ ld a, [wcd6e]
+ ld c, a
+ ld a, 0
+ sub c
+ jr nc, .asm_100858
+ add $3c
+
+.asm_100858
+ ld [StringBuffer2 + 2], a
+ ld a, [wcd6d]
+ ld c, a
+ ld a, $0a
+ sbc c
+ ld [StringBuffer2 + 1], a
+ xor a
+ ld [StringBuffer2], a
+ ld de, String_10088e
+ hlcoord 1, 14
+ call PlaceString
+ ld de, StringBuffer2
+ hlcoord 4, 16
+ call Function100697
+ ret
+
+.asm_10087c
+ ld de, String_10088e
+ hlcoord 1, 14
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, String_10089f
+ call PlaceString
+ ret
+; 10088e
+
+String_10088e: ; 10088e
+ db "モバイルたいせん できる"
+ next "じかん@"
+; 10089f
+
+String_10089f: ; 10089f
+ db " むせいげん@"
+; 1008a6
+
+Function1008a6: ; 1008a6
+ ld a, $04
+ ld hl, $a800
+ call GetSRAMBank
+ ld a, [hli]
+ ld [StringBuffer2], a
+ ld a, [hli]
+ ld [StringBuffer2 + 1], a
+ ld a, [hli]
+ ld [StringBuffer2 + 2], a
+ call CloseSRAM
+ ld a, [StringBuffer2 + 2]
+ ld b, a
+ ld a, 0
+ sub b
+ jr nc, .asm_1008c8
+ add $3c
+
+.asm_1008c8
+ ld b, a
+ ld a, [StringBuffer2 + 1]
+ ld c, a
+ ld a, $0a
+ sbc c
+ ld c, a
+ jr c, .asm_1008da
+ ld a, [StringBuffer2]
+ and a
+ jr nz, .asm_1008da
+ ret
+
+.asm_1008da
+ call Function10070d
+ ld c, 0
+ ret
+; 1008e0
+
+
+Function1008e0: ; 1008e0
+ ld a, [hBGMapMode]
+ ld b, a
+ ld a, [hVBlank]
+ ld c, a
+ push bc
+ xor a
+ ld [hBGMapMode], a
+ ld a, $03
+ ld [hVBlank], a
+ call Function100970
+ call Function100902
+ call Function100989
+ call DelayFrame
+ pop bc
+ ld a, c
+ ld [hVBlank], a
+ ld a, b
+ ld [hBGMapMode], a
+ ret
+; 100902
+
+Function100902: ; 100902
+ hlcoord 3, 10
+ ld b, $01
+ ld c, $0b
+ call TextBox
+ ld a, [wcd6d]
+ ld c, a
+ ld a, $0a
+ sub c
+ ld [StringBuffer2], a
+ jr z, .asm_10093f
+ ld de, .string_100966
+ hlcoord 4, 11
+ call PlaceString
+ hlcoord 8, 11
+ lb bc, 1, 2
+ ld de, StringBuffer2
+ call PrintNum
+ ld de, SFX_TWO_PC_BEEPS
+ call PlaySFX
+ callba ReloadMapPart
+ ld c, $3c
+ call DelayFrames
+ ret
+
+.asm_10093f
+ ld de, .string_10095a
+ hlcoord 4, 11
+ call PlaceString
+ ld de, SFX_4_NOTE_DITTY
+ call PlaySFX
+ callba ReloadMapPart
+ ld c, 120
+ call DelayFrames
+ ret
+; 10095a
+
+.string_10095a ; 10095a
+ db "たいせん しゅうりょう@"
+.string_100966 ; 100966
+ db "のこり ふん", $e7, "@"
+; 100970
+
+
+Function100970: ; 100970
+ hlcoord 0, 0
+ ld de, w3_dc00
+ call Function1009a5
+ hlcoord 0, 0, AttrMap
+ ld de, w3_dd68
+ call Function1009a5
+ call Function1009d2
+ call Function1009ae
+ ret
+; 100989
+
+Function100989: ; 100989
+ ld hl, w3_dc00
+ decoord 0, 0
+ call Function1009a5
+ call Function1009ae
+ callba ReloadMapPart
+ ld hl, w3_dd68
+ decoord 0, 0, AttrMap
+ call Function1009a5
+ ret
+; 1009a5
+
+Function1009a5: ; 1009a5
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $03
+ call FarCopyWRAM
+ ret
+; 1009ae
+
+Function1009ae: ; 1009ae
+ ld a, [rSVBK]
+ push af
+ ld a, $03
+ ld [rSVBK], a
+
+ ld hl, w3_d800
+ decoord 0, 0, AttrMap
+ ld c, SCREEN_WIDTH
+ ld b, SCREEN_HEIGHT
+.loop_row
+ push bc
+.loop_col
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop_col
+ ld bc, BG_MAP_WIDTH - SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop_row
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 1009d2
+
+Function1009d2: ; 1009d2
+ ld a, [rSVBK]
+ push af
+ ld a, $03
+ ld [rSVBK], a
+
+ ld a, [rVBK]
+ push af
+ ld a, $01
+ ld [rVBK], a
+
+ ld hl, w3_d800
+ debgcoord 0, 0
+ lb bc, $03, $24
+ call Get2bpp
+
+ pop af
+ ld [rVBK], a
+
+ pop af
+ ld [rSVBK], a
+ ret
+; 1009f3
+
+Function1009f3: ; 1009f3
+ ld a, [hJoyDown]
+ and SELECT + A_BUTTON
+ cp SELECT + A_BUTTON
+ jr nz, .select_a
+ ld hl, wcd2a
+ set 4, [hl]
+ ld a, $f8
+ ld [wcd2b], a
+ scf
+ ret
+
+.select_a
+ xor a
+ ret
+; 100a09
+
+_LinkBattleSendReceiveAction: ; 100a09
+ call .StageForSend
+ ld [wd431], a
+ callba PlaceWaitingText
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr nz, .not_mobile
+
+ call .MobileBattle_SendReceiveAction
+ call Function100da5
+ callba FinishBattleAnim
+ jr .done
+
+.not_mobile
+ call .LinkBattle_SendReceiveAction
+
+.done
+ ret
+; 100a2e
+
+.StageForSend: ; 100a2e
+ ld a, [wPlayerAction]
+ and a
+ jr nz, .switch
+ ld a, [CurPlayerMove]
+ ld b, BATTLEACTION_E
+ cp STRUGGLE
+ jr z, .struggle
+ ld b, BATTLEACTION_D
+ cp $ff
+ jr z, .struggle
+ ld a, [CurMoveNum]
+ jr .use_move
+
+.switch
+ ld a, [CurPartyMon]
+ add BATTLEACTION_SWITCH1
+ jr .use_move
+
+.struggle
+ ld a, b
+
+.use_move
+ and $0f
+ ret
+; 100a53
+
+.LinkBattle_SendReceiveAction: ; 100a53
+ ld a, [wd431]
+ ld [wPlayerLinkAction], a
+ ld a, $ff
+ ld [wOtherPlayerLinkAction], a
+.waiting
+ call LinkTransfer
+ call DelayFrame
+ ld a, [wOtherPlayerLinkAction]
+ inc a
+ jr z, .waiting
+
+ ld b, 10
+.receive
+ call DelayFrame
+ call LinkTransfer
+ dec b
+ jr nz, .receive
+
+ ld b, 10
+.acknowledge
+ call DelayFrame
+ call LinkDataReceived
+ dec b
+ jr nz, .acknowledge
+
+ ld a, [wOtherPlayerLinkAction]
+ ld [wBattleAction], a
+ ret
+; 100a87
+
+.MobileBattle_SendReceiveAction: ; 100a87
+ call Function100acf
+ call StartMobileInactivityTimer
+ ld a, 0
+ ld [wcd27], a
+.asm_100a92
+ call DelayFrame
+ call GetJoypad
+ callba Function100382
+ ld c, $01
+ ld b, $03
+ push bc
+ call AdvanceMobileInactivityTimerAndCheckExpired
+ pop bc
+ jr c, .asm_100ac7
+ ld b, $01
+ call Function10079c
+ jr c, .asm_100ac7
+ call Function1009f3
+ jr c, .asm_100ac7
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100ac7
+ ld a, [wcd27]
+ bit 7, a
+ jr z, .asm_100a92
+ call Function100ae7
+ jr .asm_100ace
+
+.asm_100ac7
+ ld a, $0f
+ ld [wd430], a
+ jr .asm_100ace
+
+.asm_100ace
+ ret
+; 100acf
+
+Function100acf: ; 100acf
+ ld de, Unknown_100b0a
+ ld hl, wccb5
+ ld a, [wd431]
+ ld [hli], a
+ ld c, $01
+.asm_100adb
+ ld a, [de]
+ inc de
+ ld [hli], a
+ inc c
+ and a
+ jr nz, .asm_100adb
+ ld a, c
+ ld [wccb4], a
+ ret
+; 100ae7
+
+Function100ae7: ; 100ae7
+ ld de, Unknown_100b0a
+ ld hl, wcc62
+.asm_100aed
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_100af8
+ cp [hl]
+ jr nz, .asm_100aff
+ inc hl
+ jr .asm_100aed
+
+.asm_100af8
+ ld a, [wcc61]
+ ld [wd430], a
+ ret
+
+.asm_100aff
+ ld a, $0f
+ ld [wd430], a
+ ld a, $f1
+ ld [wcd2b], a
+ ret
+; 100b0a
+
+
+SECTION "tetsuji", ROMX
+
+ charmap " ", $20 ; revert to ascii
+
+Unknown_100b0a: ; 100b0a
+ db "tetsuji", 0
+; 100b12
+
+
+SECTION "bank40_2", ROMX
+
+Function100b12: ; 100b12
+ call Function100dd8
+ ret c
+ ld hl, BattleMenuDataHeader
+ ld a, BANK(BattleMenuDataHeader)
+ ld de, LoadMenuDataHeader
+ call FarCall_de
+ ld a, BANK(BattleMenuDataHeader)
+ ld [wMenuData2_2DMenuItemStringsBank], a
+ ld a, [wBattleMenuCursorBuffer]
+ ld [wMenuCursorBuffer], a
+ call Function100e72
+ call Function100b45
+ callba InitPartyMenuBGPal7
+ call Function100ed4
+ ld a, [wMenuCursorBuffer]
+ ld [wBattleMenuCursorBuffer], a
+ call ExitMenu
+ ret
+; 100b45
+
+Function100b45: ; 100b45
+ call Function100b7a
+.loop
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba HDMATransferTileMapToWRAMBank3
+ call Function100e2d
+ pop bc
+ jr c, .asm_100b6b
+ ld a, [wMenuJoypadFilter]
+ and c
+ jr z, .loop
+ callba Mobile_GetMenuSelection
+ ret
+
+.asm_100b6b
+ ld a, [w2DMenuNumCols]
+ ld c, a
+ ld a, [w2DMenuNumRows]
+ call SimpleMultiply
+ ld [wMenuCursorBuffer], a
+ and a
+ ret
+; 100b7a
+
+Function100b7a: ; 100b7a
+ ld hl, CopyMenuData2
+ ld a, [wMenuData2_2DMenuItemStringsBank]
+ rst FarCall
+ callba Draw2DMenu
+ callba MobileTextBorder
+ call UpdateSprites
+ call ApplyTilemap
+ callba Init2DMenuCursorPosition
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ ret
+; 100b9f
+
+MobileMoveSelectionScreen: ; 100b9f
+ xor a
+ ld [wMoveSwapBuffer], a
+ callba CheckPlayerHasUsableMoves
+ ret z
+ call Function100dd8
+ jp c, xor_a_dec_a
+ call Function100e72
+ call .GetMoveSelection
+ push af
+ callba InitPartyMenuBGPal7
+ call Function100ed4
+ pop af
+ ret
+; 100bc2
+
+.GetMoveSelection: ; 100bc2
+ xor a
+ ld [hBGMapMode], a
+ call Function100c74
+ call Function100c98
+.master_loop
+ callba MoveInfoBox
+.loop
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba HDMATransferTileMapToWRAMBank3
+ call Function100e2d
+ pop bc
+ jr c, .b_button
+ ld a, [wMenuJoypadFilter]
+ and c
+ bit D_UP_F, a
+ jp nz, .d_up
+ bit D_DOWN_F, a
+ jp nz, .d_down
+ bit A_BUTTON_F, a
+ jr nz, .a_button
+ bit B_BUTTON_F, a
+ jr nz, .b_button
+ jr .loop
+
+.d_up
+ ld a, [wMenuCursorY]
+ and a
+ jp nz, .master_loop
+ ld a, [wNumMoves]
+ inc a
+ ld [wMenuCursorY], a
+ jp .master_loop
+
+.d_down
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [wNumMoves]
+ inc a
+ inc a
+ cp b
+ jp nz, .master_loop
+ ld a, $01
+ ld [wMenuCursorY], a
+ jp .master_loop
+
+.b_button
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurMoveNum], a
+ ld a, $01
+ and a
+ ret
+
+.a_button
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurMoveNum], a
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, BattleMonPP
+ add hl, bc
+ ld a, [hl]
+ and $3f
+ jr z, .no_pp_left
+ ld a, [PlayerDisableCount]
+ swap a
+ and $0f
+ dec a
+ cp c
+ jr z, .move_disabled
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, BattleMonMoves
+ add hl, bc
+ ld a, [hl]
+ ld [CurPlayerMove], a
+ xor a
+ ret
+
+.move_disabled
+ ld hl, BattleText_TheMoveIsDisabled
+ jr .print_text
+
+.no_pp_left
+ ld hl, BattleText_TheresNoPPLeftForThisMove
+
+.print_text
+ call StdBattleTextBox
+ call Call_LoadTempTileMapToTileMap
+ jp .GetMoveSelection
+; 100c74
+
+Function100c74: ; 100c74
+ hlcoord 0, 8
+ ld b, 8
+ ld c, 8
+ call TextBox
+ ld hl, BattleMonMoves
+ ld de, wListMoves_MoveIndicesBuffer
+ ld bc, NUM_MOVES
+ call CopyBytes
+ ld a, SCREEN_WIDTH * 2
+ ld [Buffer1], a
+ hlcoord 2, 10
+ predef ListMoves
+ ret
+; 100c98
+
+Function100c98: ; 100c98
+ ld de, .attrs
+ call SetMenuAttributes
+ ld a, [wNumMoves]
+ inc a
+ ld [w2DMenuNumRows], a
+ ld a, [CurMoveNum]
+ inc a
+ ld [wMenuCursorY], a
+ ret
+; 100cad
+
+.attrs ; 100cad
+ db 10, 1
+ db 255, 1
+ db $a0, $00
+ dn 2, 0
+ db D_UP | D_DOWN | A_BUTTON | B_BUTTON
+
+Mobile_PartyMenuSelect: ; 100cb5
+ call Function100dd8
+ ret c
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ res 6, [hl]
+.loop
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba PlaySpriteAnimations
+ callba HDMATransferTileMapToWRAMBank3
+ call MobileComms_CheckInactivityTimer
+ pop bc
+ jr c, .done
+ ld a, [wMenuJoypadFilter]
+ and c
+ jr z, .loop
+ call PlaceHollowCursor
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [wMenuCursorY]
+ cp b
+ jr z, .done
+ ld [wPartyMenuCursor], a
+ ld a, [hJoyLast]
+ ld b, a
+ bit 1, b
+ jr nz, .done
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ and a
+ ret
+
+.done
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ scf
+ ret
+; 100d22
+
+MobileBattleMonMenu: ; 100d22
+ call Function100dd8
+ ret c
+ call Function100d67
+ ld hl, w2DMenuFlags1
+ set 7, [hl]
+ res 6, [hl]
+.asm_100d30
+ call Mobile_SetOverworldDelay
+ callba MobileMenuJoypad
+ push bc
+ callba PlaySpriteAnimations
+ callba HDMATransferTileMapToWRAMBank3
+ call MobileComms_CheckInactivityTimer
+ pop bc
+ jr c, .asm_100d54
+ ld a, [wMenuJoypadFilter]
+ and c
+ jr nz, .asm_100d56
+ jr .asm_100d30
+
+.asm_100d54
+ scf
+ ret
+
+.asm_100d56
+ push af
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ pop af
+ bit 1, a
+ jr z, .asm_100d65
+ ret z
+ scf
+ ret
+
+.asm_100d65
+ and a
+ ret
+; 100d67
+
+Function100d67: ; 100d67
+ ld hl, .MenuDataHeader
+ call CopyMenuDataHeader
+ xor a
+ ld [hBGMapMode], a
+ call MenuBox
+ call UpdateSprites
+ call PlaceVerticalMenuItems
+ call WaitBGMap
+ call CopyMenuData2
+ call InitVerticalMenuCursor
+ ld hl, w2DMenuFlags1
+ set 6, [hl]
+ ret
+; 100d88
+
+.MenuDataHeader: ; 100d88
+ db 0 ; flags
+ db 11, 11 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+
+.MenuData2: ; 100d90
+ db $c0 ; flags
+ db 3
+ db "いれかえる@" ; TRADE
+ db "つよさをみる@" ; STATS
+ db "キャンセル@" ; CANCEL
+; 100da5
+
+Function100da5: ; 100da5
+ ld hl, wcd2a
+ res 3, [hl]
+ ld hl, wcd29
+ res 0, [hl]
+ ret
+; 100db0
+
+Function100db0: ; 100db0
+ ld hl, wcd2a
+ bit 3, [hl]
+ jr nz, .asm_100dbe
+ ld hl, wcd2a
+ set 3, [hl]
+ scf
+ ret
+
+.asm_100dbe
+ xor a
+ ret
+; 100dc0
+
+
+
+Function100dc0: ; 100dc0
+ ld a, [wLinkMode]
+ cp LINK_MOBILE
+ jr nz, .mobile
+ ld hl, wcd2a
+ bit 3, [hl]
+ jr z, .mobile
+ scf
+ ret
+
+.mobile
+ xor a
+ ret
+; 100dd2
+
+Mobile_SetOverworldDelay: ; 100dd2
+ ld a, 30
+ ld [OverworldDelay], a
+ ret
+; 100dd8
+
+Function100dd8: ; 100dd8
+ ld c, $01
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ jr c, .asm_100dfb
+ ld c, $3c
+ ld b, $01
+ call Function10079c
+ jr c, .asm_100dfb
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100dfb
+ xor a
+ ret
+
+.asm_100dfb
+ scf
+ ret
+; 100dfd
+
+MobileComms_CheckInactivityTimer: ; 100dfd
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, 30
+ sub c
+ ld c, a
+ ld b, 3
+ push bc
+ callba AdvanceMobileInactivityTimerAndCheckExpired ; useless to farcall
+ pop bc
+ jr c, .quit
+ ld b, 1
+ call Function10079c
+ jr c, .quit
+ call Function1009f3
+ jr c, .quit
+ callba Function10032e ; useless to farcall
+ ld a, [wcd2b]
+ and a
+ jr nz, .quit
+ xor a
+ ret
+
+.quit
+ scf
+ ret
+; 100e2d
+
+Function100e2d: ; 100e2d
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, 30
+ sub c
+ ld c, a
+ ld b, 3
+ push bc
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ pop bc
+ jr c, .asm_100e61
+ ld b, 1
+ call Function10079c
+ jr c, .asm_100e61
+ call Function1009f3
+ jr c, .asm_100e61
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_100e61
+ call Function100e63
+ call Function100e84
+ xor a
+ ret
+
+.asm_100e61
+ scf
+ ret
+; 100e63
+
+Function100e63: ; 100e63
+ ld a, e
+ cp $02
+ ret nz
+ call Function100db0
+ ret nc
+ ld de, SFX_ELEVATOR_END
+ call PlaySFX
+ ret
+; 100e72
+
+Function100e72: ; 100e72
+ xor a
+ ld hl, wcd29
+ bit 0, [hl]
+ jr z, .asm_100e7c
+ ld a, $0a
+
+.asm_100e7c
+ ld [wcd67], a
+ xor a
+ ld [wcd68], a
+ ret
+; 100e84
+
+Function100e84: ; 100e84
+ ld a, [wcd67]
+ ld hl, Jumptable_100e8c
+ rst JumpTable
+ ret
+; 100e8c
+
+
+Jumptable_100e8c: ; 100e8c (40:4e8c)
+ dw Function100ea2
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100eb4
+ dw Function100eae
+ dw Function100ec4
+
+
+Function100ea2: ; 100ea2 (40:4ea2)
+ call Function100dc0
+ ret nc
+ ld hl, wcd29
+ set 0, [hl]
+ call Function100ec5
+
+
+Function100eae: ; 100eae
+ scf
+ call Function100eca
+ jr asm_100eb8
+
+Function100eb4: ; 100eb4
+ and a
+ call Function100eca
+
+asm_100eb8
+ ld hl, wcd68
+ inc [hl]
+ ld a, [hl]
+ cp $02
+ ret c
+ ld [hl], 0
+ jr Function100ec5
+
+Function100ec4: ; 100ec4
+ ret
+
+Function100ec5
+ ld hl, wcd67
+ inc [hl]
+ ret
+; 100eca
+
+Function100eca: ; 100eca
+ callba Mobile_InitPartyMenuBGPal7
+ call Function100ed4
+ ret
+; 100ed4
+
+Function100ed4: ; 100ed4
+ callba ApplyPals
+ ld a, $01
+ ld [hCGBPalUpdate], a
+ ret
+; 100edf
+
+Function100edf: ; 100edf
+ ld hl, Unknown_100fc0
+ ld c, 1
+ jr asm_100f02
+
+Function100ee6: ; 100ee6
+ ld hl, Unknown_100fc0
+ ld c, 2
+ jr asm_100f02
+
+Function100eed: ; 100eed
+ ld hl, Unknown_100feb
+ ld c, 1
+ jr asm_100f02
+
+Function100ef4: ; 100ef4
+ ld hl, Unknown_100ff3
+ ld c, 1
+ jr asm_100f02
+
+Function100efb: ; 100efb
+ ld hl, Unknown_10102c
+ ld c, 1
+ jr asm_100f02
+
+asm_100f02:
+ ld a, c
+ ld [StringBuffer2], a
+ ; someting that was previously stored in de gets backed up to here
+ ld a, e
+ ld [StringBuffer2 + 1], a
+ ld a, d
+ ld [StringBuffer2 + 2], a
+ ; empty this
+ xor a
+ ld [StringBuffer2 + 4], a
+ ld [StringBuffer2 + 5], a
+.loop
+ ld a, [hl]
+ cp $ff
+ jr z, .done
+ ld [StringBuffer2 + 3], a ; bank
+ push hl
+ inc hl
+ ; addr 1
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ; size
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ; addr 2
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function100f3d
+ ; next line
+ pop hl
+ ld de, 7
+ add hl, de
+ jr .loop
+
+.done
+ ; recover the values into bc
+ ld a, [StringBuffer2 + 4]
+ ld c, a
+ ld a, [StringBuffer2 + 5]
+ ld b, a
+ ret
+; 100f3d
+
+Function100f3d: ; 100f3d
+ ; parameter
+ ld a, [StringBuffer2]
+ cp $02
+ jr z, .two
+ cp $01
+ jr z, .one
+ cp $03
+ jr z, .three
+ ret
+
+.three
+ ; what was once in de gets copied to hl,
+ ; modified by Function100f8d, and put back
+ ; into this backup
+ ld a, [StringBuffer2 + 1]
+ ld l, a
+ ld a, [StringBuffer2 + 2]
+ ld h, a
+ call Function100f8d
+ ld a, l
+ ld [StringBuffer2 + 1], a
+ ld a, h
+ ld [StringBuffer2 + 2], a
+ ret
+
+.two
+ ; hl gets backed up to de, then
+ ; do the same as in .three
+ ld d, h
+ ld e, l
+ ld a, [StringBuffer2 + 1]
+ ld l, a
+ ld a, [StringBuffer2 + 2]
+ ld h, a
+ call Function100f8d
+ ld a, l
+ ld [StringBuffer2 + 1], a
+ ld a, h
+ ld [StringBuffer2 + 2], a
+ ret
+
+.one
+ ; de gets copied to hl, then
+ ; load the backup into de,
+ ; finally run Function100f8d
+ ; and store the de result
+ ld h, d
+ ld l, e
+ ld a, [StringBuffer2 + 1]
+ ld e, a
+ ld a, [StringBuffer2 + 2]
+ ld d, a
+ call Function100f8d
+ ld a, e
+ ld [StringBuffer2 + 1], a
+ ld a, d
+ ld [StringBuffer2 + 2], a
+ ret
+; 100f8d
+
+Function100f8d: ; 100f8d
+ push hl
+ ld a, [StringBuffer2 + 4]
+ ld l, a
+ ld a, [StringBuffer2 + 5]
+ ld h, a
+ add hl, bc
+ ld a, l
+ ld [StringBuffer2 + 4], a
+ ld a, h
+ ld [StringBuffer2 + 5], a
+ pop hl
+ ld a, [StringBuffer2 + 3]
+ bit 7, a
+ res 7, a
+ jr z, .sram
+ and a
+ jr nz, .far_wram
+ call CopyBytes
+ ret
+
+.far_wram
+ and $7f
+ call FarCopyWRAM
+ ret
+
+.sram
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 100fc0
+
+Unknown_100fc0: ; 100fc0
+ ; first byte:
+ ; Bit 7 set: Not SRAM
+ ; Lower 7 bits: Bank
+ ; Address, size (dw), address
+ dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName
+ dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount
+ dbwww $80, PlayerID, 2, OTPlayerID
+ dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons
+ dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT
+ dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames
+ db -1
+
+Unknown_100feb: ; 100feb
+ dbwww $00, sPartyMail, MAIL_STRUCT_LENGTH * PARTY_LENGTH, NULL
+ db -1
+
+Unknown_100ff3: ; 100ff3
+ dbwww $80, wdc41, 1, NULL
+ dbwww $80, PlayerName, NAME_LENGTH, NULL
+ dbwww $80, PlayerName, NAME_LENGTH, NULL
+ dbwww $80, PlayerID, 2, NULL
+ dbwww $80, wSecretID, 2, NULL
+ dbwww $80, PlayerGender, 1, NULL
+ dbwww $04, $a603, 8, NULL
+ dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
+ db -1
+
+Unknown_10102c: ; 10102c
+ dbwww $80, OTPlayerName, NAME_LENGTH, NULL
+ dbwww $80, OTPlayerID, 2, NULL
+ dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL
+ dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL
+ dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
+ db -1
+; 10104f
+
+Function101050: ; 101050
+ call Function10107d
+ ld a, [OTPartyCount]
+rept 2 ; ???
+ ld hl, wc608
+endr
+ ld bc, wc7bb - wc608
+ call Function1010de
+ ld hl, wc7bb
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, $07
+ call GetSRAMBank
+ ld hl, wc608
+ ld de, $a001
+ ld bc, wc7bd - wc608
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 10107d
+
+Function10107d: ; 10107d
+ xor a
+ ld hl, wc608
+ ld bc, wc7bd - wc608
+ call ByteFill
+ ld hl, OTPlayerName
+ ld de, wc608
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, wd271
+ ld a, [hli]
+ ld [wc608 + 11], a
+ ld a, [hl]
+ ld [wc608 + 12], a
+ ld hl, OTPartyMonNicknames
+ ld de, wc608 + 13
+ ld bc, NAME_LENGTH
+ call .CopyAllFromOT
+ ld hl, OTPartyMonOT
+ ld de, OTClassName + 1
+ ld bc, NAME_LENGTH
+ call .CopyAllFromOT
+ ld hl, OTPartyMon1Species
+ ld de, $c699
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call .CopyAllFromOT
+ ld a, $50
+ ld [wc7b9], a
+ ld a, $33
+ ld [wc7ba], a
+ ret
+; 1010cd
+
+.CopyAllFromOT: ; 1010cd
+ push hl
+ ld hl, 0
+ ld a, [OTPartyCount]
+ call AddNTimes
+ ld b, h
+ ld c, l
+ pop hl
+ call CopyBytes
+ ret
+; 1010de
+
+Function1010de: ; 1010de
+ push hl
+ push bc
+ ld de, 0
+.loop
+ ld a, [hli]
+ add e
+ ld e, a
+ ld a, d
+ adc 0
+ ld d, a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ pop bc
+ pop hl
+ ret
+; 1010f2
+
+LoadSelectedPartiesForColosseum: ; 1010f2
+ xor a
+ ld hl, StringBuffer2
+ ld bc, 9
+ call ByteFill
+ ld hl, wPlayerMonSelection
+ ld de, PartyCount
+ call .CopyThreeSpecies
+ ld hl, wPlayerMonSelection
+ ld de, PartyMon1Species
+ call .CopyPartyStruct
+ ld hl, wPlayerMonSelection
+ ld de, PartyMonOT
+ call .CopyName
+ ld hl, wPlayerMonSelection
+ ld de, PartyMonNicknames
+ call .CopyName
+ ld hl, wOTMonSelection
+ ld de, OTPartyCount
+ call .CopyThreeSpecies
+ ld hl, wOTMonSelection
+ ld de, OTPartyMon1Species
+ call .CopyPartyStruct
+ ld hl, wOTMonSelection
+ ld de, OTPartyMonOT
+ call .CopyName
+ ld hl, wOTMonSelection
+ ld de, OTPartyMonNicknames
+ call .CopyName
+ ret
+; 101145
+
+.CopyThreeSpecies: ; 101145
+; Load the 3 choices to the buffer
+ push de
+ ld bc, StringBuffer2 + NAME_LENGTH_JAPANESE
+ xor a
+.party_loop
+ push af
+ call .GetNthSpecies
+ ld [bc], a
+ inc bc
+ pop af
+ inc a
+ cp 3
+ jr nz, .party_loop
+ pop de
+; Copy the 3 choices to the party
+ ld a, 3
+ ld [de], a
+ inc de
+ ld hl, StringBuffer2 + NAME_LENGTH_JAPANESE
+ ld bc, 3
+ call CopyBytes
+ ld a, $ff
+ ld [de], a
+ ret
+; 101168
+
+.GetNthSpecies: ; 101168
+; Preserves hl and de
+; Get the index of the Nth selection
+ push hl
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ pop hl
+; Get the corresponding species
+ push de
+ inc de
+ add e
+ ld e, a
+ ld a, d
+ adc 0
+ ld d, a
+ ld a, [de]
+ pop de
+ ret
+; 10117c
+
+.CopyPartyStruct: ; 10117c
+ ld bc, PARTYMON_STRUCT_LENGTH
+ jr .ContinueCopy
+
+.CopyName: ; 101181
+ ld bc, NAME_LENGTH
+
+.ContinueCopy:
+ ; Copy, via wc608...
+ ld a, wc608 % $100
+ ld [StringBuffer2], a
+ ld a, wc608 / $100
+ ld [StringBuffer2 + 1], a
+ ; ... bc bytes...
+ ld a, c
+ ld [StringBuffer2 + 2], a
+ ld a, b
+ ld [StringBuffer2 + 3], a
+ ; ... to de...
+ ld a, e
+ ld [StringBuffer2 + 4], a
+ ld a, d
+ ld [StringBuffer2 + 5], a
+ ; ... 3 times.
+ ld a, 3
+.big_copy_loop
+ push af
+ ld a, [hli]
+ push hl
+ push af
+ call .GetDestinationAddress
+ call .GetCopySize
+ pop af
+ call AddNTimes
+ ld a, [StringBuffer2]
+ ld e, a
+ ld a, [StringBuffer2 + 1]
+ ld d, a
+ call CopyBytes
+ ld a, e
+ ld [StringBuffer2], a
+ ld a, d
+ ld [StringBuffer2 + 1], a
+ pop hl
+ pop af
+ dec a
+ jr nz, .big_copy_loop
+ call .GetCopySize
+ ld a, 3
+ ld hl, 0
+ call AddNTimes
+ ld b, h
+ ld c, l
+ call .GetDestinationAddress
+ ld d, h
+ ld e, l
+ ld hl, wc608
+ call CopyBytes
+ ret
+; 1011df
+
+.GetDestinationAddress: ; 1011df
+ ld a, [StringBuffer2 + 4]
+ ld l, a
+ ld a, [StringBuffer2 + 5]
+ ld h, a
+ ret
+; 1011e8
+
+.GetCopySize: ; 1011e8
+ ld a, [StringBuffer2 + 2]
+ ld c, a
+ ld a, [StringBuffer2 + 3]
+ ld b, a
+ ret
+; 1011f1
+
+Function1011f1: ; 1011f1
+ ld a, $04
+ call GetSRAMBank
+ ld a, [$a60c]
+ ld [wdc41], a
+ call CloseSRAM
+ ld hl, wdc41
+ res 4, [hl]
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ jr z, .skip
+ ld hl, wdc41
+ set 4, [hl]
+
+.skip
+ call Function10209c
+ xor a
+ ld [wdc5f], a
+ ld [wdc60], a
+ ld a, LINK_MOBILE
+ ld [wLinkMode], a
+ ret
+; 101220
+
+Function101220: ; 101220
+ xor a
+ ld [wLinkMode], a
+ ret
+; 101225
+
+Function101225: ; 101225
+ ld d, 1
+ ld e, BANK(Jumptable_101297)
+ ld bc, Jumptable_101297
+ call Function100000
+ jr Function10123d
+
+Function101231: ; 101231
+ ld d, 2
+ ld e, BANK(Jumptable_101297)
+ ld bc, Jumptable_101297
+ call Function100000
+ jr Function10123d
+
+Function10123d: ; 10123d
+ xor a
+ ld [ScriptVar], a
+ ld a, c
+ ld hl, Jumptable_101247
+ rst JumpTable
+ ret
+; 101247
+
+Jumptable_101247: ; 101247
+ dw Function101251
+ dw Function10127d
+ dw Function10127c
+ dw Function10126c
+ dw Function101265
+; 101251
+
+Function101251: ; 101251
+ call UpdateSprites
+ call RefreshScreen
+ ld hl, UnknownText_0x1021f4
+ call Function1021e0
+ call Function1020ea
+ ret c
+ call Function102142
+ ret
+; 101265
+
+Function101265: ; 101265
+ ld hl, UnknownText_0x1021ef
+ call Function1021e0
+ ret
+; 10126c
+
+Function10126c: ; 10126c
+ call UpdateSprites
+ callba Script_reloadmappart
+ ld hl, UnknownText_0x1021f4
+ call Function1021e0
+ ret
+; 10127c
+
+Function10127c: ; 10127c
+ ret
+; 10127d
+
+Function10127d: ; 10127d
+ ret
+; 10127e
+
+Function10127e: ; 10127e
+ ld a, [wdc5f]
+ and a
+ jr z, .zero
+ cp 1
+ ld c, $27
+ jr z, .load
+ cp 2
+ ld c, $37
+ jr z, .load
+.zero
+ ld c, 0
+.load
+ ld a, c
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101297
+
+Jumptable_101297: ; 101297
+ dw Function101a97 ; 00
+ dw Function101ab4 ; 01
+ dw Function101475 ; 02
+ dw Function101b0f ; 03
+ dw Function101438 ; 04
+ dw Function101b2b ; 05
+ dw Function101b59 ; 06
+ dw Function101475 ; 07
+ dw Function101b70 ; 08
+ dw Function101438 ; 09
+ dw Function101b8f ; 0a
+ dw Function101d7b ; 0b
+ dw Function101d95 ; 0c
+ dw Function101475 ; 0d
+ dw Function101db2 ; 0e
+ dw Function101e4f ; 0f
+ dw Function101475 ; 10
+ dw Function101e64 ; 11
+ dw Function101e4f ; 12
+ dw Function101475 ; 13
+ dw Function101e64 ; 14
+ dw Function101d95 ; 15
+ dw Function101475 ; 16
+ dw Function101db2 ; 17
+ dw Function101dd0 ; 18
+ dw Function101de3 ; 19
+ dw Function101e39 ; 1a
+ dw Function101e09 ; 1b
+ dw Function101e4f ; 1c
+ dw Function101475 ; 1d
+ dw Function101e64 ; 1e
+ dw Function101d95 ; 1f
+ dw Function101475 ; 20
+ dw Function101db2 ; 21
+ dw Function101e09 ; 22
+ dw Function101e31 ; 23
+ dw Function101bc8 ; 24
+ dw Function101438 ; 25
+ dw Function101be5 ; 26
+ dw Function101ac6 ; 27
+ dw Function101ab4 ; 28
+ dw Function101475 ; 29
+ dw Function101c11 ; 2a
+ dw Function1014f4 ; 2b
+ dw Function101cc8 ; 2c
+ dw Function1014e2 ; 2d
+ dw Function1014e2 ; 2e
+ dw Function101d10 ; 2f
+ dw Function101d2a ; 30
+ dw Function101d2a ; 31
+ dw Function101507 ; 32
+ dw Function10156d ; 33
+ dw Function101557 ; 34
+ dw Function10158a ; 35
+ dw Function101c42 ; 36
+ dw Function101aed ; 37
+ dw Function101ab4 ; 38
+ dw Function101475 ; 39
+ dw Function101c2b ; 3a
+ dw Function1014f4 ; 3b
+ dw Function101cdf ; 3c
+ dw Function1014e2 ; 3d
+ dw Function1014e2 ; 3e
+ dw Function101d1e ; 3f
+ dw Function101d2a ; 40
+ dw Function101d2a ; 41
+ dw Function101507 ; 42
+ dw Function10156d ; 43
+ dw Function101544 ; 44
+ dw Function10158a ; 45
+ dw Function101c42 ; 46
+ dw Function101c50 ; 47
+ dw Function1014ce ; 48
+ dw Function101cf6 ; 49
+ dw Function101826 ; 4a
+ dw Function1017e4 ; 4b
+ dw Function1017f1 ; 4c
+ dw Function1018a8 ; 4d
+ dw Function1018d6 ; 4e
+ dw Function1017e4 ; 4f
+ dw Function1017f1 ; 50
+ dw Function1018e1 ; 51
+ dw Function1015df ; 52
+ dw Function10167d ; 53
+ dw Function10168a ; 54
+ dw Function10162a ; 55
+ dw Function1015be ; 56
+ dw Function10167d ; 57
+ dw Function10168a ; 58
+ dw Function10161f ; 59
+ dw Function10159d ; 5a
+ dw Function10167d ; 5b
+ dw Function10168a ; 5c
+ dw Function101600 ; 5d
+ dw Function101d03 ; 5e
+ dw Function101d6b ; 5f
+ dw Function10159d ; 60
+ dw Function1014ce ; 61
+ dw Function10168e ; 62
+ dw Function101600 ; 63
+ dw Function101913 ; 64
+ dw Function10194b ; 65
+ dw _SelectMonsForMobileBattle ; 66
+ dw Function1017e4 ; 67
+ dw Function1017f5 ; 68
+ dw _StartMobileBattle ; 69
+ dw Function101537 ; 6a
+ dw Function101571 ; 6b
+ dw Function101c92 ; 6c
+ dw Function10152a ; 6d
+ dw Function101571 ; 6e
+ dw Function101a4f ; 6f
+ dw Function101cbc ; 70
+ dw Function101c62 ; 71
+ dw Function101537 ; 72
+ dw Function101571 ; 73
+ dw Function101c92 ; 74
+ dw Function10152a ; 75
+ dw Function101571 ; 76
+ dw Function101ca0 ; 77
+ dw Function101475 ; 78
+ dw Function101cbc ; 79
+; 10138b
+
+Function10138b: ; 10138b
+ callba Function8adcc
+ ld c, 0
+ jr c, .asm_101396
+ inc c
+
+.asm_101396
+ sla c
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_10139f
+ inc c
+
+.asm_10139f
+ sla c
+ ld a, [wcd21]
+ cp $01
+ jr z, .asm_1013a9
+ inc c
+
+.asm_1013a9
+ ret
+; 1013aa
+
+Function1013aa: ; 1013aa
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call ReloadTilesetAndPalettes
+ callba Function106464
+ call UpdateSprites
+ call FinishExitMenu
+ ret
+; 1013c0
+
+Function1013c0: ; 1013c0
+ callba BlankScreen
+ callba MobileFunc_106462
+ callba Function106464
+ call FinishExitMenu
+ ret
+; 1013d6
+
+Function1013d6: ; 1013d6
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ret
+; 1013dd
+
+Function1013dd: ; 1013dd
+ call CGBOnly_LoadEDTile
+ ret
+; 1013e1
+
+Function1013e1: ; 1013e1 ; unreferenced
+ push de
+ inc de
+ ld b, a
+ ld c, 0
+.asm_1013e6
+ inc c
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_1013f1
+ dec b
+ jr nz, .asm_1013e6
+ scf
+
+.asm_1013f1
+ pop de
+ ld a, c
+ ld [de], a
+ ret
+; 1013f5
+
+Function1013f5: ; 1013f5
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld c, a
+.asm_1013f9
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_1013f9
+ ret
+; 101400
+
+Function101400: ; 101400 ; unreferenced
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, asm_101416
+ inc hl
+
+Function101406: ; 101406
+ ld c, a
+ ld b, 0
+.asm_101409
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, asm_101416
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_101409
+ and a
+ ret
+
+asm_101416
+ scf
+ ret
+; 101418
+
+Function101418: ; 101418
+ call GetJoypad
+ ld a, [hJoyDown]
+ and SELECT + A_BUTTON
+ cp SELECT + A_BUTTON
+ jr z, .asm_101425
+ xor a
+ ret
+
+.asm_101425
+ ld a, $f7
+ ld [wcd2b], a
+ scf
+ ret
+; 10142c
+
+Function10142c: ; 10142c
+ ld a, $01
+ ld [wc305], a
+ callba Function115e18
+ ret
+; 101438
+
+Function101438: ; 101438
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ ld hl, Jumptable_101457
+ rst JumpTable
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101457
+
+Jumptable_101457: ; 101457
+ dw Function10145b
+ dw Function101467
+; 10145b
+
+Function10145b: ; 10145b
+ ld a, $3c
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function101467: ; 101467
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 101475
+
+Function101475: ; 101475
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ ld hl, Jumptable_101494
+ rst JumpTable
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101494
+
+Jumptable_101494: ; 101494
+ dw Function10149a
+ dw Function1014a6
+ dw Function1014b7
+; 10149a
+
+Function10149a: ; 10149a
+ ld a, $28
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function1014a6: ; 1014a6
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, $50
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function1014b7: ; 1014b7
+ call GetJoypad
+ ld a, [hJoyPressed]
+ and $03
+ jr nz, .asm_1014c5
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+
+.asm_1014c5
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 1014ce
+
+Function1014ce: ; 1014ce
+ callba Function100720
+ callba StartMobileInactivityTimer
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1014e2
+
+Function1014e2: ; 1014e2
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1014f4
+
+Function1014f4: ; 1014f4
+ callba EnableMobile
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101507
+
+Function101507: ; 101507
+ ld de, wcd30
+ ld hl, $40
+ ld bc, $40
+ ld a, $02
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10151d
+
+Function10151d: ; 10151d ; unreferenced
+ ld a, $34
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10152a
+
+Function10152a: ; 10152a
+ ld a, $36
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101537
+
+Function101537: ; 101537
+ ld a, $0a
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101544
+
+Function101544: ; 101544
+ callba StartMobileInactivityTimer
+ ld a, $12
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101557
+
+Function101557: ; 101557
+ callba StartMobileInactivityTimer
+ ld hl, wcd53
+ ld a, $08
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10156d
+
+Function10156d: ; 10156d
+ call Function101418
+ ret c
+
+Function101571: ; 101571
+ callba Function10032e
+ ret c
+ ret z
+ ld a, e
+ cp $01
+ jr z, .asm_101582
+ ld [wcd2b], a
+ ret
+
+.asm_101582
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10158a
+
+Function10158a: ; 10158a
+ callba IncrementMobileInactivityTimerBy1Frame
+ ld a, [wMobileInactivityTimerMinutes]
+ cp $0a
+ jr c, Function10156d
+ ld a, $fb
+ ld [wcd2b], a
+ ret
+; 10159d
+
+Function10159d: ; 10159d
+ ld de, wc608
+ callba Function100edf
+ ld de, wc608
+ ld a, $05
+ ld hl, w5_d800
+ call Function10174c
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1015be
+
+Function1015be: ; 1015be
+ ld de, wc608
+ callba Function100eed
+ ld de, wc608
+ ld a, $05
+ ld hl, w5_d800
+ call Function10174c
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1015df
+
+Function1015df: ; 1015df
+ ld de, wc608
+ callba Function100ef4
+ ld de, wc608
+ ld a, $05
+ ld hl, w5_d800
+ call Function10174c
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101600
+
+Function101600: ; 101600
+ ld hl, w5_d800
+ ld de, wc608
+ ld bc, $1e0
+ ld a, $05
+ call FarCopyWRAM
+ ld de, wc608
+ callba Function100ee6
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10161f
+
+Function10161f: ; 10161f
+ call Function101649
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10162a
+
+Function10162a: ; 10162a
+ call Function101663
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101635
+
+Function101635: ; 101635
+ ld de, wc608
+ ld bc, $1e0
+ call FarCopyWRAM
+ ret
+; 10163f
+
+Function10163f: ; 10163f
+ ld hl, wc608
+ ld bc, $1e0
+ call FarCopyWRAM
+ ret
+; 101649
+
+Function101649: ; 101649
+ ld a, $05
+ ld hl, w5_d800
+ call Function101635
+ ld a, $05
+ ld de, w5_da00
+ call Function10163f
+ ret
+; 10165a
+
+Function10165a: ; 10165a
+ ld a, $05
+ ld hl, w5_da00
+ call Function101635
+ ret
+; 101663
+
+Function101663: ; 101663
+ ld a, $05
+ ld hl, w5_d800
+ call Function101635
+ ld a, $05
+ ld de, w5_dc00
+ call Function10163f
+ ret
+; 101674
+
+Function101674: ; 101674 ; unreferenced
+ ld a, $05
+ ld hl, w5_dc00
+ call Function101635
+ ret
+; 10167d
+
+Function10167d: ; 10167d
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10168a
+
+Function10168a: ; 10168a
+ call Function101418
+ ret c
+
+Function10168e: ; 10168e
+ ld b, 0
+ ld c, $01
+ callba Function10079c
+ ret c
+ ld c, $01
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ ret c
+ ld a, [wcd26]
+ ld hl, Jumptable_1016c3
+ rst JumpTable
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1016c3
+
+Jumptable_1016c3: ; 1016c3
+ dw Function1016cf
+ dw Function1016de
+ dw Function1016f8
+ dw Function101705
+ dw Function101719
+ dw Function101724
+; 1016cf
+
+Function1016cf: ; 1016cf
+ ld hl, wcd3a
+ inc [hl]
+ call Function10176f
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 1016de
+
+Function1016de: ; 1016de
+ call Function10177b
+ jr nc, .asm_1016eb
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+
+.asm_1016eb
+ ld a, $ff
+ ld [wcd39], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 1016f8
+
+Function1016f8: ; 1016f8
+ ld a, 0
+ ld [wcd27], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 101705
+
+Function101705: ; 101705
+ callba Function100382
+ ld a, [wcd27]
+ bit 7, a
+ ret z
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 101719
+
+Function101719: ; 101719
+ call Function1017c7
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+ ret
+; 101724
+
+Function101724: ; 101724
+ ld a, [wcd39]
+ cp $ff
+ jr z, .asm_101731
+ ld a, 0
+ ld [wcd26], a
+ ret
+
+.asm_101731
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 10173a
+
+Unknown_10173a:
+ db $50
+
+Function10173b: ; 10173b
+ push bc
+ push af
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [Unknown_10173a]
+ ld c, a
+ ld b, 0
+ pop af
+ call AddNTimes
+ pop bc
+ ret
+; 10174c
+
+Function10174c: ; 10174c
+ ld [wcd3d], a
+ ld a, l
+ ld [wcd3e], a
+ ld a, h
+ ld [wcd3f], a
+ ld a, e
+ ld [wcd3b], a
+ ld a, d
+ ld [wcd3c], a
+ ld a, c
+ ld [wcd40], a
+ ld a, b
+ ld [wcd41], a
+ xor a
+ ld [wcd39], a
+ ld [wcd3a], a
+ ret
+; 10176f
+
+Function10176f: ; 10176f
+ ld hl, wccb4
+ ld bc, $54
+ ld a, $11
+ call ByteFill
+ ret
+; 10177b
+
+Function10177b: ; 10177b
+ ld a, [Unknown_10173a]
+ ld c, a
+ ld b, 0
+ ld a, [wcd3a]
+ ld hl, 0
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld hl, wcd40
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, l
+ sub e
+ ld l, a
+ ld a, h
+ sbc d
+ ld h, a
+ jr c, .asm_1017a0
+ add hl, bc
+ call Function1017b0
+ scf
+ ret
+
+.asm_1017a0
+ ld a, $ff
+ ld [wcd39], a
+ add hl, bc
+ ld a, h
+ or l
+ ret z
+ ld c, l
+ ld b, h
+ call Function1017b0
+ xor a
+ ret
+; 1017b0
+
+Function1017b0: ; 1017b0
+ ld a, c
+ ld [wccb4], a
+ push bc
+ ld a, [wcd3a]
+ dec a
+ ld hl, wcd3b
+ call Function10173b
+ pop bc
+ ld de, wccb5
+ call CopyBytes
+ ret
+; 1017c7
+
+Function1017c7: ; 1017c7
+ ld a, [wcc60]
+ ld c, a
+ ld b, 0
+ ld a, [wcd3a]
+ dec a
+ ld hl, wcd3e
+ call Function10173b
+ ld e, l
+ ld d, h
+ ld hl, wcc61
+ ld a, [wcd3d]
+ call FarCopyWRAM
+ and a
+ ret
+; 1017e4
+
+Function1017e4: ; 1017e4
+ ld a, 0
+ ld [wcd27], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1017f1
+
+Function1017f1: ; 1017f1
+ call Function101418
+ ret c
+
+Function1017f5: ; 1017f5
+ ld b, 0
+ ld c, $01
+ callba Function10079c
+ ret c
+ ld c, $01
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ ret c
+ callba Function100382
+ ld a, [wcd27]
+ bit 7, a
+ jr nz, .next
+ ld hl, wcd29
+ set 6, [hl]
+ ret
+
+.next
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101826
+
+Function101826: ; 101826
+ ld a, [wcd21]
+ cp $02
+ jr z, .asm_101833
+ cp $01
+ jr z, .asm_101844
+ jr .asm_101869
+
+.asm_101833
+ ld hl, Unknown_10186f
+ ld de, wccb4
+ call Function1013f5
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101844
+ callba Function103654
+ ld a, c
+ ld hl, Unknown_101882
+ cp $01
+ jr z, .asm_10185b
+ ld hl, Unknown_101895
+ cp $02
+ jr z, .asm_10185b
+ jr .asm_101869
+
+.asm_10185b
+ ld de, wccb4
+ call Function1013f5
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101869
+ ld a, $fe
+ ld [wcd2b], a
+ ret
+; 10186f
+
+
+SECTION "ascii 10186f", ROMX
+
+ charmap " ", $20 ; revert to ascii
+
+Unknown_10186f:
+ db .end - @
+ db $19, $73, $09, $13, "trade_crystal"
+.end db 0
+
+Unknown_101882:
+ db .end - @
+ db $19, $67, $10, $01, "free__crystal"
+.end db 0
+
+Unknown_101895:
+ db .end - @
+ db $19, $67, $10, $01, "limit_crystal"
+.end db 0
+; 1018a8
+
+
+SECTION "bank40_3", ROMX
+
+Function1018a8: ; 1018a8
+ ld hl, wccb5
+ ld de, wcc61
+ ld a, $04
+ call Function101406
+ jr c, .asm_1018d0
+ ld hl, wccb9
+ ld de, wcc65
+ ld a, $06
+ call Function101406
+ jr c, .asm_1018ca
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_1018ca
+ ld a, $f6
+ ld [wcd2b], a
+ ret
+
+.asm_1018d0
+ ld a, $f5
+ ld [wcd2b], a
+ ret
+; 1018d6
+
+Function1018d6: ; 1018d6
+ call Function1018ec
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1018e1
+
+Function1018e1: ; 1018e1
+ call Function1018fb
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1018ec
+
+Function1018ec: ; 1018ec
+ ld a, $0a
+ ld hl, wccb4
+ ld [hli], a
+ ld c, a
+.asm_1018f3
+ call Random
+ ld [hli], a
+ dec c
+ jr nz, .asm_1018f3
+ ret
+; 1018fb
+
+Function1018fb: ; 1018fb
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_101906
+ ld hl, wcc61
+ jr .asm_101909
+
+.asm_101906
+ ld hl, wccb5
+
+.asm_101909
+ ld de, LinkBattleRNs
+ ld bc, 10
+ call CopyBytes
+ ret
+; 101913
+
+Function101913: ; 101913
+ ld hl, wcd2a
+ set 0, [hl]
+ xor a
+ ld [wc30d], a
+ ld hl, wcd29
+ res 4, [hl]
+ xor a
+ ld [wc305], a
+ ld hl, wcd29
+ res 7, [hl]
+ ld a, $90
+ ld [hWY], a
+ ld a, [wcd21]
+ cp $01
+ jr z, .asm_10193f
+ cp $02
+ jr z, .asm_101945
+ ld a, $71
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_10193f
+ ld a, $66
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101945
+ ld a, $65
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10194b
+
+Function10194b: ; 10194b
+ call DisableSpriteUpdates
+ call ClearSprites
+ callba Function1021f9
+ ld hl, wcd29
+ bit 3, [hl]
+ jr nz, .asm_101967
+ call Function1013c0
+ ld a, $71
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101967
+ ld a, $60
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 10196d
+
+_SelectMonsForMobileBattle: ; 10196d
+ callba BlankScreen
+ callba Mobile_CommunicationStandby
+ ld hl, wcd29
+ set 5, [hl]
+ ld hl, wcd2a
+ set 6, [hl]
+ ld a, $06
+ ld [wccb4], a
+ ld hl, wPlayerMonSelection
+ ld de, wccb5
+ ld bc, 3
+ call CopyBytes
+ ld hl, wcd6c
+ ld a, [hli]
+ ld [wccb8], a
+ ld a, [hli]
+ ld [wccb9], a
+ ld a, [hl]
+ ld [wccba], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1019ab
+
+_StartMobileBattle: ; 1019ab
+ call CopyOtherPlayersBattleMonSelection
+ callba Function100754
+ xor a
+ ld [wdc5f], a
+ ld [wdc60], a
+ callba BlankScreen
+ call SpeechTextBox
+ callba Function100846
+ ld c, 120
+ call DelayFrames
+ callba ClearTileMap
+ call .CopyOTDetails
+ call StartMobileBattle
+ ld a, [wcd2b]
+ cp $fc
+ jr nz, .asm_1019e6
+ xor a
+ ld [wcd2b], a
+.asm_1019e6
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1019ee
+
+.CopyOTDetails: ; 1019ee
+ ld a, [rSVBK]
+ push af
+ ld a, 5
+ ld [rSVBK], a
+
+ ld bc, w5_dc0d
+ ld de, w5_dc11
+ callba GetMobileOTTrainerClass
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, c
+ ld [OtherTrainerClass], a
+ ld hl, OTPlayerName
+ ld de, OTClassName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd2f]
+ and a
+ ld a, 2
+ jr z, .got_link_player_number
+ ld a, 1
+.got_link_player_number
+ ld [hLinkPlayerNumber], a
+ ret
+; 101a21
+
+StartMobileBattle: ; 101a21
+ ; force stereo and fast text speed
+ ld hl, Options
+ ld a, [hl]
+ push af
+ and (1 << STEREO)
+ or 1 ; 1 frame per character i.e. fast text
+ ld [hl], a
+ ld a, 1
+ ld [wDisableTextAcceleration], a
+ callba BattleIntro
+ callba DoBattle
+ callba ShowLinkBattleParticipantsAfterEnd
+ xor a
+ ld [wDisableTextAcceleration], a
+ ld a, $ff
+ ld [hLinkPlayerNumber], a
+ pop af
+ ld [Options], a
+ ret
+; 101a4f
+
+Function101a4f: ; 101a4f
+ ld a, 1
+ ld [wDisableTextAcceleration], a
+ callba DisplayLinkBattleResult
+ xor a
+ ld [wDisableTextAcceleration], a
+ callba CleanUpBattleRAM
+ callba LoadPokemonData
+ call Function1013c0
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101a75
+
+CopyOtherPlayersBattleMonSelection: ; 101a75
+ ld hl, wcc61
+ ld de, wOTMonSelection
+ ld bc, 3
+ call CopyBytes
+ ld de, wcc64
+ callba Function100772
+ callba Function101050
+ callba LoadSelectedPartiesForColosseum
+ ret
+; 101a97
+
+Function101a97: ; 101a97
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101ab4
+
+Function101ab4: ; 101ab4
+ ld e, $01
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101ac6
+
+Function101ac6: ; 101ac6
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld hl, wcd29
+ set 6, [hl]
+ xor a
+ ld [wcd2f], a
+ ld de, wdc42
+ call Function102068
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101aed
+
+Function101aed: ; 101aed
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, $01
+ ld [wcd2f], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101b0f
+
+Function101b0f: ; 101b0f
+ ld c, 0
+ call Function10142c
+ ld e, $03
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101b2b
+
+Function101b2b: ; 101b2b
+ callba Function100579
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMenuCursorY]
+ cp $01
+ jr z, .asm_101b51
+ ld a, $02
+ ld [wcd2b], a
+ ret
+
+.asm_101b51
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101b59
+
+Function101b59: ; 101b59
+ ld c, $02
+ call Function10142c
+ ld e, $02
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101b70
+
+Function101b70: ; 101b70
+ ld c, $02
+ call Function10142c
+ ld e, $04
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ call UpdateSprites
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101b8f
+
+Function101b8f: ; 101b8f
+ callba Function1005c3
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMenuCursorY]
+ cp $01
+ jr z, .asm_101bbc
+ ld a, $01
+ ld [wcd2f], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101bbc
+ xor a
+ ld [wcd2f], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101bc8
+
+Function101bc8: ; 101bc8
+ ld c, $02
+ call Function10142c
+ ld e, $08
+ call Function101ee4
+ call Function102048
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101be5
+
+Function101be5: ; 101be5
+ callba Function100579
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ call Function1013dd
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMenuCursorY]
+ cp $01
+ jr nz, .asm_101c0b
+ ld a, $2a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101c0b
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101c11
+
+Function101c11: ; 101c11
+ ld a, $01
+ ld [wdc5f], a
+ ld e, $09
+ call Function101ee4
+ call Function102048
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c2b
+
+Function101c2b: ; 101c2b
+ ld a, $02
+ ld [wdc5f], a
+ ld e, $07
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c42
+
+Function101c42: ; 101c42
+ ld hl, wcd2a
+ set 1, [hl]
+ call Function100665
+ ld a, $47
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c50
+
+Function101c50: ; 101c50
+ ld e, $0a
+ call Function101ee4
+ ld hl, wcd29
+ set 2, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101c62
+
+Function101c62: ; 101c62
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $01
+ call Function10142c
+ xor a
+ ld [wc30d], a
+ ld hl, wcd29
+ res 4, [hl]
+ ld e, $0b
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101c92
+
+Function101c92: ; 101c92
+ callba Function100675
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101ca0
+
+Function101ca0: ; 101ca0
+ ld c, $02
+ call Function10142c
+ ld e, $0c
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101cbc
+
+Function101cbc: ; 101cbc
+ ld a, $01
+ ld [wcd2b], a
+ ret
+; 101cc2
+
+Function101cc2: ; 101cc2 ; unreferenced
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101cc8
+
+Function101cc8: ; 101cc8
+ ld a, $01
+ ld [wc314], a
+ ld a, $01
+ ld [wc30d], a
+ ld hl, wcd29
+ set 4, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101cdf
+
+Function101cdf: ; 101cdf
+ ld a, $06
+ ld [wc314], a
+ ld a, $01
+ ld [wc30d], a
+ ld hl, wcd29
+ set 4, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101cf6
+
+Function101cf6: ; 101cf6
+ ld a, $0b
+ ld [wc314 + 1], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d03
+
+Function101d03: ; 101d03
+ ld a, $0e
+ ld [wc314 + 1], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d10
+
+Function101d10: ; 101d10
+ ld c, $01
+ call Function10142c
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ jr Function101d2a
+
+Function101d1e: ; 101d1e
+ ld c, $03
+ call Function10142c
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+
+Function101d2a: ; 101d2a
+ call Function101418
+ ret c
+ ld hl, wcd29
+ set 6, [hl]
+ ld a, [wcd26]
+ ld hl, Jumptable_101d4d
+ rst JumpTable
+ ld a, [wcd26]
+ bit 7, a
+ ret z
+ ld a, 0
+ ld [wcd26], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d4d
+
+Jumptable_101d4d: ; 101d4d
+ dw Function101d51
+ dw Function101d5d
+; 101d51
+
+Function101d51: ; 101d51
+ ld a, $3c
+ ld [wcd42], a
+ ld a, [wcd26]
+ inc a
+ ld [wcd26], a
+
+Function101d5d: ; 101d5d
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, [wcd26]
+ set 7, a
+ ld [wcd26], a
+ ret
+; 101d6b
+
+Function101d6b: ; 101d6b
+ ld a, [wc30d]
+ and a
+ ret nz
+ ld hl, wcd29
+ res 4, [hl]
+ ld a, $64
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d7b
+
+Function101d7b: ; 101d7b
+ callba Function10138b
+ ld b, 0
+ ld hl, Unknown_101d8d
+ add hl, bc
+ ld c, [hl]
+ ld a, c
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101d8d
+
+Unknown_101d8d: ; 101d8d
+ db $15, $15, $1f, $1f, $0c, $12, $3a, $3a
+; 101d95
+
+Function101d95: ; 101d95
+ call Function101ee2
+ call LoadStandardMenuDataHeader
+ ld e, $0e
+ call Function101ee4
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101db2
+
+Function101db2: ; 101db2
+ callba Function103302
+ call ExitMenu
+ ld hl, wcd29
+ set 5, [hl]
+ jr c, .asm_101dca
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101dca
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101dd0
+
+Function101dd0: ; 101dd0
+ ld hl, wdc41
+ bit 1, [hl]
+ jr nz, .asm_101ddd
+ ld a, $19
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101ddd
+ ld a, $1b
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101de3
+
+Function101de3: ; 101de3
+ call Function101ecc
+ call Function101ead
+ jr c, .asm_101df3
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101df3
+ call Function101e98
+ jr c, .asm_101e00
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e00
+ call Function101ed3
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e09
+
+Function101e09: ; 101e09
+ call Function101ead
+ jr c, .asm_101e16
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e16
+ call Function101ecc
+ call Function101e98
+ push af
+ call Function101ed3
+ pop af
+ jr c, .asm_101e2b
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e2b
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e31
+
+Function101e31: ; 101e31
+ ld a, $3a
+ ld [wMobileCommsJumptableIndex], a
+ jp Function101c2b
+; 101e39
+
+Function101e39: ; 101e39
+ call Function1020bf
+ push af
+ call Function101ed3
+ pop af
+ jr c, .asm_101e49
+ ld a, $2a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e49
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e4f
+
+Function101e4f: ; 101e4f
+ ld e, $06
+ call Function101ee4
+ call Function1013d6
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ld a, 0
+ ld [wcd26], a
+ ret
+; 101e64
+
+Function101e64: ; 101e64
+ call Function101ecc
+ call Function1020a8
+ push af
+ call Function101ed3
+ pop af
+ jr c, .asm_101e77
+ ld a, $24
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_101e77
+ ld hl, wcd29
+ set 5, [hl]
+ ld a, $02
+ ld [wcd2b], a
+ ret
+; 101e82
+
+Function101e82: ; 101e82 ; unreferenced
+ call Function101ecc
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101e8d
+
+Function101e8d: ; 101e8d ; unreferenced
+ call Function101ed3
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 101e98
+
+Function101e98: ; 101e98
+ call ClearSprites
+ callba Function8adb3
+ ret c
+ ld hl, GameTimerPause
+ set 7, [hl]
+ ld hl, wdc41
+ set 4, [hl]
+ ret
+; 101ead
+
+Function101ead: ; 101ead
+ ld hl, GameTimerPause
+ bit 7, [hl]
+ jr nz, .asm_101ec8
+ ld hl, wdc41
+ bit 2, [hl]
+ jr z, .asm_101eca
+ ld a, [wcd2f]
+ and a
+ jr nz, .asm_101ec8
+ ld hl, wdc41
+ bit 1, [hl]
+ jr z, .asm_101eca
+
+.asm_101ec8
+ xor a
+ ret
+
+.asm_101eca
+ scf
+ ret
+; 101ecc
+
+Function101ecc: ; 101ecc
+ call Function101ee2
+ call FadeToMenu
+ ret
+; 101ed3
+
+Function101ed3: ; 101ed3
+ call Function1013aa
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ret
+; 101ee2
+
+Function101ee2: ; 101ee2
+ ld e, 0
+
+Function101ee4: ; 101ee4
+ ld d, 0
+ ld hl, Unknown_101ef5
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ callba Function100504
+ ret
+; 101ef5
+
+Unknown_101ef5: ; 101ef5
+ dw String_101f13
+ dw String_101f14
+ dw String_101f32
+ dw String_101f4f
+ dw String_101f69
+ dw String_101f81
+ dw String_101f93
+ dw String_101faa
+ dw String_101fc5
+ dw String_101fd2
+ dw String_101fe1
+ dw String_101fef
+ dw String_102000
+ dw String_10200c
+ dw String_102014
+
+String_101f13: ; 101f13
+ db "@"
+
+String_101f14: ; 101f14
+ db "モバイルアダプタを つかって"
+ next "おともだちと つうしんします@"
+
+String_101f32: ; 101f32
+ db "でんわを かけるひとには"
+ next "つうわりょうきんが かかります@"
+
+String_101f4f: ; 101f4f
+ db "モバイルアダプタの じゅんびは"
+ next "できて いますか?@"
+
+String_101f69: ; 101f69
+ db "あなたが おともだちに"
+ next "でんわを かけますか?@"
+
+String_101f81: ; 101f81
+ db "めいしフ,ルダーを"
+ next "つかいますか?@"
+
+String_101f93: ; 101f93
+ db "でんわばんごうを にゅうりょく"
+ next "してください@"
+
+String_101faa: ; 101faa
+ db "それでは おともだちからの"
+ next "でんわを おまちします…@"
+
+String_101fc5: ; 101fc5
+ next "に でんわを かけます@"
+
+String_101fd2: ; 101fd2
+ next "に でんわを かけています@"
+
+String_101fe1: ; 101fe1
+ db "でんわが つながりました!@"
+
+String_101fef: ; 101fef
+ db "つうわを"
+ next "しゅうりょう します…@"
+
+String_102000: ; 102000
+ db "つうしん しゅうりょう@"
+
+String_10200c: ; 10200c
+ db "つうわ じかん@"
+
+String_102014: ; 102014
+ db "それでは つうしんの"
+ next "せっていを してください@"
+; 10202c
+
+Function10202c: ; 10202c
+ callba Function115d99
+ ld hl, wcd29
+ set 7, [hl]
+ ld c, $02
+ call Function10142c
+ ld e, $0d
+ call Function101ee4
+ hlcoord 4, 4
+ call Function100681
+ ret
+; 102048
+
+Function102048: ; 102048
+ call Function10204c
+ ret
+; 10204c
+
+Function10204c: ; 10204c
+ hlcoord 3, 2
+ ld c, $10
+ ld de, wcd53
+.asm_102054
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_102067
+ sub $30
+ jr c, .asm_102067
+ cp $0a
+ jr nc, .asm_102067
+ add $f6
+ ld [hli], a
+ dec c
+ jr nz, .asm_102054
+
+.asm_102067
+ ret
+; 102068
+
+Function102068: ; 102068
+ ld hl, wcd53
+ ld c, $08
+.asm_10206d
+ ld a, [de]
+ call Function102080
+ jr c, .asm_10207f
+ ld a, [de]
+ swap a
+ call Function102080
+ jr c, .asm_10207f
+ inc de
+ dec c
+ jr nz, .asm_10206d
+
+.asm_10207f
+ ret
+; 102080
+
+Function102080: ; 102080
+ and $0f
+ cp $0f
+ jr z, .asm_10208a
+ add $30
+ ld [hli], a
+ ret
+
+.asm_10208a
+ ld [hl], 0
+ scf
+ ret
+; 10208e
+
+Function10208e: ; 10208e
+ push de
+ ld h, d
+ ld l, e
+ ld de, wdc42
+ ld bc, 8
+ call CopyBytes
+ pop de
+ ret
+; 10209c
+
+Function10209c: ; 10209c
+ ld a, $ff
+ ld hl, wdc42
+ ld bc, 8
+ call ByteFill
+ ret
+; 1020a8
+
+Function1020a8: ; 1020a8
+ call Function10209c
+ ld c, $01
+ ld de, wdc42
+ callba Function17a68f
+ ret c
+ call Function10208e
+ call Function102068
+ xor a
+ ret
+; 1020bf
+
+Function1020bf: ; 1020bf
+ call ClearSprites
+ callba Function8aba9
+ ld a, c
+ and a
+ jr z, .asm_1020e8
+ dec a
+ ld hl, $a04c
+ ld bc, $25
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld a, $04
+ call GetSRAMBank
+ call Function10208e
+ call Function102068
+ call CloseSRAM
+ xor a
+ ret
+
+.asm_1020e8
+ scf
+ ret
+; 1020ea
+
+Function1020ea: ; 1020ea
+ ld hl, wdc41
+ bit 4, [hl]
+ jr z, .quit
+ ld hl, wdc41
+ bit 2, [hl]
+ jr nz, .quit
+ call Function10218d
+ ld hl, wc608
+ bit 4, [hl]
+ jr z, .quit
+ ld hl, wc608
+ bit 2, [hl]
+ jr nz, .quit
+ call Function102112
+ jr z, .quit
+ and a
+ ret
+
+.quit
+ scf
+ ret
+; 102112
+
+Function102112: ; 102112
+ ld a, $04
+ call GetSRAMBank
+ ld hl, $a041
+ ld c, 40
+.outer_loop
+ push hl
+ ld de, $c60f
+ ld b, 31
+.inner_loop
+ ld a, [de]
+ cp [hl]
+ jr nz, .not_matching
+ inc de
+ inc hl
+ dec b
+ jr nz, .inner_loop
+ pop hl
+ xor a
+ jr .done
+
+.not_matching
+ pop hl
+ ld de, 37
+ add hl, de
+ dec c
+ jr nz, .outer_loop
+ ld a, $01
+ and a
+ jr .done ; useless jr
+
+.done
+ push af
+ call CloseSRAM
+ pop af
+ ret
+; 102142
+
+Function102142: ; 102142
+ call Function10218d
+ call Function102180
+ ld hl, UnknownText_0x1021d1
+ call MenuTextBox
+ ld de, SFX_LEVEL_UP
+ call PlaySFX
+ call JoyWaitAorB
+ call ExitMenu
+ call Function10219f
+ ld hl, UnknownText_0x1021d6
+ call MenuTextBox
+ call YesNoBox
+ call ExitMenu
+ jr c, .asm_10217c
+ call Function1021b8
+ jr c, .asm_10217c
+ call Function10218d
+ call Function102180
+ ld hl, UnknownText_0x1021db
+ call PrintText
+
+.asm_10217c
+ call Function1013d6
+ ret
+; 102180
+
+Function102180: ; 102180
+ ld hl, wc608 + 1
+ ld de, StringBuffer2
+ ld bc, 11
+ call CopyBytes
+ ret
+; 10218d
+
+Function10218d: ; 10218d
+ ld hl, w5_dc00
+ ld de, wc608
+ ld bc, $26
+ ld a, $05
+ call FarCopyWRAM
+ ld de, wc608 + 1 ; useless
+ ret
+; 10219f
+
+Function10219f: ; 10219f
+ call FadeToMenu
+ call Function10218d
+ ld de, wc608 + 1
+ callba Function8ac4e
+ call JoyWaitAorB
+ call PlayClickSFX
+ call Function1013aa
+ ret
+; 1021b8
+
+Function1021b8: ; 1021b8
+ call FadeToMenu
+ call Function10218d
+ ld de, wPlayerMoveStruct
+ callba Function8ac70
+ ld a, c
+ ld [StringBuffer1], a
+ push af
+ call Function1013aa
+ pop af
+ ret
+; 1021d1
+
+UnknownText_0x1021d1: ; 1021d1
+ text_jump UnknownText_0x1bd19a
+ db "@"
+
+UnknownText_0x1021d6: ; 1021d1
+ text_jump UnknownText_0x1bd1ba
+ db "@"
+
+UnknownText_0x1021db: ; 1021d1
+ text_jump UnknownText_0x1bd1dd
+ db "@"
+; 1021e0
+
+Function1021e0: ; 1021e0
+ call MenuTextBox
+ call JoyWaitAorB
+ call ExitMenu
+ ret
+; 1021ea
+
+UnknownText_0x1021ea: ; 1021ea
+ text_jump UnknownText_0x1bd201
+ db "@"
+
+UnknownText_0x1021ef:
+ text_jump UnknownText_0x1bd211
+ db "@"
+
+UnknownText_0x1021f4:
+ text_jump UnknownText_0x1bd223
+ db "@"
+; 1021f9
+
+Function1021f9: ; 1021f9
+ call Function102233
+ ld a, $0 ; Function10234b
+ ld [wcd49], a
+ ld hl, wcd29
+ bit 3, [hl]
+ res 3, [hl]
+ jr z, .asm_10220f
+ ld a, $1 ; Function102361
+ ld [wcd49], a
+
+.asm_10220f
+ call Function1022ca
+ ld a, [wcd49]
+ ld hl, Jumptable_1022f5
+ rst JumpTable
+ call Function102241
+ call Function1022d0
+ jr c, .asm_102231
+ ld a, [wcd49]
+ bit 7, a
+ jr z, .asm_10220f
+ xor a
+ ld hl, wcd29
+ bit 3, [hl]
+ ret z
+ scf
+ ret
+
+.asm_102231
+ xor a
+ ret
+; 102233
+
+Function102233: ; 102233
+ ld hl, wcd49
+ ld bc, 10
+ xor a
+ call ByteFill
+ call Function10304f
+ ret
+; 102241
+
+Function102241: ; 102241
+ call Function10226a
+ call Function102274
+ call Function10224b
+ ret
+; 10224b
+
+Function10224b: ; 10224b
+ ld hl, wcd4b
+ bit 1, [hl]
+ jr nz, .asm_10225e
+ bit 2, [hl]
+ jr nz, .asm_10225e
+ call DelayFrame
+ call DelayFrame
+ xor a
+ ret
+
+.asm_10225e
+ res 1, [hl]
+ res 2, [hl]
+ callba Mobile_ReloadMapPart
+ scf
+ ret
+; 10226a
+
+Function10226a: ; 10226a
+ ld hl, wcd4b
+ bit 0, [hl]
+ ret z
+ call Function10305d
+ ret
+; 102274
+
+Function102274: ; 102274
+ ld hl, wcd4b
+ bit 3, [hl]
+ ret z
+ res 3, [hl]
+ ld de, 8
+ call PlaySFX
+ ret
+; 102283
+
+Function102283: ; 102283
+ ld a, $01
+ ld [AttrMapEnd], a
+ ld hl, wcd4b
+ set 0, [hl]
+ ret
+; 10228e
+
+Function10228e: ; 10228e
+ xor a
+ ld [AttrMapEnd], a
+ ld hl, wcd4b
+ res 0, [hl]
+ ret
+; 102298
+
+Function102298: ; 102298
+ ld a, e
+ cp $02
+ ret nz
+ ld hl, wcd4b
+ bit 6, [hl]
+ jr z, .asm_1022b6
+ ld hl, wcd4b
+ bit 7, [hl]
+ ld hl, wcd4b
+ set 7, [hl]
+ ret nz
+ ld de, SFX_ELEVATOR_END
+ call PlaySFX
+ jr .asm_1022c1
+
+.asm_1022b6
+ ld hl, wcd4b
+ bit 7, [hl]
+ ld hl, wcd4b
+ res 7, [hl]
+ ret z
+
+.asm_1022c1
+ call Function10304f
+ ld a, $01
+ ld [AttrMapEnd], a
+ ret
+; 1022ca
+
+Function1022ca: ; 1022ca
+ ld a, 30
+ ld [OverworldDelay], a
+ ret
+; 1022d0
+
+Function1022d0: ; 1022d0
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_1022f3
+ call Function102298
+ ld a, [OverworldDelay]
+ ld c, a
+ ld a, 30
+ sub c
+ ld c, a
+ ld b, $03
+ callba AdvanceMobileInactivityTimerAndCheckExpired
+ jr c, .asm_1022f3
+ xor a
+ ret
+
+.asm_1022f3
+ scf
+ ret
+; 1022f5
+
+Jumptable_1022f5: ; 1022f5
+ dw Function10234b ; 00
+ dw Function102361 ; 01
+ dw Function10236e ; 02
+ dw Function102387 ; 03
+ dw Function1023a1 ; 04
+ dw Function1025c7 ; 05
+ dw Function1025dc ; 06
+ dw Function1024f6 ; 07
+ dw Function10250c ; 08
+ dw Function1024a8 ; 09
+ dw Function102591 ; 0a
+ dw Function1024a8 ; 0b
+ dw Function1025b0 ; 0c
+ dw Function1025bd ; 0d
+ dw Function102814 ; 0e
+ dw Function10283c ; 0f
+ dw Function102862 ; 10
+ dw Function10286f ; 11
+ dw Function1024a8 ; 12
+ dw Function1028a5 ; 13
+ dw Function1028ab ; 14
+ dw Function1023b5 ; 15
+ dw Function1023c6 ; 16
+ dw Function1024af ; 17
+ dw Function102416 ; 18
+ dw Function102423 ; 19
+ dw Function10244b ; 1a
+ dw Function1024af ; 1b
+ dw Function10246a ; 1c
+ dw Function102652 ; 1d
+ dw Function10266b ; 1e
+ dw Function1025e9 ; 1f
+ dw Function1025ff ; 20
+ dw Function102738 ; 21
+ dw Function102754 ; 22
+ dw Function1026b7 ; 23
+ dw Function1026c8 ; 24
+ dw Function1028bf ; 25
+ dw Function1028c6 ; 26
+ dw Function1028d3 ; 27
+ dw Function1028da ; 28
+ dw Function1024a8 ; 29
+ dw Function10248d ; 2a
+; 10234b
+
+Function10234b: ; 10234b
+ call Function102d9a
+ call Function102dd3
+ call Function102dec
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102361
+
+Function102361: ; 102361
+ ld a, $cc
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10236e
+
+Function10236e: ; 10236e
+ call Function1028fc
+ ret nc
+ ld a, [wcd51]
+ cp $cc
+ jr z, .asm_10237f
+ ld a, $f2
+ ld [wcd2b], a
+ ret
+
+.asm_10237f
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102387
+
+Function102387: ; 102387
+ ld hl, wcd4b
+ set 6, [hl]
+ xor a
+ ld [wdc5f], a
+ ld de, MUSIC_ROUTE_30
+ call PlayMusic
+ call Function102d9a
+ call Function102dd3
+ ld a, $01
+ ld [wMenuCursorY], a
+
+Function1023a1: ; 1023a1
+ call Function102283
+ call Function102db7
+ call Function102dec
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $1d
+ ld [wcd49], a
+ ret
+; 1023b5
+
+Function1023b5: ; 1023b5
+ call Function10228e
+ call Function102a3b
+ call Function102b12
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1023c6
+
+Function1023c6: ; 1023c6
+ call Function102c48
+ call Function102c87
+ ld a, [wcd4c]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba RemoveMonFromPartyOrBox
+ ld hl, PartyCount
+ inc [hl]
+ ld a, [hli]
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld [hl], $ff
+ ld a, [PartyCount]
+ ld [wcd4c], a
+ call Function102c07
+ call Function102d48
+ call Function102b32
+ call Function102f50
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $14
+ ld [wcd4e], a
+ ld a, 0
+ ld [wcd4f], a
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102416
+
+Function102416: ; 102416
+ ld a, $aa
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 102423
+
+Function102423: ; 102423
+ call Function102921
+ ret nc
+ callba SaveAfterLinkTrade
+ callba TrainerRankings_Trades
+ callba BackupMobileEventIndex
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10244b
+
+Function10244b: ; 10244b
+ call Function102f32
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $19
+ ld [wcd4e], a
+ ld a, 0
+ ld [wcd4f], a
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10246a
+
+Function10246a: ; 10246a
+ call Function102d9a
+ ld hl, wcd29
+ set 3, [hl]
+ call Function102e07
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $2a
+ ld [wcd49], a
+ ret
+; 102480
+
+Function102480: ; 102480
+ ld c, $32
+ call DelayFrames
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10248d
+
+Function10248d: ; 10248d
+ ld a, [wcd49]
+ set 7, a
+ ld [wcd49], a
+ ret
+; 102496
+
+Function102496: ; 102496
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1024a8
+
+Function1024a8: ; 1024a8
+ callba Function1009f3
+ ret c
+
+Function1024af: ; 1024af
+ call GetJoypad
+ ld a, [wcd4a]
+ ld hl, Jumptable_1024ba
+ rst JumpTable
+ ret
+; 1024ba
+
+Jumptable_1024ba: ; 1024ba
+ dw Function1024c0
+ dw Function1024cb
+ dw Function1024de
+; 1024c0
+
+Function1024c0: ; 1024c0
+ ld hl, wcd4e
+ inc [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+
+Function1024cb: ; 1024cb
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ ld a, [wcd4f]
+ inc a
+ ld [wcd4e], a
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+
+Function1024de: ; 1024de
+ ld hl, wcd4e
+ dec [hl]
+ jr z, .asm_1024e9
+ ld a, [hJoyPressed]
+ and A_BUTTON | B_BUTTON
+ ret z
+
+.asm_1024e9
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1024f6
+
+Function1024f6: ; 1024f6
+ call PlaceHollowCursor
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd4c]
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10250c
+
+Function10250c: ; 10250c
+ call Function1028fc
+ ret nc
+ ld a, [wcd51]
+ cp $0f
+ jr z, .asm_10254b
+ and a
+ jr z, .asm_102572
+ cp $aa
+ jr z, .asm_102572
+ cp $07
+ jr nc, .asm_102572
+ ld [wcd4d], a
+ dec a
+ ld [wd003], a
+ ld a, [wcd4c]
+ dec a
+ ld [wd002], a
+ call Function102b9c
+ call Function102bdc
+ jr c, .asm_10256d
+ callba Functionfb5dd
+ jr c, .asm_102568
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $0e
+ ld [wcd49], a
+ ret
+
+.asm_10254b
+ call Function103021
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $1e
+ ld [wcd4f], a
+ ld a, $29
+ ld [wcd49], a
+ ret
+
+.asm_102568
+ call Function102ff5
+ jr .asm_102577
+
+.asm_10256d
+ call Function102f85
+ jr .asm_102577
+
+.asm_102572
+ call Function102fce
+ jr .asm_102577
+
+.asm_102577
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $3c
+ ld [wcd4f], a
+ ld a, $09
+ ld [wcd49], a
+ ret
+; 102591
+
+Function102591: ; 102591
+ call Function102ee7
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, 0
+ ld [wcd4a], a
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $3c
+ ld [wcd4f], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025b0
+
+Function1025b0: ; 1025b0
+ ld a, $09
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025bd
+
+Function1025bd: ; 1025bd
+ call Function1028fc
+ ret nc
+ ld a, $04
+ ld [wcd49], a
+ ret
+; 1025c7
+
+Function1025c7: ; 1025c7
+ call Function102f6d
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $0f
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025dc
+
+Function1025dc: ; 1025dc
+ call Function1028fc
+ ret nc
+ ld a, [wcd49]
+ set 7, a
+ ld [wcd49], a
+ ret
+; 1025e9
+
+Function1025e9: ; 1025e9
+ nop
+ ld hl, wcd4b
+ set 6, [hl]
+ call Function102b4e
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1025ff
+
+Function1025ff: ; 1025ff
+ ld hl, wcd4b
+ set 2, [hl]
+ callba Function1009f3
+ ret c
+ callba MobileMenuJoypad
+ ld a, [wMenuJoypadFilter]
+ and c
+ ret z
+ bit A_BUTTON_F, c
+ jr nz, .a_button
+ bit D_UP_F, c
+ jr nz, .d_up
+ bit D_DOWN_F, c
+ jr nz, .d_down
+ ret
+
+.a_button
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, $27 ; Function1028d3
+ ld [wcd49], a
+ ret
+
+.d_up
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [OTPartyCount]
+ cp b
+ ret nz
+ call HideCursor
+ ld a, [PartyCount]
+ ld [wMenuCursorY], a
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+
+.d_down
+ ld a, [wMenuCursorY]
+ cp $01
+ ret nz
+ ld a, $23 ; Function1026b7
+ ld [wcd49], a
+ ret
+; 102652
+
+Function102652: ; 102652
+ nop
+ ld hl, wcd4b
+ set 6, [hl]
+ nop
+ call Function102b7b
+ nop
+ ld hl, wcd4b
+ set 1, [hl]
+ nop
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10266b
+
+Function10266b: ; 10266b
+ ld hl, wcd4b
+ set 2, [hl]
+ callba Function1009f3
+ ret c
+ callba MobileMenuJoypad
+ ld a, [wMenuJoypadFilter]
+ and c
+ ret z
+ bit A_BUTTON_F, c
+ jr nz, .a_button
+ bit D_DOWN_F, c
+ jr nz, .d_down
+ bit D_UP_F, c
+ jr nz, .d_up
+ ret
+
+.a_button
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, $21 ; Function102738
+ ld [wcd49], a
+ ret
+
+.d_down
+ ld a, [wMenuCursorY]
+ dec a
+ ret nz
+ call HideCursor
+ ld a, $1f ; Function1025e9
+ ld [wcd49], a
+ ret
+
+.d_up
+ ld a, [wMenuCursorY]
+ ld b, a
+ ld a, [PartyCount]
+ cp b
+ ret nz
+ ld a, $23 ; Function1026b7
+ ld [wcd49], a
+ ret
+; 1026b7
+
+Function1026b7: ; 1026b7
+ ld hl, wcd4b
+ set 6, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, 0
+ ld [wcd4a], a
+
+Function1026c8: ; 1026c8
+ call GetJoypad
+ callba Function1009f3
+ ret c
+ ld a, [wcd4a]
+ ld hl, Jumptable_1026da
+ rst JumpTable
+ ret
+; 1026da
+
+Jumptable_1026da: ; 1026da
+ dw Function1026de
+ dw Function1026f3
+; 1026de
+
+Function1026de: ; 1026de
+ call HideCursor
+ hlcoord 9, 17
+ ld [hl], $ed
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+; 1026f3
+
+Function1026f3: ; 1026f3
+ ld a, [hJoyPressed]
+ bit A_BUTTON_F, a
+ jr nz, .asm_102723
+ bit D_UP_F, a
+ jr nz, .asm_102712
+ bit D_DOWN_F, a
+ jr nz, .asm_102702
+ ret
+
+.asm_102702
+ hlcoord 9, 17
+ ld [hl], " "
+ ld a, $01
+ ld [wMenuCursorY], a
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+
+.asm_102712
+ hlcoord 9, 17
+ ld [hl], " "
+ ld a, [OTPartyCount]
+ ld [wMenuCursorY], a
+ ld a, $1f ; Function1025e9
+ ld [wcd49], a
+ ret
+
+.asm_102723
+ hlcoord 9, 17
+ ld [hl], "▷"
+ ld hl, wcd4b
+ set 3, [hl]
+ ld hl, wcd4b
+ set 2, [hl]
+ ld a, $5 ; Function1025c7
+ ld [wcd49], a
+ ret
+; 102738
+
+Function102738: ; 102738
+ ld hl, wcd4b
+ set 6, [hl]
+ call PlaceHollowCursor
+ call Function1027eb
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, 0
+ ld [wcd4a], a
+
+Function102754: ; 102754
+ call GetJoypad
+ callba Function1009f3
+ ret c
+ ld a, [wcd4a]
+ ld hl, Jumptable_102766
+ rst JumpTable
+ ret
+; 102766
+
+Jumptable_102766: ; 102766
+ dw Function102770
+ dw Function102775
+ dw Function10278c
+ dw Function1027a0
+ dw Function1027b7
+; 102770
+
+Function102770: ; 102770
+ ld a, $01
+ ld [wcd4a], a
+
+Function102775: ; 102775
+ hlcoord 1, 16
+ ld [hl], "▶"
+ hlcoord 11, 16
+ ld [hl], " "
+ ld hl, wcd4b
+ set 2, [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ ret
+; 10278c
+
+Function10278c: ; 10278c
+ ld a, [hJoyPressed]
+ bit A_BUTTON_F, a
+ jr nz, asm_1027c6
+ bit B_BUTTON_F, a
+ jr nz, asm_1027e2
+ bit D_RIGHT_F, a
+ jr nz, .asm_10279b
+ ret
+
+.asm_10279b
+ ld a, $03
+ ld [wcd4a], a
+Function1027a0: ; 1027a0
+ hlcoord 1, 16
+ ld [hl], " "
+ hlcoord 11, 16
+ ld [hl], "▶"
+ ld hl, wcd4b
+ set 2, [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ ret
+
+Function1027b7: ; 1027b7
+ ld a, [hJoyPressed]
+ bit A_BUTTON_F, a
+ jr nz, asm_1027d1
+ bit B_BUTTON_F, a
+ jr nz, asm_1027e2
+ bit D_LEFT_F, a
+ jr nz, Function102770
+ ret
+
+asm_1027c6:
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, $25 ; Function1028bf
+ ld [wcd49], a
+ ret
+
+asm_1027d1:
+ ld hl, wcd4b
+ set 3, [hl]
+ ld a, [wMenuCursorY]
+ ld [wcd4c], a
+ ld a, $7 ; Function1024f6
+ ld [wcd49], a
+ ret
+
+asm_1027e2:
+ call Function102db7
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+; 1027eb
+
+Function1027eb: ; 1027eb
+ hlcoord 0, 14
+ ld b, 2
+ ld c, 18
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+ ld de, .Stats_Trade
+ hlcoord 2, 16
+ call PlaceString
+ ret
+; 102804
+
+.Stats_Trade: ; 102804
+ db "STATS TRADE@"
+; 102814
+
+Function102814: ; 102814
+ ld a, [wMenuCursorY]
+ ld [wcd52], a
+ ld a, [wcd4c]
+ dec a
+ ld [wd002], a
+ ld a, [wcd4d]
+ dec a
+ ld [wd003], a
+ call Function102ea8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, 0
+ ld [wcd4a], a
+ ld hl, wcd4b
+ set 1, [hl]
+
+Function10283c: ; 10283c
+ ld hl, wcd4b
+ set 2, [hl]
+ call Function1029c3
+ ret z
+ jr c, .asm_102852
+ ld a, $10 ; Function102862
+ ld [wcd49], a
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+
+.asm_102852
+ ld a, $14 ; Function1028ab
+ ld [wcd49], a
+ ld hl, wcd4b
+ set 3, [hl]
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+; 102862
+
+Function102862: ; 102862
+ ld a, $08
+ call Function1028e8
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 10286f
+
+Function10286f: ; 10286f
+ call Function1028fc
+ ret nc
+ ld a, [wcd52]
+ ld [wMenuCursorY], a
+ ld a, [wcd51]
+ cp $08
+ jr nz, .asm_102886
+ ld a, $15 ; Function1023b5
+ ld [wcd49], a
+ ret
+
+.asm_102886
+ call Function102ee7
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, $3c
+ ld [wcd4f], a
+ ld a, 0
+ ld [wcd4a], a
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ret
+; 1028a5
+
+Function1028a5: ; 1028a5
+ ld a, $4 ; Function1023a1
+ ld [wcd49], a
+ ret
+; 1028ab
+
+Function1028ab: ; 1028ab
+ ld a, [wcd52]
+ ld [wMenuCursorY], a
+ call Function102f15
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, $c ; Function1025b0
+ ld [wcd49], a
+ ret
+; 1028bf
+
+Function1028bf: ; 1028bf
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+
+Function1028c6: ; 1028c6
+ xor a
+ ld [MonType], a
+ call Function102bac
+ ld a, $1d ; Function102652
+ ld [wcd49], a
+ ret
+; 1028d3
+
+Function1028d3: ; 1028d3
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+
+Function1028da: ; 1028da
+ ld a, OTPARTYMON
+ ld [MonType], a
+ call Function102bac
+ ld a, $1f ; Function1025e9
+ ld [wcd49], a
+ ret
+; 1028e8
+
+Function1028e8: ; 1028e8
+ ld hl, wcd4b
+ res 6, [hl]
+ ld [wcd50], a
+ callba StartMobileInactivityTimer
+ ld a, 0
+ ld [wcd4a], a
+ ret
+; 1028fc
+
+Function1028fc: ; 1028fc
+ call GetJoypad
+ callba Function1009f3
+ jr nc, .asm_102909
+ and a
+ ret
+
+.asm_102909
+ ld a, [wcd4a]
+ ld hl, Jumptable_102917
+ rst JumpTable
+ ret nc
+ ld a, 0
+ ld [wcd4a], a
+ ret
+; 102917
+
+Jumptable_102917: ; 102917
+ dw Function102933
+ dw Function10294f
+ dw Function10295d
+ dw Function10296e
+ dw Function102996
+; 102921
+
+Function102921: ; 102921
+ ld a, [wcd4a]
+ ld hl, Jumptable_10292f
+ rst JumpTable
+ ret nc
+ ld a, 0
+ ld [wcd4a], a
+ ret
+; 10292f
+
+Jumptable_10292f: ; 10292f
+ dw Function10295d
+ dw Function102984
+; 102933
+
+Function102933: ; 102933
+ ld hl, MenuDataHeader_1029bb
+ call LoadMenuDataHeader
+ call Function102e07
+ ld a, $32
+ ld [TextDelayFrames], a
+ ld hl, wcd4b
+ set 1, [hl]
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 10294f
+
+Function10294f: ; 10294f
+ ld a, [TextDelayFrames]
+ and a
+ ret nz
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 10295d
+
+Function10295d: ; 10295d
+ call Function10299e
+ ld a, 0
+ ld [wcd27], a
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 10296e
+
+Function10296e: ; 10296e
+ callba Function100382
+ and a
+ ld a, [wcd27]
+ bit 7, a
+ ret z
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ and a
+ ret
+; 102984
+
+Function102984: ; 102984
+ callba Function100382
+ and a
+ ld a, [wcd27]
+ bit 7, a
+ ret z
+ call Function1029af
+ scf
+ ret
+; 102996
+
+Function102996: ; 102996
+ call Function1029af
+ call ExitMenu
+ scf
+ ret
+; 10299e
+
+Function10299e: ; 10299e
+ ld a, $01
+ ld [wccb4], a
+ ld a, [wcd50]
+ ld [wccb5], a
+ ld a, $aa
+ ld [wcd51], a
+ ret
+; 1029af
+
+Function1029af: ; 1029af
+ ld hl, wcd4b
+ res 7, [hl]
+ ld a, [wcc61]
+ ld [wcd51], a
+ ret
+; 1029bb
+
+MenuDataHeader_1029bb: ; 1029bb
+ db $40 ; flags
+ db 10, 3 ; start coords
+ db 12, 15 ; end coords
+ dw NULL
+ db 1 ; default option
+; 1029c3
+
+Function1029c3: ; 1029c3
+ ld a, [wcd4a]
+ ld hl, Jumptable_1029cb
+ rst JumpTable
+ ret
+; 1029cb
+
+Jumptable_1029cb: ; 1029cb
+ dw Function1029cf
+ dw Function1029fe
+; 1029cf
+
+Function1029cf: ; 1029cf
+ call LoadStandardMenuDataHeader
+ hlcoord 10, 7
+ ld b, 3
+ ld c, 8
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+ ld de, String_102a26
+ hlcoord 12, 8
+ call PlaceString
+ ld hl, wcd4b
+ set 1, [hl]
+ ld de, MenuData3_102a33
+ call SetMenuAttributes
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ xor a
+ ret
+; 1029fe
+
+Function1029fe: ; 1029fe
+ callba Function1009f3
+ ret c
+ callba MobileMenuJoypad
+ ld a, c
+ ld hl, wMenuJoypadFilter
+ and [hl]
+ ret z
+ push af
+ call ExitMenu
+ pop af
+ ld a, [wMenuCursorY]
+ cp $01
+ jr nz, .asm_102a21
+ ld a, $01
+ and a
+ ret
+
+.asm_102a21
+ ld a, $01
+ and a
+ scf
+ ret
+; 102a26
+
+String_102a26: ; 102a26
+ db "TRADE"
+ next "CANCEL"
+ db "@"
+; 102a33
+
+MenuData3_102a33:
+ db 8, 11
+ db 2, 1
+ db $80, $00
+ dn 2, 0
+ db A_BUTTON
+
+Function102a3b: ; 102a3b
+ ld a, [wcd30]
+ ld [wc74e], a
+ ld hl, PlayerName
+ ld de, wPlayerTrademonSenderName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd4c]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wPlayerTrademonSpecies], a
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMonOT
+ call SkipNames
+ ld de, wPlayerTrademonOTName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMon1ID
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wPlayerTrademonID], a
+ ld a, [hl]
+ ld [wPlayerTrademonID + 1], a
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMon1DVs
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wPlayerTrademonDVs], a
+ ld a, [hl]
+ ld [wPlayerTrademonDVs + 1], a
+ ld a, [wcd4c]
+ dec a
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba GetCaughtGender
+ ld a, c
+ ld [wPlayerTrademonCaughtData], a
+ ld hl, OTPlayerName
+ ld de, wOTTrademonSenderName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+
+ ld a, [wcd4d]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, OTPartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wOTTrademonSpecies], a
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMonOT
+ call SkipNames
+ ld de, wOTTrademonOTName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1ID
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wOTTrademonID], a
+ ld a, [hl]
+ ld [wOTTrademonID + 1], a
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1DVs
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ ret
+; 102b12
+
+Function102b12: ; 102b12
+ ld c, 100
+ call DelayFrames
+ call Function102d9a
+ call LoadFontsBattleExtra
+ ld a, [wcd2f]
+ and a
+ jr nz, .asm_102b2b
+ callba Function108026
+ jr .asm_102b31
+
+.asm_102b2b
+ callba Function10802a
+
+.asm_102b31
+ ret
+; 102b32
+
+Function102b32: ; 102b32
+ ld a, [wcd4c]
+ dec a
+ ld [CurPartyMon], a
+ ld a, $01
+ ld [wForceEvolution], a
+ callba EvolvePokemon
+ call Function102d9a
+ call Function102dd3
+ call Function102dec
+ ret
+; 102b4e
+
+Function102b4e: ; 102b4e
+ ld a, OTPARTYMON
+ ld [MonType], a
+ ld a, [wMenuCursorY]
+ push af
+ ld de, Unknown_102b73
+ call SetMenuAttributes
+ pop af
+ ld [wMenuCursorY], a
+ ld a, [OTPartyCount]
+ ld [w2DMenuNumRows], a
+ ret
+; 102b68
+
+Function102b68: ; 102b68 ; unreferenced
+ xor a
+ ld hl, wWindowStackPointer
+ ld bc, $10
+ call ByteFill
+ ret
+; 102b73
+
+Unknown_102b73:
+ db 9, 6
+ db 255, 1
+ db $a0, $00
+ dn 1, 0
+ db D_UP | D_DOWN | A_BUTTON
+
+Function102b7b: ; 102b7b
+ xor a
+ ld [MonType], a
+ ld a, [wMenuCursorY]
+ push af
+ ld de, Unknown_102b94
+ call SetMenuAttributes
+ pop af
+ ld [wMenuCursorY], a
+ ld a, [PartyCount]
+ ld [w2DMenuNumRows], a
+ ret
+; 102b94
+
+Unknown_102b94:
+ db 1, 6
+ db 255, 1
+ db $a0, $00
+ dn 1, 0
+ db D_UP | D_DOWN | A_BUTTON
+
+Function102b9c: ; 102b9c
+ ld a, [wcd4d]
+ dec a
+ hlcoord 6, 9
+ ld bc, $14
+ call AddNTimes
+ ld [hl], $ec
+ ret
+; 102bac
+
+Function102bac: ; 102bac
+ ld a, [wMenuCursorY]
+ dec a
+ ld [CurPartyMon], a
+ call LowVolume
+ call ClearSprites
+ callba _MobileStatsScreenInit
+ ld a, [CurPartyMon]
+ inc a
+ ld [wMenuCursorY], a
+ call Function102d9a
+ call ClearPalettes
+ call DelayFrame
+ call MaxVolume
+ call Function102dd3
+ call Function102dec
+ call Function102db7
+ ret
+; 102bdc
+
+Function102bdc: ; 102bdc
+ ld a, [wcd4d]
+ dec a
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ push hl
+ ld a, [wcd4d]
+ ld c, a
+ ld b, 0
+ ld hl, OTPartyCount
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ cp EGG
+ jr z, .asm_102bfa
+ cp [hl]
+ jr nz, .asm_102c05
+
+.asm_102bfa
+ ld bc, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MAX_LEVEL + 1
+ jr nc, .asm_102c05
+ and a
+ ret
+
+.asm_102c05
+ scf
+ ret
+; 102c07
+
+Function102c07: ; 102c07
+ call Function102c14
+ call Function102c3b
+ call Function102c21
+ call Function102c2e
+ ret
+; 102c14
+
+Function102c14: ; 102c14
+ ld hl, PartySpecies
+ ld de, OTPartySpecies
+ ld bc, 1
+ call Function102c71
+ ret
+; 102c21
+
+Function102c21: ; 102c21
+ ld hl, PartyMonNicknames
+ ld de, OTPartyMonNicknames
+ ld bc, 11
+ call Function102c71
+ ret
+; 102c2e
+
+Function102c2e: ; 102c2e
+ ld hl, PartyMonOT
+ ld de, OTPartyMonOT
+ ld bc, 11
+ call Function102c71
+ ret
+; 102c3b
+
+Function102c3b: ; 102c3b
+ ld hl, PartyMon1
+ ld de, OTPartyMon1
+ ld bc, $30
+ call Function102c71
+ ret
+; 102c48
+
+Function102c48: ; 102c48
+ callba Function10165a
+ ld a, 0
+ call GetSRAMBank
+ ld hl, $a600
+ ld de, wc608
+ ld bc, $2f
+ call Function102c71
+ call CloseSRAM
+ ld hl, wc608
+ ld de, w5_da00
+ ld bc, $1e0
+ ld a, $05
+ call FarCopyWRAM
+ ret
+; 102c71
+
+Function102c71: ; 102c71
+ ld a, [wcd4c]
+ dec a
+ call AddNTimes
+ push hl
+ ld h, d
+ ld l, e
+ ld a, [wcd4d]
+ dec a
+ call AddNTimes
+ pop de
+ call SwapBytes
+ ret
+; 102c87
+
+Function102c87: ; 102c87
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcd4c]
+ ld [wJumptableIndex], a
+ ld a, [PartyCount]
+ ld [wcf64], a
+ ld a, 0
+ ld hl, $a600
+ ld de, wc608
+ ld bc, $11a
+ call Function102d3e
+ call Function102cee
+ ld a, 0
+ ld hl, wc608
+ ld de, $a600
+ ld bc, $11a
+ call Function102d3e
+ ld a, [wcd4d]
+ ld [wJumptableIndex], a
+ ld a, [OTPartyCount]
+ ld [wcf64], a
+ ld a, $05
+ ld hl, w5_da00
+ ld de, wc608
+ ld bc, $11a
+ call FarCopyWRAM
+ call Function102cee
+ ld a, $05
+ ld hl, wc608
+ ld de, w5_da00
+ ld bc, $11a
+ call FarCopyWRAM
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ ret
+; 102cee
+
+Function102cee: ; 102cee
+ ld a, [wJumptableIndex]
+ dec a
+ call Function102d34
+ ld de, wd002
+ ld bc, $2f
+ call CopyBytes
+ ld a, [wJumptableIndex]
+ ld c, a
+ ld a, $06
+ sub c
+ ret z
+ ld bc, $2f
+ ld hl, 0
+ call AddNTimes
+ push hl
+ ld a, [wJumptableIndex]
+ dec a
+ call Function102d34
+ ld d, h
+ ld e, l
+ ld hl, $2f
+ add hl, de
+ pop bc
+ call CopyBytes
+ ld a, [wcf64]
+ dec a
+ call Function102d34
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ ld bc, $2f
+ call CopyBytes
+ ret
+; 102d34
+
+Function102d34: ; 102d34
+ ld hl, wc608
+ ld bc, $2f
+ call AddNTimes
+ ret
+; 102d3e
+
+Function102d3e: ; 102d3e
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 102d48
+
+Function102d48: ; 102d48
+ ld a, [wcd4c]
+ ld e, a
+ ld d, 0
+ ld hl, PartyCount
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+ cp EGG
+ jr z, .asm_102d6d
+ dec a
+ call SetSeenAndCaughtMon
+ ld a, [wcd4c]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1Happiness
+ call AddNTimes
+ ld [hl], BASE_HAPPINESS
+
+.asm_102d6d
+ ld a, [wd265]
+ cp UNOWN
+ jr nz, .asm_102d98
+ ld a, [wcd4c]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1DVs
+ call AddNTimes
+ predef GetUnownLetter
+ callba UpdateUnownDex
+ ld a, [wFirstUnownSeen]
+ and a
+ jr nz, .asm_102d98
+ ld a, [UnownLetter]
+ ld [wFirstUnownSeen], a
+
+.asm_102d98
+ and a
+ ret
+; 102d9a
+
+Function102d9a: ; 102d9a
+ ld a, " "
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ld a, $07
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ret
+; 102db7
+
+Function102db7: ; 102db7
+ call Function102e4f
+ call Function102e3e
+ ld hl, wcd4b
+ set 1, [hl]
+ ret
+; 102dc3
+
+Function102dc3: ; 102dc3
+ hlcoord 0, 12
+ ld b, 4
+ ld c, 18
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+ ret
+; 102dd3
+
+Function102dd3: ; 102dd3
+ call DisableLCD
+ ld de, GFX_1032a2
+ ld hl, VTiles0
+ lb bc, BANK(GFX_1032a2), 4
+ call Get2bpp
+ callba __LoadTradeScreenBorder
+ call EnableLCD
+ ret
+; 102dec
+
+Function102dec: ; 102dec
+ ld hl, Palettes_1032e2
+ ld de, UnknOBPals
+ ld bc, 4 palettes
+ ld a, $05
+ call FarCopyWRAM
+ callba Function49742
+ call SetPalettes
+ call DelayFrame
+ ret
+; 102e07
+
+Function102e07: ; 102e07
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+ ld a, [wBattleMode]
+ and a
+ jr z, .link_battle
+ call TextBox
+ jr .okay
+
+.link_battle
+; this is idiotic
+ hlcoord 3, 10
+ ld b, 1
+ ld c, 11
+ ld d, h
+ ld e, l
+ callba _LinkTextbox
+
+.okay
+ ld de, .waiting
+ hlcoord 4, 11
+ call PlaceString
+ ret
+; 102e32
+
+.waiting ; 102e32
+ db "Waiting...!@"
+; 102e3e
+
+Function102e3e: ; 102e3e
+ ld de, .CANCEL
+ hlcoord 10, 17
+ call PlaceString
+ ret
+; 102e48
+
+.CANCEL: ; 102e48
+ db "CANCEL@"
+; 102e4f
+
+Function102e4f: ; 102e4f
+ callba Function16d42e
+ callba _InitMG_Mobile_LinkTradePalMap
+ ld de, PlayerName
+ hlcoord 4, 0
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ ld de, OTPlayerName
+ hlcoord 4, 8
+ call PlaceString
+ ld a, $14
+ ld [bc], a
+ hlcoord 7, 1
+ ld de, PartySpecies
+ call .PlaceSpeciesNames
+ hlcoord 7, 9
+ ld de, OTPartySpecies
+ call .PlaceSpeciesNames
+ ret
+; 102e86
+
+.PlaceSpeciesNames: ; 102e86
+ ld c, 0
+.count_loop
+ ld a, [de]
+ cp $ff
+ ret z
+ ld [wd265], a
+ push bc
+ push hl
+ push de
+ push hl
+ ld a, c
+ ld [hDividend], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ pop de
+ inc de
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ inc c
+ jr .count_loop
+; 102ea8
+
+Function102ea8: ; 102ea8
+ call Function102dc3
+ ld a, [wcd4c]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, StringBuffer2
+ ld bc, 11
+ call CopyBytes
+ ld a, [wcd4d]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, OTPartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, UnknownText_0x102ee2
+ call PrintTextBoxText
+ ret
+; 102ee2
+
+UnknownText_0x102ee2: ; 102ee2
+ text_jump UnknownText_0x1bd286
+ db "@"
+
+Function102ee7: ; 102ee7
+ call Function102dc3
+ ld de, String_102ef4
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102ef4
+
+String_102ef4: ; 102ef4
+ db "Too bad! The trade"
+ next "was canceled!"
+ db "@"
+; 102f15
+
+Function102f15: ; 102f15
+ call Function102dc3
+ ld de, .TooBadTheTradeWasCanceled
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f22
+
+.TooBadTheTradeWasCanceled: ; 102f22
+ db "こうかんを キャンセルしました@"
+; 102f32
+
+Function102f32: ; 102f32
+ call Function102dc3
+ ld de, .TradeCompleted
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f3f
+
+.TradeCompleted: ; 102f3f
+ db "Trade completed!@"
+; 102f50
+
+Function102f50: ; 102f50
+ call Function102dc3
+ ld de, .PleaseWait
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f5d
+
+.PleaseWait: ; 102f5d
+ db "しょうしょう おまち ください@"
+; 102f6d
+
+Function102f6d: ; 102f6d
+ call Function102dc3
+ ld de, .Finished
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102f7a
+
+.Finished: ; 102f7a
+ db "しゅうりょう します@"
+; 102f85
+
+Function102f85: ; 102f85
+ ld a, [wd003]
+ ld c, a
+ ld b, 0
+ ld hl, OTPartySpecies
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ call Function102dc3
+ ld de, String_102fb2
+ hlcoord 1, 14
+ call PlaceString
+ ld de, StringBuffer1
+ hlcoord 13, 14
+ call PlaceString
+ ld de, String_102fcc
+ call PlaceString
+ ret
+; 102fb2
+
+String_102fb2: ; 102fb2
+ db "あいてがわ<PKMN>えらんだ "
+ next "いじょう<PKMN>あるようです!!"
+ db "@"
+; 102fcc
+
+String_102fcc: ; 102fcc
+ db "に@"
+; 102fce
+
+Function102fce: ; 102fce
+ call Function102dc3
+ ld de, String_102fdb
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 102fdb
+
+String_102fdb: ; 102fdb
+ db "あいてがわ%せんたくに"
+ next "いじょう<PKMN>あるようです!!"
+ done
+; 102ff5
+
+Function102ff5: ; 102ff5
+ call Function102dc3
+ ld de, String_103002
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 103002
+
+String_103002: ; 103002
+ db "その#を こうかんすると"
+ next "せんとう できなく なっちゃうよ!"
+ db "@"
+; 103021
+
+Function103021: ; 103021
+ call Function102dc3
+ ld de, String_10302e
+ hlcoord 1, 14
+ call PlaceString
+ ret
+; 10302e
+
+String_10302e: ; 10302e
+ db "あいてが ちゅうしを えらんだので"
+ next "こうかんを ちゅうし します"
+ db "@"
+; 10304f
+
+Function10304f: ; 10304f
+ xor a
+ ld [AttrMapEnd], a
+ ld [wcf42], a
+ ld [wcf44], a
+ ld [wcf45], a
+ ret
+; 10305d
+
+Function10305d: ; 10305d
+ nop
+ ld a, [AttrMapEnd]
+ and a
+ ret z
+ call Function10307f
+ ret c
+ call Function103094
+ call Function10306e
+ ret
+; 10306e
+
+Function10306e: ; 10306e
+ ld a, $01
+ ld [hOAMUpdate], a
+ call ClearSprites
+ ld de, Sprites
+ call Function1030cd
+ xor a
+ ld [hOAMUpdate], a
+ ret
+; 10307f
+
+Function10307f: ; 10307f
+ ld c, $02
+ ld hl, wcd4b
+ bit 7, [hl]
+ jr z, .asm_10308a
+ ld c, $01
+
+.asm_10308a
+ ld hl, wcf45
+ inc [hl]
+ ld a, [hl]
+ cp c
+ ret c
+ xor a
+ ld [hl], a
+ ret
+; 103094
+
+Function103094: ; 103094
+ ld hl, wcd4b
+ bit 7, [hl]
+ jr nz, .asm_1030c0
+ ld a, [wcf42]
+ bit 7, a
+ jr nz, .asm_1030b2
+ ld a, [wcf44]
+ inc a
+ ld [wcf44], a
+ cp $2c
+ ret nz
+ ld hl, wcf42
+ set 7, [hl]
+ ret
+
+.asm_1030b2
+ ld a, [wcf44]
+ dec a
+ ld [wcf44], a
+ ret nz
+ ld hl, wcf42
+ res 7, [hl]
+ ret
+
+.asm_1030c0
+ ld hl, wcf44
+ ld a, [hl]
+ and a
+ jr z, .asm_1030ca
+ dec a
+ ld [hl], a
+ ret nz
+
+.asm_1030ca
+ ld [hl], $2c
+ ret
+; 1030cd
+
+Function1030cd: ; 1030cd
+ ld a, [wcf44]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ add hl, hl
+ add hl, hl
+ ld bc, Unknown_103112
+ add hl, bc
+ ld b, $30
+ ld c, $08
+.asm_1030de
+ push hl
+ ld hl, wcd4b
+ bit 7, [hl]
+ pop hl
+ ld a, 0
+ jr z, .asm_1030eb
+ ld a, $05
+.asm_1030eb
+
+ add [hl]
+ inc hl
+ push hl
+
+ add a
+ add a
+
+ add Unknown_10327a % $100
+ ld l, a
+ ld a, Unknown_10327a / $100
+ adc 0
+ ld h, a
+
+ ld a, b
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, $0a
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop hl
+ ld a, b
+ add $08
+ ld b, a
+ dec c
+ jr nz, .asm_1030de
+ ret
+; 103112
+
+Unknown_103112: ; 103112
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $01, $00, $00, $00, $00, $00, $00, $00
+ db $02, $01, $00, $00, $00, $00, $00, $00
+ db $03, $02, $01, $00, $00, $00, $00, $00
+ db $04, $03, $02, $01, $00, $00, $00, $00
+ db $04, $04, $03, $02, $01, $00, $00, $00
+ db $04, $04, $04, $03, $02, $01, $00, $00
+ db $04, $04, $04, $04, $03, $02, $01, $00
+ db $04, $04, $04, $04, $04, $03, $02, $01
+ db $04, $04, $04, $04, $04, $04, $03, $02
+ db $04, $04, $04, $04, $04, $04, $04, $03
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $04, $04, $04, $04, $04, $04, $04, $04
+ db $03, $04, $04, $04, $04, $04, $04, $04
+ db $02, $03, $04, $04, $04, $04, $04, $04
+ db $01, $02, $03, $04, $04, $04, $04, $04
+ db $00, $01, $02, $03, $04, $04, $04, $04
+ db $00, $00, $01, $02, $03, $04, $04, $04
+ db $00, $00, $00, $01, $02, $03, $04, $04
+ db $00, $00, $00, $00, $01, $02, $03, $04
+ db $00, $00, $00, $00, $00, $01, $02, $03
+ db $00, $00, $00, $00, $00, $00, $01, $02
+ db $00, $00, $00, $00, $00, $00, $00, $01
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+ db $00, $00, $00, $00, $00, $00, $00, $00
+; 10327a
+
+Unknown_10327a: ; 10327a
+ db $00, $00, $00, $00
+ db $00, $00, $01, $00
+ db $00, $00, $02, $00
+ db $00, $00, $03, $00
+ db $00, $00, $01, $01
+ db $00, $00, $00, $00
+ db $00, $00, $01, $02
+ db $00, $00, $02, $02
+ db $00, $00, $03, $02
+ db $00, $00, $01, $03
+
+GFX_1032a2:
+INCBIN "gfx/unknown/1032a2.2bpp"
+
+Palettes_1032e2:
+ RGB 0, 0, 0
+ RGB 31, 31, 7
+ RGB 20, 31, 6
+ RGB 13, 20, 16
+
+ RGB 0, 0, 0
+ RGB 7, 11, 17
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 31, 24, 4
+ RGB 25, 12, 0
+ RGB 31, 7, 4
+
+ RGB 0, 0, 0
+ RGB 25, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+; 103302
+
+Function103302: ; 103302
+ call Function103309
+ call Function103362
+ ret
+; 103309
+
+Function103309: ; 103309
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Buffer1
+ ld bc, 10
+ xor a
+ call ByteFill
+ ld a, $04
+ call GetSRAMBank
+ ld a, [wdc41]
+ ld [$a60c], a
+ ld [Buffer1], a
+ call CloseSRAM
+ call Function1035c6
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld [wd1ef], a
+ ld a, [hli]
+ ld [wd1ec], a
+ ld a, [hli]
+ ld [wd1ed], a
+ ld h, d
+ ld l, e
+ call Function3eea
+ ld hl, wd1ec
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ ld [wd1ee], a
+ call Function1034be
+ call UpdateSprites
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ld a, $01
+ ld [wd1f0], a
+ call Function10339a
+ ret
+; 103362
+
+Function103362: ; 103362
+.asm_103362
+ ld a, [wd1f0]
+ ld [wd1f1], a
+ call Function1033af
+ call Function10339a
+ call Function10342c
+ callba HDMATransferTileMapToWRAMBank3
+ ld a, [Buffer2]
+ bit 7, a
+ jr z, .asm_103362
+ ld hl, Buffer2
+ bit 6, [hl]
+ jr z, .asm_103398
+ ld a, $04
+ call GetSRAMBank
+ ld a, [Buffer1]
+ ld [$a60c], a
+ ld [wdc41], a
+ call CloseSRAM
+ xor a
+ ret
+
+.asm_103398
+ scf
+ ret
+; 10339a
+
+Function10339a: ; 10339a
+ ld a, [wd1f0]
+ ld [wd1f2], a
+ ld c, a
+ ld b, 0
+ ld hl, wd1ec
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd1f3], a
+ ret
+; 1033af
+
+Function1033af: ; 1033af
+ call GetJoypad
+ ld a, [hJoyPressed]
+ bit D_LEFT_F, a
+ jr nz, .left
+ bit D_RIGHT_F, a
+ jr nz, .right
+ bit B_BUTTON_F, a
+ jr nz, .b
+ bit A_BUTTON_F, a
+ jr nz, .a
+ bit D_UP_F, a
+ jr nz, .up
+ bit D_DOWN_F, a
+ jr nz, .down
+ ret
+
+.up
+ ld a, [wd1f0]
+ dec a
+ ld [wd1f0], a
+ cp 1
+ ret nc
+ ld a, [wd1ee]
+ ld [wd1f0], a
+ ret
+
+.down
+ ld a, [wd1f0]
+ inc a
+ ld [wd1f0], a
+ ld c, a
+ ld a, [wd1ee]
+ cp c
+ ret nc
+ ld a, 1
+ ld [wd1f0], a
+ ret
+
+.b
+ call PlayClickSFX
+ ld hl, Buffer2
+ set 7, [hl]
+ ret
+
+.a
+ ld a, [wd1f3]
+ cp 3
+ jr nz, .a_return
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ ld hl, Buffer2
+ set 7, [hl]
+ ld hl, Buffer2
+ set 6, [hl]
+ ret
+
+.left
+.right
+.a_return
+ ld a, [wd1f3]
+ cp 3
+ ret z
+ ld de, SFX_PUSH_BUTTON
+ call PlaySFX
+ ld bc, 8
+ call Function10350f
+ ld a, [Buffer1]
+ xor e
+ ld [Buffer1], a
+ ret
+; 10342c
+
+Function10342c: ; 10342c
+ ld a, [wd1f0]
+ ld [wd1f2], a
+ call Function103490
+ call Function10343c
+ call Function1034a7
+ ret
+; 10343c
+
+Function10343c: ; 10343c
+ ld a, [wd1f3]
+ cp $02
+ jr nz, .asm_103452
+ ld bc, 1
+ call Function1034f7
+ ld c, $12
+ ld b, $01
+ call Function1034e0
+ jr .asm_10345f
+
+.asm_103452
+ ld bc, $ffed
+ call Function1034f7
+ ld c, $12
+ ld b, $02
+ call Function1034e0
+
+.asm_10345f
+ ld bc, 0
+ call Function10350f
+ ld bc, 1
+ call Function103487
+ ld bc, 8
+ call Function10350f
+ ld a, [Buffer1]
+ and e
+ ld bc, 2
+ jr z, .asm_10347d
+ ld bc, 4
+
+.asm_10347d
+ call Function10350f
+ ld bc, 11
+ call Function103487
+ ret
+; 103487
+
+Function103487: ; 103487
+ push de
+ call Function1034f7
+ pop de
+ call PlaceString
+ ret
+; 103490
+
+Function103490: ; 103490
+ hlcoord 0, 15
+ ld c, $14
+ ld b, $03
+ call Function1034e0
+ ld bc, 6
+ call Function10350f
+ hlcoord 1, 16
+ call PlaceString
+ ret
+; 1034a7
+
+Function1034a7: ; 1034a7
+ ld a, [wd1f1]
+ ld [wd1f2], a
+ ld bc, 10
+ call Function1034f7
+ ld [hl], $7f
+ ld bc, 10
+ call Function1034f1
+ ld [hl], $ed
+ ret
+; 1034be
+
+Function1034be: ; 1034be
+ ld a, $01
+ ld [wd1f2], a
+ ld hl, wd1ec
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+.asm_1034ca
+ push af
+ ld a, [hli]
+ push hl
+ ld [wd1f3], a
+ call Function10343c
+ ld hl, wd1f2
+ inc [hl]
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_1034ca
+ call Function103490
+ ret
+; 1034e0
+
+Function1034e0: ; 1034e0
+ push bc
+ push hl
+ call ClearBox
+ pop hl
+ ld bc, AttrMap - TileMap
+ add hl, bc
+ pop bc
+ ld a, $06
+ call FillBoxWithByte
+ ret
+; 1034f1
+
+Function1034f1: ; 1034f1
+ ld a, [wd1f0]
+ ld [wd1f2], a
+
+Function1034f7: ; 10134f7
+ hlcoord 0, 0
+ add hl, bc
+ ld a, [wd1ef]
+ ld bc, SCREEN_WIDTH
+ call AddNTimes
+ ld a, [wd1f2]
+ dec a
+ ld bc, 40
+ call AddNTimes
+ ret
+; 10350f
+
+Function10350f: ; 10350f
+ ld a, [wd1f3]
+ push bc
+ ld hl, Unknown_103522
+ ld bc, 9
+ call AddNTimes
+ pop bc
+ add hl, bc
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ ret
+; 103522
+
+Unknown_103522: ; 103522
+ dw String_103546
+ dw String_103598
+ dw String_1035a0
+ dw String_10355f
+ db $01
+ dw String_10354f
+ dw String_1035a8
+ dw String_1035b1
+ dw String_103571
+ db $02
+ dw String_103557
+ dw String_1035ba
+ dw String_1035bd
+ dw String_103585
+ db $04
+ dw String_103545
+ dw String_1035c1
+ dw String_1035c1
+ dw String_103545
+
+String_103545: db "@"
+String_103546: db "せんとう アニメ@"
+String_10354f: db "でんわばんごう@"
+String_103557: db "めいしこうかん@"
+String_10355f: db "でんわを かけるひとが きめられる@"
+String_103571: db "でんわばんごうの にゅうりょくのしかた@"
+String_103585: db "あたらしいめいしが あれば こうかん@"
+String_103598: db "とばして みる@"
+String_1035a0: db "じっくり みる@"
+String_1035a8: db "めいしからえらぶ@"
+String_1035b1: db "すうじで いれる@"
+String_1035ba: db "する@"
+String_1035bd: db "しない@"
+String_1035c1: db "けってい@"
+; 1035c6
+
+Function1035c6: ; 1035c6
+ callba Function10138b
+ ld b, 0
+ ld hl, Unknown_1035d7
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 1035d7
+
+Unknown_1035d7: ; 1035d7
+ dw Unknown_1035e7
+ dw Unknown_1035f3
+ dw Unknown_103608
+ dw Unknown_103608
+ dw Unknown_1035fe
+ dw AskMobileOrCable
+ dw AskMobileOrCable
+ dw AskMobileOrCable
+
+Unknown_1035e7: ; 1035e7
+ dwcoord 0, 6
+ db $12, $07, $07
+ dw .this
+.this
+ db 4, 2, 1, 0, 3
+
+Unknown_1035f3: ; 1035f3
+ dwcoord 0, 7
+ db $12, $06, $09
+ dw .this
+.this
+ db 3, 2, 1, 3
+
+Unknown_1035fe: ; 1035fe
+ dwcoord 0, 9
+ db $12, $04, $0b
+ dw .this
+.this
+ db 2, 0, 3
+
+Unknown_103608: ; 103608
+ dwcoord 0, 9
+ db $12, $04, $0b
+ dw .this
+.this
+ db 2, 2, 3
+; 103612
+
+AskMobileOrCable: ; 103612
+ ld hl, MenuDataHeader_103640
+ call LoadMenuDataHeader
+ ld a, [wMobileOrCable_LastSelection]
+ and $0f
+ jr z, .skip_load
+ ld [wMenuCursorBuffer], a
+
+.skip_load
+ call VerticalMenu
+ call CloseWindow
+ jr c, .pressed_b
+ ld a, [wMenuCursorY]
+ ld [ScriptVar], a
+ ld c, a
+ ld a, [wMobileOrCable_LastSelection]
+ and $f0
+ or c
+ ld [wMobileOrCable_LastSelection], a
+ ret
+
+.pressed_b
+ xor a
+ ld [ScriptVar], a
+ ret
+; 103640
+
+MenuDataHeader_103640: ; 103640
+ db $40 ; flags
+ db 6, 13 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_103648
+ db 1 ; default option
+
+MenuData2_103648: ; 103648
+ db $80 ; flags
+ db 2
+ db "モバイル@"
+ db "ケーブル@"
+; 103654
+
+Function103654: ; 103654
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ jr nz, .asm_103666
+ ld hl, wcd2a
+ res 5, [hl]
+ ld c, $02
+ ret
+
+.asm_103666
+ ld hl, wcd2a
+ set 5, [hl]
+ ld c, $01
+ ret
+; 10366e
+
+Mobile_SelectThreeMons: ; 10366e
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ jr z, .asm_10369b
+ ld hl, UnknownText_0x10375d
+ call PrintText
+ call YesNoBox
+ jr c, .asm_103696
+ callba CheckForMobileBattleRules
+ jr nc, .asm_103690
+ call JoyWaitAorB
+ jr .asm_103696
+
+.asm_103690
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.asm_103696
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_10369b
+ ld hl, wMobileOrCable_LastSelection
+ bit 7, [hl]
+ set 7, [hl]
+ jr nz, .asm_1036b5
+ ld hl, UnknownText_0x103762
+ call PrintText
+ call YesNoBox
+ jr c, .asm_1036b5
+ call Function1036f9
+ call JoyWaitAorB
+
+.asm_1036b5
+ call Function103700
+ jr c, .asm_1036f4
+ ld hl, MenuDataHeader_103747
+ call LoadMenuDataHeader
+ call VerticalMenu
+ call ExitMenu
+ jr c, .asm_1036f4
+ ld a, [wMenuCursorY]
+ cp $01
+ jr z, .asm_1036d9
+ cp $02
+ jr z, .asm_1036f4
+ cp $03
+ jr z, .asm_1036ec
+ jr .asm_1036b5
+
+.asm_1036d9
+ callba CheckForMobileBattleRules
+ jr nc, .asm_1036e6
+ call JoyWaitAorB
+ jr .asm_1036f4
+
+.asm_1036e6
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.asm_1036ec
+ call Function1036f9
+ call JoyWaitAorB
+ jr .asm_1036b5
+
+.asm_1036f4
+ xor a
+ ld [ScriptVar], a
+ ret
+; 1036f9
+
+Function1036f9: ; 1036f9
+ ld hl, UnknownText_0x103767
+ call PrintText
+ ret
+; 103700
+
+Function103700: ; 103700
+ ld c, $0a
+ ld hl, SwarmFlags
+ bit 4, [hl]
+ jr z, .asm_10370f
+ callba Function1008a6
+
+.asm_10370f
+ ld a, c
+ ld [StringBuffer2], a
+ ld a, [StringBuffer2]
+ cp $05
+ jr nc, .asm_103724
+ cp $02
+ jr nc, .asm_10372c
+ cp $01
+ jr nc, .asm_103734
+ jr .asm_10373c
+
+.asm_103724
+ ld hl, UnknownText_0x10376c
+ call PrintText
+ and a
+ ret
+
+.asm_10372c
+ ld hl, UnknownText_0x103771
+ call PrintText
+ and a
+ ret
+
+.asm_103734
+ ld hl, UnknownText_0x103776
+ call PrintText
+ and a
+ ret
+
+.asm_10373c
+ ld hl, UnknownText_0x10377b
+ call PrintText
+ call JoyWaitAorB
+ scf
+ ret
+; 103747
+
+MenuDataHeader_103747: ; 103747
+ db $40 ; flags
+ db 5, 13 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_10374f
+ db 1 ; default option
+
+MenuData2_10374f: ; 10374f
+ db $c0 ; flags
+ db 3
+ db "はい@"
+ db "やめる@"
+ db "せつめい@"
+; 10375d
+
+UnknownText_0x10375d: ; 0x10375d
+ text_jump UnknownText_0x1c422a
+ db "@"
+; 0x103762
+UnknownText_0x103762: ; 0x103762
+ text_jump UnknownText_0x1c4275
+ db "@"
+; 0x103767
+UnknownText_0x103767: ; 0x103767
+ text_jump UnknownText_0x1c4298
+ db "@"
+; 0x10376c
+UnknownText_0x10376c: ; 0x10376c
+ text_jump UnknownText_0x1c439c
+ db "@"
+; 0x103771
+UnknownText_0x103771: ; 0x103771
+ text_jump UnknownText_0x1c43dc
+ db "@"
+; 0x103776
+UnknownText_0x103776: ; 0x103776
+ text_jump UnknownText_0x1c4419
+ db "@"
+; 0x10377b
+UnknownText_0x10377b: ; 0x10377b
+ text_jump UnknownText_0x1c445a
+ db "@"
+; 0x103780
+
+Function103780: ; 103780
+ ld a, [wd265]
+ push af
+ call Function10378c
+ pop af
+ ld [wd265], a
+ ret
+; 10378c
+
+Function10378c: ; 10378c
+ ld c, 0
+ ld hl, SwarmFlags
+ bit 4, [hl]
+ jr nz, .already_set
+ ld c, $01
+ ld hl, SwarmFlags
+ set 4, [hl]
+
+.already_set
+ push bc
+ callba Link_SaveGame
+ pop bc
+ jr c, .failed_to_save
+ ld a, $01
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ callba Function1006fd
+ ret
+
+.failed_to_save
+ xor a
+ ld [ScriptVar], a
+ ld a, c
+ and a
+ ret z
+ ld hl, SwarmFlags
+ res 4, [hl]
+ ret
+; 1037c2
+
+Function1037c2: ; 1037c2
+ call Function103823
+ jr c, .nope
+ ld a, [wdc5f]
+ and a
+ jr z, .nope
+ ld hl, UnknownText_0x1037e6
+ call PrintText
+ call YesNoBox
+ jr c, .nope
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.nope
+ xor a
+ ld [wdc5f], a
+ ld [ScriptVar], a
+ ret
+; 1037e6
+
+UnknownText_0x1037e6: ; 0x1037e6
+ text_jump UnknownText_0x1c449c
+ db "@"
+; 0x1037eb
+
+Function1037eb: ; 1037eb
+ call Function103823
+ jr nc, .asm_103807
+ ld hl, UnknownText_0x103819
+ call PrintText
+ call JoyWaitAorB
+ ld hl, UnknownText_0x10381e
+ call PrintText
+ call JoyWaitAorB
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103807
+ ld a, [wdc60]
+ and a
+ jr nz, .asm_103813
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+
+.asm_103813
+ ld a, $02
+ ld [ScriptVar], a
+ ret
+; 103819
+
+UnknownText_0x103819: ; 0x103819
+ text_jump UnknownText_0x1c44c0
+ db "@"
+; 0x10381e
+
+UnknownText_0x10381e: ; 0x10381e
+ text_jump UnknownText_0x1c44e7
+ db "@"
+; 0x103823
+
+Function103823: ; 103823
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ jr nz, .asm_103838
+ callba Function1008a6
+ ld a, c
+ cp $01
+ jr c, .asm_10383a
+
+.asm_103838
+ xor a
+ ret
+
+.asm_10383a
+ scf
+ ret
+; 10383c
+
+Function10383c: ; 10383c
+ ld a, $01
+ ld [wdc60], a
+ xor a
+ ld hl, wPlayerMonSelection
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+ ld hl, UnknownText_0x103876
+ call PrintText
+ call JoyWaitAorB
+ callba Script_reloadmappart
+ callba Function4a94e
+ jr c, .asm_103870
+ ld hl, wd002
+ ld de, wPlayerMonSelection
+ ld bc, 3
+ call CopyBytes
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_103870
+ ld a, $01
+ ld [ScriptVar], a
+ ret
+; 103876
+
+UnknownText_0x103876: ; 0x103876
+ text_jump UnknownText_0x1c4508
+ db "@"
+; 0x10387b
+
+Function10387b: ; 10387b
+ callba Mobile_AlwaysReturnNotCarry
+ bit 7, c
+ ret nz
+ callba Function1008a6
+ ld a, c
+ ld [StringBuffer2], a
+ ld hl, UnknownText_0x103898
+ call PrintText
+ call JoyWaitAorB
+ ret
+; 103898
+
+UnknownText_0x103898: ; 0x103898
+ text_jump UnknownText_0x1c4525
+ db "@"
+; 0x10389d
diff --git a/mobile/mobile_41.asm b/mobile/mobile_41.asm
new file mode 100755
index 000000000..9ab9f7ed2
--- /dev/null
+++ b/mobile/mobile_41.asm
@@ -0,0 +1,1113 @@
+; These functions deal with miscellaneous statistics
+; which were used for Trainer Rankings in Pokémon News.
+
+; Copies certain values at the time the player enters the Hall of Fame.
+TrainerRankings_HallOfFame2:: mobile ; 0x105ef6
+ ld a, BANK(sTrainerRankingGameTimeHOF)
+ call GetSRAMBank
+
+ ld hl, GameTimeHours
+ ld de, sTrainerRankingGameTimeHOF
+ ld bc, 4
+ call CopyBytes
+
+ ld hl, sTrainerRankingStepCount
+ ld de, sTrainerRankingStepCountHOF
+ ld bc, 4
+ call CopyBytes
+
+ ; sTrainerRankingHealings is only a 3-byte value.
+ ; One extraneous byte is copied from sTrainerRankingMysteryGift.
+ ld hl, sTrainerRankingHealings
+ ld de, sTrainerRankingHealingsHOF
+ ld bc, 4
+ call CopyBytes
+
+ ld hl, sTrainerRankingBattles
+ ld de, sTrainerRankingBattlesHOF
+ ld bc, 3
+ call CopyBytes
+
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105f33
+
+TrainerRankings_MagikarpLength: mobile ; 105f33
+ ld a, BANK(sTrainerRankingLongestMagikarp)
+ call GetSRAMBank
+ ld de, Buffer1
+ ld hl, sTrainerRankingLongestMagikarp
+
+ ; Is this Magikarp the longest measured?
+ ld a, [de]
+ cp [hl]
+ jr z, .isLowByteHigher
+ jr nc, .newRecordLongest
+ jr .checkShortest
+
+.isLowByteHigher
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ dec hl
+ dec de
+ jr c, .checkShortest
+
+.newRecordLongest
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ dec de
+ ld [hl], a
+
+.checkShortest
+ ; First, check if the record for shortest Magikarp is 0.
+ ; This seems unnecessary, because the value is initialized to 100.0 cm.
+ ld hl, sTrainerRankingShortestMagikarp
+ ld a, [hli]
+ or [hl]
+ dec hl
+ jr z, .newRecordShortest
+
+ ; Now check if this Magikarp is the shortest
+ ld a, [de]
+ cp [hl]
+ jr z, .isLowByteLower
+ jr c, .newRecordShortest
+ jr .done
+
+.isLowByteLower
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr nc, .done
+ dec hl
+ dec de
+
+.newRecordShortest
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105f79
+
+TrainerRankings_BugContestScore: mobile ; 105f79
+ ld a, BANK(sTrainerRankingBugContestScore)
+ call GetSRAMBank
+ ld a, [hProduct]
+ ld hl, sTrainerRankingBugContestScore
+ cp [hl]
+ jr z, .isLowByteHigher
+ jr nc, .newHighScore
+ jr .done
+
+.isLowByteHigher
+ inc hl
+ ld a, [hMultiplicand]
+ cp [hl]
+ jr c, .done
+ dec hl
+
+.newHighScore
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hMultiplicand]
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105f9f
+
+TrainerRankings_AddToSlotsWinStreak: mobile ; 105f9f
+ ld a, BANK(sTrainerRankingCurrentSlotsStreak)
+ call GetSRAMBank
+
+ ; Increment the current streak
+ ld hl, sTrainerRankingCurrentSlotsStreak + 1
+ inc [hl]
+ jr nz, .noCarry
+ dec hl
+ inc [hl]
+ inc hl
+
+.noCarry
+ dec hl
+ ; Now check if this is a new record for longest streak
+ ld a, [sTrainerRankingLongestSlotsStreak]
+ cp [hl]
+ jr z, .isLowByteHigher
+ jr c, .newRecordStreak
+ jr .done
+
+.isLowByteHigher
+ inc hl
+ ld a, [sTrainerRankingLongestSlotsStreak + 1]
+ cp [hl]
+ jr nc, .done
+ dec hl
+
+.newRecordStreak
+ ld a, [hli]
+ ld [sTrainerRankingLongestSlotsStreak], a
+ ld a, [hl]
+ ld [sTrainerRankingLongestSlotsStreak + 1], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105fd0
+
+TrainerRankings_EndSlotsWinStreak: mobile ; 105fd0
+ ld a, BANK(sTrainerRankingCurrentSlotsStreak)
+ call GetSRAMBank
+ ld hl, sTrainerRankingCurrentSlotsStreak
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 105fe3
+
+TrainerRankings_AddToSlotsPayouts: mobile ; 105fe3
+ ld a, BANK(sTrainerRankingTotalSlotsPayouts)
+ call GetSRAMBank
+ ld hl, sTrainerRankingTotalSlotsPayouts + 3
+ ld a, e
+ add [hl]
+ ld [hld], a
+ ld a, d
+ adc [hl]
+ ld [hld], a
+ jr nc, .done
+ inc [hl]
+ jr nz, .done
+ dec hl
+ inc [hl]
+ jr nz, .done
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 106008
+
+TrainerRankings_AddToBattlePayouts: mobile ; 106008
+ ld a, BANK(sTrainerRankingTotalBattlePayouts)
+ call GetSRAMBank
+ ld hl, sTrainerRankingTotalBattlePayouts + 3
+ ld a, [bc]
+ dec bc
+ add [hl]
+ ld [hld], a
+ ld a, [bc]
+ dec bc
+ adc [hl]
+ ld [hld], a
+ ld a, [bc]
+ adc [hl]
+ ld [hld], a
+ jr nc, .done
+ inc [hl]
+ jr nz, .done
+ ld a, $ff
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ld [hl], a
+
+.done
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 10602e
+
+TrainerRankings_StepCount: mobile ; 10602e (41:602e)
+ ld hl, sTrainerRankingStepCount
+ jp TrainerRankings_Increment4Byte
+
+; Unreferenced in English version.
+TrainerRankings_BattleTowerWins: mobile ; 106035
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8d]
+ and a
+ call CloseSRAM
+ ret nz
+ ld hl, sTrainerRankingBattleTowerWins
+ jp TrainerRankings_Increment2Byte
+
+TrainerRankings_TMsHMsTaught: mobile ; 106049
+ ld hl, sTrainerRankingTMsHMsTaught
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Battles: mobile ; 106050
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
+ ret z
+ ld hl, sTrainerRankingBattles
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_WildBattles: mobile ; 10605d
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL ; Exclude the Dude’s tutorial battle
+ ret z
+ ld hl, sTrainerRankingWildBattles
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_TrainerBattles: mobile ; 10606a
+ ld hl, sTrainerRankingTrainerBattles
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused1: mobile ; 106071
+ ld hl, sTrainerRankingUnused1
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_HallOfFame:: mobile ; 0x106078
+ ld hl, sTrainerRankingHOFEntries
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_WildMonsCaught: mobile ; 10607f (41:607f)
+ ld hl, sTrainerRankingWildMonsCaught
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_HookedEncounters: mobile ; 106086
+ ld hl, sTrainerRankingHookedEncounters
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_EggsHatched: mobile ; 10608d (41:608d)
+ ld hl, sTrainerRankingEggsHatched
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_MonsEvolved: mobile ; 106094
+ ld hl, sTrainerRankingMonsEvolved
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_FruitPicked: mobile ; 10609b
+ ld hl, sTrainerRankingFruitPicked
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_Healings: mobile ; 1060a2
+ ld hl, sTrainerRankingHealings
+ jp TrainerRankings_Increment3Byte
+
+TrainerRankings_MysteryGift: mobile ; 1060a9 (41:60a9)
+ ld hl, sTrainerRankingMysteryGift
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Trades: mobile ; 1060af
+ ld hl, sTrainerRankingTrades
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Fly: mobile ; 1060b5
+ ld hl, sTrainerRankingFly
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Surf: mobile ; 1060bb
+ ld hl, sTrainerRankingSurf
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Waterfall: mobile ; 1060c1
+ ld hl, sTrainerRankingWaterfall
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_WhiteOuts: mobile ; 1060c7
+ ld hl, sTrainerRankingWhiteOuts
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_LuckyNumberShow: mobile ; 1060cd
+ ld hl, sTrainerRankingLuckyNumberShow
+ jr TrainerRankings_Increment2Byte
+
+TrainerRankings_PhoneCalls: mobile ; 1060d3
+ ld hl, sTrainerRankingPhoneCalls
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused2: mobile ; 1060df
+ ld hl, sTrainerRankingUnused2
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_LinkBattles: mobile ; 1060df
+ ld hl, sTrainerRankingLinkBattles
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Splash: mobile ; 1060e5
+ ; Only counts if it’s the player’s turn
+ ld a, [hBattleTurn]
+ and a
+ ret nz
+ ld hl, sTrainerRankingSplash
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_TreeEncounters: mobile ; 1060ef
+ ld hl, sTrainerRankingTreeEncounters
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_Unused3: mobile ; 1060f5
+ ld hl, sTrainerRankingUnused3
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_ColosseumWins: mobile ; win
+ ld hl, sTrainerRankingColosseumWins
+ jr TrainerRankings_Increment3Byte
+
+TrainerRankings_ColosseumLosses: mobile ; lose
+ ld hl, sTrainerRankingColosseumLosses
+ jr TrainerRankings_Increment3Byte
+; 106107
+
+TrainerRankings_ColosseumDraws: mobile ; draw
+ ld hl, sTrainerRankingColosseumDraws
+ jr TrainerRankings_Increment3Byte
+; 10610d
+
+; Counts uses of both Selfdestruct and Explosion.
+TrainerRankings_Selfdestruct: mobile ; 10610d
+ ; Only counts if it’s the player’s turn
+ ld a, [hBattleTurn]
+ and a
+ ret nz
+ ld hl, sTrainerRankingSelfdestruct
+ jr TrainerRankings_Increment3Byte
+; 106117
+
+TrainerRankings_Increment4Byte: ; 106117
+ push bc
+ ld bc, 3
+ jr TrainerRankings_Increment
+; 10611d
+
+TrainerRankings_Increment3Byte: ; 10611d
+ push bc
+ ld bc, 2
+ jr TrainerRankings_Increment
+; 106123
+
+TrainerRankings_Increment2Byte: ; 106123
+ push bc
+ ld bc, 1
+ jr TrainerRankings_Increment
+; 106129
+
+; unused
+TrainerRankings_Increment1Byte: ; 106129
+ push bc
+ ld bc, 0
+
+; Increments a big-endian value of bc + 1 bytes at hl
+TrainerRankings_Increment: ; 10612d
+ ld a, BANK(sTrainerRankings)
+ call GetSRAMBank
+ push hl
+ push de
+ ld e, c
+ inc e
+.asm_106136
+ ld a, [hli]
+ inc a
+ jr nz, .asm_10613d
+ dec e
+ jr nz, .asm_106136
+
+.asm_10613d
+ pop de
+ pop hl
+ jr z, .asm_10614d
+ add hl, bc
+.asm_106142
+ inc [hl]
+ jr nz, .asm_10614d
+ ld a, c
+ and a
+ jr z, .asm_10614d
+ dec hl
+ dec c
+ jr .asm_106142
+
+.asm_10614d
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ pop bc
+ ret
+; 106155
+
+; Used when SRAM bank 5 isn’t already loaded — what’s the point of this?
+UpdateTrainerRankingsChecksum2: mobile ; 106155
+ ld a, BANK(sTrainerRankings)
+ call GetSRAMBank
+ call UpdateTrainerRankingsChecksum
+ call CloseSRAM
+ ret
+; 106162
+
+UpdateTrainerRankingsChecksum: ; 106162
+ push de
+ call CalculateTrainerRankingsChecksum
+ ld hl, sTrainerRankingsChecksum
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ pop de
+ ret
+; 10616e
+
+CalculateTrainerRankingsChecksum: ; 10616e
+ push bc
+ ld hl, sTrainerRankings
+ ld bc, sTrainerRankingsChecksum - sTrainerRankings
+ xor a
+ ld de, 0
+.asm_106179
+ ld a, e
+ add [hl]
+ ld e, a
+ jr nc, .asm_10617f
+ inc d
+
+.asm_10617f
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_106179
+ pop bc
+ ret
+; 106187
+
+
+BackupMobileEventIndex: ; 106187
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ ld a, [sMobileEventIndex]
+ push af
+ ld a, BANK(sMobileEventIndexBackup)
+ call GetSRAMBank
+ pop af
+ ld [sMobileEventIndexBackup], a
+ call CloseSRAM
+ ret
+; 10619d
+
+
+RestoreMobileEventIndex: ; 10619d (41:619d)
+ ld a, BANK(sMobileEventIndexBackup)
+ call GetSRAMBank
+ ld a, [sMobileEventIndexBackup]
+ push af
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ pop af
+ ld [sMobileEventIndex], a
+ call CloseSRAM
+ ret
+; 1061b3 (41:61b3)
+
+; Unreferenced in English version.
+VerifyTrainerRankingsChecksum: ; 1061b3
+ call CalculateTrainerRankingsChecksum
+ ld hl, sTrainerRankingsChecksum
+ ld a, d
+ cp [hl]
+ ret nz
+ inc hl
+ ld a, e
+ cp [hl]
+ ret
+; 1061c0
+
+DeleteMobileEventIndex: ; 1061c0 (41:61c0)
+ ld a, BANK(sMobileEventIndex)
+ call GetSRAMBank
+ xor a
+ ld [sMobileEventIndex], a
+ call CloseSRAM
+ ret
+; 1061cd (41:61cd)
+
+; Used in the Japanese version to initialize Trainer Rankings data
+; for a new save file. Unreferenced in the English version.
+InitializeTrainerRankings:
+ ld hl, sTrainerRankings
+ ld bc, sTrainerRankingsEnd - sTrainerRankings
+ xor a
+ call ByteFill
+
+ ; Initialize the shortest Magikarp to 100.0 cm
+ ld hl, sTrainerRankingShortestMagikarp
+ ld a, $3
+ ld [hli], a
+ ld [hl], $e8
+
+ call UpdateTrainerRankingsChecksum
+ ld hl, sTrainerRankings
+ ld de, sTrainerRankingsBackup
+ ld bc, sTrainerRankingsEnd - sTrainerRankings
+ call CopyBytes
+ ret
+; 1061ef
+
+
+_MobilePrintNum:: ; 1061ef
+; Supports signed 31-bit integers (up to 10 digits)
+; b: Bits 0-4 = # bytes
+; Bit 7 = set if negative
+; c: Number of digits
+; de: highest byte of number to convert
+; hl: where to print the converted string
+ push bc
+ xor a
+ ld [hPrintNum1], a
+ ld [hPrintNum2], a
+ ld [hPrintNum3], a
+ ld a, b
+ and $f
+ cp $1
+ jr z, .one_byte
+ cp $2
+ jr z, .two_bytes
+ cp $3
+ jr z, .three_bytes
+; four bytes
+ ld a, [de]
+ ld [hPrintNum1], a
+ inc de
+
+.three_bytes
+ ld a, [de]
+ ld [hPrintNum2], a
+ inc de
+
+.two_bytes
+ ld a, [de]
+ ld [hPrintNum3], a
+ inc de
+
+.one_byte
+ ld a, [de]
+ ld [hPrintNum4], a
+ inc de
+
+ push de
+ xor a
+ ld [hPrintNum9], a
+ ld a, b
+ ld [hPrintNum10], a
+ ld a, c
+ cp 2
+ jr z, .two_digits
+ ld de, ._2
+ cp 3
+ jr z, .three_to_nine_digits
+ ld de, ._3
+ cp 4
+ jr z, .three_to_nine_digits
+ ld de, ._4
+ cp 5
+ jr z, .three_to_nine_digits
+ ld de, ._5
+ cp 6
+ jr z, .three_to_nine_digits
+ ld de, ._6
+ cp 7
+ jr z, .three_to_nine_digits
+ ld de, ._7
+ cp 8
+ jr z, .three_to_nine_digits
+ ld de, ._8
+ cp 9
+ jr z, .three_to_nine_digits
+ ld de, ._9
+
+.three_to_nine_digits
+ inc de
+ inc de
+ inc de
+ dec a
+ dec a
+
+.digit_loop
+ push af
+ call .Function1062b2
+ call .Function1062ff
+rept 4
+ inc de
+endr
+ pop af
+ dec a
+ jr nz, .digit_loop
+
+.two_digits
+ ld c, 0
+ ld a, [hPrintNum4]
+.mod_ten_loop
+ cp 10
+ jr c, .simple_divide_done
+ sub 10
+ inc c
+ jr .mod_ten_loop
+
+.simple_divide_done
+ ld b, a
+ ld a, [hPrintNum9]
+ or c
+ ld [hPrintNum9], a
+ jr nz, .create_digit
+ call .LoadMinusTenIfNegative
+ jr .done
+
+.create_digit
+ ld a, "0"
+ add c
+ ld [hl], a
+
+.done
+ call .Function1062ff
+ ld a, "0"
+ add b
+ ld [hli], a
+ pop de
+ pop bc
+ ret
+; 106292
+
+._9 dd 1000000000
+._8 dd 100000000
+._7 dd 10000000
+._6 dd 1000000
+._5 dd 100000
+._4 dd 10000
+._3 dd 1000
+._2 dd 100
+; 1062b2
+
+.Function1062b2: ; 1062b2
+ ld c, $0
+.asm_1062b4
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hPrintNum4]
+ sub b
+ ld [hPrintNum8], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hPrintNum3]
+ sbc b
+ ld [hPrintNum7], a
+ ld a, [de]
+ dec de
+ ld b, a
+ ld a, [hPrintNum2]
+ sbc b
+ ld [hPrintNum6], a
+ ld a, [de]
+ inc de
+ inc de
+ inc de
+ ld b, a
+ ld a, [hPrintNum1]
+ sbc b
+ ld [hPrintNum5], a
+ jr c, .asm_1062eb
+ ld a, [hPrintNum5]
+ ld [hPrintNum1], a
+ ld a, [hPrintNum6]
+ ld [hPrintNum2], a
+ ld a, [hPrintNum7]
+ ld [hPrintNum3], a
+ ld a, [hPrintNum8]
+ ld [hPrintNum4], a
+ inc c
+ jr .asm_1062b4
+
+.asm_1062eb
+ ld a, [hPrintNum9]
+ or c
+ jr z, .LoadMinusTenIfNegative
+ ld a, -10
+ add c
+ ld [hl], a
+ ld [hPrintNum9], a
+ ret
+
+.LoadMinusTenIfNegative:
+ ld a, [hPrintNum10]
+ bit 7, a
+ ret z
+
+ ld [hl], -10
+ ret
+; 1062ff
+
+.Function1062ff: ; 1062ff
+ ld a, [hPrintNum10]
+ bit 7, a
+ jr nz, .asm_10630d
+ bit 6, a
+ jr z, .asm_10630d
+ ld a, [hPrintNum9]
+ and a
+ ret z
+
+.asm_10630d
+ inc hl
+ ret
+; 10630f
+
+; functions related to the cable club and various NPC scripts referencing mobile communications
+
+Mobile_DummyReturnFalse: ; 10630f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 106314
+
+MobileFn_106314: mobile ; 106314
+ ld a, $4
+ call GetSRAMBank
+ ld a, c
+ cpl
+ ld [$b000], a
+ call CloseSRAM
+ ld a, $7
+ call GetSRAMBank
+ ld a, c
+ ld [$a800], a
+ call CloseSRAM
+ ret
+; 10632f
+
+Mobile_AlwaysReturnNotCarry: ; 10632f
+ or a
+ ret
+
+Function106331: ; 106331 - called by Mobile_DummyReturnFalse in Crystal-J
+ ; check ~[4:b000] == [7:a800]
+ ld a, $4
+ call GetSRAMBank
+ ld a, [$b000]
+ cpl
+ ld b, a
+ call CloseSRAM
+ ld a, $7
+ call GetSRAMBank
+ ld a, [$a800]
+ ld c, a
+ call CloseSRAM
+ ld a, c
+ cp b
+ jr nz, .nope
+
+ ; check [7:a800] != 0
+ and a
+ jr z, .nope
+
+ ; check !([7:a800] & %01110000)
+ and %10001111
+ cp c
+ jr nz, .nope
+
+ ld c, a
+ scf
+ ret
+
+.nope
+ xor a
+ ld c, a
+ ret
+; 10635c
+
+Function10635c: ; 10635c
+ ld a, [wMobileCommsJumptableIndex]
+ bit 7, a
+ ret nz
+ ld a, [wMobileCommsJumptableIndex]
+ ld hl, .Jumptable
+ rst JumpTable
+ ret
+; 10636a
+
+.Jumptable: ; 10636a
+ dw .init
+ dw Function106392
+ dw Function1063cc
+ dw Function1063d8
+ dw Function1063e5
+ dw Function1063f3
+ dw Function106403
+ dw Function106442
+ dw Function106453
+; 10637c
+
+.init: ; 10637c
+ ld de, wcd30
+ ld hl, $41
+ ld bc, $41
+ ld a, $40
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 106392
+
+Function106392: ; 106392
+ xor a
+ ld [wcf64], a
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_1063a2
+ bit 0, a
+ jr z, .asm_1063bf
+ ret
+
+.asm_1063a2
+ call Mobile_AlwaysReturnNotCarry
+ ld a, c
+ and a
+ jr nz, .asm_1063b4
+ ld a, $b
+ ld [wcf64], a
+ ld a, $7
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_1063b4
+ ld a, $7
+ ld [wcf64], a
+ ld a, $7
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_1063bf
+ ld a, $1
+ ld [wcf64], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1063cc
+
+Function1063cc: ; 1063cc
+ ld a, $78
+ ld [wcd42], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+
+Function1063d8: ; 1063d8
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1063e5
+
+Function1063e5: ; 1063e5
+ ld a, [wcf64]
+ cp $3
+ ret nz
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 1063f3
+
+Function1063f3: ; 1063f3
+ ld de, wcd31
+ ld a, $32
+ call Function3e32
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 106403
+
+Function106403: ; 106403
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_106426
+ bit 0, a
+ jr z, .asm_10640f
+ ret
+
+.asm_10640f
+ ld a, [wcd31]
+ and $80
+ ld c, a
+ ld a, [wcd30]
+ or c
+ inc a
+ ld c, a
+ call MobileFn_106314
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_106426
+ call Mobile_AlwaysReturnNotCarry
+ ld a, c
+ and a
+ jr z, .asm_106435
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+
+.asm_106435
+ ld c, $0
+ call MobileFn_106314
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+ ret
+; 106442
+
+Function106442: ; 106442
+ ld a, $36
+ call Function3e32
+ xor a
+ ld [hMobile], a
+ ld [hMobileReceive], a
+ ld a, [wMobileCommsJumptableIndex]
+ inc a
+ ld [wMobileCommsJumptableIndex], a
+
+Function106453: ; 106453
+ ld a, [wMobileCommsJumptableIndex]
+ set 7, a
+ ld [wMobileCommsJumptableIndex], a
+ nop
+ ld a, $4
+ ld [wcf64], a
+ ret
+; 106462
+
+MobileFunc_106462: mobile
+ ret
+; 106464
+
+Function106464:: ; 106464
+ ld de, MobilePhoneTilesGFX
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(MobilePhoneTilesGFX), 1
+ call Get2bpp
+ ld de, FontsExtra2_UpArrowGFX
+ ld hl, VTiles2 tile $61
+ lb bc, BANK(FontsExtra2_UpArrowGFX), 1
+ call Get2bpp
+ ld de, GFX_106514
+ ld hl, VTiles2 tile $62
+ ld c, 9
+ ld b, BANK(GFX_106514)
+ call Get2bpp
+ ld de, $40b0
+ ld hl, VTiles2 tile $6b
+ ld b, $f ; XXX no graphics at 0f:40b0
+ call Get2bpp
+ callba LoadFrame
+ ret
+; 10649b
+
+Function10649b: ; 10649b
+ ld a, [TextBoxFrame]
+ and $7
+ ld bc, 3 tiles
+ ld hl, Frames
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, VTiles2 tile $79
+ ld c, 6
+ ld b, BANK(Frames)
+ call Function1064c3
+ ld hl, VTiles2 tile $7f
+ ld de, TextBoxSpaceGFX
+ ld c, 1
+ ld b, BANK(TextBoxSpaceGFX)
+ call Function1064c3
+ ret
+; 1064c3
+
+Function1064c3: ; 1064c3
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push bc
+ push hl
+ ld hl, Function3f88
+ ld a, b
+ rst FarCall
+ pop hl
+ pop bc
+ pop af
+ ld [rSVBK], a
+ jr asm_1064ed
+
+Function1064d8: ; 1064d8
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ push bc
+ push hl
+ ld hl, Function3f9f
+ ld a, b
+ rst FarCall
+ pop hl
+ pop bc
+ pop af
+ ld [rSVBK], a
+ jr asm_1064ed
+
+asm_1064ed
+ ld de, wDecompressScratch
+ ld b, $0
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 10650a
+
+Function10650a: ; 10650a
+ ld de, MobilePhoneTilesGFX + $20
+ lb bc, BANK(MobilePhoneTilesGFX), $11
+ call Get2bpp
+ ret
+; 106514
+
+GFX_106514:
+INCBIN "gfx/unknown/106514.2bpp"
diff --git a/mobile/mobile_42.asm b/mobile/mobile_42.asm
new file mode 100644
index 000000000..98bbcf485
--- /dev/null
+++ b/mobile/mobile_42.asm
@@ -0,0 +1,2009 @@
+MobileTradeAnimation_SendGivemonToGTS: ; 108000
+ ld a, $80
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 10800b
+
+.TradeAnimScript:
+ mobiletradeanim_showgtsgivemon
+ mobiletradeanim_12
+ mobiletradeanim_10
+ mobiletradeanim_sendmon
+ mobiletradeanim_06
+ mobiletradeanim_0f
+ mobiletradeanim_end
+
+MobileTradeAnimation_RetrieveGivemonFromGTS:
+ ld a, $80
+ jr asm_108018
+
+MobileTradeAnimation_ReceiveGetmonFromGTS: ; 108016
+ ld a, $0
+asm_108018:
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108021
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showgtsgetmon
+ mobiletradeanim_end
+
+Function108026: ; 108026
+ ld a, $0
+ jr asm_10802c
+
+Function10802a: ; 10802a
+ ld a, $1
+
+asm_10802c:
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_Frontpics
+; 108035
+
+.TradeAnimScript: ; trade
+ mobiletradeanim_showgivemon
+ mobiletradeanim_12
+ mobiletradeanim_02
+ mobiletradeanim_sendmon
+ mobiletradeanim_05
+ mobiletradeanim_receivemon
+ mobiletradeanim_showgetmon
+ mobiletradeanim_end
+
+Function10803d: ; 10803d
+ ld a, $0
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108048
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_07
+ mobiletradeanim_receivemon
+ mobiletradeanim_showoddegg
+ mobiletradeanim_end
+
+Function10804d: ; 10804d
+ ld a, $0
+ ld [wcf65], a
+ ld de, .TradeAnimScript
+ jp RunMobileTradeAnim_NoFrontpics
+; 108058
+
+.TradeAnimScript:
+ mobiletradeanim_11
+ mobiletradeanim_showgtsgetmon
+ mobiletradeanim_end
+
+RunMobileTradeAnim_Frontpics: ; 10805b
+ ld hl, wTradeAnimAddress
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call Function1080b7
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 108089
+
+RunMobileTradeAnim_NoFrontpics: ; 108089
+ ld hl, wTradeAnimAddress
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call Function108157
+.loop
+ call MobileTradeAnim_JumptableLoop
+ jr nc, .loop
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 1080b7
+
+Function1080b7: ; 1080b7
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+
+ call EnableLCD
+
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba ClearSpriteAnims
+
+ call DelayFrame
+
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $0
+
+ ld a, [wPlayerTrademonSpecies]
+ ld hl, wPlayerTrademonDVs
+ ld de, VTiles0 tile $30
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2 tile $31
+ call MobileTradeAnim_GetFrontpic
+
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 108157
+
+Function108157: ; 108157
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ call EnableLCD
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba ClearSpriteAnims
+ xor a
+ ld hl, wSpriteAnimDict
+ ld [hli], a
+ ld [hl], $0
+ call DelayFrame
+ ld a, [wPlayerTrademonSpecies]
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+ ld a, [wOTTrademonSpecies]
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_InitSpeciesName
+ xor a
+ call Function108b98
+ call Function108af4
+ ret
+; 1081ad
+
+MobileTradeAnim_ClearVTiles: ; 1081ad
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, 3 * $80 tiles
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, 3 * $80 tiles
+ xor a
+ call ByteFill
+ ret
+; 1081ca
+
+MobileTradeAnim_ClearBGMap: ; 1081ca
+ ld a, $1
+ ld [rVBK], a
+ hlbgcoord 0, 0
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+ ld a, $0
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+ hlbgcoord 0, 0
+ ld bc, 2 * BG_MAP_HEIGHT * BG_MAP_WIDTH
+ ld a, $7f
+ call ByteFill
+ ret
+; 1081e9
+
+MobileTradeAnim_GetFrontpic: ; 1081e9
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef GetFrontpic
+ ret
+; 108201
+
+Function108201: ; 108201
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef FrontpicPredef
+ ret
+; 108219
+
+Function108219: ; 108219
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef AnimateFrontpic
+ ret
+; 108229
+
+Function108229: ; 108229
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_TRADE
+ predef LoadMonAnimation
+ ret
+; 108239
+
+MobileTradeAnim_InitSpeciesName: ; 108239
+ push de
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ret
+; 10824b
+
+MobileTradeAnim_JumptableLoop: ; 10824b
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .StopAnim
+ call .ExecuteMobileTradeAnimCommand
+ call DelayFrame
+ and a
+ ret
+
+.StopAnim:
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ callba MobileFunc_106462
+ callba Function106464
+ scf
+ ret
+; 10827b
+
+.ExecuteMobileTradeAnimCommand: ; 10827b
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+; 10828a
+
+.Jumptable: ; 10828a
+
+ dw GetMobileTradeAnimByte ; 00
+ dw MobileTradeAnim_ShowPlayerMonToBeSent ; 01
+ dw MobileTradeAnim_02 ; 02
+ dw MobileTradeAnim_GiveTrademon1 ; 03
+ dw MobileTradeAnim_GiveTrademon2 ; 04
+ dw MobileTradeAnim_05 ; 05
+ dw MobileTradeAnim_06 ; 06
+ dw MobileTradeAnim_07 ; 07
+ dw MobileTradeAnim_GetTrademon1 ; 08
+ dw MobileTradeAnim_GetTrademon2 ; 09
+ dw MobileTradeAnim_GetTrademon3 ; 0a
+ dw MobileTradeAnim_ShowOTMonFromTrade ; 0b
+ dw EndMobileTradeAnim ; 0c
+ dw MobileTradeAnim_ShowPlayerMonForGTS ; 0d
+ dw MobileTradeAnim_ShowOTMonFromGTS ; 0e
+ dw MobileTradeAnim_0f ; 0f
+ dw MobileTradeAnim_10 ; 10
+ dw MobileTradeAnim_11 ; 11
+ dw MobileTradeAnim_FadeToBlack ; 12
+ dw MobileTradeAnim_GetOddEgg ; 13 get odd egg
+; 1082b2
+
+MobileTradeAnim_Next: ; 1082b2
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 1082b7
+
+GetMobileTradeAnimByte: ; 1082b7
+ ld hl, wTradeAnimAddress
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ ld [wJumptableIndex], a
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+; 1082c6
+
+EndMobileTradeAnim: ; 1082c6
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 1082cc
+
+WaitMobileTradeSpriteAnims: ; 1082cc
+.loop
+ push bc
+ callba PlaySpriteAnimations
+ pop bc
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 1082db
+
+Function1082db: ; 1082db
+.loop
+ callba PlaySpriteAnimations
+ callba SetUpPokeAnim
+ callba HDMATransferTileMapToWRAMBank3
+ jr nc, .loop
+ ret
+; 1082f0
+
+Function1082f0: ; 1082f0
+.loop
+ call Function108b78
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 1082fa
+
+Function1082fa: ; 1082fa
+.loop
+ call Function108b78
+ push hl
+ push bc
+ callba PlaySpriteAnimations
+ pop bc
+ pop hl
+ call DelayFrame
+ dec c
+ jr nz, .loop
+ ret
+; 10830e
+
+MobileTradeAnim_ShowPlayerMonToBeSent: ; 10830e
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ ld a, $80
+ ld [hSCX], a
+ xor a
+ ld [hSCY], a
+ ld a, $87
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ call Function10895e
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call WaitBGMap
+.loop
+ ld a, [hWX]
+ cp $7
+ jr z, .okay
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+
+.okay
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.skip_cry
+ ld c, 80
+ call DelayFrames
+ call Function108bec
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+ call _InitSpriteAnimStruct
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ hlcoord 0, 0
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
+ ret
+; 10839b
+
+MobileTradeAnim_ShowOTMonFromTrade: ; 10839b
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call MobileTradeAnim_DisplayReceivedMon
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call Function108963
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call Function108c16
+ call GetMobileTradeAnimByte
+ ret
+; 10842c
+
+MobileTradeAnim_ShowPlayerMonForGTS: ; 10842c
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ ld a, $80
+ ld [hSCX], a
+ xor a
+ ld [hSCY], a
+ ld a, $87
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call MobileTradeAnim_DisplayMonToBeSent
+ ld a, [wPlayerTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wPlayerTrademonDVs
+ call Function10898a
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ ld a, [wPlayerTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wPlayerTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call WaitBGMap
+.loop
+ ld a, [hWX]
+ cp $7
+ jr z, .done
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ call DelayFrame
+ jr .loop
+
+.done
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ ld a, [wPlayerTrademonSpecies]
+ call GetCryIndex
+ jr c, .skip_cry
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+
+.skip_cry
+ ld c, 80
+ call DelayFrames
+ call Function108c2b
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_SENT_BALL
+ call _InitSpriteAnimStruct
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ hlcoord 0, 0
+ ld bc, 12 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ld c, 80
+ call WaitMobileTradeSpriteAnims
+ call GetMobileTradeAnimByte
+ ret
+; 1084d7
+
+MobileTradeAnim_ShowOTMonFromGTS: ; 1084d7
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call MobileTradeAnim_DisplayReceivedMon
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ call Function10898a
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call Function108c40
+ call GetMobileTradeAnimByte
+ ret
+; 108589
+
+MobileTradeAnim_GetOddEgg: ; 108589
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, wOTTrademonDVs
+ ld de, VTiles2
+ call Function108201
+ call EnableLCD
+ callba DeinitializeAllSprites
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0
+ lb bc, BANK(TradeBallGFX), $06
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $06
+ lb bc, BANK(TradePoofGFX), $0c
+ call Request2bpp
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_TRADE_OT_BALL
+ call _InitSpriteAnimStruct
+ call Function108b45
+ ld a, $1
+ call Function108b98
+ call Function108af4
+ ld c, 48
+ call WaitMobileTradeSpriteAnims
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ call Function108a33
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ ld a, [wOTTrademonSpecies]
+ ld [CurPartySpecies], a
+ ld a, [wOTTrademonDVs]
+ ld [TempMonDVs], a
+ ld a, [wOTTrademonDVs + 1]
+ ld [TempMonDVs + 1], a
+ ld b, SCGB_PLAYER_OR_MON_FRONTPIC_PALS
+ call GetSGBLayout
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ ld a, [wOTTrademonSpecies]
+ ld hl, wOTTrademonDVs
+ call Function10898a
+ ld a, [wOTTrademonSpecies]
+ call Function108229
+ call Function1082db
+ call GetMobileTradeAnimByte
+ ret
+; 108638
+
+MobileTradeAnim_02: ; 108638
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $c
+ ld [hSCX], a
+ ld a, $78
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 108689
+
+MobileTradeAnim_10: ; 108689
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ call MobileTradeAnim_ClearBGMap
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $c
+ ld [hSCX], a
+ ld a, $78
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 1086f4
+
+MobileTradeAnim_11: ; 1086f4
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_108da7
+ ld de, VTiles2
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ld hl, LZ_108d27
+ ld de, VTiles0 tile $20
+ call Decompress
+ call Function108c80
+ call Function108c6d
+ call EnableLCD
+ ld a, $80
+ ld [hSCX], a
+ ld a, $90
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_109107
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call Function108d07
+ call Function108af4
+ call Function108b5a
+ ld a, $e0
+ ld [hSCX], a
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+ call GetMobileTradeAnimByte
+ ret
+; 108763
+
+MobileTradeAnim_GiveTrademon1: ; 108763
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ld c, 40
+ ld hl, BGPals palette 6
+ call Function1082f0
+ call Function108af4
+.loop
+ ld a, [hSCX]
+ cp $e0
+ jr z, .loop2
+ dec a
+ dec a
+ ld [hSCX], a
+ cp $f8
+ jr nz, .next
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+
+.next
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.loop2
+ ld a, [hSCY]
+ cp $f8
+ jr z, .done
+ dec a
+ dec a
+ ld [hSCY], a
+ cp $40
+ jr z, .init
+ cp $30
+ jr z, .delete
+ cp $68
+ jr z, .replace
+ jr .next2
+
+.init
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ xor a
+ call Function108ad4
+ jr .next2
+
+.delete
+ call MobileTradeAnim_DeleteSprites
+ jr .next2
+
+.replace
+ call MobileTradeAnim_DeleteSprites
+ ld a, $1
+ call Function108ad4
+.next2
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop2
+
+.done
+ call MobileTradeAnim_Next
+ ret
+; 1087cf
+
+MobileTradeAnim_GiveTrademon2: ; 1087cf
+ ld c, 40
+ ld hl, BGPals + 1 palettes
+ call Function1082f0
+ call Function108af4
+ call Function108b5a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_25
+ call _InitSpriteAnimStruct
+ ld de, SFX_FORESIGHT
+ call PlaySFX
+ ld c, 10
+ call WaitMobileTradeSpriteAnims
+ xor a
+ ld [wcf64], a
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_23
+ call _InitSpriteAnimStruct
+.loop
+ ld a, [hSCY]
+ cp $90
+ jr z, .done
+ sub $8
+ ld [hSCY], a
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.done
+ call GetMobileTradeAnimByte
+ ret
+; 108811
+
+MobileTradeAnim_05: ; 108811
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ ld a, $1
+ ld [wcf64], a
+ ld de, SFX_SHARPEN
+ call PlaySFX
+ ld c, 60
+ call WaitMobileTradeSpriteAnims
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_24
+ call _InitSpriteAnimStruct
+ call GetMobileTradeAnimByte
+ ld de, SFX_THROW_BALL
+ call PlaySFX
+ ret
+; 108838
+
+MobileTradeAnim_06: ; 108838
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ ld a, $1
+ ld [wcf64], a
+ ld de, SFX_SHARPEN
+ call PlaySFX
+ call GetMobileTradeAnimByte
+ ret
+; 10884c
+
+MobileTradeAnim_07: ; 10884c
+ ld c, 80
+ call DelayFrames
+ depixel 30, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_24
+ call _InitSpriteAnimStruct
+ call GetMobileTradeAnimByte
+ ld de, SFX_THROW_BALL
+ call PlaySFX
+ ret
+; 108863
+
+MobileTradeAnim_GetTrademon1: ; 108863
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+.loop
+ ld a, [hSCY]
+ cp $f8
+ jr z, .done
+ add $8
+ ld [hSCY], a
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .loop
+
+.done
+ callba DeinitializeAllSprites
+ depixel 9, 10, 2, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_25
+ call _InitSpriteAnimStruct
+ ld de, SFX_GLASS_TING_2
+ call PlaySFX
+ call Function108af4
+ call MobileTradeAnim_Next
+ ret
+; 108894
+
+MobileTradeAnim_GetTrademon2: ; 108894
+ ld c, 20
+ ld hl, BGPals + 1 palettes
+ call Function1082fa
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ld c, 20
+ ld hl, BGPals + 1 palettes
+ call Function1082fa
+ call Function108af4
+.asm_1088ad
+ ld a, [hSCY]
+ cp $78
+ jr z, .asm_1088ee
+ inc a
+ inc a
+ ld [hSCY], a
+ cp $30
+ jr z, .asm_1088c5
+ cp $40
+ jr z, .asm_1088dd
+ cp $68
+ jr z, .asm_1088cf
+ jr .asm_1088e7
+
+.asm_1088c5
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ jr .asm_1088e7
+
+.asm_1088cf
+ depixel 10, 11, 4, 0
+ ld a, SPRITE_ANIM_INDEX_MOBILE_22
+ call _InitSpriteAnimStruct
+ xor a
+ call Function108ad4
+ jr .asm_1088e7
+
+.asm_1088dd
+ call MobileTradeAnim_DeleteSprites
+ ld a, $1
+ call Function108ad4
+ jr .asm_1088e7
+
+.asm_1088e7
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .asm_1088ad
+
+.asm_1088ee
+ ld a, [hSCX]
+ cp $c
+ jr z, .asm_108906
+ inc a
+ inc a
+ ld [hSCX], a
+ cp -8
+ jr nz, .asm_1088e7
+ call MobileTradeAnim_DeleteSprites
+ ld c, 1
+ call WaitMobileTradeSpriteAnims
+ jr .asm_1088ee
+
+.asm_108906
+ call MobileTradeAnim_Next
+ ret
+; 10890a
+
+MobileTradeAnim_GetTrademon3: ; 10890a
+ ld c, 40
+ ld hl, BGPals palette 6
+ call Function1082f0
+ call Function108af4
+ call GetMobileTradeAnimByte
+ ret
+; 108919
+
+MobileTradeAnim_0f: ; 108919
+ ld c, 40
+ call WaitMobileTradeSpriteAnims
+ callba DeinitializeAllSprites
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call MobileTradeAnim_ClearVTiles
+ call MobileTradeAnim_ClearBGMap
+ call EnableLCD
+ call GetMobileTradeAnimByte
+ ret
+; 10893d
+
+MobileTradeAnim_FadeToBlack: ; 10893d
+.loop
+ ld a, [rBGP]
+ and a
+ jr z, .blank
+ sla a
+ sla a
+ call DmgToCgbBGPals
+ call DmgToCgbObjPal0
+ ld c, 4
+ call DelayFrames
+ jr .loop
+
+.blank
+ xor a
+ call DmgToCgbBGPals
+ call DmgToCgbObjPal0
+ call GetMobileTradeAnimByte
+ ret
+; 10895e
+
+Function10895e: ; 10895e
+ ld de, VTiles0 tile $30
+ jr asm_108966
+
+Function108963:
+ ld de, VTiles2 tile $31
+asm_108966
+ call DelayFrame
+ ld hl, VTiles2
+ lb bc, $a, $31 ; $a is the bank of ?????
+ call Request2bpp
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ hlcoord 7, 2
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call WaitBGMap
+ ret
+; 10898a
+
+Function10898a: ; 10898a
+ ld de, VTiles2
+ call MobileTradeAnim_GetFrontpic
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ hlcoord 7, 2
+ xor a
+ ld [hGraphicStartTile], a
+ lb bc, 7, 7
+ predef PlaceGraphic
+ call WaitBGMap
+ ret
+; 1089a8
+
+MobileTradeAnim_DisplayMonToBeSent: ; 1089a8
+ ld de, wPlayerTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wPlayerTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wPlayerTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wPlayerTrademonCaughtData]
+ ld de, wPlayerTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wPlayerTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayReceivedMon:
+ ld de, wOTTrademonSpecies
+ ld a, [de]
+ cp EGG
+ jr z, MobileTradeAnim_DisplayEggData
+ call MobileTradeAnim_LoadMonTemplate
+ ld de, wOTTrademonSpecies
+ call MobileTradeAnim_MonDisplay_PrintSpeciesNumber
+ ld de, wOTTrademonSpeciesName
+ call MobileTradeAnim_MonDisplay_PrintSpeciesName
+ ld a, [wOTTrademonCaughtData]
+ ld de, wOTTrademonOTName
+ call MobileTradeAnim_MonDisplay_PrintOTNameAndGender
+ ld de, wOTTrademonID
+ call MobileTradeAnim_MonDisplay_PrintIDNumber
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+
+MobileTradeAnim_DisplayEggData
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 5, 0
+ ld b, 6
+ ld c, 9
+ call TextBox
+ hlcoord 6, 2
+ ld de, .EggTemplate
+ call PlaceString
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+; 108a1d
+
+.EggTemplate: ; 108a1d
+ db "タマゴ"
+ next "おや/?????"
+ next "<ID>№<DOT>?????"
+ db "@"
+; 108a33
+
+Function108a33: ; 108a33
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 5, 0
+ ld b, 6
+ ld c, 9
+ call TextBox
+ hlcoord 7, 4
+ ld de, .OddEgg
+ call PlaceString
+ call MobileTradeAnim_MonDisplay_UpdateBGMap
+ ret
+; 108a54
+
+.OddEgg: ; 108a54
+ db "なぞのタマゴ@"
+; 108a5b
+
+MobileTradeAnim_LoadMonTemplate: ; 108a5b
+ call WaitTop
+ call MobileTradeAnim_ClearTilemap
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 4, 0
+ ld b, 6
+ ld c, 10
+ call TextBox
+ hlcoord 5, 0
+ ld de, .MonTemplate
+ call PlaceString
+ ret
+; 108a79
+
+.MonTemplate: ; 108a79
+ db "─ №<DOT>"
+ next ""
+ next "おや/"
+ next "<ID>№<DOT>"
+ db "@"
+; 108a87
+
+MobileTradeAnim_MonDisplay_UpdateBGMap: ; 108a87
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ret
+; 108a92
+
+MobileTradeAnim_MonDisplay_PrintSpeciesNumber: ; 108a92
+ hlcoord 9, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ret
+; 108a9c
+
+MobileTradeAnim_MonDisplay_PrintSpeciesName: ; 108a9c
+ hlcoord 5, 2
+ call PlaceString
+ ret
+; 108aa3
+
+MobileTradeAnim_MonDisplay_PrintOTNameAndGender: ; 108aa3
+ cp $3
+ jr c, .got_gender
+ xor a
+.got_gender
+ push af
+ hlcoord 8, 4
+ call PlaceString
+ inc bc
+ pop af
+ ld hl, .GenderChars
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [bc], a
+ ret
+; 108abb
+
+.GenderChars: ; 108abb
+ db " "
+ db "♂"
+ db "♀"
+; 108abe
+
+MobileTradeAnim_MonDisplay_PrintIDNumber: ; 108abe
+ hlcoord 8, 6
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+; 108ac8
+
+MobileTradeAnim_ClearTilemap: ; 108ac8
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ret
+; 108ad4
+
+Function108ad4: ; 108ad4
+ and a
+ jr z, .asm_108adc
+ ld de, GFX_1092c7
+ jr .asm_108adf
+
+.asm_108adc
+ ld de, GFX_1091c7
+.asm_108adf
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles2 tile $4a
+ lb bc, BANK(GFX_1092c7), 16
+ call Get2bpp_2
+ call DelayFrame
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 108af4
+
+Function108af4: ; 108af4
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf65]
+ and $1
+ jr z, .copy_palette_109147
+ ld hl, Palette_109187
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld hl, Palette_109187
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ jr .done_copy
+
+.copy_palette_109147
+ ld hl, Palette_109147
+ ld de, UnknOBPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld hl, Palette_109147
+ ld de, OBPals
+ ld bc, 8 palettes
+ call CopyBytes
+
+.done_copy
+ pop af
+ ld [rSVBK], a
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbObjPal0
+ ld a, %11100100 ; 3,2,1,0
+ call DmgToCgbBGPals
+ call DelayFrame
+ ret
+; 108b45
+
+Function108b45: ; 108b45
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+ ld hl, UnknBGPals
+ ld a, e
+ ld [hli], a
+ ld d, a
+ ld [hli], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 108b5a
+
+Function108b5a: ; 108b5a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld de, (15 << 10) + (31 << 5) + 18 ; $3ff2
+ ld hl, BGPals + 4 palettes
+ ld c, $10
+.loop
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 108b78
+
+Function108b78: ; 108b78
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, c
+ and $2
+ jr z, .Orange
+ ld de, (31 << 10) + (31 << 5) + 31 ; $7fff
+ jr .load_pal
+
+.Orange:
+ ld de, ( 1 << 10) + (15 << 5) + 31 ; $05ff
+.load_pal
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hld], a
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 108b98
+
+Palette_108b98:
+; removed
+
+Function108b98: ; 108b98
+ ld d, a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, [wcf65]
+ and $1
+ xor d
+ jr z, .asm_108bad
+ ld hl, Palette_108b98 + 1 palettes
+ jr .asm_108bb0
+
+.asm_108bad
+ ld hl, Palette_108b98
+.asm_108bb0
+ ld de, UnknBGPals + 7 palettes
+ ld bc, 8 palettes
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; 108bbd
+
+MobileTradeAnim_DeleteSprites: ; 108bbd
+ callba DeinitializeAllSprites
+ call ClearSprites
+ ret
+; 108bc7
+
+Function108bc7: ; 108bc7 (42:4bc7)
+ ld a, [wcf64]
+ and a
+ ret z
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp -1 * 8 - 6
+ jr z, .delete
+ sub 1 * 8
+ ld [hl], a
+ ret
+
+.delete
+ callba DeinitializeSprite
+ ret
+
+Function108be0: ; 108be0 (42:4be0)
+ ld hl, SPRITEANIMSTRUCT_YCOORD
+ add hl, bc
+ ld a, [hl]
+ cp 9 * 8 + 2
+ ret z
+ add 1 * 8
+ ld [hl], a
+ ret
+; 108bec (42:4bec)
+
+Function108bec: ; 108bec
+ ld a, $90
+ ld [hWY], a
+ ld hl, .PlayerWillTradeMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ld hl, .ForPartnersMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c07
+
+.PlayerWillTradeMon: ; 0x108c07
+ text_jump UnknownText_0x1bc787
+ db "@"
+; 0x108c0c
+
+.ForPartnersMon: ; 0x108c0c
+ text_jump UnknownText_0x1bc79d
+ db "@"
+; 0x108c11
+
+.UnusedTextPlayersMonTrade: ; 0x108c11
+ text_jump UnknownText_0x1bc7b0
+ db "@"
+; 0x108c16
+
+Function108c16: ; 108c16
+ ld a, $90
+ ld [hWY], a
+ ld hl, .TakeGoodCareOfMon
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c26
+
+.TakeGoodCareOfMon: ; 0x108c26
+ text_jump UnknownText_0x1bc7c3
+ db "@"
+; 0x108c2b
+
+Function108c2b: ; 108c2b
+ ld a, $90
+ ld [hWY], a
+ ld hl, .PlayersMonTrade
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c3b
+
+.PlayersMonTrade: ; 0x108c3b
+ text_jump UnknownText_0x1bc7dd
+ db "@"
+; 0x108c40
+
+Function108c40: ; 108c40
+ ld a, $90
+ ld [hWY], a
+ ld a, [wcf65]
+ and %10000000
+ jr z, .Getmon
+ ld hl, .CameBack
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+
+.Getmon:
+ ld hl, .TakeGoodCareOf
+ call PrintText
+ ld c, 80
+ call DelayFrames
+ ret
+; 108c63
+
+.TakeGoodCareOf: ; 0x108c63
+ text_jump UnknownText_0x1bc7f0
+ db "@"
+; 0x108c68
+
+.CameBack: ; 0x108c68
+ text_jump UnknownText_0x1bc80a
+ db "@"
+; 0x108c6d
+
+Function108c6d: ; 108c6d
+ ld hl, LZ_108fe7
+ debgcoord 0, 0
+ call Decompress
+ ld hl, LZ_108fe7
+ debgcoord 0, 0, VBGMap1
+ call Decompress
+ ret
+; 108c80
+
+Function108c80: ; 108c80
+ ld a, $1
+ ld [rVBK], a
+ ld hl, LZ_1090a7
+ debgcoord 0, 0
+ call Decompress
+ ld hl, LZ_1090a7
+ debgcoord 0, 0, VBGMap1
+ call Decompress
+ ld a, $0
+ ld [rVBK], a
+ ret
+; 108c9b
+
+DebugMobileTrade: ; 108c9b
+; localization error: NAME_LENGTH (11) should be NAME_LENGTH_JAPANESE (6) here
+
+ ld hl, .DebugTradeData
+ ld a, [hli]
+ ld [wPlayerTrademonSpecies], a
+
+ ld de, wPlayerTrademonSenderName
+ ld c, NAME_LENGTH
+.your_name_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .your_name_loop
+
+ ld de, wPlayerTrademonID
+ ld c, 2
+.your_id_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .your_id_loop
+
+ ld de, wPlayerTrademonOTName
+ ld c, NAME_LENGTH
+.your_ot_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .your_ot_loop
+
+ ld a, [hli]
+ ld [wOTTrademonSpecies], a
+
+ ld de, wOTTrademonSenderName
+ ld c, NAME_LENGTH
+.their_name_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .their_name_loop
+
+ ld de, wOTTrademonID
+ ld c, 2
+.their_id_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .their_id_loop
+
+ ld de, wOTTrademonOTName
+ ld c, NAME_LENGTH
+.their_ot_loop
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .their_ot_loop
+
+ ret
+; 108ce9
+
+.DebugTradeData:
+ db VENUSAUR
+ db "ゲーフり@@"
+ dw $0123
+ db "かびーん@@"
+ db CHARIZARD
+ db "クりーチャ@"
+ dw $0456
+ db "マツミヤ@@"
+; 108d07
+
+Function108d07: ; 108d07
+ ld a, [wc74e]
+ and $7f
+ cp $8
+ jr c, .asm_108d12
+ ld a, $7
+
+.asm_108d12
+ ld bc, 1 palettes
+ ld hl, Palette_1093c7
+ call AddNTimes
+ ld a, $5
+ ld de, UnknBGPals + 4 palettes
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ret
+; 108d27
+
+LZ_108d27:
+INCBIN "gfx/unknown/108d27.2bpp.lz"
+
+LZ_108da7:
+INCBIN "gfx/unknown/108da7.2bpp.lz"
+
+LZ_108fe7:
+INCBIN "gfx/unknown/108fe7.tilemap.lz"
+
+LZ_1090a7:
+INCBIN "gfx/unknown/1090a7.tilemap.lz"
+
+Palette_1090f7:
+; unreferenced
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+
+ RGB 31, 0, 25
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+
+ RGB 9, 19, 31
+ RGB 0, 0, 0
+
+Palette_109107:
+ RGB 18, 31, 15
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 15, 1
+ RGB 14, 14, 31
+ RGB 12, 9, 31
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 14, 14, 31
+ RGB 12, 9, 31
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 7, 9
+ RGB 18, 0, 1
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 15, 1
+ RGB 18, 0, 30
+ RGB 9, 0, 17
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 18, 0, 30
+ RGB 9, 0, 17
+ RGB 0, 0, 0
+
+Palette_109147:
+ RGB 31, 31, 31
+ RGB 31, 31, 12
+ RGB 31, 13, 12
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 23, 15
+ RGB 31, 18, 7
+ RGB 31, 15, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 0, 25
+ RGB 31, 0, 25
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 9, 19, 31
+ RGB 9, 19, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+Palette_109187:
+ RGB 31, 31, 31
+ RGB 31, 31, 12
+ RGB 31, 13, 12
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 23, 15
+ RGB 31, 18, 7
+ RGB 31, 15, 0
+
+ RGB 31, 31, 31
+ RGB 20, 20, 20
+ RGB 11, 11, 11
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 9, 19, 31
+ RGB 9, 19, 31
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 31, 0, 25
+ RGB 31, 0, 25
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+GFX_1091c7:
+INCBIN "gfx/unknown/1091c7.2bpp"
+GFX_1092c7:
+INCBIN "gfx/unknown/1092c7.2bpp"
+
+Palette_1093c7:
+ RGB 18, 31, 15
+ RGB 4, 13, 31
+ RGB 0, 0, 31
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 31, 0
+ RGB 31, 15, 0
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 9, 24, 0
+ RGB 2, 16, 0
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 7, 9
+ RGB 18, 0, 1
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 28, 5, 31
+ RGB 17, 0, 17
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 9, 9, 9
+ RGB 4, 4, 4
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 31, 13, 21
+ RGB 27, 7, 12
+ RGB 0, 0, 0
+
+ RGB 18, 31, 15
+ RGB 21, 20, 20
+ RGB 14, 14, 31
+ RGB 0, 0, 0
diff --git a/mobile/mobile_45.asm b/mobile/mobile_45.asm
new file mode 100644
index 000000000..6c581de87
--- /dev/null
+++ b/mobile/mobile_45.asm
@@ -0,0 +1,7690 @@
+
+SECTION "bank45", ROMX
+
+ charmap " ", $20 ; revert to ascii
+
+String_114000:
+ db "---", 0
+String_114004:
+ db "CGB-AAAA-00", 0, 0
+
+Unknown_114011: ; 114011
+ dw String_114033
+ dw String_11403a
+ dw String_114043
+ dw String_11404e
+ dw String_114053
+ dw String_114058
+ dw String_114062
+ dw String_114074
+ dw String_11408d
+ dw String_11409f
+ dw String_1140b8
+ dw String_1140e6
+ dw String_114110
+ dw String_11413f
+ dw String_114160
+ dw String_114160
+ dw String_114163
+
+String_114033: ; 114033
+ db "From: ", 0
+String_11403a: ; 11403a
+ db "Sender: ", 0
+String_114043: ; 114043
+ db "Reply-To: ", 0
+String_11404e: ; 11404e
+ db "To: ", 0
+String_114053: ; 114053
+ db "Cc: ", 0
+String_114058: ; 114058
+ db "Subject: ", 0
+String_114062: ; 114062
+ db "MIME-Version: 1.0", 0
+String_114074: ; 114074
+ db "X-Game-title: XXXXXXXXXX", 0
+String_11408d: ; 11408d
+ db "X-Game-code: CGB-", 0
+String_11409f: ; 11409f
+ db "X-GBmail-type: exclusive", 0
+String_1140b8: ; 1140b8
+ db "Content-Type: text/plain; charset=iso-2022-jp", 0
+String_1140e6: ; 1140e6
+ db "Content-Type: multipart/mixed; boundary=\"", 0
+String_114110: ; 114110
+ db "Content-Type: Application/Octet-Stream; name=\"", 0
+String_11413f: ; 11413f
+ db "Content-Transfer-Encoding:Base64", 0
+String_114160: ; 114160
+ db "--", 0
+String_114163: ; 114163
+ db ".", 0
+; 114165
+
+Jumptable_114165: ; 114165
+ dw Function114268
+ dw Function114269
+ dw Function11433c
+ dw Function1143b7
+ dw Function1144d1
+ dw Function114b55
+ dw Function114bbc
+ dw Function114cd9
+ dw Function114e62
+ dw Function1152b8
+ dw Function1154d4
+ dw Function1156cc
+ dw Function1159fb
+; 11417f
+
+Unknown_11417f: ; 11417f
+ dw .From
+ dw .Sender
+ dw .ReplyTo
+ dw .To
+ dw .CC
+ dw .Subject
+ dw .Date
+ dw .ContentType
+ dw .MimeVersion
+ dw .XMailer
+ dw .XGameTitle
+ dw .XGameCode
+ dw .XGBMailType
+
+.From: ; 114199
+ db "FROM:", 0
+.Sender: ; 11419f
+ db "SENDER:", 0
+.ReplyTo: ; 1141a7
+ db "REPLY-TO:", 0
+.To: ; 1141b1
+ db "TO:", 0
+.CC: ; 1141b5
+ db "CC:", 0
+.Subject: ; 1141b9
+ db "SUBJECT:", 0
+.Date: ; 1141c2
+ db "DATE:", 0
+.ContentType: ; 1141c8
+ db "CONTENT-TYPE:", 0
+.MimeVersion: ; 1141d6
+ db "MIME-VERSION:", 0
+.XMailer: ; 1141e4
+ db "X-MAILER:", 0
+.XGameTitle: ; 1141ee
+ db "X-GAME-TITLE:", 0
+.XGameCode: ; 1141fc
+ db "X-GAME-CODE:", 0
+.XGBMailType: ; 114209
+ db "X-GBMAIL-TYPE:", 0
+; 114218
+
+String_114218: ; 114218
+ db "NAME=", 0
+String_11421e: ; 11421e
+ db "MULTIPART", 0
+String_114228: ; 114228
+ db "BOUNDARY=", 0
+String_114232: ; 114232
+ db "=?ISO-2022-JP?B?", 0
+; 114243
+
+Function114243:: ; 114243
+ ld a, SRAM_ENABLE
+ ld [MBC3SRamEnable], a
+ ld a, [hFF8C]
+ push af ; if [$dc02] == 0, this is popped to pc.
+ push de
+ ld a, [$dc02]
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_114165
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ jp hl
+
+; 11425c
+
+Function11425c: ; 11425c
+ ld [$dc02], a
+ pop af
+ ld [hFF8C], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ret
+
+; 114268
+
+Function114268: mobile
+
+; 114269
+
+Function114269: ; 114269
+ ld h, d
+ ld l, e
+ xor a
+ ld [$dc02], a
+ ld [$dc03], a
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+.asm_114282
+ ld a, [de]
+ and a
+ jr z, .asm_1142a4
+ ld h, a
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_114292
+ ld a, h
+ cp $80
+ jr nc, .asm_1142ae
+
+.asm_114292
+ ld a, h
+ cp $d
+ jr z, .asm_1142bb
+ xor a
+ ld [$dc02], a
+.asm_11429b
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_114282
+
+.asm_1142a4
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_114303
+ ld b, $80
+ jr .asm_1142b0
+
+.asm_1142ae
+ ld b, $81
+
+.asm_1142b0
+ ld a, [$dc00]
+ ld c, a
+ ld a, $1
+ ld h, d
+ ld l, e
+ jp Function11425c
+
+.asm_1142bb
+ and a
+ jr z, .asm_1142a4
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1142a4
+ ld a, [de]
+ ld h, a
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_1142d4
+ ld a, h
+ cp $80
+ jr nc, .asm_1142ae
+
+.asm_1142d4
+ ld a, h
+ cp $a
+ jr nz, .asm_1142ae
+ ld a, [$dc03]
+ and a
+ jr nz, .asm_11430d
+ ld a, [$dc02]
+ and a
+ jr nz, .asm_114309
+ ld a, $1
+ ld [$dc02], a
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1142a4
+ ld a, [de]
+ cp $20
+ jr z, .asm_11429b
+ cp $9
+ jr z, .asm_11429b
+ jr .asm_114282
+
+.asm_1142fe
+ xor a
+ ld b, a
+ jp Function11425c
+
+.asm_114303
+ xor a
+ ld b, $1
+ jp Function11425c
+
+.asm_114309
+ xor a
+ ld [$dc02], a
+
+.asm_11430d
+ ld a, [$dc02]
+ and a
+ jr nz, .asm_1142fe
+ ld a, $1
+ ld [$dc03], a
+ inc e
+ call z, Function114333
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1142a4
+ ld a, [de]
+ and a
+ jp z, .asm_1142a4
+ cp $2e
+ jp nz, .asm_114282
+ ld a, $1
+ ld [$dc02], a
+ jp .asm_11429b
+
+; 114333
+
+Function114333: ; 114333
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 11433c
+
+Function11433c: ; 11433c
+ push de
+ ld h, d
+ ld l, e
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $b
+ call Function1143f3
+ cp $2
+ jr z, .asm_114358
+ and a
+ jr z, .asm_114360
+ pop hl
+.asm_114351
+ xor a
+ ld b, $3
+ jp Function11425c
+
+.asm_114357
+ pop hl
+
+.asm_114358
+ pop hl
+ ld a, $1
+ ld b, $82
+ jp Function11425c
+
+.asm_114360
+ ld a, h
+ ld [$dc03], a
+ pop hl
+ push bc
+ push de
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld b, $c
+ call Function1143f3
+ cp $2
+ jr z, .asm_114357
+ and a
+ jr z, .asm_114381
+ xor a
+ ld b, $2
+ pop hl
+ pop hl
+ jp Function11425c
+
+.asm_114381
+ pop de
+ pop bc
+ ld a, [$dc03]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114c0b
+ ld hl, String_114004
+.asm_114394
+ ld de, $dc24
+.asm_114397
+ ld a, [hli]
+ and a
+ jr z, .asm_1143ad
+ ld b, a
+ ld a, [de]
+ inc de
+ cp b
+ jr z, .asm_114397
+.asm_1143a1
+ ld a, [hli]
+ and a
+ jr nz, .asm_1143a1
+ ld a, [hl]
+ and a
+ jr nz, .asm_114394
+ ld b, a
+ jp Function11425c
+
+.asm_1143ad
+ ld a, [de]
+ and a
+ jr nz, .asm_114351
+ xor a
+ ld b, $1
+ jp Function11425c
+
+; 1143b7
+
+Function1143b7: ; 1143b7
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ ld c, a
+ inc de
+ ld a, [de]
+ ld h, a
+ inc de
+ ld a, [de]
+ inc de
+ push de
+ ld d, a
+ ld e, h
+ call Function1143f3
+ cp $2
+ jr z, .asm_1143eb
+ and a
+ jr nz, .asm_1143ed
+ ld a, h
+ pop hl
+ push af
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ jp Function11425c
+
+.asm_1143eb
+ ld b, $82
+
+.asm_1143ed
+ ld a, $1
+ pop hl
+ jp Function11425c
+
+; 1143f3
+
+Function1143f3: ; 1143f3
+ call Function114412
+ and a
+ jr nz, .asm_11440d
+ ld a, $4
+ cp b
+ jr c, .asm_114407
+ jr z, .asm_114402
+.asm_114400
+ xor a
+ ret
+
+.asm_114402
+ ld a, $0
+ cp c
+ jr nc, .asm_114400
+
+.asm_114407
+ lb bc, $4, $0
+ ld a, $2
+ ret
+
+.asm_11440d
+ ld a, $1
+ ld b, $84
+ ret
+
+; 114412
+
+Function114412: ; 114412
+ ld a, c
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, Unknown_11417f
+ ld a, b
+ add a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld c, $0
+ jr .asm_11444a
+
+.asm_11442b
+ ld a, [de]
+ and a
+ jp z, .asm_1144c2
+ inc e
+ call z, Function1144c8
+ cp $d ; CR
+ jr nz, .asm_11442b
+ ld a, [de]
+ inc e
+ call z, Function1144c8
+ cp $a ; NL
+ jr nz, .asm_11442b
+ ld a, [de]
+ cp $2e ; .
+ jr z, .asm_1144ae
+ cp $d ; CR
+ jr z, .asm_1144b8
+
+.asm_11444a
+ ld a, [$dc00]
+ ld [$dc02], a
+ ld a, [de]
+ and a
+ jr z, .asm_1144c2
+ inc e
+ call z, Function1144c8
+ cp $61 ; "a"
+ jr c, .asm_114462
+ cp $7b ; "z" + 1
+ jr nc, .asm_114462
+ sub $20
+
+.asm_114462
+ ld b, a
+ ld a, [hl]
+ and a
+ jr z, .asm_114476
+ cp b
+ jr nz, .asm_11446e
+ inc c
+ inc hl
+ jr .asm_11444a
+
+.asm_11446e
+ ld a, c
+ and a
+ jr z, .asm_11442b
+ dec c
+ dec hl
+ jr .asm_11446e
+
+.asm_114476
+ ld a, $20 ; " "
+ cp b
+ jr z, .asm_114481
+ ld a, $a ; NL
+ cp b
+ jr z, .asm_114481
+ dec de
+
+.asm_114481
+ ld h, d
+ ld l, e
+ ld bc, NULL
+.asm_114486
+ ld a, [de]
+ and a
+ jr z, .asm_1144c2
+ inc bc
+ inc e
+ call z, Function1144c8
+ cp $d ; CR
+ jr nz, .asm_114486
+ ld a, [de]
+ inc bc
+ inc e
+ call z, Function1144c8
+ cp $a ; NL
+ jr nz, .asm_114486
+ ld a, [de]
+ cp $20 ; " "
+ jr z, .asm_114486
+ cp $9 ; TAB
+ jr z, .asm_114486
+ ld d, h
+ ld e, l
+ ld a, [$dc02]
+ ld h, a
+ xor a
+ ret
+
+.asm_1144ae
+ inc e
+ call z, Function1144c8
+ ld a, [de]
+ cp $d ; CR
+ jp nz, .asm_11442b
+
+.asm_1144b8
+ inc e
+ call z, Function1144c8
+ ld a, [de]
+ cp $a ; NL
+ jp nz, .asm_11442b
+
+.asm_1144c2
+ ld a, $0
+ ld [hl], a
+ ld a, $1
+ ret
+
+; 1144c8
+
+Function1144c8: ; 1144c8
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 1144d1
+
+Function1144d1: ; 1144d1
+ call Function114561
+ dec de
+ dec de
+ push de
+ inc de
+ inc de
+ inc de
+ inc hl
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc hl
+ ld a, [de]
+ ld [hld], a
+ dec de
+ ld a, [de]
+ ld [hl], a
+ xor a
+ ld [BigDoll], a
+ ld [$dc17], a
+ ld a, $2
+ ld [$dc0e], a
+ ld hl, $dc03
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114576
+ cp $2
+ jr z, .asm_11455b
+ and a
+ jr z, .asm_114511
+ ld a, $1
+ ld [$dc0d], a
+ call Function1146fa
+ and a
+ jr nz, .asm_11455b
+ jr .asm_11451c
+
+.asm_114511
+ call Function1146a4
+ and a
+ jr nz, .asm_11455b
+ ld a, $2
+ ld [$dc0d], a
+
+.asm_11451c
+ pop hl
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [$dc0d]
+ ld [de], a
+ ld b, $0
+ ld a, [BigDoll]
+ and a
+ jr z, .asm_114537
+ ld b, $1
+
+.asm_114537
+ ld hl, $dc06
+ ld a, [hl]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, $dc09
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ dec de
+ ld a, d
+ or e
+ jr z, .asm_114559
+ ld hl, wCurrMapTriggerCount
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ xor a
+ ld [de], a
+ jp Function11425c
+
+.asm_114559
+ ld b, $83
+
+.asm_11455b
+ pop hl
+ ld a, $1
+ jp Function11425c
+
+; 114561
+
+Function114561: ; 114561
+ ld hl, $dc03
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ ret
+
+; 114576
+
+Function114576: ; 114576
+ xor a
+ ld [Bed], a
+ ld b, $7
+ call Function1143f3
+ cp $2
+ jr z, .asm_1145b6
+ and a
+ jr nz, .asm_1145b4
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ push hl
+ push de
+ push bc
+ ld hl, $dc24
+ call Function115d53
+ call Function1145c5
+ pop bc
+ pop de
+ pop hl
+ and a
+ jr z, .asm_1145bf
+ ld a, b
+ and a
+ jr nz, .asm_1145ba
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, String_114218
+ call Function114acf
+
+.asm_1145b4
+ xor a
+ ret
+
+.asm_1145b6
+ ld b, $82
+ jr .asm_1145bc
+
+.asm_1145ba
+ ld b, $81
+
+.asm_1145bc
+ ld a, $2
+ ret
+
+.asm_1145bf
+ ld a, $1
+ ld [Bed], a
+ ret
+
+; 1145c5
+
+Function1145c5: ; 1145c5
+ ld hl, $dc24
+ ld de, String_11421e
+ ld c, $0
+.asm_1145cd
+ ld a, [hli]
+ and a
+ jr z, .asm_1145ef
+ cp $20
+ jr z, .asm_1145cd
+ cp $d
+ jr z, .asm_1145f8
+ cp $61
+ jr c, .asm_1145e3
+ cp $7b
+ jr nc, .asm_1145e3
+ sub $20
+
+.asm_1145e3
+ ld b, a
+ ld a, [de]
+ and a
+ jr z, .asm_11460e
+ inc de
+ cp b
+ jr z, .asm_1145cd
+ dec de
+ jr .asm_1145cd
+
+.asm_1145ef
+ ld b, $0
+ jr .asm_1145f5
+
+.asm_1145f3
+ ld b, $81
+
+.asm_1145f5
+ ld a, $1
+ ret
+
+.asm_1145f8
+ ld a, [hli]
+ and a
+ jr z, .asm_1145f3
+ cp $a
+ jr nz, .asm_1145f3
+ ld a, [hli]
+ and a
+ jr z, .asm_1145f3
+ cp $20
+ jr z, .asm_1145cd
+ cp $9
+ jr z, .asm_1145cd
+ jr .asm_1145f3
+
+.asm_11460e
+ ld a, c
+ and a
+ jr nz, .asm_114619
+ ld c, $1
+ ld de, String_114228
+ jr .asm_1145cd
+
+.asm_114619
+ dec hl
+ ld a, [hl]
+ cp $22
+ jr nz, .asm_114620
+ inc hl
+
+.asm_114620
+ ld de, $ddc8
+ ld b, $0
+ ld c, $40
+.asm_114627
+ ld a, [hli]
+ cp $22
+ jr z, .asm_114636
+ cp $d
+ jr z, .asm_114636
+ ld [de], a
+ inc de
+ inc b
+ dec c
+ jr nz, .asm_114627
+
+.asm_114636
+ ld a, b
+ ld [PartyMon5Defense], a
+ xor a
+ ret
+
+; 11463c
+
+Function11463c: ; 11463c
+ ld a, [$dc00]
+ push af
+ push de
+ ld hl, $ddc8
+ ld a, [PartyMon5Defense]
+ ld b, a
+.asm_114648
+ ld a, [de]
+ ld c, a
+ ld a, [hli]
+ cp c
+ jr nz, .asm_11468a
+ inc e
+ call z, Function11469b
+ dec b
+ jr nz, .asm_114648
+ ld a, [de]
+ cp $2d
+ jr z, .asm_114673
+ cp $d
+ jr nz, .asm_11468a
+ xor a
+ ld [Carpet], a
+.asm_114662
+ inc e
+ call z, Function11469b
+ ld a, [de]
+ cp $a
+ jr nz, .asm_11468a
+ inc e
+ call z, Function11469b
+ xor a
+ pop hl
+ pop hl
+ ret
+
+.asm_114673
+ inc e
+ call z, Function11469b
+ ld a, [de]
+ cp $2d
+ jr nz, .asm_11468a
+ inc e
+ call z, Function11469b
+ ld a, $1
+ ld [Carpet], a
+ ld a, [de]
+ cp $d
+ jr z, .asm_114662
+
+.asm_11468a
+ pop de
+ pop af
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ xor a
+ ld [Carpet], a
+ ld a, $1
+ ret
+
+; 11469b
+
+Function11469b: ; 11469b
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 1146a4
+
+Function1146a4: ; 1146a4
+ call Function114867
+ and a
+ jr nz, .asm_1146e4
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114a18
+ and a
+ jr nz, .asm_1146e8
+ call Function1148c2
+ and a
+ jr nz, .asm_1146e4
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114a7a
+ and a
+ jr nz, .asm_1146e8
+.asm_1146da
+ dec bc
+ dec bc
+ call Function1149cc
+ and a
+ jr nz, .asm_1146e4
+ xor a
+ ret
+
+.asm_1146e4
+ ld b, $83
+ jr .asm_1146f7
+
+.asm_1146e8
+ ld a, [$dc17]
+ and a
+ jr z, .asm_1146f5
+ ld a, $1
+ ld [BigDoll], a
+ jr .asm_1146da
+
+.asm_1146f5
+ ld b, $81
+
+.asm_1146f7
+ ld a, $1
+ ret
+
+; 1146fa
+
+Function1146fa: ; 1146fa
+ call Function114867
+ and a
+ jp nz, .asm_11478a
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function114a18
+ and a
+ jp nz, .asm_11478e
+ call Function1149cc
+ and a
+ jp nz, .asm_11478a
+ ld a, $1
+ ld [$dc0e], a
+ ld a, [$dc00]
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, $1
+ ld [RightOrnament], a
+ call Function1147cd
+ and a
+ jp nz, .asm_1147b7
+.asm_114737
+ call Function114843
+ cp $1
+ jr nz, .asm_114749
+ ld a, [$dc17]
+ and a
+ jr z, .asm_114794
+ ld a, $1
+ ld [BigDoll], a
+
+.asm_114749
+ call Function11494d
+ and a
+ jr nz, .asm_11478a
+ ld a, [BigDoll]
+ and a
+ jr nz, .asm_114786
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call Function1147cd
+ and a
+ jr nz, .asm_1147b7
+ ld a, [$dc0e]
+ cp $3
+ jr nz, .asm_114773
+ dec bc
+ dec bc
+
+.asm_114773
+ call Function1149cc
+ and a
+ jr nz, .asm_11478a
+ ld a, [$dc0d]
+ inc a
+ ld [$dc0d], a
+ ld a, [BigDoll]
+ and a
+ jr z, .asm_114799
+
+.asm_114786
+ ld b, $1
+ jr .asm_1147cb
+
+.asm_11478a
+ ld b, $83
+ jr .asm_114796
+
+.asm_11478e
+ ld a, [$dc17]
+ and a
+ jr nz, .asm_114796
+
+.asm_114794
+ ld b, $81
+
+.asm_114796
+ ld a, $1
+ ret
+
+.asm_114799
+ ld a, [Carpet]
+ and a
+ jr z, .asm_114737
+ jr .asm_1147cb
+
+ ld hl, $dc03
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114a7a
+ and a
+ jr z, .asm_1147cb
+ xor a
+ ld [BigDoll], a
+
+.asm_1147b7
+ ld a, [$dc17]
+ and a
+ jr z, .asm_114794
+ ld a, $1
+ ld [BigDoll], a
+ ld a, [$dc0d]
+ cp $1
+ jr nz, .asm_114773
+ ld b, $1
+
+.asm_1147cb
+ xor a
+ ret
+
+; 1147cd
+
+Function1147cd: ; 1147cd
+ ld bc, NULL
+ ld a, [RightOrnament]
+ and a
+ jr nz, .asm_11480c
+.asm_1147d6
+ ld a, [de]
+ and a
+ jr z, .asm_11482f
+ inc e
+ call z, Function11483a
+ inc bc
+ cp $d
+ jr nz, .asm_1147d6
+ ld a, [de]
+ cp $a
+ jr nz, .asm_11482f
+.asm_1147e8
+ inc bc
+ inc e
+ call z, Function11483a
+ ld a, [de]
+ cp $20
+ jr z, .asm_114827
+ cp $9
+ jr z, .asm_114827
+ cp $d
+ jr nz, .asm_11482b
+ inc e
+ call z, Function11483a
+ ld a, [de]
+ cp $a
+ jr nz, .asm_11482f
+ inc e
+ call z, Function11483a
+ ld a, h
+ and a
+ jr z, .asm_11480c
+ dec bc
+
+.asm_11480c
+ ld a, [de]
+ cp $2d
+ jr nz, .asm_1147d6
+ inc e
+ call z, Function11483a
+ ld a, [de]
+ cp $2d
+ jr nz, .asm_1147d6
+ inc e
+ call z, Function11483a
+ push bc
+ call Function11463c
+ pop bc
+ and a
+ jr nz, .asm_1147d6
+ ret
+
+.asm_114827
+ ld h, $1
+ jr .asm_1147e8
+
+.asm_11482b
+ ld h, $0
+ jr .asm_11480c
+
+.asm_11482f
+ and a
+ jr nz, .asm_114837
+ ld a, $1
+ ld [$dc17], a
+
+.asm_114837
+ ld a, $1
+ ret
+
+; 11483a
+
+Function11483a: ; 11483a
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114843
+
+Function114843: ; 114843
+ ld a, [$dc00]
+ push af
+ push de
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114a18
+ and a
+ jr nz, .asm_11485f
+ pop de
+ pop af
+ ld [$dc00], a
+ ld hl, String_114218
+ call Function114acf
+ ret
+
+.asm_11485f
+ pop de
+ pop af
+ ld [$dc00], a
+ ld a, $1
+ ret
+
+; 114867
+
+Function114867: ; 114867
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, $2
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld a, $1
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld hl, $dc03
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1148b9
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld d, $5
+.asm_1148a9
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1148b6
+ dec d
+ jr nz, .asm_1148a9
+ ld [hl], b
+ dec hl
+ ld [hl], c
+ xor a
+ ret
+
+.asm_1148b6
+ ld a, $1
+ ret
+
+; 1148b9
+
+Function1148b9: ; 1148b9
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 1148c2
+
+Function1148c2: ; 1148c2
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, c
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, b
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [$dc0e]
+ ld [de], a
+ inc e
+ call z, Function114944
+ cp $3
+ jr nz, .asm_114904
+ ld hl, Plant
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+
+.asm_114904
+ ld hl, $dc03
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function114944
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, [$dc0e]
+ cp $3
+ jr z, .asm_114932
+ ld d, $6
+ jr .asm_114934
+
+.asm_114932
+ ld d, $a
+
+.asm_114934
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114941
+ dec d
+ jr nz, .asm_114934
+ ld [hl], b
+ dec hl
+ ld [hl], c
+ xor a
+ ret
+
+.asm_114941
+ ld a, $1
+ ret
+
+; 114944
+
+Function114944: ; 114944
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 11494d
+
+Function11494d: ; 11494d
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [$dc0e]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ cp $3
+ jr nz, .asm_114983
+ ld hl, Plant
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+
+.asm_114983
+ ld hl, $dc03
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function1149c3
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, [$dc0e]
+ cp $3
+ jr z, .asm_1149b1
+ ld d, $4
+ jr .asm_1149b3
+
+.asm_1149b1
+ ld d, $8
+
+.asm_1149b3
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1149c0
+ dec d
+ jr nz, .asm_1149b3
+ ld [hl], b
+ dec hl
+ ld [hl], c
+ xor a
+ ret
+
+.asm_1149c0
+ ld a, $1
+ ret
+
+; 1149c3
+
+Function1149c3: ; 1149c3
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 1149cc
+
+Function1149cc: ; 1149cc
+ ld hl, $dc06
+ ld a, [hl]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ push de
+ ld hl, $dc09
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ dec de
+ ld a, d
+ or e
+ jr z, .asm_114a0b
+ dec de
+ ld a, d
+ or e
+ jr z, .asm_114a0b
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ld hl, wCurrMapTriggerCount
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, c
+ ld [de], a
+ inc e
+ call z, Function114a0f
+ ld a, b
+ ld [de], a
+ inc e
+ call z, Function114a0f
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ pop de
+ xor a
+ ret
+
+.asm_114a0b
+ pop de
+ ld a, $1
+ ret
+
+; 114a0f
+
+Function114a0f: ; 114a0f
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 114a18
+
+Function114a18: ; 114a18
+ ld bc, NULL
+ ld h, b
+.asm_114a1c
+ inc bc
+ ld a, [de]
+ and a
+ jr z, .asm_114a66
+ inc e
+ call z, Function114a71
+ cp $d
+ jr nz, .asm_114a1c
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114a66
+.asm_114a2e
+ inc bc
+ inc e
+ call z, Function114a71
+ ld a, [de]
+ cp $20
+ jr z, .asm_114a5e
+ cp $9
+ jr z, .asm_114a5e
+ cp $d
+ jr nz, .asm_114a62
+ inc e
+ call z, Function114a71
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114a66
+ inc e
+ call z, Function114a71
+ ld a, h
+ and a
+ jr z, .asm_114a52
+ dec bc
+
+.asm_114a52
+ ld hl, $dc03
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ xor a
+ ret
+
+.asm_114a5e
+ ld h, $1
+ jr .asm_114a2e
+
+.asm_114a62
+ ld h, $0
+ jr .asm_114a1c
+
+.asm_114a66
+ and a
+ jr nz, .asm_114a6e
+ ld a, $1
+ ld [$dc17], a
+
+.asm_114a6e
+ ld a, $1
+ ret
+
+; 114a71
+
+Function114a71: ; 114a71
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114a7a
+
+Function114a7a: ; 114a7a
+ ld bc, NULL
+.asm_114a7d
+ inc bc
+ ld a, [de]
+ and a
+ jr z, .asm_114abb
+ inc e
+ call z, Function114ac6
+ cp $d
+ jr nz, .asm_114a7d
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114abb
+ inc e
+ call z, Function114ac6
+ inc bc
+ ld a, [de]
+ cp $2e
+ jr nz, .asm_114a7d
+ inc e
+ call z, Function114ac6
+ ld a, [de]
+ cp $d
+ jr nz, .asm_114a7d
+ inc e
+ call z, Function114ac6
+ ld a, [de]
+ cp $a
+ jr nz, .asm_114abb
+ inc e
+ call z, Function114ac6
+ ld hl, $dc03
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ xor a
+ ret
+
+.asm_114abb
+ and a
+ jr nz, .asm_114ac3
+ ld a, $1
+ ld [$dc17], a
+
+.asm_114ac3
+ ld a, $1
+ ret
+
+; 114ac6
+
+Function114ac6: ; 114ac6
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114acf
+
+Function114acf: ; 114acf
+.asm_114acf
+ push hl
+ push bc
+.asm_114ad1
+ ld a, [hl]
+ ld b, a
+ ld a, [de]
+ inc e
+ call z, Function114b4c
+ cp $61
+ jr c, .asm_114ae2
+ cp $7b
+ jr nc, .asm_114ae2
+ sub $20
+
+.asm_114ae2
+ cp b
+ jr z, .asm_114af4
+ pop bc
+ dec bc
+ push bc
+ ld a, b
+ or c
+ jr nz, .asm_114ad1
+.asm_114aec
+ ld a, $2
+ ld [$dc0e], a
+ pop bc
+ pop hl
+ ret
+
+.asm_114af4
+ inc hl
+.asm_114af5
+ ld a, [hli]
+ and a
+ jr z, .asm_114b19
+ ld b, a
+ ld a, [de]
+ inc e
+ call z, Function114b4c
+ cp $61
+ jr c, .asm_114b09
+ cp $7b
+ jr nc, .asm_114b09
+ sub $20
+
+.asm_114b09
+ cp b
+ jr nz, .asm_114b15
+ pop bc
+ dec bc
+ push bc
+ ld a, b
+ or c
+ jr nz, .asm_114af5
+ jr .asm_114aec
+
+.asm_114b15
+ pop bc
+ pop hl
+ jr .asm_114acf
+
+.asm_114b19
+ ld b, $0
+ ld c, $40
+ ld a, [de]
+ cp $22
+ jr nz, .asm_114b26
+ inc e
+ call z, Function114b4c
+
+.asm_114b26
+ ld hl, Plant
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+.asm_114b31
+ ld a, [de]
+ cp $22
+ jr z, .asm_114b42
+ cp $d
+ jr z, .asm_114b42
+ inc e
+ call z, Function114b4c
+ inc b
+ dec c
+ jr nz, .asm_114b31
+
+.asm_114b42
+ ld [hl], b
+ pop bc
+ pop hl
+ ld a, $3
+ ld [$dc0e], a
+ xor a
+ ret
+
+; 114b4c
+
+Function114b4c: ; 114b4c
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114b55
+
+Function114b55: ; 114b55
+ call Function114561
+ ld b, $0
+ ld hl, $dc03
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+.asm_114b65
+ push de
+ push bc
+ push hl
+ call Function1143f3
+ cp $2
+ jr z, .asm_114bb2
+ and a
+ jr nz, .asm_114b8c
+ ld a, h
+ pop hl
+ inc hl
+ ld [hld], a
+ ld a, $1
+ ld [hli], a
+ inc hl
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ inc hl
+ ld [hl], c
+ inc hl
+ ld [hl], b
+ inc hl
+.asm_114b82
+ pop bc
+ pop de
+ inc b
+ ld a, b
+ cp $d
+ jr z, .asm_114b96
+ jr .asm_114b65
+
+.asm_114b8c
+ pop hl
+ xor a
+rept NAME_LENGTH_JAPANESE
+ ld [hli], a
+endr
+ jr .asm_114b82
+
+.asm_114b96
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld bc, $004e
+ ld hl, $dc24
+ call Function115d6a
+ jp Function11425c
+
+.asm_114bb2
+ ld a, $1
+ pop bc
+ pop bc
+ pop bc
+ ld b, $82
+ jp Function11425c
+
+; 114bbc
+
+Function114bbc: ; 114bbc
+ ld h, d
+ ld l, e
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ inc hl
+ push hl
+ call Function1143f3
+ cp $2
+ jr z, .asm_114c03
+ and a
+ jr nz, .asm_114bff
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ call Function114c0b
+ ld hl, $dc24
+ call Function114c5e
+ ld a, b
+ or c
+ jr z, .asm_114bff
+ pop hl
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ ld hl, $dc24
+ push bc
+ call Function115d6a
+ pop hl
+ jp Function11425c
+
+.asm_114bff
+ ld b, $84
+ jr .asm_114c05
+
+.asm_114c03
+ ld b, $82
+
+.asm_114c05
+ ld a, $1
+ pop hl
+ jp Function11425c
+
+; 114c0b
+
+Function114c0b: ; 114c0b
+ ld hl, $dc24
+ push bc
+ call Function115d53
+ pop bc
+ ld hl, $dc24
+ ld d, h
+ ld e, l
+.asm_114c18
+ ld a, [hli]
+ cp $d
+ jr z, .asm_114c34
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_114c18
+.asm_114c24
+ xor a
+ ld [de], a
+ ld hl, $dc24
+ ld bc, NULL
+.asm_114c2c
+ ld a, [hli]
+ inc bc
+ and a
+ jr nz, .asm_114c2c
+ dec bc
+ xor a
+ ret
+
+.asm_114c34
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114c24
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_114c18
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114c24
+ ld a, [hli]
+ cp $20
+ jr z, .asm_114c4e
+ cp $9
+ jr z, .asm_114c4e
+ jr .asm_114c24
+
+.asm_114c4e
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114c24
+ jr .asm_114c18
+
+; 114c55
+
+Function114c55: ; 114c55
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 114c5e
+
+Function114c5e: ; 114c5e
+ ld de, PartyMon5Defense
+ push hl
+.asm_114c62
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_114cc6
+ cp $3d
+ jr nz, .asm_114c62
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp $3f
+ jr nz, .asm_114c62
+ dec de
+ dec de
+.asm_114c75
+ ld a, [hli]
+ cp $3f
+ jr nz, .asm_114c75
+ ld a, [hli]
+ cp $42
+ jr nz, .asm_114cb8
+ inc hl
+ ld bc, NULL
+ push hl
+.asm_114c84
+ inc bc
+ ld a, [hli]
+ cp $3f
+ jr nz, .asm_114c84
+ inc bc
+ ld a, [hli]
+ cp $3d
+ jr nz, .asm_114c84
+ dec bc
+ dec bc
+ ld a, l
+ ld [$dc03], a
+ ld a, h
+ ld [$dc04], a
+ pop hl
+ push de
+ call Function115c49
+ pop de
+ ld h, d
+ ld l, e
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+.asm_114ca6
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_114ca6
+ ld a, [$dc03]
+ ld l, a
+ ld a, [$dc04]
+ ld h, a
+ jr .asm_114c62
+
+.asm_114cb8
+ ld a, $3d
+ ld [de], a
+ inc de
+ ld a, $3f
+ ld [de], a
+ inc de
+.asm_114cc0
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr nz, .asm_114cc0
+
+.asm_114cc6
+ ld [de], a
+ pop hl
+ ld de, PartyMon5Defense
+ ld bc, NULL
+.asm_114cce
+ inc bc
+ ld a, [de]
+ ld [hli], a
+ inc de
+ and a
+ jr z, .asm_114cd7
+ jr .asm_114cce
+
+.asm_114cd7
+ dec bc
+ ret
+
+; 114cd9
+
+Function114cd9: ; 114cd9
+ ld h, d
+ ld l, e
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ push hl
+ call Function1143f3
+ and a
+ jr nz, .asm_114d33
+ ld [$dc03], a
+ ld [$dc04], a
+ ld a, h
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, $dc24
+ call Function114d39
+ ld hl, $dc24
+ call Function114d99
+ pop hl
+ push hl
+rept 4
+ inc hl
+endr
+ ld a, [hld]
+ cp b
+ jr c, .asm_114d2d
+ jr z, .asm_114d29
+.asm_114d11
+ pop hl
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld hl, PartyMon5Defense
+ call Function115d6a
+ xor a
+ jp Function11425c
+
+.asm_114d29
+ ld a, [hli]
+ cp c
+ jr nc, .asm_114d11
+
+.asm_114d2d
+ ld b, $83
+ jr .asm_114d33
+
+ ld b, $82
+
+.asm_114d33
+ pop hl
+ ld a, $1
+ jp Function11425c
+
+; 114d39
+
+Function114d39: ; 114d39
+.asm_114d39
+ ld a, [$dc04]
+ and a
+ jr nz, .asm_114d4a
+ ld a, [de]
+ cp $28
+ jr z, .asm_114d55
+ cp $22
+ jr z, .asm_114d55
+ jr .asm_114d7f
+
+.asm_114d4a
+ ld a, [de]
+ cp $29
+ jr z, .asm_114d5f
+ cp $22
+ jr z, .asm_114d6f
+ jr .asm_114d84
+
+.asm_114d55
+ ld [$dc03], a
+ ld a, $1
+ ld [$dc04], a
+ jr .asm_114d84
+
+.asm_114d5f
+ ld a, [$dc03]
+ cp $28
+ jr nz, .asm_114d84
+ xor a
+ ld [$dc03], a
+ ld [$dc04], a
+ jr .asm_114d84
+
+.asm_114d6f
+ ld a, [$dc03]
+ cp $22
+ jr nz, .asm_114d84
+ xor a
+ ld [$dc03], a
+ ld [$dc04], a
+ jr .asm_114d84
+
+.asm_114d7f
+ cp $20
+ jr z, .asm_114d84
+ ld [hli], a
+
+.asm_114d84
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114d96
+ inc e
+ jr nz, .asm_114d39
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ jr .asm_114d39
+
+.asm_114d96
+ xor a
+ ld [hli], a
+ ret
+
+; 114d99
+
+Function114d99: ; 114d99
+ ld de, PartyMon5Defense
+ xor a
+ ld [de], a
+.asm_114d9e
+ ld a, [hli]
+ call Function114df1
+ and a
+ jr z, .asm_114dde
+ cp $40
+ jr nz, .asm_114d9e
+ dec hl
+.asm_114daa
+ dec hl
+ ld a, [hl]
+ call Function114e2d
+ and a
+ jr z, .asm_114daa
+ inc hl
+ push hl
+ ld b, $0
+.asm_114db6
+ ld a, [hli]
+ cp $40
+ jr z, .asm_114dc1
+ call Function114e2d
+ and a
+ jr nz, .asm_114dc4
+
+.asm_114dc1
+ inc b
+ jr .asm_114db6
+
+.asm_114dc4
+ pop hl
+ ld a, [PartyMon5Defense]
+ and a
+ jr z, .asm_114dd2
+ ld a, $2c
+ inc de
+ ld [de], a
+ ld a, [PartyMon5Defense]
+
+.asm_114dd2
+ inc a
+ ld [PartyMon5Defense], a
+.asm_114dd6
+ inc de
+ ld a, [hli]
+ ld [de], a
+ dec b
+ jr nz, .asm_114dd6
+ jr .asm_114d9e
+
+.asm_114dde
+ inc de
+ xor a
+ ld [de], a
+ ld a, $dd
+ cpl
+ ld h, a
+ ld a, $c8
+ cpl
+ ld l, a
+ inc hl
+ add hl, de
+ ld b, h
+ ld c, l
+ inc bc
+ inc bc
+ xor a
+ ret
+
+; 114df1
+
+Function114df1: ; 114df1
+ cp $1b
+ ret nz
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $24
+ jr nz, .asm_114e09
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $42
+ jr z, .asm_114e0b
+ cp $40
+ jr z, .asm_114e0b
+ dec hl
+
+.asm_114e09
+ dec hl
+ ret
+
+.asm_114e0b
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $1b
+ jr nz, .asm_114e0b
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $28
+ jr nz, .asm_114e0b
+ ld a, [hli]
+ and a
+ jr z, .asm_114e2b
+ cp $42
+ jr z, .asm_114e29
+ cp $4a
+ jr z, .asm_114e29
+ jr .asm_114e0b
+
+.asm_114e29
+ ld a, [hli]
+ ret
+
+.asm_114e2b
+ xor a
+ ret
+
+; 114e2d
+
+Function114e2d: ; 114e2d
+ cp $30
+ jr c, .asm_114e45
+ cp $40
+ jr c, .asm_114e58
+ cp $41
+ jr c, .asm_114e45
+ cp $5b
+ jr c, .asm_114e58
+ cp $61
+ jr c, .asm_114e45
+ cp $7b
+ jr c, .asm_114e58
+
+.asm_114e45
+ cp $20
+ jr z, .asm_114e58
+ cp $2d
+ jr z, .asm_114e58
+ cp $2e
+ jr z, .asm_114e58
+ cp $5f
+ jr z, .asm_114e58
+.asm_114e55
+ ld a, $1
+ ret
+
+.asm_114e58
+ cp $3c
+ jr z, .asm_114e55
+ cp $3e
+ jr z, .asm_114e55
+ xor a
+ ret
+
+; 114e62
+
+Function114e62: ; 114e62
+ ld a, c
+ and a
+ jr nz, .asm_114e6f
+ ld a, [wStartDay]
+ and a
+ jp z, Function11425c
+ jr .asm_114e76
+
+.asm_114e6f
+ xor a
+ ld [wStartDay], a
+ call Function114ee9
+
+.asm_114e76
+ call Function114f0a
+ cp $ff
+ jp z, Function11425c
+ and a
+ jr nz, .asm_114e99
+ call Function114ea0
+ and a
+ jr nz, .asm_114e99
+ ld hl, $dc09
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ jp Function11425c
+
+.asm_114e99
+ ld a, $1
+ ld b, $83
+ jp Function11425c
+
+; 114ea0
+
+Function114ea0: ; 114ea0
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, $d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_114edb
+ inc e
+ call z, Function114ee0
+ ld a, $a
+ ld [de], a
+ dec bc
+ inc e
+ call z, Function114ee0
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ld [wStartDay], a
+ ret
+
+.asm_114edb
+ ld a, $1
+ ld b, $83
+ ret
+
+; 114ee0
+
+Function114ee0: ; 114ee0
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 114ee9
+
+Function114ee9: ; 114ee9
+ ld hl, $dc03
+ ld a, b
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld c, a
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld b, a
+ ld [hli], a
+ inc de
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ret
+
+; 114f0a
+
+Function114f0a: ; 114f0a
+ call Function114f39
+ and a
+ jr nz, .asm_114f26
+ ld a, [$dc03]
+ cp $6
+ jr c, .asm_114f21
+ cp $c
+ jr z, .asm_114f23
+ call Function114f59
+ and a
+ jr nz, .asm_114f23
+
+.asm_114f21
+ xor a
+ ret
+
+.asm_114f23
+ ld a, $1
+ ret
+
+.asm_114f26
+ call Function114f59
+ and a
+ jr nz, .asm_114f23
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ and a
+ jr z, .asm_114f21
+ ld a, $ff
+ ret
+
+; 114f39
+
+Function114f39: ; 114f39
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld a, [de]
+ and a
+ jr z, .asm_114f58
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, $1
+ ret
+
+.asm_114f58
+ ret
+
+; 114f59
+
+Function114f59: ; 114f59
+ ld a, [wStartDay]
+ and a
+ jr nz, .asm_114f7c
+ ld a, [$dc03]
+ cp $11
+ jr z, .asm_114fa7
+ add a
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_114011
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Function115020
+ and a
+ jr nz, .asm_114fe7
+ ld a, $1
+ ld [wStartDay], a
+
+.asm_114f7c
+ ld a, [$dc03]
+ cp $5
+ jr c, .asm_114fc9
+ jr z, .asm_114fec
+ cp $8
+ jr c, .asm_114fa5
+ jr z, .asm_114ff4
+ cp $b
+ jr c, .asm_114fa5
+ jr z, .asm_114ffc
+ cp $c
+ jr z, .asm_115007
+ cp $d
+ jr z, .asm_114fa5
+ cp $10
+ jr c, .asm_115015
+ jr z, .asm_114fa5
+ cp $12
+ jr c, .asm_114fa5
+ jr .asm_114fe7
+
+.asm_114fa5
+ xor a
+ ret
+
+.asm_114fa7
+ ld hl, Bed
+ ld c, [hl]
+ inc hl
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ call Function115d53
+ ld hl, $dc24
+ call Function115020
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_114fc9
+ call Function115062
+ and a
+ jr nz, .asm_114fe7
+ ld a, [$dc04]
+ dec a
+ ld [$dc04], a
+ and a
+ jr z, .asm_114fdf
+ call Function114f39
+ and a
+ jr nz, .asm_114fc9
+
+.asm_114fdf
+ ld a, [$dc05]
+ ld [$dc04], a
+ jr .asm_11501e
+
+.asm_114fe7
+ ld a, $1
+ ld b, $83
+ ret
+
+.asm_114fec
+ call Function115062
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_114ff4
+ call Function115179
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_114ffc
+ ld hl, String_114000
+ call Function115217
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_115007
+ call Function11528f
+ ld hl, $dc24
+ call Function115217
+ and a
+ jr nz, .asm_114fe7
+ jr .asm_11501e
+
+.asm_115015
+ ld hl, String_114000
+ call Function115217
+ and a
+ jr nz, .asm_114fe7
+
+.asm_11501e
+ xor a
+ ret
+
+; 115020
+
+Function115020: ; 115020
+ push hl
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ pop hl
+.asm_115036
+ ld a, [hli]
+ and a
+ jr z, .asm_115046
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115056
+ inc e
+ call z, Function115059
+ jr .asm_115036
+
+.asm_115046
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+.asm_115056
+ ld a, $1
+ ret
+
+; 115059
+
+Function115059: ; 115059
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115062
+
+Function115062: ; 115062
+ ld hl, Bed
+ ld a, [hli]
+ and a
+ jr z, .asm_1150ae
+ ld c, a
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $0
+ ld hl, $dc24
+ ld a, [wStartDay]
+ cp $1
+ jr z, .asm_11509b
+ cp $2
+ jr z, .asm_115098
+ cp $3
+ jr nz, .asm_1150b2
+ ld a, $2c
+ ld [hli], a
+ ld a, $d
+ ld [hli], a
+ ld a, $a
+ ld [hli], a
+ ld a, $9
+ ld [hli], a
+ jr .asm_11509b
+
+.asm_115098
+ ld a, $2c
+ ld [hli], a
+
+.asm_11509b
+ call Function115d53
+ call Function1150b3
+ call Function115136
+ ld a, [wStartDay]
+ inc a
+ cp $4
+ jr nz, .asm_1150ae
+ ld a, $2
+
+.asm_1150ae
+ ld [wStartDay], a
+ xor a
+
+.asm_1150b2
+ ret
+
+; 1150b3
+
+Function1150b3: ; 1150b3
+ ld hl, $dc24
+ ld de, PartyMon5Defense
+ ld b, $0
+.asm_1150bb
+ ld c, $0
+ ld a, [hli]
+ cp $1b
+ jr z, .asm_1150c9
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_115133
+ jr .asm_1150bb
+
+.asm_1150c9
+ inc c
+ ld a, [hl]
+ cp $24
+ jr nz, .asm_1150bb
+ inc hl
+ inc c
+ ld a, [hl]
+ cp $42
+ jr z, .asm_1150dc
+ cp $40
+ jr z, .asm_1150dc
+ jr .asm_1150bb
+
+.asm_1150dc
+ push hl
+.asm_1150dd
+ inc c
+ ld a, [hli]
+ and a
+ jr z, .asm_115133
+ cp $1b
+ jr nz, .asm_1150dd
+ inc c
+ ld a, [hli]
+ cp $28
+ jr nz, .asm_1150dd
+ inc c
+ ld a, [hli]
+ cp $42
+ jr z, .asm_1150f8
+ cp $4a
+ jr z, .asm_1150f8
+ jr .asm_1150dd
+
+.asm_1150f8
+ ld a, l
+ ld [Console], a
+ ld a, h
+ ld [LeftOrnament], a
+ ld hl, String_114232
+.asm_115103
+ ld a, [hli]
+ and a
+ jr z, .asm_11510b
+ ld [de], a
+ inc de
+ jr .asm_115103
+
+.asm_11510b
+ pop hl
+ dec hl
+ dec hl
+ push de
+ call Function1158c2
+ pop de
+ ld h, d
+ ld l, e
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+.asm_115119
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115119
+ ld a, $3f
+ ld [de], a
+ inc de
+ ld a, $3d
+ ld [de], a
+ inc de
+ ld a, [Console]
+ ld l, a
+ ld a, [LeftOrnament]
+ ld h, a
+ jr .asm_1150bb
+
+.asm_115133
+ xor a
+ ld [de], a
+ ret
+
+; 115136
+
+Function115136: ; 115136
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld hl, PartyMon5Defense
+.asm_11514d
+ ld a, [hli]
+ and a
+ jr z, .asm_11515d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_11516d
+ inc e
+ call z, Function115170
+ jr .asm_11514d
+
+.asm_11515d
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+.asm_11516d
+ ld a, $1
+ ret
+
+; 115170
+
+Function115170: ; 115170
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115179
+
+Function115179: ; 115179
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld hl, $013f
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [hli]
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, $2d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, [$014c]
+ ld h, a
+ and $f0
+ swap a
+ cp $a
+ jr nc, .asm_1151d8
+ add $30
+ jr .asm_1151da
+
+.asm_1151d8
+ add $37
+
+.asm_1151da
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld a, h
+ and $f
+ cp $a
+ jr nc, .asm_1151f2
+ add $30
+ jr .asm_1151f4
+
+.asm_1151ef
+ ld a, $1
+ ret
+
+.asm_1151f2
+ add $37
+
+.asm_1151f4
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_1151ef
+ inc e
+ call z, Function11520e
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+; 11520e
+
+Function11520e: ; 11520e
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115217
+
+Function115217: ; 115217
+ push hl
+ ld hl, $dc06
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ pop hl
+.asm_11522d
+ ld a, [hli]
+ and a
+ jr z, .asm_11523d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115262
+ inc e
+ call z, Function115286
+ jr .asm_11522d
+
+.asm_11523d
+ ld a, [$dc03]
+ cp $b
+ jr z, .asm_115278
+ cp $c
+ jr z, .asm_115278
+ cp $e
+ jr z, .asm_115252
+ cp $f
+ jr z, .asm_115265
+ jr .asm_115262
+
+.asm_115252
+ ld hl, $dc06
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld a, d
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ xor a
+ ret
+
+.asm_115262
+ ld a, $1
+ ret
+
+.asm_115265
+ ld h, $2
+.asm_115267
+ ld a, $2d
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115262
+ inc e
+ call z, Function115286
+ dec h
+ jr nz, .asm_115267
+ jr .asm_115252
+
+.asm_115278
+ ld a, $22
+ ld [de], a
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115262
+ inc e
+ call z, Function115286
+ jr .asm_115252
+
+; 115286
+
+Function115286: ; 115286
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 11528f
+
+Function11528f: ; 11528f
+ ld hl, Bed
+ ld c, [hl]
+ inc hl
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld hl, $dc24
+.asm_1152a4
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, Function1152af
+ dec c
+ jr nz, .asm_1152a4
+ ld [hl], c
+ ret
+
+; 1152af
+
+Function1152af: ; 1152af
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 1152b8
+
+Function1152b8: ; 1152b8
+ push bc
+ call Function11537d
+ push de
+ ld h, d
+ ld l, e
+ ld a, [hli]
+ ld b, a
+ ld c, $1
+ call Function1153d2
+ pop de
+ and a
+ jr nz, .asm_1152f9
+.asm_1152ca
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+.asm_1152d0
+ ld a, [$dc03]
+ cp $3
+ jr nz, .asm_1152d8
+ push de
+
+.asm_1152d8
+ cp $5
+ jr nz, .asm_1152e7
+ pop hl
+ ld a, [hli]
+ ld b, a
+ ld c, $3
+ call Function1153d2
+ and a
+ jr nz, .asm_1152f9
+
+.asm_1152e7
+ ld a, [de]
+ inc de
+ and a
+ jr nz, .asm_115301
+ ld a, [$dc03]
+ cp $6
+ jr z, .asm_115335
+ inc a
+ ld [$dc03], a
+ jr .asm_1152d0
+
+.asm_1152f9
+ pop hl
+ ld a, $1
+ ld b, $83
+ jp Function11425c
+
+.asm_115301
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+.asm_115307
+ ld [$dc05], a
+ ld a, $1
+ ld [$dc04], a
+ call Function1153b5
+ call Function114f59
+ and a
+ jr nz, .asm_1152f9
+ ld a, [$dc05]
+ dec a
+ jr nz, .asm_115307
+ ld a, [$dc03]
+ inc a
+ ld [$dc03], a
+ call Function114ea0
+ and a
+ jr nz, .asm_1152f9
+ ld [wStartDay], a
+ ld a, [$dc03]
+ cp $6
+ jr nz, .asm_1152ca
+
+.asm_115335
+ call Function1153b5
+ xor a
+ ld [wStartDay], a
+ call Function114f59
+ and a
+ jr nz, .asm_1152f9
+ call Function114ea0
+ and a
+ jr nz, .asm_1152f9
+ ld a, [$dc03]
+ inc a
+ ld [$dc03], a
+ cp $9
+ jr nz, .asm_115335
+ pop bc
+ ld a, b
+ and a
+ jr z, .asm_11536b
+ call Function1153b5
+ xor a
+ ld [wStartDay], a
+ call Function114f59
+ and a
+ jr nz, .asm_1152f9
+ call Function114ea0
+ and a
+ jr nz, .asm_1152f9
+
+.asm_11536b
+ ld hl, $dc09
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ jp Function11425c
+
+; 11537d
+
+Function11537d: ; 11537d
+ ld hl, $dc06
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld b, a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc hl
+ ld a, [de]
+ ld [hld], a
+ ld a, b
+ ld [hli], a
+ inc de
+ ld hl, RightOrnament
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ xor a
+ ld [$dc03], a
+ ld [wStartDay], a
+ ret
+
+; 1153b5
+
+Function1153b5: ; 1153b5
+ ld hl, $dc0d
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ inc hl
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ inc de
+ ld a, [de]
+ ld [Bed], a
+ inc de
+ ld hl, $dc0d
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+
+; 1153d2
+
+Function1153d2: ; 1153d2
+ ld a, [$dc03]
+ ld d, a
+ ld a, [$dc04]
+ ld e, a
+ push de
+ xor a
+ ld [$dc03], a
+ ld [$dc04], a
+ ld a, $24
+ ld [Console], a
+ ld a, $dc
+ ld [LeftOrnament], a
+ push bc
+ jr .asm_1153f4
+
+.asm_1153ef
+ ld a, [hli]
+ and a
+ jr z, .asm_115426
+ ld b, a
+
+.asm_1153f4
+ push bc
+.asm_1153f5
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld c, [hl]
+ inc hl
+ push hl
+ ld a, [Console]
+ ld l, a
+ ld a, [LeftOrnament]
+ ld h, a
+ push bc
+ ld b, $0
+ call Function115d53
+ inc hl
+ ld [hl], a
+ pop bc
+ ld a, l
+ ld e, a
+ ld [Console], a
+ ld a, h
+ ld d, a
+ ld [LeftOrnament], a
+ dec b
+ jr z, .asm_11542b
+ pop hl
+ jr .asm_1153f5
+
+.asm_115426
+ dec c
+ jr nz, .asm_1153ef
+ jr .asm_115430
+
+.asm_11542b
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_1153ef
+
+.asm_115430
+ ld a, l
+ ld [Console], a
+ ld a, h
+ ld [LeftOrnament], a
+ xor a
+ ld [de], a
+ ld hl, $dc24
+.asm_11543d
+ ld a, [hli]
+ and a
+ jr nz, .asm_11543d
+ ld a, [hl]
+ and a
+ jr z, .asm_115457
+ dec hl
+ ld a, $2c
+ ld [hli], a
+ jr .asm_11543d
+
+.asm_11544b
+ pop hl
+ ld a, h
+ ld [$dc03], a
+ ld a, l
+ ld [$dc04], a
+ ld a, $1
+ ret
+
+.asm_115457
+ ld hl, $dc24
+ call Function114d99
+ ld hl, $ddc8
+.asm_115460
+ ld a, [hli]
+ and a
+ jr z, .asm_11546d
+ cp $2c
+ jr nz, .asm_115460
+ dec hl
+ xor a
+ ld [hli], a
+ jr .asm_115460
+
+.asm_11546d
+ pop de
+ ld a, e
+ cp $1
+ jr z, .asm_115477
+ xor a
+ ld [hli], a
+ jr .asm_115478
+
+.asm_115477
+ dec bc
+
+.asm_115478
+ ld hl, $dc18
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, b
+ cp h
+ jr c, .asm_11548c
+ jr nz, .asm_11544b
+ ld a, c
+ cp l
+ jr c, .asm_11548c
+ jr z, .asm_11548c
+ jr .asm_11544b
+
+.asm_11548c
+ ld hl, $dc18
+ ld a, c
+ cpl
+ ld e, a
+ ld a, b
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld de, $dc18
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ ld hl, RightOrnament
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $ddc8
+ call Function115d6a
+ ld hl, RightOrnament
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [Console]
+ ld e, a
+ ld a, [LeftOrnament]
+ ld d, a
+ pop hl
+ ld a, h
+ ld [$dc03], a
+ ld a, l
+ ld [$dc04], a
+ xor a
+ ret
+
+; 1154d4
+
+Function1154d4: ; 1154d4
+ xor a
+ ld [wStartDay], a
+ call Function1155af
+ call Function11560a
+ and a
+ jr nz, .asm_11552c
+ call Function1155d1
+ ld a, [RightOrnament]
+ dec a
+ ld [RightOrnament], a
+ and a
+ jp z, .asm_115577
+ cp $1
+ jr nz, .asm_115531
+ xor a
+ ld [wDailyResetTimer], a
+.asm_1154f7
+ ld a, [BigDoll]
+ cp $2
+ jr z, .asm_115502
+ cp $3
+ jr z, .asm_11550f
+
+.asm_115502
+ ld a, $a
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr z, .asm_11551a
+ jr .asm_11552c
+
+.asm_11550f
+ ld a, $c
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+
+.asm_11551a
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ call Function11560a
+ and a
+ jr z, .asm_1155a0
+
+.asm_11552c
+ ld a, $1
+ jp Function11425c
+
+.asm_115531
+ ld a, $1
+ ld [wDailyResetTimer], a
+ ld a, $b
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+.asm_115547
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ ld a, $e
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ jr .asm_1154f7
+
+.asm_115560
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ ld a, [wDailyResetTimer]
+ and a
+ jr z, .asm_11557d
+ ld a, $f
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+
+.asm_115577
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+
+.asm_11557d
+ ld a, $10
+ ld [$dc03], a
+ call Function114f59
+ and a
+ jr nz, .asm_11552c
+ call Function114ea0
+ and a
+ jr nz, .asm_11552c
+ ld hl, $dc09
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ jp Function11425c
+
+.asm_1155a0
+ ld a, [RightOrnament]
+ dec a
+ ld [RightOrnament], a
+ and a
+ jr z, .asm_115560
+ call Function1155d1
+ jr .asm_115547
+
+; 1155af
+
+Function1155af: ; 1155af
+ ld hl, $dc06
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld b, a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld [hl], b
+ inc hl
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [RightOrnament], a
+ inc de
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ call Function1155d1
+ ret
+
+; 1155d1
+
+Function1155d1: ; 1155d1
+ ld a, [$dc0d]
+ ld l, a
+ ld a, [$dc0e]
+ ld h, a
+ ld a, [hli]
+ ld [BigDoll], a
+ cp $3
+ jr nz, .asm_1155f0
+ ld de, Carpet
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, [hli]
+ ld [Bed], a
+
+.asm_1155f0
+ ld de, $dc17
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ld a, l
+ ld [$dc0d], a
+ ld a, h
+ ld [$dc0e], a
+ ret
+
+; 11560a
+
+Function11560a: ; 11560a
+ ld a, [$dc06]
+ ld [wCurrentMapSignpostCount], a
+ ld a, [$dc17]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, $dc1a
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, [wCurrMapCallbackCount]
+ cp b
+ jp c, .asm_1156b1
+ jr nz, .asm_115631
+ ld a, [$dc09]
+ cp c
+ jp c, .asm_1156b1
+
+.asm_115631
+ ld a, b
+ or c
+ jr z, .asm_1156a9
+ ld a, [$dc09]
+ ld l, a
+ ld a, [wCurrMapCallbackCount]
+ ld h, a
+ ld a, c
+ cpl
+ ld e, a
+ ld a, b
+ cpl
+ ld d, a
+ inc de
+ add hl, de
+ ld a, l
+ ld [$dc09], a
+ ld a, h
+ ld [wCurrMapCallbackCount], a
+.asm_11564d
+ ld a, $3
+ cp b
+ jr c, .asm_1156b6
+ jr nz, .asm_115659
+ ld a, $db
+ cp c
+ jr c, .asm_1156b6
+
+.asm_115659
+ ld a, [$dc1a]
+ ld e, a
+ ld a, [$dc1b]
+ ld d, a
+ ld a, c
+ cpl
+ ld l, a
+ ld a, b
+ cpl
+ ld h, a
+ inc hl
+ add hl, de
+ ld a, l
+ ld [$dc1a], a
+ ld a, h
+ ld [$dc1b], a
+ push bc
+ ld hl, $dc18
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ call Function115d53
+ ld hl, $dc18
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ pop bc
+ ld a, [wCurrentMapSignpostCount]
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld hl, wCurrMapTriggerCount
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ call Function115d6a
+ ld hl, wCurrMapTriggerCount
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $dc1a
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld a, b
+ or c
+ jr nz, .asm_11564d
+
+.asm_1156a9
+ ld a, [wCurrentMapSignpostCount]
+ ld [$dc06], a
+ xor a
+ ret
+
+.asm_1156b1
+ ld a, $1
+ ld b, $83
+ ret
+
+.asm_1156b6
+ ld a, $3
+ cpl
+ ld h, a
+ ld a, $db
+ cpl
+ ld l, a
+ add hl, bc
+ ld de, $dc1a
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ ld bc, $03db
+ jr .asm_115659
+
+; 1156cc
+
+Function1156cc: ; 1156cc
+ ld a, [wStartDay]
+ and a
+ jp z, Function11425c
+ cp $2
+ jr z, .asm_1156fa
+ cp $3
+ jr z, .asm_1156fd
+ cp $4
+ jr z, .asm_1156fd
+ cp $5
+ jr z, .asm_115716
+ cp $ff
+ jr z, .asm_11572b
+ cp $1
+ jp nz, Function11425c
+ call Function115732
+ call Function11575c
+ ld a, h
+ ld [Poster], a
+ ld a, l
+ ld [Plant], a
+
+.asm_1156fa
+ call Function1157d0
+
+.asm_1156fd
+ call Function11581e
+ and a
+ jr nz, .asm_11572b
+ ld a, [wStartDay]
+ cp $5
+ jr z, .asm_115716
+ ld a, [Poster]
+ ld h, a
+ ld a, [Plant]
+ ld l, a
+ xor a
+ jp Function11425c
+
+.asm_115716
+ ld hl, wCurrMapCallbackCount
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ ld [wStartDay], a
+ jp Function11425c
+
+.asm_11572b
+ ld a, $1
+ ld b, $83
+ jp Function11425c
+
+; 115732
+
+Function115732: ; 115732
+ ld hl, $dc02
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ dec de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ ret
+
+; 11575c
+
+Function11575c: ; 11575c
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, $10
+ ld b, $0
+ ld c, b
+ ld d, b
+ ld a, $3
+.asm_11576a
+ rl l
+ rl h
+ rl d
+ cp d
+ jr c, .asm_11577c
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_11576a
+ jr .asm_11578a
+
+.asm_11577c
+ ld a, d
+ sub $3
+ ld d, a
+ ld a, $3
+ scf
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_11576a
+
+.asm_11578a
+ ld a, d
+ and a
+ jr z, .asm_11578f
+ inc bc
+
+.asm_11578f
+ sla c
+ rl b
+ sla c
+ rl b
+ ld h, b
+ ld l, c
+ push hl
+ ld e, $10
+ ld b, $0
+ ld c, b
+ ld d, b
+ ld a, $40
+.asm_1157a2
+ rl l
+ rl h
+ rl d
+ cp d
+ jr c, .asm_1157b4
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_1157a2
+ jr .asm_1157c3
+
+.asm_1157b4
+ ld a, d
+ sub $40
+ ld d, a
+ ld a, $40
+ scf
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_1157a2
+ inc bc
+
+.asm_1157c3
+ and a
+ sla c
+ rl b
+ pop hl
+ add hl, bc
+ ld a, $2
+ ld [wStartDay], a
+ ret
+
+; 1157d0
+
+Function1157d0: ; 1157d0
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ cp h
+ jr c, .asm_1157eb
+ jr nz, .asm_1157e9
+ ld a, c
+ cp l
+ jr c, .asm_1157eb
+ jr z, .asm_1157eb
+
+.asm_1157e9
+ ld b, h
+ ld c, l
+
+.asm_1157eb
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [$dc05], a
+ ld a, h
+ ld [$dc06], a
+ ld a, h
+ or l
+ jr nz, .asm_11580f
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $4
+ ld [wStartDay], a
+ ret
+
+.asm_11580f
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $3
+ ld [wStartDay], a
+ ret
+
+; 11581e
+
+Function11581e: ; 11581e
+ ld a, [wStartDay]
+ and a
+ ret z
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ ld hl, $dc02
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc24
+ push bc
+ call Function115d53
+ pop bc
+ ld hl, $dc02
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $dc24
+ ld de, PartyMon5Defense
+ call Function1158c2
+ ld hl, PartyMon5Defense
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ push hl
+ ld a, [wCurrMapCallbackCount]
+ ld l, a
+ ld a, [wCurrMapCallbackHeaderPointer]
+ ld h, a
+ cp b
+ jr c, .asm_1158bb
+ jr nz, .asm_11586e
+ ld a, l
+ cp c
+ jr c, .asm_1158bb
+
+.asm_11586e
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [wCurrMapCallbackCount], a
+ ld a, h
+ ld [wCurrMapCallbackHeaderPointer], a
+ pop bc
+ pop hl
+ ld hl, wCurrMapTriggerCount
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, PartyMon5Speed
+ call Function115d6a
+ ld hl, wCurrMapTriggerCount
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ld a, [wStartDay]
+ cp $3
+ jr z, .asm_1158b4
+ cp $4
+ jr z, .asm_1158ad
+ jr .asm_1158bc
+
+.asm_1158ad
+ ld a, $5
+ ld [wStartDay], a
+ jr .asm_1158b9
+
+.asm_1158b4
+ ld a, $2
+ ld [wStartDay], a
+
+.asm_1158b9
+ xor a
+ ret
+
+.asm_1158bb
+ pop hl
+
+.asm_1158bc
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+; 1158c2
+
+Function1158c2: ; 1158c2
+ ld a, e
+ ld [SwarmFlags], a
+ ld a, d
+ ld [$dc21], a
+ xor a
+ ld [$dc22], a
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ ld c, e
+ ld b, d
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ xor a
+ ld [WeeklyFlags], a
+
+.asm_1158e5
+ ld b, $3
+ push hl
+ ld hl, $dc1b
+.asm_1158eb
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec b
+ jr nz, .asm_1158eb
+ ld a, [$dc19]
+ ld c, a
+ ld a, [$dc1a]
+ ld b, a
+ xor a
+ or b
+ jr nz, .asm_115914
+ ld a, $2
+ cp c
+ jr c, .asm_115914
+ push hl
+ dec hl
+ ld a, c
+ ld [WeeklyFlags], a
+.asm_115908
+ xor a
+ ld [hld], a
+ inc c
+ ld a, $3
+ cp c
+ jr nz, .asm_115908
+ pop hl
+ ld bc, $0003
+
+.asm_115914
+ dec bc
+ dec bc
+ dec bc
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ push de
+ push hl
+ ld hl, SwarmFlags
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+rept 4
+ inc de
+endr
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop hl
+ dec hl
+ ld c, [hl]
+ dec hl
+ ld b, [hl]
+ dec hl
+ ld a, [hl]
+ ld d, a
+ srl a
+ srl a
+ ld [hli], a
+ ld a, $3
+ and d
+ ld d, a
+ ld a, $f0
+ and b
+ or d
+ swap a
+ ld [hli], a
+ ld a, $f
+ and b
+ ld d, a
+ ld a, c
+ and $c0
+ or d
+ rlca
+ rlca
+ ld [hli], a
+ ld a, $3f
+ and c
+ ld [hld], a
+ dec hl
+ dec hl
+ pop de
+ ld b, h
+ ld c, l
+ pop hl
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [bc]
+ inc bc
+ call Function1159dc
+ ld [hli], a
+ ld a, [$dc22]
+ inc a
+ cp $10
+ jr nz, .asm_1159b1
+ push af
+ push bc
+ ld a, [$dc19]
+ ld b, a
+ ld a, [$dc1a]
+ or b
+ jr nz, .asm_115998
+ ld a, [$dc05]
+ ld b, a
+ ld a, [$dc06]
+ or b
+ jr nz, .asm_115998
+ pop bc
+ pop af
+ jr .asm_1159c4
+
+.asm_115998
+ pop bc
+ pop af
+ ld a, $d
+ ld [hli], a
+ ld a, $a
+ ld [hli], a
+ push hl
+ ld hl, SwarmFlags
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hli]
+ ld c, a
+ ld b, [hl]
+ inc bc
+ inc bc
+ ld a, b
+ ld [hld], a
+ ld [hl], c
+ pop hl
+ xor a
+
+.asm_1159b1
+ ld [$dc22], a
+ ld a, [$dc19]
+ cp $0
+ jp nz, .asm_1158e5
+ ld a, [$dc1a]
+ cp $0
+ jp nz, .asm_1158e5
+
+.asm_1159c4
+ ld a, [WeeklyFlags]
+ cp $0
+ jr z, .asm_1159d8
+ push hl
+ dec hl
+ ld b, a
+.asm_1159ce
+ ld a, $3d
+ ld [hld], a
+ inc b
+ ld a, $3
+ cp b
+ jr nz, .asm_1159ce
+ pop hl
+
+.asm_1159d8
+ ld a, $0
+ ld [hl], a
+ ret
+
+; 1159dc
+
+Function1159dc: ; 1159dc
+ cp $1a
+ jr c, .asm_1159ef
+ cp $34
+ jr c, .asm_1159f2
+ cp $3e
+ jr c, .asm_1159f5
+ cp $3e
+ jr z, .asm_1159f8
+ ld a, $2f
+ ret
+
+.asm_1159ef
+ add $41
+ ret
+
+.asm_1159f2
+ add $47
+ ret
+
+.asm_1159f5
+ sub $4
+ ret
+
+.asm_1159f8
+ ld a, $2b
+ ret
+
+; 1159fb
+
+Function1159fb: ; 1159fb
+ ld a, [wStartDay]
+ and a
+ jp z, Function11425c
+ cp $2
+ jr z, .asm_115a29
+ cp $3
+ jr z, .asm_115a2c
+ cp $4
+ jr z, .asm_115a2c
+ cp $5
+ jr z, .asm_115a45
+ cp $ff
+ jr z, .asm_115a5a
+ cp $1
+ jp nz, Function11425c
+ call Function115732
+ call Function115a5f
+ ld a, h
+ ld [Plant], a
+ ld a, l
+ ld [Poster], a
+
+.asm_115a29
+ call Function115ab0
+
+.asm_115a2c
+ call Function115b00
+ and a
+ jr nz, .asm_115a5a
+ ld a, [wStartDay]
+ cp $5
+ jr z, .asm_115a45
+ ld a, [Poster]
+ ld h, a
+ ld a, [Plant]
+ ld l, a
+ xor a
+ jp Function11425c
+
+.asm_115a45
+ ld hl, wCurrMapCallbackCount
+ ld a, [hli]
+ cpl
+ ld e, a
+ ld a, [hli]
+ cpl
+ ld d, a
+ inc de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ xor a
+ ld [wStartDay], a
+ jp Function11425c
+
+.asm_115a5a
+ ld a, $1
+ jp Function11425c
+
+; 115a5f
+
+Function115a5f: ; 115a5f
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ ld e, $10
+ ld b, $0
+ ld c, b
+ ld d, b
+ ld a, $42
+.asm_115a6e
+ rl l
+ rl h
+ rl d
+ cp d
+ jr c, .asm_115a80
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_115a6e
+ jr .asm_115a8e
+
+.asm_115a80
+ ld a, d
+ sub $42
+ ld d, a
+ ld a, $42
+ scf
+ rl c
+ rl b
+ dec e
+ jr nz, .asm_115a6e
+
+.asm_115a8e
+ sla c
+ rl b
+ pop hl
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ srl h
+ rr l
+ srl h
+ rr l
+ ld b, h
+ ld c, l
+ sla c
+ rl b
+ add hl, bc
+ ld a, $2
+ ld [wStartDay], a
+ ret
+
+; 115ab0
+
+Function115ab0: ; 115ab0
+ ld hl, $dc05
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ cp h
+ jr c, .asm_115acb
+ jr nz, .asm_115ac9
+ ld a, c
+ cp l
+ jr c, .asm_115acb
+ jr z, .asm_115acb
+
+.asm_115ac9
+ ld b, h
+ ld c, l
+
+.asm_115acb
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [$dc05], a
+ ld a, h
+ ld [$dc06], a
+ ld a, h
+ or l
+ jr nz, .asm_115af0
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $4
+ ld [wStartDay], a
+ xor a
+ ret
+
+.asm_115af0
+ pop bc
+ ld a, c
+ ld [$dc0e], a
+ ld a, b
+ ld [Bed], a
+ ld a, $3
+ ld [wStartDay], a
+ xor a
+ ret
+
+; 115b00
+
+Function115b00: ; 115b00
+ ld a, [wStartDay]
+ and a
+ ret z
+ ld a, [$dc0e]
+ ld c, a
+ ld a, [Bed]
+ ld b, a
+ ld hl, $dc02
+ ld a, [hli]
+ ld [$dc00], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, PartyMon5Defense
+ push bc
+ call Function115bc8
+ pop hl
+ and a
+ jr z, .asm_115b43
+ cp $2
+ jr z, .asm_115b3b
+ ld a, [wStartDay]
+ cp $4
+ jr z, .asm_115b43
+ inc hl
+ inc hl
+ jr .asm_115b43
+
+.asm_115b36
+ pop hl
+ ld b, $83
+ jr .asm_115b3d
+
+.asm_115b3b
+ ld b, $81
+
+.asm_115b3d
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+.asm_115b43
+ ld a, [Carpet]
+ add a
+ cpl
+ ld c, a
+ ld b, $ff
+ inc bc
+ add hl, bc
+ ld b, h
+ ld c, l
+ ld hl, $dc02
+ ld a, [$dc00]
+ ld [hli], a
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, PartyMon5Defense
+ ld de, $dc24
+ call Function115c49
+ ld hl, $dc24
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ push hl
+ ld a, [wCurrMapCallbackCount]
+ ld l, a
+ ld a, [wCurrMapCallbackHeaderPointer]
+ ld h, a
+ cp b
+ jr c, .asm_115b36
+ jr nz, .asm_115b7b
+ ld a, l
+ cp c
+ jr c, .asm_115b36
+
+.asm_115b7b
+ push bc
+ ld a, b
+ cpl
+ ld b, a
+ ld a, c
+ cpl
+ ld c, a
+ inc bc
+ add hl, bc
+ ld a, l
+ ld [wCurrMapCallbackCount], a
+ ld a, h
+ ld [wCurrMapCallbackHeaderPointer], a
+ pop bc
+ pop hl
+ ld hl, wCurrMapTriggerCount
+ ld a, [hli]
+ ld [wCurrentMapSignpostCount], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, $dc26
+ call Function115d6a
+ ld hl, wCurrMapTriggerCount
+ ld a, [wCurrentMapSignpostCount]
+ ld [hli], a
+ ld a, e
+ ld [hli], a
+ ld [hl], d
+ ld a, [wStartDay]
+ cp $3
+ jr z, .asm_115bc1
+ cp $4
+ jr z, .asm_115bba
+ jr .asm_115b3b
+
+.asm_115bba
+ ld a, $5
+ ld [wStartDay], a
+ jr .asm_115bc6
+
+.asm_115bc1
+ ld a, $2
+ ld [wStartDay], a
+
+.asm_115bc6
+ xor a
+ ret
+
+; 115bc8
+
+Function115bc8: ; 115bc8
+ xor a
+ ld [Carpet], a
+.asm_115bcc
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c46
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c1b
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c46
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c3a
+ ld a, [de]
+ cp $d
+ jr nz, .asm_115bcc
+ inc e
+ call z, .Function115c3d
+ ld a, [de]
+ cp $a
+ jr nz, .asm_115c46
+ inc e
+ call z, .Function115c3d
+ dec bc
+ ld a, b
+ or c
+ jr z, .asm_115c46
+ ld a, [Carpet]
+ inc a
+ ld [Carpet], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115bcc
+
+.asm_115c1b
+ ld a, [wStartDay]
+ cp $4
+ jr z, .asm_115c33
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, .Function115c3d
+ xor a
+ ld [hl], a
+ ld a, $1
+ ret
+
+.asm_115c33
+ dec hl
+ dec hl
+ xor a
+ ld [hl], a
+ ld a, $1
+ ret
+
+.asm_115c3a
+ xor a
+ ld [hl], a
+ ret
+
+.Function115c3d:
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+.asm_115c46
+ ld a, $2
+ ret
+
+; 115c49
+
+Function115c49: ; 115c49
+ ld a, e
+ ld [WeeklyFlags], a
+ ld a, d
+ ld [SwarmFlags], a
+ xor a
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ ld c, e
+ ld b, d
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+
+.asm_115c64
+ ld a, [$dc1a]
+ or a
+ jr nz, .asm_115c71
+ ld a, [$dc19]
+ cp $4
+ jr c, .asm_115c99
+
+.asm_115c71
+ ld b, $4
+ push hl
+ ld hl, $dc1b
+.asm_115c77
+ ld a, [de]
+ inc de
+ call Function115cfd
+ ld [hli], a
+ dec b
+ jr nz, .asm_115c77
+ ld a, [$dc19]
+ ld c, a
+ ld a, [$dc1a]
+ ld b, a
+rept 4
+ dec bc
+endr
+.asm_115c8c
+ ld a, [de]
+ cp $d
+ jr z, .asm_115c95
+ cp $a
+ jr nz, .asm_115c9f
+
+.asm_115c95
+ inc de
+ dec bc
+ jr .asm_115c8c
+
+.asm_115c99
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+.asm_115c9f
+ ld a, c
+ ld [$dc19], a
+ ld a, b
+ ld [$dc1a], a
+ push de
+ push hl
+ ld hl, WeeklyFlags
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc de
+ inc de
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop hl
+ dec hl
+ ld d, [hl]
+ dec hl
+ ld c, [hl]
+ dec hl
+ ld b, [hl]
+ dec hl
+ ld a, [hl]
+ sla b
+ sla b
+ sla b
+ rla
+ sla b
+ rla
+ ld [hli], a
+ ld [hl], b
+ inc hl
+ rrc c
+ rrc c
+ ld [hl], c
+ dec hl
+ ld a, $f
+ and c
+ or [hl]
+ ld [hli], a
+ ld a, [hli]
+ and $c0
+ or [hl]
+ dec hl
+ ld [hld], a
+ dec hl
+ pop de
+ ld b, h
+ ld c, l
+ pop hl
+ ld a, [bc]
+ ld [hli], a
+ inc bc
+ ld a, [bc]
+ ld [hli], a
+ inc bc
+ ld a, [bc]
+ ld [hli], a
+ ld a, [$dc19]
+ cp $0
+ jp nz, .asm_115c64
+ ld a, [$dc1a]
+ cp $0
+ jp nz, .asm_115c64
+ ret
+
+; 115cfd
+
+Function115cfd: ; 115cfd
+ cp $2b
+ jr c, .asm_115d27
+ jr z, .asm_115d2f
+ cp $2f
+ jr c, .asm_115d27
+ jr z, .asm_115d32
+ cp $30
+ jr c, .asm_115d27
+ cp $3a
+ jr c, .asm_115d35
+ cp $3d
+ jr c, .asm_115d27
+ jr z, .asm_115d38
+ cp $41
+ jr c, .asm_115d27
+ cp $5b
+ jr c, .asm_115d4d
+ cp $61
+ jr c, .asm_115d27
+ cp $7b
+ jr c, .asm_115d50
+
+.asm_115d27
+ pop hl
+ pop hl
+ ld a, $ff
+ ld [wStartDay], a
+ ret
+
+.asm_115d2f
+ ld a, $3e
+ ret
+
+.asm_115d32
+ ld a, $3f
+ ret
+
+.asm_115d35
+ add $4
+ ret
+
+.asm_115d38
+ push de
+ push hl
+ ld a, [WeeklyFlags]
+ ld l, a
+ ld a, [SwarmFlags]
+ ld h, a
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ dec de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ pop hl
+ pop de
+ xor a
+ ret
+
+.asm_115d4d
+ sub $41
+ ret
+
+.asm_115d50
+ sub $47
+ ret
+
+; 115d53
+
+Function115d53: ; 115d53
+.asm_115d53
+ ld a, [de]
+ ld [hli], a
+ inc e
+ call z, Function115d61
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115d53
+ xor a
+ ld [hl], a
+ ret
+
+; 115d61
+
+Function115d61: ; 115d61
+ push bc
+ ld bc, $dc00
+ call Function115d80
+ pop bc
+ ret
+
+; 115d6a
+
+Function115d6a: ; 115d6a
+.asm_115d6a
+ ld a, [hli]
+ ld [de], a
+ inc e
+ call z, Function115d77
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_115d6a
+ xor a
+ ret
+
+; 115d77
+
+Function115d77: ; 115d77
+ push bc
+ ld bc, wCurrentMapSignpostCount
+ call Function115d80
+ pop bc
+ ret
+
+; 115d80
+
+Function115d80: ; 115d80
+ ld e, a
+ ld a, d
+ cp $bf
+ jr z, .asm_115d8b
+ inc d
+ ld a, e
+ ld e, $0
+ ret
+
+.asm_115d8b
+ ld a, [bc]
+ inc a
+ ld [bc], a
+ ld [hFF8C], a
+ ld [MBC3SRamBank], a
+ ld a, e
+ ld d, $a0
+ ld e, $0
+ ret
+
+; 115d99
+
+INCLUDE "mobile/mobile_45_sprite_engine.asm"
+
+; 116567
+
+Function116567: ; 116567
+ ld hl, wc3f7
+ dec [hl]
+ ret nz
+ ld hl, wc3f6
+ inc [hl]
+.asm_116570
+ ld a, $7
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1167eb
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc3f6]
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ cp $fe
+ jr nz, .asm_116595
+ xor a
+ ld [wc3f6], a
+ jr .asm_116570
+
+.asm_116595
+ ld [wc3f5], a
+ ld a, [hl]
+ ld [wc3f7], a
+ ret
+
+; 11659d
+
+Function11659d: ; 11659d
+ ld a, [wc314]
+ cp $12
+ ret nc
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1165af
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+; 1165af
+
+Jumptable_1165af: ; 1165af
+ dw Function11677e
+ dw Function1165d5
+ dw Function1165d8
+ dw Function1165e3
+ dw Function1165f5
+ dw Function116600
+ dw Function116615
+ dw Function116618
+ dw Function116623
+ dw Function116635
+ dw Function116640
+ dw Function116655
+ dw Function11665c
+ dw Function11668d
+ dw Function11669f
+ dw Function1166a2
+ dw Function1166c4
+ dw Function1166d6
+ dw Function1166d6
+; 1165d5
+
+Function1165d5: ; 1165d5
+ call Function11678e
+
+Function1165d8:
+ ld a, $0
+ ld c, a
+ ld a, $ff
+ ld b, a
+ ld a, $a8
+ call Function1166f4
+
+Function1165e3:
+ call Function116747
+ ld a, [wc30e]
+ cp $e8
+ ret nz
+ ld a, $1
+ call Function116780
+ ret c
+ jp Function116797
+
+; 1165f5
+
+Function1165f5: ; 1165f5
+ ld a, $1
+ ld c, a
+ ld a, $1
+ ld b, a
+ ld a, $e8
+ call Function1166f4
+
+Function116600:
+ call Function116747
+ ld a, [wc30e]
+ cp $a8
+ ret nz
+ ld a, $1
+ call Function116780
+ ret c
+ ld a, $2
+ ld [wc314], a
+ ret
+
+; 116615
+
+Function116615: ; 116615
+ call Function11678e
+
+Function116618:
+ ld a, $3
+ ld c, a
+ ld a, $1
+ ld b, a
+ ld a, $28
+ call Function11671f
+
+Function116623:
+ call Function116747
+ ld a, [wc30f]
+ cp $a0
+ ret nz
+ ld a, $6
+ call Function116780
+ ret c
+ jp Function116797
+
+; 116635
+
+Function116635: ; 116635
+ ld a, $2
+ ld c, a
+ ld a, $ff
+ ld b, a
+ ld a, $a0
+ call Function11671f
+
+Function116640:
+ call Function116747
+ ld a, [wc30f]
+ cp $28
+ ret nz
+ ld a, $6
+ call Function116780
+ ret c
+ ld a, $7
+ ld [wc314], a
+ ret
+
+; 116655
+
+Function116655: ; 116655
+ xor a
+ ld [wc314 + 3], a
+ call Function11678e
+
+Function11665c:
+ ld hl, wc314 + 3
+ ld a, $1
+ xor [hl]
+ ld [hl], a
+ add $4
+ ld c, a
+ call Function11679c
+ ld a, [wc314 + 3]
+ and a
+ jr nz, .asm_116673
+ ld a, $48
+ jr .asm_116675
+
+.asm_116673
+ ld a, $78
+
+.asm_116675
+ ld [wc30f], a
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ sla a
+ sla a
+ sla a
+ add $30
+ ld [wc30e], a
+ call Function116797
+
+Function11668d:
+ ld a, [wc311]
+ cp $ff
+ ret nz
+ ld a, $b
+ call Function116780
+ ret c
+ ld a, $c
+ ld [wc314], a
+ ret
+
+; 11669f
+
+Function11669f: ; 11669f
+ call Function11678e
+
+Function1166a2:
+ ld a, $a8
+ ld [wc30e], a
+ ld [wc3f1], a
+ ld a, $60
+ ld [wc30f], a
+ ld [wc3f3], a
+ ld a, $ff
+ ld [wc314 + 2], a
+ xor a
+ ld [wc314 + 3], a
+ ld a, $0
+ ld c, a
+ call Function11679c
+ call Function116797
+
+Function1166c4:
+ call Function116747
+ ld a, [wc30e]
+ cp $58
+ ret nz
+ ld a, $6
+ ld c, a
+ call Function11679c
+ call Function116797
+
+Function1166d6:
+ call Function116747
+ ld a, [wc30e]
+ cp $48
+ jr nz, .asm_1166e4
+ xor a
+ ld [wc314 + 2], a
+
+.asm_1166e4
+ ld a, [wc311]
+ cp $ff
+ ret nz
+ ld a, $4
+ ld [$c319], a
+ xor a
+ ld [wc314], a
+ ret
+
+; 1166f4
+
+Function1166f4: ; 1166f4
+ ld [wc30e], a
+ ld a, b
+ ld [wc314 + 2], a
+ xor a
+ ld [wc314 + 3], a
+ ld hl, wc30f
+.asm_116702
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ jr z, .asm_11670c
+ dec a
+
+.asm_11670c
+ sla a
+ sla a
+ sla a
+ add $48
+ cp [hl]
+ jr z, .asm_116702
+ ld [hl], a
+ call Function11679c
+ call Function116797
+ ret
+
+; 11671f
+
+Function11671f: ; 11671f
+ ld [wc30f], a
+ ld a, b
+ ld [wc314 + 3], a
+ xor a
+ ld [wc314 + 2], a
+ ld hl, wc30e
+.asm_11672d
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ sla a
+ sla a
+ sla a
+ add $30
+ cp [hl]
+ jr z, .asm_11672d
+ ld [hl], a
+ call Function11679c
+ call Function116797
+ ret
+
+; 116747
+
+Function116747: ; 116747
+ ld hl, wc30e
+ ld a, [wc314 + 2]
+ add [hl]
+ ld [hl], a
+ ld hl, wc30f
+ ld a, [wc314 + 3]
+ add [hl]
+ ld [hl], a
+ ret
+
+; 116758
+
+Function116758: ; 116758
+ ld a, [wc30f]
+ cp $30
+ jr c, .asm_116770
+ jr z, .asm_116770
+ cp $38
+ jr c, .asm_116774
+ jr z, .asm_116774
+ cp $40
+ jr c, .asm_116778
+ jr z, .asm_116778
+ xor a
+ jr .asm_11677a
+
+.asm_116770
+ ld a, $c
+ jr .asm_11677a
+
+.asm_116774
+ ld a, $8
+ jr .asm_11677a
+
+.asm_116778
+ ld a, $4
+
+.asm_11677a
+ ld [wc314 + 4], a
+ ret
+
+; 11677e
+
+Function11677e: ; 11677e
+ ld a, $0
+
+Function116780:
+ ld hl, wc314 + 1
+ cp [hl]
+ jr z, .asm_11678c
+ ld a, [hl]
+ ld [wc314], a
+ scf
+ ret
+
+.asm_11678c
+ and a
+ ret
+
+; 11678e
+
+Function11678e: ; 11678e
+ ld hl, wc314
+ ld a, [hl]
+ ld [wc314 + 1], a
+ inc [hl]
+ ret
+
+; 116797
+
+Function116797: ; 116797
+ ld hl, wc314
+ inc [hl]
+ ret
+
+; 11679c
+
+Function11679c:
+ ld a, c
+ ld [wc311], a
+ xor a
+ ld [wc312], a
+ jr asm_1167af
+
+Function1167a6: ; 1167a6
+ ld hl, wc313
+ dec [hl]
+ ret nz
+ ld hl, wc312
+ inc [hl]
+
+asm_1167af
+.asm_1167af
+ ld a, [wc311]
+ cp $ff
+ ret z
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1167eb
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc312]
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_1167dc
+ cp $fe
+ jr nz, .asm_1167e3
+ xor a
+ ld [wc312], a
+ jr .asm_1167af
+
+.asm_1167dc
+ ld a, $ff
+ ld [wc311], a
+ ld a, $fd
+
+.asm_1167e3
+ ld [wc310], a
+ ld a, [hl]
+ ld [wc313], a
+ ret
+
+; 1167eb
+
+Unknown_1167eb:
+ dw Unknown_1167fb
+ dw Unknown_116808
+ dw Unknown_116867
+ dw Unknown_116870
+ dw Unknown_116815
+ dw Unknown_11683e
+ dw Unknown_116881
+ dw Unknown_1168ae
+
+Unknown_1167fb: ; 1167fb
+ db $0, $6
+ db $1, $4
+ db $2, $4
+ db $3, $6
+ db $2, $4
+ db $1, $4
+ db $fe
+
+Unknown_116808: ; 116808
+ db $4, $6
+ db $5, $4
+ db $6, $4
+ db $7, $6
+ db $6, $4
+ db $5, $4
+ db $fe
+
+Unknown_116815: ; 116815
+ db $fd, $20
+ db $8, $c
+ db $9, $24
+ db $a, $4
+ db $b, $8
+ db $a, $4
+ db $9, $6
+ db $c, $4
+ db $d, $8
+ db $c, $5
+ db $9, $24
+ db $a, $4
+ db $b, $8
+ db $a, $4
+ db $9, $6
+ db $c, $4
+ db $d, $8
+ db $c, $5
+ db $9, $8
+ db $8, $4
+ db $ff
+
+Unknown_11683e: ; 11683e
+ db $fd, $20
+ db $e, $c
+ db $f, $24
+ db $10, $4
+ db $11, $8
+ db $10, $4
+ db $f, $6
+ db $12, $4
+ db $13, $8
+ db $12, $5
+ db $f, $24
+ db $10, $4
+ db $11, $8
+ db $10, $4
+ db $f, $6
+ db $12, $4
+ db $13, $8
+ db $12, $5
+ db $f, $8
+ db $e, $4
+ db $ff
+
+Unknown_116867: ; 116867
+ db $14, $8
+ db $15, $8
+ db $16, $8
+ db $15, $8
+ db $fe
+
+Unknown_116870: ; 116870
+ db $17, $5
+ db $18, $5
+ db $19, $5
+ db $1a, $5
+ db $1b, $5
+ db $1a, $5
+ db $19, $5
+ db $18, $5
+ db $fe
+
+Unknown_116881: ; 116881
+ db $1c, $7
+ db $1d, $7
+ db $1e, $a
+ db $1f, $a
+ db $20, $5
+ db $21, $5
+ db $20, $5
+ db $21, $5
+ db $20, $18
+ db $22, $4
+ db $23, $2
+ db $22, $2
+ db $23, $2
+ db $22, $1
+ db $23, $1
+ db $22, $1
+ db $23, $4
+ db $fd, $1
+ db $23, $1
+ db $fd, $2
+ db $23, $2
+ db $fd, $40
+ db $ff
+
+Unknown_1168ae: ; 1168ae
+ db $24, $4
+ db $25, $4
+ db $26, $4
+ db $27, $4
+ db $28, $4
+ db $29, $4
+ db $2a, $4
+ db $2b, $4
+ db $2c, $4
+ db $2d, $4
+ db $2e, $4
+ db $fe
+; 1168c5
+
+Unknown_1168c5:
+ dw Unknown_116923
+ dw Unknown_116960
+ dw Unknown_1169a1
+ dw Unknown_1169de
+ dw Unknown_116a1b
+ dw Unknown_116a58
+ dw Unknown_116a99
+ dw Unknown_116ad6
+ dw Unknown_116d1b
+ dw Unknown_116d4c
+ dw Unknown_116d85
+ dw Unknown_116dbe
+ dw Unknown_116df7
+ dw Unknown_116e30
+ dw Unknown_116e69
+ dw Unknown_116e9a
+ dw Unknown_116ed3
+ dw Unknown_116f0c
+ dw Unknown_116f45
+ dw Unknown_116f7e
+ dw Unknown_116b13
+ dw Unknown_116b54
+ dw Unknown_116b95
+ dw Unknown_116bd6
+ dw Unknown_116c17
+ dw Unknown_116c58
+ dw Unknown_116c99
+ dw Unknown_116cda
+ dw Unknown_116fb7
+ dw Unknown_116fec
+ dw Unknown_117025
+ dw Unknown_117056
+ dw Unknown_117083
+ dw Unknown_1170c0
+ dw Unknown_1170fd
+ dw Unknown_11713a
+ dw Unknown_117177
+ dw Unknown_11719c
+ dw Unknown_1171c1
+ dw Unknown_1171e6
+ dw Unknown_11720b
+ dw Unknown_117230
+ dw Unknown_117255
+ dw Unknown_11727a
+ dw Unknown_11729f
+ dw Unknown_1172c4
+ dw Unknown_1172e9
+
+Unknown_116923: ; 116923
+ db $f
+ db $0, $0, $1, $a
+ db $0, $8, $2, $d
+ db $0, $10, $3, $d
+ db $0, $18, $4, $d
+ db $8, $0, $11, $a
+ db $8, $8, $12, $a
+ db $8, $10, $13, $a
+ db $8, $18, $14, $d
+ db $10, $0, $21, $a
+ db $10, $8, $22, $a
+ db $10, $10, $23, $a
+ db $10, $18, $24, $a
+ db $18, $0, $31, $a
+ db $18, $8, $32, $a
+ db $18, $10, $33, $a
+
+Unknown_116960: ; 116960
+ db $10
+ db $1, $0, $1, $a
+ db $1, $8, $2, $d
+ db $1, $10, $3, $d
+ db $1, $18, $4, $d
+ db $9, $0, $11, $a
+ db $9, $8, $12, $a
+ db $9, $10, $13, $a
+ db $9, $18, $14, $d
+ db $11, $0, $5, $a
+ db $11, $8, $6, $a
+ db $11, $10, $7, $a
+ db $11, $18, $34, $a
+ db $19, $0, $15, $a
+ db $19, $8, $16, $a
+ db $19, $10, $17, $a
+ db $19, $18, $35, $a
+
+Unknown_1169a1: ; 1169a1
+ db $f
+ db $1, $0, $1, $a
+ db $1, $8, $2, $d
+ db $1, $10, $3, $d
+ db $1, $18, $4, $d
+ db $9, $0, $11, $a
+ db $9, $8, $12, $a
+ db $9, $10, $13, $a
+ db $9, $18, $14, $d
+ db $11, $0, $25, $a
+ db $11, $8, $26, $a
+ db $11, $10, $27, $a
+ db $11, $18, $34, $a
+ db $19, $8, $36, $a
+ db $19, $10, $37, $a
+ db $19, $18, $35, $a
+
+Unknown_1169de: ; 1169de
+ db $f
+ db $0, $0, $1, $a
+ db $0, $8, $2, $d
+ db $0, $10, $3, $d
+ db $0, $18, $4, $d
+ db $8, $0, $11, $a
+ db $8, $8, $12, $a
+ db $8, $10, $13, $a
+ db $8, $18, $14, $d
+ db $10, $0, $10, $a
+ db $10, $8, $20, $a
+ db $10, $10, $30, $a
+ db $10, $18, $24, $a
+ db $18, $0, $31, $a
+ db $18, $8, $32, $a
+ db $18, $10, $33, $a
+
+Unknown_116a1b: ; 116a1b
+ db $f
+ db $0, $0, $4, $2d
+ db $0, $8, $3, $2d
+ db $0, $10, $2, $2d
+ db $0, $18, $1, $2a
+ db $8, $0, $14, $2d
+ db $8, $8, $13, $2a
+ db $8, $10, $12, $2a
+ db $8, $18, $11, $2a
+ db $10, $0, $24, $2a
+ db $10, $8, $23, $2a
+ db $10, $10, $22, $2a
+ db $10, $18, $21, $2a
+ db $18, $8, $33, $2a
+ db $18, $10, $32, $2a
+ db $18, $18, $31, $2a
+
+Unknown_116a58: ; 116a58
+ db $10
+ db $1, $0, $4, $2d
+ db $1, $8, $3, $2d
+ db $1, $10, $2, $2d
+ db $1, $18, $1, $2a
+ db $9, $0, $14, $2d
+ db $9, $8, $13, $2a
+ db $9, $10, $12, $2a
+ db $9, $18, $11, $2a
+ db $11, $0, $34, $2a
+ db $11, $8, $7, $2a
+ db $11, $10, $6, $2a
+ db $11, $18, $5, $2a
+ db $19, $0, $35, $2a
+ db $19, $8, $17, $2a
+ db $19, $10, $16, $2a
+ db $19, $18, $15, $2a
+
+Unknown_116a99: ; 116a99
+ db $f
+ db $1, $0, $4, $2d
+ db $1, $8, $3, $2d
+ db $1, $10, $2, $2d
+ db $1, $18, $1, $2a
+ db $9, $0, $14, $2d
+ db $9, $8, $13, $2a
+ db $9, $10, $12, $2a
+ db $9, $18, $11, $2a
+ db $11, $0, $34, $2a
+ db $11, $8, $27, $2a
+ db $11, $10, $26, $2a
+ db $11, $18, $25, $2a
+ db $19, $0, $35, $2a
+ db $19, $8, $37, $2a
+ db $19, $10, $36, $2a
+
+Unknown_116ad6: ; 116ad6
+ db $f
+ db $0, $0, $4, $2d
+ db $0, $8, $3, $2d
+ db $0, $10, $2, $2d
+ db $0, $18, $1, $2a
+ db $8, $0, $14, $2d
+ db $8, $8, $13, $2a
+ db $8, $10, $12, $2a
+ db $8, $18, $11, $2a
+ db $10, $0, $24, $2a
+ db $10, $8, $30, $2a
+ db $10, $10, $20, $2a
+ db $10, $18, $10, $2a
+ db $18, $8, $33, $2a
+ db $18, $10, $32, $2a
+ db $18, $18, $31, $2a
+
+Unknown_116b13: ; 116b13
+ db $10
+ db $18, $0, $0, $b
+ db $18, $8, $8, $b
+ db $18, $10, $5c, $b
+ db $18, $18, $0, $b
+ db $10, $0, $0, $b
+ db $10, $8, $5d, $b
+ db $10, $10, $5e, $b
+ db $10, $18, $0, $b
+ db $8, $0, $50, $b
+ db $8, $8, $51, $b
+ db $8, $10, $52, $b
+ db $8, $18, $50, $2b
+ db $0, $0, $43, $b
+ db $0, $8, $44, $b
+ db $0, $10, $44, $2b
+ db $0, $18, $43, $2b
+
+Unknown_116b54: ; 116b54
+ db $10
+ db $19, $0, $0, $b
+ db $19, $8, $18, $b
+ db $19, $10, $c, $b
+ db $19, $18, $0, $b
+ db $11, $0, $42, $b
+ db $11, $8, $3a, $b
+ db $11, $10, $3a, $2b
+ db $11, $18, $42, $2b
+ db $9, $0, $58, $b
+ db $9, $8, $45, $b
+ db $9, $10, $45, $2b
+ db $9, $18, $58, $2b
+ db $1, $0, $d, $b
+ db $1, $8, $44, $b
+ db $1, $10, $44, $2b
+ db $1, $18, $d, $2b
+
+Unknown_116b95: ; 116b95
+ db $10
+ db $18, $0, $0, $b
+ db $18, $8, $5c, $2b
+ db $18, $10, $8, $2b
+ db $18, $18, $0, $b
+ db $10, $0, $0, $b
+ db $10, $8, $5e, $2b
+ db $10, $10, $5d, $2b
+ db $10, $18, $0, $b
+ db $8, $0, $50, $b
+ db $8, $8, $52, $2b
+ db $8, $10, $51, $2b
+ db $8, $18, $50, $2b
+ db $0, $0, $43, $b
+ db $0, $8, $44, $b
+ db $0, $10, $44, $2b
+ db $0, $18, $43, $2b
+
+Unknown_116bd6: ; 116bd6
+ db $10
+ db $18, $0, $0, $a
+ db $18, $8, $56, $a
+ db $18, $10, $57, $a
+ db $18, $18, $0, $a
+ db $10, $0, $64, $a
+ db $10, $8, $4a, $a
+ db $10, $10, $4b, $a
+ db $10, $18, $71, $a
+ db $8, $0, $54, $a
+ db $8, $8, $55, $a
+ db $8, $10, $55, $2a
+ db $8, $18, $54, $2a
+ db $0, $0, $48, $a
+ db $0, $8, $49, $a
+ db $0, $10, $49, $2a
+ db $0, $18, $48, $2a
+
+Unknown_116c17: ; 116c17
+ db $10
+ db $19, $0, $0, $a
+ db $19, $8, $76, $a
+ db $19, $10, $77, $a
+ db $19, $18, $0, $a
+ db $11, $0, $64, $a
+ db $11, $8, $69, $a
+ db $11, $10, $6a, $a
+ db $11, $18, $6b, $a
+ db $9, $0, $6f, $a
+ db $9, $8, $70, $a
+ db $9, $10, $70, $2a
+ db $9, $18, $6f, $2a
+ db $1, $0, $63, $a
+ db $1, $8, $19, $a
+ db $1, $10, $19, $2a
+ db $1, $18, $63, $2a
+
+Unknown_116c58: ; 116c58
+ db $10
+ db $1a, $0, $6c, $a
+ db $1a, $8, $6d, $a
+ db $1a, $10, $6e, $a
+ db $1a, $18, $0, $a
+ db $12, $0, $5f, $a
+ db $12, $8, $60, $a
+ db $12, $10, $61, $a
+ db $12, $18, $62, $a
+ db $a, $0, $53, $a
+ db $a, $8, $55, $a
+ db $a, $10, $55, $2a
+ db $a, $18, $53, $2a
+ db $2, $0, $46, $a
+ db $2, $8, $47, $a
+ db $2, $10, $47, $2a
+ db $2, $18, $46, $2a
+
+Unknown_116c99: ; 116c99
+ db $10
+ db $19, $0, $0, $2a
+ db $19, $8, $77, $2a
+ db $19, $10, $76, $2a
+ db $19, $18, $0, $2a
+ db $11, $0, $6b, $2a
+ db $11, $8, $6a, $2a
+ db $11, $10, $69, $2a
+ db $11, $18, $64, $2a
+ db $9, $0, $6f, $a
+ db $9, $8, $70, $a
+ db $9, $10, $70, $2a
+ db $9, $18, $6f, $2a
+ db $1, $0, $63, $a
+ db $1, $8, $19, $a
+ db $1, $10, $19, $2a
+ db $1, $18, $63, $2a
+
+Unknown_116cda: ; 116cda
+ db $10
+ db $18, $0, $0, $a
+ db $18, $8, $57, $2a
+ db $18, $10, $56, $2a
+ db $18, $18, $0, $a
+ db $10, $0, $71, $2a
+ db $10, $8, $4b, $2a
+ db $10, $10, $4a, $2a
+ db $10, $18, $64, $2a
+ db $8, $0, $54, $a
+ db $8, $8, $55, $a
+ db $8, $10, $55, $2a
+ db $8, $18, $54, $2a
+ db $0, $0, $48, $a
+ db $0, $8, $49, $a
+ db $0, $10, $49, $2a
+ db $0, $18, $48, $2a
+
+Unknown_116d1b: ; 116d1b
+ db $c
+ db $0, $0, $38, $4a
+ db $0, $8, $39, $4a
+ db $0, $10, $39, $6a
+ db $0, $18, $38, $6a
+ db $8, $0, $28, $4a
+ db $8, $8, $29, $4a
+ db $8, $10, $29, $6a
+ db $8, $18, $28, $6a
+ db $10, $0, $9, $4d
+ db $10, $8, $19, $4a
+ db $10, $10, $19, $6a
+ db $10, $18, $9, $6d
+
+Unknown_116d4c: ; 116d4c
+ db $e
+ db $0, $8, $3b, $4a
+ db $0, $10, $3b, $6a
+ db $8, $0, $2a, $4a
+ db $8, $8, $2b, $4a
+ db $8, $10, $2b, $6a
+ db $8, $18, $2a, $6a
+ db $10, $0, $1a, $4a
+ db $10, $8, $1b, $4a
+ db $10, $10, $1b, $6a
+ db $10, $18, $1a, $6a
+ db $18, $0, $a, $4a
+ db $18, $8, $b, $4a
+ db $18, $10, $b, $6a
+ db $18, $18, $a, $6a
+
+Unknown_116d85: ; 116d85
+ db $e
+ db $0, $0, $35, $2a
+ db $0, $8, $3c, $4a
+ db $0, $10, $3d, $4a
+ db $0, $18, $3e, $4a
+ db $8, $0, $2c, $4a
+ db $8, $8, $2d, $4a
+ db $8, $10, $2e, $4a
+ db $8, $18, $2f, $4a
+ db $10, $0, $1c, $4a
+ db $10, $8, $1d, $4a
+ db $10, $10, $1e, $4d
+ db $10, $18, $1f, $4d
+ db $18, $10, $e, $4d
+ db $18, $18, $f, $4a
+
+Unknown_116dbe: ; 116dbe
+ db $e
+ db $0, $0, $65, $4a
+ db $0, $8, $66, $4a
+ db $0, $10, $67, $4a
+ db $0, $18, $68, $4a
+ db $8, $8, $59, $4a
+ db $8, $10, $5a, $4a
+ db $8, $18, $5b, $4a
+ db $10, $0, $4c, $4a
+ db $10, $8, $4d, $4d
+ db $10, $10, $4e, $4d
+ db $10, $18, $4f, $4a
+ db $18, $0, $3f, $4d
+ db $18, $8, $40, $4d
+ db $18, $10, $41, $4d
+
+Unknown_116df7: ; 116df7
+ db $e
+ db $0, $0, $3e, $6a
+ db $0, $8, $3d, $6a
+ db $0, $10, $3c, $6a
+ db $0, $18, $35, $a
+ db $8, $0, $2f, $6a
+ db $8, $8, $2e, $6a
+ db $8, $10, $2d, $6a
+ db $8, $18, $2c, $6a
+ db $10, $0, $1f, $6d
+ db $10, $8, $1e, $6d
+ db $10, $10, $1d, $6a
+ db $10, $18, $1c, $6a
+ db $18, $0, $f, $6a
+ db $18, $8, $e, $6d
+
+Unknown_116e30: ; 116e30
+ db $e
+ db $0, $0, $68, $6a
+ db $0, $8, $67, $6a
+ db $0, $10, $66, $6a
+ db $0, $18, $65, $6a
+ db $8, $0, $5b, $6a
+ db $8, $8, $5a, $6a
+ db $8, $10, $59, $6a
+ db $10, $0, $4f, $6a
+ db $10, $8, $4e, $6d
+ db $10, $10, $4d, $6d
+ db $10, $18, $4c, $6a
+ db $18, $8, $41, $6d
+ db $18, $10, $40, $6d
+ db $18, $18, $3f, $6d
+
+Unknown_116e69: ; 116e69
+ db $c
+ db $8, $0, $9, $d
+ db $8, $8, $19, $a
+ db $8, $10, $19, $2a
+ db $8, $18, $9, $2d
+ db $10, $0, $28, $a
+ db $10, $8, $29, $a
+ db $10, $10, $29, $2a
+ db $10, $18, $28, $2a
+ db $18, $0, $38, $a
+ db $18, $8, $39, $a
+ db $18, $10, $39, $2a
+ db $18, $18, $38, $2a
+
+Unknown_116e9a: ; 116e9a
+ db $e
+ db $0, $0, $a, $a
+ db $0, $8, $b, $a
+ db $0, $10, $b, $2a
+ db $0, $18, $a, $2a
+ db $8, $0, $1a, $a
+ db $8, $8, $1b, $a
+ db $8, $10, $1b, $2a
+ db $8, $18, $1a, $2a
+ db $10, $0, $2a, $a
+ db $10, $8, $2b, $a
+ db $10, $10, $2b, $2a
+ db $10, $18, $2a, $2a
+ db $18, $8, $3b, $a
+ db $18, $10, $3b, $2a
+
+Unknown_116ed3: ; 116ed3
+ db $e
+ db $0, $10, $e, $d
+ db $0, $18, $f, $a
+ db $8, $0, $1c, $a
+ db $8, $8, $1d, $a
+ db $8, $10, $1e, $d
+ db $8, $18, $1f, $d
+ db $10, $0, $2c, $a
+ db $10, $8, $2d, $a
+ db $10, $10, $2e, $a
+ db $10, $18, $2f, $a
+ db $18, $0, $35, $6a
+ db $18, $8, $3c, $a
+ db $18, $10, $3d, $a
+ db $18, $18, $3e, $a
+
+Unknown_116f0c: ; 116f0c
+ db $e
+ db $0, $0, $3f, $d
+ db $0, $8, $40, $d
+ db $0, $10, $41, $d
+ db $8, $0, $4c, $a
+ db $8, $8, $4d, $d
+ db $8, $10, $4e, $d
+ db $8, $18, $4f, $a
+ db $10, $8, $59, $a
+ db $10, $10, $5a, $a
+ db $10, $18, $5b, $a
+ db $18, $0, $65, $a
+ db $18, $8, $66, $a
+ db $18, $10, $67, $a
+ db $18, $18, $68, $a
+
+Unknown_116f45: ; 116f45
+ db $e
+ db $0, $0, $f, $2a
+ db $0, $8, $e, $2d
+ db $8, $0, $1f, $2d
+ db $8, $8, $1e, $2d
+ db $8, $10, $1d, $2a
+ db $8, $18, $1c, $2a
+ db $10, $0, $2f, $2a
+ db $10, $8, $2e, $2a
+ db $10, $10, $2d, $2a
+ db $10, $18, $2c, $2a
+ db $18, $0, $3e, $2a
+ db $18, $8, $3d, $2a
+ db $18, $10, $3c, $2a
+ db $18, $18, $35, $4a
+
+Unknown_116f7e: ; 116f7e
+ db $e
+ db $0, $8, $41, $2d
+ db $0, $10, $40, $2d
+ db $0, $18, $3f, $2d
+ db $8, $0, $4f, $2a
+ db $8, $8, $4e, $2d
+ db $8, $10, $4d, $2d
+ db $8, $18, $4c, $2a
+ db $10, $0, $5b, $2a
+ db $10, $8, $5a, $2a
+ db $10, $10, $59, $2a
+ db $18, $0, $68, $2a
+ db $18, $8, $67, $2a
+ db $18, $10, $66, $2a
+ db $18, $18, $65, $2a
+
+Unknown_116fb7: ; 116fb7
+ db $d
+ db $fa, $0, $72, $a
+ db $fa, $8, $73, $d
+ db $fa, $10, $74, $d
+ db $fa, $18, $75, $d
+ db $2, $0, $81, $a
+ db $2, $8, $82, $a
+ db $2, $10, $83, $a
+ db $2, $18, $84, $a
+ db $a, $0, $91, $a
+ db $a, $8, $92, $a
+ db $a, $10, $93, $a
+ db $a, $18, $94, $a
+ db $12, $10, $a3, $a
+
+Unknown_116fec: ; 116fec
+ db $e
+ db $fd, $0, $85, $d
+ db $fd, $8, $86, $d
+ db $5, $0, $95, $d
+ db $5, $8, $96, $a
+ db $5, $10, $97, $a
+ db $5, $18, $98, $a
+ db $d, $0, $a5, $a
+ db $d, $8, $a6, $a
+ db $d, $10, $a7, $a
+ db $d, $18, $a8, $a
+ db $15, $0, $b3, $a
+ db $15, $8, $b4, $a
+ db $15, $10, $b5, $a
+ db $15, $18, $b6, $a
+
+Unknown_117025: ; 117025
+ db $c
+ db $8, $0, $79, $d
+ db $8, $8, $7a, $d
+ db $8, $10, $7b, $a
+ db $8, $18, $7c, $a
+ db $10, $0, $89, $d
+ db $10, $8, $8a, $a
+ db $10, $10, $8b, $a
+ db $10, $18, $8c, $a
+ db $18, $0, $99, $a
+ db $18, $8, $9a, $a
+ db $18, $10, $9b, $a
+ db $18, $18, $9c, $a
+
+Unknown_117056: ; 117056
+ db $b
+ db $8, $0, $7d, $a
+ db $8, $8, $7e, $d
+ db $8, $10, $7f, $d
+ db $8, $18, $80, $a
+ db $10, $0, $8d, $a
+ db $10, $8, $8e, $a
+ db $10, $10, $8f, $a
+ db $10, $18, $90, $a
+ db $18, $8, $9e, $a
+ db $18, $10, $9f, $a
+ db $18, $18, $a0, $a
+
+Unknown_117083: ; 117083
+ db $f
+ db $0, $0, $a1, $a
+ db $0, $8, $a2, $a
+ db $0, $10, $a2, $2a
+ db $0, $18, $a1, $2a
+ db $8, $0, $b1, $a
+ db $8, $8, $b2, $d
+ db $8, $10, $b2, $2d
+ db $8, $18, $b1, $2a
+ db $10, $0, $ab, $a
+ db $10, $8, $ac, $a
+ db $10, $10, $ac, $2a
+ db $10, $18, $ab, $2a
+ db $18, $8, $a4, $a
+ db $18, $10, $87, $a
+ db $18, $18, $88, $a
+
+Unknown_1170c0: ; 1170c0
+ db $f
+ db $0, $0, $a1, $a
+ db $0, $8, $a2, $d
+ db $0, $10, $a2, $2a
+ db $0, $18, $a1, $2a
+ db $8, $0, $b1, $a
+ db $8, $8, $78, $d
+ db $8, $10, $78, $2d
+ db $8, $18, $b1, $2a
+ db $10, $0, $ab, $a
+ db $10, $8, $ac, $a
+ db $10, $10, $ac, $2a
+ db $10, $18, $ab, $2a
+ db $18, $8, $a4, $a
+ db $18, $10, $87, $a
+ db $18, $18, $88, $a
+
+Unknown_1170fd: ; 1170fd
+ db $f
+ db $0, $0, $a9, $a
+ db $0, $8, $aa, $a
+ db $0, $10, $aa, $2a
+ db $0, $18, $a9, $2a
+ db $8, $0, $b7, $a
+ db $8, $8, $b8, $a
+ db $8, $10, $b8, $2a
+ db $8, $18, $b7, $2a
+ db $10, $0, $ab, $a
+ db $10, $8, $ac, $a
+ db $10, $10, $ac, $2a
+ db $10, $18, $ad, $a
+ db $18, $8, $a4, $a
+ db $18, $10, $ba, $a
+ db $18, $18, $bb, $a
+
+Unknown_11713a: ; 11713a
+ db $f
+ db $0, $0, $ae, $c
+ db $0, $8, $af, $c
+ db $0, $10, $af, $2c
+ db $0, $18, $ae, $2c
+ db $8, $0, $bc, $c
+ db $8, $8, $bd, $c
+ db $8, $10, $bd, $2c
+ db $8, $18, $bc, $2c
+ db $10, $0, $bf, $c
+ db $10, $8, $9d, $c
+ db $10, $10, $9d, $2c
+ db $10, $18, $b0, $c
+ db $18, $8, $b9, $c
+ db $18, $10, $c0, $c
+ db $18, $18, $be, $c
+
+Unknown_117177: ; 117177
+ db $9
+ db $14, $0, $1f, $6
+ db $14, $8, $20, $6
+ db $14, $10, $21, $6
+ db $c, $0, $10, $6
+ db $c, $8, $11, $6
+ db $c, $10, $12, $6
+ db $4, $0, $1, $6
+ db $4, $8, $2, $6
+ db $4, $10, $3, $6
+
+Unknown_11719c: ; 11719c
+ db $9
+ db $14, $0, $22, $6
+ db $14, $8, $23, $6
+ db $14, $10, $24, $6
+ db $c, $0, $13, $6
+ db $c, $8, $14, $6
+ db $c, $10, $15, $6
+ db $4, $0, $4, $6
+ db $4, $8, $5, $6
+ db $4, $10, $6, $6
+
+Unknown_1171c1: ; 1171c1
+ db $9
+ db $14, $0, $25, $6
+ db $14, $8, $26, $6
+ db $14, $10, $27, $6
+ db $c, $0, $16, $6
+ db $c, $8, $17, $6
+ db $c, $10, $18, $6
+ db $4, $0, $7, $6
+ db $4, $8, $8, $6
+ db $4, $10, $9, $6
+
+Unknown_1171e6: ; 1171e6
+ db $9
+ db $14, $0, $28, $6
+ db $14, $8, $29, $6
+ db $14, $10, $2a, $6
+ db $c, $0, $19, $6
+ db $c, $8, $1a, $6
+ db $c, $10, $1b, $6
+ db $4, $0, $a, $6
+ db $4, $8, $b, $6
+ db $4, $10, $c, $6
+
+Unknown_11720b: ; 11720b
+ db $9
+ db $14, $0, $2b, $6
+ db $14, $8, $2c, $6
+ db $14, $10, $2d, $6
+ db $c, $0, $1c, $6
+ db $c, $8, $1d, $6
+ db $c, $10, $1e, $6
+ db $4, $0, $d, $6
+ db $4, $8, $e, $6
+ db $4, $10, $f, $6
+
+Unknown_117230: ; 117230
+ db $9
+ db $14, $0, $47, $6
+ db $14, $8, $48, $6
+ db $14, $10, $49, $6
+ db $c, $0, $3b, $6
+ db $c, $8, $3c, $6
+ db $c, $10, $3b, $26
+ db $4, $0, $2e, $6
+ db $4, $8, $2f, $6
+ db $4, $10, $30, $6
+
+Unknown_117255: ; 117255
+ db $9
+ db $14, $0, $35, $6
+ db $14, $8, $4a, $6
+ db $14, $10, $35, $6
+ db $c, $0, $3d, $6
+ db $c, $8, $35, $6
+ db $c, $10, $3d, $26
+ db $4, $0, $31, $6
+ db $4, $8, $32, $6
+ db $4, $10, $31, $26
+
+Unknown_11727a: ; 11727a
+ db $9
+ db $14, $0, $4b, $6
+ db $14, $8, $4c, $6
+ db $14, $10, $4d, $6
+ db $c, $0, $3e, $6
+ db $c, $8, $3f, $6
+ db $c, $10, $40, $6
+ db $4, $0, $33, $6
+ db $4, $8, $34, $6
+ db $4, $10, $35, $6
+
+Unknown_11729f: ; 11729f
+ db $9
+ db $14, $0, $4e, $6
+ db $14, $8, $4f, $6
+ db $14, $10, $50, $6
+ db $c, $0, $41, $6
+ db $c, $8, $42, $6
+ db $c, $10, $43, $6
+ db $4, $0, $35, $6
+ db $4, $8, $36, $6
+ db $4, $10, $37, $6
+
+Unknown_1172c4: ; 1172c4
+ db $9
+ db $14, $0, $51, $6
+ db $14, $8, $52, $6
+ db $14, $10, $35, $6
+ db $c, $0, $44, $6
+ db $c, $8, $45, $6
+ db $c, $10, $46, $6
+ db $4, $0, $38, $6
+ db $4, $8, $39, $6
+ db $4, $10, $3a, $6
+
+Unknown_1172e9: ; 1172e9
+ db $9
+ db $10, $0, $0, $2
+ db $10, $8, $0, $2
+ db $10, $10, $0, $2
+ db $8, $0, $0, $2
+ db $8, $8, $0, $2
+ db $c, $10, $1f, $6
+ db $0, $0, $0, $2
+ db $0, $8, $0, $2
+ db $4, $10, $10, $6
+; 11730e
+
+Palette_11730e:
+ RGB 31, 31, 31
+ RGB 7, 5, 4
+ RGB 31, 28, 4
+ RGB 31, 5, 5
+ RGB 31, 31, 31
+ RGB 7, 5, 4
+ RGB 31, 23, 0
+ RGB 31, 28, 4
+ RGB 31, 31, 31
+ RGB 16, 19, 31
+ RGB 17, 31, 31
+ RGB 31, 31, 31
+ RGB 5, 5, 5
+ RGB 7, 5, 4
+ RGB 31, 28, 4
+ RGB 19, 11, 6
+ RGB 31, 31, 31
+ RGB 3, 15, 31
+ RGB 4, 25, 25
+ RGB 0, 7, 12
+ RGB 31, 31, 31
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 4, 11, 22
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 22, 11, 8
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+ RGB 0, 16, 0
+
+Palette_11734e:
+ RGB 31, 30, 30
+ RGB 2, 0, 0
+ RGB 10, 9, 9
+ RGB 15, 14, 14
+
+Unknown_117356: ; 117356
+ db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
+ db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c5, $c6, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c6, $c5, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c3, $c4, $c2, $c2, $c2, $c2, $c2, $c2, $c2, $d8, $c2, $c2, $d8, $c2, $c2, $c2
+ db $c2, $c2, $c4, $c3, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c7, $c8, $ca, $cb, $cc, $cd, $ce, $c2, $cf, $d0, $d1, $d2, $d3, $c2, $d4, $d5
+ db $d6, $d7, $c8, $c7, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+ db $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9, $c9
+ db $c9, $c9, $c9, $c9, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1, $c1
+
+ db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
+ db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $0f, $0f, $0f, $0f, $0f, $0f, $0f, $8f, $0f, $0f, $8f, $0f, $0f, $0f
+ db $0f, $0f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f, $8f, $8f, $8f, $0f, $8f, $8f
+ db $8f, $8f, $af, $af, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+ db $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f, $8f
+ db $8f, $8f, $8f, $8f, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08
+; 117656
+
+
+SECTION "Mobile Stadium", ROMX
+
+Special_GiveOddEgg: ; 117656
+ callba GiveOddEgg
+ ret
+
+; 11765d
+
+Function11765d: ; 11765d (45:765d)
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function11766b
+ pop af
+ ld [hInMenu], a
+ ret
+
+Function11766b: ; 11766b (45:766b)
+ call Function117699
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function1176ee
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1f3
+ ld de, wcd49
+ ld bc, $8
+ call CopyBytes
+ ld de, $c708
+ ld bc, $11
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function117699: ; 117699 (45:7699)
+ ld a, $5
+ call GetSRAMBank
+ ld hl, wcd49
+ ld de, $b1f3
+ ld bc, $8
+ call CopyBytes
+ ld hl, $c708
+ ld bc, $11
+ call CopyBytes
+ call CloseSRAM
+ xor a
+ ld [wcd49], a
+ ld [wcd4a], a
+ ld [wcd4b], a
+ ld [wcd4c], a
+ ld [wcd4d], a
+ ld [wcd4e], a
+ ld [wcd4f], a
+ ld hl, $c708
+ ld bc, $11
+ call ByteFill
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function171c87
+ callba ReloadMapPart
+ callba ClearSpriteAnims
+ ret
+
+Function1176ee: ; 1176ee (45:76ee)
+.loop
+ call JoyTextDelay
+ ld a, [wcd49]
+ bit 7, a
+ jr nz, .quit
+ call Function117719
+ callba PlaySpriteAnimations
+ callba ReloadMapPart
+ jr .loop
+
+.quit
+ callba ClearSpriteAnims
+ call ClearBGPalettes
+ call ClearScreen
+ call ClearSprites
+ ret
+
+Function117719: ; 117719 (45:7719)
+ ld a, [wcd49]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_117728
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+Jumptable_117728: ; 117728 (45:7728)
+ dw Function117738
+ dw Function117764
+ dw Function1178aa
+ dw Function1178e8
+ dw Function117942
+ dw Function117976
+ dw Function117984
+ dw Function1179a7
+
+
+Function117738: ; 117738 (45:7738)
+ callba Function171ccd
+ depixel 6, 3
+ ld a, $1d
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $6
+ ld [hl], a
+ depixel 9, 4
+ ld a, $1d
+ call _InitSpriteAnimStruct
+ ld hl, $c
+ add hl, bc
+ ld a, $7
+ ld [hl], a
+ ld a, $3
+ ld [wcd23], a
+ jp MobilePassword_IncrementJumptable
+
+Function117764: ; 117764 (45:7764)
+ ld a, [wcd4a]
+ cp $10
+ jr nz, .asm_11776f
+ ld a, $1
+ jr .asm_117770
+
+.asm_11776f
+ xor a
+.asm_117770
+ ld [wcd24], a
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and SELECT
+ jr nz, Function117764_select
+ ld a, [hl]
+ and START
+ jr nz, Function117764_start
+ ld a, [hl]
+ and A_BUTTON
+ jp nz, Function117764_a_button
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, Function117764_b_button
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, Function117764_d_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Function117764_d_down
+ ld a, [hl]
+ and D_LEFT
+ jp nz, Function117764_d_left
+ ld a, [hl]
+ and D_RIGHT
+ jp nz, Function117764_d_right
+ ret
+
+Function117764_select: ; 1177a5 (45:77a5)
+ callba Function171cf0
+ ret
+
+Function117764_start: ; 1177ac (45:77ac)
+ ld a, $2
+ ld [wcd4c], a
+ ld a, $4
+ ld [wcd4d], a
+ ret
+
+Function1177b7: ; 1177b7 (45:77b7)
+ ld a, $3
+ ld [wcd24], a
+ ld a, [wcd4a]
+ and a
+ jr z, .asm_1177c5
+ jp MobilePassword_IncrementJumptable
+
+.asm_1177c5
+ ld a, $6
+ ld [wcd49], a
+ ret
+
+Function1177cb: ; 1177cb (45:77cb)
+ ld a, $80
+ ld [wcd49], a
+ ld [ScriptVar], a
+ jp MobilePassword_IncrementJumptable
+
+Function117764_b_button: ; 1177d6 (45:77d6)
+ call PlayClickSFX
+ ld a, [wcd4a]
+ and a
+ ret z
+ dec a
+ ld [wcd4a], a
+ ld e, a
+ ld d, $0
+ ld hl, $c708
+ add hl, de
+ xor a
+ ld [hl], a
+ hlcoord 2, 4
+ add hl, de
+ ld [hl], a
+ ret
+
+Function117764_d_up: ; 1177f1 (45:77f1)
+ ld a, [wcd4d]
+ and a
+ ret z
+ dec a
+ ld [wcd4d], a
+ cp $3
+ ret nz
+ ld a, [wcd4c]
+ ld e, a
+ sla a
+ sla a
+ add e
+Function117764_d_vertical_load: ; 117806 (45:7806)
+ ld [wcd4c], a
+ ret
+
+Function117764_d_down: ; 11780a (45:780a)
+ ld a, [wcd4d]
+ cp $4
+ ret z
+ inc a
+ ld [wcd4d], a
+ cp $4
+ ret nz
+ ld a, [wcd4c]
+ cp $a
+ jr nc, .asm_117825
+ cp $5
+ jr nc, .asm_117829
+ xor a
+ jr Function117764_d_vertical_load
+
+.asm_117825
+ ld a, $2
+ jr Function117764_d_vertical_load
+
+.asm_117829
+ ld a, $1
+ jr Function117764_d_vertical_load
+
+Function117764_d_left: ; 11782d (45:782d)
+ ld a, [wcd4c]
+ and a
+ ret z
+ dec a
+ ld [wcd4c], a
+ ret
+
+Function117764_d_right: ; 117837 (45:7837)
+ ld e, $d
+ ld a, [wcd4d]
+ cp $4
+ jr nz, .wrap
+ ld e, $2
+.wrap
+ ld a, [wcd4c]
+ cp e
+ ret z
+ inc a
+ ld [wcd4c], a
+ ret
+
+Function117764_a_button: ; 11784c (45:784c)
+ call PlayClickSFX
+ ld a, [wcd4d]
+ cp $4
+ jr nz, .not_4
+ ld a, [wcd4c]
+ cp $2
+ jp z, Function1177b7
+ cp $1
+ jp z, Function1177cb
+ jp Function117764_select
+
+.not_4
+ ld a, [wcd4a]
+ ld e, a
+ cp $10
+ jp z, Function117764_start
+ inc a
+ ld [wcd4a], a
+ ld d, $0
+ ld a, [wcd4b]
+ and a
+ jr nz, .ascii_symbols
+ ld hl, Unknown_117a0f
+ jr .got_ascii
+
+.ascii_symbols
+ ld hl, Unknown_117a47
+.got_ascii
+ push de
+ ld a, [wcd4c]
+ ld b, a
+ ld a, [wcd4d]
+ ld c, $e
+ call SimpleMultiply
+ add b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld hl, $c708
+ add hl, de
+ ld [hl], a
+ pop de
+ hlcoord 2, 4
+ add hl, de
+ sub $20
+ ld [hl], a
+ ld a, e
+ cp $f
+ ret nz
+ jp Function117764_start
+
+Function1178aa: ; 1178aa (45:78aa)
+ ld hl, MenuDataHeader_1179b5
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ ld hl, MenuDataHeader_1179bd
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ hlcoord 16, 8
+ ld de, YessNoString_1179c5
+ call PlaceString
+ hlcoord 15, 10
+ ld a, "▶"
+ ld [hl], a
+ hlcoord 1, 14
+ ld de, AskSavePasswordString
+ call PlaceString
+ ld a, $1
+ ld [wcd4e], a
+ jp MobilePassword_IncrementJumptable
+
+Function1178e8: ; 1178e8 (45:78e8)
+ ld a, [hJoyPressed]
+ cp B_BUTTON
+ jr z, .b_button
+ cp A_BUTTON
+ jr z, .a_button
+ cp D_DOWN
+ jr z, .d_down
+ cp D_UP
+ ret nz
+ ld a, [wcd4e]
+ and a
+ ret z
+ dec a
+ ld [wcd4e], a
+ hlcoord 15, 8
+ ld a, "▶"
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, " "
+ ld [hl], a
+ ret
+
+.d_down
+ ld a, [wcd4e]
+ and a
+ ret nz
+ inc a
+ ld [wcd4e], a
+ hlcoord 15, 8
+ ld a, " "
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, "▶"
+ ld [hl], a
+ ret
+
+.a_button
+ call PlayClickSFX
+ ld a, [wcd4e]
+ and a
+ jr nz, .b_button
+ call ExitMenu
+ ld a, $1
+ ld [wcd4f], a
+ jp MobilePassword_IncrementJumptable
+
+.b_button
+ call ExitMenu
+ call ExitMenu
+ jp MobilePassword_IncrementJumptable
+
+Function117942: ; 117942 (45:7942)
+ call SpeechTextBox
+ hlcoord 1, 14
+ ld de, SavedPasswordString
+ call PlaceString
+ ld a, $1e
+ ld [wcd4e], a
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ ld a, [wcd4f]
+ ld [sMobileLoginPassword], a
+ ld hl, $c708
+ ld de, sMobileLoginPassword + 1
+ ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ ld a, [wcd4f]
+ and a
+ jr z, asm_11797e
+ call MobilePassword_IncrementJumptable
+
+Function117976: ; 117976 (45:7976)
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ call ExitMenu
+asm_11797e: ; 11797e (45:797e)
+ ld a, $80
+ ld [wcd49], a
+ ret
+
+Function117984: ; 117984 (45:7984)
+ ld hl, MenuDataHeader_1179b5
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ hlcoord 1, 14
+ ld de, NotAPokemonPasswordString
+ call PlaceString
+ ld a, $1e
+ ld [wcd4e], a
+ call MobilePassword_IncrementJumptable
+
+Function1179a7: ; 1179a7 (45:79a7)
+ ld hl, wcd4e
+ dec [hl]
+ ret nz
+ call ExitMenu
+ ld a, $1
+ ld [wcd49], a
+ ret
+
+; 1179b5 (45:79b5)
+
+MenuDataHeader_1179b5: ; 1179b5
+ db $40 ; flags
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 1179bd
+
+MenuDataHeader_1179bd: ; 1179bd
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 1179c5
+
+
+YessNoString_1179c5: ; 1179c5
+ db "はい"
+ next "いいえ@"
+; 1179cc
+
+AskSavePasswordString: ; 1179cc
+ db "こ%パスワード¯ほぞんして"
+ line "おきますか?@"
+; 1179e1
+
+NotAPokemonPasswordString: ; 1179e1
+ db "パスワード<PKMN>にゅうりょく"
+ line "されていません!@"
+; 1179f7
+
+SavedPasswordString: ; 1179f7
+ db "ログインパスワード¯ほぞん"
+ line "しました@"
+; 117a0a
+
+MobilePassword_IncrementJumptable: ; 117a0a (45:7a0a)
+ ld hl, wcd49
+ inc [hl]
+ ret
+
+; 117a0f (45:7a0f)
+
+Unknown_117a0f:
+INCBIN "data/mobile/ascii-alpha.txt"
+
+Unknown_117a47:
+INCBIN "data/mobile/ascii-sym.txt"
+; 117a7f
+
+
+; everything from here to the end of the bank is related to the
+; Mobile Stadium option from the continue/newgame menu.
+; XXX better function names
+MobileStudium: ; 0x117a7f
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function117a8d
+ pop af
+ ld [hInMenu], a
+ ret
+
+; 0x117a8d
+
+Function117a8d: ; 0x117a8d
+ call Function117a94
+ call Function117acd
+ ret
+
+; 0x117a94
+
+Function117a94: ; 0x117a94
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function172e78
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ ret
+
+; 0x117ab4
+
+Function117ab4: ; 0x117ab4
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function172e78
+ callba Function172eb9
+ callba ReloadMapPart
+ ret
+
+; 0x117acd
+
+Function117acd: ; 0x117acd
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_117ae2
+ call Function117ae9
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ jr Function117acd
+
+.asm_117ae2
+ call ClearBGPalettes
+ call ClearSprites
+ ret
+
+Function117ae9: ; 0x117ae9
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, $0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.Jumptable: ; 0x117af8
+ dw Function117b06
+ dw Function117b14
+ dw Function117b28
+ dw Function117b31
+ dw Function117b4f
+ dw Function117bb6
+ dw Function117c4a
+
+Function117b06:
+ callba Function172eb9
+ ld a, $10
+ ld [wcf64], a
+ jp MobileStudium_JumptableIncrement
+
+Function117b14:
+ ld hl, wcf64
+ dec [hl]
+ ret nz
+ ld hl, MenuDataHeader_117cbc
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ jp MobileStudium_JumptableIncrement
+
+Function117b28:
+ ld hl, MobileStadiumEntryText
+ call PrintText
+ jp MobileStudium_JumptableIncrement
+
+Function117b31:
+ ld hl, MenuDataHeader_117cc4
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ hlcoord 16, 8
+ ld de, YesNo117ccc
+ call PlaceString
+ hlcoord 15, 8
+ ld a, "▶"
+ ld [hl], a
+ jp MobileStudium_JumptableIncrement
+
+Function117b4f:
+ ld a, [hJoyPressed]
+ cp B_BUTTON
+ jr z, .b_button
+ cp A_BUTTON
+ jr z, .a_button
+ cp D_DOWN
+ jr z, .d_down
+ cp D_UP
+ ret nz
+ ld a, [wcf64]
+ and a
+ ret z
+ dec a
+ ld [wcf64], a
+ hlcoord 15, 8
+ ld a, "▶"
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, " "
+ ld [hl], a
+ ret
+
+.d_down
+ ld a, [wcf64]
+ and a
+ ret nz
+ inc a
+ ld [wcf64], a
+ hlcoord 15, 8
+ ld a, " "
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, "▶"
+ ld [hl], a
+ ret
+
+.a_button
+ call PlayClickSFX
+ ld a, [wcf64]
+ and a
+ jr nz, .b_button
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ jp MobileStudium_JumptableIncrement
+
+.b_button
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+Function117bb6:
+ call Function117c89
+ ld a, $1
+ ld [hBGMapMode], a
+ callba Function118284
+ call ClearSprites
+ ld a, [wc300]
+ and a
+ jr z, .asm_117be7
+ cp $a
+ jr z, .asm_117be1
+.asm_117bd0
+ ld a, $2
+ ld [wc303], a
+ callba DisplayMobileError
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+.asm_117be1
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+.asm_117be7
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wcd89]
+ and $1
+ jr nz, .asm_117c16
+ ld a, [w3_d000]
+ cp $fe
+ jr nz, .asm_117c16
+ ld a, [w3_d001]
+ cp $f
+ jr nz, .asm_117c16
+ ld hl, w3_dfec
+ ld de, wcd69
+ ld c, $10
+.asm_117c0b
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .asm_117c16
+ inc hl
+ dec c
+ jr nz, .asm_117c0b
+ jr .asm_117c20
+
+.asm_117c16
+ pop af
+ ld [rSVBK], a
+ ld a, $d3
+ ld [wc300], a
+ jr .asm_117bd0
+
+.asm_117c20
+ pop af
+ ld [rSVBK], a
+ callba Function172eb9
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, $7
+ call GetSRAMBank
+ ld hl, w3_d002
+ ld de, $b000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ jp MobileStudium_JumptableIncrement
+
+Function117c4a:
+ ld hl, MenuDataHeader_117cbc
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ ld hl, MobileStadiumSuccessText
+ call PrintText
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, UnknBGPals
+ ld de, 1 palettes
+ ld c, 8
+.loop
+ push hl
+ ld a, $7fff % $100
+ ld [hli], a
+ ld a, $7fff / $100
+ ld [hl], a
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .loop
+ call RotateThreePalettesRight
+ pop af
+ ld [rSVBK], a
+ ld a, $80
+ ld [wJumptableIndex], a
+ ret
+
+Function117c89:
+ ld a, $7
+ call GetSRAMBank
+ ld l, $0
+ ld h, l
+ ld de, $b000
+ ld bc, $0ffc
+.asm_117c97
+ push bc
+ ld a, [de]
+ inc de
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_117c97
+ ld a, l
+ ld [wcd83], a
+ ld a, h
+ ld [wcd84], a
+ ld hl, $bfea
+ ld de, wcd69
+ ld bc, $10
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+MenuDataHeader_117cbc: ; 0x117cbc
+ db $40 ; flags
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL ; menu data 2
+ db 0 ; default option
+
+MenuDataHeader_117cc4: ; 0x117cc4
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL ; menu data 2
+ db 0 ; default item
+
+YesNo117ccc: ; 0x117ccc
+ db "はい"
+ next "いいえ@"
+
+MobileStadiumEntryText: ; 0x117cd3
+ text_jump _MobileStadiumEntryText
+ db "@"
+
+MobileStadiumSuccessText: ; 0x117cd8
+ text_jump _MobileStadiumSuccessText
+ db "@"
+
+MobileStudium_JumptableIncrement: ; 0x117cdd
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
diff --git a/mobile/mobile_45_sprite_engine.asm b/mobile/mobile_45_sprite_engine.asm
new file mode 100755
index 000000000..8493a3cf8
--- /dev/null
+++ b/mobile/mobile_45_sprite_engine.asm
@@ -0,0 +1,922 @@
+Function115d99: ; 115d99
+ ld de, GFX_11601a
+ ld hl, VTiles0 tile $60
+ lb bc, BANK(GFX_11601a), $14
+ call Get2bpp
+ xor a
+ ld [wc305], a
+ ld [wc306], a
+ ld [wc309], a
+ ld [wc30a], a
+ ld [wc30b], a
+ ld [wc30c], a
+ ld a, $10
+ ld [wc307], a
+ ld a, $18
+ ld [wc308], a
+ ret
+
+; 115dc3
+
+Function115dc3: ; 115dc3
+ xor a
+ ld [wc305], a
+ ld a, $a0
+ ld hl, Sprites + 31 * 4
+ ld bc, 8 * 4
+ call ByteFill
+ ret
+
+; 115dd3
+
+Function115dd3: ; 115dd3
+ ld a, [wc305]
+ and a
+ ret z
+ ld a, $a0
+ ld hl, Sprites + 31 * 4
+ ld bc, 8 * 4
+ call ByteFill
+ call Function115e22
+ ld a, [wc309]
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_115e86
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld de, Sprites + 31 * 4
+ ld a, [wc307]
+ ld c, a
+ ld a, [wc308]
+ ld b, a
+ ld a, [hli]
+.asm_115e04
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_115e04
+ ret
+
+; 115e18
+
+Function115e18: ; 115e18
+ ld a, c
+ ld [wc30a], a
+ xor a
+ ld [wc30b], a
+ jr Function115e2b
+
+; 115e22
+
+Function115e22: ; 115e22
+ ld hl, wc30c
+ dec [hl]
+ ret nz
+ ld hl, wc30b
+ inc [hl]
+
+Function115e2b: ; 115e2b
+ ld a, [wc30a]
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_115e59
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc30b]
+ sla a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hli]
+ cp $ff
+ jr nz, .not_end
+ xor a
+ ld [wc30b], a
+ jr Function115e2b
+
+.not_end
+ ld [wc309], a
+ ld a, [hl]
+ ld [wc30c], a
+ ret
+
+; 115e59
+
+Unknown_115e59:
+ dw Unknown_115e61
+ dw Unknown_115e6c
+ dw Unknown_115e76
+ dw Unknown_115e79
+
+; OAM idx (see Unknown_115e86), flip flags/duration
+Unknown_115e61: ; 115e61
+ db $04, $08
+ db $05, $08
+ db $06, $08
+ db $07, $08
+ db $08, $08
+ db -1
+
+Unknown_115e6c: ; 115e6c
+ db $01, $08
+ db $02, $08
+ db $03, $08
+ db $09, $08
+ db $0a, $08
+Unknown_115e76: ; 115e76
+ db $00, $08
+ db -1
+
+Unknown_115e79: ; 115e79
+ db $0b, $08
+ db $0c, $08
+ db $0d, $08
+ db $0e, $08
+ db $0f, $08
+ db $00, $08
+ db -1
+; 115e86
+
+Unknown_115e86:
+ dw Unknown_115ea6
+ dw Unknown_115eb7
+ dw Unknown_115ecc
+ dw Unknown_115ee1
+ dw Unknown_115ef6
+ dw Unknown_115f13
+ dw Unknown_115f30
+ dw Unknown_115f4d
+ dw Unknown_115f6a
+ dw Unknown_115f87
+ dw Unknown_115f9c
+ dw Unknown_115fb1
+ dw Unknown_115fc6
+ dw Unknown_115fdb
+ dw Unknown_115ff0
+ dw Unknown_116005
+
+Unknown_115ea6: ; 115ea6
+ db 4
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115eb7: ; 115eb7
+ db 5
+ dsprite 0, 0, 1, 0, $64, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ecc: ; 115ecc
+ db 5
+ dsprite 0, 0, 1, 0, $65, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ee1: ; 115ee1
+ db 5
+ dsprite 0, 0, 1, 0, $66, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ef6: ; 115ef6
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $6d, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f13: ; 115f13
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $6e, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f30: ; 115f30
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $6f, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f4d: ; 115f4d
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $70, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f6a: ; 115f6a
+ db 7
+ dsprite 0, 0, 0, 0, $67, $01
+ dsprite 1, 0, 0, 0, $68, $01
+ dsprite 2, 0, 0, 0, $71, $00
+ dsprite 2, 0, 1, 0, $69, $00
+ dsprite 2, 0, 2, 0, $6a, $00
+ dsprite 3, 0, 1, 0, $6b, $00
+ dsprite 3, 0, 2, 0, $6c, $00
+
+Unknown_115f87: ; 115f87
+ db 5
+ dsprite 0, 0, 1, 0, $72, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115f9c: ; 115f9c
+ db 5
+ dsprite 0, 0, 1, 0, $73, $00
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115fb1: ; 115fb1
+ db 5
+ dsprite 0, 1, 1, 0, $64, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115fc6: ; 115fc6
+ db 5
+ dsprite 0, 1, 1, 0, $65, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115fdb: ; 115fdb
+ db 5
+ dsprite 0, 1, 1, 0, $66, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_115ff0: ; 115ff0
+ db 5
+ dsprite 0, 1, 1, 0, $72, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+
+Unknown_116005: ; 116005
+ db 5
+ dsprite 0, 1, 1, 0, $73, $60
+ dsprite 1, 0, 0, 0, $60, $01
+ dsprite 1, 0, 1, 0, $61, $01
+ dsprite 2, 0, 0, 0, $62, $01
+ dsprite 2, 0, 1, 0, $63, $01
+; 11601a
+
+GFX_11601a:: ; 11601a
+INCBIN "gfx/unknown/11601a.2bpp"
+
+
+Function11615a: ; 11615a
+ xor a
+ ld [wc30d], a
+ ld [$c319], a
+ ld [wc310], a
+ ld [wc311], a
+ ld [wc312], a
+ ld [wc313], a
+ ld [wc314], a
+ ld [wc314 + 1], a
+ ld [wc314 + 4], a
+ ld [wc3f6], a
+ ld [wc3f8], a
+ ld [wc3f2], a
+ ld [wc3f4], a
+ ld a, $24
+ ld [wc3f5], a
+ ld a, $7
+ ld [wc3f7], a
+ ld a, $b0
+ ld [wc30e], a
+ ld [wc3f1], a
+ ld a, $48
+ ld [wc30f], a
+ ld [wc3f3], a
+ ret
+
+; 11619d
+
+Function11619d: ; 11619d
+ ld a, [wc30d]
+ and a
+ ret z
+ ld a, [$c319]
+ cp $2
+ jr c, .asm_1161b4
+ ld a, $a0
+ ld hl, Sprites
+ ld bc, $0064
+ call ByteFill
+
+.asm_1161b4
+ call Function1161b8
+ ret
+
+; 1161b8
+
+Function1161b8: ; 1161b8
+ ld a, [$c319]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+; 1161c7
+
+.Jumptable: ; 1161c7
+ dw Function1161d5
+ dw Function116294
+ dw Function1162cb
+ dw Function1162f2
+ dw Function1163c0
+ dw Function11636e
+ dw Function116441
+; 1161d5
+
+Function1161d5: ; 1161d5
+ ld a, [rSVBK]
+ push af
+
+ ld a, $6
+ ld [rSVBK], a
+
+ ld hl, Unknown_117356
+ ld de, wDecompressScratch
+ ld bc, $0300
+ call CopyBytes
+
+ di
+
+.wait_for_vblank
+; Wait until a vblank would occur had interrupts not just been disabled.
+ ld a, [rLY]
+ cp $91
+ jr nz, .wait_for_vblank
+
+ ld a, $d0
+ ld [rHDMA1], a
+ ld a, $0
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d0
+ ld [rHDMA1], a
+ ld a, $80
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ ld a, $80
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d1
+ ld [rHDMA1], a
+ ld a, $0
+ ld [rHDMA2], a
+ ld a, $1d
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $1
+ ld [rVBK], a
+
+ ld a, $d1
+ ld [rHDMA1], a
+ ld a, $80
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d2
+ ld [rHDMA1], a
+ ld a, $0
+ ld [rHDMA2], a
+ ld a, $1c
+ ld [rHDMA3], a
+ ld a, $80
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ ld a, $d2
+ ld [rHDMA1], a
+ ld a, $80
+ ld [rHDMA2], a
+ ld a, $1d
+ ld [rHDMA3], a
+ xor a
+ ld [rHDMA4], a
+ ld a, $8
+ ld [rHDMA5], a
+
+ xor a
+ ld [rVBK], a
+
+ ei
+
+ pop af
+ ld [rSVBK], a
+
+ callba ReloadMapPart
+ ld a, $8
+ ld [MusicFade], a
+ ld de, MUSIC_MOBILE_ADAPTER
+ ld a, e
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ ld a, [$c319]
+ inc a
+ ld [$c319], a
+ ret
+
+; 11628c
+
+MenuDataHeader_11628c: ; 11628c
+ db $40 ; flags
+ db 6, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 116294
+
+Function116294: ; 116294
+ callba Function170d02
+ ld a, [$c319]
+ inc a
+ ld [$c319], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, UnknBGPals palette 6
+ ld de, $c320
+ ld bc, 2 palettes
+ call CopyBytes
+ ld hl, Palette_11734e
+ ld de, UnknBGPals palette 7
+ ld bc, 1 palettes
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ld a, $30
+ ld [hWY], a
+ ret
+
+; 1162cb
+
+Function1162cb: ; 1162cb
+ callba Function170cc6
+ ld a, [$c319]
+ inc a
+ ld [$c319], a
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_11730e
+ ld de, UnknOBPals + 2 palettes
+ ld bc, 6 palettes
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+
+; 1162f2
+
+Function1162f2: ; 1162f2
+ call Function11659d
+ call Function116758
+ call Function1167a6
+ ld a, [wc310]
+ cp EGG
+ ret z
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1168c5
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc30e]
+ ld c, a
+ ld a, [wc30f]
+ ld b, a
+ ld a, [wc314 + 4]
+ ld e, a
+ ld a, [hli]
+ sub e
+ ld de, Sprites + $24
+.asm_116321
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_116321
+ call Function116468
+ ld a, [wc3f5]
+ sla a
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_1168c5
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ push de
+ pop hl
+ ld a, [wc3f1]
+ ld c, a
+ ld a, [wc3f3]
+ ld b, a
+ ld a, [wc3f8]
+ ld e, a
+ ld a, [hli]
+ sub e
+ ld de, Sprites
+.asm_11635a
+ push af
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_11635a
+ ret
+
+; 11636e
+
+Function11636e: ; 11636e
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, BGPals
+ ld de, UnknBGPals
+ ld bc, $0040
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call SetPalettes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $a0
+ ld hl, Sprites
+ ld bc, 16 * 4
+ call ByteFill
+ ld a, $90
+ ld [hWY], a
+ call UpdateSprites
+ pop af
+ ld [rSVBK], a
+ callba ReloadMapPart
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ xor a
+ ld [$c319], a
+ ld [wc30d], a
+ ret
+
+; 1163c0
+
+Function1163c0: ; 1163c0
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $a0
+ ld hl, Sprites
+ ld bc, 16 * 4
+ call ByteFill
+ call DelayFrame
+ callba Function14146
+ ld b, SCGB_MAPPALS
+ call GetSGBLayout
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $c320
+ ld de, wd030
+ ld bc, $0010
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call SetPalettes
+ call DelayFrame
+ ld a, $90
+ ld [hWY], a
+ call UpdateSprites
+ callba Function14157
+ pop af
+ ld [rSVBK], a
+ callba ReloadMapPart
+ ld a, [wLinkMode]
+ cp $4
+ jr z, .asm_11642a
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ jr .asm_116439
+
+.asm_11642a
+ ld a, $8
+ ld [MusicFade], a
+ ld a, $0
+ ld [MusicFadeID], a
+ ld a, $0
+ ld [MusicFadeID + 1], a
+
+.asm_116439
+ xor a
+ ld [$c319], a
+ ld [wc30d], a
+ ret
+
+; 116441
+
+Function116441: ; 116441
+ callba Function17d405
+ ld a, $90
+ ld [hWY], a
+ callba ReloadMapPart
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ xor a
+ ld [$c319], a
+ ld [wc30d], a
+ ret
+
+; 116468
+
+Function116468: ; 116468
+ call Function116567
+ ld a, [wc314]
+ cp $d
+ jr nz, .asm_1164a8
+ ld hl, wc30e
+ ld a, [hl]
+ cp $50
+ jr nc, .asm_116484
+ ld a, $50
+ sub [hl]
+ add $50
+ ld [wc3f1], a
+ jr .asm_11648d
+
+.asm_116484
+ sub $50
+ ld c, a
+ ld a, $50
+ sub c
+ ld [wc3f1], a
+
+.asm_11648d
+ ld hl, wc30f
+ ld a, [hl]
+ cp $60
+ jr nc, .asm_11649e
+ ld a, $60
+ sub [hl]
+ add $60
+ ld [wc3f3], a
+ ret
+
+.asm_11649e
+ sub $60
+ ld c, a
+ ld a, $60
+ sub c
+ ld [wc3f3], a
+ ret
+
+.asm_1164a8
+ ld hl, wc30e
+ ld a, $b0
+ cp [hl]
+ jr nc, .asm_1164b8
+ ld a, [wc3f1]
+ and a
+ jr z, .asm_11650b
+ jr .asm_1164f2
+
+.asm_1164b8
+ ld a, [wc3f1]
+ sub [hl]
+ jr nc, .asm_1164c1
+ xor $ff
+ inc a
+
+.asm_1164c1
+ ld b, a
+ ld c, $0
+ ld a, $5
+.asm_1164c6
+ srl b
+ rr c
+ dec a
+ jr nz, .asm_1164c6
+ ld a, c
+ ld [wc3fa], a
+ ld a, b
+ ld [wc3f9], a
+ ld a, [wc3f1]
+ sub [hl]
+ jr c, .asm_1164f2
+ ld c, $0
+ ld a, [wc3fa]
+ xor $ff
+ add $1
+ rl c
+ ld [wc3fa], a
+ ld a, [wc3f9]
+ xor $ff
+ add c
+ ld [wc3f9], a
+
+.asm_1164f2
+ ld a, [wc3f2]
+ ld l, a
+ ld a, [wc3f1]
+ ld h, a
+ ld a, [wc3fa]
+ ld e, a
+ ld a, [wc3f9]
+ ld d, a
+ add hl, de
+ ld a, l
+ ld [wc3f2], a
+ ld a, h
+ ld [wc3f1], a
+
+.asm_11650b
+ ld hl, wc30f
+ ld a, $b0
+ cp [hl]
+ jr c, .asm_11654d
+ ld a, [wc3f3]
+ sub [hl]
+ jr nc, .asm_11651c
+ xor $ff
+ inc a
+
+.asm_11651c
+ ld b, a
+ ld c, $0
+ ld a, $5
+.asm_116521
+ srl b
+ rr c
+ dec a
+ jr nz, .asm_116521
+ ld a, c
+ ld [wc3fc], a
+ ld a, b
+ ld [wc3fb], a
+ ld a, [wc3f3]
+ sub [hl]
+ jr c, .asm_11654d
+ ld c, $0
+ ld a, [wc3fc]
+ xor $ff
+ add $1
+ rl c
+ ld [wc3fc], a
+ ld a, [wc3fb]
+ xor $ff
+ add c
+ ld [wc3fb], a
+
+.asm_11654d
+ ld a, [wc3f4]
+ ld l, a
+ ld a, [wc3f3]
+ ld h, a
+ ld a, [wc3fc]
+ ld e, a
+ ld a, [wc3fb]
+ ld d, a
+ add hl, de
+ ld a, l
+ ld [wc3f4], a
+ ld a, h
+ ld [wc3f3], a
+ ret
diff --git a/mobile/mobile_46.asm b/mobile/mobile_46.asm
new file mode 100755
index 000000000..19b255c34
--- /dev/null
+++ b/mobile/mobile_46.asm
@@ -0,0 +1,7987 @@
+SECTION "bank46", ROMX
+
+Function118000: ; 118000
+ ld a, $1
+ ld [wcd38], a
+ jr asm_11800b
+
+Function118007: ; 118007
+ xor a
+ ld [wcd38], a
+
+asm_11800b
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $18
+ ld [wcd33], a
+ ld a, $19
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.loop
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1b
+ jr c, .skip
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.skip
+ call Function1184a5
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .loop
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+BattleTowerRoomMenu_DoNothing: ; 11805e (46:405e)
+ ret
+; 11805f
+
+Function11805f: ; 11805f
+ ld a, $1
+ ld [wcd38], a
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $18
+ ld [wcd33], a
+ ld a, $19
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11807d
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1b
+ jr c, .asm_118090
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118090
+ call Function11857c
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11807d
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 1180b8
+
+Function1180b8: ; 1180b8
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $22
+ ld [wcd33], a
+ ld a, $23
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1180d1
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $28
+ jr c, .asm_1180e4
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_1180e4
+ ld a, [wcf66]
+ cp $10
+ jr c, .asm_1180f2
+ cp $16
+ jr nc, .asm_1180f2
+ call Function11884c
+
+.asm_1180f2
+ call Function1184ec
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1180d1
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 11811a
+
+Function11811a: ; 11811a
+ ld a, 1
+ ld [wcd38], a
+ jr Function118125
+
+_BattleTowerRoomMenu: ; 118121
+ xor a
+ ld [wcd38], a
+Function118125: ; 118125
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $3
+ ld [wcd33], a
+ ld a, $d
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.loop
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $f
+ jr c, .skip
+ ld a, [wcd34]
+ ld [wcf66], a
+.skip
+ call BattleTowerRoomMenu_Jumptable
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .loop
+ xor a
+ ld [w3_d000], a
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call Function118180
+ call ReturnToMapFromSubmenu
+ ret
+; 118180
+
+Function118180: ; 118180
+ ld a, [ScriptVar]
+ and a
+ ret nz
+ ld a, [wcd38]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld hl, wcd69
+ ld de, $a89c
+ ld bc, $0016
+ call CopyBytes
+
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+
+ ld de, w3_d202
+ ld c, $96
+ callba CheckStringForErrors_IgnoreTerminator
+ jr c, .return_d3
+
+ ld de, w3_d202
+ lb bc, 1, $96
+ callba CheckStringContainsLessThanBNextCharacters
+ jr c, .return_d3
+
+ ld hl, w3_d202
+ ld de, $a8b2
+ ld bc, $0096
+ call CopyBytes
+.reset_banks
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+.return_d3
+ ld a, $d3
+ ld [wc300], a
+ ld [ScriptVar], a
+ jr .reset_banks
+; 1181da
+
+Function1181da: ; 1181da
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $2
+ ld [wcd38], a
+ ld a, $21
+ ld [wcd33], a
+ ld a, $22
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1181f8
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $28
+ jr c, .asm_11820b
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_11820b
+ call Function1185c3
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1181f8
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 118233
+
+Function118233: ; 118233
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $1b
+ ld [wcd33], a
+ ld a, $1c
+ ld [wcd34], a
+ ld a, $6
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11824c
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1e
+ jr c, .asm_11825f
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_11825f
+ call Function118624
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11824c
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 118284
+
+Function118284: ; 118284
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $19
+ ld [wcd33], a
+ ld a, $1e
+ ld [wcd34], a
+ ld a, $5
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_11829d
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $20
+ jr c, .asm_1182b0
+ ld a, [wcd34]
+ ld [wcf66], a
+.asm_1182b0
+ call Function1186f5
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11829d
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 1182d5 (46:42d5)
+
+
+Function1182d5: ; 1182d5
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $18
+ ld [wcd33], a
+ ld a, $19
+ ld [wcd34], a
+ ld a, $4
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_1182ee
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1b
+ jr c, .asm_118301
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118301
+ call Function118746
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1182ee
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ call ReturnToMapFromSubmenu
+ ret
+; 118329
+
+Function118329: ; 118329
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $15
+ ld [wcd33], a
+ ld a, $16
+ ld [wcd34], a
+ ld a, $6
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_118342
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $18
+ jr c, .asm_118355
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118355
+ call Function118671
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_118342
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 11837a
+
+Function11837a: ; 11837a
+ call BattleTowerRoomMenu_InitRAM
+ ld a, $16
+ ld [wcd33], a
+ ld a, $17
+ ld [wcd34], a
+ ld a, $6
+ ld [wc3f0], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+.asm_118393
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $19
+ jr c, .asm_1183a6
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_1183a6
+ call Function1186b2
+ call BattleTowerRoomMenu_WriteMessage
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_118393
+ pop af
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_Cleanup
+ ret
+; 1183cb
+
+BattleTowerRoomMenu_InitRAM: ; 1183cb
+ di
+ ld a, [rIE]
+ ld [wcd32], a
+ call DoubleSpeed
+ xor a
+ ld [rIF], a
+ ld [wc300], a
+ ld [wc301], a
+ ld [wc302], a
+ ld [wcd80], a
+ ld [wcd65], a
+ ld [wcd66], a
+ ld [wcd67], a
+ ld [wcd68], a
+ ld [$c31a], a
+ ld [wcd89], a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld [wc3ec], a
+ ld [wc3ed], a
+ ld [wc3ee], a
+ ld [wc3ef], a
+ ld hl, VramState
+ ld a, [hl]
+ ld [wcd7f], a
+ set 1, [hl]
+ ld a, $f
+ ld [rIE], a
+ ld a, $1
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ei
+ callba MobileFunc_106462
+ callba Function106464
+ callba Function115d99
+ callba Function11615a
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$bfff], a
+ call CloseSRAM
+ ret
+; 118440
+
+Function118440: ; 118440
+ push af
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$bfff]
+ inc a
+ ld [$bfff], a
+ call CloseSRAM
+ pop af
+ ret
+; 118452
+
+BattleTowerRoomMenu_Cleanup: ; 118452
+ di
+ xor a
+ ld [hMobileReceive], a
+ ld [hMobile], a
+ ld [hVBlank], a
+ call NormalSpeed
+ xor a
+ ld [rIF], a
+ ld a, [wcd32]
+ ld [rIE], a
+ ei
+ ld a, [wcd7f]
+ ld [VramState], a
+ ld a, [wc300]
+ ld [ScriptVar], a
+ ret
+; 118473
+
+Function118473: ; 118473
+ ld a, [wcd65]
+ and a
+ ret z
+ ld a, [wcd66]
+ inc a
+ ld [wcd66], a
+ cp 60
+ ret nz
+ xor a
+ ld [wcd66], a
+ ld a, [wcd67]
+ inc a
+ ld [wcd67], a
+ cp 60
+ ret nz
+ ld a, [wcd68]
+ inc a
+ ld [wcd68], a
+ cp 99
+ jr z, .ninety_nine
+ xor a
+ ld [wcd67], a
+ ret
+
+.ninety_nine
+ xor a
+ ld [wcd65], a
+ ret
+; 1184a5
+
+Function1184a5: ; 1184a5
+ jumptable .Jumptable, wcf66
+; 1184b4
+
+.Jumptable: ; 1184b4
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118a8f
+ dw Function11878d
+ dw Function118d80
+ dw Function118d9b
+ dw Function11878d
+ dw Function118ded
+ dw Function118e6d
+ dw Function11878d
+ dw Function11984e
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1184ec
+
+Function1184ec: ; 1184ec
+ jumptable .Jumptable, wcf66
+; 1184fb
+
+.Jumptable: ; 1184fb
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function119954
+ dw Function11878d
+ dw Function119973
+ dw Function11878d
+ dw Function119987
+ dw Function11878d
+ dw Function1199b4
+ dw Function1199ca
+ dw Function11878d
+ dw Function1199e2
+ dw Function119b0d
+ dw Function11878d
+ dw Function119b6b
+ dw Function119b3b
+ dw Function11878d
+ dw Function119b52
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function119b45
+ dw Function11878d
+ dw Function119ac9
+ dw Function118e76
+; 11854d
+
+BattleTowerRoomMenu_Jumptable: ; 11854d
+ jumptable .Jumptable, wcf66
+; 11855c
+
+.Jumptable: ; 11855c
+ dw BattleTowerRoomMenu_PickLevelMessage
+ dw BattleTowerRoomMenu_PlacePickLevelMenu
+ dw BattleTowerRoomMenu_UpdatePickLevelMenu
+ dw BattleTowerRoomMenu_DoNothing
+ dw BattleTowerRoomMenu_PartyMonTopsThisLevelMessage
+ dw BattleTowerRoomMenu_WaitForMessage
+ dw BattleTowerRoomMenu_DelayRestartMenu
+ dw BattleTowerRoomMenu_QuitMessage
+ dw BattleTowerRoomMenu_PlaceYesNoMenu
+ dw BattleTowerRoomMenu_UpdateYesNoMenu
+ dw BattleTowerRoomMenu_UberRestrictionMessage
+ dw BattleTowerRoomMenu_WaitForMessage
+ dw BattleTowerRoomMenu_DelayRestartMenu
+ dw Function118e76 ; mobile
+ dw BattleTowerRoomMenu_CallRoomMenu2 ; mobile
+ dw Function118e76 ; mobile
+; 11857c
+
+Function11857c: ; 11857c
+ jumptable .Jumptable, wcf66
+; 11858b
+
+.Jumptable: ; 11858b
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118a7a
+ dw Function11878d
+ dw Function11891c
+ dw Function1198ee
+ dw Function1198f7
+ dw Function11878d
+ dw Function119937
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1185c3
+
+Function1185c3: ; 1185c3
+ jumptable .Jumptable, wcf66
+; 1185d2
+
+.Jumptable: ; 1185d2
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118aa4
+ dw Function11878d
+ dw Function118e92
+ dw Function11878d
+ dw Function118eb0
+ dw Function118ec6
+ dw Function118f0d
+ dw Function118f14
+ dw Function118f5e
+ dw Function11878d
+ dw Function118fc0
+ dw Function11878d
+ dw Function119054
+ dw Function1190d0
+ dw Function11878d
+ dw Function1190ec
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw BattleTowerRoomMenu_QuitMessage
+ dw BattleTowerRoomMenu_PlaceYesNoMenu
+ dw BattleTowerRoomMenu_UpdateYesNoMenu
+ dw Function11914e
+ dw Function118e76
+; 118624
+
+Function118624: ; 118624
+ jumptable .Jumptable, wcf66
+; 118633
+
+.Jumptable: ; 118633
+ dw Function118866
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118aa4
+ dw Function11878d
+ dw Function118e92
+ dw Function11878d
+ dw Function11915d
+ dw Function118f68
+ dw Function11878d
+ dw Function119009
+ dw Function11878d
+ dw Function119054
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 118671
+
+Function118671: ; 118671
+ jumptable .Jumptable, wcf66
+; 118680
+
+.Jumptable: ; 118680
+ dw Function118866
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function119380
+ dw Function119388
+ dw Function1193a0
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1186b2
+
+Function1186b2: ; 1186b2
+ jumptable .Jumptable, wcf66
+; 1186c1
+
+.Jumptable: ; 1186c1
+ dw Function118866
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function119380
+ dw Function1193e3
+ dw Function1193fb
+ dw Function11878d
+ dw Function119413
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 1186f5
+
+Function1186f5: ; 1186f5 (46:46f5)
+ jumptable .Jumptable, wcf66
+; 118704 (46:4704)
+
+.Jumptable: ; 118704 (46:4704)
+ dw Function11886a
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118abc
+ dw Function11878d
+ dw Function119451
+ dw Function1195f8
+ dw Function119612
+ dw Function119629
+ dw Function119648
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function11967d
+ dw Function119685
+ dw Function119665
+ dw Function11966d
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 118746 (46:4746)
+
+Function118746: ; 118746
+ jumptable .Jumptable, wcf66
+; 118755
+
+.Jumptable: ; 118755
+ dw Function11886e
+ dw Function118880
+ dw Function11878d
+ dw Function1188b0
+ dw Function11878d
+ dw Function1188b8
+ dw Function11878d
+ dw Function1188c0
+ dw Function11878d
+ dw Function1188c8
+ dw Function11878d
+ dw Function118903
+ dw Function118ad0
+ dw Function11878d
+ dw Function1196f2
+ dw Function1197c9
+ dw Function1197dc
+ dw Function11878d
+ dw Function118e6d
+ dw Function11878d
+ dw Function119800
+ dw Function118e76
+ dw Function118e7e
+ dw Function11878d
+ dw BattleTowerRoomMenu_DoNothing
+ dw Function118e76
+ dw BattleTowerRoomMenu_CallRoomMenu2
+ dw Function118e76
+; 11878d
+
+Function11878d: ; 11878d (46:478d)
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_1187af
+ bit 2, a
+ jr nz, .asm_1187d1
+ bit 0, a
+ jr nz, .asm_1187aa
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_1187a7
+ ld a, $3
+ ld [rSVBK], a
+.asm_1187a7
+ jp BattleTowerRoomMenu_IncrementJumptable
+.asm_1187aa
+ call Function118821
+ ret c
+ ret
+.asm_1187af
+ ld a, $0
+ call Function3e32
+ ld [wc300], a
+ ld a, l
+ ld [wc301], a
+ ld a, h
+ ld [wc302], a
+ ld a, $a
+ call Function3e32
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ ret
+.asm_1187d1
+ ld hl, wcd89
+ bit 0, [hl]
+ jr nz, .asm_118803
+ set 0, [hl]
+ ld a, $6
+ ld [rSVBK], a
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, [hl]
+ sla a
+ jr c, .asm_1187f9
+ sla a
+ jr c, .asm_1187fd
+ sla a
+ jr c, .asm_1187f5
+ ld a, $24
+ jr .asm_1187ff
+.asm_1187f5
+ ld a, $28
+ jr .asm_1187ff
+.asm_1187f9
+ ld a, $2a
+ jr .asm_1187ff
+.asm_1187fd
+ ld a, $2c
+.asm_1187ff
+ call Function3e32
+ ret
+.asm_118803
+ ld a, $d3
+
+Function118805: ; 118805 (46:4805)
+ ld [wc300], a
+ xor a
+ ld [wc301], a
+ ld [wc302], a
+ ld a, $a
+ call Function3e32
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ ret
+
+Function118821: ; 118821 (46:4821)
+ ld a, [$c319]
+ cp $3
+ jr c, .asm_11884a
+ cp $4
+ jr z, .asm_11884a
+ ld a, [hJoyDown]
+ cp $5
+ jr nz, .asm_11884a
+ ld a, $a
+ call Function3e32
+ ld a, $a
+ ld [wc300], a
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ scf
+ ret
+.asm_11884a
+ and a
+ ret
+; 11884c (46:484c)
+
+Function11884c: ; 11884c
+ ld a, [hJoyDown]
+ cp $5
+ jr nz, .asm_118864
+ ld a, $a
+ call Function3e32
+ ld a, $a
+ ld [wc300], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ scf
+ ret
+
+.asm_118864
+ and a
+ ret
+; 118866
+
+Function118866:
+ ld a, 2
+ jr asm_11886f
+
+Function11886a: ; 11886a (46:486a)
+ ld a, 1
+ jr asm_11886f
+; 11886e (46:486e)
+
+Function11886e:
+ xor a
+
+asm_11886f
+ ld [BGMapPalBuffer], a
+ ld a, $0
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+ ld a, [wcd33]
+ ld [wMobileInactivityTimerSeconds], a
+
+Function118880: ; 118880 (46:4880)
+ call BattleTowerRoomMenu2
+ ret c
+ xor a
+ ld [wcf64], a
+ ld [wc807], a
+ ld de, wcd81
+ ld hl, $46
+ ld a, $2
+ jp Function119e2b
+; 118896 (46:4896)
+
+Function118896: ; 118896
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_1188a5
+ bit 2, a
+ jr nz, .asm_1188a5
+ bit 0, a
+ jr z, .asm_1188aa
+
+.asm_1188a5
+ ld a, $34
+ jp Function119e2b
+
+.asm_1188aa
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 1188b0
+
+Function1188b0: ; 1188b0 (46:48b0)
+ ld de, $c346
+ ld a, $c
+ jp Function119e2b
+
+Function1188b8: ; 1188b8 (46:48b8)
+ ld de, wc3ac
+ ld a, $e
+ jp Function119e2b
+
+Function1188c0: ; 1188c0 (46:48c0)
+ ld de, wc3cd
+ ld a, $10
+ jp Function119e2b
+
+Function1188c8: ; 1188c8 (46:48c8)
+ ld a, $1
+ ld [wcd65], a
+ call Function1188e7
+ ld hl, $c708
+.asm_1188d3
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .asm_1188d3
+ call Function119eb4
+ call Function119ec2
+ ld hl, $c708
+ ld a, $6
+ jp Function119e2b
+
+Function1188e7: ; 1188e7 (46:48e7)
+ ld de, $c346
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa4a]
+ call CloseSRAM
+ and a
+ ret z
+ sla a
+ ld c, a
+.asm_1188fa
+ ld a, [de]
+ inc de
+ and a
+ jr nz, .asm_1188fa
+ dec c
+ jr nz, .asm_1188fa
+ ret
+
+Function118903: ; 118903 (46:4903)
+ ld a, [wc3f0]
+ ld [$c319], a
+ ld c, $1
+ callba Function115e18
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+
+Function11891c: ; 11891c
+ call Function118b42
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+
+BattleTowerRoomMenu_PickLevelMessage: ; 118922
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_11892d
+ ld hl, Text_WhatLevelDoYouWantToChallenge
+ jr .asm_118930
+
+.asm_11892d
+ ld hl, Text_CheckBattleRoomListByMaxLevel
+
+.asm_118930
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_PlacePickLevelMenu:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld hl, MenuDataHeader_119cf7
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ call ApplyTilemap
+ hlcoord 16, 8, AttrMap
+ ld a, $40
+ or [hl]
+ ld [hl], a
+ call WaitBGMap2
+ ld a, $1
+ ld [wcd4f], a
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [StatusFlags]
+ bit 6, a ; Hall Of Fame
+ jr nz, .asm_11896b
+ ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels
+ ld a, 5 ; 4 levels to choose from, including 'Cancel'-option
+ jr .asm_118970
+
+.asm_11896b
+ ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels
+ ld a, 11 ; 10 levels to choose from, including 'Cancel'-option
+
+.asm_118970
+ ld [wcd4a], a
+ ld a, l
+ ld [wcd4b], a
+ ld a, h
+ ld [wcd4c], a
+ ld a, $3
+ ld [rSVBK], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_UpdatePickLevelMenu:
+ hlcoord 13, 8
+ ld de, String_119d07
+ call PlaceString
+ hlcoord 13, 10
+ ld de, String_119d07
+ call PlaceString
+ ld a, [wcd4b]
+ ld l, a
+ ld a, [wcd4c]
+ ld h, a
+ ld d, $0
+ ld a, [wcd4f]
+ dec a
+ rlca
+ rlca
+ rlca
+ ld e, a
+ add hl, de
+ ld a, l
+ ld e, a
+ ld a, h
+ ld d, a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld bc, StringBuffer3
+.asm_1189b5
+ ld a, [hli]
+ cp $50
+ jr z, .asm_1189c4
+ cp $7f
+ jr z, .asm_1189c2
+ ld [bc], a
+ inc bc
+ jr .asm_1189b5
+
+.asm_1189c2
+ ld a, $50
+
+.asm_1189c4
+ ld [bc], a
+ pop af
+ ld [rSVBK], a
+ hlcoord 13, 9
+ call PlaceString
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b_button
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a_button
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .d_down
+ ld a, [hl]
+ and D_UP
+ jr nz, .d_up
+.asm_1189e5
+ ret
+
+.d_down
+ ld hl, wcd4f
+ dec [hl]
+ jr nz, .asm_1189e5
+ ld a, [wcd4a]
+ ld [hl], a
+ jr .asm_1189e5
+
+.d_up
+ ld a, [wcd4a]
+ ld hl, wcd4f
+ inc [hl]
+ cp [hl]
+ jr nc, .asm_1189e5
+ ld a, $1
+ ld [hl], a
+ jr .asm_1189e5
+
+.a_button
+ call PlayClickSFX
+ ld a, [wcd4f]
+ ld hl, wcd4a
+ cp [hl]
+ jr z, .asm_118a3c
+ dec a
+ and $fe
+ srl a
+ ld [wcf65], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call CloseWindow
+ pop af
+ ld [rSVBK], a
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_118a30
+ call BattleTower_LevelCheck
+ ret c
+ call BattleTower_UbersCheck
+ ret c
+
+.asm_118a30
+ ld a, [wcd4f]
+ ld [w3_d800], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.b_button
+ call PlayClickSFX
+
+.asm_118a3c
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call CloseWindow
+ pop af
+ ld [rSVBK], a
+ ld a, $7
+ ld [wcf66], a
+ ld a, $0
+ ld [wMobileInactivityTimerFrames], a
+ ret
+
+
+
+Function118a54: ; 118a54
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, wc3ec
+ ld bc, $0004
+ jp Function118ae4
+; 118a65
+
+Function118a65: ; 118a65
+ ld hl, BattleDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 118a7a
+
+Function118a7a: ; 118a7a
+ ld hl, BattleDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 118a8f
+
+Function118a8f: ; 118a8f
+ ld hl, ExchangeDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 118aa4
+
+Function118aa4: ; 118aa4
+ ld hl, NewsDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld a, $5
+ ld [rSVBK], a
+ ld de, w3_d100
+ ld bc, $e00
+ jr Function118b10
+; 118abc
+
+Function118abc: ; 118abc (46:4abc)
+ ld hl, MenuDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jr Function118b10
+; 118ad0 (46:4ad0)
+
+Function118ad0:
+ ld hl, IndexDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, w3_d000
+ ld bc, $1000
+ jr Function118b10
+
+Function118ae4:
+ push bc
+ push de
+ push hl
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ pop hl
+ ld c, $0
+ ld de, wcc60
+.asm_118af5
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_118b06
+ inc c
+ ld a, c
+ cp $a6
+ jr c, .asm_118af5
+ ld a, $da
+ jp Function118805
+
+.asm_118b06
+ call Function118b24
+ pop de
+ pop bc
+ ld a, $2a
+ jp Function119e2b
+; 118b10
+
+Function118b10:
+ push de
+ push bc
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ call Function118b24
+ pop bc
+ pop de
+ ld a, $2a
+ jp Function119e2b
+
+Function118b24: ; 118b24 (46:4b24)
+ ld hl, $c346
+ ld a, $8
+ ld [hli], a
+ ld a, $c7
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $80
+ ld [wcd89], a
+ ld hl, $c346
+ ret
+; 118b42 (46:4b42)
+
+Function118b42: ; 118b42
+ ld hl, wd002
+ ld a, l
+ ld [wcd51], a
+ ld a, h
+ ld [wcd52], a
+ call Function118b8c
+ ld a, l
+ ld [wcd55], a
+ ld [wcd59], a
+ ld a, h
+ ld [wcd56], a
+ ld [wcd5a], a
+ call Function118b8c
+ ld a, l
+ ld [wcd53], a
+ ld [wcd5d], a
+ ld a, h
+ ld [wcd54], a
+ ld [wcd5e], a
+ call Function118b8c
+ ld a, l
+ ld [wcd57], a
+ ld [wcd5b], a
+ ld a, h
+ ld [wcd58], a
+ ld [wcd5c], a
+ call Function118b8c
+ ld a, l
+ ld [wcd5f], a
+ ld a, h
+ ld [wcd60], a
+ ret
+; 118b8c
+
+Function118b8c: ; 118b8c
+.asm_118b8c
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_118b8c
+ dec hl
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ret
+; 118b9a
+
+Function118b9a: ; 118b9a
+ ld a, h
+ cp $e0
+ ret c
+ ld a, $d3
+ call Function118805
+ and a
+ ret
+; 118ba5
+
+
+ charmap " ", $20 ; revert to ascii
+
+ExchangeDownloadURL: ; 0x118ba5
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0
+
+BattleDownloadURL: ; 0x118bf7
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0
+
+NewsDownloadURL: ; 0x118c47
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0
+
+MenuDownloadURL: ; 0x118c95
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0
+
+IndexDownloadURL: ; 0x118ce5
+ db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0
+
+
+Function118d35: ; 118d35
+; unreferenced
+ ld hl, $d200
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_118d6e
+ ld a, [hli]
+ cp $94
+ jr nz, .asm_118d7b
+ ld a, [hl]
+ cp $5
+ jr nz, .asm_118d7b
+ ld a, [wcd4f]
+ sla a
+ ld b, a
+ sla a
+ sla a
+ add b
+ ld b, a
+ ld a, $5
+ call GetSRAMBank
+ ld a, b
+ ld [$b2fb], a
+ call CloseSRAM
+ callba Function170be4
+ callba Function1700c4
+ jr .asm_118d78
+
+.asm_118d6e
+ ld a, [hli]
+ cp $96
+ jr nz, .asm_118d7b
+ ld a, [hl]
+ cp $0
+ jr nz, .asm_118d7b
+
+.asm_118d78
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_118d7b
+ ld a, $d3
+ jp Function118805
+; 118d80
+
+Function118d80: ; 118d80
+ call Function118e06
+ ld a, [wcd38]
+ and a
+ jr z, .asm_118d8e
+ call BattleTowerRoomMenu_IncrementJumptable
+ jr asm_118d9f
+
+.asm_118d8e
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $12
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function118d9b:
+ call BattleTowerRoomMenu2
+ ret c
+
+asm_118d9f
+ ld hl, $c608
+ call Function119940
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_118db2
+ ld a, $8f
+ ld [wcd3b], a
+ jr .asm_118db7
+
+.asm_118db2
+ ld a, $26
+ ld [wcd3b], a
+
+.asm_118db7
+ ld hl, w3_d800
+ ld a, $8
+ ld [hli], a
+ ld a, $c6
+ ld [hli], a
+ ld a, [wcd3b]
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld a, $8
+ ld [hli], a
+ ld a, $c7
+ ld [hli], a
+ ld a, [wcd39]
+ ld [hli], a
+ ld a, [wcd3a]
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, w3_d800
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+; 118ded
+
+Function118ded: ; 118ded
+ ld a, [wcd38]
+ and a
+ jr z, .asm_118e03
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba Function11b93b
+ pop af
+ ld [rSVBK], a
+
+.asm_118e03
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118e06
+
+Function118e06: ; 118e06
+ ld hl, wd002
+ ld a, [wcd38]
+ and a
+ jr z, .asm_118e1d
+.asm_118e0f
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_118e0f
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_118e0f
+
+.asm_118e1d
+ ld a, l
+ ld [wcd39], a
+ ld a, h
+ ld [wcd3a], a
+.asm_118e25
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_118e25
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_118e25
+ dec hl
+ xor a
+ ld [hld], a
+ ld [hl], a
+ jr asm_118e3e
+
+Function118e39: ; 118e39 (46:4e39)
+.asm_118e39
+ ld a, [hli]
+ and a
+ jr nz, .asm_118e39
+ dec hl
+asm_118e3e
+.asm_118e3e
+ ld a, [hld]
+ cp $2f
+ jr nz, .asm_118e3e
+ inc hl
+ inc hl
+ ld de, wcd85
+ ld c, $4
+.asm_118e4a
+ ld a, [hli]
+ cp $2e
+ jr z, .asm_118e63
+ cp $30
+ jr c, .asm_118e67
+ cp $3a
+ jr nc, .asm_118e67
+ sub $30
+ add $f6
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_118e4a
+ ld de, wcd85
+.asm_118e63
+ ld a, $50
+ ld [de], a
+ ret
+.asm_118e67
+ ld a, $f3
+ ld [de], a
+ inc de
+ jr .asm_118e63
+
+Function118e6d: ; 118e6d (46:4e6d)
+ xor a
+ ld [wcd65], a
+ ld a, $a
+ jp Function119e2b
+
+Function118e76: ; 118e76 (46:4e76)
+ ; Call $c in BattleTowerRoomMenu2
+ ld a, $c
+ ld [wcd3c], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function118e7e: ; 118e7e (46:4e7e)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $36
+ jp Function119e2b
+
+BattleTowerRoomMenu_CallRoomMenu2: ; 118e87 (46:4e87)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, [wcd33]
+ ld [wcf66], a
+ ret
+; 118e92 (46:4e92)
+
+Function118e92: ; 118e92
+ call Function118440
+ call Function1191d3
+ ld a, [wcd53]
+ ld l, a
+ ld a, [wcd54]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld de, w3_d800
+ ld bc, $0800
+ jp Function118b10
+; 118eb0
+
+Function118eb0: ; 118eb0
+ call Function118440
+ ld hl, $d802
+ ld de, BGMapBuffer
+ ld bc, $000c
+ call CopyBytes
+ call Function1192cc
+ ret c
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118ec6
+
+Function118ec6: ; 118ec6
+ call Function118440
+ call SpeechTextBox
+ ld hl, $d80e
+ ld de, $c320
+ ld bc, $0026
+ call CopyBytes
+ xor a
+ ld [$c31f], a
+ ld a, $20
+ ld [$c31b], a
+ ld a, $c3
+ ld [$c31c], a
+ hlcoord 1, 14
+ ld a, l
+ ld [$c31d], a
+ ld a, h
+ ld [$c31e], a
+ ld a, $2
+ ld [$c31a], a
+ ld a, $1d
+ ld [wcd3c], a
+ ld a, $24
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $11
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $1c
+ ld [wcd47], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118f0d
+
+Function118f0d: ; 118f0d
+ call BattleTowerRoomMenu2
+ ret c
+ call Function118440
+
+Function118f14:
+ call Function118440
+ ld a, [wcd51]
+ ld l, a
+ ld a, [wcd52]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .DontSendSaveFile
+ ld hl, Text_SaveFileWillBeSent
+ call BattleTowerRoomMenu_SetMessage
+
+.DontSendSaveFile:
+ ld a, [wcd57]
+ ld l, a
+ ld a, [wcd58]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld hl, wcc60
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $24
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $13
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $1c
+ ld [wcd47], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118f5e
+
+Function118f5e: ; 118f5e
+ call BattleTowerRoomMenu2
+ ret c
+ call Function118440
+ call DelayFrame
+
+Function118f68:
+ call Function119223
+ ret c
+ call Function118440
+ ld a, [wcd51]
+ ld l, a
+ ld a, [wcd52]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .asm_118fba
+ ld hl, $c346
+ ld a, $c608 % $100
+ ld [hli], a
+ ld a, $c608 / $100
+ ld [hli], a
+ ld a, [wcd4b]
+ ld [hli], a
+ ld a, [wcd4c]
+ ld [hli], a
+ ld a, $c708 % $100
+ ld [hli], a
+ ld a, $c708 / $100
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, $c346
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+
+.asm_118fba
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 118fc0
+
+Function118fc0: ; 118fc0
+ call Function118440
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .asm_118ffa
+ ld a, [wcd51]
+ ld l, a
+ ld a, [wcd52]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld a, [wcc60]
+ and a
+ jr z, .asm_118ff2
+ ld hl, Text_SentSaveFileReadingNews
+ jr .asm_118ff5
+
+.asm_118ff2
+ ld hl, Text_ReadingNews
+
+.asm_118ff5
+ call BattleTowerRoomMenu_SetMessage
+ jr Function119009
+
+.asm_118ffa
+ ld hl, Text_ReadingNews
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119009:
+ call Function118440
+ call Function119300
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld hl, $c346
+ ld a, $8
+ ld [hli], a
+ ld a, $c6
+ ld [hli], a
+ ld a, [wcd4b]
+ ld [hli], a
+ ld a, [wcd4c]
+ ld [hli], a
+ ld a, $8
+ ld [hli], a
+ ld a, $c7
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, $c346
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, $2c
+ jp Function119e2b
+; 119054
+
+Function119054: ; 119054
+ ld a, $6
+ call GetSRAMBank
+ ld hl, wd002
+ ld a, [wcd4f]
+ ld e, a
+ ld a, [wcd50]
+ ld d, a
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ call Function119192
+ ret c
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_11908a
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, wd002
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ call Function119192
+ ret c
+
+.asm_11908a
+ call CloseSRAM
+ ld a, $3
+ ld [rSVBK], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcd4f]
+ ld [$b1b3], a
+ ld a, [wcd50]
+ ld [$b1b4], a
+ ld hl, BGMapBuffer
+ ld de, $aa7f
+ ld bc, $000c
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wd474]
+ ld [$b2f3], a
+ ld hl, wd475
+ ld de, $b2f4
+ ld bc, $0004
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 1190d0
+
+Function1190d0: ; 1190d0
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wcd57]
+ ld l, a
+ ld a, [wcd58]
+ ld h, a
+ ld de, wcc60
+ call Function1191ad
+ ret c
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 1190ec
+
+Function1190ec: ; 1190ec
+ ld a, $5
+ call GetSRAMBank
+ ld hl, BGMapBuffer
+ ld de, $aa73
+ ld bc, $000c
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$aa72], a
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ ld hl, wd002
+ ld de, $a000
+ call Function119192
+ ret c
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_11913e
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ ld hl, wd002
+ call Function119192
+ ret c
+
+.asm_11913e
+ ld a, $3
+ ld [rSVBK], a
+ call CloseSRAM
+ ld hl, Text_ReceivedNews
+ call BattleTowerRoomMenu_SetMessage
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 11914e
+
+Function11914e: ; 11914e
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $1c
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ ret
+; 11915d
+
+Function11915d: ; 11915d
+ ld hl, $d802
+ ld de, BGMapBuffer
+ ld bc, $000c
+ call CopyBytes
+ ld a, $5
+ call GetSRAMBank
+ ld hl, BGMapBuffer
+ ld de, $aa7f
+ ld c, $c
+.asm_119176
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .asm_119184
+ inc hl
+ dec c
+ jr nz, .asm_119176
+ call BattleTowerRoomMenu_IncrementJumptable
+ jr .asm_11918e
+
+.asm_119184
+ ld a, $16
+ ld [wcf66], a
+ ld a, $b
+ ld [wc300], a
+
+.asm_11918e
+ call CloseSRAM
+ ret
+; 119192
+
+Function119192: ; 119192
+ inc b
+ inc c
+ jr .asm_11919e
+
+.asm_119196
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, $bf
+ cp d
+ jr c, .asm_1191a6
+
+.asm_11919e
+ dec c
+ jr nz, .asm_119196
+ dec b
+ jr nz, .asm_119196
+ and a
+ ret
+
+.asm_1191a6
+ ld a, $d3
+ call Function118805
+ scf
+ ret
+; 1191ad
+
+Function1191ad: ; 1191ad
+ push bc
+ ld c, $0
+ ld a, $5
+ ld [rSVBK], a
+.asm_1191b4
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr z, .asm_1191cc
+ inc c
+ ld a, c
+ cp $a6
+ jr c, .asm_1191b4
+ ld a, $da
+ call Function118805
+ ld a, $3
+ ld [rSVBK], a
+ pop bc
+ scf
+ ret
+
+.asm_1191cc
+ ld a, $3
+ ld [rSVBK], a
+ pop bc
+ and a
+ ret
+; 1191d3
+
+Function1191d3: ; 1191d3
+ ld hl, w3_d100 + 2
+ ld a, l
+ ld [wcd53], a
+ ld a, h
+ ld [wcd54], a
+ call Function11920f
+ ld a, l
+ ld [wcd51], a
+ ld a, [wcd4a]
+ ld a, h
+ ld [wcd52], a
+ call Function11920f
+ ld a, l
+ ld [wcd55], a
+ ld a, [wcd4a]
+ ld a, h
+ ld [wcd56], a
+ call Function11920f
+ ld a, [wcd49]
+ ld a, l
+ ld [wcd57], a
+ ld a, [wcd4a]
+ ld a, h
+ ld [wcd58], a
+ call Function11920f
+ ret
+; 11920f
+
+Function11920f: ; 11920f
+.asm_11920f
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_11920f
+ ld a, [hli]
+ cp $a
+ jr nz, .asm_11920f
+ dec hl
+ xor a
+ ld [hld], a
+ ld [hli], a
+ inc hl
+ ret
+; 119223
+
+Function119223: ; 119223
+ xor a
+ ld [wcd4b], a
+ ld [wcd4c], a
+ ld a, $5
+ call GetSRAMBank
+ ld hl, wc3cd
+ ld de, $b092
+ ld bc, $001f
+ call CopyBytes
+ dec de
+ xor a
+ ld [de], a
+ ld hl, $d810
+.asm_119241
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_119241
+ ld a, [hli]
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [$b1b1], a
+ ld c, a
+ ld a, [hli]
+ ld [$b1b2], a
+ ld b, a
+ ld de, $b1d3
+ call CopyBytes
+ call CloseSRAM
+ ld e, l
+ ld d, h
+ ld hl, $c608
+.asm_119266
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_1192c2
+ cp $fe
+ jr z, .asm_1192a5
+ call GetSRAMBank
+ ld a, [de]
+ inc de
+ ld c, a
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [de]
+ inc de
+ push de
+ push af
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld d, a
+ pop af
+.asm_119286
+ push af
+ ld a, [bc]
+ inc bc
+ ld [hli], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_119286
+ call CloseSRAM
+ ld a, e
+ ld [wcd4b], a
+ ld a, d
+ ld [wcd4c], a
+ pop de
+.asm_11929b
+ and a
+ jr z, .asm_119266
+ ld a, $d3
+ call Function118805
+ scf
+ ret
+
+.asm_1192a5
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4c]
+ ld b, a
+ ld a, [de]
+ inc de
+.asm_1192af
+ push af
+ ld a, [de]
+ inc de
+ ld [hli], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_1192af
+ ld a, c
+ ld [wcd4b], a
+ ld a, b
+ ld [wcd4c], a
+ jr .asm_11929b
+
+.asm_1192c2
+ ld a, e
+ ld [wcd4d], a
+ ld a, d
+ ld [wcd4e], a
+ and a
+ ret
+; 1192cc
+
+Function1192cc: ; 1192cc
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $aa73
+ ld de, $c608
+ ld bc, $000c
+ call CopyBytes
+ call CloseSRAM
+ ld hl, $c608
+ ld de, BGMapBuffer
+ ld c, $c
+.asm_1192e8
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [hli]
+ cp b
+ jr nz, .asm_1192fe
+ dec c
+ jr nz, .asm_1192e8
+ ld a, $1f
+ ld [wcd3c], a
+ ld a, $27
+ ld [wcf66], a
+ scf
+ ret
+
+.asm_1192fe
+ and a
+ ret
+; 119300
+
+Function119300: ; 119300
+ xor a
+ ld [wcd4b], a
+ ld [wcd4c], a
+ ld a, [wcd4d]
+ ld e, a
+ ld a, [wcd4e]
+ ld d, a
+ ld hl, $c608
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4c]
+ ld b, a
+.asm_11931a
+ ld a, [de]
+ inc de
+ cp $50
+ jr z, .asm_119324
+ ld [hli], a
+ inc bc
+ jr .asm_11931a
+
+.asm_119324
+ ld a, $3d
+ ld [hli], a
+ inc bc
+ ld a, c
+ ld [wcd4b], a
+ ld a, b
+ ld [wcd4c], a
+ ld a, [de]
+ inc de
+ call GetSRAMBank
+ ld a, [de]
+ inc de
+ ld c, a
+ ld a, [de]
+ inc de
+ ld b, a
+ ld a, [de]
+ inc de
+ push de
+ push af
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld d, a
+ pop af
+.asm_119348
+ push af
+ ld a, [bc]
+ and $f0
+ swap a
+ call Function1197bf
+ ld [hli], a
+ inc de
+ ld a, [bc]
+ inc bc
+ and $f
+ call Function1197bf
+ ld [hli], a
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_119348
+ call CloseSRAM
+ ld a, e
+ ld [wcd4b], a
+ ld a, d
+ ld [wcd4c], a
+ pop de
+ ld a, [de]
+ cp $50
+ jr z, .asm_11937f
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4c]
+ ld b, a
+ ld a, $26
+ ld [hli], a
+ inc bc
+ jr .asm_11931a
+
+.asm_11937f
+ ret
+; 119380
+
+Function119380: ; 119380
+ ld a, $80
+ ld [wcd49], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119388
+
+Function119388: ; 119388
+ ld hl, wcd49
+ dec [hl]
+ ret nz
+ ld hl, wcc60
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $10
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1193a0:
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld hl, $c346
+ ld a, wd000 % $100
+ ld [hli], a
+ ld a, wd000 / $100
+ ld [hli], a
+ ld a, [wcd3b]
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld a, $c708 % $100
+ ld [hli], a
+ ld a, $c708 / $100
+ ld [hli], a
+ ld a, $60
+ ld [hli], a
+ ld a, $cc
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, $c346
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+; 1193e3
+
+Function1193e3: ; 1193e3
+ ld hl, wcd49
+ dec [hl]
+ ret nz
+ ld hl, wcc60
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $11
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1193fb:
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld de, w3_d000
+ ld bc, $1000
+ jp Function118b10
+; 119413
+
+Function119413: ; 119413
+ ld a, $6
+ call GetSRAMBank
+ ld a, [w3_d000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ dec bc
+ dec bc
+ ld hl, wd002
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ call Function119192
+ ret c
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_119447
+ ld a, $6
+ ld [rSVBK], a
+ ld a, [wd000]
+ ld c, a
+ ld a, [w3_d000 + 1]
+ ld b, a
+ ld hl, wd002
+ call Function119192
+ ret c
+
+.asm_119447
+ ld a, $3
+ ld [rSVBK], a
+ call CloseSRAM
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119451
+
+Function119451: ; 119451 (46:5451)
+ ld a, [wcd89]
+ and $1
+ jr z, .asm_11945d
+ ld a, $d3
+ jp Function118805
+.asm_11945d
+ xor a
+ ld [wcd50], a
+ call Function119694
+ ld a, b
+ ld [wcd49], a
+ call Function1196cd
+ ld a, [wd002]
+ ld hl, wd003
+
+Function119471: ; 119471 (46:5471)
+ push af
+ ld a, [hli]
+ ld [$c608], a
+ ld a, [hli]
+ ld [$c608 + 3], a
+ ld a, [hli]
+ ld [$c608 + 1], a
+ ld a, [hli]
+ ld [$c608 + 2], a
+ ld a, [hli]
+ ld [$c608 + 4], a
+ ld a, [hli]
+ ld [$c608 + 5], a ; $c608 + 5
+ push hl
+ ld a, [$c608]
+ cp $ff
+ jr z, .asm_1194a7
+ ld a, [$c608 + 2]
+ cp $ff
+ jr z, .asm_1194a7
+ ld a, [$c608 + 1]
+ cp $ff
+ jr nz, .asm_1194a7
+ call Function119584
+ jr c, .asm_11950c
+ jr .asm_1194f0
+.asm_1194a7
+ ld hl, $c608
+ ld de, $c608 + 3
+ ld c, $3
+.asm_1194af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr c, .asm_1194f3
+ jr z, .asm_1194b9
+ jr nc, .asm_1194bc
+.asm_1194b9
+ dec c
+ jr nz, .asm_1194af
+.asm_1194bc
+ ld c, $3
+ ld hl, wcd49
+ ld de, $c608
+.asm_1194c4
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_1194d1
+ cp [hl]
+ jr z, .asm_1194d1
+ jr c, .asm_1194d5
+ jr nc, .asm_1194f0
+.asm_1194d1
+ inc hl
+ dec c
+ jr nz, .asm_1194c4
+.asm_1194d5
+ ld c, $3
+ ld hl, wcd49
+ ld de, $c608 + 3
+.asm_1194dd
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_1194ea
+ cp [hl]
+ jr c, .asm_1194f0
+ jr z, .asm_1194ea
+ jr nc, .asm_11950c
+.asm_1194ea
+ inc hl
+ dec c
+ jr nz, .asm_1194dd
+ jr .asm_11950c
+.asm_1194f0
+ pop hl
+ jr .asm_119557
+.asm_1194f3
+ ld c, $3
+ ld hl, wcd49
+ ld de, $c608
+.asm_1194fb
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_119508
+ cp [hl]
+ jr c, .asm_11950c
+ jr z, .asm_119508
+ jr nc, .asm_1194d5
+.asm_119508
+ inc hl
+ dec c
+ jr nz, .asm_1194fb
+.asm_11950c
+ pop hl
+ ld a, $1
+ ld [wcd50], a
+ ld a, l
+ ld [$c608], a
+ ld a, h
+ ld [$c608 + 1], a
+ ld de, wcd69
+ ld c, $10
+ ld b, $0
+.asm_119521
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_119528
+ inc b
+.asm_119528
+ dec c
+ jr nz, .asm_119521
+ ld a, $10
+ cp b
+ jr z, .asm_119536
+rept 4
+ inc hl
+endr
+ jr .asm_11957a
+.asm_119536
+ ld a, [hli]
+ cp $50
+ jr nz, .asm_119552
+ ld a, [hli]
+ cp $33
+ jr nz, .asm_119553
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [wcd83]
+ cp c
+ jr nz, .asm_119576
+ ld a, [wcd84]
+ cp b
+ jr nz, .asm_119576
+ jr .asm_11955b
+.asm_119552
+ inc hl
+.asm_119553
+ inc hl
+ inc hl
+ jr .asm_11955b
+.asm_119557
+ ld de, $14
+ add hl, de
+.asm_11955b
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ add hl, de
+ pop af
+ dec a
+ jp nz, Function119471
+ ld a, [wcd50]
+ and a
+ jr z, .asm_119571
+ ld a, $1a
+ ld [wcf66], a
+ ret
+.asm_119571
+ ld a, $d8
+ jp Function118805
+.asm_119576
+ ld a, $10
+ jr .asm_11957c
+.asm_11957a
+ ld a, $f
+.asm_11957c
+ ld [wcf66], a
+ pop af
+ call Function1195c4
+ ret
+
+Function119584: ; 119584 (46:5584)
+ ld a, [$c608]
+ ld b, a
+ ld a, [$c608 + 3]
+ ld c, a
+ cp b
+ jr c, .asm_11959c
+ ld a, [wcd49]
+ cp b
+ jr c, .asm_1195c2
+.asm_119595
+ cp c
+ jr c, .asm_1195a2
+ jr z, .asm_1195a2
+ jr .asm_1195c2
+.asm_11959c
+ ld a, [wcd49]
+ cp b
+ jr c, .asm_119595
+.asm_1195a2
+ ld a, [$c608 + 2]
+ ld b, a
+ ld a, [$c608 + 5] ; $c608 + 5
+ ld c, a
+ cp b
+ jr c, .asm_1195ba
+ ld a, [wcd4b]
+ cp b
+ jr c, .asm_1195c2
+.asm_1195b3
+ cp c
+ jr c, .asm_1195c0
+ jr z, .asm_1195c0
+ jr .asm_1195c2
+.asm_1195ba
+ ld a, [wcd4b]
+ cp b
+ jr c, .asm_1195b3
+.asm_1195c0
+ scf
+ ret
+.asm_1195c2
+ and a
+ ret
+
+Function1195c4: ; 1195c4 (46:55c4)
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld de, $a5
+ ld a, b
+ cp d
+ jr c, .asm_1195d9
+ jr z, .asm_1195d3
+ jr nc, .asm_1195f3
+.asm_1195d3
+ ld a, c
+ cp e
+ jr z, .asm_1195d9
+ jr nc, .asm_1195f3
+.asm_1195d9
+ ld de, wcc60
+ call CopyBytes
+ xor a
+ ld [de], a
+ ld a, [$c608]
+ ld l, a
+ ld a, [$c608 + 1]
+ ld h, a
+ ld de, wcd69
+ ld bc, $10
+ call CopyBytes
+ ret
+.asm_1195f3
+ ld a, $d8
+ jp Function118805
+
+Function1195f8: ; 1195f8 (46:55f8)
+ ld a, $11
+ ld [wcd3c], a
+ ld a, $1c
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $f
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $14
+ ld [wcd47], a
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119612: ; 119612 (46:5612)
+ ld a, $14
+ ld [wcd3c], a
+ ld a, $1c
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $10
+ ld [wMobileInactivityTimerFrames], a
+ ld a, $14
+ ld [wcd47], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+Function119629: ; 119629 (46:5629)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $60
+ ld l, a
+ ld a, $cc
+ ld h, a
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $1c
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, $14
+ ld [wcd47], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function119648: ; 119648 (46:5648)
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ call Function118b24
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, $2a
+ jp Function119e2b
+
+Function119665: ; 119665 (46:5665)
+ ld a, $1a
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function11966d: ; 11966d (46:566d)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, [wcd47]
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ ret
+
+Function11967d: ; 11967d (46:567d)
+ ld a, $18
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function119685: ; 119685 (46:5685)
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, $14
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ ret
+
+Function119694: ; 119694 (46:5694)
+ ld b, 0
+ ld hl, Unknown_1196b8
+.asm_119699
+ ld de, $c708
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_1196af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_1196b0
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_1196b1
+ ret
+.asm_1196af
+ inc hl
+.asm_1196b0
+ inc hl
+.asm_1196b1
+ inc b
+ ld a, b
+ cp $7
+ jr nz, .asm_119699
+ ret
+; 1196b8 (46:56b8)
+
+Unknown_1196b8: ; 1196b8
+ db "Mon"
+ db "Tue"
+ db "Wed"
+ db "Thu"
+ db "Fri"
+ db "Sat"
+ db "Sun"
+; 1196cd
+
+
+SECTION "bank46_2", ROMX
+; A hack to use ascii above.
+
+Function1196cd: ; 1196cd (46:56cd)
+ ld de, $c719
+ call Function1196de
+ ld [wcd4a], a
+ inc de
+ call Function1196de
+ ld [wcd4b], a
+ ret
+
+Function1196de: ; 1196de (46:56de)
+ ld a, [de]
+ inc de
+ ; b = ([de] - 48) * 2
+ ; c = ([de] - 48) * 10
+ sub $30
+ sla a
+ ld b, a
+ sla a
+ sla a
+ add b
+ ld c, a
+ add hl, bc
+ ld a, [de]
+ inc de
+ sub $30
+ add c
+ ret
+; 1196f2 (46:56f2)
+
+Function1196f2: ; 1196f2
+ ld hl, wd002
+.asm_1196f5
+ call Function118b9a
+ ret nc
+ ld a, [hli]
+ cp $d
+ jr nz, .asm_1196f5
+ ld a, [hl]
+ cp $a
+ jr nz, .asm_1196f5
+ xor a
+ ld [hld], a
+ ld [hli], a
+ ld a, l
+ ld [wcd5b], a
+ ld a, h
+ ld [wcd5c], a
+ inc hl
+ ld e, l
+ ld d, h
+ ld a, [de]
+ inc de
+ cp $d
+ jr nz, .asm_119722
+ ld a, [de]
+ inc de
+ cp $a
+ jr nz, .asm_119722
+ ld a, $b
+ jp Function118805
+
+.asm_119722
+ call Random
+ ld c, $0
+ ld b, c
+.asm_119728
+ call Function119798
+ ld a, d
+ cp $ff
+ jr nz, .asm_119735
+ ld a, e
+ cp $ff
+ jr z, .asm_11974c
+
+.asm_119735
+ ld a, [hRandomSub]
+ cp d
+ jr c, .asm_11974c
+ jr z, .asm_11973e
+ jr .asm_119745
+
+.asm_11973e
+ ld a, [hRandomAdd]
+ cp e
+ jr c, .asm_11974c
+ jr z, .asm_11974c
+
+.asm_119745
+ inc bc
+ ld a, c
+ or b
+ jr z, .asm_119770
+ jr .asm_119728
+
+.asm_11974c
+ ld a, [wcd5b]
+ ld l, a
+ ld a, [wcd5c]
+ ld h, a
+.asm_119754
+ ld a, [hld]
+ cp $58
+ jr nz, .asm_119754
+ ld d, $0
+.asm_11975b
+ inc d
+ ld a, [hld]
+ cp $58
+ jr z, .asm_11975b
+ inc hl
+ inc hl
+ ld a, d
+ dec a
+ jr z, .asm_11978e
+ dec a
+ jr z, .asm_119785
+ dec a
+ jr z, .asm_11977e
+ dec a
+ jr z, .asm_119775
+
+.asm_119770
+ ld a, $d3
+ jp Function118805
+
+.asm_119775
+ ld a, b
+ and $f0
+ swap a
+ call Function1197bf
+ ld [hli], a
+
+.asm_11977e
+ ld a, b
+ and $f
+ call Function1197bf
+ ld [hli], a
+
+.asm_119785
+ ld a, c
+ and $f0
+ swap a
+ call Function1197bf
+ ld [hli], a
+
+.asm_11978e
+ ld a, c
+ and $f
+ call Function1197bf
+ ld [hli], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119798
+
+Function119798: ; 119798
+ ld d, $0
+ ld e, d
+ call Function1197b4
+ swap a
+ or d
+ ld d, a
+ call Function1197b4
+ or d
+ ld d, a
+ call Function1197b4
+ swap a
+ or e
+ ld e, a
+ call Function1197b4
+ or e
+ ld e, a
+ ret
+; 1197b4
+
+Function1197b4: ; 1197b4
+ ld a, [hli]
+ cp $61
+ jr nc, .asm_1197bc
+ sub $30
+ ret
+
+.asm_1197bc
+ sub $57
+ ret
+; 1197bf
+
+Function1197bf: ; 1197bf
+ cp $a
+ jr nc, .asm_1197c6
+ add $30
+ ret
+
+.asm_1197c6
+ add $57
+ ret
+; 1197c9
+
+Function1197c9: ; 1197c9
+ ld hl, wd002
+ call Function118e39
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $12
+ ld [wMobileInactivityTimerSeconds], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1197dc:
+ call BattleTowerRoomMenu2
+ ret c
+ call DelayFrame
+ ld hl, wd002
+ ld de, wcc60
+ ld bc, $0080
+ call CopyBytes
+ dec de
+ xor a
+ ld [de], a
+ call Function118b24
+ ld de, w3_d000
+ ld bc, $1000
+ ld a, $2a
+ jp Function119e2b
+; 119800
+
+Function119800: ; 119800
+ ld a, $fd
+ ld [$c6d0], a
+ ld [wOTTrademonSpecies], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcf65]
+ push af
+ ld a, [wcf66]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba Function10803d
+ call Function11a9ce
+ call RestartMapMusic
+ ld a, $3
+ ld [rSVBK], a
+ pop af
+ ld [wcf66], a
+ pop af
+ ld [wcf65], a
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ callba Function115dc3
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 11984e
+
+Function11984e: ; 11984e
+ ld a, [wcd80]
+ and a
+ jr nz, .asm_1198a0
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_1198a8
+ callba Function170000
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcf65]
+ push af
+ ld a, [wcf66]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba MobileTradeAnimation_SendGivemonToGTS
+ call Function11a9ce
+ call RestartMapMusic
+ ld a, $3
+ ld [rSVBK], a
+ pop af
+ ld [wcf66], a
+ pop af
+ ld [wcf65], a
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ callba Function115dc3
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_1198a0
+ ld a, $a
+ ld [wc300], a
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_1198a8
+ callba Function17005a
+ ld a, [wJumptableIndex]
+ push af
+ ld a, [wcf64]
+ push af
+ ld a, [wcf65]
+ push af
+ ld a, [wcf66]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba MobileTradeAnimation_RetrieveGivemonFromGTS
+ call Function11a9ce
+ call RestartMapMusic
+ ld a, $3
+ ld [rSVBK], a
+ pop af
+ ld [wcf66], a
+ pop af
+ ld [wcf65], a
+ pop af
+ ld [wcf64], a
+ pop af
+ ld [wJumptableIndex], a
+ callba Function115dc3
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 1198ee
+
+Function1198ee: ; 1198ee
+ ld hl, Text_RegisteringRecord
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+Function1198f7:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld hl, $c608 + 2
+ call Function119940
+ ld hl, w3_d800
+ ld a, $c608 % $100
+ ld [hli], a
+ ld a, $c608 / $100
+ ld [hli], a
+ ld a, $f6
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld a, $c708 % $100
+ ld [hli], a
+ ld a, $c708 / $100
+ ld [hli], a
+ ld a, [wcd51]
+ ld [hli], a
+ ld a, [wcd52]
+ ld [hli], a
+ call Function119eb4
+ call Function119ec2
+ ld a, $40
+ ld [wcd89], a
+ ld hl, w3_d800
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+; 119937
+
+Function119937: ; 119937
+ callba Function1707f4
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119940
+
+Function119940: ; 119940
+ ld de, wc3cd
+ ld c, $1e
+.asm_119945
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr z, .asm_119953
+ and a
+ jr nz, .asm_119945
+ xor a
+.asm_11994f
+ ld [hli], a
+ dec c
+ jr nz, .asm_11994f
+
+.asm_119953
+ ret
+; 119954
+
+Function119954: ; 119954
+ ld a, $1c
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld hl, $c608
+ ld de, wc3cd
+.asm_119962
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .asm_119962
+ call Function119ec2
+ ld hl, $c608
+ ld a, $1e
+ jp Function119e2b
+; 119973
+
+Function119973: ; 119973
+ ld a, $1
+ ld [wcf64], a
+ xor a
+ ld [wcf65], a
+ ld [w3_d090], a
+ ld de, w3_d000
+ ld a, $20
+ jp Function119e2b
+; 119987
+
+Function119987: ; 119987
+ ld hl, w3_d000 + 1
+ ld a, [w3_d000]
+ or [hl]
+ jr z, .asm_1199a0
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+ ld de, BGPals
+ ld a, $22
+ jp Function119e2b
+
+.asm_1199a0
+ ld a, [w3_d090]
+ and a
+ jr z, .asm_1199ae
+ ld a, $16
+ ld [wcf66], a
+ jp Function119b0d
+
+.asm_1199ae
+ ld a, $1b
+ ld [wcf66], a
+ ret
+; 1199b4
+
+Function1199b4: ; 1199b4
+ ld a, [wd000 + 130]
+ and a
+ jr nz, .asm_1199c7
+ ld a, [wd000 + 129]
+ cp $7
+ jr nc, .asm_1199c7
+ call BattleTowerRoomMenu_IncrementJumptable
+ jp Function1199ca
+
+.asm_1199c7
+ jp Function119ac9
+; 1199ca
+
+Function1199ca: ; 1199ca
+ ld a, $20
+ ld [wcd89], a
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+ ld de, w3_d100
+ ld bc, $0700
+ ld a, $28
+ jp Function119e2b
+; 1199e2
+
+Function1199e2: ; 1199e2
+ ld c, $c
+ ld de, XGameCodePrefix
+ call Function119e4f
+ jp c, Function119ac9
+ ld a, c
+ cp $1
+ jp nz, Function119ac9
+ ld hl, w3_d880
+ ld bc, XGameCode
+.loop
+ ld a, [bc]
+ and a
+ jr z, .game_result_prefix
+ cp [hl]
+ jp nz, Function119ac9
+ inc bc
+ inc hl
+ jr .loop
+
+.game_result_prefix
+ ld c, $17
+ ld de, XGameResultPrefix
+ call Function119e4f
+ jp c, .asm_119aa7
+ ld a, c
+ cp $1
+ jp nz, .asm_119aa7
+ ld a, [w3_d880]
+ cp $31
+ jp nz, .asm_119aa7
+ ld a, [w3_d881]
+ cp $20
+ jp nz, .asm_119aa7
+ ld a, [w3_d88a]
+ cp $20
+ jp nz, .asm_119aa7
+ ld a, [w3_d894]
+ cp $20
+ jp nz, .asm_119aa7
+ xor a
+ ld [w3_d8a0], a
+ ld [w3_d8a1], a
+ ld [w3_d8a2], a
+ ld [w3_d8a3], a
+ ld hl, $d8a0
+ ld bc, $d889
+ call Function119e98
+ call Function119e98
+ ld hl, $d8a0
+ ld a, [wcd2d]
+ cp [hl]
+ jr nz, Function119ac9
+ inc hl
+ ld a, [wcd2c]
+ cp [hl]
+ jr nz, Function119ac9
+ inc hl
+ ld a, [wcd2b]
+ cp [hl]
+ jr nz, Function119ac9
+ inc hl
+ ld a, [wcd2a]
+ cp [hl]
+ jr nz, Function119ac9
+ xor a
+ ld [w3_d8a0], a
+ ld [w3_d8a1], a
+ ld [w3_d8a2], a
+ ld [w3_d8a3], a
+ ld hl, $d8a0
+ ld bc, $d88e
+ call Function119e98
+ ld bc, $d893
+ call Function119e98
+ ld hl, $d8a0
+ ld a, [wcd2f]
+ cp [hl]
+ jr nz, .asm_119aa7
+ inc hl
+ ld a, [wcd2e]
+ cp [hl]
+ jr nz, .asm_119aa7
+ inc hl
+ ld a, [wcd31]
+ cp [hl]
+ jr nz, .asm_119aa7
+ inc hl
+ ld a, [wcd30]
+ cp [hl]
+ jr z, .asm_119aaf
+
+.asm_119aa7
+ ld a, $25
+ ld [wcf66], a
+ jp Function119b45
+
+.asm_119aaf
+ ld a, [w3_d090]
+ and a
+ jr nz, .asm_119aa7
+ ld a, [w3_d895]
+ sub $30
+ ld [w3_d090], a
+ ld a, [wcf64]
+ ld [w3_d090 + 1], a
+ ld a, [wcf65]
+ ld [w3_d090 + 2], a
+
+Function119ac9:
+ ld a, [w3_d000]
+ ld l, a
+ ld a, [w3_d000 + 1]
+ ld h, a
+ dec hl
+ ld a, l
+ ld [w3_d000], a
+ ld a, h
+ ld [w3_d000 + 1], a
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+ inc hl
+ ld a, l
+ ld [wcf64], a
+ ld a, h
+ ld [wcf65], a
+ ld a, $10
+ ld [wcf66], a
+ ret
+; 119af1
+
+XGameCode:
+INCBIN "data/mobile/x-game-code.txt"
+XGameResult:
+INCBIN "data/mobile/x-game-result.txt"
+; 119b0d
+
+Function119b0d: ; 119b0d
+ ld a, $8
+ ld [wcd3c], a
+ call BattleTowerRoomMenu2
+ ld a, [w3_d090]
+ cp $1
+ jr z, .asm_119b23
+ ld a, $19
+ ld [wcf66], a
+ jr Function119b3b
+
+.asm_119b23
+ ld a, $10
+ ld [wcd89], a
+ ld a, [w3_d090 + 1]
+ ld l, a
+ ld a, [w3_d090 + 2]
+ ld h, a
+ ld de, w3_d100
+ ld bc, $0700
+ ld a, $24
+ jp Function119e2b
+
+Function119b3b:
+ ld a, [w3_d090 + 1]
+ ld l, a
+ ld a, [w3_d090 + 2]
+ ld h, a
+ jr asm_119b4d
+
+Function119b45:
+ ld a, [wcf64]
+ ld l, a
+ ld a, [wcf65]
+ ld h, a
+
+asm_119b4d
+ ld a, $26
+ jp Function119e2b
+; 119b52
+
+Function119b52: ; 119b52
+ ld a, [w3_d090]
+ cp $1
+ jr nz, .asm_119b66
+ ld a, $5
+ call GetSRAMBank
+ ld a, $4
+ ld [$a800], a
+ call CloseSRAM
+
+.asm_119b66
+ ld a, $1c
+ jp Function119e2b
+; 119b6b
+
+Function119b6b: ; 119b6b
+ ld a, [w3_d090]
+ cp $1
+ jr z, .asm_119b75
+ jp BattleTowerRoomMenu_IncrementJumptable
+
+.asm_119b75
+ ld a, [w3_d100]
+ ld b, a
+ ld a, [w3_d100 + 1]
+ or b
+ jr z, .asm_119be3
+ ld hl, w3_d800
+ ld de, w3_d100 + 2
+.asm_119b85
+ ld a, [de]
+ inc de
+ cp $d
+ jr nz, .asm_119b85
+ inc de
+ ld a, [de]
+ cp $d
+ jr nz, .asm_119b85
+ inc de
+ inc de
+.asm_119b93
+ ld a, [de]
+ inc de
+ cp $d
+ jr z, .asm_119bfa
+ call Function119c3e
+ ret c
+ ld [hli], a
+ ld a, [de]
+ inc de
+ call Function119c3e
+ ret c
+ ld [hli], a
+ ld a, [de]
+ inc de
+ call Function119c3e
+ ret c
+ ld [hli], a
+ ld a, [de]
+ inc de
+ call Function119c3e
+ ret c
+ ld [hl], a
+ push de
+ ld d, [hl]
+ dec hl
+ ld c, [hl]
+ dec hl
+ ld b, [hl]
+ dec hl
+ ld a, [hl]
+ sla b
+ sla b
+ sla b
+ rla
+ sla b
+ rla
+ ld [hli], a
+ ld [hl], b
+ inc hl
+ rrc c
+ rrc c
+ ld [hl], c
+ dec hl
+ ld a, $f
+ and c
+ or [hl]
+ ld [hli], a
+ ld a, [hli]
+ and $c0
+ or [hl]
+ dec hl
+ ld [hld], a
+ dec hl
+ pop de
+ inc hl
+ inc hl
+ inc hl
+ ld a, h
+ cp $e0
+ jr c, .asm_119b93
+
+.asm_119be3
+ ld a, $19
+ ld [wcf66], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+ xor a
+ ld [w3_d090], a
+ ret
+
+.asm_119bfa
+ inc de
+ ld a, [de]
+ cp $d
+ jr nz, .asm_119b93
+ ld a, l
+ cp (w3_d869) % $100
+ jr nz, .asm_119be3
+ ld a, h
+ cp (w3_d869) / $100
+ jr nz, .asm_119be3
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcf64]
+ ld [$b090], a
+ ld a, [wcf65]
+ ld [$b091], a
+ ld hl, w3_d800
+ ld de, $b023
+ ld bc, $0069
+ call CopyBytes
+ ld a, $3
+ ld [$a800], a
+ call CloseSRAM
+ ld hl, w3_d800
+ ld de, $c608
+ ld bc, $0069
+ call CopyBytes
+ jp BattleTowerRoomMenu_IncrementJumptable
+; 119c3e
+
+Function119c3e: ; 119c3e
+ cp $2b
+ jr c, .asm_119c68
+ jr z, .asm_119c80
+ cp $2f
+ jr c, .asm_119c68
+ jr z, .asm_119c84
+ cp $30
+ jr c, .asm_119c68
+ cp $3a
+ jr c, .asm_119c88
+ cp $3d
+ jr c, .asm_119c68
+ jr z, .asm_119c8c
+ cp $41
+ jr c, .asm_119c68
+ cp $5b
+ jr c, .asm_119c8f
+ cp $61
+ jr c, .asm_119c68
+ cp $7b
+ jr c, .asm_119c93
+
+.asm_119c68
+ ld a, $19
+ ld [wcf66], a
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+ xor a
+ ld [w3_d090], a
+ scf
+ ret
+
+.asm_119c80
+ ld a, $3e
+ and a
+ ret
+
+.asm_119c84
+ ld a, $3f
+ and a
+ ret
+
+.asm_119c88
+ add $4
+ and a
+ ret
+
+.asm_119c8c
+ xor a
+ and a
+ ret
+
+.asm_119c8f
+ sub $41
+ and a
+ ret
+
+.asm_119c93
+ sub $47
+ and a
+ ret
+; 119c97
+
+BattleTowerRoomMenu_UberRestrictionMessage: ; 119c97
+ ld hl, Text_UberRestriction
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+ jr BattleTowerRoomMenu_WaitForMessage
+
+BattleTowerRoomMenu_PartyMonTopsThisLevelMessage:
+ ld hl, Text_PartyMonTopsThisLevel
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_WaitForMessage:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld a, $80
+ ld [wcd50], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_DelayRestartMenu:
+ ; Loops while (--[wcd50] != 0),
+ ; to create some sort of "delay" after the message is written on the screen,
+ ; before starting the menu again.
+ ld hl, wcd50
+ dec [hl]
+ ret nz
+ ld a, $0
+ ld [wcf66], a
+ ret
+; 119cc3
+
+BattleTowerRoomMenu_QuitMessage: ; 119cc3
+ ld a, [wcd38]
+ and a
+ jr z, .asm_119cd1
+ dec a
+ jr z, .asm_119cd6
+ ld hl, Text_QuitReadingNews
+ jr .asm_119cd9
+
+.asm_119cd1
+ ld hl, Text_CancelBattleRoomChallenge
+ jr .asm_119cd9
+
+.asm_119cd6
+ ld hl, Text_ExitGymLeaderHonorRoll
+
+.asm_119cd9
+ call BattleTowerRoomMenu_SetMessage
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_PlaceYesNoMenu:
+ ld a, [$c31a]
+ and a
+ ret nz
+ ld a, $f
+ ld [wcd3c], a
+ call BattleTowerRoomMenu_IncrementJumptable
+
+BattleTowerRoomMenu_UpdateYesNoMenu:
+ ; Only ever called when [wcd3c] is $10
+ call BattleTowerRoomMenu2
+ ret c
+ ld a, [wMobileInactivityTimerFrames]
+ ld [wcf66], a
+ ret
+; 119cf7
+
+MenuDataHeader_119cf7: ; 119cf7
+ db $40 ; flags
+ db 7, 12 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 119cff
+
+MenuData_119cff: ; 119cff
+ db $40 ; flags
+ db 7, 15 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 119d07
+
+String_119d07:
+ db " ▼@"
+
+Strings_L10ToL100: ; 119d0c
+ db " L:10 @@"
+ db " L:20 @@"
+ db " L:30 @@"
+ db " L:40 @@"
+ db " L:50 @@"
+ db " L:60 @@"
+ db " L:70 @@"
+ db " L:80 @@"
+ db " L:90 @@"
+ db " L:100@@"
+ db "CANCEL@@"
+
+Strings_Ll0ToL40: ; 119d64
+ db " L:10 @@"
+ db " L:20 @@"
+ db " L:30 @@"
+ db " L:40 @@"
+ db "CANCEL@@"
+
+String_119d8c:
+ db "CANCEL@"
+; 119d93
+
+BattleTower_LevelCheck: ; 119d93 (46:5d93)
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wcd4f]
+ ld c, 10
+ call SimpleMultiply
+ ld hl, wcd50
+ ld [hl], a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld de, PartyMon1Level
+ ld a, [PartyCount]
+.party_loop
+ push af
+ ld a, [de]
+ push hl
+ push de
+ pop hl
+ add hl, bc
+ push hl
+ pop de
+ pop hl
+ cp [hl]
+ jr z, .equal
+ jr nc, .exceeds
+.equal
+ pop af
+ dec a
+ jr nz, .party_loop
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.exceeds
+ pop af
+ ld a, $4
+ ld [wcf66], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+
+BattleTower_UbersCheck: ; 119dd1 (46:5dd1)
+ ld a, [rSVBK]
+ push af
+ ld a, [wcd4f]
+ cp 70 / 10
+ jr nc, .level_70_or_more
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, PartyMon1Level
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld de, PartySpecies
+ ld a, [PartyCount]
+.loop
+ push af
+ ld a, [de]
+ cp MEWTWO
+ jr z, .uber
+ cp MEW
+ jr z, .uber
+ cp LUGIA
+ jr c, .next
+ cp NUM_POKEMON + 1
+ jr nc, .next
+.uber
+ ld a, [hl]
+ cp 70
+ jr c, .uber_under_70
+.next
+ add hl, bc
+ inc de
+ pop af
+ dec a
+ jr nz, .loop
+.level_70_or_more
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.uber_under_70
+ pop af
+ ld a, [de]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, wcd49
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ld a, $a
+ ld [wcf66], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+; 119e2b (46:5e2b)
+
+Function119e2b: ; 119e2b (46:5e2b)
+ call Function3e32
+
+BattleTowerRoomMenu_IncrementJumptable: ; 119e2e (46:5e2e)
+ ld hl, wcf66
+ inc [hl]
+ ret
+; 119e33 (46:5e33)
+
+XGameCodePrefix: ; 119e33
+INCBIN "data/mobile/x-game-code-prefix.txt"
+XGameCodePrefixEnd:
+;119e40
+
+XGameResultPrefix: ; 119e40
+INCBIN "data/mobile/x-game-result-prefix.txt"
+XGameResultPrefixEnd:
+; 119e4f
+
+Function119e4f: ; 119e4f
+ push bc
+ ld hl, w3_d100
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+.loop
+ ld a, [de]
+ cp [hl]
+ jr z, .found_equality
+.next
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+.return_carry
+ pop bc
+ scf
+ ret
+
+.found_equality
+ push de
+.loop2
+ ld a, [de]
+ inc de
+ cp "\n"
+ jr z, .newline
+ cp [hl]
+ jr nz, .unequal
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop2
+ pop de
+ jr .return_carry
+
+.unequal
+ pop de
+ jr .next
+
+.newline
+ pop de
+ pop bc
+ inc hl
+ ld de, w3_d880
+.loop3
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp $d
+ jr z, .finish
+ dec c
+ jr nz, .loop3
+ scf
+ ret
+
+.finish
+ and a
+ ret
+; 119e8e
+
+Function119e8e: ; 119e8e
+ cp $60
+ jr c, .less_than_0x60
+ sub $57
+ ret
+
+.less_than_0x60
+ sub $30
+ ret
+; 119e98
+
+Function119e98: ; 119e98
+ ld a, $2
+.loop
+ push af
+ ld a, [bc]
+ dec bc
+ call Function119e8e
+ or [hl]
+ ld [hl], a
+ ld a, [bc]
+ dec bc
+ call Function119e8e
+ rlca
+ rlca
+ rlca
+ rlca
+ or [hl]
+ ld [hl], a
+ inc hl
+ pop af
+ dec a
+ and a
+ jr nz, .loop
+ ret
+; 119eb4
+
+Function119eb4: ; 119eb4 (46:5eb4)
+ xor a
+ ld [wc3cc], a
+ ld de, wc3ac
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .loop
+ ret
+
+Function119ec2: ; 119ec2 (46:5ec2)
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ xor a
+ ld [sMobileLoginPassword + MOBILE_LOGIN_PASSWORD_LENGTH], a
+ ld de, sMobileLoginPassword + 1
+.loop
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .loop
+ call CloseSRAM
+ ret
+
+BattleTowerRoomMenu2: ; 119ed8 (46:5ed8)
+ ld a, [rSVBK]
+ ld [wcd8c], a
+ ld a, $1
+ ld [rSVBK], a
+
+ call .RunJumptable
+
+ ld a, [wcd8c]
+ ld [rSVBK], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+.RunJumptable:
+ jumptable .Jumptable, wcd3c
+
+.Jumptable:
+ dw Function119f3f
+ dw Function119f45
+ dw Function119f56
+ dw Function119f76
+ dw Function119f98
+ dw Function11a113
+ dw Function11a129
+ dw Function11a131
+ dw Function11a13d
+ dw Function11a14b
+ dw Function11a16d
+ dw Function11a192
+ dw Function11a2e6
+ dw Function11a302
+ dw Function11a33a
+ dw BattleTowerRoomMenu2_PlaceYesNoMenu
+ dw BattleTowerRoomMenu2_UpdateYesNoMenu
+ dw Function11a357
+ dw Function11a36b
+ dw Function11a38d
+ dw Function11a3c5
+ dw Function11a3d9
+ dw Function11a3f9
+ dw Function11a41b
+ dw Function11a452
+ dw Function11a47a
+ dw Function11a488
+ dw Function11a49e
+ dw Function11a4db
+ dw Function11a4e8
+ dw Function11a4fe
+ dw Function11a466
+ dw Function11a47a
+; 119f3f
+
+Function119f3f: ; 119f3f
+ call Function11a5b9
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f45
+
+Function119f45: ; 119f45
+ hlcoord 4, 2
+ ld de, String_11a661
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f56
+
+Function119f56: ; 119f56
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_119f62
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_119f62
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6aa
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f76
+
+Function119f76: ; 119f76
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_119f82
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_119f82
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a679
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 119f98
+
+Function119f98: ; 119f98
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_119fef
+ call ExitMenu
+ call Function11a63c
+ xor a
+ ld [ScriptVar], a
+ call Function11a00e
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_119fd4
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115dc3
+ ld a, [wcd33]
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+
+.asm_119fd4
+ hlcoord 4, 2
+ ld de, String_11a692
+ call PlaceString
+ ld a, $1
+ ld [wc30d], a
+ ld a, $1
+ ld [wc314], a
+ callba ReloadMapPart
+ and a
+ ret
+
+.asm_119fef
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ callba Function115dc3
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+; 11a00e
+
+Function11a00e: ; 11a00e
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ ld a, [sMobileLoginPassword]
+ and a
+ jr z, .asm_11a02a
+ ld a, [sMobileLoginPassword + 1]
+ call CloseSRAM
+ and a
+ ret nz
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ xor a
+ ld [sMobileLoginPassword], a
+
+.asm_11a02a
+ call CloseSRAM
+ ld a, [BGMapPalBuffer]
+ and a
+ jr z, .asm_11a039
+ dec a
+ jr z, .asm_11a081
+ jp Function11a0ca
+
+.asm_11a039
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $c608
+ ld de, w3_d800
+ ld bc, $00f6
+ call CopyBytes
+ ld a, $1
+ ld [rSVBK], a
+ call FadeToMenu
+ callba Function11765d
+ call Function11a9ce
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, w3_d800
+ ld de, $c608
+ ld bc, $00f6
+ call CopyBytes
+ ld a, $1
+ ld [rSVBK], a
+ callba Function115d99
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+
+.asm_11a081
+ xor a
+ ld [wMenuBorderLeftCoord], a
+ ld [wMenuBorderTopCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $5
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ callba Function11765d
+ callba Function117ab4
+ callba MobileFunc_106462
+ callba Function106464
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115d99
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+; 11a0ca
+
+Function11a0ca: ; 11a0ca
+ xor a
+ ld [wMenuBorderLeftCoord], a
+ ld [wMenuBorderTopCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $11
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ callba Function11765d
+ callba Function17d3f6
+ callba MobileFunc_106462
+ callba Function106464
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115d99
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+; 11a113
+
+Function11a113: ; 11a113
+ call Function11a63c
+ ld c, $1
+ callba Function115e18
+ hlcoord 4, 2
+ ld de, String_11a6c8
+ call PlaceString
+ and a
+ ret
+; 11a129
+
+Function11a129: ; 11a129
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a131
+
+Function11a131: ; 11a131
+ ld hl, wMobileInactivityTimerMinutes
+ dec [hl]
+ ret nz
+ ld a, [wcd3c]
+ inc a
+ ld [wcd3c], a
+
+Function11a13d:
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+; 11a14b
+
+Function11a14b: ; 11a14b
+ ld hl, wcd85
+ ld a, [hl]
+ cp $f3
+ jr nz, .asm_11a155
+ and a
+ ret
+
+.asm_11a155
+ call Function11a1d6
+ ret c
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6f1
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a16d
+
+Function11a16d: ; 11a16d
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a179
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a179
+ call Function11a63c
+ call Function11a1e6
+ hlcoord 4, 2
+ ld de, $c346
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a192
+
+Function11a192: ; 11a192
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a1b6
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a1b6
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ ld [wcd80], a
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ scf
+ ret
+; 11a1d6
+
+Function11a1d6: ; 11a1d6
+ ld a, [wcd85]
+ cp $50
+ jr nz, .asm_11a1e4
+ ld a, $d3
+ call Function118805
+ scf
+ ret
+
+.asm_11a1e4
+ and a
+ ret
+; 11a1e6
+
+Function11a1e6: ; 11a1e6
+ ld hl, String_11a706
+ ld de, $c346
+ call Function11a1ff
+ ld hl, wcd85
+ call Function11a1ff
+ ld hl, String_11a70b
+ call Function11a1ff
+ ld a, $50
+ ld [de], a
+ ret
+; 11a1ff
+
+Function11a1ff: ; 11a1ff
+.asm_11a1ff
+ ld a, [hli]
+ cp $50
+ ret z
+ ld [de], a
+ inc de
+ jr .asm_11a1ff
+; 11a207
+
+BattleTowerRoomMenu2_PlaceYesNoMenu: ; 11a207
+ ld hl, MenuDataHeader_11a2de
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ call ApplyTilemap
+ hlcoord 16, 8
+ ld de, String_11a2cf
+ call PlaceString
+ hlcoord 16, 10
+ ld de, String_11a2d3
+ call PlaceString
+ hlcoord 15, 8
+ ld a, $ed
+ ld [hl], a
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a235
+
+BattleTowerRoomMenu2_UpdateYesNoMenu: ; 11a235
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a_button
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b_button
+ ld a, [hl]
+ and D_UP
+ jr nz, .d_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .d_down
+.asm_11a24c
+ call Function11a9f0
+ scf
+ ret
+
+.d_up
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a24c
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 8
+ ld a, $ed
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, $7f
+ ld [hl], a
+ jr .asm_11a24c
+
+.d_down
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a24c
+ inc a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 8
+ ld a, $7f
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, $ed
+ ld [hl], a
+ jr .asm_11a24c
+
+.a_button
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .exit_no_carry
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerFrames]
+ cp $0
+ jr z, .asm_11a2b4
+ ld a, [wcd47]
+ jr .exit_carry
+
+.asm_11a2b4
+ ld a, [wcd33]
+
+.exit_carry
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+
+.b_button
+ call PlayClickSFX
+
+.exit_no_carry
+ call ExitMenu
+ callba ReloadMapPart
+ and a
+ ret
+; 11a2cf
+
+String_11a2cf: ; 11a2cf
+ db "YES@"
+; 11a2d3
+
+String_11a2d3: ; 11a2d3
+ db "NO@"
+; 11a2d6
+
+MenuDataHeader_11a2d6: ; 11a2d6
+ db $40 ; flags
+ db 6, 14 ; start coords
+ db 10, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11a2de
+
+MenuDataHeader_11a2de: ; 11a2de
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11a2e6
+
+Function11a2e6: ; 11a2e6
+ call Function11a63c
+ ld c, $2
+ callba Function115e18
+ hlcoord 4, 2
+ ld de, String_11a71e
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a302
+
+Function11a302: ; 11a302
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a30e
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a30e
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a72a
+ call PlaceString
+ hlcoord 9, 4
+ ld de, wcd68
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ hlcoord 14, 4
+ ld de, wcd67
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 2
+ call PrintNum
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a33a
+
+Function11a33a: ; 11a33a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a346
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a346
+ call ExitMenu
+ callba ReloadMapPart
+ callba Function115dc3
+ and a
+ ret
+; 11a357
+
+Function11a357: ; 11a357
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a743
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a36b
+
+Function11a36b: ; 11a36b
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a377
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a377
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a755
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a38d
+
+Function11a38d: ; 11a38d
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a3b1
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a3b1
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a3c5
+
+Function11a3c5: ; 11a3c5
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a762
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a3d9
+
+Function11a3d9: ; 11a3d9
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a3e5
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a3e5
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a779
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a3f9
+
+Function11a3f9: ; 11a3f9
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a405
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a405
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a755
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a41b
+
+Function11a41b: ; 11a41b
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a43f
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a43f
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, $1c
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a452
+
+Function11a452: ; 11a452
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a791
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a466
+
+Function11a466: ; 11a466
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a7c1
+ call PlaceString
+ ld a, $80
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a47a
+
+Function11a47a: ; 11a47a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a486
+ dec a
+ ld [wMobileInactivityTimerMinutes], a
+ scf
+ ret
+
+.asm_11a486
+ and a
+ ret
+; 11a488
+
+Function11a488: ; 11a488
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a7ac
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a49e
+
+Function11a49e: ; 11a49e
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a4c7
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ ld a, $14
+ ld [wcf66], a
+ and a
+ ret
+
+.asm_11a4c7
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerFrames]
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a4db
+
+Function11a4db: ; 11a4db
+ call Function11a63c
+ ld de, String_11a6db
+ hlcoord 4, 2
+ call PlaceString
+ ret
+; 11a4e8
+
+Function11a4e8: ; 11a4e8
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a7d7
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ jp BattleTowerRoomMenu2_IncrementJumptable
+; 11a4fe
+
+Function11a4fe: ; 11a4fe
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a522
+ call ExitMenu
+ callba ReloadMapPart
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a522
+ call ExitMenu
+ callba ReloadMapPart
+ ld a, [wMobileInactivityTimerSeconds]
+ ld [wcf66], a
+ ld [wcd80], a
+ scf
+ ret
+; 11a536
+
+Function11a536: ; 11a536
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ jr nz, .asm_11a5a7
+ ld a, [hl]
+ and $2
+ jr nz, .asm_11a5a2
+ ld a, [hl]
+ and $40
+ jr nz, .asm_11a564
+ ld a, [hl]
+ and $80
+ jr nz, .asm_11a583
+.asm_11a54d
+ ld a, [wcd3c]
+ cp $4
+ jr z, .asm_11a562
+ call Function11a9f0
+ jr nz, .asm_11a562
+ call ExitMenu
+ callba ReloadMapPart
+
+.asm_11a562
+ scf
+ ret
+
+.asm_11a564
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr z, .asm_11a54d
+ xor a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 7
+ ld a, $ed
+ ld [hl], a
+ hlcoord 15, 9
+ ld a, $7f
+ ld [hl], a
+ jr .asm_11a54d
+
+.asm_11a583
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wMobileInactivityTimerMinutes]
+ and a
+ jr nz, .asm_11a54d
+ inc a
+ ld [wMobileInactivityTimerMinutes], a
+ hlcoord 15, 7
+ ld a, $7f
+ ld [hl], a
+ hlcoord 15, 9
+ ld a, $ed
+ ld [hl], a
+ jr .asm_11a54d
+
+.asm_11a5a2
+ ld a, $1
+ ld [wMobileInactivityTimerMinutes], a
+
+.asm_11a5a7
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ and a
+ ret
+; 11a5b0
+
+BattleTowerRoomMenu2_IncrementJumptable: ; 11a5b0
+ ld a, [wcd3c]
+ inc a
+ ld [wcd3c], a
+ scf
+ ret
+; 11a5b9
+
+Function11a5b9: ; 11a5b9
+ xor a
+ ld [wMenuBorderLeftCoord], a
+ ld [wMenuBorderTopCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $5
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ hlcoord 0, 0, AttrMap
+ ld b, $6
+ ld c, $14
+ hlcoord 0, 0
+ ld b, $4
+ ld c, $12
+ call Function3eea
+ callba ReloadMapPart
+ call UpdateSprites
+ ld c, $0
+ callba Function115e18
+ ld a, $1
+ ld [wc305], a
+ ret
+; 11a5f5
+
+Function11a5f5: ; 11a5f5
+ ld a, $e
+ ld [wMenuBorderLeftCoord], a
+ ld a, $13
+ ld [wMenuBorderRightCoord], a
+ ld a, $6
+ ld [wMenuBorderTopCoord], a
+ ld a, $a
+ ld [wMenuBorderBottomCoord], a
+ call PushWindow
+ hlcoord 14, 6, AttrMap
+ ld b, $5
+ ld c, $6
+ hlcoord 14, 6
+ ld b, $3
+ ld c, $4
+ call Function3eea
+ hlcoord 16, 7
+ ld de, String_11a2cf
+ call PlaceString
+ hlcoord 16, 9
+ ld de, String_11a2d3
+ call PlaceString
+ hlcoord 15, 7
+ ld a, $ed
+ ld [hl], a
+ callba ReloadMapPart
+ ret
+; 11a63c
+
+Function11a63c: ; 11a63c
+ hlcoord 4, 1
+ ld de, String_11a7f4
+ call PlaceString
+ hlcoord 4, 2
+ ld de, String_11a7f4
+ call PlaceString
+ hlcoord 4, 3
+ ld de, String_11a7f4
+ call PlaceString
+ hlcoord 4, 4
+ ld de, String_11a7f4
+ call PlaceString
+ ret
+; 11a661
+
+String_11a661: ; 11a661
+ db "これから モバイルセンターに"
+ next "でんわ", $1f, "かけます@"
+; 11a679
+
+String_11a679: ; 11a679
+ db "モバイルアダプタ", $25, "じゅんびは"
+ next "できて いますか?@"
+; 11a692
+
+String_11a692: ; 11a692
+ db "でんわ", $1f, "かけています"
+ next "しばらく おまちください@"
+; 11a6aa
+
+String_11a6aa: ; 11a6aa
+ db "でんわをかけると つうわりょう"
+ next "せつぞくりょう", $4a, "かかります@"
+; 11a6c8
+
+String_11a6c8: ; 11a6c8
+ db "せつぞく しました@"
+; 11a6d2
+
+String_11a6d2: ; 11a6d2
+ db "つうしん ちゅう@"
+; 11a6db
+
+String_11a6db: ; 11a6db
+ db "つうしん ちゅう"
+ next "セレクト エーでちゅうし@"
+; 11a6f1
+
+String_11a6f1: ; 11a6f1
+ db "この サービスには"
+ next "つうわりょう", $25, "ほかに@"
+; 11a706
+
+String_11a706: ; 11a706
+ db "おかね", $4a, "@"
+; 11a70b
+
+String_11a70b: ; 11a70b
+ db "えん"
+ next "かかります よろしい ですか?@"
+; 11a71e
+
+String_11a71e: ; 11a71e
+ db "つうしん しゅうりょう@"
+; 11a72a
+
+String_11a72a: ; 11a72a
+ db "つないだ じかん"
+ next " やく ふん びょう@"
+; 11a743
+
+String_11a743: ; 11a743
+ db "もっていない データが"
+ next "あります!@"
+; 11a755
+
+String_11a755: ; 11a755
+ db "データ", $1f, "よみこみますか?@"
+; 11a762
+
+String_11a762: ; 11a762
+ db "おなじ データ", $1f, "よみこんだ"
+ next "こと", $4a, "ありますが@"
+; 11a779
+
+String_11a779: ; 11a779
+ db "そのデータ", $24, "なくなっているか"
+ next "こわれて います@"
+; 11a791
+
+String_11a791: ; 11a791
+ db "もっている データと"
+ next "おなじデータしか ありません!@"
+; 11a7ac
+
+String_11a7ac: ; 11a7ac
+ db "データ", $25, "よみこみを"
+ next "ちゅうし しますか?@"
+; 11a7c1
+
+String_11a7c1: ; 11a7c1 ; new news?
+ db "あたらしい ニュースは"
+ next "ありません でした@"
+; 11a7d7
+
+String_11a7d7: ; 11a7d7
+ db "あたらしいニュース", $4a, "あります"
+ next "ニュース", $1f, "よみこみますか?@"
+; 11a7f4
+
+String_11a7f4: ; 11a7f4
+ db " @"
+; 11a804
+
+MenuDataHeader_11a804: ; 11a804
+ db $40 ; flags
+ db 0, 0 ; start coords
+ db 5, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11a80c
+
+Function11a80c: ; 11a80c
+ ld de, hDivisor
+ ld bc, hDividend
+ ld hl, Unknown_11a89a
+ call Function11a88c
+ ld bc, hQuotient
+ ld hl, Unknown_11a8ba
+ call Function11a88c
+ ld bc, hPrintNum3
+ ld hl, Unknown_11a8da
+ call Function11a88c
+ xor a
+ ld b, a
+ ld a, [hDivisor]
+ and $f
+ ld e, a
+ ld a, [hPrintNum7]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum9]
+ and $f
+ call Function11a884
+ ld [wcd62], a
+ ld e, b
+ xor a
+ ld b, a
+ ld a, [hDivisor]
+ and $f0
+ swap a
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum7]
+ and $f0
+ swap a
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum9]
+ and $f0
+ swap a
+ call Function11a884
+ ld [wcd63], a
+ ld e, b
+ xor a
+ ld b, a
+ ld a, [hMathBuffer]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum8]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [hPrintNum10]
+ and $f
+ call Function11a884
+ ld [wcd64], a
+ ret
+; 11a884
+
+Function11a884: ; 11a884
+ add e
+ cp $a
+ ret c
+ sub $a
+ inc b
+ ret
+; 11a88c
+
+Function11a88c: ; 11a88c
+ ld a, [bc]
+ sla a
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ret
+; 11a89a
+
+Unknown_11a89a: ; 11a89a
+x = 0
+rept 16
+ bcd x % 100, x / 100
+x = x + 1
+endr
+
+Unknown_11a8ba: ; 11a8ba
+x = 0
+rept 16
+ bcd x % 100, x / 100
+x = x + 16
+endr
+
+Unknown_11a8da: ; 11a8da
+x = 0
+rept 16
+ bcd x % 100, x / 100
+x = x + 256
+endr
+; 11a8fa
+
+BattleTowerRoomMenu_WriteMessage: ; 11a8fa
+ jumptable .Jumptable, $c31a
+; 11a909
+
+.Jumptable: ; 11a909
+ dw BattleTowerRoomMenu_WriteMessage_DoNothing
+ dw Function11a90f
+ dw Function11a971
+; 11a90f
+
+Function11a90f: ; 11a90f
+ ld a, $1
+ ld [rSVBK], a
+ call SpeechTextBox
+ ld a, $50
+ ld hl, $c320
+ ld bc, $008c
+ call ByteFill
+ ld a, [$c31b]
+ ld l, a
+ ld a, [$c31c]
+ ld h, a
+ ld de, $c320
+.asm_11a92c
+ ld a, [hli]
+ cp $57
+ jr z, .asm_11a94f
+ cp $0
+ jr z, .asm_11a92c
+ cp $50
+ jr z, .asm_11a92c
+ cp $1
+ jr z, .asm_11a941
+ ld [de], a
+ inc de
+ jr .asm_11a92c
+
+.asm_11a941
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+.asm_11a945
+ ld a, [bc]
+ inc bc
+ cp $50
+ jr z, .asm_11a92c
+ ld [de], a
+ inc de
+ jr .asm_11a945
+
+.asm_11a94f
+ xor a
+ ld [$c31f], a
+ ld a, $c320 % $100
+ ld [$c31b], a
+ ld a, $c320 / $100
+ ld [$c31c], a
+ hlcoord 1, 14
+ ld a, l
+ ld [$c31d], a
+ ld a, h
+ ld [$c31e], a
+ ld hl, $c31a
+ inc [hl]
+ ld a, $3
+ ld [rSVBK], a
+
+BattleTowerRoomMenu_WriteMessage_DoNothing:
+ ret
+; 11a971
+
+Function11a971: ; 11a971
+ ld hl, $c31f
+ ld a, [hJoyDown]
+ and a
+ jr nz, .asm_11a97f
+ ld a, [hl]
+ and a
+ jr z, .asm_11a97f
+ dec [hl]
+ ret
+
+.asm_11a97f
+ ld a, [Options]
+ and $7
+ ld [hl], a
+ ld hl, wcd8d
+ ld a, [$c31b]
+ ld e, a
+ ld a, [$c31c]
+ ld d, a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, e
+ ld [$c31b], a
+ ld a, d
+ ld [$c31c], a
+ ld a, $50
+ ld [hl], a
+ ld a, [$c31d]
+ ld l, a
+ ld a, [$c31e]
+ ld h, a
+ ld de, wcd8d
+ call PlaceString
+ ld a, c
+ ld [$c31d], a
+ ld a, b
+ ld [$c31e], a
+ ld a, [wcd8d]
+ cp $50
+ jr nz, .asm_11a9bf
+ xor a
+ ld [$c31a], a
+
+.asm_11a9bf
+ ret
+; 11a9c0
+
+BattleTowerRoomMenu_SetMessage: ; 11a9c0
+ ld a, l
+ ld [$c31b], a
+ ld a, h
+ ld [$c31c], a
+ ld a, $1
+ ld [$c31a], a
+ ret
+; 11a9ce
+
+Function11a9ce: ; 11a9ce
+ call ClearBGPalettes
+ call ReloadTilesetAndPalettes
+ call Call_ExitMenu
+ callba MobileFunc_106462
+ callba Function106464
+ call ret_d90
+ callba FinishExitMenu
+ call UpdateSprites
+ ret
+; 11a9f0
+
+Function11a9f0: ; 11a9f0
+ ld a, $1
+ and a
+ ret
+; 11a9f4
+
+Function11a9f4: ; 11a9f4
+ ld a, [wcd8a]
+ ld l, a
+ ld a, [wcd8b]
+ ld h, a
+ inc hl
+ ld a, l
+ ld [wcd8a], a
+ ld a, h
+ ld [wcd8b], a
+ ld de, $d5d0
+ add hl, de
+ bit 7, h
+ ret nz
+ ld a, $d6
+ call Function118805
+ and a
+ ret
+; 11aa13
+
+Text_SaveFileWillBeSent: ; 0x11aa13
+ text "SAVE FILE will be"
+ line "sent."
+ done
+; 0x11aa2c
+
+Text_SentSaveFileReadingNews: ; 0x11aa2c
+ text "Sent SAVE FILE."
+ line "Reading NEWS…"
+ done
+; 0x11aa4b
+
+Text_ReadingNews: ; 0x11aa4b
+ text "Reading NEWS…"
+ done
+; 0x11aa5a
+
+Text_ReceivedNews: ; 0x11aa5a
+ text "Received NEWS!"
+ done
+; 0x11aa6a
+
+Text_QuitReadingNews: ; 0x11aa6a
+ text "Quit reading NEWS?"
+ done
+; 0x11aa7e
+
+Text_CanceledSendingSaveFile: ; 0x11aa7e
+ text "Canceled sending"
+ line "SAVE FILE."
+ done
+; 0x11aa9b
+
+Text_ReceivedOddEgg: ; 0x11aa9b
+ text "ODD EGG"
+ line "was received!"
+ done
+; 0x11aab2
+
+Text_RegisteringRecord: ; 0x11aab2
+ text "Registering your"
+ line "record…"
+ done
+; 0x11aacc
+
+Text_BattleRoomVisitLimit: ; 0x11aacc
+ text "One visit per day"
+ line "per BATTLE ROOM!"
+ done
+; 0x11aaf0
+
+Text_PartyMonTopsThisLevel: ; 0x11aaf0
+ text "A party #MON"
+ line "tops this level."
+ done
+; 0x11ab0f
+
+Text_UberRestriction: ; 0x11ab0f
+ text_from_ram wcd49
+ text " may go"
+ line "only to BATTLE"
+
+ para "ROOMS that are"
+ line "Lv.70 or higher."
+ done
+; 0x11ab4a
+
+Text_CancelBattleRoomChallenge: ; 0x11ab4a
+ text "Cancel your BATTLE"
+ line "ROOM challenge?"
+ done
+; 0x11ab6e
+
+Text_ExitGymLeaderHonorRoll: ; 0x11ab6e
+ text "Exit GYM LEADER"
+ line "HONOR ROLL?"
+ done
+; 0x11ab8b
+
+Text_LinkingWithCenter: ; 0x11ab8b
+ text "Linking with the"
+ line "CENTER…"
+ done
+; 0x11aba5
+
+Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5
+ text "What level do you"
+ line "want to challenge?"
+ done
+; 0x11abcb
+
+Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb
+ text "Check BATTLE ROOM"
+ line "list by max level?"
+ done
+; 0x11abf1
+
+Text_EnterWhichBattleRoom: ; 0x11abf1
+ text "Enter which"
+ line "BATTLE ROOM?"
+ done
+; 0x11ac0b
+
+Text_WhichBattleRoom: ; 0x11ac0b
+ text "Which BATTLE ROOM?"
+ done
+; 0x11ac1f
+
+Text_ThisBattleRoomPleaseWait: ; 0x11ac1f
+ text_from_ram StringBuffer3
+ text "'s ROOM"
+ line "@"
+ text_from_ram StringBuffer4
+ text "?"
+ cont "Please wait…"
+ done
+; 0x11ac3e
+
+Function11ac3e: ; 11ac3e
+ call SpeechTextBox
+ call FadeToMenu
+ callab ClearSpriteAnims2
+ call Function11ac51
+ call CloseSubmenu
+ ret
+; 11ac51
+
+Function11ac51: ; 11ac51
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ xor a
+ ld [hMapAnims], a
+ ld [wcd49], a
+ ld [wcd4a], a
+ ld [wcd4c], a
+ ld [wcd4d], a
+ ld [wcd4e], a
+ call Function11ad1b
+ call DelayFrame
+.loop
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_11aca8
+ call Function11b314
+ call Function11acb7
+ call Function11ad6e
+ ld a, 30 * 4
+ ld [wCurrSpriteOAMAddr], a
+ callba DoNextFrameForAllSprites
+ callba ReloadMapPart
+ jr .loop
+
+.asm_11aca8
+ call ClearSprites
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ ret
+; 11acb7
+
+Function11acb7: ; 11acb7
+ ld hl, TilemapPack_11ba44
+ ld a, [wcd49]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ decoord 6, 6
+ ld a, [hli]
+ ld [de], a
+ decoord 0, 7
+ ld bc, 7
+ call CopyBytes
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, [hl]
+ cp $ff
+ jr nz, .get_the_other
+ xor a
+ ld [wcd49], a
+.get_the_other
+ ld hl, TilemapPack_11bb7d
+ ld a, [wcd4a]
+ ld c, a
+ ld b, $0
+ sla c
+ rl b
+ sla c
+ rl b
+ sla c
+ rl b
+ add hl, bc
+ decoord 3, 9
+ ld bc, 7
+ call CopyBytes
+ ld a, [wcd4a]
+ inc a
+ ld [wcd4a], a
+ inc hl
+ ld a, [hl]
+ cp $ff
+ ret nz
+ xor a
+ ld [wcd4a], a
+ ret
+; 11ad1b
+
+Function11ad1b: ; 11ad1b
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ callba Function17c000
+ ld a, [wMenuCursorY]
+ ld [wcd82], a
+ dec a
+ ld [hObjectStructIndexBuffer], a
+ ld a, $10
+ ld [wCurIconTile], a
+ ld hl, LoadMenuMonIcon
+ ld a, BANK(LoadMenuMonIcon)
+ ld e, $4
+ rst FarCall
+ ld hl, LoadMenuMonIcon
+ ld a, BANK(LoadMenuMonIcon)
+ ld e, $5
+ rst FarCall
+ ld hl, $c6d0
+ ld bc, $0115
+ xor a
+ call ByteFill
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wcd30], a
+ ld a, $2
+ ld [wc7d4], a
+ callba Pokedex_OrderMonsByMode
+ ret
+; 11ad6e
+
+Function11ad6e: ; 11ad6e
+ ld a, [wJumptableIndex]
+ ld hl, Jumptable_11ad78
+ call Function11b239
+ jp hl
+; 11ad78
+
+Jumptable_11ad78: ; 11ad78
+ dw Function11b082
+ dw Function11b0ff
+ dw Function11ad95
+ dw Function11adc4
+ dw Function11ae4e
+ dw Function11ae98
+ dw Function11ad8f
+ dw Function11af04
+ dw Function11af4e
+; 11ad8a
+
+Function11ad8a: ; 11ad8a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 11ad8f
+
+Function11ad8f: ; 11ad8f
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 11ad95
+
+Function11ad95: ; 11ad95
+ ld hl, MenuDataHeader_11ae38
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 12, 12
+ ld de, String_11ae40
+ call PlaceString
+ hlcoord 10, 10, AttrMap
+ lb bc, 8, 8
+ call Function11afd6
+ callba ReloadMapPart
+ call Function11ad8a
+ ld a, $1
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afcc
+ call Function11afb7
+
+Function11adc4:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and a
+ ret z
+ ld a, [hl]
+ and $40
+ jr nz, .asm_11ade6
+ ld a, [hl]
+ and $80
+ jr nz, .asm_11aded
+ ld a, [hl]
+ and $1
+ jr nz, .asm_11ae06
+ ld a, [hl]
+ and $2
+ ret z
+ call PlayClickSFX
+ xor a
+ ld [wJumptableIndex], a
+ jr .asm_11ae2e
+
+.asm_11ade6
+ ld a, [wMenuCursorY]
+ dec a
+ ret z
+ jr .asm_11adf4
+
+.asm_11aded
+ ld a, [wMenuCursorY]
+ inc a
+ cp $4
+ ret z
+
+.asm_11adf4
+ push af
+ ld hl, Unknown_11afcc
+ call Function11afbb
+ pop af
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afcc
+ call Function11afb7
+ ret
+
+.asm_11ae06
+ call PlayClickSFX
+ ld a, [wMenuCursorY]
+ dec a
+ ld hl, wcd30
+ ld [hl], a
+ and a
+ jr z, .asm_11ae28
+ hlcoord 2, 14
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_11ae23
+ call Function11b272
+ jr .asm_11ae2b
+
+.asm_11ae23
+ call Function11b267
+ jr .asm_11ae2b
+
+.asm_11ae28
+ ld a, $3
+ ld [hl], a
+
+.asm_11ae2b
+ call Function11ad8a
+
+.asm_11ae2e
+ call ExitMenu
+ callba ReloadMapPart
+ ret
+; 11ae38
+
+MenuDataHeader_11ae38: ; 11ae38
+ db $40 ; flags
+ db 10, 10 ; start coords
+ db 17, 17 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11ae40
+
+String_11ae40: ; 11ae40
+ db "どちらでも"
+ next "♂ォス"
+ next "♀メス"
+ db "@"
+; 11ae4e
+
+Function11ae4e: ; 11ae4e
+ ld hl, MenuDataHeader_11afe8
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 10, 14
+ ld de, String_11aff0
+ call PlaceString
+ ld hl, MenuDataHeader_11b013
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 16, 8
+ ld de, String_11b01b
+ call PlaceString
+ hlcoord 14, 7, AttrMap
+ lb bc, 5, 6
+ call Function11afd6
+ hlcoord 9, 12, AttrMap
+ lb bc, 6, 11
+ call Function11afd6
+ callba ReloadMapPart
+ call Function11ad8a
+ ld a, $1
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+
+Function11ae98:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and a
+ ret z
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_11aec1
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_11aec8
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_11aee1
+ ld a, [hl]
+ and B_BUTTON
+ ret z
+ call PlayClickSFX
+.asm_11aeb4
+ hlcoord 2, 14
+ ld a, $7f
+ ld [hl], a
+ ld a, $1
+ ld [wJumptableIndex], a
+ jr .asm_11aef7
+
+.asm_11aec1
+ ld a, [wMenuCursorY]
+ dec a
+ ret z
+ jr .asm_11aecf
+
+.asm_11aec8
+ ld a, [wMenuCursorY]
+ inc a
+ cp $3
+ ret z
+
+.asm_11aecf
+ push af
+ ld hl, Unknown_11afd2
+ call Function11afbb
+ pop af
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+ ret
+
+.asm_11aee1
+ call PlayClickSFX
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_11aeb4
+ ld a, [wcd4b]
+ ld [ScriptVar], a
+ call Function11b022
+ call Function11ad8a
+
+.asm_11aef7
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ret
+; 11af04
+
+Function11af04: ; 11af04
+ ld hl, MenuDataHeader_11afe8
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 10, 14
+ ld de, String_11b003
+ call PlaceString
+ ld hl, MenuDataHeader_11b013
+ call LoadMenuDataHeader
+ call MenuBox
+ hlcoord 16, 8
+ ld de, String_11b01b
+ call PlaceString
+ hlcoord 14, 7, AttrMap
+ lb bc, 5, 6
+ call Function11afd6
+ hlcoord 9, 12, AttrMap
+ lb bc, 6, 11
+ call Function11afd6
+ callba ReloadMapPart
+ call Function11ad8a
+ ld a, $2
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+
+Function11af4e:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and a
+ ret z
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_11af77
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_11af7e
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_11af97
+ ld a, [hl]
+ and B_BUTTON
+ ret z
+ call PlayClickSFX
+.asm_11af6a
+ hlcoord 2, 14
+ ld a, $7f
+ ld [hl], a
+ ld a, $1
+ ld [wJumptableIndex], a
+ jr .asm_11afaa
+
+.asm_11af77
+ ld a, [wMenuCursorY]
+ dec a
+ ret z
+ jr .asm_11af85
+
+.asm_11af7e
+ ld a, [wMenuCursorY]
+ inc a
+ cp $3
+ ret z
+
+.asm_11af85
+ push af
+ ld hl, Unknown_11afd2
+ call Function11afbb
+ pop af
+ ld [wMenuCursorY], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+ ret
+
+.asm_11af97
+ call PlayClickSFX
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .asm_11af6a
+ ld a, $6
+ ld [wJumptableIndex], a
+ xor a
+ ld [ScriptVar], a
+
+.asm_11afaa
+ call ExitMenu
+ call ExitMenu
+ callba ReloadMapPart
+ ret
+; 11afb7
+
+Function11afb7: ; 11afb7
+ ld e, $ed
+ jr asm_11afbd
+
+Function11afbb:
+ ld e, $7f
+
+asm_11afbd:
+ ld a, [wMenuCursorY]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, e
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld [de], a
+ ret
+; 11afcc
+
+Unknown_11afcc:
+ dwcoord 11, 12
+ dwcoord 11, 14
+ dwcoord 11, 16
+
+Unknown_11afd2:
+ dwcoord 15, 8
+ dwcoord 15, 10
+; 11afd6
+
+Function11afd6: ; 11afd6
+ ld de, SCREEN_WIDTH
+ ld a, $3
+.row
+ push bc
+ push hl
+.col
+ ld [hli], a
+ dec c
+ jr nz, .col
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .row
+ ret
+; 11afe8
+
+MenuDataHeader_11afe8: ; 11afe8
+ db $40 ; flags
+ db 12, 9 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 11aff0
+
+String_11aff0: ; 11aff0
+ db "この じょうけんで"
+ next "よろしいですか?@"
+; 11b003
+
+String_11b003: ; 11b003
+ db "こうかんを"
+ next "ちゅうししますか?@"
+; 11b013
+
+MenuDataHeader_11b013: ; 11b013
+ db $40 ; flags
+ db 7, 14 ; start coords
+ db 11, 19 ; end coords
+ dw NULL
+ db 1 ; default option
+; 11b01b
+
+String_11b01b:
+ db "はい"
+ next "いいえ@"
+; 11b022
+
+Function11b022: ; 11b022
+ ld a, [wcd2e]
+ and a
+ jr z, .asm_11b02e
+ ld hl, StringBuffer3
+ call Function11b03d
+
+.asm_11b02e
+ ld a, [wcd30]
+ and a
+ ret z
+ cp $3
+ ret z
+ ld hl, StringBuffer4
+ call Function11b03d
+ ret
+; 11b03d
+
+Function11b03d: ; 11b03d
+ push hl
+ push af
+ ld c, $1
+.loop
+ ld a, [hli]
+ cp "♂"
+ jr z, .gender
+ cp "♀"
+ jr z, .gender
+ cp "@"
+ jr z, .done
+ inc c
+ jr .loop
+
+.gender
+ dec hl
+ ld a, "@"
+ ld [hli], a
+
+.done
+ dec hl
+ push hl
+ ld e, 4
+ ld d, 0
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+.loop2
+ ld a, [hld]
+ ld [de], a
+ dec de
+ dec c
+ jr nz, .loop2
+ pop af
+ pop de
+ cp $1
+ jr nz, .female
+ ld hl, .MaleString
+ jr .got_string
+
+.female
+ ld hl, .FemaleString
+
+.got_string
+ ld bc, 4 ; string length
+ call CopyBytes
+ ret
+; 11b07a
+
+.MaleString: db "ォスの "
+.FemaleString: db "メスの "
+
+Function11b082: ; 11b082
+ call Function11b242
+ ld a, $7
+ ld [wc7d3], a
+ call Function11b099
+ call Function11b295
+ call Function11b275
+ call SetPalettes
+ jp Function11ad8a
+; 11b099
+
+Function11b099: ; 11b099
+ ld c, $6
+ hlcoord 11, 1
+ ld a, [wc7d3]
+ add a
+ ld b, a
+ xor a
+ call Function11b236
+ ld a, [wc7d0]
+ ld e, a
+ ld d, $0
+ ld hl, wc6d0
+ add hl, de
+ ld e, l
+ ld d, h
+ hlcoord 11, 2
+ ld a, [wc7d3]
+.loop
+ push af
+ ld a, [de]
+ ld [wd265], a
+ push de
+ push hl
+ call .PlaceMonNameOrPlaceholderString
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop de
+ inc de
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+; 11b0cf
+
+.PlaceMonNameOrPlaceholderString: ; 11b0cf
+ and a
+ ret z
+
+ call .CheckSeenFlag
+ ret c
+
+ call .SetCaughtFlag
+ push hl
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ ret
+; 11b0e1
+
+.SetCaughtFlag: ; 11b0e1
+ call CheckCaughtMemMon
+ jr nz, .okay
+ inc hl
+ ret
+
+.okay
+ ld a, $1
+ ld [hli], a
+ ret
+; 11b0ec
+
+.CheckSeenFlag: ; 11b0ec
+ call CheckSeenMemMon
+ ret nz
+
+ inc hl
+ ld de, .EmptySlot
+ call PlaceString
+ scf
+ ret
+; 11b0f9
+
+.EmptySlot: ; 11b0f9
+ db "ーーーーー@"
+; 11b0ff
+
+Function11b0ff: ; 11b0ff
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $2
+ jr nz, .asm_11b141
+ ld a, [hl]
+ and $1
+ jr nz, .asm_11b131
+ call Function11b175
+ jr nc, .asm_11b125
+ ld a, [wcd4c]
+ inc a
+ and $3
+ ld [wcd4c], a
+ xor a
+ ld [hBGMapMode], a
+ call Function11b099
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+.asm_11b125
+ ld a, [wcd4c]
+ and a
+ ret z
+ inc a
+ and $3
+ ld [wcd4c], a
+ ret
+
+.asm_11b131
+ call Function11b20b
+ call CheckSeenMemMon
+ jr z, .asm_11b13d
+ ld a, $1
+ jr .asm_11b148
+
+.asm_11b13d
+ ld a, $2
+ jr .asm_11b148
+
+.asm_11b141
+ ld hl, wJumptableIndex
+ ld a, $7
+ ld [hl], a
+ ret
+
+.asm_11b148
+ call PlayClickSFX
+ ld [wcd4b], a
+ and a
+ jr z, .asm_11b16c
+ ld a, [wcf65]
+ cp $0
+ jr z, .asm_11b163
+ cp $fe
+ jr z, .asm_11b167
+ cp $ff
+ jr z, .asm_11b16b
+ jp Function11ad8a
+
+.asm_11b163
+ ld a, $1
+ jr .asm_11b16c
+
+.asm_11b167
+ ld a, $2
+ jr .asm_11b16c
+
+.asm_11b16b
+ xor a
+
+.asm_11b16c
+ ld [wcd30], a
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 11b175
+
+Function11b175: ; 11b175
+ ld a, [wc7d3]
+ ld d, a
+ ld a, [wc7d2]
+ ld e, a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and $40
+ jr nz, .asm_11b19a
+ ld a, [hl]
+ and $80
+ jr nz, .asm_11b1ae
+ ld a, d
+ cp e
+ jr nc, .asm_11b1ed
+ ld a, [hl]
+ and $20
+ jr nz, .asm_11b1c6
+ ld a, [hl]
+ and $10
+ jr nz, .asm_11b1d8
+ jr .asm_11b1ed
+
+.asm_11b19a
+ ld hl, wc7d1
+ ld a, [hl]
+ and a
+ jr z, .asm_11b1a4
+ dec [hl]
+ jr .asm_11b1ef
+
+.asm_11b1a4
+ ld hl, wc7d0
+ ld a, [hl]
+ and a
+ jr z, .asm_11b1ed
+ dec [hl]
+ jr .asm_11b1ef
+
+.asm_11b1ae
+ ld hl, wc7d1
+ ld a, [hl]
+ inc a
+ cp e
+ jr nc, .asm_11b1ed
+ cp d
+ jr nc, .asm_11b1bc
+ inc [hl]
+ jr .asm_11b1ef
+
+.asm_11b1bc
+ ld hl, wc7d0
+ add [hl]
+ cp e
+ jr nc, .asm_11b1ed
+ inc [hl]
+ jr .asm_11b1ef
+
+.asm_11b1c6
+ ld hl, wc7d0
+ ld a, [hl]
+ and a
+ jr z, .asm_11b1ed
+ cp d
+ jr nc, .asm_11b1d4
+ xor a
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1d4
+ sub d
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1d8
+ ld hl, wc7d0
+ ld a, d
+ add a
+ add [hl]
+ jr c, .asm_11b1e3
+ cp e
+ jr c, .asm_11b1e8
+
+.asm_11b1e3
+ ld a, e
+ sub d
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1e8
+ ld a, [hl]
+ add d
+ ld [hl], a
+ jr .asm_11b1ef
+
+.asm_11b1ed
+ and a
+ ret
+
+.asm_11b1ef
+ call Function11b295
+ call Function11b275
+ scf
+ ret
+; 11b1f7
+
+Function11b1f7: ; 11b1f7
+ hlcoord 0, 0
+ ld a, $32
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ret
+; 11b203
+
+Function11b203: ; 11b203
+.asm_11b203
+ ld a, [de]
+ cp $ff
+ ret z
+ inc de
+ ld [hli], a
+ jr .asm_11b203
+; 11b20b
+
+Function11b20b: ; 11b20b
+ ld a, [wc7d1]
+ ld hl, wc7d0
+ add [hl]
+ ld e, a
+ ld d, $0
+ ld hl, $c6d0
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+ ret
+; 11b21e
+
+CheckCaughtMemMon: ; 11b21e
+ push de
+ push hl
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ pop hl
+ pop de
+ ret
+; 11b22a
+
+CheckSeenMemMon: ; 11b22a
+ push de
+ push hl
+ ld a, [wd265]
+ dec a
+ call CheckSeenMon
+ pop hl
+ pop de
+ ret
+; 11b236
+
+Function11b236: ; 11b236
+ jp FillBoxWithByte
+; 11b239
+
+Function11b239: ; 11b239
+ ld e, a
+ ld d, 0
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; 11b242
+
+Function11b242: ; 11b242
+ hlcoord 3, 4
+ ld de, StringBuffer3
+ call PlaceString
+ xor a
+ ld [MonType], a
+ callba GetGender
+ hlcoord 1, 4
+ ld a, [CurPartySpecies]
+ ld bc, wcd2f
+ ld [bc], a
+ dec bc
+ jr c, asm_11b26a
+ jr z, asm_11b26f
+ ld a, $1
+ ld [bc], a
+
+Function11b267:
+ ld [hl], $ef
+ ret
+
+asm_11b26a
+ xor a
+ ld [bc], a
+ ld [hl], $7f
+ ret
+
+asm_11b26f
+ ld a, $2
+ ld [bc], a
+
+Function11b272:
+ ld [hl], $f5
+ ret
+; 11b275
+
+Function11b275: ; 11b275
+ call Function11b279
+ ret
+; 11b279
+
+Function11b279: ; 11b279
+ ld a, [wd265]
+ ld [CurSpecies], a
+ call CheckSeenMemMon
+ jr z, .asm_11b28f
+ call GetBaseData
+ ld a, [BaseGender]
+ ld [wcf65], a
+ jr .asm_11b294
+
+.asm_11b28f
+ ld a, $ff
+ ld [wcf65], a
+
+.asm_11b294
+ ret
+; 11b295
+
+Function11b295: ; 11b295
+ hlcoord 4, 13
+ ld de, String_11b308
+ call PlaceString
+ hlcoord 4, 14
+ ld de, String_11b308
+ call PlaceString
+ call Function11b20b
+ call CheckSeenMemMon
+ jr z, .asm_11b2d1
+ ld a, [$c608]
+ ld c, a
+ ld a, [$c608 + 1]
+ ld b, a
+ ld hl, $0007
+ add hl, bc
+ xor a
+ ld [hl], a
+ ld hl, $0003
+ add hl, bc
+ ld e, [hl]
+ callba FlyFunction_GetMonIcon
+ hlcoord 4, 14
+ push hl
+ call GetPokemonName
+ jr .asm_11b2e7
+
+.asm_11b2d1
+ ld a, [$c608]
+ ld c, a
+ ld a, [$c608 + 1]
+ ld b, a
+ ld hl, $0007
+ add hl, bc
+ ld a, $50
+ ld [hl], a
+ hlcoord 4, 13
+ push hl
+ ld de, String_11b30e
+
+.asm_11b2e7
+ ld a, $6
+ ld bc, StringBuffer4
+.asm_11b2ec
+ push af
+ ld a, [de]
+ ld [bc], a
+ inc de
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .asm_11b2ec
+ pop hl
+ ld de, StringBuffer4
+ call PlaceString
+ ret
+; 11b2fe
+
+String_11b2fe: ; 11b2fe
+ db "あげる#@"
+; 11b303
+
+String_11b303: ; 11b303
+ db "ほしい#@"
+; 11b308
+
+String_11b308: ; 11b308
+ db " @"
+; 11b30e
+
+String_11b30e: ; 11b30e
+ db "みはっけん@"
+; 11b314
+
+Function11b314: ; 11b314
+ call Function11b31b
+ call Function11b3d9
+ ret
+; 11b31b
+
+Function11b31b: ; 11b31b
+ ld hl, .Coords
+ ld a, [wJumptableIndex]
+ cp 2
+ jr c, .tilemap_1
+ ld a, [wc7d1]
+ cp 4
+ jr nc, .tilemap_3
+ cp 3
+ jr c, .tilemap_1
+ ld a, [wJumptableIndex]
+ cp 2
+ jr z, .tilemap_1
+ cp 3
+ jr z, .tilemap_1
+ cp 6
+ jr z, .tilemap_1
+
+ ld bc, .Tilemap2
+ jr .load_sprites
+
+.tilemap_3
+ ld bc, .Tilemap3
+ jr .load_sprites
+
+.tilemap_1
+ ld bc, .Tilemap1
+
+.load_sprites
+ call Function11b397
+ ret
+; 11b350
+
+.Coords:
+ dbpixel 3, 11, 2, 6 ; 0
+ dbpixel 3, 12, 2, 6 ; 1
+ dbpixel 3, 13, 2, 6 ; 2
+ dbpixel 3, 14, 2, 6 ; 3
+ dbpixel 3, 15, 2, 6 ; 4
+ dbpixel 3, 16, 2, 6 ; 5
+ dbpixel 3, 17, 2, 6 ; 6
+ dbpixel 4, 11, 2, 6 ; 7
+ dbpixel 4, 12, 2, 6 ; 8
+ dbpixel 4, 13, 2, 6 ; 9
+ dbpixel 4, 14, 2, 6 ; 10
+ dbpixel 4, 15, 2, 6 ; 11
+ dbpixel 4, 16, 2, 6 ; 12
+ dbpixel 4, 17, 2, 6 ; 13
+ db -1
+
+.Tilemap1: ; vtiles
+ db $30 ; 0
+ db $31 ; 1
+ db $31 ; 2
+ db $31 ; 3
+ db $31 ; 4
+ db $31 ; 5
+ db $32 ; 6
+ db $40 ; 7
+ db $41 ; 8
+ db $41 ; 9
+ db $41 ; 10
+ db $41 ; 11
+ db $41 ; 12
+ db $42 ; 13
+
+.Tilemap2: ; vtiles
+ db $30 ; 0
+ db $31 ; 1
+ db $31 ; 2
+ db $39 ; 3
+ db $39 ; 4
+ db $39 ; 5
+ db $39 ; 6
+ db $40 ; 7
+ db $41 ; 8
+ db $41 ; 9
+ db $39 ; 10
+ db $39 ; 11
+ db $39 ; 12
+ db $39 ; 13
+
+.Tilemap3: ; vtiles
+ db $39 ; 0
+ db $39 ; 1
+ db $39 ; 2
+ db $39 ; 3
+ db $39 ; 4
+ db $39 ; 5
+ db $39 ; 6
+ db $39 ; 7
+ db $39 ; 8
+ db $39 ; 9
+ db $39 ; 10
+ db $39 ; 11
+ db $39 ; 12
+ db $39 ; 13
+
+Function11b397: ; 11b397
+ ld de, Sprites
+.loop
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, [wc7d1]
+ and $7
+ swap a
+ add [hl]
+ inc hl ; 1
+ ld [de], a
+ inc de
+
+ ld a, [hli] ; 2
+ ld [de], a
+ inc de
+
+ ld a, [bc]
+ inc bc
+ ld [de], a
+ inc de
+ ld a, $5 ; OBPal 5
+ ld [de], a
+ inc de
+ jr .loop
+; 11b3b6
+
+Function11b3b6: ; 11b3b6
+; unreferenced
+.loop
+ ld a, [hl]
+ cp -1
+ ret z
+ ld a, [wcd4d]
+ and $7
+ swap a
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ push hl
+ ld l, c
+ ld h, b
+ ld a, [wcd4e]
+ add [hl]
+ inc bc
+ ld [de], a
+ inc de
+ pop hl
+ ld a, $5
+ ld [de], a
+ inc de
+ jr .loop
+; 11b3d9
+
+Function11b3d9: ; 11b3d9
+ ld de, Sprites + 28 * 4
+ push de
+ ld a, [wc7d2]
+ dec a
+ ld e, a
+ ld a, [wc7d1]
+ ld hl, wc7d0
+ add [hl]
+ cp e
+ jr z, .skip
+ ld hl, 0
+ ld bc, $70
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld b, 0
+ ld a, d
+ or e
+ jr z, .load_sprites
+ ld a, [wc7d2]
+ ld c, a
+.loop1
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc $0
+ ld d, a
+ jr c, .load_sprites
+ inc b
+ jr .loop1
+
+.skip
+ ld b, 14 * 8
+
+.load_sprites
+ ld a, 2 * 8 + 5
+ add b
+ pop hl
+ ld [hli], a
+ cp $41
+ jr c, .version1
+ ld a, [wJumptableIndex]
+ cp 4
+ jr z, .version2
+ cp 5
+ jr z, .version2
+ cp 7
+ jr z, .version2
+ cp 8
+ jr z, .version2
+
+.version1
+ ld a, 19 * 8 + 3
+ ld [hli], a
+ ld a, [wcd4c]
+ add $3c
+ ld [hli], a
+ ld a, [wcd4c]
+ add $1
+ ld [hl], a
+ ret
+
+.version2
+ ld a, 19 * 8 + 3
+ ld [hli], a
+ ld a, $39
+ ld [hli], a
+ xor a
+ ld [hl], a
+ ret
+; 11b444
+
+Function11b444: ; 11b444
+; special
+ call Mobile46_InitJumptable
+ call Mobile46_RunJumptable
+ ret
+; 11b44b
+
+Mobile46_InitJumptable: ; 11b44b
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ call UpdateTime
+ ret
+; 11b45c
+
+Mobile46_RunJumptable: ; 11b45c
+.loop
+ call .IterateJumptable
+ call DelayFrame
+ ld a, [wJumptableIndex]
+ cp 4
+ jr nz, .loop
+ ret
+; 11b46a
+
+.IterateJumptable: ; 11b46a
+ jumptable .Jumptable, wJumptableIndex
+
+.Jumptable:
+ dw Function11b483
+ dw Function11b570
+ dw Function11b5c0
+ dw Function11b5e0
+ dw Function11b5e7 ; unused
+; 11b483
+
+Function11b483: ; 11b483
+ call .InitRAM
+ ld hl, PlayerName
+ ld a, NAME_LENGTH_JAPANESE - 1
+.loop1
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop1
+
+ ld de, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1Species
+ ld a, [wcd82]
+ dec a
+ push af
+.loop2
+ and a
+ jr z, .okay
+ add hl, de
+ dec a
+ jr .loop2
+
+.okay
+ push bc
+ ld a, PARTYMON_STRUCT_LENGTH
+.loop3
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop3
+
+ pop de
+ push bc
+ ld a, [de]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, MON_LEVEL
+ add hl, de
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld hl, MON_MAXHP
+ add hl, de
+ push hl
+ ld hl, MON_STAT_EXP - 1
+ add hl, de
+ pop de
+ push de
+ ld b, OTPARTYMON
+ predef CalcPkmnStats
+ pop de
+ ld h, d
+ ld l, e
+ dec hl
+ dec hl
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ pop bc
+ ld de, NAME_LENGTH
+ ld hl, PartyMonOT
+ pop af
+ push af
+.loop4
+ and a
+ jr z, .okay2
+ add hl, de
+ dec a
+ jr .loop4
+
+.okay2
+ ld a, NAME_LENGTH - 1
+.loop5
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop5
+ ld de, NAME_LENGTH
+ ld hl, PartyMonNicknames
+ pop af
+ push af
+.loop6
+ and a
+ jr z, .okay3
+ add hl, de
+ dec a
+ jr .loop6
+
+.okay3
+ ld a, NAME_LENGTH - 1
+.loop7
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop7
+ ld de, MAIL_STRUCT_LENGTH
+ ld hl, sPartyMail
+ pop af
+.loop8
+ and a
+ jr z, .okay4
+ add hl, de
+ dec a
+ jr .loop8
+
+.okay4
+ ld a, $0 ; BANK(sPartyMail)
+ call GetSRAMBank
+ ld a, MAIL_STRUCT_LENGTH
+.loop9
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .loop9
+ call CloseSRAM
+ jp Function11ad8a
+
+.InitRAM:
+ ld bc, $c626
+ ld a, [PlayerID]
+ ld [wcd2a], a
+ ld [bc], a
+ inc bc
+
+ ld a, [PlayerID + 1]
+ ld [wcd2b], a
+ ld [bc], a
+ inc bc
+
+ ld a, [wSecretID]
+ ld [wcd2c], a
+ ld [bc], a
+ inc bc
+
+ ld a, [wSecretID + 1]
+ ld [wcd2d], a
+ ld [bc], a
+ inc bc
+
+ ld a, [wcd2e]
+ ld [bc], a
+ inc bc
+
+ ld a, [wcd2f]
+ ld [bc], a
+ inc bc
+
+ ld a, [wcd30]
+ ld [bc], a
+ inc bc
+
+ ld a, [wd265]
+ ld [bc], a
+ inc bc
+ ret
+; 11b570
+
+Function11b570: ; 11b570
+ call Function118007
+ ld a, [ScriptVar]
+ and a
+ jr nz, .exit
+ call .SaveData
+ jp Function11ad8a
+
+.exit
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+
+.SaveData:
+ ld a, $3
+ ld [rSVBK], a
+
+ ld hl, w3_d800
+ ld de, $c608
+ ld bc, w3_d88f - w3_d800
+ call CopyBytes
+
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $5
+ call GetSRAMBank
+
+ ld de, $a800
+ ld a, $1
+ ld [de], a
+ inc de
+ ld hl, $c608
+ ld bc, w3_d88f - w3_d800
+ call CopyBytes
+
+ push de
+ pop hl
+
+ ld a, [hRTCMinutes]
+ ld [hli], a
+ ld a, [hRTCHours]
+ ld [hli], a
+ ld a, [hRTCDayLo]
+ ld [hli], a
+ ld a, [hRTCDayHi]
+ ld [hl], a
+
+ call CloseSRAM
+ ret
+; 11b5c0
+
+Function11b5c0: ; 11b5c0
+ ld a, [wcd82]
+ dec a
+ ld [CurPartyMon], a
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba RemoveMonFromPartyOrBox
+ callba Function170807
+ callba SaveAfterLinkTrade
+ jp Function11ad8a
+; 11b5e0
+
+Function11b5e0: ; 11b5e0
+ xor a
+ ld [ScriptVar], a
+ jp Function11ad8a
+; 11b5e7
+
+Function11b5e7: ; 11b5e7
+ ret
+; 11b5e8
+
+Function11b5e8: ; 11b5e8
+ ld a, $0
+ call GetSRAMBank
+ ld hl, wRTC
+ ld de, $c608
+ ld bc, 4
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c608
+ ld de, $b08c
+ ld bc, 4
+ call CopyBytes
+ ld a, $2
+ ld [$a800], a
+ ld a, [$a81f]
+ ld [wcd2a], a
+ ld a, [$a820]
+ ld [wcd2b], a
+ ld a, [$a821]
+ ld [wcd2c], a
+ ld a, [$a822]
+ ld [wcd2d], a
+ ld a, [$a823]
+ ld [wcd2e], a
+ ld a, [$a824]
+ ld [wcd2f], a
+ ld a, [$a825]
+ ld [wcd30], a
+ ld a, [$a826]
+ ld [wcd31], a
+ call CloseSRAM
+ call Mobile46_InitJumptable
+ call .loop
+ ret
+
+.loop
+ call .RunJumptable
+ call DelayFrame
+ ld a, [wJumptableIndex]
+ cp $1
+ jr nz, .loop
+ ret
+
+.RunJumptable:
+ jumptable .Jumptable, wJumptableIndex
+.Jumptable:
+ dw Function11b66d
+ dw Function11b6b3
+; 11b66d
+
+Function11b66d: ; 11b66d
+ call Function1180b8
+ ld a, [ScriptVar]
+ and a
+ jr nz, .asm_11b6b0
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [w3_d090]
+ ld b, a
+ pop af
+ ld [rSVBK], a
+ ld a, b
+ and a
+ jr z, .asm_11b691
+ cp $1
+ jr nz, .asm_11b6b0
+ call Function11b6b4
+ jr .asm_11b6b0
+
+.asm_11b691
+ callba Function17081d
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_11b6b0
+ xor a
+ ld [ScriptVar], a
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, $2
+ ld [w3_d090], a
+ pop af
+ ld [rSVBK], a
+
+.asm_11b6b0
+ jp Function11ad8a
+; 11b6b3
+
+Function11b6b3: ; 11b6b3
+ ret
+; 11b6b4
+
+Function11b6b4: ; 11b6b4
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcd30]
+ ld [$c708], a
+ ld a, [wcd31]
+ ld [$c709], a
+
+ ld a, $c708 % $100
+ ld [wMobileMonSpeciesPointerBuffer], a
+ ld a, $c708 / $100
+ ld [wMobileMonSpeciesPointerBuffer + 1], a
+
+ ld a, $c60d % $100 ; Partymon Struct
+ ld [wMobileMonStructurePointerBuffer], a
+ ld a, $c60d / $100
+ ld [wMobileMonStructurePointerBuffer + 1], a
+
+ ld a, $c63d % $100 ; OT
+ ld [wMobileMonOTNamePointerBuffer], a
+ ld a, $c63d / $100
+ ld [wMobileMonOTNamePointerBuffer + 1], a
+
+ ld a, $c642 % $100 ; Nickname
+ ld [wMobileMonNicknamePointerBuffer], a
+ ld a, $c642 / $100
+ ld [wMobileMonNicknamePointerBuffer + 1], a
+
+ ld a, $c647 % $100 ; ???
+ ld [wMobileMonMailPointerBuffer], a
+ ld a, $c647 / $100
+ ld [wMobileMonMailPointerBuffer + 1], a
+
+ ld a, $46
+ ld [$c628], a
+
+ ld de, $c63d
+ ld c, 5
+ callba CheckStringForErrors
+ jr nc, .length_check_OT
+ callba Mobile_CopyDefaultOTName
+
+.length_check_OT
+ ld de, $c63d
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
+ jr nc, .error_check_nick
+ callba Mobile_CopyDefaultOTName
+
+.error_check_nick
+ ld de, $c642
+ ld c, 5
+ callba CheckStringForErrors
+ jr nc, .length_check_nick
+ callba Mobile_CopyDefaultNickname
+
+.length_check_nick
+ ld de, $c642
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
+ jr nc, .error_check_mail
+ callba Mobile_CopyDefaultNickname
+
+.error_check_mail
+ ld de, $c647
+ ld c, MAIL_MSG_LENGTH + 1
+ callba CheckStringForErrors
+ jr nc, .length_check_mail
+ callba Mobile_CopyDefaultMail
+
+.length_check_mail
+ ld de, $c647
+ lb bc, 2, MAIL_MSG_LENGTH + 1
+ callba CheckStringContainsLessThanBNextCharacters
+ jr c, .fix_mail
+ ld a, b
+ cp $2
+ jr nz, .mail_ok
+
+.fix_mail
+ callba Mobile_CopyDefaultMail
+
+.mail_ok
+ ld de, $c668
+ ld c, $5
+ callba CheckStringForErrors
+ jr nc, .length_check_author
+ callba Mobile_CopyDefaultMailAuthor
+
+.length_check_author
+ ld de, $c668
+ lb bc, 1, 5
+ callba CheckStringContainsLessThanBNextCharacters
+ jr nc, .author_okay
+ callba Mobile_CopyDefaultMailAuthor
+
+.author_okay
+ ld a, [$c60e]
+ cp -1
+ jr nz, .item_okay
+ xor a
+ ld [$c60e], a
+
+.item_okay
+ ld a, [wcd31]
+ ld [$c60d], a
+ ld [CurSpecies], a
+ call GetBaseData
+
+ ld hl, $c60d + MON_LEVEL
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .replace_level
+ ld a, [hl]
+ cp MAX_LEVEL
+ jr c, .done_level
+ ld a, MAX_LEVEL
+.replace_level
+ ld [hl], a
+.done_level
+ ld [CurPartyLevel], a
+
+ ld hl, $c60d + MON_STAT_EXP - 1
+ ld de, $c60d + MON_MAXHP
+ ld b, $1
+ predef CalcPkmnStats
+ ld de, $c60d + MON_MAXHP
+ ld hl, $c60d + MON_HP
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ call AddMobileMonToParty
+ ret
+; 11b7e5
+
+Function11b7e5: ; 11b7e5
+ ld a, [$c60d] ; species
+ ld [wOTTrademonSpecies], a
+ ld [CurPartySpecies], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ ld hl, $c63d ; OT
+ ld de, wOTTrademonOTName
+ ld bc, 5
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld a, [$c60d + MON_ID] ; id
+ ld [wOTTrademonID], a
+ ld a, [$c60d + MON_ID + 1]
+ ld [wOTTrademonID + 1], a
+ ld hl, $c60d + MON_DVS ; dvs
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld bc, $c60d ; pokemon_data_start
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ call SpeechTextBox
+ call FadeToMenu
+ callba MobileTradeAnimation_ReceiveGetmonFromGTS
+ callba Function17d1f1
+ ld a, $1
+ ld [wForceEvolution], a
+ ld a, $2
+ ld [wLinkMode], a
+ callba EvolvePokemon
+ xor a
+ ld [wLinkMode], a
+ callba SaveAfterLinkTrade
+ ld a, $5
+ call GetSRAMBank
+ ld a, $5
+ ld [$a800], a
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_11b872
+ ld a, $1
+ ld [de], a
+
+.asm_11b872
+ call CloseSubmenu
+ call RestartMapMusic
+ ret
+; 11b879
+
+Function11b879: ; 11b879
+ callba BattleTower_CheckSaveFileExistsAndIsYours
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ ld [ScriptVar], a
+ ld a, [$a890]
+ ld [wcd49], a
+ ld a, [$a891]
+ ld [wcd4a], a
+ ld a, [$a892]
+ ld [wcd4b], a
+ ld a, [$a893]
+ ld [wcd4c], a
+ call CloseSRAM
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld hl, wcd4c
+ ld a, [hRTCDayHi]
+ cp [hl]
+ ret nz
+ dec hl
+ ld a, [hRTCDayLo]
+ cp [hl]
+ ret nz
+ ld hl, wcd4a
+ ld a, [hRTCHours]
+ cp [hl]
+ jr nc, .asm_11b8d8
+ ld a, $18
+ sub [hl]
+ ld hl, hRTCHours
+ add [hl]
+ ld [wcd4c], a
+ ld a, [hRTCMinutes]
+ ld [wcd4b], a
+ xor a
+ ld [wcd4a], a
+ jr .asm_11b8e2
+
+.asm_11b8d8
+ ld a, [hRTCMinutes]
+ ld [wcd4b], a
+ ld a, [hRTCHours]
+ ld [wcd4c], a
+
+.asm_11b8e2
+ xor a
+ ld l, a
+ ld h, a
+ ld b, a
+ ld d, a
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld c, $3c
+ call AddNTimes
+ add hl, de
+ push hl
+ xor a
+ ld l, a
+ ld h, a
+ ld b, a
+ ld d, a
+ ld a, [wcd49]
+ ld e, a
+ ld a, [wcd4a]
+ ld c, $3c
+ call AddNTimes
+ add hl, de
+ ld a, l
+ cpl
+ add $1
+ ld e, a
+ ld a, h
+ cpl
+ adc $0
+ ld d, a
+ pop hl
+ add hl, de
+ ld de, $ff88
+ add hl, de
+ bit 7, h
+ ret z
+ ld a, $2
+ ld [ScriptVar], a
+ ret
+; 11b920
+
+Function11b920: ; 11b920
+ call Mobile46_InitJumptable
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a81f
+ ld de, $c626
+ ld bc, 8
+ call CopyBytes
+ call CloseSRAM
+ call Function118000
+ ret
+; 11b93b
+
+Function11b93b: ; 11b93b
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ ld hl, $a823
+ ld de, $c608
+ ld bc, $008f
+ call CopyBytes
+ call CloseSRAM
+
+ ld a, $c608 % $100
+ ld [wMobileMonSpeciesPointerBuffer], a
+ ld a, $c608 / $100
+ ld [wMobileMonSpeciesPointerBuffer + 1], a
+
+ ld a, $c611 % $100
+ ld [wMobileMonStructurePointerBuffer], a
+ ld a, $c611 / $100
+ ld [wMobileMonStructurePointerBuffer + 1], a
+
+ ld a, $c641 % $100
+ ld [wMobileMonOTNamePointerBuffer], a
+ ld a, $c641 / $100
+ ld [wMobileMonOTNamePointerBuffer + 1], a
+
+ ld a, $c646 % $100
+ ld [wMobileMonNicknamePointerBuffer], a
+ ld a, $c646 / $100
+ ld [wMobileMonNicknamePointerBuffer + 1], a
+
+ ld a, $c64b % $100
+ ld [wMobileMonMailPointerBuffer], a
+ ld a, $c64b / $100
+ ld [wMobileMonMailPointerBuffer + 1], a
+ call AddMobileMonToParty
+ callba SaveAfterLinkTrade
+ ret
+; 11b98f
+
+AddMobileMonToParty: ; 11b98f
+ ld hl, PartyCount
+ ld a, [hl]
+ ld e, a
+ inc [hl]
+
+ ld a, [wMobileMonSpeciesPointerBuffer]
+ ld l, a
+ ld a, [wMobileMonSpeciesPointerBuffer + 1]
+ ld h, a
+ inc hl
+ ld bc, PartySpecies
+ ld d, e
+.loop1
+ inc bc
+ dec d
+ jr nz, .loop1
+ ld a, e
+ ld [CurPartyMon], a
+ ld a, [hl]
+ ld [bc], a
+ inc bc
+ ld a, -1
+ ld [bc], a
+
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, e
+ ld [wMobileMonSpeciesBuffer], a
+.loop2
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop2
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonStructurePointerBuffer]
+ ld l, a
+ ld a, [wMobileMonStructurePointerBuffer + 1]
+ ld h, a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ ld a, [wMobileMonSpeciesBuffer]
+.loop3
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop3
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonOTNamePointerBuffer]
+ ld l, a
+ ld a, [wMobileMonOTNamePointerBuffer + 1]
+ ld h, a
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ ld a, [wMobileMonSpeciesBuffer]
+.loop4
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop4
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonNicknamePointerBuffer]
+ ld l, a
+ ld a, [wMobileMonNicknamePointerBuffer + 1]
+ ld h, a
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+
+ ld hl, sPartyMail
+ ld bc, MAIL_STRUCT_LENGTH
+ ld a, [wMobileMonSpeciesBuffer]
+.loop5
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop5
+ ld a, BANK(sPartyMail)
+ call GetSRAMBank
+ ld e, l
+ ld d, h
+ ld a, [wMobileMonMailPointerBuffer]
+ ld l, a
+ ld a, [wMobileMonMailPointerBuffer + 1]
+ ld h, a
+ ld bc, MAIL_STRUCT_LENGTH
+ call CopyBytes
+
+ call CloseSRAM
+ ret
+; 11ba38
+
+Function11ba38: ; 11ba38
+ callba CheckCurPartyMonFainted
+ ret c
+ xor a
+ ld [ScriptVar], a
+ ret
+; 11ba44
+
+TilemapPack_11ba44:
+ db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 ; 00
+ db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 ; 01
+ db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 ; 02
+ db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 ; 03
+ db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 ; 04
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 ; 05
+ db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 ; 06
+ db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f ; 07
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e ; 08
+ db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 ; 09
+ db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 ; 0a
+ db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 ; 0b
+ db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 ; 0c
+ db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 ; 0d
+ db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 ; 0e
+ db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 ; 0f
+ db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 ; 10
+ db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 ; 11
+ db $4a, $30, $0a, $0a, $61, $62, $0a, $58 ; 12
+ db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 ; 13
+ db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 ; 14
+ db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 ; 15
+ db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 ; 16
+ db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 ; 17
+ db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 ; 18
+ db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 ; 19
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 ; 1a
+ db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 ; 1b
+ db $4a, $2f, $68, $87, $88, $89, $0a, $58 ; 1c
+ db $4a, $3d, $6e, $6f, $70, $75, $76, $58 ; 1d
+ db $4a, $30, $75, $76, $5c, $5d, $5e, $58 ; 1e
+ db $4a, $2f, $71, $72, $73, $74, $6d, $58 ; 1f
+ db $4a, $3d, $75, $76, $77, $8a, $8b, $58 ; 20
+ db $4a, $30, $66, $67, $65, $0a, $6a, $58 ; 21
+ db $4a, $2f, $83, $84, $0a, $83, $84, $58 ; 22
+ db $4a, $3d, $0a, $85, $82, $84, $0a, $58 ; 23
+ db $4a, $30, $41, $80, $40, $0a, $0a, $58 ; 24
+ db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 ; 25
+ db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 ; 26
+ db -1
+
+TilemapPack_11bb7d:
+ db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 ; 00
+ db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 01
+ db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 02
+ db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 03
+ db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 ; 04
+ db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 ; 05
+ db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 ; 06
+ db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 ; 07
+ db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 ; 08
+ db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 ; 09
+ db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 ; 0a
+ db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 ; 0b
+ db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 ; 0c
+ db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 ; 0d
+ db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 ; 0e
+ db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 ; 0f
+ db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 ; 10
+ db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 ; 11
+ db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 ; 12
+ db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 ; 13
+ db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 ; 14
+ db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 15
+ db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 ; 16
+ db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 ; 17
+ db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 ; 18
+ db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 ; 19
+ db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1a
+ db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 ; 1b
+ db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 ; 1c
+ db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 ; 1d
+ db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 ; 1e
+ db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 ; 1f
+ db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 ; 20
+ db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 ; 21
+ db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 ; 22
+ db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 ; 23
+ db -1
+
+
diff --git a/mobile/mobile_5b.asm b/mobile/mobile_5b.asm
new file mode 100755
index 000000000..041c071b4
--- /dev/null
+++ b/mobile/mobile_5b.asm
@@ -0,0 +1,833 @@
+Function16c000: ; 16c000
+; unreferenced
+ ; Only for CGB
+ ld a, [hCGB]
+ and a
+ ret z
+ ; Only do this once per boot cycle
+ ld a, [hFFEA]
+ and a
+ ret z
+ ; Set some flag, preserving the old state
+ ld a, [wcfbe]
+ push af
+ set 7, a
+ ld [wcfbe], a
+ ; Do stuff
+ call MobileSystemSplashScreen_InitGFX ; Load GFX
+ callba SetRAMStateForMobile
+ callba EnableMobile
+ call .RunJumptable
+ callba DisableMobile
+ ; Prevent this routine from running again
+ ; until the next time the syatem is turned on
+ xor a
+ ld [hFFEA], a
+ ; Restore the flag state
+ pop af
+ ld [wcfbe], a
+ ret
+; 16c031
+
+.RunJumptable: ; 16c031
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wd002], a
+ ld [wd003], a
+.loop
+ call DelayFrame
+ callba Function10635c
+ ld a, [wd002]
+ ld hl, .Jumptable
+ rst JumpTable
+ call Function16cb2e
+ call Function16cbae
+ ld a, [wd002]
+ cp $ff
+ jr nz, .loop
+ ret
+; 16c05c
+
+.Jumptable: ; 16c05c
+ dw .init
+ dw Function16c0ba
+ dw Function16c089
+ dw Function16c09e
+ dw Function16c0a8
+ dw Function16c0dc
+ dw Function16c0ec
+ dw Function16c0ba
+ dw Function16c0ca
+ dw Function16c0dc
+ dw Function16c0ec
+ dw .quit
+; 16c074
+
+.init ; 16c074
+ ld a, [wcf64]
+ and a
+ ret z
+ ld [wd002], a
+ xor a
+ ld [wd003], a
+ ret
+; 16c081
+
+.quit ; 16c081
+ push af
+ ld a, $ff
+ ld [wd002], a
+ pop af
+ ret
+; 16c089
+
+Function16c089: ; 16c089
+ ld a, $1
+ ld [Buffer2], a
+ ld [wd1f1], a
+ xor a
+ ld [hWY], a
+ call Function16c0fa
+ ld a, [wd002]
+ ld [wcf64], a
+ ret
+; 16c09e
+
+Function16c09e: ; 16c09e
+ ld a, [wcf64]
+ cp $4
+ ret nz
+ call Function16c0fa
+ ret
+; 16c0a8
+
+Function16c0a8: ; 16c0a8
+ xor a
+ ld [Buffer2], a
+ ld [wd1f1], a
+ call ClearSprites
+ ld a, $90
+ ld [hWY], a
+ call Function16c0fa
+ ret
+; 16c0ba
+
+Function16c0ba: ; 16c0ba
+ call Function16c943
+ push af
+ ld a, [wd003]
+ inc a
+ ld [wd003], a
+ pop af
+ call c, Function16c0fa
+ ret
+; 16c0ca
+
+Function16c0ca: ; 16c0ca
+ ld a, [wd003]
+ cp $28
+ push af
+ ld a, [wd003]
+ inc a
+ ld [wd003], a
+ pop af
+ call z, Function16c0fa
+ ret
+; 16c0dc
+
+Function16c0dc: ; 16c0dc
+ call Function16ca11
+ push af
+ ld a, [wd003]
+ inc a
+ ld [wd003], a
+ pop af
+ call c, Function16c0fa
+ ret
+; 16c0ec
+
+Function16c0ec: ; 16c0ec
+ call ClearBGPalettes
+ call ClearScreen
+ push af
+ ld a, $ff
+ ld [wd002], a
+ pop af
+ ret
+; 16c0fa
+
+Function16c0fa: ; 16c0fa
+ push af
+ ld a, [wd002]
+ inc a
+ ld [wd002], a
+ xor a
+ ld [wd003], a
+ pop af
+ ret
+; 16c108
+
+MobileSystemSplashScreen_InitGFX: ; 16c108
+ call DisableLCD
+ ld hl, VTiles2
+ ld de, .Tiles
+ lb bc, BANK(.Tiles), $68
+ call Get2bpp
+ call .LoadPals
+ call .LoadTileMap
+ call .LoadAttrMap
+ hlbgcoord 0, 0
+ call Function16cc73
+ call Function16cc02
+ xor a
+ ld [hBGMapMode], a
+ call EnableLCD
+ ret
+; 16c130
+
+.LoadPals: ; 16c130
+ ld de, UnknBGPals
+ ld hl, UnknownMobilePalettes_16c903
+ ld bc, 8
+ ld a, $5
+ call FarCopyWRAM
+ callba ApplyPals
+ ret
+; 16c145
+
+.LoadTileMap: ; 16c145
+ hlcoord 0, 0
+ ld bc, 20
+ xor a
+ call ByteFill
+ ld hl, .TileMap
+ decoord 0, 1
+ ld bc, $0154
+ call CopyBytes
+ ret
+; 16c15c
+
+.LoadAttrMap: ; 16c15c
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH
+ xor a
+ call ByteFill
+ ld hl, .AttrMap
+ decoord 0, 1, AttrMap
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ ret
+; 16c173
+
+.Tiles:
+INCBIN "gfx/mobile/mobile_splash.2bpp"
+
+.TileMap:
+INCBIN "gfx/mobile/mobile_splash.tilemap"
+
+.AttrMap:
+INCBIN "gfx/mobile/mobile_splash.attrmap"
+
+UnknownMobilePalettes_16c903: ; 16c903
+INCLUDE "gfx/unknown/16c903.pal"
+
+; 16c943
+
+Function16c943: ; 16c943
+ ld a, [wd003]
+ and a
+ jr nz, .asm_16c95e
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld a, $ff
+ ld bc, $0008
+ ld hl, UnknBGPals
+ call ByteFill
+ pop af
+ ld [rSVBK], a
+
+.asm_16c95e
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld e, $0
+ ld a, $0
+.asm_16c969
+ ld hl, UnknownMobilePalettes_16c903
+ call Function16cab6
+ call Function16cabb
+ ld d, a
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cabb
+ cp d
+ jr z, .asm_16c991
+ ld b, $1
+.asm_16c981
+ dec a
+ cp d
+ jr z, .asm_16c988
+ dec b
+ jr nz, .asm_16c981
+
+.asm_16c988
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cadc
+
+.asm_16c991
+ ld hl, UnknownMobilePalettes_16c903
+ call Function16cab6
+ call Function16cad8
+ ld d, a
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cad8
+ cp d
+ jr z, .asm_16c9b9
+ ld b, $1
+.asm_16c9a9
+ dec a
+ cp d
+ jr z, .asm_16c9b0
+ dec b
+ jr nz, .asm_16c9a9
+
+.asm_16c9b0
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cb08
+
+.asm_16c9b9
+ ld hl, UnknownMobilePalettes_16c903
+ call Function16cab6
+ call Function16cac4
+ ld d, a
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cac4
+ cp d
+ jr z, .asm_16c9e1
+ ld b, $1
+.asm_16c9d1
+ dec a
+ cp d
+ jr z, .asm_16c9d8
+ dec b
+ jr nz, .asm_16c9d1
+
+.asm_16c9d8
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cae8
+
+.asm_16c9e1
+ inc e
+ inc e
+ ld a, e
+ cp $8
+ jr nz, .asm_16c969
+ callba ApplyPals
+ call SetPalettes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wd003]
+ cp $1f
+ jr z, .asm_16ca09
+ pop af
+ ld [rSVBK], a
+ ld e, $0
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.asm_16ca09
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+; 16ca11
+
+Function16ca11: ; 16ca11
+ ld a, [wd003]
+ and a
+ jr nz, .asm_16ca1d
+ callba ApplyPals
+
+.asm_16ca1d
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld e, $0
+ ld a, $0
+.asm_16ca28
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cabb
+ cp $1f
+ jr z, .asm_16ca48
+ ld b, $1
+.asm_16ca37
+ inc a
+ cp $1f
+ jr z, .asm_16ca3f
+ dec b
+ jr nz, .asm_16ca37
+
+.asm_16ca3f
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cadc
+
+.asm_16ca48
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cad8
+ cp $1f
+ jr z, .asm_16ca68
+ ld b, $1
+.asm_16ca57
+ inc a
+ cp $1f
+ jr z, .asm_16ca5f
+ dec b
+ jr nz, .asm_16ca57
+
+.asm_16ca5f
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cb08
+
+.asm_16ca68
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cac4
+ cp $1f
+ jr z, .asm_16ca88
+ ld b, $1
+.asm_16ca77
+ inc a
+ cp $1f
+ jr z, .asm_16ca7f
+ dec b
+ jr nz, .asm_16ca77
+
+.asm_16ca7f
+ ld hl, UnknBGPals
+ call Function16cab6
+ call Function16cae8
+
+.asm_16ca88
+ inc e
+ inc e
+ ld a, e
+ cp $8
+ jr nz, .asm_16ca28
+ callba ApplyPals
+ call SetPalettes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [wd003]
+ cp $1f
+ jr z, .asm_16caae
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+
+.asm_16caae
+ pop af
+ ld [rSVBK], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+; 16cab6
+
+Function16cab6: ; 16cab6
+ ld b, $0
+ ld c, e
+ add hl, bc
+ ret
+; 16cabb
+
+Function16cabb: ; 16cabb
+ inc hl
+ ld a, [hl]
+ srl a
+ srl a
+ and $1f
+ ret
+; 16cac4
+
+Function16cac4: ; 16cac4
+ inc hl
+ ld a, [hld]
+ and $3
+ ld b, a
+ ld a, [hl]
+ sla a
+ rl b
+ sla a
+ rl b
+ sla a
+ rl b
+ ld a, b
+ ret
+; 16cad8
+
+Function16cad8: ; 16cad8
+ ld a, [hl]
+ and $1f
+ ret
+; 16cadc
+
+Function16cadc: ; 16cadc
+ sla a
+ sla a
+ ld b, a
+ inc hl
+ ld a, [hl]
+ and $83
+ or b
+ ld [hl], a
+ ret
+; 16cae8
+
+Function16cae8: ; 16cae8
+ ld c, a
+ srl a
+ srl a
+ srl a
+ ld b, a
+ inc hl
+ ld a, [hl]
+ and $fc
+ or b
+ ld [hld], a
+ ld a, c
+ sla a
+ sla a
+ sla a
+ sla a
+ sla a
+ ld b, a
+ ld a, [hl]
+ and $1f
+ or b
+ ld [hl], a
+ ret
+; 16cb08
+
+Function16cb08: ; 16cb08
+ ld b, a
+ ld a, [hl]
+ and $e0
+ or b
+ ld [hl], a
+ ret
+; 16cb0f
+
+Function16cb0f: ; 16cb0f
+ xor a
+ ld [Buffer1], a
+ ld [Buffer2], a
+ xor a
+ ld [wd1ec], a
+ ld a, $70
+ ld [wd1ee], a
+ ld a, $4
+ ld [wd1ed], a
+ ld a, $a0
+ ld [wd1ef], a
+ xor a
+ ld [wd1f0], a
+ ret
+; 16cb2e
+
+Function16cb2e: ; 16cb2e
+ ld a, [Buffer2]
+ and a
+ ret z
+ call Function16cb40
+ ld hl, Unknown_16cb86
+ ld de, Sprites
+ call Function16cb5d
+ ret
+; 16cb40
+
+Function16cb40: ; 16cb40
+ ld hl, wd1ec
+ inc [hl]
+ ld a, [hl]
+ cp $18
+ ret c
+ xor a
+ ld [hl], a
+ ld a, [wd1ef]
+ cp $a0
+ jr nz, .asm_16cb57
+ ld a, $a7
+ ld [wd1ef], a
+ ret
+
+.asm_16cb57
+ ld a, $a0
+ ld [wd1ef], a
+ ret
+; 16cb5d
+
+Function16cb5d: ; 16cb5d
+ ld a, [hli]
+ and a
+ ret z
+.asm_16cb60
+ push af
+ ld a, [wd1ee]
+ add [hl]
+ add $10
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wd1ed]
+ add [hl]
+ add $8
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wd1ef]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [wd1f0]
+ or [hl]
+ ld [de], a
+ inc hl
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_16cb60
+ ret
+; 16cb86
+
+Unknown_16cb86:
+ db 7
+ db 0, 0, 0, 1
+ db 8, 0, 1, 1
+ db 8, 8, 2, 0
+ db 8, 16, 3, 0
+ db 16, 0, 4, 1
+ db 16, 8, 5, 0
+ db 16, 16, 6, 0
+; 16cba3
+
+Function16cba3: ; 16cba3
+ xor a
+ ld [wd1f1], a
+ ld [wd1f2], a
+ ld [wd1f3], a
+ ret
+; 16cbae
+
+Function16cbae: ; 16cbae
+ ld a, [wd1f1]
+ and a
+ ret z
+ call Function16cbba
+ call Function16cbd1
+ ret
+; 16cbba
+
+Function16cbba: ; 16cbba
+ ld hl, wd1f2
+ inc [hl]
+ ld a, [hl]
+ cp $c
+ ret c
+ xor a
+ ld [hl], a
+ ld a, [wd1f3]
+ inc a
+ cp $4
+ jr c, .asm_16cbcd
+ xor a
+
+.asm_16cbcd
+ ld [wd1f3], a
+ ret
+; 16cbd1
+
+Function16cbd1: ; 16cbd1
+ ld a, [wd1f3]
+ ld c, a
+ ld b, 0
+ ld hl, Unknown_16cbfb
+ add hl, bc
+ ld a, [hl]
+ ld bc, 2
+ ld hl, Unknown_16cfa3
+ call AddNTimes
+ ld de, UnknBGPals + 1 palettes + 4
+ ld bc, 2
+ ld a, $5
+ call FarCopyWRAM
+ callba ApplyPals
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 16cbfb
+
+Unknown_16cbfb:
+ db 0, 1, 2, 1, 0, 1, 2
+; 16cc02
+
+Function16cc02: ; 16cc02
+ call Function16cc18
+ call Function16cc49
+ call Function16cc62
+ call Function16cc25
+ call Function16cc6e
+ call Function16cb0f
+ call Function16cba3
+ ret
+; 16cc18
+
+Function16cc18: ; 16cc18
+ ld hl, VTiles1
+ ld de, GFX_16cca3
+ lb bc, BANK(GFX_16cca3), $2e
+ call Get2bpp
+ ret
+; 16cc25
+
+Function16cc25: ; 16cc25
+ ld hl, Unknown_16cfa9
+ ld de, UnknBGPals + 1 palettes
+ call .CopyPal
+ ld hl, Unknown_16cfb1
+ ld de, UnknOBPals
+ call .CopyPal
+ ld hl, Unknown_16cfb9
+ ld de, UnknOBPals + 1 palettes
+ call .CopyPal
+ ret
+; 16cc41
+
+.CopyPal: ; 16cc41
+ ld bc, 1 palettes
+ ld a, $5
+ jp FarCopyWRAM
+; 16cc49
+
+Function16cc49: ; 16cc49
+ hlcoord 4, 15
+ ld a, $80
+ call Function16cc5a
+ hlcoord 4, 16
+ ld a, $90
+ call Function16cc5a
+ ret
+; 16cc5a
+
+Function16cc5a: ; 16cc5a
+ ld c, $10
+.asm_16cc5c
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_16cc5c
+ ret
+; 16cc62
+
+Function16cc62: ; 16cc62
+ hlcoord 0, 15, AttrMap
+ ld bc, $0028
+ ld a, $1
+ call ByteFill
+ ret
+; 16cc6e
+
+Function16cc6e: ; 16cc6e
+ hlbgcoord 0, 0, VBGMap1
+ jr Function16cc73
+
+Function16cc73:
+ ld a, [rVBK]
+ push af
+ ld a, $0
+ ld [rVBK], a
+ push hl
+ decoord 0, 0
+ call Function16cc90
+ pop hl
+ ld a, $1
+ ld [rVBK], a
+ decoord 0, 0, AttrMap
+ call Function16cc90
+ pop af
+ ld [rVBK], a
+ ret
+; 16cc90
+
+Function16cc90: ; 16cc90
+ ld bc, $1214
+.asm_16cc93
+ push bc
+.asm_16cc94
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_16cc94
+ ld bc, $000c
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_16cc93
+ ret
+; 16cca3
+
+GFX_16cca3:
+INCBIN "gfx/unknown/16cca3.2bpp"
+
+Unknown_16cfa3:
+ RGB 31, 31, 31
+ RGB 25, 27, 29
+ RGB 16, 19, 25
+
+Unknown_16cfa9:
+ RGB 31, 31, 31
+ RGB 25, 27, 29
+ RGB 31, 31, 31
+ RGB 07, 07, 07
+
+
+Unknown_16cfb1:
+ RGB 31, 31, 31
+ RGB 13, 09, 18
+ RGB 26, 21, 16
+ RGB 07, 07, 07
+
+
+Unknown_16cfb9:
+ RGB 31, 31, 31
+ RGB 18, 05, 02
+ RGB 27, 11, 12
+ RGB 07, 07, 07
+
+; 16cfc1
diff --git a/mobile/mobile_5c.asm b/mobile/mobile_5c.asm
new file mode 100755
index 000000000..3294cc3dc
--- /dev/null
+++ b/mobile/mobile_5c.asm
@@ -0,0 +1,946 @@
+Function170000: ; 170000
+ ld a, [$c62b]
+ ld [wPlayerTrademonSpecies], a
+ ld hl, $c62e
+ ld de, wPlayerTrademonSenderName
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $c663
+ ld de, wPlayerTrademonOTName
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $c648
+ ld a, [hli]
+ ld [wPlayerTrademonDVs], a
+ ld a, [hl]
+ ld [wPlayerTrademonDVs + 1], a
+ ld hl, $c639
+ ld a, [hli]
+ ld [wPlayerTrademonID], a
+ ld a, [hl]
+ ld [wPlayerTrademonID + 1], a
+ ld bc, $c633
+ callba GetCaughtGender
+ ld a, c
+ ld [wPlayerTrademonCaughtData], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ ld hl, $c608
+ ld de, $d800
+ ld bc, $008f
+ call CopyBytes
+ ret
+
+; 17005a
+
+Function17005a: ; 17005a
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a824]
+ ld [wOTTrademonSpecies], a
+ ld hl, $a827
+ ld de, wOTTrademonSenderName
+ ld bc, NAME_LENGTH_JAPANESE - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld hl, $a85c
+ ld de, wOTTrademonOTName
+ ld bc, NAME_LENGTH_JAPANESE - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld hl, $a841
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld hl, $a832
+ ld a, [hli]
+ ld [wOTTrademonID], a
+ ld a, [hl]
+ ld [wOTTrademonID + 1], a
+ ld bc, $a82c
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ call CloseSRAM
+ ret
+
+; 1700b0
+
+INCLUDE "mobile/battle_tower_5c.asm"
+
+Function170be4: ; 170be4
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld hl, $a894
+ ld bc, $0008
+ call ByteFill
+ call CloseSRAM
+ ret
+
+; 170bf7
+
+Clears5_a89a: ; 170bf7
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a89a
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call CloseSRAM
+ ret
+
+; 170c06
+
+Function170c06: ; 170c06
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a894
+ ld a, [wBattleResult]
+ and a
+ jr nz, .asm_170c15
+ inc [hl]
+
+.asm_170c15
+ inc hl
+ inc hl
+ ld a, [$a89b]
+ add [hl]
+ ld [hld], a
+ ld a, [$a89a]
+ adc [hl]
+ ld [hli], a
+ jr nc, .asm_170c27
+ ld a, $ff
+ ld [hld], a
+ ld [hli], a
+
+.asm_170c27
+ inc hl
+ push hl
+ ld de, 0
+ xor a
+ ld [wd265], a
+.asm_170c30
+ ld hl, PartyMon1HP
+ ld a, [wd265]
+ call GetPartyLocation
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ inc hl
+ inc hl
+ ld a, [hld]
+ sub c
+ ld c, a
+ ld a, [hl]
+ sbc b
+ ld b, a
+ push de
+ pop hl
+ add hl, bc
+ push hl
+ pop de
+ jr c, .asm_170c58
+ ld a, [wd265]
+ inc a
+ ld [wd265], a
+ cp $3
+ jr c, .asm_170c30
+ jr .asm_170c5b
+
+.asm_170c58
+ ld de, -1
+
+.asm_170c5b
+ pop hl
+ inc hl
+ ld a, e
+ add [hl]
+ ld [hld], a
+ ld a, d
+ adc [hl]
+ ld [hli], a
+ jr nc, .asm_170c69
+ ld a, $ff
+ ld [hld], a
+ ld [hli], a
+
+.asm_170c69
+ inc hl
+ push hl
+ ld b, $0
+ ld c, $0
+.asm_170c6f
+ ld hl, PartyMon1HP
+ ld a, b
+ push bc
+ call GetPartyLocation
+ pop bc
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_170c7d
+ inc c
+
+.asm_170c7d
+ inc b
+ ld a, b
+ cp $3
+ jr c, .asm_170c6f
+ pop hl
+ ld a, [hl]
+ add c
+ ld [hl], a
+ call CloseSRAM
+ ret
+
+; 170c8b
+
+Function170c8b: ; 170c8b
+ ld hl, LastEnemyCounterMove
+ ld b, $5
+.asm_170c90
+ ld a, [hl]
+ xor $ff
+ ld [hli], a
+ dec b
+ jr nz, .asm_170c90
+ ret
+
+; 170c98
+
+CheckBTMonMovesForErrors: ; 170c98
+ ld c, BATTLETOWER_NROFPKMNS
+ ld hl, wBT_OTTempPkmn1Moves
+.loop
+ push hl
+ ld a, [hl]
+ cp NUM_ATTACKS + 1
+ jr c, .okay
+ ld a, POUND
+ ld [hl], a
+
+.okay
+ inc hl
+ ld b, NUM_MOVES - 1
+.loop2
+ ld a, [hl]
+ and a
+ jr z, .loop3
+ cp NUM_ATTACKS + 1
+ jr c, .next
+
+.loop3
+ xor a
+ ld [hl], a
+ inc hl
+ dec b
+ jr nz, .loop3
+ jr .done
+
+.next
+ inc hl
+ dec b
+ jr nz, .loop2
+
+.done
+ pop hl
+ ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
+ add hl, de
+ dec c
+ jr nz, .loop
+ ret
+
+; 170cc6
+
+Function170cc6: ; 170cc6
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, LZ_170d16
+ ld de, wDecompressScratch
+ call Decompress
+ ld a, $1
+ ld [rVBK], a
+ ld de, wd000
+ ld hl, VTiles0
+ lb bc, $6, $c1
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ld hl, LZ_1715a4
+ ld de, wd000
+ call Decompress
+ ld de, UnknBGPals
+ ld hl, VTiles0
+ lb bc, $6, $53
+ call Get2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+
+; 170d02
+
+Function170d02: ; 170d02
+ ld a, $1
+ ld [rVBK], a
+ ld de, GFX_171848
+ ld hl, VTiles1 tile $41
+ lb bc, BANK(GFX_171848), $18
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ret
+
+; 170d16
+
+LZ_170d16:
+INCBIN "gfx/mobile/pichu_animated.2bpp.lz"
+
+LZ_1715a4:
+INCBIN "gfx/mobile/electro_ball.2bpp.lz"
+
+GFX_171848:
+INCBIN "gfx/unknown/171848.2bpp"
+
+Function1719c8: ; 1719c8 (5c:59c8)
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function1719d6
+ pop af
+ ld [hInMenu], a
+ ret
+
+Function1719d6: ; 1719d6 (5c:59d6)
+ callba BattleTowerRoomMenu_InitRAM
+ call Function1719ed
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function171a11
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function1719ed: ; 1719ed (5c:59ed)
+ xor a
+ ld [wcd49], a
+ ld [wcd4a], a
+ dec a
+ ld [wcd4b], a
+ call ClearBGPalettes
+ call ClearSprites
+ callba Function171d2b
+ callba ReloadMapPart
+ callba ClearSpriteAnims
+ ret
+
+Function171a11: ; 171a11 (5c:5a11)
+.loop
+ call JoyTextDelay
+ ld a, [wcd49]
+ bit 7, a
+ jr nz, .done
+ call Function171a36
+ callba PlaySpriteAnimations
+ callba ReloadMapPart
+ jr .loop
+.done
+ callba ClearSpriteAnims
+ call ClearSprites
+ ret
+
+Function171a36: ; 171a36 (5c:5a36)
+ ld a, [wcd49]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_171a45
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+Jumptable_171a45: ; 171a45 (5c:5a45)
+ dw Function171a95
+ dw Function171ac9
+ dw Function171a5d
+ dw Function171ad7
+ dw Function171a5d
+ dw Function171aec
+ dw Function171b4b
+ dw Function171b85
+ dw Function171bcc
+ dw Function171c2c
+ dw Function171c39
+ dw Function171c41
+
+
+Function171a5d: ; 171a5d (5c:5a5d)
+ ld a, [wc821]
+ bit 1, a
+ jr nz, .asm_171a6a
+ bit 0, a
+ ret nz
+ jp Function171c66
+
+.asm_171a6a
+ ld a, $0
+ call Function3e32
+ ld [wc300], a
+ ld a, l
+ ld [wc301], a
+ ld a, h
+ ld [wc302], a
+ ld a, $a
+ call Function3e32
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba BattleTowerRoomMenu_Cleanup
+ pop af
+ ld [rSVBK], a
+ ld a, $a
+ ld [wcd49], a
+ ret
+
+Function171a95: ; 171a95 (5c:5a95)
+ callba Function171ccd
+ hlcoord 2, 8
+ ld de, String_171aa7
+ call PlaceString
+ jp Function171c66
+
+; 171aa7 (5c:5aa7)
+
+String_171aa7: ; 171aa7
+ db "モバイルアダプタに"
+ next "せつぞく しています"
+ next "しばらく おまちください"
+ db "@"
+; 171ac9
+
+Function171ac9: ; 171ac9 (5c:5ac9)
+ ld de, wcd81
+ ld hl, $5c
+ ld a, $2
+ call Function3e32
+ jp Function171c66
+
+Function171ad7: ; 171ad7 (5c:5ad7)
+ xor a
+ ld hl, $c608
+ ld bc, $66
+ call ByteFill
+ ld de, $c608
+ ld a, $c
+ call Function3e32
+ jp Function171c66
+
+Function171aec: ; 171aec (5c:5aec)
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba BattleTowerRoomMenu_Cleanup
+ pop af
+ ld [rSVBK], a
+ hlcoord 2, 6
+ ld a, $8
+.asm_171b01
+ push af
+ push hl
+ xor a
+ ld bc, $10
+ call ByteFill
+ pop hl
+ ld de, $14
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_171b01
+ hlcoord 2, 7
+ ld a, $3
+ ld de, $c608
+.asm_171b1b
+ push af
+ push hl
+ ld a, [de]
+ and a
+ jr z, .asm_171b34
+ ld a, [wcd4b]
+ inc a
+ ld [wcd4b], a
+ push hl
+ call Function171b42
+ pop hl
+ ld bc, $ffec
+ add hl, bc
+ call Function171b42
+.asm_171b34
+ pop hl
+ ld bc, $14
+ add hl, bc
+ add hl, bc
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_171b1b
+ jp Function171c66
+
+Function171b42: ; 171b42 (5c:5b42)
+ ld a, [de]
+ inc de
+ and a
+ ret z
+ sub $20
+ ld [hli], a
+ jr Function171b42
+
+Function171b4b: ; 171b4b (5c:5b4b)
+ depixel 8, 2
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $8
+ ld [hl], a
+
+ depixel 8, 19
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $9
+ ld [hl], a
+
+ depixel 17, 14, 2, 0
+ ld a, SPRITE_ANIM_INDEX_1D
+ call _InitSpriteAnimStruct
+ ld hl, SPRITEANIMSTRUCT_0C
+ add hl, bc
+ ld a, $a
+ ld [hl], a
+
+ ld a, $4
+ ld [wcd23], a
+ ld a, $8
+ ld [wcd24], a
+ jp Function171c66
+
+Function171b85: ; 171b85 (5c:5b85)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and $2
+ jp nz, Function171b9f
+ ld a, [hl]
+ and $1
+ jp nz, Function171bbd
+ ld a, [hl]
+ and $40
+ jr nz, asm_171ba5
+ ld a, [hl]
+ and $80
+ jr nz, asm_171baf
+ ret
+
+Function171b9f: ; 171b9f (5c:5b9f)
+ ld a, $80
+ ld [wcd49], a
+ ret
+
+asm_171ba5: ; 171ba5 (5c:5ba5)
+ ld a, [wcd4a]
+ and a
+ ret z
+ dec a
+ ld [wcd4a], a
+ ret
+
+asm_171baf: ; 171baf (5c:5baf)
+ ld a, [wcd4b]
+ ld c, a
+ ld a, [wcd4a]
+ cp c
+ ret z
+ inc a
+ ld [wcd4a], a
+ ret
+
+Function171bbd: ; 171bbd (5c:5bbd)
+ call PlayClickSFX
+ ld a, $8
+ ld [wcd23], a
+ xor a
+ ld [wcd24], a
+ jp Function171c66
+
+Function171bcc: ; 171bcc (5c:5bcc)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and $2
+ jp nz, Function171bdc
+ ld a, [hl]
+ and $1
+ jp nz, Function171beb
+ ret
+
+Function171bdc: ; 171bdc (5c:5bdc)
+ ld a, $4
+ ld [wcd23], a
+ ld a, $8
+ ld [wcd24], a
+ ld hl, wcd49
+ dec [hl]
+ ret
+
+Function171beb: ; 171beb (5c:5beb)
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcd4a]
+ ld [$aa4a], a
+ call CloseSRAM
+ ld hl, MenuDataHeader_171c6b
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ callba ReloadMapPart
+ hlcoord 1, 14
+ ld de, String_171c73
+ call PlaceString
+ ld a, [wcd4a]
+ cp $2
+ jr z, .asm_171c1f
+ ld a, $8
+ jr .asm_171c21
+.asm_171c1f
+ ld a, $c
+.asm_171c21
+ ld [wcd24], a
+ ld a, $1e
+ ld [wcd4c], a
+ call Function171c66
+
+Function171c2c: ; 171c2c (5c:5c2c)
+ ld hl, wcd4c
+ dec [hl]
+ ret nz
+ call ExitMenu
+ call ClearBGPalettes
+ jr asm_171c60
+
+Function171c39: ; 171c39 (5c:5c39)
+ ld a, $28
+ ld [wcd4c], a
+ call Function171c66
+
+Function171c41: ; 171c41 (5c:5c41)
+ ld hl, wcd4c
+ dec [hl]
+ ret nz
+ call ClearBGPalettes
+ callba MobileFunc_106462
+ callba Function106464
+ ld a, $2
+ ld [wc303], a
+ callba DisplayMobileError
+asm_171c60: ; 171c60 (5c:5c60)
+ ld a, $80
+ ld [wcd49], a
+ ret
+
+Function171c66: ; 171c66 (5c:5c66)
+ ld hl, wcd49
+ inc [hl]
+ ret
+
+; 171c6b (5c:5c6b)
+
+MenuDataHeader_171c6b: ; 171c6b
+ db $40 ; flags
+ db 12, 0 ; start coords
+ db 17, 19 ; end coords
+ dw NULL
+ db 0 ; default option
+; 171c73
+
+String_171c73: ; 171c73
+ db "モバイルセンターを けってい"
+ next "しました@"
+; 171c87
+
+Function171c87: ; 171c87 (5c:5c87)
+ call DisableLCD
+ ld hl, GFX_171db1
+ ld de, VTiles2 tile $00
+ ld bc, $6e0
+ call CopyBytes
+ ld hl, LZ_172abd
+ ld de, VTiles0 tile $00
+ call Decompress
+ call EnableLCD
+ ld hl, Tilemap_172491
+ decoord 0, 0
+ ld bc, $168
+ call CopyBytes
+ ld hl, Attrmap_1727ed
+ decoord 0, 0, AttrMap
+ ld bc, $168
+ call CopyBytes
+ hlcoord 3, 2
+ ld de, String_172e31
+ call PlaceString
+ hlcoord 3, 16
+ ld de, String_172e3f
+ call PlaceString
+ ret
+
+Function171ccd: ; 171ccd (5c:5ccd)
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_171d71
+ ld de, UnknBGPals
+ ld bc, $40
+ call CopyBytes
+ ld hl, EngineBuffer5
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hl], a
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function171cf0: ; 171cf0 (5c:5cf0)
+ xor a
+ hlcoord 4, 15
+ ld [hli], a
+ ld [hli], a
+ ld a, [wcd4b]
+ xor $1
+ ld [wcd4b], a
+ and a
+ jr nz, .asm_171d16
+ ld hl, Tilemap_17251d
+ decoord 0, 7
+ ld bc, $8c
+ call CopyBytes
+ hlcoord 3, 16
+ ld de, String_172e3f
+ jp PlaceString
+
+.asm_171d16
+ ld hl, Tilemap_1725f9
+ decoord 0, 7
+ ld bc, $8c
+ call CopyBytes
+ hlcoord 3, 16
+ ld de, String_172e4e
+ jp PlaceString
+
+Function171d2b: ; 171d2b (5c:5d2b)
+ call DisableLCD
+ ld hl, GFX_171db1
+ ld de, VTiles2 tile $00
+ ld bc, $6e0
+ call CopyBytes
+ ld hl, LZ_172abd
+ ld de, VTiles0 tile $00
+ call Decompress
+ call EnableLCD
+ ld hl, Tilemap_172685
+ decoord 0, 0
+ ld bc, $168
+ call CopyBytes
+ ld hl, Attrmap_172955
+ decoord 0, 0, AttrMap
+ ld bc, $168
+ call CopyBytes
+ hlcoord 2, 2
+ ld de, String_172e5d
+ call PlaceString
+ hlcoord 14, 16
+ ld de, String_172e58
+ call PlaceString
+ ret
+
+; 171d71 (5c:5d71)
+
+Palette_171d71:
+ RGB 0, 0, 0
+ RGB 3, 0, 0
+ RGB 5, 0, 0
+ RGB 31, 31, 29
+ RGB 0, 2, 10
+ RGB 2, 10, 21
+ RGB 0, 0, 0
+ RGB 10, 26, 31
+ RGB 0, 0, 0
+ RGB 0, 7, 8
+ RGB 31, 8, 0
+ RGB 1, 17, 15
+ RGB 31, 16, 0
+ RGB 31, 22, 0
+ RGB 31, 27, 0
+ RGB 31, 31, 0
+ RGB 31, 18, 6
+ RGB 0, 3, 0
+ RGB 0, 9, 0
+ RGB 0, 12, 0
+ RGB 0, 16, 0
+ RGB 0, 22, 0
+ RGB 0, 25, 0
+ RGB 0, 27, 0
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 29
+ RGB 21, 21, 20
+ RGB 11, 11, 10
+ RGB 0, 0, 0
+
+GFX_171db1:
+INCBIN "gfx/mobile/ascii_font.2bpp"
+
+Tilemap_172491:
+INCBIN "gfx/unknown/172491.tilemap"
+Tilemap_17251d:
+INCBIN "gfx/unknown/17251d.tilemap"
+Tilemap_1725f9:
+INCBIN "gfx/unknown/1725f9.tilemap"
+Tilemap_172685:
+INCBIN "gfx/unknown/172685.tilemap"
+Attrmap_1727ed:
+INCBIN "gfx/unknown/1727ed.attrmap"
+Attrmap_172955:
+INCBIN "gfx/unknown/172955.attrmap"
+
+LZ_172abd:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+
+String_172e31: ; 172e31
+ db "パスワード", $1f, "いれてください@"
+String_172e3f: ; 172e3f
+ db "きりかえ やめる けってい@"
+String_172e4e: ; 172e4e
+ db "きりかえ やめる "
+String_172e58:
+ db "けってい@"
+String_172e5d: ; 172e5d
+ db "せつぞくする モバイルセンターを"
+ next "えらんで ください@"
+; 172e78
+
+
+Function172e78: ; 172e78 (5c:6e78)
+ ld a, $7f
+ hlcoord 0, 0
+ ld bc, $168
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 0, AttrMap
+ ld bc, $168
+ call ByteFill
+ call DisableLCD
+ ld hl, GameBoyN64GFX
+ ld de, VTiles2 tile $00
+ ld bc, $610
+ call CopyBytes
+ call EnableLCD
+ ld hl, Tilemap_1733af
+ decoord 0, 0
+ ld bc, $168
+ call CopyBytes
+ ld hl, Attrmap_173517
+ decoord 0, 0, AttrMap
+ ld bc, $168
+ call CopyBytes
+ ret
+
+; 172eb9 (5c:6eb9)
+
+Function172eb9:
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_172edf
+ ld de, UnknBGPals
+ ld bc, $40
+ call CopyBytes
+ ld hl, Palette_172edf
+ ld de, BGPals
+ ld bc, $40
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+
+; 172edf (5c:6edf)
+
+Palette_172edf:
+ RGB 5, 12, 17
+ RGB 31, 31, 31
+ RGB 18, 25, 28
+ RGB 10, 17, 21
+ RGB 6, 13, 18
+ RGB 31, 31, 31
+ RGB 20, 26, 28
+ RGB 12, 19, 23
+ RGB 3, 10, 16
+ RGB 31, 31, 31
+ RGB 6, 13, 18
+ RGB 20, 26, 28
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+GameBoyN64GFX:
+INCBIN "gfx/trade/game_boy_n64.2bpp"
+
+Tilemap_1733af:
+IF DEF(CRYSTAL11)
+INCBIN "gfx/unknown/1733af_corrupt.tilemap"
+ELSE
+INCBIN "gfx/unknown/1733af.tilemap"
+ENDC
+
+Attrmap_173517:
+INCBIN "gfx/unknown/173517.attrmap"
diff --git a/mobile/mobile_5e.asm b/mobile/mobile_5e.asm
new file mode 100644
index 000000000..baf247fe2
--- /dev/null
+++ b/mobile/mobile_5e.asm
@@ -0,0 +1,925 @@
+MobileAdapterGFX::
+INCBIN "gfx/mobile/mobile_adapter.2bpp"
+
+Function17a68f:: ; 17a68f (5e:668f)
+ call Function17a6a8
+ call Function17a751
+ ld hl, $d088
+ bit 5, [hl]
+ jr z, .asm_17a6a6
+ ld de, StringBuffer1 ; $d073
+ push de
+ call Function17a721
+ pop de
+ xor a
+ ret
+
+.asm_17a6a6
+ scf
+ ret
+
+Function17a6a8: ; 17a6a8 (5e:66a8)
+ push de
+ push bc
+ ld hl, StringBuffer2 ; $d086
+ ld bc, $a
+ xor a
+ call ByteFill
+ ld hl, Buffer1
+ ld bc, $10
+ ld a, $ff
+ call ByteFill
+ pop bc
+ ld a, c
+ and a
+ jr z, .asm_17a6c9
+ ld hl, $d088
+ set 4, [hl]
+.asm_17a6c9
+ pop de
+ call Function17a6f5
+ call Function17aba0
+ callba Function106464
+ call Function17ac0c
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ call Function17abcf
+ callba LoadOW_BGPal7
+ callba Function49420
+ call SetPalettes
+ call DelayFrame
+ ret
+
+Function17a6f5: ; 17a6f5 (5e:66f5)
+ ld hl, Buffer1
+ ld c, $0
+ ld b, $8
+.asm_17a6fc
+ ld a, [de]
+ call Function17a713
+ jr c, .asm_17a70e
+ ld a, [de]
+ swap a
+ call Function17a713
+ jr c, .asm_17a70e
+ inc de
+ dec b
+ jr nz, .asm_17a6fc
+.asm_17a70e
+ ld a, c
+ ld [$d08c], a
+ ret
+
+Function17a713: ; 17a713 (5e:6713)
+ and $f
+ cp $a
+ jr nc, .asm_17a71d
+ ld [hli], a
+ inc c
+ and a
+ ret
+
+.asm_17a71d
+ ld [hl], $ff
+ scf
+ ret
+
+Function17a721: ; 17a721 (5e:6721)
+ push de
+ ld h, d
+ ld l, e
+ ld bc, $8
+ ld a, $ff
+ call ByteFill
+ pop de
+ ld hl, Buffer1
+ ld b, $8
+.asm_17a732
+ ld c, $0
+ ld a, [hli]
+ cp $a
+ jr nc, .asm_17a748
+ ld c, a
+ ld a, [hli]
+ cp $a
+ jr nc, .asm_17a74c
+ swap a
+ or c
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_17a732
+ ret
+
+.asm_17a748
+ ld a, $ff
+ ld [de], a
+ ret
+
+.asm_17a74c
+ ld a, $f0
+ or c
+ ld [de], a
+ ret
+
+Function17a751: ; 17a751 (5e:6751)
+ xor a
+ ld [$d087], a
+.asm_17a755
+ call Function17a781
+ call Function17a7ae
+ call Function17a97b
+ call Function17a770
+ call Function17a78f
+ ld hl, $d08f
+ inc [hl]
+ ld a, [$d087]
+ bit 7, a
+ jr z, .asm_17a755
+ ret
+
+Function17a770: ; 17a770 (5e:6770)
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call HideSprites
+ call Function17a9cb
+ pop af
+ ld [hOAMUpdate], a
+ ret
+
+Function17a781: ; 17a781 (5e:6781)
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call JoyTextDelay
+ pop af
+ ld [hInMenu], a
+ ret
+
+Function17a78f: ; 17a78f (5e:678f)
+ ld hl, $d088
+ bit 7, [hl]
+ res 7, [hl]
+ jr nz, .asm_17a79f
+ callba HDMATransferTileMapToWRAMBank3
+ ret
+
+.asm_17a79f
+ callba ReloadMapPart
+ ret
+; 17a7a6 (5e:67a6)
+
+Function17a7a6: ; 17a7a6
+ ld a, [$d087]
+ inc a
+ ld [$d087], a
+ ret
+
+Function17a7ae: ; 17a7ae (5e:67ae)
+ ld a, [$d087]
+ ld hl, Jumptable_17a7b6
+ rst JumpTable
+ ret
+
+Jumptable_17a7b6: ; 17a7b6 (5e:67b6)
+ dw Function17a7c2
+ dw Function17a7cd
+ dw Function17a7d8
+ dw Function17a7ff
+ dw Function17a81a
+ dw Function17a7f4
+
+
+Function17a7c2: ; 17a7c2 (5e:67c2)
+ ld a, $4
+ call Function17aad3
+ ld a, $1
+ ld [$d087], a
+ ret
+
+Function17a7cd: ; 17a7cd (5e:67cd)
+ call Function17a83c
+ call Function17a8ae
+ ret c
+ call Function17a848
+ ret
+
+Function17a7d8: ; 17a7d8 (5e:67d8)
+ call Function17a83c
+ call Function17a848
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld a, $1
+ ld [$d087], a
+ ret
+
+Function17a7f4: ; 17a7f4 (5e:67f4)
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ ld hl, $d087
+ set 7, [hl]
+ ret
+
+Function17a7ff: ; 17a7ff (5e:67ff)
+ ld hl, $d08b
+ dec [hl]
+ ret nz
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ set 5, [hl]
+ ld hl, $d087
+ set 7, [hl]
+ ret
+
+Function17a81a: ; 17a81a (5e:681a)
+ call IsSFXPlaying
+ ret nc
+ ld a, [hJoyPressed]
+ and $3
+ ret z
+ call ExitMenu
+ call Function17ac1d
+ call Function17ac2a
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ res 6, [hl]
+ ld a, $1
+ ld [$d087], a
+ ret
+
+Function17a83c: ; 17a83c (5e:683c)
+ ld a, [hJoyLast]
+ and $f0
+ ld c, a
+ ld a, [hJoyPressed]
+ and $b
+ or c
+ ld c, a
+ ret
+
+Function17a848: ; 17a848 (5e:6848)
+ ld a, c
+ and $60
+ cp $60
+ jr z, .asm_17a876
+ ld a, c
+ and $50
+ cp $50
+ jr z, .asm_17a87d
+ ld a, c
+ and $a0
+ cp $a0
+ jr z, .asm_17a884
+ ld a, c
+ and $90
+ cp $90
+ jr z, .asm_17a88b
+ bit 6, c
+ jr nz, .asm_17a892
+ bit 7, c
+ jr nz, .asm_17a899
+ bit 5, c
+ jr nz, .asm_17a8a0
+ bit 4, c
+ jr nz, .asm_17a8a7
+ xor a
+ ret
+
+.asm_17a876
+ ld a, $9
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a87d
+ ld a, $a
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a884
+ ld a, $b
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a88b
+ ld a, $c
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a892
+ ld a, $5
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a899
+ ld a, $6
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a8a0
+ ld a, $7
+ call Function17aad0
+ scf
+ ret
+
+.asm_17a8a7
+ ld a, $8
+ call Function17aad0
+ scf
+ ret
+
+Function17a8ae: ; 17a8ae (5e:68ae)
+ bit 1, c
+ jr nz, .asm_17a8bc
+ bit 0, c
+ jr nz, .asm_17a8cc
+ bit 3, c
+ jr nz, .asm_17a8d7
+ xor a
+ ret
+
+.asm_17a8bc
+ ld a, $b
+ ld [$d08a], a
+ call Function17aa98
+ call Function17a943
+ call Function17aa88
+ scf
+ ret
+
+.asm_17a8cc
+ call Function17aad7
+ call Function17aa98
+ call Function17a8de
+ scf
+ ret
+
+.asm_17a8d7
+ ld a, $c
+ call Function17aad3
+ scf
+ ret
+
+Function17a8de: ; 17a8de (5e:68de)
+ ld a, $2
+ call Function17aae0
+ ld a, [hl]
+ cp $f1
+ jr z, .asm_17a8fd
+ cp $f0
+ jr z, .asm_17a904
+ cp $f2
+ jr z, .asm_17a911
+ ld e, a
+ call Function17a964
+ ld a, $2
+ ld [$d087], a
+ call Function17aa88
+ ret
+
+.asm_17a8fd
+ call Function17a943
+ call Function17aa88
+ ret
+
+.asm_17a904
+ call Function17aad7
+ call Function17aa98
+ call Function17a91e
+ call Function17aa88
+ ret
+
+.asm_17a911
+ call Function17aa98
+ ld a, $5
+ ld [$d087], a
+ xor a
+ call Function17aa88
+ ret
+
+Function17a91e: ; 17a91e (5e:691e)
+ ld a, [$d08c]
+ cp $7
+ jr c, .asm_17a92c
+ ld a, $3
+ ld [$d087], a
+ xor a
+ ret
+
+.asm_17a92c
+ call LoadStandardMenuDataHeader
+ call Function17a99e
+ ld hl, $d088
+ set 7, [hl]
+ ld hl, $d088
+ set 6, [hl]
+ ld a, $4
+ ld [$d087], a
+ scf
+ ret
+
+Function17a943: ; 17a943 (5e:6943)
+ ld a, [$d08c]
+ and a
+ jr z, .asm_17a95d
+ dec a
+ ld [$d08c], a
+ ld c, a
+ ld b, $0
+ ld hl, Buffer1
+ add hl, bc
+ ld [hl], $ff
+ ld a, $2
+ ld [$d087], a
+ and a
+ ret
+
+.asm_17a95d
+ ld a, $5
+ ld [$d087], a
+ xor a
+ ret
+
+Function17a964: ; 17a964 (5e:6964)
+ ld a, [$d08c]
+ cp $10
+ jr nc, .asm_17a979
+ ld c, a
+ ld b, $0
+ inc a
+ ld [$d08c], a
+ ld hl, Buffer1
+ add hl, bc
+ ld [hl], e
+ and a
+ ret
+
+.asm_17a979
+ scf
+ ret
+
+Function17a97b: ; 17a97b (5e:697b)
+ hlcoord 1, 1
+ lb bc, 2, 18
+ call ClearBox
+ hlcoord 3, 2
+ ld de, Buffer1
+ ld a, [$d08c]
+ and a
+ ret z
+ ld c, a
+.asm_17a990
+ ld a, [de]
+ inc de
+ cp $a
+ jr nc, .asm_17a99d
+ add $f6
+ ld [hli], a
+ dec c
+ jr nz, .asm_17a990
+ ret
+
+.asm_17a99d
+ ret
+
+Function17a99e: ; 17a99e (5e:699e)
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call Function17ac46
+ hlcoord 2, 14
+ ld de, String_17a9b2
+ call PlaceString
+ ret
+; 17a9b2 (5e:69b2)
+
+String_17a9b2: ; 17a9b2
+ db "でんわばんごうが ただしく"
+ next "はいって いません!"
+ db "@"
+; 17a9cb
+
+Function17a9cb: ; 17a9cb (5e:69cb)
+ ld de, Sprites ; $c400
+ ld hl, $d088
+ bit 6, [hl]
+ jr nz, .bit_6_set
+ call Function17a9e3
+ call Function17aa22
+ call Function17a9f5
+ ret
+
+.bit_6_set
+ call Function17a9e3
+ ret
+
+Function17a9e3: ; 17a9e3 (5e:69e3)
+ ld a, $3
+ ld [$d08e], a
+ ld hl, Unknown_17aa77
+ ld b, $8
+ ld c, $8
+ ld a, $5
+ call Function17aa4a
+ ret
+
+Function17a9f5: ; 17a9f5 (5e:69f5)
+ ld a, [$d08c]
+ cp $10
+ ret nc
+ ld a, [$d08f]
+ swap a
+ and $1
+ add $1
+ ld [$d08e], a
+ ld a, [$d08c]
+ cp $10
+ jr c, .okay
+ dec a
+.okay
+ ld c, $8
+ call SimpleMultiply
+ add $18
+ ld b, a
+ ld c, $11
+ ld hl, Unknown_17aa72
+ ld a, $4
+ call Function17aa4a
+ ret
+
+Function17aa22: ; 17aa22 (5e:6a22)
+ ld a, $0
+ ld [$d08e], a
+ push de
+ ld a, $3
+ call Function17aae0
+ add a
+ add a
+ add a
+ add $0
+ push af
+ ld a, $4
+ call Function17aae0
+ add a
+ add a
+ add a
+ add $8
+ ld c, a
+ pop af
+ ld b, a
+ pop de
+ ld a, $0
+ ld hl, Unknown_17aa77
+ call Function17aa4a
+ ret
+
+Function17aa4a: ; 17aa4a (5e:6a4a)
+ ld [$d08d], a
+ ld a, b
+ add $8
+ ld b, a
+ ld a, c
+ add $10
+ ld c, a
+ ld a, [hli]
+.loop
+ push af
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add b
+ ld [de], a
+ inc de
+ ld a, [$d08d]
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [$d08e]
+ or [hl]
+ inc hl
+ ld [de], a
+ inc de
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+; 17aa72 (5e:6a72)
+
+Unknown_17aa72: ; 17aa72
+ db 1
+ db 0, 0, 0, 0
+; 17aa77
+
+Unknown_17aa77: ; 17aa77
+ db 4
+ db 0, 0, 0, 0
+ db 0, 8, 1, 0
+ db 8, 0, 2, 0
+ db 8, 8, 3, 0
+; 17aa88
+
+Function17aa88: ; 17aa88 (5e:6a88)
+ jr c, asm_17aa91
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ ret
+
+asm_17aa91: ; 17aa91 (5e:6a91)
+ ld de, SFX_WRONG
+ call PlaySFX
+ ret
+
+Function17aa98: ; 17aa98 (5e:6a98)
+ ld a, $5
+ ld [$d08b], a
+ call Function17aaa9
+ call Function17aac3
+ ld hl, $d088
+ set 7, [hl]
+ ret
+
+Function17aaa9: ; 17aaa9 (5e:6aa9)
+ ld a, $3
+ call Function17aae3
+ ld c, a
+ ld b, $0
+ hlcoord 0, 0, AttrMap
+ add hl, bc
+ push hl
+ ld a, $4
+ call Function17aae3
+ ld bc, $14
+ pop hl
+ call AddNTimes
+ ret
+
+Function17aac3: ; 17aac3 (5e:6ac3)
+ ld a, $b
+ push hl
+ ld [hli], a
+ ld [hli], a
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ ld [hli], a
+ ld [hli], a
+ ret
+
+Function17aad0: ; 17aad0 (5e:6ad0)
+ call Function17aae0
+
+Function17aad3: ; 17aad3 (5e:6ad3)
+ ld [$d089], a
+ ret
+
+Function17aad7: ; 17aad7 (5e:6ad7)
+ push af
+ ld a, [$d089]
+ ld [$d08a], a
+ pop af
+ ret
+
+Function17aae0: ; 17aae0 (5e:6ae0)
+ call Function17aad7
+
+Function17aae3: ; 17aae3 (5e:6ae3)
+ push af
+ ld a, [$d08a]
+ ld bc, $d
+ ld hl, Unknown_17aaf7
+ call AddNTimes
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ret
+; 17aaf7 (5e:6af7)
+
+Unknown_17aaf7: ; 17aaf7
+ db $0, $0, $1, $6, $5, $9, $3, $2, $1, $2, $1, $2, $4
+ db $0, $0, $2, $9, $5, $a, $4, $0, $2, $a, $a, $3, $5
+ db $0, $0, $3, $c, $5, $b, $5, $1, $0, $1, $0, $4, $0
+ db $0, $0, $4, $6, $8, $0, $6, $5, $4, $5, $1, $5, $7
+ db $0, $0, $5, $9, $8, $1, $7, $3, $5, $0, $2, $6, $8
+ db $0, $0, $6, $c, $8, $2, $8, $4, $3, $1, $3, $7, $3
+ db $0, $0, $7, $6, $b, $3, $9, $8, $7, $8, $4, $8, $a
+ db $0, $0, $8, $9, $b, $4, $a, $6, $8, $3, $5, $9, $b
+ db $0, $0, $9, $c, $b, $5, $b, $7, $6, $4, $6, $a, $6
+ db $0, $0,$f2, $6, $e, $6, $0, $c, $a, $c, $7, $c, $0
+ db $0, $0, $0, $9, $e, $7, $1, $9, $b, $6, $8, $1, $1
+ db $0, $0,$f1, $c, $e, $8, $2, $a, $c, $7, $c, $2, $c
+ db $0, $0,$f0,$10, $e, $c, $c, $b, $9, $b, $9, $b, $9
+; 17aba0
+
+Function17aba0: ; 17aba0 (5e:6ba0)
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+
+ ld hl, VTiles5 tile $00
+ ld de, GFX_17afa5
+ lb bc, BANK(GFX_17afa5), $80
+ call Get2bpp
+
+ pop af
+ ld [rVBK], a
+
+ ld hl, VTiles0 tile $00
+ ld de, GFX_17afa5 + $4c0
+ lb bc, BANK(GFX_17afa5), 5
+ call Get2bpp
+
+ ld hl, VTiles0 tile $05
+ ld de, GFX_11601a
+ lb bc, BANK(GFX_11601a), 4
+ call Get2bpp
+ ret
+
+Function17abcf: ; 17abcf (5e:6bcf)
+ ld a, [rSVBK]
+ push af
+ ld a, BANK(UnknBGPals)
+ ld [rSVBK], a
+
+ ld hl, Palette_17ac55
+ ld de, UnknBGPals ; $d000
+ ld bc, $30
+ call CopyBytes
+
+ ld hl, Palette_17ac95
+ ld de, UnknOBPals
+ ld bc, $40
+ call CopyBytes
+
+ ld hl, GFX_17afa5 + $510
+ ld de, UnknOBPals + 2 * 4
+ ld bc, $10
+ call CopyBytes
+
+ ld hl, MapObjectPals + 8
+ ld de, UnknOBPals + 6 * 4
+ ld bc, $8
+ ld a, BANK(MapObjectPals)
+ call FarCopyBytes
+
+ pop af
+ ld [rSVBK], a
+ ret
+
+Function17ac0c: ; 17ac0c (5e:6c0c)
+ call Function17ac1d
+ call Function17ac2a
+ hlcoord 0, 0
+ ld b, 2
+ ld c, SCREEN_WIDTH - 2
+ call Function17ac46
+ ret
+
+Function17ac1d: ; 17ac1d (5e:6c1d)
+ ld hl, Tilemap_17acd5
+ decoord 0, 4
+ ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
+ call CopyBytes
+ ret
+
+Function17ac2a: ; 17ac2a (5e:6c2a)
+ ld hl, Tilemap_17ae3d
+ decoord 0, 4, AttrMap
+ ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
+ call CopyBytes
+ hlcoord 0, 4, AttrMap
+ ld bc, (SCREEN_HEIGHT - 4) * SCREEN_WIDTH
+.loop
+ ld a, [hl]
+ or $8
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+
+Function17ac46: ; 17ac46 (5e:6c46)
+ ld a, [$d088]
+ bit 4, a
+ jr nz, .bit_4_set
+ call TextBox
+ ret
+
+.bit_4_set
+ call Function3eea
+ ret
+; 17ac55 (5e:6c55)
+
+Palette_17ac55: ; 17ac55
+ RGB 0, 0, 0
+ RGB 9, 10, 25
+ RGB 16, 19, 31
+ RGB 31, 31, 31
+
+ RGB 5, 11, 9
+ RGB 7, 14, 12
+ RGB 17, 24, 22
+ RGB 28, 31, 31
+
+ RGB 0, 0, 0
+ RGB 3, 0, 10
+ RGB 3, 3, 16
+ RGB 6, 8, 25
+
+ RGB 5, 11, 9
+ RGB 28, 31, 31
+ RGB 7, 14, 12
+ RGB 17, 24, 22
+
+ RGB 0, 0, 0
+ RGB 5, 2, 16
+ RGB 8, 8, 26
+ RGB 13, 9, 17
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+Palette_17ac95: ; 17ac95
+ RGB 31, 31, 31
+ RGB 4, 3, 3
+ RGB 31, 13, 0
+ RGB 31, 31, 31
+
+ RGB 31, 31, 31
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+
+ RGB 31, 0, 0
+ RGB 16, 3, 0
+ RGB 28, 19, 11
+ RGB 31, 31, 31
+
+ RGB 31, 16, 0
+ RGB 9, 6, 4
+ RGB 31, 16, 0
+ RGB 31, 24, 0
+
+ RGB 31, 18, 6
+ RGB 0, 3, 0
+ RGB 0, 9, 0
+ RGB 0, 12, 0
+
+ RGB 0, 16, 0
+ RGB 0, 22, 0
+ RGB 0, 25, 0
+ RGB 0, 27, 0
+
+ RGB 0, 31, 0
+ RGB 3, 31, 0
+ RGB 8, 31, 0
+ RGB 14, 31, 0
+
+ RGB 16, 31, 0
+ RGB 22, 31, 0
+ RGB 27, 31, 0
+ RGB 31, 31, 0
+
+Tilemap_17acd5: ; 17acd5
+INCBIN "gfx/unknown/17acd5.tilemap"
+
+Tilemap_17ae3d: ; 17ae3d
+INCBIN "gfx/unknown/17ae3d.tilemap"
+
+GFX_17afa5:: ; 17afa5
+INCBIN "gfx/unknown/17afa5.2bpp"
diff --git a/mobile/mobile_5f.asm b/mobile/mobile_5f.asm
new file mode 100644
index 000000000..9b0c5455b
--- /dev/null
+++ b/mobile/mobile_5f.asm
@@ -0,0 +1,5306 @@
+Function17c000: ; 17c000
+ call DisableLCD
+
+ ld hl, VTiles2
+ ld bc, $31 tiles
+ xor a
+ call ByteFill
+
+ call LoadStandardFont
+ call LoadFontsExtra
+
+ ld hl, HaveWantMap
+ decoord 0, 0
+ bccoord 0, 0, AttrMap
+
+ ld a, SCREEN_HEIGHT
+.y
+ push af
+ ld a, SCREEN_WIDTH
+
+ push hl
+.x
+ push af
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .x
+ pop hl
+
+ push bc
+ ld bc, BG_MAP_WIDTH * 2
+ add hl, bc
+ pop bc
+
+ pop af
+ dec a
+ jr nz, .y
+
+ ld a, [rSVBK]
+ push af
+
+ ld a, 5 ; BANK(UnknBGPals)
+ ld [rSVBK], a
+
+ ld hl, HaveWantPals
+ ld de, UnknBGPals
+ ld bc, $80
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld hl, MobileSelectGFX
+ ld de, VTiles0 tile $30
+ ld bc, $20 tiles
+ call CopyBytes
+
+ ld a, 1
+ ld [rVBK], a
+
+ ld hl, HaveWantGFX
+ ld de, VTiles2
+ ld bc, $80 tiles
+ call CopyBytes
+
+ ld hl, HaveWantGFX + $800
+ ld de, VTiles1
+ ld bc, $10 tiles
+ call CopyBytes
+
+ xor a
+ ld [rVBK], a
+
+ call EnableLCD
+ callba ReloadMapPart
+ ret
+; 17c083
+
+HaveWantGFX: ; 17c083
+INCBIN "gfx/mobile/havewant.2bpp"
+
+MobileSelectGFX: ; 17c983
+INCBIN "gfx/mobile/select.2bpp"
+
+HaveWantMap: ; 17cb83
+; Interleaved tile/palette map.
+INCBIN "gfx/mobile/havewant_map.bin"
+
+HaveWantPals: ; 17cff3
+; BG and OBJ palettes.
+ RGB 0, 0, 0
+ RGB 21, 21, 21
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 4, 17, 29
+ RGB 6, 19, 31
+ RGB 31, 31, 31
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 2, 13, 18
+ RGB 6, 19, 31
+ RGB 31, 31, 31
+
+ RGB 0, 0, 0
+ RGB 31, 5, 5
+ RGB 29, 21, 21
+ RGB 31, 31, 31
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 4, 17, 29
+ RGB 6, 19, 31
+ RGB 2, 15, 27
+
+ RGB 0, 0, 0
+ RGB 28, 19, 18
+ RGB 25, 9, 0
+ RGB 0, 0, 0
+
+ RGB 0, 0, 0
+ RGB 31, 27, 27
+ RGB 31, 10, 4
+ RGB 29, 0, 0
+
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 26, 8, 23
+ RGB 22, 0, 16
+
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 8, 31
+ RGB 15, 1, 26
+
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 17, 12, 31
+ RGB 12, 6, 31
+
+ RGB 0, 16, 0
+ RGB 11, 11, 14
+ RGB 5, 5, 7
+ RGB 31, 31, 31
+
+ RGB 0, 31, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+ RGB 16, 31, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+ RGB 0, 0, 0
+
+
+CheckStringForErrors: ; 17d073
+; Valid character ranges:
+; $0, $5 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
+.loop
+ ld a, [de]
+ inc de
+ and a
+ jr z, .NextChar
+ cp $60
+ jr nc, .NextChar
+ cp $4e
+ jr z, .NextChar
+ cp "@"
+ jr z, .Done
+ cp $5
+ jr c, .Fail
+ cp "<PLAY_G>"
+ jr c, .NextChar
+ cp $19
+ jr c, .Fail
+ cp $1d
+ jr c, .NextChar
+ cp $26
+ jr c, .Fail
+ cp $35
+ jr c, .NextChar
+ cp $3a
+ jr c, .Fail
+ cp $3f
+ jr c, .NextChar
+ cp $40
+ jr c, .Fail
+ cp $49
+ jr c, .NextChar
+
+.Fail:
+ scf
+ ret
+
+.NextChar:
+ dec c
+ jr nz, .loop
+
+.Done:
+ and a
+ ret
+; 17d0b3
+
+CheckStringForErrors_IgnoreTerminator: ; 17d0b3
+; Find control chars
+.loop
+ ld a, [de]
+ inc de
+ and a
+ jr z, .next
+ cp "<DEXEND>" + 1
+ jr nc, .next
+ cp "<NEXT>"
+ jr z, .next
+ cp "@"
+ jr z, .next
+
+ cp $5
+ jr c, .end
+ cp "<PLAY_G>"
+ jr c, .next
+ cp $19
+ jr c, .end
+ cp $1d
+ jr c, .next
+ cp "%" + 1
+ jr c, .end
+ cp $35
+ jr c, .next
+ cp "<GREEN>" + 1
+ jr c, .end
+ cp "<ENEMY>"
+ jr c, .next
+ cp "<ENEMY>" + 1
+ jr c, .end
+ cp "<MOM>"
+ jr c, .next
+
+.end
+ scf
+ ret
+
+.next
+ dec c
+ jr nz, .loop
+ and a
+ ret
+; 17d0f3
+
+Function17d0f3: ; 17d0f3
+ ld a, [$c608 + 5]
+ ld [wOTTrademonSpecies], a
+ ld [CurPartySpecies], a
+ ld a, [wcd81]
+ ld [$c74e], a
+ ld hl, $c63d
+ ld de, wOTTrademonOTName
+ ld bc, 5
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld a, [$c608 + 11]
+ ld [wOTTrademonID], a
+ ld a, [$c608 + 12]
+ ld [wOTTrademonID + 1], a
+ ld hl, $c608 + 26
+ ld a, [hli]
+ ld [wOTTrademonDVs], a
+ ld a, [hl]
+ ld [wOTTrademonDVs + 1], a
+ ld bc, $c608 + 5
+ callba GetCaughtGender
+ ld a, c
+ ld [wOTTrademonCaughtData], a
+ call SpeechTextBox
+ call FadeToMenu
+ callba Function10804d
+ callba Function17d1f1
+ ld a, $1
+ ld [wForceEvolution], a
+ ld a, $2
+ ld [wLinkMode], a
+ callba EvolvePokemon
+ xor a
+ ld [wLinkMode], a
+ callba SaveAfterLinkTrade
+ ld a, $5
+ call GetSRAMBank
+ ld a, $5
+ ld [$a800], a
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_17d180
+ ld a, $1
+ ld [de], a
+
+.asm_17d180
+ call CloseSubmenu
+ call RestartMapMusic
+ ret
+; 17d187
+
+Mobile_CopyDefaultOTName: ; 17d187
+ ld hl, Mobile5F_KrissName
+ ld de, $c63d
+ ld bc, 5
+ call CopyBytes
+ ret
+; 17d194
+
+Mobile5F_KrissName:
+ db "クりス@@"
+; 17d198
+
+Mobile_CopyDefaultNickname: ; 17d199
+ ld hl, .DefaultNickname
+ ld de, $c642
+ ld bc, 5
+ call CopyBytes
+ ret
+; 17d1a6
+
+.DefaultNickname:
+ db "?????"
+
+Mobile_CopyDefaultMail: ; 17d1ab
+ ld a, "@"
+ ld hl, $c647
+ ld bc, MAIL_MSG_LENGTH + 1
+ call ByteFill
+ ld hl, .DefaultMessage
+ ld de, $c647
+ ld bc, 6
+ call CopyBytes
+ ret
+; 17d1c3
+
+.DefaultMessage:
+ db "こんにちは@"
+; 17d1c9
+
+Mobile_CopyDefaultMailAuthor: ; 17d1c9
+ ld a, "@"
+ ld de, $c668
+ ld bc, 5
+ call ByteFill
+ ld hl, Mobile5F_KrissName
+ ld de, $c668
+ ld bc, 5
+ call CopyBytes
+ ret
+; 17d1e1
+
+CheckStringContainsLessThanBNextCharacters: ; 17d1e1
+.loop
+ ld a, [de]
+ inc de
+ cp "<NEXT>"
+ jr nz, .next_char
+ dec b
+ jr z, .done
+
+.next_char
+ dec c
+ jr nz, .loop
+ and a
+ ret
+
+.done
+ scf
+ ret
+; 17d1f1
+
+Function17d1f1: ; 17d1f1
+ ld a, [CurPartySpecies]
+ dec a
+ call SetSeenAndCaughtMon
+
+ ld a, [CurPartySpecies]
+ cp UNOWN
+ jr nz, .asm_17d223
+
+ ld hl, PartyMon1DVs
+ ld a, [PartyCount]
+ dec a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ predef GetUnownLetter
+ callab UpdateUnownDex
+ ld a, [wFirstUnownSeen]
+ and a
+ jr nz, .asm_17d223
+
+ ld a, [UnownLetter]
+ ld [wFirstUnownSeen], a
+
+.asm_17d223
+ ret
+; 17d224
+
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+; Parameter: [ScriptVar] = 0..1
+;
+; if [ScriptVar] == 0
+; Show japanese menu options
+; - News - News - ??? - Cancel
+; if [ScriptVar] == 1
+; Show BattleTower-Menu with 3 options in english language
+; - Challenge - Explanation - Cancel
+Special_Menu_ChallengeExplanationCancel: ; 17d224
+ ld a, [ScriptVar]
+ and a
+ jr nz, .English
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, MenuDataHeader_17d26a ; Japanese Menu, where you can choose 'News' as an option
+ jr .Load_Interpret
+
+.English:
+ ld a, $4
+ ld [ScriptVar], a
+ ld hl, MenuDataHeader_ChallengeExplanationCancel ; English Menu
+
+.Load_Interpret:
+ call LoadMenuDataHeader
+ call Function17d246
+ call CloseWindow
+ ret
+; 17d246
+
+Function17d246: ; 17d246
+ call VerticalMenu
+ jr c, .Exit
+ ld a, [ScriptVar]
+ cp $5
+ jr nz, .UsewMenuCursorY
+ ld a, [wMenuCursorY]
+ cp $3
+ ret z
+ jr c, .UsewMenuCursorY
+ dec a
+ jr .LoadToScriptVar
+
+.UsewMenuCursorY:
+ ld a, [wMenuCursorY]
+
+.LoadToScriptVar:
+ ld [ScriptVar], a
+ ret
+
+.Exit:
+ ld a, $4
+ ld [ScriptVar], a
+ ret
+; 17d26a
+
+MenuDataHeader_17d26a: ; 17d26a
+ db $40 ; flags
+ db 0, 0 ; start coords
+ db 9, 14 ; end coords
+ dw MenuData2_17d272
+ db 1 ; default option
+
+MenuData2_17d272: ; 17d272
+ db $a0 ; flags
+ db 4
+ db "ニュース¯よみこむ@"
+ db "ニュース¯みる@"
+ db "せつめい@"
+ db "やめる@"
+; 17d28f
+
+MenuDataHeader_ChallengeExplanationCancel: ; 17d28f
+ db $40 ; flags
+ db 0, 0 ; start coords
+ db 7, 14 ; end coords
+ dw MenuData2_ChallengeExplanationCancel
+ db 1 ; default option
+
+MenuData2_ChallengeExplanationCancel: ; 17d297
+ db $a0 ; flags
+ db 3
+ db "Challenge@"
+ db "Explanation@"
+ db "Cancel@"
+; 17d2b6
+
+Function17d2b6: ; 17d2b6
+ call Function17d2c0
+ callba Function1181da
+ ret
+; 17d2c0
+
+Function17d2c0: ; 17d2c0
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ret
+; 17d2ce
+
+Function17d2ce: ; 17d2ce
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa72]
+ call CloseSRAM
+ and a
+ jr nz, .asm_17d2e2
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_17d2e2
+ call Function17d314
+ ret c
+ call SpeechTextBox
+ call FadeToMenu
+ ld a, [rSVBK]
+ push af
+ ld a, $4
+ ld [rSVBK], a
+ call Function17d370
+ call Function17d45a
+ pop af
+ ld [rSVBK], a
+ ld de, MUSIC_MOBILE_CENTER
+ ld a, e
+ ld [wMapMusic], a
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ call PlayMusic
+ call ReturnToMapFromSubmenu
+ call CloseSubmenu
+ ret
+; 17d314
+
+Function17d314: ; 17d314
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b1b1]
+ call CloseSRAM
+ cp $21
+ jr nc, .asm_17d354
+ ld a, $6
+ call GetSRAMBank
+ ld l, $0
+ ld h, l
+ ld de, $a006
+ ld a, [$a004]
+ ld c, a
+ ld a, [$a005]
+ ld b, a
+.asm_17d336
+ push bc
+ ld a, [de]
+ inc de
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_17d336
+ ld a, [$a002]
+ cp l
+ jr nz, .asm_17d354
+ ld a, [$a003]
+ cp h
+ jr nz, .asm_17d354
+ call CloseSRAM
+ and a
+ ret
+
+.asm_17d354
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld hl, $aa73
+ ld bc, $c
+ call ByteFill
+ call CloseSRAM
+ ld a, $2
+ ld [ScriptVar], a
+ scf
+ ret
+; 17d370
+
+Function17d370: ; 17d370
+ xor a
+ ld [wcd77], a
+ ld [wcd78], a
+ ld [wcd79], a
+ dec a
+ ld [wcd6c], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+ callba ReloadMapPart
+ call DisableLCD
+ ld hl, VTiles1 tile $6e
+ ld de, $c608
+ ld bc, 1 tiles
+ call CopyBytes
+ ld a, $1
+ ld [rVBK], a
+ ld hl, PokemonNewsGFX
+ ld de, VTiles1
+ ld bc, $48 tiles
+ call CopyBytes
+ xor a
+ ld hl, VTiles2 tile $7f
+ ld bc, 1 tiles
+ call ByteFill
+ ld hl, $c608
+ ld de, VTiles1 tile $6e
+ ld bc, 1 tiles
+ call CopyBytes
+ xor a
+ ld [rVBK], a
+ ld hl, GFX_17eb7e
+ ld de, VTiles2 tile $60
+ ld bc, 1 tiles
+ call CopyBytes
+ call EnableLCD
+ call Function17d60b
+ ld a, $0
+ ld [BGMapBuffer], a
+ ld a, $d0
+ ld [wcd21], a
+ ld a, $6
+ call GetSRAMBank
+ ld hl, $a006
+ ld de, UnknBGPals
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17d3f6
+
+Function17d3f6: ; 17d3f6
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+ callba ReloadMapPart
+
+Function17d405:
+ call DisableLCD
+ ld hl, VTiles1 tile $6e
+ ld de, $c608
+ ld bc, 1 tiles
+ call CopyBytes
+ ld a, $1
+ ld [rVBK], a
+ ld hl, PokemonNewsGFX
+ ld de, VTiles1
+ ld bc, $48 tiles
+ call CopyBytes
+ xor a
+ ld hl, VTiles2 tile $7f
+ ld bc, 1 tiles
+ call ByteFill
+ ld hl, $c608
+ ld de, VTiles1 tile $6e
+ ld bc, 1 tiles
+ call CopyBytes
+ xor a
+ ld [rVBK], a
+ call EnableLCD
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_17eff6
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ call SetPalettes
+ pop af
+ ld [rSVBK], a
+ ret
+; 17d45a
+
+Function17d45a: ; 17d45a
+.asm_17d45a
+ call JoyTextDelay
+ ld a, [wcd77]
+ bit 7, a
+ jr nz, .asm_17d46f
+ call Function17d474
+ callba ReloadMapPart
+ jr .asm_17d45a
+
+.asm_17d46f
+ xor a
+ ld [ScriptVar], a
+ ret
+; 17d474
+
+Function17d474: ; 17d474
+ jumptable Jumptable_17d483, wcd77
+; 17d483
+
+Jumptable_17d483: ; 17d483
+ dw Function17d48d
+ dw Function17d5be
+ dw Function17d5c4
+ dw Function17d6fd
+ dw Function17e427
+; 17d48d
+
+Function17d48d: ; 17d48d
+ ld hl, Palette_17eff6
+ ld de, $c608
+ ld bc, $40
+ call CopyBytes
+ ld hl, TileAttrmap_17eb8e
+ decoord 0, 0
+ bccoord 0, 0, AttrMap
+ ld a, $12
+.asm_17d4a4
+ push af
+ ld a, $14
+ push hl
+.asm_17d4a8
+ push af
+ ld a, [hli]
+ cp $7f
+ jr z, .asm_17d4b0
+ add $80
+
+.asm_17d4b0
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_17d4a8
+ pop hl
+ push bc
+ ld bc, $40
+ add hl, bc
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_17d4a4
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ ld a, [hli]
+ ld e, a
+ ld a, [wcd6c]
+ cp e
+ jr z, .asm_17d4e0
+ ld a, e
+ ld [wcd6c], a
+ ld [wMapMusic], a
+ ld d, $0
+ call PlayMusic2
+
+.asm_17d4e0
+ ld a, [hli]
+ ld de, $c608
+ ld c, $8
+.asm_17d4e6
+ srl a
+ jr nc, .asm_17d4f6
+ ld b, $8
+ push af
+.asm_17d4ed
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_17d4ed
+ pop af
+ jr .asm_17d4fc
+
+.asm_17d4f6
+ push af
+ ld a, e
+ add $8
+ ld e, a
+ pop af
+
+.asm_17d4fc
+ dec c
+ jr nz, .asm_17d4e6
+ push hl
+ call Function17d5f6
+ pop hl
+ ld a, [hli]
+ and a
+ jr z, .asm_17d539
+.asm_17d508
+ push af
+ ld a, [hli]
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [wcd51], a
+ ld a, [hli]
+ ld [wcd52], a
+ ld a, [hli]
+ sla a
+ sla a
+ sla a
+ add $98
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e613
+ ld a, [hli]
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e691
+ pop af
+ dec a
+ jr nz, .asm_17d508
+
+.asm_17d539
+ ld a, [hli]
+.asm_17d53a
+ push af
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ pop de
+ hlcoord 0, 0
+ add hl, bc
+ call PlaceString
+ push de
+ pop hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_17d53a
+ ld de, CreditsTimer
+ ld bc, $c
+ call CopyBytes
+ xor a
+ ld [wcd2e], a
+ ld [wcd2f], a
+ inc a
+ ld [wcd30], a
+ ld [wcd31], a
+ ld de, wcd32
+ ld bc, $10
+ call CopyBytes
+ ld a, [hli]
+ ld [wcd42], a
+ ld a, [hli]
+ ld [wcd43], a
+ ld a, [hli]
+ ld [wMobileInactivityTimerMinutes], a
+ ld a, [hli]
+ ld [wMobileInactivityTimerSeconds], a
+ ld a, [hli]
+ ld [wMobileInactivityTimerFrames], a
+ ld a, [hli]
+ and a
+ jr z, .asm_17d58a
+ call Function17d6a1
+
+.asm_17d58a
+ ld a, l
+ ld [wcd49], a
+ ld a, h
+ ld [wcd4a], a
+ ld a, [wcd42]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, l
+ ld [wcd4b], a
+ ld a, h
+ ld [wcd4c], a
+ add hl, bc
+ add hl, bc
+ ld a, l
+ ld [wcd4d], a
+ ld a, h
+ ld [wcd4e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ callba ReloadMapPart
+ jp Function17e438
+; 17d5be
+
+Function17d5be: ; 17d5be
+ call SetPalettes
+ call Function17e438
+
+Function17d5c4:
+ ld a, [hJoyPressed]
+ and a
+ ret z
+ ld c, 0
+ ld b, c
+ ld hl, wcd32
+.loop
+ srl a
+ jr c, .got_button
+ inc c
+ inc c
+ jr .loop
+
+.got_button
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ and c
+ cp $ff
+ ret z
+ ld a, [wcd20]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, bc
+ ld a, l
+ ld [wcd78], a
+ ld a, h
+ ld [wcd79], a
+ ld a, $3
+ ld [wcd77], a
+ ret
+; 17d5f6
+
+Function17d5f6: ; 17d5f6
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, $c608
+ ld de, UnknBGPals
+ ld bc, 8 palettes
+ call CopyBytes
+ ld a, $4
+ ld [rSVBK], a
+ ret
+; 17d60b
+
+Function17d60b: ; 17d60b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1d3
+ ld de, $c608
+ ld bc, $20
+ call CopyBytes
+ ld a, [$b1b1]
+ ld c, a
+ ld a, [$b1b2]
+ ld b, a
+ ld a, [$b1b3]
+ ld l, a
+ ld a, [$b1b4]
+ ld h, a
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+ ld de, $c708
+ ld a, c
+ and a
+ jr z, .asm_17d684
+.asm_17d63b
+ push bc
+ ld a, l
+ ld [de], a
+ inc de
+ ld a, h
+ ld [de], a
+ inc de
+ ld bc, $a
+ add hl, bc
+ pop bc
+ ld a, [hli]
+ ld [wcd4a], a
+ ld a, [hli]
+ ld [wcd49], a
+ push hl
+ push de
+ ld hl, $c608
+ ld e, b
+ ld d, $0
+ add hl, de
+ ld a, [hli]
+ ld [wcd4b], a
+ ld a, [hl]
+ ld [wcd4c], a
+ pop de
+ pop hl
+ inc b
+ inc b
+ dec c
+ dec c
+ jr z, .asm_17d684
+ push bc
+ push de
+ ld a, [wcd49]
+ ld c, a
+ ld a, [wcd4a]
+ ld b, a
+ ld a, [wcd4b]
+ ld e, a
+ ld a, [wcd4c]
+ ld d, a
+.asm_17d67a
+ add hl, de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_17d67a
+ pop de
+ pop bc
+ jr .asm_17d63b
+
+.asm_17d684
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c708
+ ld de, $b1b3
+ ld a, [$b1b1]
+ ld c, a
+ ld a, [$b1b2]
+ ld b, a
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17d6a1
+
+
+Function17d6a1: ; 17d6a1
+ push hl
+ ld a, [wcd6e]
+ ld c, a
+ ld b, $0
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b1d3
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld [wcd47], a
+ ld a, [hl]
+ ld [BGMapPalBuffer], a
+ ld hl, $b1b3
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+ ld a, l
+ ld [wcd5e], a
+ ld a, h
+ ld [wcd5f], a
+ ld de, wcd60
+ ld bc, $4
+ call CopyBytes
+ inc hl
+ inc hl
+ ld de, wcd64
+ ld bc, $4
+ call CopyBytes
+ ld a, [hli]
+ ld [wcd69], a
+ ld a, [hli]
+ ld [wcd68], a
+ ld a, l
+ ld [wcd6a], a
+ ld a, h
+ ld [wcd6b], a
+ call CloseSRAM
+ pop hl
+ ret
+; 17d6fd
+
+Function17d6fd: ; 17d6fd
+ ld a, [wcd77]
+ bit 7, a
+ jr nz, asm_17d721
+ ld a, [wcd78]
+ ld l, a
+ ld a, [wcd79]
+ ld h, a
+ ld a, [hl]
+ cp $ff
+ jr z, asm_17d721
+
+Function17d711:
+.crash_loop
+ cp $31
+ jr nc, .crash_loop
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable17d72a
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+asm_17d721
+ call Function17e5af
+ ld a, $2
+ ld [wcd77], a
+ ret
+; 17d72a
+
+Jumptable17d72a: ; 17d72a
+ dw Function17d78c
+ dw Function17d78d
+ dw Function17d7b4
+ dw Function17d7c2
+ dw Function17d7d3
+ dw Function17d7e5
+ dw Function17d818
+ dw Function17d833
+ dw Function17d85d
+ dw Function17d902
+ dw Function17d93a
+ dw Function17d98b
+ dw Function17d9e3
+ dw Function17da31
+ dw Function17da9c
+ dw Function17dadc
+ dw Function17db2d
+ dw Function17db56
+ dw Function17db77
+ dw Function17dbe9
+ dw Function17dc1f
+ dw Function17dc9f
+ dw Function17dca9
+ dw Function17dccf
+ dw Function17dd13
+ dw Function17dd30
+ dw Function17dd49
+ dw Function17ddcd
+ dw Function17de32
+ dw Function17de91
+ dw Function17ded9
+ dw Function17e0fd
+ dw Function17e133
+ dw Function17e165
+ dw Function17e1a1
+ dw Function17e254
+ dw Function17e261
+ dw Function17e270
+ dw Function17e27f
+ dw Function17e293
+ dw Function17e2a7
+ dw Function17e367
+ dw Function17e37e
+ dw Function17e395
+ dw Function17e3ac
+ dw Function17e3c3
+ dw Function17e3e0
+ dw Function17e3f0
+ dw Function17e409
+; 17d78c
+
+Function17d78c: ; 17d78c
+ ret
+; 17d78d
+
+Function17d78d: ; 17d78d
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ ld a, $6
+ call GetSRAMBank
+ ld hl, $a006
+ add hl, bc
+ ld de, UnknBGPals
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ xor a
+ ld [wcd77], a
+ call ClearBGPalettes
+ ret
+; 17d7b4
+
+Function17d7b4: ; 17d7b4
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld d, $0
+ call PlayMusic2
+ call Function17e41e
+ ret
+; 17d7c2
+
+Function17d7c2: ; 17d7c2
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld d, $0
+ call PlaySFX
+ call WaitSFX
+ call Function17e41e
+ ret
+; 17d7d3
+
+Function17d7d3: ; 17d7d3
+ call Function17e415
+ ld a, [hli]
+ dec a
+ ld e, a
+ ld d, $0
+ call PlayCryHeader
+ call WaitSFX
+ call Function17e41e
+ ret
+; 17d7e5
+
+Function17d7e5: ; 17d7e5
+ call Function17e415
+ ld a, [hli]
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [wcd51], a
+ ld a, [hli]
+ ld [wcd52], a
+ ld a, [hli]
+ sla a
+ sla a
+ sla a
+ add $98
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e613
+ ld a, [hli]
+ ld [wcd53], a
+ ld de, wcd4f
+ call Function17e691
+ call Function17e41e
+ ret
+; 17d818
+
+Function17d818: ; 17d818
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ call Function17e41e
+ call Function17e447
+ ld e, l
+ ld d, h
+ hlcoord 0, 0
+ add hl, bc
+ call PlaceString
+ ret
+; 17d833
+
+Function17d833: ; 17d833
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ push de
+ push bc
+ call Function17e32b
+ pop bc
+ pop de
+ call Function17e43d
+ ld c, l
+ ld b, h
+ hlcoord 0, 0
+ add hl, de
+ ld e, l
+ ld d, h
+ callba Function11c08f
+ call Function17e349
+ ret
+; 17d85d
+
+Function17d85d: ; 17d85d
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld hl, UnknBGPals
+ add hl, de
+ ld de, wcc60
+.asm_17d86c
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr nz, .asm_17d86c
+ pop hl
+ ld de, $c608
+ ld c, $0
+.asm_17d878
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_17d8c7
+ ld [wcd4f], a
+ ld a, [hli]
+ ld [wcd50], a
+ ld a, [hli]
+ ld [wcd51], a
+ ld a, [hli]
+ ld [wcd52], a
+ ld a, [wcd51]
+ push af
+ cp $c0
+ jr c, .asm_17d89b
+ ld a, [wcd4f]
+ ld [rSVBK], a
+ jr .asm_17d8a1
+
+.asm_17d89b
+ ld a, [wcd4f]
+ call GetSRAMBank
+
+.asm_17d8a1
+ push hl
+ ld a, [wcd50]
+ ld l, a
+ ld a, [wcd51]
+ ld h, a
+ ld a, [wcd52]
+.asm_17d8ad
+ push af
+ ld a, [hli]
+ ld [de], a
+ inc de
+ inc c
+ pop af
+ dec a
+ jr nz, .asm_17d8ad
+ pop hl
+ pop af
+ cp $c0
+ jr c, .asm_17d8c2
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17d878
+
+.asm_17d8c2
+ call CloseSRAM
+ jr .asm_17d878
+
+.asm_17d8c7
+ call Function17e41e
+ push bc
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $c608
+ ld de, UnknBGPals
+ ld b, $0
+ call CopyBytes
+ ld a, $4
+ ld [rSVBK], a
+ call Function17e32b
+ pop bc
+ ld a, c
+ ld [wcd3b], a
+ xor a
+ ld [wcf66], a
+ callba Function118329
+ ld a, [wc300]
+ and a
+ jr z, .asm_17d8fe
+ cp $a
+ jr z, .asm_17d8fe
+ call Function17e309
+ ret
+
+.asm_17d8fe
+ call Function17e349
+ ret
+; 17d902
+
+Function17d902: ; 17d902
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ call Function17e41e
+ call Function17e32b
+ pop de
+ ld hl, UnknBGPals
+ add hl, de
+ ld de, wcc60
+.asm_17d918
+ ld a, [hli]
+ ld [de], a
+ inc de
+ and a
+ jr nz, .asm_17d918
+ xor a
+ ld [wcf66], a
+ callba Function11837a
+ ld a, [wc300]
+ and a
+ jr z, .asm_17d936
+ cp $a
+ jr z, .asm_17d936
+ call Function17e309
+ ret
+
+.asm_17d936
+ call Function17e349
+ ret
+; 17d93a
+
+Function17d93a: ; 17d93a
+ call Function17e415
+ ld de, $c708
+ ld bc, $5
+ call CopyBytes
+ call Function17e41e
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [$c70c]
+ call Function17e6de
+ ld a, [$c70a]
+ ld [CurPartySpecies], a
+ ld a, [$c70c]
+ ld e, a
+ callba LoadMonPaletteAsNthBGPal
+ call SetPalettes
+ ld a, [$c708]
+ ld l, a
+ ld a, [$c709]
+ ld h, a
+ ld a, [$c70b]
+ ld c, a
+ decoord 0, 0
+ add hl, de
+ ld e, l
+ ld d, h
+ callba HOF_AnimateFrontpic
+ pop af
+ ld [rSVBK], a
+ call Function17e349
+ ret
+; 17d98b
+
+Function17d98b: ; 17d98b
+ call Function17e415
+ ld de, $c708
+ ld bc, $4
+ call CopyBytes
+ call Function17e41e
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [$c70b]
+ call Function17e6de
+ ld a, [$c70a]
+ ld [TrainerClass], a
+ ld a, [$c70b]
+ ld e, a
+ callba LoadTrainerClassPaletteAsNthBGPal
+ call SetPalettes
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ push de
+ ld de, VTiles2
+ callba GetTrainerPic
+ pop hl
+ decoord 0, 0
+ add hl, de
+ ld bc, $707
+ predef PlaceGraphic
+ pop af
+ ld [rSVBK], a
+ call Function17e349
+ ret
+; 17d9e3
+
+Function17d9e3: ; 17d9e3
+ call Function17e415
+ ld de, $c708
+ ld bc, $7
+ call CopyBytes
+ call Function17e41e
+ ld a, [$c70b]
+ push af
+ cp $c0
+ jr c, .asm_17da01
+ ld a, [$c70c]
+ ld [rSVBK], a
+ jr .asm_17da07
+
+.asm_17da01
+ ld a, [$c70c]
+ call GetSRAMBank
+
+.asm_17da07
+ ld a, [$c708]
+ ld l, a
+ ld a, [$c709]
+ ld h, a
+ ld a, [$c70a]
+ ld e, a
+ ld a, [$c70b]
+ ld d, a
+ ld a, [$c70d]
+ ld c, a
+ ld a, [$c70e]
+ ld b, a
+ call CopyBytes
+ pop af
+ cp $c0
+ jr c, .asm_17da2d
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17da30
+
+.asm_17da2d
+ call CloseSRAM
+
+.asm_17da30
+ ret
+; 17da31
+
+Function17da31: ; 17da31
+ call Function17e415
+ ld de, $c708
+ ld bc, $4
+ call CopyBytes
+ call Function17e41e
+ ld a, [$c709]
+ push af
+ cp $c0
+ jr c, .asm_17da4f
+ ld a, [$c70a]
+ ld [rSVBK], a
+ jr .asm_17da55
+
+.asm_17da4f
+ ld a, [$c70a]
+ call GetSRAMBank
+
+.asm_17da55
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ ld a, [$c70b]
+ ld c, a
+ bit 7, c
+ jr nz, .asm_17da70
+ ld hl, Unknown_17da8c
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ or [hl]
+ ld [de], a
+ jr .asm_17da7d
+
+.asm_17da70
+ ld hl, Unknown_17da94
+ ld a, c
+ and $7f
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ and [hl]
+ ld [de], a
+
+.asm_17da7d
+ pop af
+ cp $c0
+ jr c, .asm_17da88
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17da8b
+
+.asm_17da88
+ call CloseSRAM
+
+.asm_17da8b
+ ret
+; 17da8c
+
+Unknown_17da8c:
+x = 0
+ rept 8
+ db 1 << x
+x = x + 1
+ endr
+
+Unknown_17da94:
+x = 0
+ rept 8
+ db (1 << x) ^ $ff
+x = x + 1
+ endr
+; 17da9c
+
+Function17da9c: ; 17da9c
+ ld a, [wcd31]
+ dec a
+ jr z, .asm_17dabd
+ push af
+ call Function17e566
+ pop af
+ ld [wcd31], a
+ ld hl, wcd24
+ ld a, [wcd2e]
+ sub [hl]
+ ld [wcd2e], a
+ call Function17e55b
+ call Function17e5af
+.asm_17daba
+ jp Function17e415
+
+.asm_17dabd
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_17daba
+ ld hl, wcd24
+ sub [hl]
+ ld [wcd2f], a
+ ld a, [wcd2e]
+ sub [hl]
+ ld [wcd2e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ jr .asm_17daba
+; 17dadc
+
+Function17dadc: ; 17dadc
+ ld a, [wcd2e]
+ ld hl, wcd24
+ add [hl]
+ ld hl, wcd42
+ cp [hl]
+ jr z, .asm_17db0e
+ jr nc, .asm_17db0e
+ ld hl, wcd31
+ ld a, [wcd2b]
+ cp [hl]
+ jr z, .asm_17db11
+ call Function17e566
+ ld a, [wcd31]
+ inc a
+ ld [wcd31], a
+ ld hl, wcd24
+ ld a, [wcd2e]
+ add [hl]
+ ld [wcd2e], a
+ call Function17e55b
+ call Function17e5af
+
+.asm_17db0e
+ jp Function17e415
+
+.asm_17db11
+ ld hl, wcd24
+ ld a, [wcd2f]
+ add [hl]
+ ld [wcd2f], a
+ ld a, [wcd2e]
+ add [hl]
+ ld [wcd2e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ jr .asm_17db0e
+; 17db2d
+
+Function17db2d: ; 17db2d
+ ld a, [wcd30]
+ ld hl, wcd24
+ cp [hl]
+ jr z, .asm_17db53
+ ld hl, wcd42
+ ld a, [wcd2e]
+ inc a
+ cp [hl]
+ jr z, .asm_17db53
+ ld [wcd2e], a
+ call Function17e566
+ ld a, [wcd30]
+ inc a
+ ld [wcd30], a
+ call Function17e55b
+ call Function17e5af
+
+.asm_17db53
+ jp Function17e415
+; 17db56
+
+Function17db56: ; 17db56
+ ld a, [wcd30]
+ cp $1
+ jr z, .asm_17db74
+ call Function17e566
+ ld a, [wcd30]
+ dec a
+ ld [wcd30], a
+ ld a, [wcd2e]
+ dec a
+ ld [wcd2e], a
+ call Function17e55b
+ call Function17e5af
+
+.asm_17db74
+ jp Function17e415
+; 17db77
+
+Function17db77: ; 17db77
+ ld hl, wcd2d
+ ld a, [wcd2f]
+ add [hl]
+ ld hl, wcd42
+ cp [hl]
+ jr z, .asm_17dbae
+ jr nc, .asm_17dbae
+ call Function17e566
+ ld hl, wcd2d
+ ld a, [wcd2f]
+ add [hl]
+ ld [wcd2f], a
+ ld a, [wcd2e]
+ add [hl]
+ ld hl, wcd42
+ cp [hl]
+ jr c, .asm_17db9f
+ ld a, [hl]
+ dec a
+
+.asm_17db9f
+ ld [wcd2e], a
+ call Function17dbb1
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+
+.asm_17dbae
+ jp Function17e415
+; 17dbb1
+
+Function17dbb1: ; 17dbb1
+ ld hl, wcd2f
+ ld a, [wcd42]
+ sub [hl]
+ ld hl, wcd2d
+ cp [hl]
+ ret nc
+ ld a, $1
+ ld [wcd30], a
+ ld [wcd31], a
+ ld a, [wcd24]
+ ld c, a
+ ld a, [wcd24]
+ ld b, a
+ ld a, [wcd2e]
+ ld hl, wcd2f
+ sub [hl]
+.asm_17dbd4
+ and a
+ ret z
+ push af
+ ld hl, wcd30
+ ld a, b
+ cp [hl]
+ jr nz, .asm_17dbe4
+ ld a, $1
+ ld [hl], a
+ ld hl, wcd31
+
+.asm_17dbe4
+ inc [hl]
+ pop af
+ dec a
+ jr .asm_17dbd4
+; 17dbe9
+
+Function17dbe9: ; 17dbe9
+ ld hl, wcd2d
+ ld a, [wcd2f]
+ sub [hl]
+ bit 7, a
+ jr z, .asm_17dbf5
+ xor a
+
+.asm_17dbf5
+ ld [wcd2f], a
+ ld a, [wcd30]
+ dec a
+ ld c, a
+ ld a, [wcd31]
+ ld b, a
+ xor a
+ ld hl, wcd24
+.asm_17dc05
+ dec b
+ jr z, .asm_17dc0b
+ add [hl]
+ jr .asm_17dc05
+
+.asm_17dc0b
+ add c
+ ld hl, wcd2f
+ add [hl]
+ ld [wcd2e], a
+ call Function17e451
+ call Function17e55b
+ call Function17e5af
+ jp Function17e415
+; 17dc1f
+
+Function17dc1f: ; 17dc1f
+ call Function17e415
+ ld de, $c688
+ ld bc, $6
+ call CopyBytes
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c688
+ ld a, $40
+ ld [$c708], a
+ ld a, [hli]
+ ld [$c70a], a
+ add $5
+ ld [$c70c], a
+ ld a, [hli]
+ ld [$c709], a
+ add $4
+ ld [$c70b], a
+ ld a, $96
+ ld [$c70d], a
+ ld a, $5c
+ ld [$c70e], a
+ ld a, $1
+ ld [$c70f], a
+ ld hl, $c708
+ call LoadMenuDataHeader
+ call VerticalMenu
+ jr nc, .asm_17dc6e
+ ld a, $2
+ ld [wMenuCursorY], a
+
+.asm_17dc6e
+ call CloseWindow
+ pop af
+ ld [rSVBK], a
+ ld a, [wMenuCursorY]
+ cp $1
+ jr nz, .asm_17dc85
+ ld a, [$c68a]
+ ld l, a
+ ld a, [$c68a + 1]
+ ld h, a
+ jr .asm_17dc8d
+
+.asm_17dc85
+ ld a, [$c68a + 2]
+ ld l, a
+ ld a, [$c68a + 3]
+ ld h, a
+
+.asm_17dc8d
+ push hl
+ call Function17e349
+ pop hl
+ call Function17e40f
+ ret
+; 17dc96
+
+MenuData2_17dc96:
+ db $e0 ; flags
+ db 2
+ db "はい@"
+ db "いいえ@"
+; 17dc9f
+
+Function17dc9f: ; 17dc9f
+ call Function17e415
+ call Function17e41e
+ call RotateFourPalettesLeft
+ ret
+; 17dca9
+
+Function17dca9: ; 17dca9
+ call Function17e415
+ call Function17e41e
+
+Function17dcaf:
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, UnknBGPals
+ ld de, $8
+ ld c, $8
+.asm_17dcbb
+ push hl
+ ld a, $ff
+ ld [hli], a
+ ld a, $7f
+ ld [hl], a
+ pop hl
+ add hl, de
+ dec c
+ jr nz, .asm_17dcbb
+ call RotateThreePalettesRight
+ ld a, $4
+ ld [rSVBK], a
+ ret
+; 17dccf
+
+Function17dccf: ; 17dccf
+ call Function17e415
+ push hl
+ ld a, [wcd4b]
+ ld l, a
+ ld a, [wcd4c]
+ ld h, a
+ ld a, [wcd2e]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld b, a
+ call Function17e43d
+ call Function17e41e
+.asm_17dced
+ ld a, [wcd78]
+ ld l, a
+ ld a, [wcd79]
+ ld h, a
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_17dd0d
+.crash_loop
+ cp $31
+ jr nc, .crash_loop
+ call Function17d711
+ ld a, [wcd77]
+ bit 7, a
+ jr nz, .asm_17dd0d
+ and a
+ jr z, .asm_17dd11
+ jr .asm_17dced
+
+.asm_17dd0d
+ pop hl
+ jp Function17e41e
+
+.asm_17dd11
+ pop hl
+ ret
+; 17dd13
+
+Function17dd13: ; 17dd13
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ call Function17e41e
+ call Function17e447
+ push hl
+ hlcoord 0, 0
+ add hl, bc
+ push hl
+ pop bc
+ pop hl
+ call PlaceHLTextAtBC
+ ret
+; 17dd30
+
+Function17dd30: ; 17dd30
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld b, $0
+ ld a, [hli]
+ push af
+ call Function17e41e
+ pop af
+ hlcoord 0, 0
+ add hl, de
+ call Function17e600
+ ret
+; 17dd49
+
+Function17dd49: ; 17dd49
+ call Function17e415
+ ld de, $c708
+ ld bc, $a
+ call CopyBytes
+ ld a, [$c711]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .sram
+ ld a, [$c708]
+ ld [rSVBK], a
+ jr .got_bank
+
+.sram
+ ld a, [$c708]
+ call GetSRAMBank
+
+.got_bank
+ ld a, [$c709]
+ ld l, a
+ ld a, [$c70a]
+ ld h, a
+ ld de, $c688
+ ld a, [$c711]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .close_sram
+ ld a, $4
+ ld [rSVBK], a
+ jr .exited_bank
+
+.close_sram
+ call CloseSRAM
+
+.exited_bank
+ ld a, [$c711]
+ ld c, a
+ ld hl, $c712
+ ld de, $c688
+.loop
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr z, .next
+ jr c, .load
+ jr .load2
+
+.next
+ dec c
+ jr nz, .loop
+ ld a, [$c70d]
+ ld l, a
+ ld a, [$c70e]
+ ld h, a
+ jr .done
+
+.load2
+ ld a, [$c70f]
+ ld l, a
+ ld a, [$c710]
+ ld h, a
+ jr .done
+
+.load
+ ld a, [$c70b]
+ ld l, a
+ ld a, [$c70c]
+ ld h, a
+
+.done
+ call Function17e40f
+ ret
+; 17ddcd
+
+Function17ddcd: ; 17ddcd
+ call Function17e415
+ ld de, $c708
+ ld bc, $8
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17dde7
+ ld a, [$c708]
+ ld [rSVBK], a
+ jr .asm_17dded
+
+.asm_17dde7
+ ld a, [$c708]
+ call GetSRAMBank
+
+.asm_17dded
+ ld a, [$c709]
+ ld e, a
+ ld a, [$c70a]
+ ld d, a
+ ld a, [de]
+ ld [$c710], a
+ ld a, [$c70b]
+ ld c, a
+ ld b, $0
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17de0c
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17de0f
+
+.asm_17de0c
+ call CloseSRAM
+
+.asm_17de0f
+ push hl
+ ld hl, Unknown_17da8c
+ add hl, bc
+ ld a, [hl]
+ ld hl, $c710
+ and [hl]
+ pop hl
+ jr nz, .asm_17de26
+ ld a, [$c70e]
+ ld l, a
+ ld a, [$c70f]
+ ld h, a
+ jr .asm_17de2e
+
+.asm_17de26
+ ld a, [$c70c]
+ ld l, a
+ ld a, [$c70d]
+ ld h, a
+
+.asm_17de2e
+ call Function17e40f
+ ret
+; 17de32
+
+Function17de32: ; 17de32
+ call Function17e415
+ ld de, $c708
+ ld bc, $9
+ call CopyBytes
+ ld a, [$c710]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, $6
+ call GetSRAMBank
+ call Function17f4f6
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [$c710]
+ ld c, a
+ ld hl, $c711
+.asm_17de61
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr z, .asm_17de6b
+ jr c, .asm_17de82
+ jr .asm_17de78
+
+.asm_17de6b
+ dec c
+ jr nz, .asm_17de61
+ ld a, [$c70c]
+ ld l, a
+ ld a, [$c70d]
+ ld h, a
+ jr .asm_17de8a
+
+.asm_17de78
+ ld a, [$c70e]
+ ld l, a
+ ld a, [$c70f]
+ ld h, a
+ jr .asm_17de8a
+
+.asm_17de82
+ ld a, [$c70a]
+ ld l, a
+ ld a, [$c70b]
+ ld h, a
+
+.asm_17de8a
+ call CloseSRAM
+ call Function17e40f
+ ret
+; 17de91
+
+Function17de91: ; 17de91
+ call Function17e415
+ ld de, $c708
+ ld bc, $7
+ call CopyBytes
+ ld a, $6
+ call GetSRAMBank
+ call Function17f4f6
+ ld a, [$c708]
+ ld e, a
+ ld a, [$c709]
+ ld d, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld a, [$c70a]
+ ld c, a
+ ld b, $0
+ ld hl, Unknown_17da8c
+ add hl, bc
+ ld a, [hl]
+ ld l, e
+ ld h, d
+ and [hl]
+ jr nz, .asm_17deca
+ ld a, [$c70d]
+ ld l, a
+ ld a, [$c70e]
+ ld h, a
+ jr .asm_17ded2
+
+.asm_17deca
+ ld a, [$c70b]
+ ld l, a
+ ld a, [$c70c]
+ ld h, a
+
+.asm_17ded2
+ call CloseSRAM
+ call Function17e40f
+ ret
+; 17ded9
+
+Function17ded9: ; 17ded9
+ call Function17e415
+ ld de, $c708
+ ld bc, $1f
+ call CopyBytes
+ call Function17e32b
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [CurPartySpecies], a
+ ld [TempEnemyMonSpecies], a
+ ld a, [hli]
+ ld [CurPartyLevel], a
+ ld a, [hli]
+ ld b, a
+ ld a, [PartyCount]
+ cp $6
+ jp nc, Function17e026
+ xor a
+ ld [MonType], a
+ push hl
+ push bc
+ predef TryAddMonToParty
+ callba SetCaughtData
+ pop bc
+ pop hl
+ bit 1, b
+ jr z, .asm_17df33
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonNicknames
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ pop bc
+ jr .asm_17df37
+
+.asm_17df33
+ ld de, $6
+ add hl, de
+
+.asm_17df37
+ bit 2, b
+ jr z, .asm_17df5a
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMonOT
+ call SkipNames
+ ld d, h
+ ld e, l
+ pop hl
+ call CopyBytes
+ ld a, [hli]
+ ld b, a
+ push hl
+ callba SetGiftPartyMonCaughtData
+ pop hl
+ pop bc
+ jr .asm_17df5e
+
+.asm_17df5a
+ ld de, $7
+ add hl, de
+
+.asm_17df5e
+ bit 3, b
+ jr z, .asm_17df79
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1ID
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17df7b
+
+.asm_17df79
+ inc hl
+ inc hl
+
+.asm_17df7b
+ bit 4, b
+ jr z, .asm_17dfd0
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1DVs
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld a, [hl]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1MaxHP
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ push hl
+ ld b, $0
+ callba CalcPkmnStats
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1HP
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ pop hl
+ pop bc
+ jr .asm_17dfd2
+
+.asm_17dfd0
+ inc hl
+ inc hl
+
+.asm_17dfd2
+ bit 5, b
+ jr z, .asm_17dfea
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Item
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17dfeb
+
+.asm_17dfea
+ inc hl
+
+.asm_17dfeb
+ bit 6, b
+ jr z, .asm_17e01f
+ push bc
+ push hl
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1Moves
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ push de
+ ld bc, $4
+ call CopyBytes
+ pop de
+ push hl
+ push de
+ ld a, [PartyCount]
+ dec a
+ ld hl, PartyMon1PP
+ call GetPartyLocation
+ ld d, h
+ ld e, l
+ pop hl
+ predef FillPP
+ pop hl
+ pop bc
+ jp asm_17e0ee
+
+.asm_17e01f
+ ld de, $4
+ add hl, de
+ jp asm_17e0ee
+; 17e026
+
+Function17e026: ; 17e026
+ ld a, BANK(sBoxCount)
+ call GetSRAMBank
+ ld a, [sBoxCount]
+ call CloseSRAM
+ cp $14
+ jp nc, .asm_17e0ea
+ bit 0, b
+ jp z, .asm_17e0ea
+ push bc
+ push hl
+ callba LoadEnemyMon
+ callba SentPkmnIntoBox
+ callba SetBoxMonCaughtData
+ pop hl
+ pop bc
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+ bit 1, b
+ jr z, .asm_17e067
+ push bc
+ ld bc, $b
+ ld de, sBoxMonNicknames
+ call CopyBytes
+ pop bc
+ jr .asm_17e06b
+
+.asm_17e067
+ ld de, $6
+ add hl, de
+
+.asm_17e06b
+ bit 2, b
+ jr z, .asm_17e08e
+ push bc
+ ld bc, $6
+ ld de, sBoxMonOT
+ call CopyBytes
+ ld a, [hli]
+ ld b, a
+ push hl
+ call CloseSRAM
+ callba SetGiftBoxMonCaughtData
+ ld a, $1
+ call GetSRAMBank
+ pop hl
+ pop bc
+ jr .asm_17e092
+
+.asm_17e08e
+ ld de, $7
+ add hl, de
+
+.asm_17e092
+ bit 3, b
+ jr z, .asm_17e0a2
+ push bc
+ ld de, sBoxMon1ID
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17e0a4
+
+.asm_17e0a2
+ inc hl
+ inc hl
+
+.asm_17e0a4
+ bit 4, b
+ jr z, .asm_17e0b4
+ push bc
+ ld de, sBoxMon1DVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ pop bc
+ jr .asm_17e0b6
+
+.asm_17e0b4
+ inc hl
+ inc hl
+
+.asm_17e0b6
+ bit 5, b
+ ld a, [hli]
+ jr z, .asm_17e0be
+ ld [sBoxMon1Item], a
+
+.asm_17e0be
+ bit 6, b
+ jr z, .asm_17e0e1
+ push bc
+ ld de, sBoxMon1Moves
+ ld bc, $4
+ call CopyBytes
+ push hl
+ ld hl, sBoxMon1Moves
+ ld de, sBoxMon1PP
+ predef FillPP
+ call CloseSRAM
+ pop hl
+ pop bc
+ inc hl
+ inc hl
+ jr asm_17e0ee
+
+.asm_17e0e1
+ call CloseSRAM
+ ld de, $6
+ add hl, de
+ jr asm_17e0ee
+
+.asm_17e0ea
+ ld bc, $1a
+ add hl, bc
+
+asm_17e0ee
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld [rSVBK], a
+ push hl
+ call Function17e349
+ pop hl
+ call Function17e40f
+ ret
+; 17e0fd
+
+Function17e0fd: ; 17e0fd
+ call Function17e415
+ ld de, $c708
+ ld bc, $6
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [CurItem], a
+ ld a, [hli]
+ ld [wItemQuantityChangeBuffer], a
+ push hl
+ ld hl, NumItems
+ call ReceiveItem
+ pop hl
+ jr c, .asm_17e127
+ inc hl
+ inc hl
+
+.asm_17e127
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld h, a
+ ld l, b
+ pop af
+ ld [rSVBK], a
+ call Function17e40f
+ ret
+; 17e133
+
+Function17e133: ; 17e133
+ call Function17e415
+ ld de, $c708
+ ld bc, $5
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [ScriptVar], a
+ push hl
+ callba MobileCheckOwnMonAnywhere
+ pop hl
+ jr c, .asm_17e159
+ inc hl
+ inc hl
+
+.asm_17e159
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld h, a
+ ld l, b
+ pop af
+ ld [rSVBK], a
+ call Function17e40f
+ ret
+; 17e165
+
+Function17e165: ; 17e165
+ call Function17e415
+ ld de, $c708
+ ld bc, $5
+ call CopyBytes
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, $c708
+ ld a, [hli]
+ ld [CurItem], a
+ push hl
+ ld hl, NumItems
+ call CheckItem
+ pop hl
+ jr c, .asm_17e195
+ push hl
+ ld hl, PCItems
+ call CheckItem
+ pop hl
+ jr c, .asm_17e195
+ inc hl
+ inc hl
+
+.asm_17e195
+ ld a, [hli]
+ ld b, a
+ ld a, [hl]
+ ld h, a
+ ld l, b
+ pop af
+ ld [rSVBK], a
+ call Function17e40f
+ ret
+; 17e1a1
+
+Function17e1a1: ; 17e1a1
+ call Function17e415
+ ld de, $c708
+ ld bc, $d
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17e1bb
+ ld a, [$c708]
+ ld [rSVBK], a
+ jr .asm_17e1c1
+
+.asm_17e1bb
+ ld a, [$c708]
+ call GetSRAMBank
+
+.asm_17e1c1
+ ld a, [$c709]
+ ld l, a
+ ld a, [$c70a]
+ ld h, a
+ ld de, $c608
+ ld a, [$c70b]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70a]
+ cp $c0
+ jr c, .asm_17e1e2
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17e1e5
+
+.asm_17e1e2
+ call CloseSRAM
+
+.asm_17e1e5
+ ld a, [$c70e]
+ cp $c0
+ jr c, .asm_17e1f3
+ ld a, [$c70c]
+ ld [rSVBK], a
+ jr .asm_17e1f9
+
+.asm_17e1f3
+ ld a, [$c70c]
+ call GetSRAMBank
+
+.asm_17e1f9
+ ld a, [$c70d]
+ ld l, a
+ ld a, [$c70e]
+ ld h, a
+ ld de, $c688
+ ld a, [$c70b]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [$c70e]
+ cp $c0
+ jr c, .asm_17e21a
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17e21d
+
+.asm_17e21a
+ call CloseSRAM
+
+.asm_17e21d
+ ld a, [$c70b]
+ ld c, a
+ ld hl, $c688
+ ld de, $c608
+.asm_17e227
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr z, .asm_17e231
+ jr c, .asm_17e23e
+ jr .asm_17e248
+
+.asm_17e231
+ dec c
+ jr nz, .asm_17e227
+ ld a, [$c711]
+ ld l, a
+ ld a, [$c712]
+ ld h, a
+ jr .asm_17e250
+
+.asm_17e23e
+ ld a, [$c70f]
+ ld l, a
+ ld a, [$c710]
+ ld h, a
+ jr .asm_17e250
+
+.asm_17e248
+ ld a, [$c712 + 1]
+ ld l, a
+ ld a, [$c712 + 2]
+ ld h, a
+
+.asm_17e250
+ call Function17e40f
+ ret
+; 17e254
+
+Function17e254: ; 17e254
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [de], a
+ call Function17e41e
+ ret
+; 17e261
+
+Function17e261: ; 17e261
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ inc hl
+ call Function17e41e
+ ret
+; 17e270
+
+Function17e270: ; 17e270
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [de]
+ sub [hl]
+ ld [de], a
+ inc hl
+ call Function17e41e
+ ret
+; 17e27f
+
+Function17e27f: ; 17e27f
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ ld l, c
+ ld h, b
+ ld a, [de]
+ add [hl]
+ ld [de], a
+ ret
+; 17e293
+
+Function17e293: ; 17e293
+ call Function17e415
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ call Function17e41e
+ ld l, c
+ ld h, b
+ ld a, [de]
+ sub [hl]
+ ld [de], a
+ ret
+; 17e2a7
+
+Function17e2a7: ; 17e2a7
+ call Function17e415
+ call Function17e41e
+ call Function17e32b
+ xor a
+ ld [wcf66], a
+ callba Function118233
+ ld de, GFX_17eb7e
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(GFX_17eb7e), 1
+ call Get2bpp
+ ld a, [wc300]
+ and a
+ jr z, .asm_17e2d8
+ cp $a
+ jr z, .asm_17e2f7
+ cp $b
+ jr z, .asm_17e300
+ call Function17e309
+ ret
+
+.asm_17e2d8
+ call Function17d60b
+ call Function17e349
+ xor a
+ ld [wcd7a], a
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $aa73
+ ld de, $aa7f
+ ld bc, $c
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.asm_17e2f7
+ call Function17e349
+ ld a, $1
+ ld [wcd7a], a
+ ret
+
+.asm_17e300
+ call Function17e349
+ ld a, $2
+ ld [wcd7a], a
+ ret
+; 17e309
+
+Function17e309: ; 17e309
+ ld a, $2
+ ld [wc303], a
+ call Function17dcaf
+ call ClearScreen
+ call Function17e349
+ call Function17d5f6
+ callba DisplayMobileError
+ call Function17e349
+ call Function17dcaf
+ xor a
+ ld [wcd77], a
+ ret
+; 17e32b
+
+Function17e32b: ; 17e32b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c608
+ ld de, $b0b1
+ ld bc, $40
+ call CopyBytes
+ ld hl, BGMapBuffer
+ ld bc, $5b
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17e349
+
+Function17e349: ; 17e349
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b0b1
+ ld de, $c608
+ ld bc, $40
+ call CopyBytes
+ ld de, BGMapBuffer
+ ld bc, $5b
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17e367
+
+Function17e367: ; 17e367
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveGameData_
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e37e
+
+Function17e37e: ; 17e37e
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveAfterLinkTrade
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e395
+
+Function17e395: ; 17e395
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveBox
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e3ac
+
+Function17e3ac: ; 17e3ac
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba SaveChecksum
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e3c3
+
+Function17e3c3: ; 17e3c3
+ call Function17e415
+ call Function17e41e
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ callba UpdateTrainerRankingsChecksum2
+ callba BackupMobileEventIndex
+ pop af
+ ld [rSVBK], a
+ ret
+; 17e3e0
+
+Function17e3e0: ; 17e3e0
+ call Function17e415
+ ld a, [hli]
+ ld c, a
+ call Function17e41e
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrames
+ ret
+; 17e3f0
+
+Function17e3f0: ; 17e3f0
+ call Function17e415
+ call Function17e41e
+.asm_17e3f6
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ ret nz
+ ld a, [hl]
+ and $2
+ ret nz
+ call WaitBGMap
+ jr .asm_17e3f6
+; 17e409
+
+Function17e409: ; 17e409
+ ld hl, wcd77
+ set 7, [hl]
+ ret
+; 17e40f
+
+Function17e40f: ; 17e40f
+ ld de, UnknBGPals
+ add hl, de
+ jr Function17e41e
+
+Function17e415:
+ ld a, [wcd78]
+ ld l, a
+ ld a, [wcd79]
+ ld h, a
+ inc hl
+
+Function17e41e:
+ ld a, l
+ ld [wcd78], a
+ ld a, h
+ ld [wcd79], a
+ ret
+; 17e427
+
+Function17e427: ; 17e427
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ jr nz, .asm_17e432
+ and $2
+ ret z
+
+.asm_17e432
+ ld a, $3
+ ld [wcd77], a
+ ret
+; 17e438
+
+Function17e438: ; 17e438
+ ld hl, wcd77
+ inc [hl]
+ ret
+; 17e43d
+
+Function17e43d: ; 17e43d
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, bc
+ ret
+; 17e447
+
+Function17e447: ; 17e447
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, de
+ ret
+; 17e451
+
+Function17e451: ; 17e451
+ ld a, [wcd42]
+ and a
+ ret z
+ call Function17e51b
+ call Function17e4dd
+ ld a, [wcd2e]
+ push af
+ ld a, [wcd49]
+ ld l, a
+ ld a, [wcd4a]
+ ld h, a
+ ld a, [wcd2f]
+ ld [wcd2e], a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ push hl
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [wcd23]
+ call AddNTimes
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ ld a, [wMobileCommsJumptableIndex]
+.asm_17e48b
+ push af
+ push hl
+ ld a, [wcd24]
+.asm_17e490
+ push af
+ push hl
+ ld a, [bc]
+ inc bc
+ ld e, a
+ ld a, [bc]
+ inc bc
+ ld d, a
+ push bc
+ push hl
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, de
+ push hl
+ pop de
+ pop hl
+ call PlaceString
+ pop bc
+ pop hl
+ ld a, [wcd26]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [wcd2e]
+ inc a
+ ld [wcd2e], a
+ ld e, a
+ ld a, [wcd42]
+ cp e
+ jr z, .asm_17e4d5
+ pop af
+ dec a
+ jr nz, .asm_17e490
+ pop hl
+ ld a, [wcd27]
+ ld de, $14
+.asm_17e4cb
+ add hl, de
+ dec a
+ jr nz, .asm_17e4cb
+ pop af
+ dec a
+ jr nz, .asm_17e48b
+ jr .asm_17e4d8
+
+.asm_17e4d5
+ pop af
+ pop hl
+ pop af
+
+.asm_17e4d8
+ pop af
+ ld [wcd2e], a
+ ret
+; 17e4dd
+
+Function17e4dd: ; 17e4dd
+ ld a, [wcd2c]
+ and $1
+ ret z
+ ld a, [wcd29]
+ hlcoord 0, 0
+ ld bc, $14
+ call AddNTimes
+ ld a, [wcd28]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [wcd2f]
+ and a
+ jr z, .asm_17e4ff
+ ld a, $61
+ ld [hl], a
+
+.asm_17e4ff
+ ld a, [wcd2a]
+ ld bc, $14
+ call AddNTimes
+ ld a, [wcd42]
+ ld c, a
+ ld a, [wcd2e]
+ ld b, a
+ ld a, [wcd24]
+ add b
+ cp c
+ ret z
+ ret nc
+ ld a, $ee
+ ld [hl], a
+ ret
+; 17e51b
+
+Function17e51b: ; 17e51b
+ ld a, [wcd28]
+ ld hl, CreditsTimer
+ sub [hl]
+ inc a
+ ld [wcd4f], a
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [wcd23]
+ dec a
+ call AddNTimes
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [wMobileCommsJumptableIndex]
+ ld c, a
+ ld a, [wcd27]
+ call SimpleMultiply
+.asm_17e544
+ push af
+ push hl
+ ld a, [wcd4f]
+ ld c, a
+ ld b, $0
+ ld a, $7f
+ call ByteFill
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_17e544
+ ret
+; 17e55b
+
+Function17e55b: ; 17e55b
+ ld a, [wcd42]
+ and a
+ ret z
+ ld a, $ed
+ call Function17e571
+ ret
+; 17e566
+
+Function17e566: ; 17e566
+ ld a, [wcd42]
+ and a
+ ret z
+ ld a, $7f
+ call Function17e571
+ ret
+; 17e571
+
+Function17e571: ; 17e571
+ push af
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [wcd23]
+ call AddNTimes
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ dec hl
+ push hl
+ ld a, [wcd31]
+ dec a
+ ld c, a
+ ld a, [wcd27]
+ call SimpleMultiply
+ ld l, $0
+ ld h, l
+ ld bc, $14
+ call AddNTimes
+ ld a, [wcd30]
+ dec a
+ ld c, a
+ ld a, [wcd26]
+ call SimpleMultiply
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ add hl, bc
+ pop af
+ ld [hl], a
+ ret
+; 17e5af
+
+Function17e5af: ; 17e5af
+ ld a, [wcd2c]
+ and $2
+ ret z
+ ld a, [wcd43]
+ ld l, a
+ ld a, [wMobileInactivityTimerMinutes]
+ ld h, a
+ bccoord 0, 0
+ add hl, bc
+ ld bc, $ffec
+ add hl, bc
+ ld a, [wMobileInactivityTimerSeconds]
+ ld c, a
+ ld b, $0
+ ld a, [wMobileInactivityTimerFrames]
+ call Function17e600
+ ld a, [wcd2e]
+ ld c, a
+ ld b, $0
+ ld a, [wcd4d]
+ ld l, a
+ ld a, [wcd4e]
+ ld h, a
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [BGMapBuffer]
+ ld l, a
+ ld a, [wcd21]
+ ld h, a
+ add hl, de
+ push hl
+ pop de
+ ld a, [wcd43]
+ ld l, a
+ ld a, [wMobileInactivityTimerMinutes]
+ ld h, a
+ bccoord 0, 0
+ add hl, bc
+ call PlaceString
+ ret
+; 17e600
+
+Function17e600: ; 17e600
+.asm_17e600
+ push af
+ push hl
+ push bc
+ ld a, $7f
+ call ByteFill
+ pop bc
+ pop hl
+ ld de, $14
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_17e600
+ ret
+; 17e613
+
+Function17e613: ; 17e613
+ push hl
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.asm_17e620
+ jr z, .asm_17e626
+ add hl, bc
+ dec a
+ jr .asm_17e620
+
+.asm_17e626
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ push hl
+ ld a, [wcd53]
+ ld [hli], a
+ ld a, [de]
+ inc de
+ dec a
+ dec a
+ jr z, .asm_17e63f
+ ld c, a
+ ld a, [wcd53]
+ inc a
+.asm_17e63b
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e63b
+
+.asm_17e63f
+ ld a, [wcd53]
+ add $2
+ ld [hl], a
+ pop hl
+ ld bc, $14
+ add hl, bc
+ ld a, [de]
+ dec de
+ dec a
+ dec a
+ jr z, .asm_17e674
+ ld b, a
+.asm_17e651
+ push hl
+ ld a, [wcd53]
+ add $3
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .asm_17e664
+ ld c, a
+ ld a, $7f
+.asm_17e660
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e660
+
+.asm_17e664
+ ld a, [wcd53]
+ add $4
+ ld [hl], a
+ pop hl
+ push bc
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_17e651
+
+.asm_17e674
+ ld a, [wcd53]
+ add $5
+ ld [hli], a
+ ld a, [de]
+ dec a
+ dec a
+ jr z, .asm_17e689
+ ld c, a
+ ld a, [wcd53]
+ add $6
+.asm_17e685
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e685
+
+.asm_17e689
+ ld a, [wcd53]
+ add $7
+ ld [hl], a
+ pop hl
+ ret
+; 17e691
+
+Function17e691: ; 17e691
+ push hl
+ ld hl, NULL
+ ld bc, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ inc de
+ and a
+.asm_17e69f
+ jr z, .asm_17e6a5
+ add hl, bc
+ dec a
+ jr .asm_17e69f
+
+.asm_17e6a5
+ pop af
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ dec de
+.asm_17e6ac
+ push af
+ push hl
+ ld a, [de]
+.asm_17e6af
+ push af
+ push hl
+ push hl
+ bccoord 0, 0
+ add hl, bc
+ ld a, [hl]
+ cp $7f
+ jr z, .asm_17e6c2
+ ld a, [wcd53]
+ add $8
+ jr .asm_17e6c7
+
+.asm_17e6c2
+ ld a, [wcd53]
+ jr .asm_17e6c7
+
+.asm_17e6c7
+ pop hl
+ bccoord 0, 0, AttrMap
+ add hl, bc
+ ld [hl], a
+ pop hl
+ inc hl
+ pop af
+ dec a
+ jr nz, .asm_17e6af
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop af
+ dec a
+ jr nz, .asm_17e6ac
+ pop hl
+ ret
+; 17e6de
+
+Function17e6de: ; 17e6de
+ push af
+ ld a, [$c708]
+ ld l, a
+ ld a, [$c709]
+ ld h, a
+ decoord 0, 0, AttrMap
+ add hl, de
+ pop af
+ ld b, $7
+.asm_17e6ee
+ push hl
+ ld c, $7
+.asm_17e6f1
+ ld [hli], a
+ dec c
+ jr nz, .asm_17e6f1
+ pop hl
+ ld de, $14
+ add hl, de
+ dec b
+ jr nz, .asm_17e6ee
+ ret
+; 17e6fe
+
+
+PokemonNewsGFX: ; 17e6fe
+INCBIN "gfx/mobile/pokemon_news.2bpp"
+
+GFX_17eb7e:
+INCBIN "gfx/unknown/17eb7e.2bpp"
+
+TileAttrmap_17eb8e:
+INCBIN "gfx/unknown/17eb8e.attrmap"
+
+Palette_17eff6:
+ RGB 24, 9, 8
+ RGB 4, 9, 18
+ RGB 18, 18, 12
+ RGB 0, 0, 0
+ RGB 24, 24, 18
+ RGB 18, 18, 12
+ RGB 4, 9, 18
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 23, 11, 10
+ RGB 13, 6, 5
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 15, 25, 5
+ RGB 10, 20, 0
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 20, 28, 20
+ RGB 10, 18, 15
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 22, 22, 12
+ RGB 17, 12, 5
+ RGB 0, 0, 0
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+ RGB 31, 31, 31
+ RGB 27, 24, 0
+ RGB 24, 16, 3
+ RGB 0, 0, 0
+
+
+Function17f036:: ; 17f036
+ ld a, $6
+ call GetSRAMBank
+ inc de
+.asm_17f03c
+ call Function17f047
+ jr c, .asm_17f043
+ jr .asm_17f03c
+
+.asm_17f043
+ call CloseSRAM
+ ret
+; 17f047
+
+Function17f047: ; 17f047
+ ld a, [de]
+ inc de
+ cp $50
+ jr z, .finished
+ cp $10
+ jr nc, .finished
+ dec a
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp hl
+
+.finished
+ scf
+ ret
+; 17f061
+
+.Jumptable: ; 17f061
+ dw Function17f081 ; 0
+ dw Function17f0f8 ; 1
+ dw Function17f154 ; 2
+ dw Function17f181 ; 3
+ dw Function17f1d0 ; 4
+ dw Function17f220 ; 5
+ dw Function17f27b ; 6
+ dw Function17f2cb ; 7
+ dw Function17f2ff ; 8
+ dw Function17f334 ; 9
+ dw Function17f382 ; a
+ dw Function17f3c9 ; b
+ dw Function17f3f0 ; c
+ dw Function17f41d ; d
+ dw Function17f44f ; e
+ dw Function17f44f ; f
+; 17f081
+
+Function17f081: ; 17f081
+ pop hl
+ call Function17f524
+ jr c, .asm_17f09f
+ ld de, 4
+ add hl, de
+ ld a, [hli]
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f09d
+ and a
+ ret
+
+.asm_17f09d
+ scf
+ ret
+
+.asm_17f09f
+ push bc
+ ld de, wcd54
+ ld bc, 7
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ pop bc
+ ld a, [wcd54]
+ ld e, a
+ ld a, [wcd55]
+ ld d, a
+ add hl, de
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ push hl
+ ld a, [wcd56]
+ ld b, a
+ ld a, [wcd57]
+ ld c, a
+ call MobilePrintNum
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ ld a, [wcd59]
+ and a
+ jr z, .asm_17f0ee
+ ld c, a
+ ld a, [wcd57]
+ inc a
+ ld b, a
+ ld e, l
+ ld d, h
+ dec de
+.asm_17f0e0
+ ld a, c
+ cp b
+ jr z, .asm_17f0ea
+ ld a, [de]
+ dec de
+ ld [hld], a
+ dec b
+ jr .asm_17f0e0
+
+.asm_17f0ea
+ ld a, [wcd5a]
+ ld [hl], a
+
+.asm_17f0ee
+ pop hl
+ ld a, [wcd58]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f0f8
+
+Function17f0f8: ; 17f0f8
+ pop hl
+ call Function17f524
+ jr c, .asm_17f114
+ ld de, $3
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f112
+ and a
+ ret
+
+.asm_17f112
+ scf
+ ret
+
+.asm_17f114
+ push bc
+ ld de, wcd54
+ ld bc, $4
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ ld a, [wcd54]
+ ld e, a
+ ld a, [wcd55]
+ ld d, a
+ add hl, de
+ ld de, $c608
+ ld a, [wcd56]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd57]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f154
+
+Function17f154: ; 17f154
+ pop hl
+ call Function17f524
+ jr c, .asm_17f167
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f165
+ and a
+ ret
+
+.asm_17f165
+ scf
+ ret
+
+.asm_17f167
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld c, l
+ ld b, h
+ pop de
+ callba Function11c08f
+ ld c, l
+ ld b, h
+ pop de
+ and a
+ ret
+; 17f181
+
+Function17f181: ; 17f181
+ pop hl
+ call Function17f524
+ jr c, .asm_17f19d
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f19b
+ and a
+ ret
+
+.asm_17f19b
+ scf
+ ret
+
+.asm_17f19d
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld c, a
+ ld de, $c608
+ callba Function48c63
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f1d0
+
+Function17f1d0: ; 17f1d0
+ pop hl
+ call Function17f524
+ jr c, .asm_17f1ec
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f1ea
+ and a
+ ret
+
+.asm_17f1ea
+ scf
+ ret
+
+.asm_17f1ec
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld a, $1
+ ld [rSVBK], a
+ ld [wd265], a
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, $4
+ ld [rSVBK], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f220
+
+Function17f220: ; 17f220
+ pop hl
+ call Function17f524
+ jr c, .asm_17f23c
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f23a
+ and a
+ ret
+
+.asm_17f23a
+ scf
+ ret
+
+.asm_17f23c
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, .Genders
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f26e
+
+.Genders: dw .Boy, .Girl
+.Boy: db "Boy@"
+.Girl: db "Girl@"
+
+Function17f27b: ; 17f27b
+ pop hl
+ call Function17f524
+ jr c, .asm_17f297
+ ld de, $2
+ add hl, de
+ ld a, [hli]
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f295
+ and a
+ ret
+
+.asm_17f295
+ scf
+ ret
+
+.asm_17f297
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ call Function17f4f6
+ add hl, de
+ ld a, [hl]
+ ld a, $1
+ ld [rSVBK], a
+ ld [wd265], a
+ call GetItemName
+ pop hl
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, $4
+ ld [rSVBK], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f2cb
+
+Function17f2cb: ; 17f2cb
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd54], a
+ ld a, [hli]
+ ld [wcd55], a
+ ld a, [wcd2e]
+ inc a
+ ld [wcd56], a
+ pop bc
+ push hl
+ ld l, c
+ ld h, b
+ push hl
+ ld de, wcd56
+ ld b, $1
+ ld a, [wcd54]
+ ld c, a
+ call MobilePrintNum
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ pop hl
+ ld a, [wcd55]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f2ff
+
+Function17f2ff: ; 17f2ff
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, PlayerName
+ ld de, $c608
+ ld bc, $6
+ call CopyBytes
+ ld a, $4
+ ld [rSVBK], a
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f334
+
+Function17f334: ; 17f334
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd55], a
+ and $f
+ ld [wcd54], a
+ pop bc
+ push hl
+ ld l, c
+ ld h, b
+ push hl
+ ld a, [wcd55]
+ bit 7, a
+ jr nz, .asm_17f355
+ ld a, BANK(sCrystalData)
+ call GetSRAMBank
+ ld a, [sCrystalData + 2]
+ jr .asm_17f35d
+
+.asm_17f355
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2f3]
+
+.asm_17f35d
+ ld c, a
+ call CloseSRAM
+ ld de, $c608
+ callba Function48c63
+ pop hl
+ ld de, $c608
+ call PlaceString
+ ld a, c
+ ld [wcd52], a
+ ld a, b
+ ld [wcd53], a
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f382
+
+Function17f382: ; 17f382
+ pop hl
+ push bc
+ ld a, [hli]
+ ld [wcd55], a
+ and $f
+ ld [wcd54], a
+ pop bc
+ push hl
+ push bc
+ ld l, c
+ ld h, b
+ ld a, [wcd55]
+ bit 7, a
+ jr nz, .asm_17f3a3
+ ld a, BANK(sCrystalData)
+ call GetSRAMBank
+ ld de, sCrystalData + 3
+ jr .asm_17f3ab
+
+.asm_17f3a3
+ ld a, $5
+ call GetSRAMBank
+ ld de, $b2f4
+
+.asm_17f3ab
+ ld a, PRINTNUM_LEADINGZEROS | 2
+ ld b, a
+ ld a, 3
+ ld c, a
+ call PrintNum
+ call CloseSRAM
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ pop hl
+ ld a, [wcd54]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f3c9
+
+Function17f3c9: ; 17f3c9
+ push bc
+ ld hl, wcd36
+ ld de, $c708
+ ld bc, 12
+ call CopyBytes
+ pop de
+ ld c, $0
+ callba Function11c075
+ push hl
+ ld hl, $c708
+ ld de, wcd36
+ ld bc, $c
+ call CopyBytes
+ pop bc
+ pop de
+ and a
+ ret
+; 17f3f0
+
+Function17f3f0: ; 17f3f0
+ pop hl
+ push hl
+ ld a, [hli]
+ push af
+ push bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [de]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld hl, UnknBGPals
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+ call PlaceString
+ pop af
+ ld e, a
+ ld d, $0
+ pop hl
+ add hl, de
+ add hl, de
+ inc hl
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ scf
+ ret
+; 17f41d
+
+Function17f41d: ; 17f41d
+ pop hl
+ ld a, [hli]
+ push hl
+ push af
+ ld l, c
+ ld h, b
+ ld bc, -TileMap + $10000
+ add hl, bc
+ ld de, -SCREEN_WIDTH
+ ld c, $1
+.asm_17f42c
+ ld a, h
+ and a
+ jr nz, .asm_17f435
+ ld a, l
+ cp SCREEN_WIDTH
+ jr c, .asm_17f439
+
+.asm_17f435
+ add hl, de
+ inc c
+ jr .asm_17f42c
+
+.asm_17f439
+ hlcoord 0, 0
+ ld de, SCREEN_WIDTH
+ ld a, c
+.asm_17f440
+ and a
+ jr z, .asm_17f447
+ add hl, de
+ dec a
+ jr .asm_17f440
+
+.asm_17f447
+ pop af
+ ld e, a
+ ld d, 0
+ add hl, de
+ pop de
+ and a
+ ret
+; 17f44f
+
+Function17f44f: ; 17f44f
+ pop hl
+ call Function17f524
+ jr c, .asm_17f46d
+ ld de, $5
+ add hl, de
+ ld a, [hli]
+ inc hl
+ inc hl
+ ld e, l
+ ld d, h
+ ld l, c
+ ld h, b
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [de]
+ cp $50
+ jr z, .asm_17f46b
+ and a
+ ret
+
+.asm_17f46b
+ scf
+ ret
+
+.asm_17f46d
+ push bc
+ ld de, wcd54
+ ld bc, $8
+ call CopyBytes
+ pop bc
+ push hl
+ push bc
+ ld a, [wcd56]
+ cp $c0
+ jr c, .asm_17f488
+ ld a, [wcd54]
+ ld [rSVBK], a
+ jr .asm_17f48e
+
+.asm_17f488
+ ld a, [wcd54]
+ call GetSRAMBank
+
+.asm_17f48e
+ ld a, [wcd55]
+ ld l, a
+ ld a, [wcd56]
+ ld h, a
+ ld de, $c608
+ ld a, [wcd57]
+ ld c, a
+ ld b, $0
+ call CopyBytes
+ ld a, [wcd56]
+ cp $c0
+ jr c, .asm_17f4af
+ ld a, $4
+ ld [rSVBK], a
+ jr .asm_17f4b7
+
+.asm_17f4af
+ call CloseSRAM
+ ld a, $6
+ call GetSRAMBank
+
+.asm_17f4b7
+ ld de, $c608
+ pop hl
+ push hl
+ ld a, [wcd57]
+ ld b, a
+ ld a, [wcd58]
+ ld c, a
+ call MobilePrintNum
+ ld a, l
+ ld [wcd52], a
+ ld a, h
+ ld [wcd53], a
+ ld a, [wcd5a]
+ and a
+ jr z, .asm_17f4ec
+ ld c, a
+ ld a, [wcd58]
+ inc a
+ ld b, a
+ ld e, l
+ ld d, h
+ dec de
+.asm_17f4de
+ ld a, c
+ cp b
+ jr z, .asm_17f4e8
+ ld a, [de]
+ dec de
+ ld [hld], a
+ dec b
+ jr .asm_17f4de
+
+.asm_17f4e8
+ ld a, [wcd5b]
+ ld [hl], a
+
+.asm_17f4ec
+ pop hl
+ ld a, [wcd59]
+ call Function17f50f
+ pop de
+ and a
+ ret
+; 17f4f6
+
+Function17f4f6: ; 17f4f6
+ ld a, [wcd6a]
+ ld l, a
+ ld a, [wcd6b]
+ ld h, a
+ ld a, [wcd47]
+ ld c, a
+ ld a, [BGMapPalBuffer]
+ ld b, a
+ ld a, [wcd2e]
+.asm_17f509
+ and a
+ ret z
+ dec a
+ add hl, bc
+ jr .asm_17f509
+; 17f50f
+
+Function17f50f: ; 17f50f
+ and a
+ jr z, .asm_17f519
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld c, l
+ ld b, h
+ ret
+
+.asm_17f519
+ ld a, [wcd52]
+ ld c, a
+ ld l, a
+ ld a, [wcd53]
+ ld b, a
+ ld h, a
+ ret
+; 17f524
+
+Function17f524: ; 17f524
+ push hl
+ push bc
+ push de
+ ld a, [wcd42]
+ dec a
+ ld b, a
+ ld a, [wcd2e]
+ cp b
+ jr z, .asm_17f53a
+ ld hl, wcd68
+ cp [hl]
+.asm_17f536
+ pop de
+ pop bc
+ pop hl
+ ret
+
+.asm_17f53a
+ scf
+ jr .asm_17f536
+; 17f53d
+
+BattleTowerMobileError: ; 17f53d
+ call FadeToMenu
+ xor a
+ ld [wc303], a
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+
+ call DisplayMobileError
+
+ pop af
+ ld [rSVBK], a
+ call ExitAllMenus
+ ret
+; 17f555
+
+DisplayMobileError: ; 17f555
+.loop
+ call JoyTextDelay
+ call .RunJumptable
+ ld a, [wc303]
+ bit 7, a
+ jr nz, .quit
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ jr .loop
+
+.quit
+ call .deinit
+ ret
+
+.deinit
+ ld a, [wc300]
+ cp $22
+ jr z, .asm_17f597
+ cp $31
+ jr z, .asm_17f58a
+ cp $33
+ ret nz
+ ld a, [wc301]
+ cp $1
+ ret nz
+ ld a, [wc302]
+ cp $2
+ ret nz
+ jr .asm_17f5a1
+
+.asm_17f58a
+ ld a, [wc301]
+ cp $3
+ ret nz
+ ld a, [wc302]
+ and a
+ ret nz
+ jr .asm_17f5a1
+
+.asm_17f597
+ ld a, [wc301]
+ and a
+ ret nz
+ ld a, [wc302]
+ and a
+ ret nz
+
+.asm_17f5a1
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ xor a
+ ld [sMobileLoginPassword], a
+ call CloseSRAM
+ ret
+; 17f5ae
+
+.RunJumptable: ; 17f5ae
+ jumptable .Jumptable, wc303
+; 17f5bd
+
+.Jumptable: ; 17f5bd
+ dw Function17f5c3
+ dw Function17ff23
+ dw Function17f5d2
+; 17f5c3
+
+Function17f5c3: ; 17f5c3
+ call Function17f5e4
+ callba FinishExitMenu
+ ld a, $1
+ ld [wc303], a
+ ret
+; 17f5d2
+
+Function17f5d2: ; 17f5d2
+ call Function17f5e4
+ callba HDMATransferAttrMapAndTileMapToWRAMBank3
+ call SetPalettes
+ ld a, $1
+ ld [wc303], a
+ ret
+; 17f5e4
+
+Function17f5e4: ; 17f5e4
+ ld a, $8
+ ld [MusicFade], a
+ ld de, MUSIC_NONE
+ ld a, e
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ ld a, " "
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ ld a, $6
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call ByteFill
+ hlcoord 2, 1
+ ld b, $1
+ ld c, $e
+ call Function3eea
+ hlcoord 1, 4
+ ld b, $c
+ ld c, $10
+ call Function3eea
+ hlcoord 3, 2
+ ld de, String_17f6dc
+ call PlaceString
+ call Function17ff3c
+ jr nc, .asm_17f632
+ hlcoord 11, 2
+ call Function17f6b7
+
+.asm_17f632
+ ld a, [wc300]
+ cp $d0
+ jr nc, .asm_17f684
+ cp $10
+ jr c, .asm_17f679
+ sub $10
+ cp $24
+ jr nc, .asm_17f679
+ ld e, a
+ ld d, $0
+ ld hl, Table_17f706
+ add hl, de
+ add hl, de
+ ld a, [wc301]
+ ld e, a
+ ld a, [wc302]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ ld a, [hli]
+ and a
+ jr z, .asm_17f679
+ ld c, a
+.asm_17f65d
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ cp $ff
+ jr nz, .asm_17f667
+ cp b
+ jr z, .asm_17f66e
+
+.asm_17f667
+ xor d
+ jr nz, .asm_17f674
+ ld a, b
+ xor e
+ jr nz, .asm_17f674
+
+.asm_17f66e
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ jr .asm_17f67d
+
+.asm_17f674
+ inc hl
+ inc hl
+ dec c
+ jr nz, .asm_17f65d
+
+.asm_17f679
+ ld a, $d9
+ jr .asm_17f684
+
+.asm_17f67d
+ hlcoord 2, 6
+ call PlaceString
+ ret
+
+.asm_17f684
+ sub $d0
+ ld e, a
+ ld d, 0
+ ld hl, Table_17f699
+ add hl, de
+ add hl, de
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ hlcoord 2, 6
+ call PlaceString
+ ret
+; 17f699
+
+Table_17f699: ; 17f699
+ dw String_17fedf
+ dw String_17fdd9
+ dw String_17fdd9
+ dw String_17fe03
+ dw String_17fd84
+ dw String_17fe63
+ dw String_17fdb2
+ dw String_17fe4b
+ dw String_17fe03
+ dw String_17fe03
+ dw String_17fe03
+; 17f6af
+
+Palette_17f6af: ; 17f6af
+ RGB 5, 5, 16
+ RGB 8, 19, 28
+ RGB 0, 0, 0
+ RGB 31, 31, 31
+; 17f6b7
+
+Function17f6b7: ; 17f6b7
+ ld a, [wc300]
+ call .bcd_two_digits
+ inc hl
+ ld a, [wc302]
+ and $f
+ call .bcd_digit
+ ld a, [wc301]
+ call .bcd_two_digits
+ ret
+; 17f6cd
+
+.bcd_two_digits ; 17f6cd
+ ld c, a
+ and $f0
+ swap a
+ call .bcd_digit
+ ld a, c
+ and $f
+
+.bcd_digit ; 17f6d8
+ add "0"
+ ld [hli], a
+ ret
+; 17f6dc
+
+String_17f6dc: ; 17f6dc
+ db "つうしんエラー ー@"
+; 17f6e8
+
+String_17f6e8: ; 17f6e8
+ db "みていぎ", $25, "エラーです"
+ next "プログラム", $1f
+ next "かくにん してください"
+ db "@"
+; 17f706
+
+Table_17f706:
+ dw Unknown_17f74e
+ dw Unknown_17f753
+ dw Unknown_17f758
+ dw Unknown_17f75d
+ dw Unknown_17f762
+ dw Unknown_17f767
+ dw Unknown_17f778
+ dw Unknown_17f77d
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f782
+ dw Unknown_17f787
+ dw Unknown_17f78c
+ dw Unknown_17f791
+ dw Unknown_17f796
+ dw Unknown_17f79b
+ dw Unknown_17f7a0
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7a5
+ dw Unknown_17f7ea
+ dw Unknown_17f7ff
+ dw Unknown_17f844
+
+Unknown_17f74e: db 1
+ dbbw $0, $0, String_17f891
+
+Unknown_17f753: db 1
+ dbbw $0, $0, String_17f8d1
+
+Unknown_17f758: db 1
+ dbbw $0, $0, String_17f913
+
+Unknown_17f75d: db 1
+ dbbw $0, $0, String_17f8d1
+
+Unknown_17f762: db 1
+ dbbw $0, $0, String_17fa71
+
+Unknown_17f767: db 4
+ dbbw $0, $0, String_17f946
+ dbbw $1, $0, String_17f946
+ dbbw $2, $0, String_17f946
+ dbbw $3, $0, String_17f946
+
+Unknown_17f778: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f77d: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f782: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f787: db 1
+ dbbw $0, $0, String_17f98e
+
+Unknown_17f78c: db 1
+ dbbw $0, $0, String_17f9d0
+
+Unknown_17f791: db 1
+ dbbw $0, $0, String_17fa14
+
+Unknown_17f796: db 1
+ dbbw $0, $0, String_17fcbf
+
+Unknown_17f79b: db 1
+ dbbw $0, $0, String_17fa71
+
+Unknown_17f7a0: db 1
+ dbbw $0, $0, String_17fbfe
+
+Unknown_17f7a5: db 17
+ dbbw $0, $0, String_17f98e
+ dbbw $21, $2, String_17fcbf
+ dbbw $21, $4, String_17fcbf
+ dbbw $50, $4, String_17faf9
+ dbbw $51, $4, String_17fcbf
+ dbbw $52, $4, String_17fcbf
+ dbbw $0, $5, String_17f98e
+ dbbw $1, $5, String_17f98e
+ dbbw $2, $5, String_17f98e
+ dbbw $3, $5, String_17f98e
+ dbbw $4, $5, String_17f98e
+ dbbw $50, $5, String_17faf9
+ dbbw $51, $5, String_17faf9
+ dbbw $52, $5, String_17fcbf
+ dbbw $53, $5, String_17faf9
+ dbbw $54, $5, String_17fcbf
+ dbbw $ff, $ff, String_17fcbf
+
+Unknown_17f7ea: db 5
+ dbbw $0, $0, String_17f98e
+ dbbw $2, $0, String_17fb2a
+ dbbw $3, $0, String_17fb6e
+ dbbw $4, $0, String_17f98e
+ dbbw $ff, $ff, String_17fcbf
+
+Unknown_17f7ff: db 17
+ dbbw $0, $0, String_17f98e
+ dbbw $1, $3, String_17f98e
+ dbbw $2, $3, String_17f98e
+ dbbw $0, $4, String_17f98e
+ dbbw $1, $4, String_17f98e
+ dbbw $3, $4, String_17fbb6
+ dbbw $4, $4, String_17fbb6
+ dbbw $5, $4, String_17f98e
+ dbbw $6, $4, String_17f98e
+ dbbw $7, $4, String_17f98e
+ dbbw $8, $4, String_17fbfe
+ dbbw $0, $5, String_17fa49
+ dbbw $1, $5, String_17f98e
+ dbbw $2, $5, String_17fa49
+ dbbw $3, $5, String_17fab0
+ dbbw $4, $5, String_17fa49
+ dbbw $ff, $ff, String_17fa49
+
+Unknown_17f844: db 19
+ dbbw $1, $1, String_17fc3e
+ dbbw $2, $1, String_17fc88
+ dbbw $3, $1, String_17fcff
+ dbbw $4, $1, String_17fd84
+ dbbw $5, $1, String_17fd84
+ dbbw $6, $1, String_17fd47
+ dbbw $1, $2, String_17fb6e
+ dbbw $2, $2, String_17f98e
+ dbbw $3, $2, String_17fd84
+ dbbw $4, $2, String_17f98e
+ dbbw $5, $2, String_17fa49
+ dbbw $6, $2, String_17fd84
+ dbbw $99, $2, String_17fc88
+ dbbw $1, $3, String_17fa49
+ dbbw $1, $4, String_17fa49
+ dbbw $2, $4, String_17fa49
+ dbbw $3, $4, String_17fa49
+ dbbw $4, $4, String_17fa49
+ dbbw $ff, $ff, String_17fa49
+
+String_17f891: ; 17f891
+ db "モバイルアダプタが ただしく"
+ next "さしこまれていません"
+ next "とりあつかいせつめいしょを"
+ next "ごらんのうえ しっかりと"
+ next "さしこんで ください"
+ db "@"
+
+String_17f8d1: ; 17f8d1
+ db "でんわが うまく かけられないか"
+ next "でんわかいせんが こんでいるので"
+ next "つうしん できません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17f913: ; 17f913
+ db "でんわかいせんが こんでいるため"
+ next "でんわが かけられません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17f946: ; 17f946
+ db "モバイルアダプタの エラーです"
+ next "しばらく まって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17f98e: ; 17f98e
+ db "つうしんエラーです"
+ next "しばらく まって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17f9d0: ; 17f9d0
+ db "ログインパスワードか"
+ next "ログイン アイディーに"
+ next "まちがいがあります"
+ next "パスワードを かくにんして"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fa14: ; 17fa14
+ db "でんわが きれました"
+ next "とりあつかいせつめいしょを"
+ next "ごらんのうえ"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fa49: ; 17fa49
+ db "モバイルセンターの"
+ next "つうしんエラーです"
+ next "しばらくまって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fa71: ; 17fa71
+ db "モバイルアダプタに"
+ next "とうろくされた じょうほうが"
+ next "ただしく ありません"
+ next "モバイルトレーナーで"
+ next "しょきとうろくを してください"
+ db "@"
+
+String_17fab0: ; 17fab0
+ db "モバイルセンターが"
+ next "こんでいて つながりません"
+ next "しばらくまって"
+ next "かけなおして ください"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17faf9: ; 17faf9
+ db "あてさき メールアドレスに"
+ next "まちがいがあります"
+ next "ただしい メールアドレスを"
+ next "いれなおしてください"
+ db "@"
+
+String_17fb2a: ; 17fb2a
+ db "メールアドレスに"
+ next "まちがいが あります"
+ next "とりあつかいせつめいしょを"
+ next "ごらんのうえ"
+ next "モバイルトレーナーで"
+ next "しょきとうろくを してください"
+ db "@"
+
+String_17fb6e: ; 17fb6e
+ db "ログインパスワードに"
+ next "まちがいが あるか"
+ next "モバイルセンターの エラーです"
+ next "パスワードを かくにんして"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fbb6: ; 17fbb6
+ db "データの よみこみが できません"
+ next "しばらくまって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17fbfe: ; 17fbfe
+ db "じかんぎれです"
+ next "でんわが きれました"
+ next "でんわを かけなおしてください"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fc3e: ; 17fc3e
+ db "ごりよう りょうきんの "
+ next "おしはらいが おくれたばあいには"
+ next "ごりようが できなくなります"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fc88: ; 17fc88
+ db "おきゃくさまの ごつごうにより"
+ next "ごりようできません"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fcbf: ; 17fcbf
+ db "でんわかいせんが こんでいるか"
+ next "モバイルセンターの エラーで"
+ next "つうしんが できません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fcff: ; 17fcff
+ db "ごりよう りょうきんが"
+ next "じょうげんを こえているため"
+ next "こんげつは ごりようできません"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fd47: ; 17fd47
+ db "げんざい モバイルセンターの"
+ next "てんけんを しているので"
+ next "つうしんが できません"
+ next "しばらく まって"
+ next "かけなおして ください"
+ db "@"
+
+String_17fd84: ; 17fd84
+ db "データの よみこみが できません"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+
+String_17fdb2: ; 17fdb2
+ db "3ぷん いじょう なにも"
+ next "にゅうりょく しなかったので"
+ next "でんわが きれました"
+ db "@"
+
+String_17fdd9: ; 17fdd9
+ db "つうしんが うまく"
+ next "できませんでした"
+ next "もういちど はじめから"
+ next "やりなおしてください"
+ db "@"
+
+String_17fe03: ; 17fe03
+ db "データの よみこみが できません"
+ next "しばらくまって"
+ next "かけなおして ください"
+ next "なおらない ときは"
+ next "モバイルサポートセンターへ"
+ next "おといあわせください"
+ db "@"
+
+String_17fe4b: ; 17fe4b
+ db "まちじかんが ながいので"
+ next "でんわが きれました"
+ db "@"
+
+String_17fe63: ; 17fe63
+ db "あいての モバイルアダプタと"
+ next "タイプが ちがいます"
+ next "くわしくは とりあつかい"
+ next "せつめいしょを ごらんください"
+ db "@"
+
+String_17fe9a: ; 17fe9a ; unreferenced
+ db "ポケモンニュースが"
+ next "あたらしくなっているので"
+ next "レポートを おくれません"
+ next "あたらしい ポケモンニュースの"
+ next "よみこみを さきに してください"
+ db "@"
+
+String_17fedf: ; 17fedf
+ db "つうしんの じょうきょうが"
+ next "よくないか かけるあいてが"
+ next "まちがっています"
+ next "もういちど かくにんをして"
+ next "でんわを かけなおして ください"
+ db "@"
+; 17ff23
+
+Function17ff23: ; 17ff23
+ ld a, [hJoyPressed]
+ and a
+ ret z
+ ld a, $8
+ ld [MusicFade], a
+ ld a, [wMapMusic]
+ ld [MusicFadeID], a
+ xor a
+ ld [MusicFadeID + 1], a
+ ld hl, wc303
+ set 7, [hl]
+ ret
+; 17ff3c
+
+Function17ff3c: ; 17ff3c
+ nop
+ ld a, [wc300]
+ cp $d0
+ ret c
+ hlcoord 10, 2
+ ld de, String_17ff68
+ call PlaceString
+ ld a, [wc300]
+ push af
+ sub $d0
+ inc a
+ ld [wc300], a
+ hlcoord 14, 2
+ ld de, wc300
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ pop af
+ ld [wc300], a
+ and a
+ ret
+; 17ff68
+
+String_17ff68: ; 17ff68
+ db "101@"
+; 17ff6c
diff --git a/mobile/mobile_menu.asm b/mobile/mobile_menu.asm
new file mode 100755
index 000000000..6a4e6cf61
--- /dev/null
+++ b/mobile/mobile_menu.asm
@@ -0,0 +1,879 @@
+MainMenu_Mobile: ; 49efc
+ call ClearBGPalettes
+ ld a, MUSIC_MOBILE_ADAPTER_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MOBILE_ADAPTER_MENU
+ call Function4a6c5
+Function49f0a: ; 49f0a
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call ClearBGPalettes
+Function49f16: ; 49f16
+ call MobileMenu_InitMenuBuffers
+ ld c, 12
+ call DelayFrames
+ hlcoord 4, 0
+ ld b, 10
+ ld c, 10
+ call Function48cdc
+ hlcoord 6, 2
+ ld de, MobileString1
+ call PlaceString
+ hlcoord 0, 12
+ ld b, 4
+ ld c, SCREEN_HEIGHT
+ call TextBox
+ xor a
+ ld de, String_0x49fe9
+ hlcoord 1, 14
+ call PlaceString
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr .check_buttons
+
+.joy_loop
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+.check_buttons
+ bit A_BUTTON_F, a
+ jr nz, .a_button
+ bit B_BUTTON_F, a
+ jr nz, .b_button
+ jr .next
+
+.a_button
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp 1
+ jp z, Function4a098
+ cp 2
+ jp z, Function4a0b9
+ cp 3
+ jp z, Function4a0c2
+ cp 4
+ jp z, Function4a100
+ ld a, 1
+ call MenuClickSound
+.b_button
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ ld a, MUSIC_MAIN_MENU
+ ld [wMapMusic], a
+ ld de, MUSIC_MAIN_MENU
+ call Function4a6c5
+ ret
+
+.next
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ ld hl, MobileStrings2
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, 4
+ ld c, SCREEN_HEIGHT
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jp .useless_jump
+
+.useless_jump
+ call MobileMenu_InitMenuBuffers
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 5, 1
+ call ClearBox
+ jp .joy_loop
+; 49fcc
+
+
+MobileString1: ; 49fcc
+ db "めいしフ,ルダー"
+ next "あいさつ"
+ next "プロフィール"
+ next "せ", $1e, "い"
+ next "もどる"
+ db "@"
+; 49fe9
+
+
+MobileStrings2:
+
+String_0x49fe9: ; 49fe9
+ db "めいし¯つくったり"
+ next "ほぞんしておける フ,ルダーです@"
+; 4a004
+
+String_0x4a004: ; 4a004
+ db "モバイルたいせんや じぶんのめいしで"
+ next "つかう あいさつ¯つくります@"
+; 4a026
+
+String_0x4a026: ; 4a026
+ db "あなた%じゅうしょや ねんれいの"
+ next "せ", $1e, "い¯かえられます@"
+; 4a042
+
+String_0x4a042: ; 4a042
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "ひつような こと¯きめます@"
+; 4a062
+
+String_0x4a062: ; 4a062
+ db "まえ%がめん ", $1d, "もどります"
+ next "@"
+; 4a071
+
+MobileMenu_InitMenuBuffers: ; 4a071 (12:6071)
+ ld hl, w2DMenuCursorInitY
+ ld a, 2
+ ld [hli], a
+ ld a, 5 ; w2DMenuCursorInitX
+ ld [hli], a
+ ld a, 5 ; w2DMenuNumRows
+ ld [hli], a
+ ld a, 1 ; w2DMenuNumCols
+ ld [hli], a
+ ld [hl], $0 ; w2DMenuFlags1
+ set 5, [hl]
+ inc hl
+ xor a ; w2DMenuFlags2
+ ld [hli], a
+ ld a, $20 ; w2DMenuCursorOffsets
+ ld [hli], a
+ ; this is a stupid way to load $c3
+ ld a, A_BUTTON
+ add D_UP
+ add D_DOWN
+ add B_BUTTON
+ ld [hli], a ; wMenuJoypadFilter
+ ld a, 1
+ ld [hli], a ; wMenuCursorY, wMenuCursorX
+ ld [hli], a ; wMenuCursorY, wMenuCursorX
+ ret
+
+Function4a098: ; 4a098 (12:6098)
+ ld a, 2
+ call MenuClickSound
+ call PlaceHollowCursor
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ callba Function89de0
+ call Call_ExitMenu
+ call MG_Mobile_Layout_LoadPals
+ call Function4a485
+ pop bc
+ jp Function49f16
+
+Function4a0b9: ; 4a0b9 (12:60b9)
+ ld a, 2
+ call MenuClickSound
+ pop bc
+ jp Function4a4c4
+
+Function4a0c2: ; 4a0c2 (12:60c2)
+ ld a, 2
+ call MenuClickSound
+ ld a, BANK(sPlayerData)
+ call GetSRAMBank
+ ld hl, sPlayerData + PlayerName - wPlayerData
+ ld de, PlayerName
+ ld bc, NAME_LENGTH_JAPANESE
+ call CopyBytes
+ call CloseSRAM
+ callba _LoadData
+ ld c, 2
+ call DelayFrames
+ ld c, $1
+ call InitMobileProfile
+ push af
+ call ClearBGPalettes
+ pop af
+ and a
+ jr nz, .skip_save
+ callba _SaveData
+.skip_save
+ ld c, 5
+ call DelayFrames
+ jr asm_4a111
+
+Function4a100: ; 4a100 (12:6100)
+ ld a, 2
+ call MenuClickSound
+ call ClearBGPalettes
+ call Function4a13b
+ call ClearBGPalettes
+ call ClearTileMap
+
+asm_4a111: ; 4a111 (12:6111)
+ pop bc
+ call LoadFontsExtra
+ jp Function49f0a
+
+Function4a118: ; 4a118 (12:6118)
+ ld hl, w2DMenuCursorInitY
+ ld a, $1
+ ld [hli], a
+ ld a, $d
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $2
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ ret
+
+Function4a13b: ; 4a13b (12:613b)
+ call Function4a3a7
+ call Function4a492
+ call Function4a373
+ ld c, 10
+ call DelayFrames
+
+Function4a149: ; 4a149 (12:6149)
+ hlcoord 1, 2
+ ld b, $6
+ ld c, $10
+ call Function48cdc
+ hlcoord 3, 4
+ ld de, String_4a1ef
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ ld a, [wMenuCursorY]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4a19d
+
+Function4a195: ; 4a195 (12:6195)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+asm_4a19d: ; 4a19d (12:619d)
+ bit 0, a
+ jr nz, .asm_4a1a7
+ bit 1, a
+ jr nz, .asm_4a1ba
+ jr .asm_4a1bc
+.asm_4a1a7
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp $1
+ jp z, Function4a20e
+ cp $2
+ jp z, Function4a221
+ ld a, $1
+ call MenuClickSound
+.asm_4a1ba
+ pop bc
+ ret
+.asm_4a1bc
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ ld hl, Strings_4a23d
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ jr .asm_4a1db
+.asm_4a1db
+ call Function4a373
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ lb bc, 6, 1
+ hlcoord 2, 3
+ call ClearBox
+ jp Function4a195
+; 4a1ef (12:61ef)
+
+String_4a1ef: ; 4a1ef
+ db "モバイルセンター¯えらぶ"
+ next "ログインパスワード¯いれる"
+ next "もどる@"
+; 4a20e
+
+Function4a20e: ; 4a20e (12:620e)
+ ld a, $1
+ call MenuClickSound
+ callba Function1719c8
+ call ClearBGPalettes
+ call DelayFrame
+ jr Function4a239
+
+Function4a221: ; 4a221 (12:6221)
+ ld a, $1
+ call MenuClickSound
+ call Function4a28a
+ jr c, Function4a239
+ call Function4a373
+ ld a, $2
+ ld [wMenuCursorY], a
+ jr .asm_4a235
+.asm_4a235
+ pop bc
+ jp Function4a149
+
+Function4a239: ; 4a239 (12:6239)
+ pop bc
+ jp Function4a13b
+; 4a23d (12:623d)
+
+Strings_4a23d: ; 4a23d
+ db "いつも せつぞく¯する"
+ next "モバイルセンター¯えらびます@"
+
+ db "モバイルセンター", $1d, "せつぞくするとき"
+ next "つかうパスワード¯ほぞんできます@"
+
+ db "まえ%がめん ", $1d, "もどります@"
+
+ db "@"
+; 4a28a
+
+Function4a28a: ; 4a28a (12:628a)
+ hlcoord 2, 3
+ lb bc, 6, 1
+ ld a, " "
+ call Function4a6d8
+ call PlaceHollowCursor
+ call WaitBGMap
+ call LoadStandardMenuDataHeader
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa4b]
+ call CloseSRAM
+ and a
+ jr z, .asm_4a2df
+ hlcoord 12, 0
+ ld b, $5
+ ld c, $6
+ call Function48cdc
+ hlcoord 14, 1
+ ld de, String_4a34b
+ call PlaceString
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ call Function4a118
+ call ScrollingMenuJoypad
+ push af
+ call PlayClickSFX
+ pop af
+ bit B_BUTTON_F, a
+ jr nz, .quit
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .DeleteLoginPassword
+ cp $3
+ jr z, .quit
+.asm_4a2df
+ callba Function11765d
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call LoadFontsExtra
+ scf
+ ret
+
+.DeleteLoginPassword:
+ call PlaceHollowCursor
+ ld hl, UnknownText_0x4a358
+ call PrintText
+ hlcoord 14, 7
+ ld b, 3
+ ld c, 4
+ call TextBox
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ ld hl, DeletePassword_YesNo_MenuDataHeader
+ call LoadMenuDataHeader
+ call VerticalMenu
+ bit B_BUTTON_F, a
+ jr nz, .dont_delete_password
+ ld a, [wMenuCursorY]
+ cp $2
+ jr z, .dont_delete_password
+ ld a, BANK(sMobileLoginPassword)
+ call GetSRAMBank
+ ld hl, sMobileLoginPassword
+ xor a
+ ld bc, MOBILE_LOGIN_PASSWORD_LENGTH
+ call ByteFill
+ call CloseSRAM
+ ld hl, UnknownText_0x4a35d
+ call PrintText
+ call JoyWaitAorB
+.dont_delete_password
+ call ExitMenu
+.quit
+ call Call_ExitMenu
+ callba Mobile_OpenAndCloseMenu_HDMATransferTileMapAndAttrMap
+ xor a
+ ret
+; 4a346 (12:6346)
+
+MenuDataHeader_0x4a346: ; 0x4a346
+ db $40 ; flags
+ db 00, 12 ; start coords
+ db 06, 19 ; end coords
+
+String_4a34b: ; 4a34b
+ db "いれなおす"
+ next "けす"
+ next "もどる@"
+; 4a358
+
+UnknownText_0x4a358: ; 0x4a358
+ ; Delete the saved LOG-IN PASSWORD?
+ text_jump UnknownText_0x1c5196
+ db "@"
+; 0x4a35d
+
+UnknownText_0x4a35d: ; 0x4a35d
+ ; Deleted the LOG-IN PASSWORD.
+ text_jump UnknownText_0x1c51b9
+ db "@"
+; 0x4a362
+
+DeletePassword_YesNo_MenuDataHeader: ; 0x4a362
+ db $40 ; flags
+ db 07, 14 ; start coords
+ db 11, 19 ; end coords
+ dw MenuData2_0x4a36a
+ db 2 ; default option
+; 0x4a36a
+
+MenuData2_0x4a36a: ; 0x4a36a
+ db $e0 ; flags
+ db 2 ; items
+ db "はい@"
+ db "いいえ@"
+; 0x4a373
+
+Function4a373: ; 4a373 (12:6373)
+ ld hl, w2DMenuCursorInitY
+ ld a, $4
+ ld [hli], a
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ ret
+; 4a39a (12:639a)
+
+Function4a39a: ; 4a39a
+ call Function4a485
+ call Function4a492
+ call Function4a3aa
+ call SetPalettes
+ ret
+; 4a3a7
+
+Function4a3a7: ; 4a3a7 (12:63a7)
+ call Function4a485
+Function4a3aa: ; 4a3aa
+ hlcoord 0, 0
+ lb bc, 3, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ hlcoord 1, 0
+ ld a, $1
+ lb bc, 3, 18
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 18
+ ld a, $2
+ call Function4a6d8
+ lb bc, 11, 18
+ ld a, " "
+ call Function4a6d8
+ hlcoord 19, 0
+ lb bc, 3, 1
+ ld a, $0
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 1, 1
+ xor a
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $1
+ call Function4a6d8
+ lb bc, 4, 1
+ ld a, $2
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, $3
+ call Function4a6d8
+ lb bc, 1, 1
+ ld a, " "
+ call Function4a6d8
+ ret
+; 4a449 (12:6449)
+
+Function4a449: ; 4a449
+ ld bc, 3 * SCREEN_WIDTH
+ ld a, $0
+ hlcoord 0, 0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $0
+ call ByteFill
+ ld bc, 2 * SCREEN_WIDTH
+ ld a, $1
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $2
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, $3
+ call ByteFill
+ ld bc, SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ ret
+; 4a485
+
+Function4a485: ; 4a485 (12:6485)
+ ld de, GFX_49c0c
+ ld hl, VTiles2 tile $00
+ lb bc, BANK(GFX_49c0c), 13
+ call Get2bpp
+ ret
+
+Function4a492: ; 4a492 (12:6492)
+ call MG_Mobile_Layout00
+ ret
+
+
+MainMenu_MobileStudium: ; 4a496
+ ld a, [StartDay]
+ ld b, a
+ ld a, [StartHour]
+ ld c, a
+ ld a, [StartMinute]
+ ld d, a
+ ld a, [StartSecond]
+ ld e, a
+ push bc
+ push de
+ callba MobileStudium
+ call ClearBGPalettes
+ pop de
+ pop bc
+ ld a, b
+ ld [StartDay], a
+ ld a, c
+ ld [StartHour], a
+ ld a, d
+ ld [StartMinute], a
+ ld a, e
+ ld [StartSecond], a
+ ret
+; 4a4c4
+
+
+Function4a4c4: ; 4a4c4 (12:64c4)
+ call ClearBGPalettes
+ call Function4a3a7
+ call Function4a492
+ call Function4a680
+ call ClearBGPalettes
+ ld c, 20
+ call DelayFrames
+ hlcoord 2, 0
+ ld b, $a
+ ld c, $e
+ call Function48cdc
+ hlcoord 4, 2
+ ld de, String_4a5c5
+ call PlaceString
+ hlcoord 4, 4
+ ld de, String_4a5cd
+ call PlaceString
+ hlcoord 4, 6
+ ld de, String_4a5da
+ call PlaceString
+ hlcoord 4, 8
+ ld de, String_4a5e6
+ call PlaceString
+ hlcoord 4, 10
+ ld de, String_4a5f2
+ call PlaceString
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ xor a
+ ld hl, Strings_4a5f6
+ ld d, h
+ ld e, l
+ hlcoord 1, 14
+ call PlaceString
+ ld a, $1
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ call WaitBGMap2
+ call SetPalettes
+ call StaticMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+ jr asm_4a54d
+
+Function4a545: ; 4a545 (12:6545)
+ call ScrollingMenuJoypad
+ ld hl, wMenuCursorY
+ ld b, [hl]
+ push bc
+
+asm_4a54d: ; 4a54d (12:654d)
+ bit 0, a
+ jr nz, .asm_4a557
+ bit 1, a
+ jr nz, .asm_4a574
+ jr .asm_4a57e
+.asm_4a557
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ cp $1
+ jp z, Function4a6ab
+ cp $2
+ jp z, Function4a6ab
+ cp $3
+ jp z, Function4a6ab
+ cp $4
+ jp z, Function4a6ab
+ ld a, $1
+ call MenuClickSound
+.asm_4a574
+ pop bc
+ call ClearBGPalettes
+ call ClearTileMap
+ jp Function49f0a
+.asm_4a57e
+ ld hl, wMenuCursorY
+ ld a, [hl]
+ dec a
+ add a
+ push af
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 13
+ ld b, $4
+ ld c, $12
+ call ClearBox
+ hlcoord 1, 14
+ call PlaceString
+ pop af
+ inc a
+ ld hl, Strings_4a5f6
+ call GetNthString
+ ld d, h
+ ld e, l
+ hlcoord 1, 16
+ call PlaceString
+ jp Function4a5b0
+
+Function4a5b0: ; 4a5b0 (12:65b0)
+ call Function4a680
+ pop bc
+ ld hl, wMenuCursorY
+ ld [hl], b
+ ld b, $a
+ ld c, $1
+ hlcoord 3, 1
+ call ClearBox
+ jp Function4a545
+; 4a5c5 (12:65c5)
+
+String_4a5c5: ; 4a5c5
+ db "じこしょうかい@"
+String_4a5cd: ; 4a5cd
+ db "たいせん ", $4a, "はじまるとき@"
+String_4a5da: ; 4a5da
+ db "たいせん ", $1d, "かったとき@"
+String_4a5e6: ; 4a5e6
+ db "たいせん ", $1d, "まけたとき@"
+String_4a5f2: ; 4a5f2
+ db "もどる@"
+; 4a5f6
+
+Strings_4a5f6: ; 4a5f6
+ db "めいし や ニュース ", $1d, "のせる@"
+ db "あなた%あいさつです@"
+ db "モバイル たいせん", $4a, "はじまるとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで かったとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "モバイル たいせんで まけたとき@"
+ db "あいて", $1d, "みえる あいさつです@"
+ db "まえ%がめん ", $1d, "もどります@"
+ db "@"
+; 4a680
+
+Function4a680: ; 4a680 (12:6680)
+ ld hl, w2DMenuCursorInitY
+ ld a, $2
+ ld [hli], a
+ ld a, $3
+ ld [hli], a
+ ld a, $5
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hl], $0
+ set 5, [hl]
+ inc hl
+ xor a
+ ld [hli], a
+ ld a, $20
+ ld [hli], a
+ ld a, $1
+ add $40
+ add $80
+ add $2
+ ld [hli], a
+ ld a, $1
+ ld [hli], a
+ ld [hli], a
+ xor a
+ ld [hli], a
+ ld [hli], a
+ ld [hli], a
+ ret
+
+Function4a6ab: ; 4a6ab (12:66ab)
+ ld a, $2
+ call MenuClickSound
+ call ClearBGPalettes
+ ld b, SCGB_DIPLOMA
+ call GetSGBLayout
+ callba Function11c1ab
+ pop bc
+ call LoadFontsExtra
+ jp Function4a4c4
+
+Function4a6c5: ; 4a6c5 (12:66c5)
+ ld a, $5
+ ld [MusicFade], a
+ ld a, e
+ ld [MusicFadeID], a
+ ld a, d
+ ld [MusicFadeID + 1], a
+ ld c, 22
+ call DelayFrames
+ ret
+
+Function4a6d8: ; 4a6d8 (12:66d8)
+ push bc
+ push hl
+.asm_4a6da
+ ld [hli], a
+ dec c
+ jr nz, .asm_4a6da
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, Function4a6d8
+ ret
diff --git a/mobile/news/news.asm b/mobile/news/news.asm
new file mode 100644
index 000000000..b95df06aa
--- /dev/null
+++ b/mobile/news/news.asm
@@ -0,0 +1,44 @@
+; http://forums.glitchcity.info/index.php?topic=7509.msg206449#msg206449
+
+ db $cc, $6b, $1e ; XXX
+
+Function1f4003: ; 1f4003
+; XXX
+ ld a, $6
+ call GetSRAMBank
+ ld hl, .news_data
+ ld de, $a000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.news_data
+INCBIN "mobile/news/news_1.bin"
+
+Function1f4dbe: ; 1f4dbe
+; XXX
+ ld a, $6
+ call GetSRAMBank
+ ld hl, .news_data
+ ld de, $a000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.news_data
+INCBIN "mobile/news/news_2.bin"
+
+Function1f5d9f: ; 1f5d9f
+ ld a, $6
+ call GetSRAMBank
+ ld hl, .news_data
+ ld de, $a000
+ ld bc, $1000
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+.news_data
+INCBIN "mobile/news/news_3.bin"
diff --git a/unknown/1f4018.bin b/mobile/news/news_1.bin
index aa8c73e78..aa8c73e78 100644
--- a/unknown/1f4018.bin
+++ b/mobile/news/news_1.bin
Binary files differ
diff --git a/unknown/1f4dd3.bin b/mobile/news/news_2.bin
index 511d62cb7..511d62cb7 100644
--- a/unknown/1f4dd3.bin
+++ b/mobile/news/news_2.bin
Binary files differ
diff --git a/unknown/1f5db4.bin b/mobile/news/news_3.bin
index f4adbc0db..f4adbc0db 100644
--- a/unknown/1f5db4.bin
+++ b/mobile/news/news_3.bin
Binary files differ
diff --git a/mobile/print_opp_message.asm b/mobile/print_opp_message.asm
new file mode 100644
index 000000000..0be18acae
--- /dev/null
+++ b/mobile/print_opp_message.asm
@@ -0,0 +1,30 @@
+Mobile_PrintOpponentBattleMessage: ; 4ea0a
+ ld a, c
+ push af
+ call SpeechTextBox
+ call MobileTextBorder
+ pop af
+ dec a
+ ld bc, $c
+ ld hl, w5_MobileOpponentBattleMessages
+ call AddNTimes
+ ld de, wMobileOpponentBattleMessage
+ ld bc, $c
+ ld a, $5 ; BANK(w5_MobileOpponentBattleMessages)
+ call FarCopyWRAM
+
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+
+ ld bc, wMobileOpponentBattleMessage
+ decoord 1, 14
+ callba PrintEZChatBattleMessage
+
+ pop af
+ ld [rSVBK], a
+
+ ld c, 180
+ call DelayFrames
+ ret
diff --git a/misc/stadium2_1.bin b/mobile/stadium/stadium2_1.bin
index 155e8bab8..155e8bab8 100644
--- a/misc/stadium2_1.bin
+++ b/mobile/stadium/stadium2_1.bin
Binary files differ
diff --git a/misc/stadium2_2.bin b/mobile/stadium/stadium2_2.bin
index 2273d94f3..2273d94f3 100644
--- a/misc/stadium2_2.bin
+++ b/mobile/stadium/stadium2_2.bin
Binary files differ
diff --git a/pokecrystal.link b/pokecrystal.link
index 2281ba6d7..6002adbf5 100644
--- a/pokecrystal.link
+++ b/pokecrystal.link
@@ -173,7 +173,6 @@ ROMX $40
"bank40_3"
ROMX $41
"bank41"
- "bank41_2"
ROMX $42
"mobile_42"
"Intro Logo"
@@ -243,7 +242,7 @@ ROMX $5e
"bank5E"
"Songs 5"
"Crystal Sound Effects"
- "Misc Crystal"
+ "mobile_5e"
ROMX $5f
"bank5F"
ROMX $60
@@ -301,13 +300,13 @@ ROMX $7b
ROMX $7c
"Battle Tower Trainer Data"
ROMX $7d
- "bank7D"
+ "Mobile News Data"
ROMX $7e
"bank7E"
ROMX $7f
"bank7F"
org $7de0
- "stadium2"
+ "Mobile Stadium 2"
WRAM0
"Stack"
"Audio RAM"
diff --git a/predef/cgb.asm b/predef/cgb.asm
deleted file mode 100644
index 7ede2768f..000000000
--- a/predef/cgb.asm
+++ /dev/null
@@ -1,1127 +0,0 @@
-; Replaces the functionality of sgb.asm to work with CGB hardware.
-
-CheckCGB: ; 8d55
- ld a, [hCGB]
- and a
- ret
-; 8d59
-
-Predef_LoadSGBLayoutCGB: ; 8d59
- ld a, b
- cp SCGB_RAM
- jr nz, .not_ram
- ld a, [SGBPredef]
-.not_ram
- cp SCGB_PARTY_MENU_HP_PALS
- jp z, CGB_ApplyPartyMenuHPPals
- call ResetBGPals
- ld l, a
- ld h, 0
- add hl, hl
- ld de, .dw
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .ReturnFromJumpTable
- push de
- jp hl
-; 8d79
-
-.ReturnFromJumpTable: ; 8d79
- ret
-; 8d7a
-
-.dw ; 8d7a
- dw _CGB_BattleGrayscale
- dw _CGB_BattleColors
- dw _CGB_PokegearPals
- dw _CGB_StatsScreenHPPals
- dw _CGB_Pokedex
- dw _CGB_SlotMachine
- dw _CGB06
- dw _CGB07
- dw _CGB_Diploma
- dw _CGB_MapPals
- dw _CGB_PartyMenu
- dw _CGB_Evolution
- dw _CGB0c
- dw _CGB0d
- dw _CGB_MoveList
- dw _CGB0f
- dw _CGB_PokedexSearchOption
- dw _CGB11
- dw _CGB_Pokepic
- dw _CGB13
- dw _CGB_PackPals
- dw _CGB_TrainerCard
- dw _CGB_PokedexUnownMode
- dw _CGB_BillsPC
- dw _CGB_UnownPuzzle
- dw _CGB_GamefreakLogo ; called before copyright
- dw _CGB_PlayerOrMonFrontpicPals
- dw _CGB_TradeTube
- dw _CGB_TrainerOrMonFrontpicPals
- dw _CGB_MysteryGift
- dw _CGB1e
-; 8db8
-
-_CGB_BattleGrayscale: ; 8db8
- ld hl, PalPacket_9c66 + 1
- ld de, UnknBGPals
- ld c, 4
- call CopyPalettes
- ld hl, PalPacket_9c66 + 1
- ld de, UnknBGPals palette PAL_BATTLE_BG_EXP
- ld c, 4
- call CopyPalettes
- ld hl, PalPacket_9c66 + 1
- ld de, UnknOBPals
- ld c, 2
- call CopyPalettes
- jr _CGB_FinishBattleScreenLayout
-
-_CGB_BattleColors: ; 8ddb
- ld de, UnknBGPals
- call GetBattlemonBackpicPalettePointer
- push hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER
- call GetEnemyFrontpicPalettePointer
- push hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY
- ld a, [EnemyHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_ENEMY_HP
- ld a, [PlayerHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_PLAYER_HP
- ld hl, Palettes_a8ca
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_BG_EXP
- ld de, UnknOBPals
- pop hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_ENEMY
- pop hl
- call LoadPalette_White_Col1_Col2_Black ; PAL_BATTLE_OB_PLAYER
- ld a, SCGB_BATTLE_COLORS
- ld [SGBPredef], a
- call ApplyPals
-_CGB_FinishBattleScreenLayout: ; 8e23
- call InitPartyMenuBGPal7
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, PAL_BATTLE_BG_ENEMY_HP
- call ByteFill
- hlcoord 0, 4, AttrMap
- lb bc, 8, 10
- ld a, PAL_BATTLE_BG_PLAYER
- call FillBoxCGB
- hlcoord 10, 0, AttrMap
- lb bc, 7, 10
- ld a, PAL_BATTLE_BG_ENEMY
- call FillBoxCGB
- hlcoord 0, 0, AttrMap
- lb bc, 4, 10
- ld a, PAL_BATTLE_BG_ENEMY_HP
- call FillBoxCGB
- hlcoord 10, 7, AttrMap
- lb bc, 5, 10
- ld a, PAL_BATTLE_BG_PLAYER_HP
- call FillBoxCGB
- hlcoord 10, 11, AttrMap
- lb bc, 1, 9
- ld a, PAL_BATTLE_BG_EXP
- call FillBoxCGB
- hlcoord 0, 12, AttrMap
- ld bc, 6 * SCREEN_WIDTH
- ld a, PAL_BATTLE_BG_TEXT
- call ByteFill
- ld hl, Palettes_979c
- ld de, UnknOBPals palette PAL_BATTLE_OB_GRAY
- ld bc, 6 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyAttrMap
- ret
-; 8e85
-
-
-InitPartyMenuBGPal7: ; 8e85
- callba Function100dc0
-Mobile_InitPartyMenuBGPal7: ; 8e8b
- ld hl, Palette_b311
- jr nc, .not_mobile
- ld hl, Palette_b309
-.not_mobile
- ld de, UnknBGPals palette 7
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ret
-; 8e9f
-
-InitPartyMenuBGPal0: ; 8e9f
- callba Function100dc0
- ld hl, Palette_b311
- jr nc, .not_mobile
- ld hl, Palette_b309
-.not_mobile
- ld de, UnknBGPals palette 0
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ret
-; 8eb9
-
-_CGB_PokegearPals: ; 8eb9
- ld a, [PlayerGender]
- bit 0, a
- jr z, .male
- ld hl, FemalePokegearPals
- jr .got_pals
-
-.male
- ld hl, MalePokegearPals
-.got_pals
- ld de, UnknBGPals
- ld bc, 6 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8edb
-
-_CGB_StatsScreenHPPals: ; 8edb
- ld de, UnknBGPals
- ld a, [wCurHPPal]
- ld l, a
- ld h, $0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black ; hp palette
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black ; mon palette
- ld hl, Palettes_a8ca
- call LoadPalette_White_Col1_Col2_Black ; exp palette
- ld hl, StatsScreenPagePals
- ld de, UnknBGPals palette 3
- ld bc, 3 palettes ; pink, green, and blue page palettes
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
-
- hlcoord 0, 0, AttrMap
- lb bc, 8, SCREEN_WIDTH
- ld a, $1 ; mon palette
- call FillBoxCGB
-
- hlcoord 10, 16, AttrMap
- ld bc, 10
- ld a, $2 ; exp palette
- call ByteFill
-
- hlcoord 13, 5, AttrMap
- lb bc, 2, 2
- ld a, $3 ; pink page palette
- call FillBoxCGB
-
- hlcoord 15, 5, AttrMap
- lb bc, 2, 2
- ld a, $4 ; green page palette
- call FillBoxCGB
-
- hlcoord 17, 5, AttrMap
- lb bc, 2, 2
- ld a, $5 ; blue page palette
- call FillBoxCGB
-
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8f52
-
-StatsScreenPagePals: ; 8f52
-; pink
- RGB 31, 31, 31
- RGB 31, 19, 31
- RGB 31, 15, 31
- RGB 00, 00, 00
-; green
- RGB 31, 31, 31
- RGB 21, 31, 14
- RGB 17, 31, 00
- RGB 00, 00, 00
-; blue
- RGB 31, 31, 31
- RGB 17, 31, 31
- RGB 17, 31, 31
- RGB 00, 00, 00
-; 8f6a
-
-StatsScreenPals: ; 8f6a
-; pink
- RGB 31, 19, 31
-; green
- RGB 21, 31, 14
-; blue
- RGB 17, 31, 31
-; 8f70
-
-_CGB_Pokedex: ; 8f70
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE ; dex interface palette
- ld a, [CurPartySpecies]
- cp $ff
- jr nz, .is_pokemon
- ld hl, .PokedexQuestionMarkPalette
- call LoadHLPaletteIntoDE ; green question mark palette
- jr .got_palette
-
-.is_pokemon
- call GetMonPalettePointer_
- call LoadPalette_White_Col1_Col2_Black ; mon palette
-.got_palette
- call WipeAttrMap
- hlcoord 1, 1, AttrMap
- lb bc, 7, 7
- ld a, $1 ; green question mark palette
- call FillBoxCGB
- call InitPartyMenuOBPals
- ld hl, .PokedexCursorPalette
- ld de, UnknOBPals palette 7 ; green cursor palette
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 8fba
-
-.PokedexQuestionMarkPalette: ; 8fba
- RGB 11, 23, 00
- RGB 07, 17, 00
- RGB 06, 16, 03
- RGB 05, 12, 01
-
-.PokedexCursorPalette: ; 8fc2
- RGB 00, 00, 00
- RGB 11, 23, 00
- RGB 07, 17, 00
- RGB 00, 00, 00
-; 8fca
-
-_CGB_BillsPC: ; 8fca
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [CurPartySpecies]
- cp $ff
- jr nz, .GetMonPalette
- ld hl, .BillsPCOrangePalette
- call LoadHLPaletteIntoDE
- jr .Resume
-
-.GetMonPalette:
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
-.Resume:
- call WipeAttrMap
- hlcoord 1, 4, AttrMap
- lb bc, 7, 7
- ld a, $1
- call FillBoxCGB
- call InitPartyMenuOBPals
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9009
-
-.Function9009: ; 9009
- ld hl, .BillsPCOrangePalette
- call LoadHLPaletteIntoDE
- jr .asm_901a
-
-.unused
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
-.asm_901a
- call WipeAttrMap
- hlcoord 1, 1, AttrMap
- lb bc, 7, 7
- ld a, $1
- call FillBoxCGB
- call InitPartyMenuOBPals
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9036
-
-.BillsPCOrangePalette: ; 9036
- RGB 31, 15, 00
- RGB 23, 12, 00
- RGB 15, 07, 00
- RGB 00, 00, 00
-; 903e
-
-_CGB_PokedexUnownMode: ; 903e
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [CurPartySpecies]
- call GetMonPalettePointer_
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- hlcoord 7, 5, AttrMap
- lb bc, 7, 7
- ld a, $1
- call FillBoxCGB
- call InitPartyMenuOBPals
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 906e
-
-_CGB_SlotMachine: ; 906e
- ld hl, SlotMachinePals
- ld de, UnknBGPals
- ld bc, 16 palettes
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
- hlcoord 0, 2, AttrMap
- lb bc, 10, 3
- ld a, $2
- call FillBoxCGB
- hlcoord 17, 2, AttrMap
- lb bc, 10, 3
- ld a, $2
- call FillBoxCGB
- hlcoord 0, 4, AttrMap
- lb bc, 6, 3
- ld a, $3
- call FillBoxCGB
- hlcoord 17, 4, AttrMap
- lb bc, 6, 3
- ld a, $3
- call FillBoxCGB
- hlcoord 0, 6, AttrMap
- lb bc, 2, 3
- ld a, $4
- call FillBoxCGB
- hlcoord 17, 6, AttrMap
- lb bc, 2, 3
- ld a, $4
- call FillBoxCGB
- hlcoord 4, 2, AttrMap
- lb bc, 2, 12
- ld a, $1
- call FillBoxCGB
- hlcoord 3, 2, AttrMap
- lb bc, 10, 1
- ld a, $1
- call FillBoxCGB
- hlcoord 16, 2, AttrMap
- lb bc, 10, 1
- ld a, $1
- call FillBoxCGB
- hlcoord 0, 12, AttrMap
- ld bc, $78
- ld a, $7
- call ByteFill
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 90f8
-
-_CGB06: ; 90f8
- ld hl, PalPacket_9ca6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- ld de, UnknOBPals
- ld a, $3c
- call GetPredefPal
- call LoadHLPaletteIntoDE
- hlcoord 0, 6, AttrMap
- lb bc, 12, SCREEN_WIDTH
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9122
-
-_CGB07: ; 9122
- ld b, 0
- ld hl, .Jumptable
- add hl, bc
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp hl
-; 912d
-
-.Jumptable: ; 912d
- dw .Function9133
- dw .Function9166
- dw .Function9180
-; 9133
-
-.Function9133: ; 9133
- ld hl, .Palette_914e
- ld de, UnknBGPals
- call LoadHLPaletteIntoDE
- ld hl, .Palette_9156
- ld de, UnknOBPals
- ld bc, 2 palettes
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
- ret
-; 914e
-
-.Palette_914e: ; 914e
- RGB 19, 31, 19
- RGB 18, 23, 31
- RGB 11, 21, 28
- RGB 04, 16, 24
-
-.Palette_9156: ; 9156
- RGB 29, 29, 29
- RGB 20, 19, 20
- RGB 19, 06, 04
- RGB 03, 04, 06
-
- RGB 31, 31, 31
- RGB 31, 31, 31
- RGB 31, 00, 00
- RGB 03, 04, 06
-; 9166
-
-.Function9166: ; 9166
- ld de, UnknBGPals
- ld a, $38
- call GetPredefPal
- call LoadHLPaletteIntoDE
-
- ld de, UnknOBPals
- ld a, $39
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- ret
-; 9180
-
-.Function9180: ; 9180
- ld hl, PalPacket_9c36 + 1
- call CopyFourPalettes
- ld de, UnknOBPals
- ld a, $3a
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- ret
-; 9195
-
-_CGB11: ; 9195
- ld hl, Palettes_b789
- ld de, UnknBGPals
- ld bc, 5 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyPals
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 91ad
-
-_CGB_Diploma: ; 91ad
- ld hl, DiplomaPalettes
- ld de, UnknBGPals
- ld bc, 16 palettes
- ld a, $5
- call FarCopyWRAM
-
- ld hl, PalPacket_9cb6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 91c8
-
-_CGB_MapPals: ; 91c8
- call LoadMapPals
- ld a, SCGB_MAPPALS
- ld [SGBPredef], a
- ret
-; 91d1
-
-_CGB_PartyMenu: ; 91d1
- ld hl, PalPacket_9c56 + 1
- call CopyFourPalettes
- call InitPartyMenuBGPal0
- call InitPartyMenuBGPal7
- call InitPartyMenuOBPals
- call ApplyAttrMap
- ret
-; 91e4
-
-_CGB_Evolution: ; 91e4
- ld de, UnknBGPals
- ld a, c
- and a
- jr z, .pokemon
- ld a, $1a
- call GetPredefPal
- call LoadHLPaletteIntoDE
- jr .got_palette
-
-.pokemon
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld c, l
- ld b, h
- ld a, [PlayerHPPal]
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld hl, Palettes_979c
- ld de, UnknOBPals palette 2
- ld bc, 6 palettes
- ld a, $5
- call FarCopyWRAM
-
-.got_palette
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9228
-
-_CGB0c: ; 9228
- ld hl, Palettes_b6f1
- ld de, UnknBGPals
- ld bc, 5 palettes
- ld a, $5
- call FarCopyWRAM
- ld hl, Palettes_b719
- ld de, UnknOBPals
- ld bc, 2 palettes
- ld a, $5
- call FarCopyWRAM
- ld a, SCGB_DIPLOMA
- ld [SGBPredef], a
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9251
-
-_CGB0d: ; 9251
- ld hl, PalPacket_9cb6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 925e
-
-_CGB_UnownPuzzle: ; 925e
- ld hl, PalPacket_9bc6 + 1
- call CopyFourPalettes
- ld de, UnknOBPals
- ld a, $4c
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, UnknOBPals
- ld a, $1f
- ld [hli], a
- ld a, $0
- ld [hl], a
- pop af
- ld [rSVBK], a
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 9289
-
-_CGB_TrainerCard: ; 9289
- ld de, UnknBGPals
- xor a ; CHRIS
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, FALKNER ; KRIS
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, BUGSY
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, WHITNEY
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, MORTY
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, CHUCK
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, JASMINE
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, PRYCE
- call GetTrainerPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- ld a, $24
- call GetPredefPal
- call LoadHLPaletteIntoDE
-
- ; fill screen with opposite-gender palette for the card border
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, [PlayerGender]
- and a
- ld a, $1 ; kris
- jr z, .got_gender
- ld a, $0 ; chris
-.got_gender
- call ByteFill
- ; fill trainer sprite area with same-gender palette
- hlcoord 14, 1, AttrMap
- lb bc, 7, 5
- ld a, [PlayerGender]
- and a
- ld a, $0 ; chris
- jr z, .got_gender2
- ld a, $1 ; kris
-.got_gender2
- call FillBoxCGB
- ; top-right corner still uses the border's palette
- hlcoord 18, 1, AttrMap
- ld [hl], $1
- hlcoord 2, 11, AttrMap
- lb bc, 2, 4
- ld a, $1 ; falkner
- call FillBoxCGB
- hlcoord 6, 11, AttrMap
- lb bc, 2, 4
- ld a, $2 ; bugsy
- call FillBoxCGB
- hlcoord 10, 11, AttrMap
- lb bc, 2, 4
- ld a, $3 ; whitney
- call FillBoxCGB
- hlcoord 14, 11, AttrMap
- lb bc, 2, 4
- ld a, $4 ; morty
- call FillBoxCGB
- hlcoord 2, 14, AttrMap
- lb bc, 2, 4
- ld a, $5 ; chuck
- call FillBoxCGB
- hlcoord 6, 14, AttrMap
- lb bc, 2, 4
- ld a, $6 ; jasmine
- call FillBoxCGB
- hlcoord 10, 14, AttrMap
- lb bc, 2, 4
- ld a, $7 ; pryce
- call FillBoxCGB
- ; clair uses kris's palette
- ld a, [PlayerGender]
- and a
- push af
- jr z, .got_gender3
- hlcoord 14, 14, AttrMap
- lb bc, 2, 4
- ld a, $1
- call FillBoxCGB
-.got_gender3
- pop af
- ld c, $0
- jr nz, .got_gender4
- inc c
-.got_gender4
- ld a, c
- hlcoord 18, 1, AttrMap
- ld [hl], a
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9373
-
-_CGB_MoveList: ; 9373
- ld de, UnknBGPals
- ld a, $10
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld a, [PlayerHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- ld bc, Palettes_a8be
- add hl, bc
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- hlcoord 11, 1, AttrMap
- lb bc, 2, 9
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 93a6
-
-_CGB0f: ; 93a6
- ld hl, PalPacket_9c46 + 1
- call CopyFourPalettes
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 93ba
-
-_CGB_PokedexSearchOption: ; 93ba
- ld de, UnknBGPals
- ld a, $1d
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 93d3
-
-_CGB_PackPals: ; 93d3
-; pack pals
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- jr z, .tutorial_male
-
- ld a, [PlayerGender]
- bit 0, a
- jr z, .tutorial_male
-
- ld hl, .KrisPackPals
- jr .got_gender
-
-.tutorial_male
- ld hl, .ChrisPackPals
-
-.got_gender
- ld de, UnknBGPals
- ld bc, 8 palettes ; 6 palettes?
- ld a, $5
- call FarCopyWRAM
- call WipeAttrMap
- hlcoord 0, 0, AttrMap
- lb bc, 1, 10
- ld a, $1
- call FillBoxCGB
- hlcoord 10, 0, AttrMap
- lb bc, 1, 10
- ld a, $2
- call FillBoxCGB
- hlcoord 7, 2, AttrMap
- lb bc, 9, 1
- ld a, $3
- call FillBoxCGB
- hlcoord 0, 7, AttrMap
- lb bc, 3, 5
- ld a, $4
- call FillBoxCGB
- hlcoord 0, 3, AttrMap
- lb bc, 3, 5
- ld a, $5
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 9439
-
-.ChrisPackPals: ; 9439
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 11, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 00, 00, 31
- RGB 31, 00, 00
-
- RGB 31, 31, 31
- RGB 15, 15, 31
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 07, 19, 07
- RGB 07, 19, 07
- RGB 00, 00, 00
-; 9469
-
-.KrisPackPals: ; 9469
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 00, 00, 00
-
- RGB 15, 15, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 07, 31
- RGB 31, 00, 00
-
- RGB 31, 31, 31
- RGB 31, 14, 31
- RGB 31, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 07, 19, 07
- RGB 07, 19, 07
- RGB 00, 00, 00
-; 9499
-
-_CGB_Pokepic: ; 9499
- call _CGB_MapPals
- ld de, SCREEN_WIDTH
- hlcoord 0, 0, AttrMap
- ld a, [wMenuBorderTopCoord]
-.loop
- and a
- jr z, .found_top
- dec a
- add hl, de
- jr .loop
-
-.found_top
- ld a, [wMenuBorderLeftCoord]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [wMenuBorderTopCoord]
- ld b, a
- ld a, [wMenuBorderBottomCoord]
- inc a
- sub b
- ld b, a
- ld a, [wMenuBorderLeftCoord]
- ld c, a
- ld a, [wMenuBorderRightCoord]
- sub c
- inc a
- ld c, a
- ld a, $0
- call FillBoxCGB
- call ApplyAttrMap
- ret
-; 94d0
-
-_CGB13: ; 94d0
- ld hl, PalPacket_9ba6 + 1
- call CopyFourPalettes
- call WipeAttrMap
- hlcoord 0, 4, AttrMap
- lb bc, 10, SCREEN_WIDTH
- ld a, $2
- call FillBoxCGB
- hlcoord 0, 6, AttrMap
- lb bc, 6, SCREEN_WIDTH
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- call ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 94fa
-
-_CGB_GamefreakLogo: ; 94fa
- ld de, UnknBGPals
- ld a, $4e
- call GetPredefPal
- call LoadHLPaletteIntoDE
- ld hl, .Palette
- ld de, UnknOBPals
- call LoadHLPaletteIntoDE
- ld hl, .Palette
- ld de, UnknOBPals palette 1
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ret
-; 9521
-
-.Palette: ; 9521
- RGB 31, 31, 31
- RGB 13, 11, 00
- RGB 23, 12, 28
- RGB 00, 00, 00
-; 9529
-
-_CGB_PlayerOrMonFrontpicPals: ; 9529
- ld de, UnknBGPals
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ret
-; 9542
-
-_CGB1e: ; 9542
- ld de, UnknBGPals
- ld a, [CurPartySpecies]
- call GetMonPalettePointer_
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- call ApplyAttrMap
- ret
-; 9555
-
-_CGB_TradeTube: ; 9555
- ld hl, PalPacket_9cc6 + 1
- call CopyFourPalettes
- ld hl, Palettes_b681
- ld de, UnknOBPals
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ld de, UnknOBPals palette 7
- ld a, $1c
- call GetPredefPal
- call LoadHLPaletteIntoDE
- call WipeAttrMap
- ret
-; 9578
-
-_CGB_TrainerOrMonFrontpicPals: ; 9578
- ld de, UnknBGPals
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetFrontpicPalettePointer
- call LoadPalette_White_Col1_Col2_Black
- call WipeAttrMap
- call ApplyAttrMap
- call ApplyPals
- ret
-; 9591
-
-_CGB_MysteryGift: ; 9591
- ld hl, .Palettes
- ld de, UnknBGPals
- ld bc, 2 palettes
- ld a, $5
- call FarCopyWRAM
- call ApplyPals
- call WipeAttrMap
- hlcoord 3, 7, AttrMap
- lb bc, 8, 14
- ld a, $1
- call FillBoxCGB
- hlcoord 1, 5, AttrMap
- lb bc, 1, 18
- ld a, $1
- call FillBoxCGB
- hlcoord 1, 16, AttrMap
- lb bc, 1, 18
- ld a, $1
- call FillBoxCGB
- hlcoord 0, 0, AttrMap
- lb bc, 17, 2
- ld a, $1
- call FillBoxCGB
- hlcoord 18, 5, AttrMap
- lb bc, 12, 1
- ld a, $1
- call FillBoxCGB
- call ApplyAttrMap
- ret
-; 95e0
-
-.Palettes: ; 95e0
- RGB 31, 31, 31
- RGB 16, 31, 14
- RGB 05, 14, 21
- RGB 05, 13, 10
-
- RGB 31, 31, 31
- RGB 11, 21, 25
- RGB 05, 14, 21
- RGB 00, 03, 19
-; 95f0
diff --git a/predef/crystal.asm b/predef/crystal.asm
deleted file mode 100755
index 9aa0fbdf2..000000000
--- a/predef/crystal.asm
+++ /dev/null
@@ -1,614 +0,0 @@
-GetMysteryGift_MobileAdapterLayout: ; 4930f (mobile)
- ld a, b
- cp SCGB_RAM
- jr nz, .not_ram
- ld a, [SGBPredef]
-.not_ram
- push af
- callba ResetBGPals
- pop af
- ld l, a
- ld h, 0
- add hl, hl
- ld de, .dw
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .done
- push de
- jp hl
-.done
- ret
-; 49330 (12:5330)
-
-.dw ; 49330
-
- dw MG_Mobile_Layout00
- dw MG_Mobile_Layout01
- dw MG_Mobile_Layout02
-; 49336
-
-MG_Mobile_Layout_FillBox: ; 49336
-.row
- push bc
- push hl
-.col
- ld [hli], a
- dec c
- jr nz, .col
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .row
- ret
-; 49346
-
-MG_Mobile_Layout_WipeAttrMap: ; 49346 (12:5346)
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- xor a
- call ByteFill
- ret
-
-MG_Mobile_Layout_LoadPals: ; 49351 (12:5351)
- ld de, UnknBGPals
- ld hl, Palette_493e1
- ld bc, 5 palettes
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- ld de, UnknBGPals + 7 palettes
- ld hl, Palette_TextBG7
- ld bc, 1 palettes
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- ret
-
-MG_Mobile_Layout00: ; 4936e (12:536e)
- call MG_Mobile_Layout_LoadPals
- call MG_Mobile_Layout_WipeAttrMap
- call MG_Mobile_Layout_CreatePalBoxes
- callba ApplyAttrMap
- callba ApplyPals
- ret
-
-MG_Mobile_Layout_CreatePalBoxes: ; 49384 (12:5384)
- hlcoord 0, 0, AttrMap
- lb bc, 4, 1
- ld a, $1
- call MG_Mobile_Layout_FillBox
- lb bc, 2, 1
- ld a, $2
- call MG_Mobile_Layout_FillBox
- lb bc, 6, 1
- ld a, $3
- call MG_Mobile_Layout_FillBox
- hlcoord 1, 0, AttrMap
- ld a, $1
- lb bc, 3, 18
- call MG_Mobile_Layout_FillBox
- lb bc, 2, 18
- ld a, $2
- call MG_Mobile_Layout_FillBox
- lb bc, 12, 18
- ld a, $3
- call MG_Mobile_Layout_FillBox
- hlcoord 19, 0, AttrMap
- lb bc, 4, 1
- ld a, $1
- call MG_Mobile_Layout_FillBox
- lb bc, 2, 1
- ld a, $2
- call MG_Mobile_Layout_FillBox
- lb bc, 6, 1
- ld a, $3
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 12, AttrMap
- ld bc, 6 * SCREEN_WIDTH
- ld a, $7
- call ByteFill
- ret
-; 493e1 (12:53e1)
-
-Palette_493e1: ; 493e1
- RGB 03, 07, 09
- RGB 26, 31, 00
- RGB 20, 16, 03
- RGB 31, 31, 31
-
- RGB 13, 24, 29
- RGB 11, 16, 30
- RGB 07, 11, 22
- RGB 05, 06, 18
-
- RGB 31, 31, 31
- RGB 20, 26, 31
- RGB 13, 24, 29
- RGB 11, 16, 30
-
- RGB 31, 31, 31
- RGB 20, 26, 31
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 31
- RGB 20, 16, 08
- RGB 31, 00, 00
- RGB 00, 00, 00
-; 49409
-
-LoadOW_BGPal7:: ; 49409
- ld hl, Palette_TextBG7
- ld de, UnknBGPals + 8 * 7
- ld bc, 8
- ld a, $5
- call FarCopyWRAM
- ret
-; 49418
-
-Palette_TextBG7: ; 49418
- RGB 31, 31, 31
- RGB 08, 19, 28
- RGB 05, 05, 16
- RGB 00, 00, 00
-; 49420
-
-Function49420:: ; 49420 (12:5420)
- ld hl, MansionPalette4
- ld de, UnknBGPals + $30
- ld bc, $8
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- ret
-; 4942f (12:542f)
-
-MG_Mobile_Layout01: ; 4942f
- call MG_Mobile_Layout_LoadPals
- ld de, UnknBGPals + $38
- ld hl, Palette_49478
- ld bc, $8
- ld a, $5 ; BANK(UnknBGPals)
- call FarCopyWRAM
- call MG_Mobile_Layout_WipeAttrMap
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- hlcoord 0, 14, AttrMap
- ld bc, 4 * SCREEN_WIDTH
- ld a, $7
- call ByteFill
- ld a, [wd002]
- bit 6, a
- jr z, .asm_49464
- call Function49480
- jr .asm_49467
-
-.asm_49464
- call Function49496
-
-.asm_49467
- callba ApplyAttrMap
- callba ApplyPals
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 49478
-
-Palette_49478: ; 49478
- RGB 31, 31, 31
- RGB 26, 31, 00
- RGB 20, 16, 03
- RGB 00, 00, 00
-; 49480
-
-Function49480: ; 49480
- hlcoord 0, 0, AttrMap
- lb bc, 4, SCREEN_WIDTH
- ld a, $7
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 2, AttrMap
- ld a, $4
- ld [hl], a
- hlcoord 19, 2, AttrMap
- ld [hl], a
- ret
-; 49496
-
-Function49496: ; 49496
- hlcoord 0, 0, AttrMap
- lb bc, 2, SCREEN_WIDTH
- ld a, $7
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 1, AttrMap
- ld a, $4
- ld [hl], a
- hlcoord 19, 1, AttrMap
- ld [hl], a
- ret
-; 494ac
-
-LoadSpecialMapPalette: ; 494ac
- ld a, [wTileset]
- cp TILESET_POKECOM_CENTER
- jr z, .pokecom_2f
- cp TILESET_BATTLE_TOWER
- jr z, .battle_tower
- cp TILESET_ICE_PATH
- jr z, .ice_path
- cp TILESET_HOUSE_1
- jr z, .house
- cp TILESET_RADIO_TOWER
- jr z, .radio_tower
- cp TILESET_CELADON_MANSION
- jr z, .mansion_mobile
- jr .do_nothing
-
-.pokecom_2f
- call LoadPokeComPalette
- scf
- ret
-
-.battle_tower
- call LoadBattleTowerPalette
- scf
- ret
-
-.ice_path
- ld a, [wPermission] ; permission
- and 7
- cp 3 ; Hall of Fame
- jr z, .do_nothing
- call LoadIcePathPalette
- scf
- ret
-
-.house
- call LoadHousePalette
- scf
- ret
-
-.radio_tower
- call LoadRadioTowerPalette
- scf
- ret
-
-.mansion_mobile
- call LoadMansionPalette
- scf
- ret
-
-.do_nothing
- and a
- ret
-; 494f2
-
-LoadPokeComPalette: ; 494f2
- ld a, $5
- ld de, UnknBGPals
- ld hl, PokeComPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 49501
-
-PokeComPalette: ; 49501
-INCLUDE "tilesets/pokecom.pal"
-; 49541
-
-LoadBattleTowerPalette: ; 49541
- ld a, $5
- ld de, UnknBGPals
- ld hl, BattleTowerPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 49550
-
-BattleTowerPalette: ; 49550
-INCLUDE "tilesets/battle_tower.pal"
-; 49590
-
-LoadIcePathPalette: ; 49590
- ld a, $5
- ld de, UnknBGPals
- ld hl, IcePathPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 4959f
-
-IcePathPalette: ; 4959f
-INCLUDE "tilesets/ice_path.pal"
-; 495df
-
-LoadHousePalette: ; 495df
- ld a, $5
- ld de, UnknBGPals
- ld hl, HousePalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 495ee
-
-HousePalette: ; 495ee
-INCLUDE "tilesets/house.pal"
-; 4962e
-
-LoadRadioTowerPalette: ; 4962e
- ld a, $5
- ld de, UnknBGPals
- ld hl, RadioTowerPalette
- ld bc, 8 palettes
- call FarCopyWRAM
- ret
-; 4963d
-
-RadioTowerPalette: ; 4963d
-INCLUDE "tilesets/radio_tower.pal"
-; 4967d
-
-MansionPalette1: ; 4967d
- RGB 30, 28, 26
- RGB 19, 19, 19
- RGB 13, 13, 13
- RGB 07, 07, 07
-
- RGB 30, 28, 26
- RGB 31, 19, 24
- RGB 30, 10, 06
- RGB 07, 07, 07
-
- RGB 18, 24, 09
- RGB 15, 20, 01
- RGB 09, 13, 00
- RGB 07, 07, 07
-
- RGB 30, 28, 26
- RGB 15, 16, 31
- RGB 09, 09, 31
- RGB 07, 07, 07
-
- RGB 30, 28, 26
- RGB 31, 31, 07
- RGB 31, 16, 01
- RGB 07, 07, 07
-
- RGB 26, 24, 17
- RGB 21, 17, 07
- RGB 16, 13, 03
- RGB 07, 07, 07
-
-MansionPalette3: ; 496ad
- RGB 30, 28, 26
- RGB 17, 19, 31
- RGB 14, 16, 31
- RGB 07, 07, 07
-
- RGB 31, 31, 16
- RGB 31, 31, 16
- RGB 14, 09, 00
- RGB 00, 00, 00
-; 496bd
-
-MansionPalette4: ; 496bd
- RGB 05, 05, 16
- RGB 08, 19, 28
- RGB 00, 00, 00
- RGB 31, 31, 31
-; 496c5
-
-LoadMansionPalette: ; 496c5
- ld a, $5
- ld de, UnknBGPals
- ld hl, MansionPalette1
- ld bc, 8 palettes
- call FarCopyWRAM
- ld a, $5
- ld de, UnknBGPals + 4 palettes
- ld hl, MansionPalette2
- ld bc, 1 palettes
- call FarCopyWRAM
- ld a, $5
- ld de, UnknBGPals + 3 palettes
- ld hl, MansionPalette3
- ld bc, 1 palettes
- call FarCopyWRAM
- ld a, $5
- ld de, UnknBGPals + 6 palettes
- ld hl, MansionPalette4
- ld bc, 1 palettes
- call FarCopyWRAM
- ret
-; 496fe
-
-MansionPalette2: ; 496fe
- RGB 25, 24, 23
- RGB 20, 19, 19
- RGB 14, 16, 31
- RGB 07, 07, 07
-; 49706
-
-MG_Mobile_Layout02: ; 49706
- ld hl, Palette_49732
- ld de, UnknBGPals
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- call MG_Mobile_Layout_WipeAttrMap
- callba ApplyAttrMap
- ld hl, Palette_4973a
- ld de, UnknOBPals
- ld bc, 1 palettes
- ld a, $5
- call FarCopyWRAM
- ret
-; 49732
-
-Palette_49732: ; 49732
- RGB 31, 31, 31
- RGB 23, 16, 07
- RGB 23, 07, 07
- RGB 03, 07, 20
-; 4973a
-
-Palette_4973a: ; 4973a
- RGB 00, 00, 00
- RGB 07, 05, 31
- RGB 14, 18, 31
- RGB 31, 31, 31
-; 49742
-
-Function49742: ; 49742
- ld hl, Palette_49757
- ld de, UnknBGPals
- ld bc, $40
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ret
-; 49757
-
-Palette_49757: ; 49757
- RGB 31, 31, 63
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 31, 31, 63
- RGB 00, 00, 00
- RGB 00, 00, 00
- RGB 00, 00, 00
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 31, 00, 00
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 30, 16, 26
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 16, 16, 16
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 31, 12, 12
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 07, 08, 31
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 21, 00, 21
- RGB 29, 28, 09
- RGB 31, 31, 31
-; 49797
-
-_InitMG_Mobile_LinkTradePalMap: ; 49797
- hlcoord 0, 0, AttrMap
- lb bc, 16, 2
- ld a, $4
- call MG_Mobile_Layout_FillBox
- ld a, $3
- ldcoord_a 0, 1, AttrMap
- ldcoord_a 0, 14, AttrMap
- hlcoord 2, 0, AttrMap
- lb bc, 8, 18
- ld a, $5
- call MG_Mobile_Layout_FillBox
- hlcoord 2, 8, AttrMap
- lb bc, 8, 18
- ld a, $6
- call MG_Mobile_Layout_FillBox
- hlcoord 0, 16, AttrMap
- lb bc, 2, SCREEN_WIDTH
- ld a, $4
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 6, 1, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 17, 1, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 6, 9, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $3
- lb bc, 6, 1
- hlcoord 17, 9, AttrMap
- call MG_Mobile_Layout_FillBox
- ld a, $2
- hlcoord 2, 16, AttrMap
- ld [hli], a
- ld a, $7
- ld [hli], a
- ld [hli], a
- ld [hli], a
- ld a, $2
- ld [hl], a
- hlcoord 2, 17, AttrMap
- ld a, $3
- ld bc, 6
- call ByteFill
- ret
-; 49811
-
-LoadTradeRoomBGPals: ; 49811
- ld hl, Palette_49826
- ld de, UnknBGPals + $10
- ld bc, $30
- ld a, $5
- call FarCopyWRAM
- callba ApplyPals
- ret
-; 49826
-
-Palette_49826: ; 49826
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 31, 00, 00
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 15, 23, 30
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 16, 16, 16
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 25, 07, 04
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 03, 22, 08
- RGB 31, 31, 31
-
- RGB 04, 02, 15
- RGB 07, 09, 31
- RGB 29, 28, 09
- RGB 31, 31, 31
-; 49856
-
-InitMG_Mobile_LinkTradePalMap: ; 49856
- call _InitMG_Mobile_LinkTradePalMap
- ret
-; 4985a
diff --git a/predef/sgb.asm b/predef/sgb.asm
deleted file mode 100644
index dc174e86f..000000000
--- a/predef/sgb.asm
+++ /dev/null
@@ -1,636 +0,0 @@
-Predef_LoadSGBLayout: ; 864c
-; LoadSGBLayout
- call CheckCGB
- jp nz, Predef_LoadSGBLayoutCGB
-
- ld a, b
- cp SCGB_RAM
- jr nz, .not_ram
- ld a, [SGBPredef]
-.not_ram
- cp SCGB_PARTY_MENU_HP_PALS
- jp z, SGB_ApplyPartyMenuHPPals
- ld l, a
- ld h, 0
- add hl, hl
- ld de, .Jumptable
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .Finish
- push de
- jp hl
-; 866f
-
-.Jumptable: ; 866f
- dw .SGB_BattleGrayscale
- dw .SGB_BattleColors
- dw .SGB_PokegearPals
- dw .SGB_StatsScreenHPPals
- dw .SGB_Pokedex
- dw .SGB_SlotMachine
- dw .SGB06
- dw .SGB07
- dw .SGB_Diploma
- dw .SGB_MapPals
- dw .SGB_PartyMenu
- dw .SGB_Evolution
- dw .SGB0c
- dw .SGB0d
- dw .SGB_MoveList
- dw .SGB0f
- dw .SGB_PokedexSearchOption
- dw .SGB11
- dw .SGB12
- dw .SGB13
- dw .SGB_PackPals
- dw .SGB_TrainerCard
- dw .SGB_PokedexUnownMode
- dw .SGB_BillsPC
- dw .SGB_UnownPuzzle
- dw .SGB19
- dw .SGB_PlayerOrMonFrontpicPals
- dw .SGB_TradeTube
- dw .SGB_TrainerOrMonFrontpicPals
- dw .SGB_MysteryGift
- dw .SGB1e
-; 86ad
-
-.SGB_BattleGrayscale: ; 86ad
- ld hl, PalPacket_9c66
- ld de, BlkPacket_9aa6
- ret
-; 86b4
-
-.SGB_BattleColors: ; 86b4
- ld hl, BlkPacket_9aa6
- call PushSGBPals_
-
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
-
- ld a, [PlayerHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- ld de, Palettes_a8be
- add hl, de
-
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
-
- ld a, [EnemyHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
-
- ld de, Palettes_a8be
- add hl, de
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
-
- ld hl, PalPacket_9cf6
- ld de, wSGBPals + $10
- ld bc, $10
- call CopyBytes
-
- call GetBattlemonBackpicPalettePointer
-
- ld a, [hli]
- ld [wSGBPals + $13], a
- ld a, [hli]
- ld [wSGBPals + $14], a
- ld a, [hli]
- ld [wSGBPals + $15], a
- ld a, [hl]
- ld [wSGBPals + $16], a
- call GetEnemyFrontpicPalettePointer
- ld a, [hli]
- ld [wSGBPals + $19], a
- ld a, [hli]
- ld [wSGBPals + $1a], a
- ld a, [hli]
- ld [wSGBPals + $1b], a
- ld a, [hl]
- ld [wSGBPals + $1c], a
-
- ld hl, wSGBPals
- ld de, wSGBPals + $10
- ld a, SCGB_BATTLE_COLORS
- ld [SGBPredef], a
- ret
-; 873c
-
-.SGB_MoveList: ; 873c
- ld hl, PalPacket_9bd6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
-
- ld hl, wSGBPals + 1
- ld [hl], $10
- inc hl
- inc hl
-
- ld a, [PlayerHPPal]
- add $2f
- ld [hl], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ad6
- ret
-; 875c
-
-.SGB_PokegearPals: ; 875c
- ld hl, PalPacket_9c76
- ld de, BlkPacket_9a86
- ret
-; 8763
-
-.SGB_StatsScreenHPPals: ; 8763
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [wCurHPPal]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- ld de, Palettes_a8be
- add hl, de
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ac6
- ret
-; 87ab
-
-.SGB_PartyMenu: ; 87ab
- ld hl, PalPacket_9c56
- ld de, wSGBPals + 1
- ret
-; 87b2
-
-.SGB_Pokedex: ; 87b2
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, wSGBPals + 3
- ld [hl], $9f
- inc hl
- ld [hl], $2a
- inc hl
- ld [hl], $5a
- inc hl
- ld [hl], $19
- ld a, [CurPartySpecies]
- call GetMonPalettePointer_
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ae6
- ret
-; 87e9
-
-.SGB_BillsPC: ; 87e9
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, wSGBPals + 3
- ld [hl], $9f
- inc hl
- ld [hl], $2a
- inc hl
- ld [hl], $5a
- inc hl
- ld [hl], $19
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 9], a
- ld a, [hli]
- ld [wSGBPals + 10], a
- ld a, [hli]
- ld [wSGBPals + 11], a
- ld a, [hl]
- ld [wSGBPals + 12], a
- ld hl, wSGBPals
- ld de, BlkPacket_9ae6
- ret
-; 8823
-
-.SGB_PokedexUnownMode: ; 8823
- call .SGB_Pokedex
- ld de, BlkPacket_9af6
- ret
-; 882a
-
-.SGB_PokedexSearchOption: ; 882a
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, wSGBPals + 3
- ld [hl], $9f
- inc hl
- ld [hl], $2a
- inc hl
- ld [hl], $5a
- inc hl
- ld [hl], $19
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 884b
-
-.SGB_PackPals: ; 884b
- ld hl, PalPacket_9c36
- ld de, BlkPacket_9a86
- ret
-; 8852
-
-.SGB_SlotMachine: ; 8852
- ld hl, PalPacket_9c96
- ld de, BlkPacket_9b06
- ret
-; 8859
-
-.SGB06: ; 8859
- ld hl, PalPacket_9ca6
- ld de, BlkPacket_9b76
- ret
-; 8860
-
-.SGB_Diploma:
-.SGB_MysteryGift: ; 8860
- ld hl, PalPacket_9cb6
- ld de, BlkPacket_9a86
- ret
-; 8867
-
-.SGB07: ; 8867
- ld b, 0
- ld hl, .BlkPacketTable_SGB07
-rept 4
- add hl, bc
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; 8878
-
-.BlkPacketTable_SGB07: ; 8878
- dw BlkPacket_9a86, PalPacket_9be6
- dw BlkPacket_9a96, PalPacket_9c06
- dw BlkPacket_9a86, PalPacket_9c16
-; 8884
-
-.SGB0c: ; 8884
- ld hl, PalPacket_9b96
- ld de, BlkPacket_9b56
- ld a, SCGB_DIPLOMA
- ld [SGBPredef], a
- ret
-; 8890
-
-.SGB13: ; 8890
- ld hl, PalPacket_9ba6
- ld de, BlkPacket_9b86
- ret
-; 8897
-
-.SGB0f: ; 8897
- ld hl, PalPacket_9c46
- ld de, BlkPacket_9a86
- ret
-; 889e
-
-.SGB11: ; 889e
- ld hl, BlkPacket_9a86
- ld de, PlayerLightScreenCount
- ld bc, $10
- call CopyBytes
- ld hl, PalPacket_9bb6
- ld de, BlkPacket_9a86
- ret
-; 88b1
-
-.SGB_MapPals: ; 88b1
- ld hl, PalPacket_9bd6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- call .GetMapPalsIndex
- ld hl, wSGBPals + 1
- ld [hld], a
- ld de, BlkPacket_9a86
- ld a, SCGB_MAPPALS
- ld [SGBPredef], a
- ret
-; 88cd
-
-.SGB_Evolution: ; 88cd
- push bc
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- pop bc
- ld a, c
- and a
- jr z, .partymon
- ; Egg
- ld hl, wSGBPals + 3
- ; RGB 7, 7, 7
- ld [hl], $e7
- inc hl
- ld [hl], $1c
- inc hl
- ; RGB 2, 3, 3
- ld [hl], $62
- inc hl
- ld [hl], $c
- jr .done
-
-.partymon
- ld hl, PartyMon1DVs
- ld bc, PARTYMON_STRUCT_LENGTH
- ld a, [CurPartyMon]
- call AddNTimes
- ld c, l
- ld b, h
- ld a, [PlayerHPPal]
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
-
-.done
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 891a
-
-.SGB0d:
-.SGB_TrainerCard: ; 891a
- ld hl, PalPacket_9cb6
- ld de, BlkPacket_9a86
- ret
-; 8921
-
-.SGB_UnownPuzzle: ; 8921
- ld hl, PalPacket_9bc6
- ld de, BlkPacket_9a86
- ret
-; 8928
-
-.SGB12: ; 8928
- ld hl, PalPacket_9bd6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld hl, BlkPacket_9a86
- ld de, wSGBPals + $10
- ld bc, $10
- call CopyBytes
- call .GetMapPalsIndex
- ld hl, wSGBPals + 1
- ld [hl], a
- ld hl, wSGBPals + 3
- ld [hl], $2e
- ld hl, wSGBPals + $13
- ld a, 5
- ld [hli], a
- ld a, [wMenuBorderLeftCoord]
- ld [hli], a
- ld a, [wMenuBorderTopCoord]
- ld [hli], a
- ld a, [wMenuBorderRightCoord]
- ld [hli], a
- ld a, [wMenuBorderBottomCoord]
- ld [hl], a
- ld hl, wSGBPals
- ld de, wSGBPals + $10
- ret
-; 8969
-
-.SGB1e: ; 8969
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [CurPartySpecies]
- ld l, a
- ld h, 0
- add hl, hl
- add hl, hl
- add hl, hl
- ld de, PokemonPalettes
- add hl, de
- ld a, [wcf65]
- and 3
- sla a
- sla a
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 89a6
-
-.SGB19: ; 89a6
- ld hl, PalPacket_9cd6
- ld de, BlkPacket_9a86
- ret
-; 89ad
-
-.SGB_PlayerOrMonFrontpicPals: ; 89ad
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetPlayerOrMonPalettePointer
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 89d9
-
-.SGB_TradeTube: ; 89d9
- ld hl, PalPacket_9cc6
- ld de, BlkPacket_9a86
- ret
-; 89e0
-
-.SGB_TrainerOrMonFrontpicPals: ; 89e0
- ld hl, PalPacket_9ce6
- ld de, wSGBPals
- ld bc, $10
- call CopyBytes
- ld a, [CurPartySpecies]
- ld bc, TempMonDVs
- call GetFrontpicPalettePointer
- ld a, [hli]
- ld [wSGBPals + 3], a
- ld a, [hli]
- ld [wSGBPals + 4], a
- ld a, [hli]
- ld [wSGBPals + 5], a
- ld a, [hl]
- ld [wSGBPals + 6], a
- ld hl, wSGBPals
- ld de, BlkPacket_9a86
- ret
-; 8a0c
-
-.GetMapPalsIndex: ; 8a0c
- ld a, [TimeOfDayPal]
- cp NITE_F
- jr c, .morn_day
- ld a, $19
- ret
-
-.morn_day
- ld a, [wPermission]
- cp ROUTE
- jr z, .route
- cp CAVE
- jr z, .cave
- cp DUNGEON
- jr z, .cave
- cp PERM_5
- jr z, .perm5
- cp GATE
- jr z, .gate
- ld a, [MapGroup]
- ld e, a
- ld d, 0
- ld hl, .SGBRoofPalInds
- add hl, de
- ld a, [hl]
- ret
-
-.route
- ld a, $00
- ret
-
-.cave
- ld a, $18
- ret
-
-.perm5
- ld a, $06
- ret
-
-.gate
- ld a, $03
- ret
-; 8a45
-
-.SGBRoofPalInds: ; 8a45
- db $00 ; Unused
- db $12 ; Olivine
- db $14 ; Mahogany
- db $18 ; Various Dungeons
- db $11 ; Ecruteak
- db $15 ; Blackthorn
- db $09 ; Cinnabar
- db $04 ; Cerulean
- db $0f ; Azalea
- db $16 ; Lake Of Rage
- db $0e ; Violet
- db $10 ; Goldenrod
- db $06 ; Vermilion
- db $01 ; Palette
- db $03 ; Pewter
- db $06 ; Fast Ship
- db $0b ; Indigo Plateau
- db $08 ; Fuchsia
- db $05 ; Lavender
- db $17 ; Silver Cave Outside
- db $08 ; Pokemon Center 2F
- db $07 ; Celadon
- db $13 ; Cianwood
- db $02 ; Viridian
- db $0c ; New Bark
- db $0a ; Saffron
- db $0d ; Cherrygrove
-; 8a60
-
-.Finish: ; 8a60
- push de
- call PushSGBPals_
- pop hl
- jp PushSGBPals_
-; 8a68
diff --git a/sram.asm b/sram.asm
index 22b377b3c..163de6bda 100644
--- a/sram.asm
+++ b/sram.asm
@@ -1,9 +1,11 @@
SRAM_Begin EQU $a000
SRAM_End EQU $c000
+
GLOBAL SRAM_Begin, SRAM_End
SECTION "Scratch", SRAM
+
sScratch::
@@ -11,12 +13,12 @@ SECTION "SRAM Bank 0", SRAM
; a600
sPartyMail::
-sPartyMon1Mail:: mailmsg sPartyMon1Mail
-sPartyMon2Mail:: mailmsg sPartyMon2Mail
-sPartyMon3Mail:: mailmsg sPartyMon3Mail
-sPartyMon4Mail:: mailmsg sPartyMon4Mail
-sPartyMon5Mail:: mailmsg sPartyMon5Mail
-sPartyMon6Mail:: mailmsg sPartyMon6Mail
+sPartyMon1Mail:: mailmsg sPartyMon1Mail
+sPartyMon2Mail:: mailmsg sPartyMon2Mail
+sPartyMon3Mail:: mailmsg sPartyMon3Mail
+sPartyMon4Mail:: mailmsg sPartyMon4Mail
+sPartyMon5Mail:: mailmsg sPartyMon5Mail
+sPartyMon6Mail:: mailmsg sPartyMon6Mail
; a71a
sPartyMailBackup::
@@ -28,45 +30,45 @@ sPartyMon5MailBackup:: mailmsg sPartyMon5MailBackup
sPartyMon6MailBackup:: mailmsg sPartyMon6MailBackup
; a834
-sMailboxCount:: ds 1
+sMailboxCount:: db
sMailbox::
-sMailbox1:: mailmsg sMailbox1
-sMailbox2:: mailmsg sMailbox2
-sMailbox3:: mailmsg sMailbox3
-sMailbox4:: mailmsg sMailbox4
-sMailbox5:: mailmsg sMailbox5
-sMailbox6:: mailmsg sMailbox6
-sMailbox7:: mailmsg sMailbox7
-sMailbox8:: mailmsg sMailbox8
-sMailbox9:: mailmsg sMailbox9
-sMailbox10:: mailmsg sMailbox10
+sMailbox1:: mailmsg sMailbox1
+sMailbox2:: mailmsg sMailbox2
+sMailbox3:: mailmsg sMailbox3
+sMailbox4:: mailmsg sMailbox4
+sMailbox5:: mailmsg sMailbox5
+sMailbox6:: mailmsg sMailbox6
+sMailbox7:: mailmsg sMailbox7
+sMailbox8:: mailmsg sMailbox8
+sMailbox9:: mailmsg sMailbox9
+sMailbox10:: mailmsg sMailbox10
; aa0b
-sMailboxCountBackup:: ds 1
+sMailboxCountBackup:: db
sMailboxBackup::
-sMailbox1Backup:: mailmsg sMailbox1Backup
-sMailbox2Backup:: mailmsg sMailbox2Backup
-sMailbox3Backup:: mailmsg sMailbox3Backup
-sMailbox4Backup:: mailmsg sMailbox4Backup
-sMailbox5Backup:: mailmsg sMailbox5Backup
-sMailbox6Backup:: mailmsg sMailbox6Backup
-sMailbox7Backup:: mailmsg sMailbox7Backup
-sMailbox8Backup:: mailmsg sMailbox8Backup
-sMailbox9Backup:: mailmsg sMailbox9Backup
-sMailbox10Backup:: mailmsg sMailbox10Backup
+sMailbox1Backup:: mailmsg sMailbox1Backup
+sMailbox2Backup:: mailmsg sMailbox2Backup
+sMailbox3Backup:: mailmsg sMailbox3Backup
+sMailbox4Backup:: mailmsg sMailbox4Backup
+sMailbox5Backup:: mailmsg sMailbox5Backup
+sMailbox6Backup:: mailmsg sMailbox6Backup
+sMailbox7Backup:: mailmsg sMailbox7Backup
+sMailbox8Backup:: mailmsg sMailbox8Backup
+sMailbox9Backup:: mailmsg sMailbox9Backup
+sMailbox10Backup:: mailmsg sMailbox10Backup
; abe2
-sMysteryGiftItem:: ds 1
-sMysteryGiftUnlocked:: ds 1
-sBackupMysteryGiftItem:: ds 1
-sNumDailyMysteryGiftPartnerIDs:: ds 1
+sMysteryGiftItem:: db
+sMysteryGiftUnlocked:: db
+sBackupMysteryGiftItem:: db
+sNumDailyMysteryGiftPartnerIDs:: db
sDailyMysteryGiftPartnerIDs:: ds 5 * 2 ; maximum 5 per day, 2 bytes per ID
sMysteryGiftDecorationsReceived:: flag_array NUM_NON_TROPHY_DECOS
ds 4
-sMysteryGiftTimer:: ds 1
-sMysteryGiftTimerStartDay:: ds 1
+sMysteryGiftTimer:: db
+sMysteryGiftTimerStartDay:: db
ds 1
-sMysteryGiftTrainerHouseFlag:: ds 1
+sMysteryGiftTrainerHouseFlag:: db
sMysteryGiftPartnerName:: ds NAME_LENGTH
s0_ac09:: ds 1
sMysteryGiftTrainer:: ds (1 + 1 + NUM_MOVES) * PARTY_LENGTH + 2 ; ac0a
@@ -75,13 +77,15 @@ sBackupMysteryGiftItemEnd::
ds $30
sRTCStatusFlags:: ds 8
-sLuckyNumberDay:: ds 1
-sLuckyIDNumber:: ds 2
+sLuckyNumberDay:: db
+sLuckyIDNumber:: dw
+
SECTION "Backup Save", SRAM
+
sBackupOptions:: ds OptionsEnd - Options
-s0_b208:: ds 1 ; loaded with 99, used to check save corruption
+sBackupCheckValue1:: db ; loaded with SAVE_CHECK_VALUE_1, used to check save corruption
sBackupGameData:: ; b209
sBackupPlayerData:: ds wPlayerDataEnd - wPlayerData
@@ -93,16 +97,18 @@ sBackupGameDataEnd::
ds $18a
; bf0d
-sBackupChecksum:: ds 2
-s0_bf0f:: ds 1 ; loaded with 0x7f, used to check save corruption
-sStackTop:: ds 2
+sBackupChecksum:: dw
+
+sBackupCheckValue2:: db ; loaded with SAVE_CHECK_VALUE_2, used to check save corruption
+
+sStackTop:: dw
SECTION "Save", SRAM
sOptions:: ds OptionsEnd - Options
-s1_a008:: ds 1 ; loaded with 99, used to check save corruption
+sCheckValue1:: db ; loaded with SAVE_CHECK_VALUE_1, used to check save corruption
sGameData:: ; a009
sPlayerData:: ds wPlayerDataEnd - wPlayerData
@@ -114,29 +120,29 @@ sGameDataEnd::
ds $18a
; ad0d
-sChecksum:: ds 2
-s1_ad0f:: ds 1 ; loaded with 0x7f, used to check save corruption
+sChecksum:: dw
+
+sCheckValue2:: db ; loaded with SAVE_CHECK_VALUE_2, used to check save corruption
+
SECTION "Active Box", SRAM
+
; ad10
box sBox
; b160
ds $f4
+
+
SECTION "Link Battle Data", SRAM
+
sLinkBattleResults:: ds $c
-sLinkBattleStats:: ; b260
-sLinkBattleWins:: ds 2
-sLinkBattleLosses:: ds 2 ; b262
-sLinkBattleDraws:: ds 2 ; b264
-link_battle_record: MACRO
-\1Name:: ds NAME_LENGTH +- 1
-\1ID:: ds 2
-\1Wins:: ds 2
-\1Losses:: ds 2
-\1Draws:: ds 2
-endm
+sLinkBattleStats::
+sLinkBattleWins:: dw ; b260
+sLinkBattleLosses:: dw ; b262
+sLinkBattleDraws:: dw ; b264
+
sLinkBattleRecord::
sLinkBattleRecord1:: link_battle_record sLinkBattleRecord1
sLinkBattleRecord2:: link_battle_record sLinkBattleRecord2
@@ -145,88 +151,80 @@ sLinkBattleRecord4:: link_battle_record sLinkBattleRecord4
sLinkBattleRecord5:: link_battle_record sLinkBattleRecord5
sLinkBattleStatsEnd::
+
SECTION "SRAM Hall of Fame", SRAM
+
sHallOfFame:: ; b2c0
-; temporary until I can find a way to macrofy it
- hall_of_fame sHallOfFame01
- hall_of_fame sHallOfFame02
- hall_of_fame sHallOfFame03
- hall_of_fame sHallOfFame04
- hall_of_fame sHallOfFame05
- hall_of_fame sHallOfFame06
- hall_of_fame sHallOfFame07
- hall_of_fame sHallOfFame08
- hall_of_fame sHallOfFame09
- hall_of_fame sHallOfFame10
- hall_of_fame sHallOfFame11
- hall_of_fame sHallOfFame12
- hall_of_fame sHallOfFame13
- hall_of_fame sHallOfFame14
- hall_of_fame sHallOfFame15
- hall_of_fame sHallOfFame16
- hall_of_fame sHallOfFame17
- hall_of_fame sHallOfFame18
- hall_of_fame sHallOfFame19
- hall_of_fame sHallOfFame20
- hall_of_fame sHallOfFame21
- hall_of_fame sHallOfFame22
- hall_of_fame sHallOfFame23
- hall_of_fame sHallOfFame24
- hall_of_fame sHallOfFame25
- hall_of_fame sHallOfFame26
- hall_of_fame sHallOfFame27
- hall_of_fame sHallOfFame28
- hall_of_fame sHallOfFame29
- hall_of_fame sHallOfFame30
-
-; x = 1
-; rept NUM_HOF_TEAMS
-; ; PRINTT("{x}\n")
-; if STRLEN({x}) == 2
- ; PRINTT(STRSUB({x},2,1))
- ; hall_of_fame STRCAT("sHallOfFame0", STRSUB({x},2,1))
-; else
- ; PRINTT(STRSUB({x},2,2))
- ; hall_of_fame STRCAT("sHallOfFame", STRSUB({x},2,2))
-; endc
-; x = x + 1
-; endr
+sHallOfFame01:: hall_of_fame sHallOfFame01
+sHallOfFame02:: hall_of_fame sHallOfFame02
+sHallOfFame03:: hall_of_fame sHallOfFame03
+sHallOfFame04:: hall_of_fame sHallOfFame04
+sHallOfFame05:: hall_of_fame sHallOfFame05
+sHallOfFame06:: hall_of_fame sHallOfFame06
+sHallOfFame07:: hall_of_fame sHallOfFame07
+sHallOfFame08:: hall_of_fame sHallOfFame08
+sHallOfFame09:: hall_of_fame sHallOfFame09
+sHallOfFame10:: hall_of_fame sHallOfFame10
+sHallOfFame11:: hall_of_fame sHallOfFame11
+sHallOfFame12:: hall_of_fame sHallOfFame12
+sHallOfFame13:: hall_of_fame sHallOfFame13
+sHallOfFame14:: hall_of_fame sHallOfFame14
+sHallOfFame15:: hall_of_fame sHallOfFame15
+sHallOfFame16:: hall_of_fame sHallOfFame16
+sHallOfFame17:: hall_of_fame sHallOfFame17
+sHallOfFame18:: hall_of_fame sHallOfFame18
+sHallOfFame19:: hall_of_fame sHallOfFame19
+sHallOfFame20:: hall_of_fame sHallOfFame20
+sHallOfFame21:: hall_of_fame sHallOfFame21
+sHallOfFame22:: hall_of_fame sHallOfFame22
+sHallOfFame23:: hall_of_fame sHallOfFame23
+sHallOfFame24:: hall_of_fame sHallOfFame24
+sHallOfFame25:: hall_of_fame sHallOfFame25
+sHallOfFame26:: hall_of_fame sHallOfFame26
+sHallOfFame27:: hall_of_fame sHallOfFame27
+sHallOfFame28:: hall_of_fame sHallOfFame28
+sHallOfFame29:: hall_of_fame sHallOfFame29
+sHallOfFame30:: hall_of_fame sHallOfFame30
sHallOfFameEnd::
+
SECTION "SRAM Crystal Data", SRAM
-sMobileEventIndex:: ds 1 ; be3c
-sCrystalData::
- ds wCrystalDataEnd - wCrystalData
-sMobileEventIndexBackup:: ds 1
+sMobileEventIndex:: db ; be3c
+
+sCrystalData:: ds wCrystalDataEnd - wCrystalData
+sMobileEventIndexBackup:: db
+
SECTION "SRAM Battle Tower", SRAM
-; data of the BattleTower must be in SRAM because you can save and leave between battles
-sBattleTowerChallengeState:: ds 1
+
+; Battle Tower data must be in SRAM because you can save and leave between battles
+sBattleTowerChallengeState::
; 0: normal
; 2: battle tower
+ db
sBattleTower:: ; be46
-sNrOfBeatenBattleTowerTrainers:: ds 1
-sBTChoiceOfLevelGroup:: ds 1
-; The 7 trainers of the BattleTower are saved here, so nobody appears more than once
-sBTTrainers:: ; sbe48
- ds 7
-s1_be4f:: ds 1
-sBattleTowerReward:: ds 1
-; Pkmn of previous trainer
+sNrOfBeatenBattleTowerTrainers:: db
+sBTChoiceOfLevelGroup:: db
+; Battle Tower trainers are saved here, so nobody appears more than once
+sBTTrainers:: ds BATTLETOWER_NROFTRAINERS ; sbe48
+sBattleTowerSaveFileFlags:: db
+sBattleTowerReward:: db
+
+; team of previous trainer
sBTPkmnOfTrainers:: ; 0xbe51
-sBTPkmnPrevTrainer1::
- ds 1
-sBTPkmnPrevTrainer2:: ds 1
-sBTPkmnPrevTrainer3:: ds 1
-; Pkmn of preprevious trainer
-sBTPkmnPrevPrevTrainer1:: ds 1
-sBTPkmnPrevPrevTrainer2:: ds 1
-sBTPkmnPrevPrevTrainer3:: ds 1
+sBTPkmnPrevTrainer1:: db
+sBTPkmnPrevTrainer2:: db
+sBTPkmnPrevTrainer3:: db
+; team of preprevious trainer
+sBTPkmnPrevPrevTrainer1:: db
+sBTPkmnPrevPrevTrainer2:: db
+sBTPkmnPrevPrevTrainer3:: db
SECTION "Boxes 1-7", SRAM, BANK [2]
+
box sBox1
box sBox2
box sBox3
@@ -235,7 +233,9 @@ SECTION "Boxes 1-7", SRAM, BANK [2]
box sBox6
box sBox7
+
SECTION "Boxes 8-14", SRAM
+
box sBox8
box sBox9
box sBox10
@@ -245,7 +245,8 @@ SECTION "Boxes 8-14", SRAM
box sBox14
SECTION "SRAM Mobile", SRAM, BANK [5]
-ds 1 ; Former location for sMobileEventIndex, moved to 1:BE3C in English
+
+ ds 1 ; former location for sMobileEventIndex, moved to 1:BE3C in English
sTrainerRankings:: ; a001
sTrainerRankingGameTimeHOF:: ds 4
sTrainerRankingStepCountHOF:: ds 4
@@ -291,9 +292,11 @@ sTrainerRankingShortestMagikarp:: ds 2
sTrainerRankingBugContestScore:: ds 2
sTrainerRankingsChecksum:: ds 2
sTrainerRankingsEnd:: ; a083
+
ds 1 ; Former location for sMobileEventIndexBackup, moved to 1:BE44 in English
sTrainerRankingsBackup:: ds sTrainerRankingsEnd - sTrainerRankings
ds $945
; aa4b
+
sMobileLoginPassword:: ds MOBILE_LOGIN_PASSWORD_LENGTH
diff --git a/text/common_text.asm b/text/common_text.asm
index c4891ab15..d21685480 100644
--- a/text/common_text.asm
+++ b/text/common_text.asm
@@ -1,12 +1,18 @@
INCLUDE "includes.asm"
+
SECTION "Text 1", ROMX
+
INCLUDE "text/common_1.asm"
+
SECTION "Text 2", ROMX
+
INCLUDE "text/common_2.asm"
INCLUDE "text/common_3.asm"
+
SECTION "Text 3", ROMX
+
INCLUDE "text/common_4.asm"
INCLUDE "text/common_5.asm"
diff --git a/text/trainer_class_names.asm b/text/trainer_class_names.asm
deleted file mode 100755
index 555e6c652..000000000
--- a/text/trainer_class_names.asm
+++ /dev/null
@@ -1,67 +0,0 @@
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "RIVAL@"
- db "#MON PROF.@"
- db "ELITE FOUR@"
- db "<PKMN> TRAINER@"
- db "ELITE FOUR@"
- db "ELITE FOUR@"
- db "ELITE FOUR@"
- db "CHAMPION@"
- db "LEADER@"
- db "LEADER@"
- db "LEADER@"
- db "SCIENTIST@"
- db "LEADER@"
- db "YOUNGSTER@"
- db "SCHOOLBOY@"
- db "BIRD KEEPER@"
- db "LASS@"
- db "LEADER@"
- db "COOLTRAINER@"
- db "COOLTRAINER@"
- db "BEAUTY@"
- db "#MANIAC@"
- db "ROCKET@"
- db "GENTLEMAN@"
- db "SKIER@"
- db "TEACHER@"
- db "LEADER@"
- db "BUG CATCHER@"
- db "FISHER@"
- db "SWIMMER♂@"
- db "SWIMMER♀@"
- db "SAILOR@"
- db "SUPER NERD@"
- db "RIVAL@"
- db "GUITARIST@"
- db "HIKER@"
- db "BIKER@"
- db "LEADER@"
- db "BURGLAR@"
- db "FIREBREATHER@"
- db "JUGGLER@"
- db "BLACKBELT@"
- db "ROCKET@"
- db "PSYCHIC@"
- db "PICNICKER@"
- db "CAMPER@"
- db "ROCKET@"
- db "SAGE@"
- db "MEDIUM@"
- db "BOARDER@"
- db "#FAN@"
- db "KIMONO GIRL@"
- db "TWINS@"
- db "#FAN@"
- db "<PKMN> TRAINER@"
- db "LEADER@"
- db "OFFICER@"
- db "ROCKET@"
- db "MYSTICALMAN@"
diff --git a/text/unused_gen_1_trainers.asm b/text/unused_gen_1_trainers.asm
new file mode 100644
index 000000000..9a637d6a2
--- /dev/null
+++ b/text/unused_gen_1_trainers.asm
@@ -0,0 +1,92 @@
+GetGen1TrainerClassName: ; 50a28
+; XXX
+ ld hl, .Strings
+ ld a, [TrainerClass]
+ dec a
+ ld c, a
+ ld b, 0
+ add hl, bc
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, StringBuffer1
+.copy
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp "@"
+ jr nz, .copy
+ ret
+
+.Strings: ; 50a42
+; Untranslated trainer class names from Red.
+ dw .Youngster
+ dw .BugCatcher
+ dw .Lass
+ dw OTClassName
+ dw .JrTrainerM
+ dw .JrTrainerF
+ dw .Pokemaniac
+ dw .SuperNerd
+ dw OTClassName
+ dw OTClassName
+ dw .Burglar
+ dw .Engineer
+ dw .Jack
+ dw OTClassName
+ dw .Swimmer
+ dw OTClassName
+ dw OTClassName
+ dw .Beauty
+ dw OTClassName
+ dw .Rocker
+ dw .Juggler
+ dw OTClassName
+ dw OTClassName
+ dw .Blackbelt
+ dw OTClassName
+ dw .ProfOak
+ dw .Chief
+ dw .Scientist
+ dw OTClassName
+ dw .Rocket
+ dw .CooltrainerM
+ dw .CooltrainerF
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+ dw OTClassName
+
+.Youngster: db "たんパン@"
+.BugCatcher: db "むしとり@"
+.Lass: db "ミニスカ@"
+.JrTrainerM: db "ボーイ@"
+.JrTrainerF: db "ガール@"
+.Pokemaniac: db "マニア@"
+.SuperNerd: db "りかけい@"
+.Burglar: db "どろぼう@"
+.Engineer: db "ォヤジ@"
+.Jack: db "ジャック@"
+.Swimmer: db "かいパン@"
+.Beauty: db "おねえさん@"
+.Rocker: db "グループ@"
+.Juggler: db "ジャグラー@"
+.Blackbelt: db "からて@"
+.ProfOak: db "ォーキド@"
+.Chief: db "チーフ@"
+.Scientist: db "けんきゅういん@"
+.Rocket: db "だんいん@"
+.CooltrainerM: db "エりート♂@"
+.CooltrainerF: db "エりート♀@"
diff --git a/text/sweethoney.asm b/text/unused_sweet_honey.asm
index 9bfa4f6b1..9bfa4f6b1 100644
--- a/text/sweethoney.asm
+++ b/text/unused_sweet_honey.asm
diff --git a/tilesets/house.pal b/tilesets/house_1.pal
index a9f8b74b6..a9f8b74b6 100644
--- a/tilesets/house.pal
+++ b/tilesets/house_1.pal
diff --git a/tilesets/palette_maps.asm b/tilesets/palette_maps.asm
index fb7da4cf4..55391aeac 100644
--- a/tilesets/palette_maps.asm
+++ b/tilesets/palette_maps.asm
@@ -105,8 +105,8 @@ TilesetPlayersHouse2FPalMap: ; 0x4caf5
INCLUDE "tilesets/players_house_2f_palette_map.asm"
; 0x4cb65
-UnusedPalMap1:
-INCBIN "tilesets/unused_palette_map_1.bin"
+UnusedMuseumPalMap: ; 0x4cb65
+INCLUDE "tilesets/unused_museum_palette_map.asm"
; 4cbd5
TilesetIcePathPalMap: ; 0x4cbd5
@@ -128,7 +128,3 @@ INCLUDE "tilesets/battle_tower_palette_map.asm"
TilesetBattleTowerOutsidePalMap: ; 0x4cd95
INCLUDE "tilesets/battle_tower_outside_palette_map.asm"
; 0x4ce05
-
-UnusedPalMap2:
-INCBIN "tilesets/unused_palette_map_2.bin"
-; 4ce1f
diff --git a/tilesets/pokecom.pal b/tilesets/pokecom_center.pal
index 9fe7b765a..9fe7b765a 100644
--- a/tilesets/pokecom.pal
+++ b/tilesets/pokecom_center.pal
diff --git a/tilesets/roofs.asm b/tilesets/roofs.asm
index 0e14f3cab..0e43854dd 100644
--- a/tilesets/roofs.asm
+++ b/tilesets/roofs.asm
@@ -17,7 +17,7 @@ LoadMapGroupRoof:: ; 1c000
; 1c021
-INCLUDE "data/mapgroup_roofs.asm"
+INCLUDE "data/maps/mapgroup_roofs.asm"
Roofs: ; 1c03c
diff --git a/tilesets/special_palettes.asm b/tilesets/special_palettes.asm
new file mode 100644
index 000000000..4e83c7390
--- /dev/null
+++ b/tilesets/special_palettes.asm
@@ -0,0 +1,200 @@
+LoadSpecialMapPalette: ; 494ac
+ ld a, [wTileset]
+ cp TILESET_POKECOM_CENTER
+ jr z, .pokecom_2f
+ cp TILESET_BATTLE_TOWER
+ jr z, .battle_tower
+ cp TILESET_ICE_PATH
+ jr z, .ice_path
+ cp TILESET_HOUSE_1
+ jr z, .house
+ cp TILESET_RADIO_TOWER
+ jr z, .radio_tower
+ cp TILESET_CELADON_MANSION
+ jr z, .mansion_mobile
+ jr .do_nothing
+
+.pokecom_2f
+ call LoadPokeComPalette
+ scf
+ ret
+
+.battle_tower
+ call LoadBattleTowerPalette
+ scf
+ ret
+
+.ice_path
+ ld a, [wPermission] ; permission
+ and $7
+ cp INDOOR ; Hall of Fame
+ jr z, .do_nothing
+ call LoadIcePathPalette
+ scf
+ ret
+
+.house
+ call LoadHousePalette
+ scf
+ ret
+
+.radio_tower
+ call LoadRadioTowerPalette
+ scf
+ ret
+
+.mansion_mobile
+ call LoadMansionPalette
+ scf
+ ret
+
+.do_nothing
+ and a
+ ret
+; 494f2
+
+LoadPokeComPalette: ; 494f2
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, PokeComPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 49501
+
+PokeComPalette: ; 49501
+INCLUDE "tilesets/pokecom_center.pal"
+; 49541
+
+LoadBattleTowerPalette: ; 49541
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, BattleTowerPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 49550
+
+BattleTowerPalette: ; 49550
+INCLUDE "tilesets/battle_tower.pal"
+; 49590
+
+LoadIcePathPalette: ; 49590
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, IcePathPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 4959f
+
+IcePathPalette: ; 4959f
+INCLUDE "tilesets/ice_path.pal"
+; 495df
+
+LoadHousePalette: ; 495df
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, HousePalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 495ee
+
+HousePalette: ; 495ee
+INCLUDE "tilesets/house_1.pal"
+; 4962e
+
+LoadRadioTowerPalette: ; 4962e
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, RadioTowerPalette
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ret
+; 4963d
+
+RadioTowerPalette: ; 4963d
+INCLUDE "tilesets/radio_tower.pal"
+; 4967d
+
+MansionPalette1: ; 4967d
+ RGB 30, 28, 26
+ RGB 19, 19, 19
+ RGB 13, 13, 13
+ RGB 07, 07, 07
+
+ RGB 30, 28, 26
+ RGB 31, 19, 24
+ RGB 30, 10, 06
+ RGB 07, 07, 07
+
+ RGB 18, 24, 09
+ RGB 15, 20, 01
+ RGB 09, 13, 00
+ RGB 07, 07, 07
+
+ RGB 30, 28, 26
+ RGB 15, 16, 31
+ RGB 09, 09, 31
+ RGB 07, 07, 07
+
+ RGB 30, 28, 26
+ RGB 31, 31, 07
+ RGB 31, 16, 01
+ RGB 07, 07, 07
+
+ RGB 26, 24, 17
+ RGB 21, 17, 07
+ RGB 16, 13, 03
+ RGB 07, 07, 07
+
+MansionPalette3: ; 496ad
+ RGB 30, 28, 26
+ RGB 17, 19, 31
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+
+ RGB 31, 31, 16
+ RGB 31, 31, 16
+ RGB 14, 09, 00
+ RGB 00, 00, 00
+; 496bd
+
+MansionPalette4: ; 496bd
+ RGB 05, 05, 16
+ RGB 08, 19, 28
+ RGB 00, 00, 00
+ RGB 31, 31, 31
+; 496c5
+
+LoadMansionPalette: ; 496c5
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals
+ ld hl, MansionPalette1
+ ld bc, 8 palettes
+ call FarCopyWRAM
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals palette PAL_BG_YELLOW
+ ld hl, MansionPalette2
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals palette PAL_BG_WATER
+ ld hl, MansionPalette3
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ld a, BANK(UnknBGPals)
+ ld de, UnknBGPals palette PAL_BG_ROOF
+ ld hl, MansionPalette4
+ ld bc, 1 palettes
+ call FarCopyWRAM
+ ret
+; 496fe
+
+MansionPalette2: ; 496fe
+ RGB 25, 24, 23
+ RGB 20, 19, 19
+ RGB 14, 16, 31
+ RGB 07, 07, 07
+; 49706
diff --git a/tilesets/unused_museum_palette_map.asm b/tilesets/unused_museum_palette_map.asm
new file mode 100644
index 000000000..cfbe6dbcd
--- /dev/null
+++ b/tilesets/unused_museum_palette_map.asm
@@ -0,0 +1,32 @@
+; Matches pokered's "gate" tileset (notable for its Pewter Museum tiles)
+; https://tcrf.net/Pok%C3%A9mon_Gold_and_Silver#Unused_Tile_Palette_Assignment_Data
+
+ tilepal 0, WATER, RED, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 0, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 0, BROWN, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 0, ROOF, BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF
+ tilepal 0, ROOF, ROOF, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 0, ROOF, GRAY, ROOF, BROWN, ROOF, ROOF, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, ROOF
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 0, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+
+rept 16
+ db $ff
+endr
+
+ tilepal 1, WATER, RED, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 1, BROWN, BROWN, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, YELLOW, YELLOW, RED, GREEN, GREEN, BROWN
+ tilepal 1, BROWN, ROOF, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 1, ROOF, BROWN, BROWN, BROWN, ROOF, ROOF, ROOF, ROOF
+ tilepal 1, ROOF, ROOF, BROWN, BROWN, GRAY, BROWN, BROWN, ROOF
+ tilepal 1, ROOF, GRAY, ROOF, BROWN, ROOF, ROOF, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, ROOF, ROOF
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, RED, RED
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
+ tilepal 1, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY, GRAY
diff --git a/tilesets/unused_palette_map_1.bin b/tilesets/unused_palette_map_1.bin
deleted file mode 100644
index 04cb3ff2d..000000000
--- a/tilesets/unused_palette_map_1.bin
+++ /dev/null
Binary files differ
diff --git a/tilesets/unused_palette_map_2.bin b/tilesets/unused_palette_map_2.bin
deleted file mode 100644
index aba1b3cbf..000000000
--- a/tilesets/unused_palette_map_2.bin
+++ /dev/null
@@ -1 +0,0 @@
- \ No newline at end of file
diff --git a/compare.sh b/tools/compare.sh
index d013a88ab..d013a88ab 100755
--- a/compare.sh
+++ b/tools/compare.sh
diff --git a/compare2.sh b/tools/compare2.sh
index 64695229e..64695229e 100755
--- a/compare2.sh
+++ b/tools/compare2.sh
diff --git a/tools/toc.py b/tools/toc.py
new file mode 100644
index 000000000..9bdc8cca6
--- /dev/null
+++ b/tools/toc.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+
+"""
+Usage: python3 toc.py [-n] files.md...
+Replace a "## TOC" heading in a Markdown file with a table of contents,
+generated from the other headings in the file. Supports multiple files.
+Headings must start with "##" signs to be detected.
+"""
+
+import sys
+import re
+from collections import namedtuple
+
+toc_name = 'Contents'
+valid_toc_headings = {'## TOC', '##TOC'}
+
+TocItem = namedtuple('TocItem', ['name', 'anchor', 'level'])
+punctuation_regexp = re.compile(r'[^\w\- ]+')
+
+def name_to_anchor(name):
+ # GitHub's algorithm for generating anchors from headings
+ # https://github.com/jch/html-pipeline/blob/master/lib/html/pipeline/toc_filter.rb
+ anchor = name.strip().lower() # lowercase
+ anchor = re.sub(punctuation_regexp, '', anchor) # remove punctuation
+ anchor = anchor.replace(' ', '-') # replace spaces with dash
+ return anchor
+
+def get_toc_index(lines):
+ toc_index = None
+ for i, line in enumerate(lines):
+ if line.rstrip() in valid_toc_headings:
+ toc_index = i
+ break
+ return toc_index
+
+def get_toc_items(lines, toc_index):
+ for i, line in enumerate(lines):
+ if i <= toc_index:
+ continue
+ if line.startswith('##'):
+ name = line.lstrip('#')
+ level = len(line) - len(name) - len('##')
+ name = name.strip()
+ anchor = name_to_anchor(name)
+ yield TocItem(name, anchor, level)
+
+def toc_string(toc_items):
+ lines = ['## %s' % toc_name, '']
+ for name, anchor, level in toc_items:
+ padding = ' ' * level
+ line = '%s- [%s](#%s)' % (padding, name, anchor)
+ lines.append(line)
+ return '\n'.join(lines) + '\n'
+
+def add_toc(filename):
+ with open(filename, 'r', encoding='utf-8') as f:
+ lines = f.readlines()
+ toc_index = get_toc_index(lines)
+ if toc_index is None:
+ return None # no TOC heading
+ toc_items = list(get_toc_items(lines, toc_index))
+ if not toc_items:
+ return False # no content headings
+ with open(filename, 'w', encoding='utf-8') as f:
+ for i, line in enumerate(lines):
+ if i == toc_index:
+ f.write(toc_string(toc_items))
+ else:
+ f.write(line)
+ return True # OK
+
+def main():
+ if len(sys.argv) < 2:
+ print('*** ERROR: No filenames specified')
+ print(__doc__)
+ exit(1)
+ for filename in sys.argv[1:]:
+ print(filename)
+ result = add_toc(filename)
+ if result is None:
+ print('*** WARNING: No "## TOC" heading found')
+ elif result is False:
+ print('*** WARNING: No content headings found')
+ else:
+ print('OK')
+
+if __name__ == '__main__':
+ main()
diff --git a/unknown/013a47.asm b/unknown/013a47.asm
deleted file mode 100755
index dd0d2b722..000000000
--- a/unknown/013a47.asm
+++ /dev/null
@@ -1,229 +0,0 @@
-CorrectErrorsInPlayerParty: ; unreferenced
- ld hl, PartyCount
- ld a, [hl]
- and a
- ret z
-
- cp PARTY_LENGTH + 1
- jr c, .party_length_okay
- ld a, PARTY_LENGTH
- ld [hl], a
-.party_length_okay
- inc hl
-
- ld b, a
- ld c, 0
-.loop1
- ld a, [hl]
- and a
- jr z, .invalid_species
- cp NUM_POKEMON + 1
- jr z, .invalid_species
- cp EGG + 1
- jr c, .next_species
-
-.invalid_species
- ld [hl], SMEARGLE
- push hl
- push bc
- ld a, c
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld [hl], SMEARGLE
- pop bc
- pop hl
-
-.next_species
- inc hl
- inc c
- dec b
- jr nz, .loop1
- ld [hl], $ff
-
- ld hl, PartyMon1
- ld a, [PartyCount]
- ld d, a
- ld e, 0
-.loop2
- push de
- push hl
- ld b, h
- ld c, l
- ld a, [hl]
- and a
- jr z, .invalid_species_2
- cp NUM_POKEMON + 1
- jr c, .check_level
-
-.invalid_species_2
- ld [hl], SMEARGLE
- push de
- ld d, 0
- ld hl, PartySpecies
- add hl, de
- pop de
- ld a, SMEARGLE
- ld [hl], a
-
-.check_level
- ld [CurSpecies], a
- call GetBaseData
- ld hl, MON_LEVEL
- add hl, bc
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .invalid_level
- ld a, [hl]
- cp MAX_LEVEL
- jr c, .load_level
- ld a, MAX_LEVEL
-.invalid_level
- ld [hl], a
-.load_level
- ld [CurPartyLevel], a
-
- ld hl, MON_MAXHP
- add hl, bc
- ld d, h
- ld e, l
- ld hl, MON_STAT_EXP - 1
- add hl, bc
- ld b, $1
- predef CalcPkmnStats
- pop hl
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop de
- inc e
- dec d
- jr nz, .loop2
-
- ld de, PartyMonNicknames
- ld a, [PartyCount]
- ld b, a
- ld c, 0
-.loop3
- push bc
- call .GetLengthOfStringWith6CharCap
- push de
- callba CheckStringForErrors
- pop hl
- pop bc
- jr nc, .valid_nickname
-
- push bc
- push hl
- ld hl, PartySpecies
- push bc
- ld b, 0
- add hl, bc
- pop bc
- ld a, [hl]
- cp EGG
- ld hl, .TAMAGO
- jr z, .got_nickname
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
-.got_nickname
- pop de
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- pop bc
-
-.valid_nickname
- inc c
- dec b
- jr nz, .loop3
-
- ld de, PartyMonOT
- ld a, [PartyCount]
- ld b, a
- ld c, 0
-.loop4
- push bc
- call .GetLengthOfStringWith6CharCap
- push de
- callba CheckStringForErrors
- pop hl
- jr nc, .valid_ot_name
- ld d, h
- ld e, l
- ld hl, PlayerName
- ld bc, NAME_LENGTH
- call CopyBytes
-.valid_ot_name
- pop bc
- inc c
- dec b
- jr nz, .loop4
-
- ld hl, PartyMon1Moves
- ld a, [PartyCount]
- ld b, a
-.loop5
- push hl
- ld c, NUM_MOVES
- ld a, [hl]
- and a
- jr z, .invalid_move
- cp NUM_ATTACKS + 1
- jr c, .moves_loop
-.invalid_move
- ld [hl], POUND
-
-.moves_loop
- ld a, [hl]
- and a
- jr z, .fill_invalid_moves
- cp NUM_ATTACKS + 1
- jr c, .next_move
-
-.fill_invalid_moves
- xor a
- ld [hli], a
- dec c
- jr nz, .fill_invalid_moves
- jr .next_pokemon
-
-.next_move
- inc hl
- dec c
- jr nz, .moves_loop
-
-.next_pokemon
- pop hl
- push bc
- ld bc, PARTYMON_STRUCT_LENGTH
- add hl, bc
- pop bc
- dec b
- jr nz, .loop5
- ret
-; 13b6b
-
-.TAMAGO: ; 13b6b
- db "タマゴ@@@"
-; 13b71
-
-.GetLengthOfStringWith6CharCap: ; 13b71
- push de
- ld c, 1
- ld b, 6
-.search_loop
- ld a, [de]
- cp "@"
- jr z, .done
- inc de
- inc c
- dec b
- jr nz, .search_loop
- dec c
- dec de
- ld a, "@"
- ld [de], a
-.done
- pop de
- ret
-; 13b87
diff --git a/wram.asm b/wram.asm
index c58c76631..b9bae0e3e 100644
--- a/wram.asm
+++ b/wram.asm
@@ -168,7 +168,8 @@ wPlayerNextMovement:: db
wPlayerMovement:: db
ds 2
wc2e2::
-wMovementPerson:: db
+wMovementPerson::
+ db
wMovementDataPointer:: ds 3 ; dba
wc2e6:: ds 4
wMovementByteWasControlSwitch:: db
@@ -330,11 +331,11 @@ SECTION "Battle", WRAM0
UNION ; c608
; unidentified uses
-wc608::
+wc608:: ds 480
NEXTU ; c608
; miscellaneous
-wMisc:: ds (SCREEN_WIDTH + 4) * (SCREEN_HEIGHT + 2)
+wMisc:: ds WMISC_WIDTH * WMISC_HEIGHT
wMiscEnd::
NEXTU ; c608
@@ -349,10 +350,11 @@ wBT_OTTemp:: battle_tower_struct wBT_OTTemp
NEXTU ; c608
; hall of fame temp struct
- hall_of_fame wHallOfFameTemp
+wHallOfFameTemp:: hall_of_fame wHallOfFameTemp
NEXTU ; c608
; timeset temp storage
+wTimeSetBuffer::
ds 20
wInitHourBuffer:: db ; c61c
ds 9
@@ -507,7 +509,8 @@ EnemyDamageTaken:: dw ; c684
wBattleReward:: ds 3 ; c686
wBattleAnimParam::
wKickCounter::
-wPresentPower:: db ; c689
+wPresentPower::
+ db ; c689
BattleScriptBuffer:: ds 40 ; c68a
BattleScriptBufferAddress:: dw ; c6b2
@@ -800,7 +803,7 @@ wUnownPuzzleEnd::
NEXTU ; c6d0
; pokedex
wPokedexDataStart::
-wPokedexOrder:: ds $100 ; NUM_POKEMON + 5
+wPokedexOrder:: ds $100 ; >= NUM_POKEMON
wPokedexOrderEnd::
wPokedexMetadata::
wDexListingScrollOffset:: db ; offset of the first displayed entry from the start
@@ -1266,14 +1269,16 @@ wcf5d:: dw
MonType:: db ; cf5f
CurSpecies::
-CurMove:: db ; cf60
+CurMove::
+ db ; cf60
wNamedObjectTypeBuffer:: db
ds 1
wBattleTowerBattleEnded::
-wJumptableIndex:: db
+wJumptableIndex::
+ db
UNION ; cf64
; unidentified
@@ -1624,7 +1629,9 @@ wEarthquakeMovementDataBuffer:: ds 5
NEXTU ; d002
; miscellaneous
wTempDayOfWeek::
-wApricorns:: db
+wApricorns::
+ db
+
ds 2
StartFlypoint:: db
@@ -1792,7 +1799,8 @@ wTMHMPocketScrollPosition:: db
wSwitchMon::
wSwitchItem::
wMoveSwapBuffer::
-wd0e3:: ds 1
+wd0e3::
+ db
wMenuScrollPosition:: ds 4
@@ -1943,49 +1951,10 @@ MapEventHeaderPointer:: dw ; d1a6
; bit set
MapConnections:: db ; d1a8
-NorthMapConnection:: ; d1a9
-NorthConnectedMapGroup:: db ; d1a9
-NorthConnectedMapNumber:: db ; d1aa
-NorthConnectionStripPointer:: dw ; d1ab
-NorthConnectionStripLocation:: dw ; d1ad
-NorthConnectionStripLength:: db ; d1af
-NorthConnectedMapWidth:: db ; d1b0
-NorthConnectionStripYOffset:: db ; d1b1
-NorthConnectionStripXOffset:: db ; d1b2
-NorthConnectionWindow:: dw ; d1b3
-
-SouthMapConnection:: ; d1b5
-SouthConnectedMapGroup:: db ; d1b5
-SouthConnectedMapNumber:: db ; d1b6
-SouthConnectionStripPointer:: dw ; d1b7
-SouthConnectionStripLocation:: dw ; d1b9
-SouthConnectionStripLength:: db ; d1bb
-SouthConnectedMapWidth:: db ; d1bc
-SouthConnectionStripYOffset:: db ; d1bd
-SouthConnectionStripXOffset:: db ; d1be
-SouthConnectionWindow:: dw ; d1bf
-
-WestMapConnection:: ; d1c1
-WestConnectedMapGroup:: db ; d1c1
-WestConnectedMapNumber:: db ; d1c2
-WestConnectionStripPointer:: dw ; d1c3
-WestConnectionStripLocation:: dw ; d1c5
-WestConnectionStripLength:: db ; d1c7
-WestConnectedMapWidth:: db ; d1c8
-WestConnectionStripYOffset:: db ; d1c9
-WestConnectionStripXOffset:: db ; d1ca
-WestConnectionWindow:: dw ; d1cb
-
-EastMapConnection:: ; d1cd
-EastConnectedMapGroup:: db ; d1cd
-EastConnectedMapNumber:: db ; d1ce
-EastConnectionStripPointer:: dw ; d1cf
-EastConnectionStripLocation:: dw ; d1d1
-EastConnectionStripLength:: db ; d1d3
-EastConnectedMapWidth:: db ; d1d4
-EastConnectionStripYOffset:: db ; d1d5
-EastConnectionStripXOffset:: db ; d1d6
-EastConnectionWindow:: dw ; d1d7
+NorthMapConnection:: map_connection_struct North ; d1a9
+SouthMapConnection:: map_connection_struct South ; d1b5
+WestMapConnection:: map_connection_struct West ; d1c1
+EastMapConnection:: map_connection_struct East ; d1cd
TilesetHeader::
TilesetBank:: db ; d1d9
@@ -2095,7 +2064,7 @@ UnownLetter:: db ; d234
wMoveSelectionMenuType:: db
-; corresponds to the data/base_stats/*.asm contents
+; corresponds to the data/pokemon/base_stats/*.asm contents
CurBaseData:: ; d236
BaseDexNo:: db ; d236
BaseStats:: ; d237
@@ -2137,11 +2106,12 @@ wPutativeTMHMMove:: db
wInitListType:: db
wBattleHasJustStarted:: db
-wFoundMatchingIDInParty::
wNamedObjectIndexBuffer::
wCurTMHM::
wTypeMatchup::
-wd265:: db
+wFoundMatchingIDInParty::
+wd265::
+ db
wFailedToFlee:: db
wNumFleeAttempts:: db
@@ -2155,16 +2125,14 @@ TimeOfDay:: db ; d269
SECTION "Enemy Party", WRAMX
UNION ; d26b
-wPokedexShowPointerAddr::
-wd26b:: ds 1
-wd26c:: ds 1
-wPokedexShowPointerBank::
-wd26d:: ds 1
+wd26b::
+wPokedexShowPointerAddr:: dw
+wPokedexShowPointerBank:: db
ds 3
wd271:: ds 5
NEXTU ; d26b
-; SECTION "Enemy Party", WRAMX
+; enemy party
OTPlayerName:: ds NAME_LENGTH ; d26b
ENDU ; d276
@@ -2175,22 +2143,6 @@ OTPartySpecies:: ds PARTY_LENGTH ; d281
OTPartyEnd:: ds 1 ; legacy scripts don't check PartyCount
UNION ; d288
-; catch tutorial dude pack
-wDudeBag::
-wDudeNumItems:: db
-wDudeItems:: ds 2 * 4
-wDudeItemsEnd:: db
-
-wDudeNumKeyItems:: db ; d292
-wDudeKeyItems:: ds 18
-wDudeKeyItemsEnd:: db
-
-wDudeNumBalls:: db ; d2a6
-wDudeBalls:: ds 2 * 4 ; d2a7
-wDudeBallsEnd:: db ; d2af
-wDudeBagEnd::
-
-NEXTU ; d288
; ot party mons
OTPartyMons::
OTPartyMon1:: party_struct OTPartyMon1 ; d288
@@ -2205,6 +2157,22 @@ OTPartyMonOT:: ds NAME_LENGTH * PARTY_LENGTH ; d3a8
OTPartyMonNicknames:: ds PKMN_NAME_LENGTH * PARTY_LENGTH ; d3ea
OTPartyDataEnd::
ds 4
+
+NEXTU ; d288
+; catch tutorial dude pack
+wDudeBag::
+wDudeNumItems:: db
+wDudeItems:: ds 2 * 4
+wDudeItemsEnd:: db
+
+wDudeNumKeyItems:: db ; d292
+wDudeKeyItems:: ds 18
+wDudeKeyItemsEnd:: db
+
+wDudeNumBalls:: db ; d2a6
+wDudeBalls:: ds 2 * 4 ; d2a7
+wDudeBallsEnd:: db ; d2af
+wDudeBagEnd::
ENDU ; d430
wd430::
@@ -2241,9 +2209,11 @@ wScriptStack:: ds 3 * 5
ScriptDelay:: db ; d44d
wPriorityScriptBank::
-wScriptTextBank:: db ; d44e
+wScriptTextBank::
+ db ; d44e
wPriorityScriptAddr::
-wScriptTextAddr:: dw ; d44f
+wScriptTextAddr::
+ dw ; d44f
ds 1
wWildEncounterCooldown:: db ; d452
wXYComparePointer:: dw ; d453
@@ -2456,9 +2426,7 @@ FarfetchdPosition:: db ; d964
ds 13
-
-;SECTION "Map Triggers", WRAMX
-
+; map triggers
wPokecenter2FTrigger:: db ; d972
wTradeCenterTrigger:: db ; d973
wColosseumTrigger:: db ; d974
@@ -2541,9 +2509,7 @@ wMobileBattleRoomTrigger:: db ; d9c0
ds 49
-
-;SECTION "Events", WRAMX
-
+; fight counts
wJackFightCount:: db ; d9f2
wBeverlyFightCount:: db ; unused
wHueyFightCount:: db
@@ -2573,6 +2539,7 @@ wKenjiFightCount:: db ; unused
wParryFightCount:: db
wErinFightCount:: db
; da0e
+
ds 100
EventFlags:: flag_array NUM_EVENTS ; da72
@@ -2744,7 +2711,6 @@ PartyMonNicknamesEnd::
ds 22
-
PokedexCaught:: flag_array NUM_POKEMON ; de99
EndPokedexCaught::
@@ -2803,12 +2769,14 @@ wRoamMons_CurrentMapNumber:: db
wRoamMons_CurrentMapGroup:: db
wRoamMons_LastMapNumber:: db
wRoamMons_LastMapGroup:: db
+
wBestMagikarpLengthFeet:: db
wBestMagikarpLengthInches:: db
wMagikarpRecordHoldersName:: ds NAME_LENGTH
-; dff5
+
wPokemonDataEnd::
wGameDataEnd::
+; dff5
SECTION "Pic Animations", WRAMX
@@ -2855,41 +2823,37 @@ SECTION "Battle Tower", WRAMX
w3_d000:: ds 1 ; d000
w3_d001:: ds 1
-w3_d002::
- ds $7e
-w3_d080::
- ds $10
-w3_d090::
- ds $70
-
-w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24)
+w3_d002:: ds $7e
+w3_d080:: ds $10
+w3_d090:: ds $70
+
+w3_d100::
BT_OTTrainer:: battle_tower_struct BT_OT
-; d1e0
ds $20
-; d200
-BT_TrainerTextIndex:: ds 2
+BT_TrainerTextIndex:: db ; d200
+ ds 1
w3_d202:: battle_tower_struct w3_d202
w3_d2e2:: battle_tower_struct w3_d2e2
w3_d3c2:: battle_tower_struct w3_d3c2
w3_d4a2:: battle_tower_struct w3_d4a2
w3_d582:: battle_tower_struct w3_d582
w3_d662:: battle_tower_struct w3_d662
+
UNION ; d742
w3_d742:: battle_tower_struct w3_d742
; d822
NEXTU ; d742
ds $be
+w3_d800:: ds BG_MAP_WIDTH * SCREEN_HEIGHT
-wBTChoiceOfLvlGroup::
-w3_d800:: ; ds BG_MAP_WIDTH * SCREEN_HEIGHT ($240)
- ds $69
-ENDU ; d869
+NEXTU ; d742
+ ds $be
+wBTChoiceOfLvlGroup:: db
+ ds $68
w3_d869:: ds $17
w3_d880:: ds 1
-w3_d881:: ds 1
-w3_d882:: ds 1
-w3_d883:: ds 7
+w3_d881:: ds 9
w3_d88a:: ds 5
w3_d88f:: ds 5
w3_d894:: ds 1
@@ -2897,12 +2861,16 @@ w3_d895:: ds 11
w3_d8a0:: ds 1
w3_d8a1:: ds 1
w3_d8a2:: ds 1
-w3_d8a3:: ds $19d
-w3_da40:: ds $1c0
+w3_d8a3:: ds 1
+ENDU ; d8a4
+
+ ds $1c0
w3_dc00:: ds SCREEN_WIDTH * SCREEN_HEIGHT
w3_dd68:: ds SCREEN_WIDTH * SCREEN_HEIGHT
+
ds $11c
+
w3_dfec:: ds $10
w3_dffc:: ds 4
@@ -2967,31 +2935,38 @@ BattleAnimLoops:: db ; d415
BattleAnimVar:: db ; d416
BattleAnimByte:: db ; d417
wBattleAnimOAMPointerLo:: db ; d418
-BattleAnimTemps:: ; d419
-wBattleAnimTempOAMFlags::
+
+UNION ; d419
+; unidentified
wBattleAnimTemp0:: db
wBattleAnimTemp1:: db
-wBattleAnimTempTileID::
wBattleAnimTemp2:: db
-wBattleAnimTempXCoord::
wBattleAnimTemp3:: db
-wBattleAnimTempYCoord::
wBattleAnimTemp4:: db
-wBattleAnimTempXOffset::
wBattleAnimTemp5:: db
-wBattleAnimTempYOffset::
wBattleAnimTemp6:: db
wBattleAnimTemp7:: db
-wBattleAnimTempPalette::
wBattleAnimTemp8:: db
-UNION ; d422
-wSurfWaveBGEffect:: ds $40
-wSurfWaveBGEffectEnd::
+NEXTU ; d419
+wBattleAnimTempOAMFlags:: db
+ ds 1
+wBattleAnimTempTileID:: db
+wBattleAnimTempXCoord:: db
+wBattleAnimTempYCoord:: db
+wBattleAnimTempXOffset:: db
+wBattleAnimTempYOffset:: db
+ ds 1
+wBattleAnimTempPalette:: db
+ENDU ; d422
-NEXTU ; d422
+UNION ; d422
ds $32
wBattleAnimEnd::
+
+NEXTU ; d422
+wSurfWaveBGEffect:: ds $40
+wSurfWaveBGEffectEnd::
ENDU ; d462