summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2015-11-13 00:44:06 -0500
committeryenatch <yenatch@gmail.com>2015-11-13 00:44:06 -0500
commit9c5473e965520f672640daf4ee76622640e0de15 (patch)
tree33d513a05a026cb6c094eb7ee73ad52ee36d0888
parent1c1fe276ca59726bb0008c60006c6b48cd093573 (diff)
parent40802da3cf27a453f62c8c4b712e876b06a9d834 (diff)
Merge pull request #326 from PikalaxALT/master
Reopen #325
-rw-r--r--audio/cry_pointers.asm136
-rw-r--r--audio/engine.asm52
-rw-r--r--audio/music_pointers.asm206
-rw-r--r--audio/sfx_pointers.asm414
-rw-r--r--battle/ai/items.asm113
-rw-r--r--battle/ai/scoring.asm54
-rwxr-xr-xbattle/ai/switch.asm666
-rw-r--r--battle/anim_commands.asm348
-rw-r--r--battle/anim_objects.asm18
-rw-r--r--battle/anims.asm38
-rw-r--r--battle/bg_effects.asm92
-rw-r--r--battle/core.asm2662
-rw-r--r--battle/effect_command_pointers.asm341
-rw-r--r--battle/effect_commands.asm3534
-rwxr-xr-xbattle/effects/attract.asm79
-rw-r--r--battle/effects/curse.asm26
-rw-r--r--battle/effects/endure.asm2
-rw-r--r--battle/effects/foresight.asm4
-rw-r--r--battle/effects/metronome.asm14
-rw-r--r--battle/effects/mirror_move.asm14
-rw-r--r--battle/effects/nightmare.asm2
-rw-r--r--battle/effects/perish_song.asm2
-rwxr-xr-xbattle/effects/present.asm93
-rw-r--r--battle/effects/protect.asm4
-rw-r--r--battle/effects/rollout.asm4
-rw-r--r--battle/effects/sandstorm.asm2
-rw-r--r--battle/effects/spikes.asm4
-rw-r--r--battle/effects/thief.asm2
-rw-r--r--battle/hidden_power.asm2
-rw-r--r--battle/misc.asm66
-rw-r--r--battle/moves/move_effects.asm424
-rwxr-xr-xbattle/sliding_intro.asm107
-rwxr-xr-xcompare.sh2
-rwxr-xr-xcompare2.sh51
-rw-r--r--constants.asm1
-rw-r--r--constants/animation_constants.asm34
-rw-r--r--constants/battle_constants.asm30
-rwxr-xr-xconstants/battle_tower_constants.asm33
-rw-r--r--constants/gfx_constants.asm4
-rw-r--r--constants/item_constants.asm148
-rw-r--r--constants/map_constants.asm15
-rw-r--r--constants/map_setup_constants.asm20
-rw-r--r--constants/misc_constants.asm69
-rw-r--r--constants/move_constants.asm41
-rw-r--r--constants/pokemon_constants.asm86
-rw-r--r--constants/radio_constants.asm15
-rw-r--r--constants/script_constants.asm14
-rw-r--r--constants/sprite_constants.asm78
-rw-r--r--constants/tilemap_constants.asm38
-rw-r--r--constants/wram_constants.asm7
-rw-r--r--data/battle_tower.asm61
-rwxr-xr-xdata/battle_tower_2.asm72
-rw-r--r--data/evos_attacks.asm4712
-rw-r--r--data/odd_eggs.asm2
-rw-r--r--engine/battle_start.asm46
-rwxr-xr-xengine/billspc.asm2667
-rwxr-xr-xengine/breeding/egg.asm976
-rwxr-xr-xengine/card_flip.asm2560
-rwxr-xr-xengine/clock_reset.asm251
-rw-r--r--engine/color.asm38
-rw-r--r--engine/credits.asm28
-rw-r--r--engine/diploma.asm4
-rwxr-xr-xengine/dummy_game.asm615
-rw-r--r--engine/events.asm84
-rwxr-xr-xengine/events_3.asm863
-rwxr-xr-xengine/evolution_animation.asm457
-rwxr-xr-xengine/flypoints.asm916
-rw-r--r--engine/fruit_trees.asm2
-rwxr-xr-xengine/healmachineanim.asm266
-rw-r--r--engine/landmarks.asm68
-rwxr-xr-xengine/link.asm4117
-rw-r--r--engine/map_objects.asm356
-rw-r--r--engine/map_setup.asm176
-rwxr-xr-xengine/mart.asm1000
-rwxr-xr-xengine/menu.asm587
-rw-r--r--engine/movement.asm104
-rwxr-xr-xengine/namingscreen.asm959
-rw-r--r--engine/pack.asm130
-rw-r--r--engine/party_menu.asm944
-rw-r--r--engine/phone.asm2
-rw-r--r--engine/phone_scripts.asm35
-rw-r--r--engine/pokedex.asm74
-rw-r--r--engine/predef.asm22
-rw-r--r--engine/radio.asm184
-rw-r--r--engine/radio2.asm4
-rw-r--r--engine/save.asm22
-rw-r--r--engine/scripting.asm62
-rwxr-xr-xengine/selectmenu.asm191
-rwxr-xr-xengine/slot_machine.asm2112
-rw-r--r--engine/specials.asm26
-rwxr-xr-xengine/sprites.asm1480
-rwxr-xr-xengine/startmenu.asm1970
-rw-r--r--engine/std_scripts.asm114
-rw-r--r--engine/timeofdaypals.asm12
-rw-r--r--engine/title.asm8
-rwxr-xr-xengine/tmhm.asm113
-rwxr-xr-xevent/basement_key.asm34
-rw-r--r--event/battle_tower.asm2
-rw-r--r--event/buena.asm8
-rwxr-xr-xevent/bug_contest_2.asm136
-rwxr-xr-xevent/bug_contest_judging.asm480
-rwxr-xr-xevent/card_key.asm39
-rw-r--r--event/dratini.asm6
-rwxr-xr-xevent/elevator.asm287
-rwxr-xr-xevent/forced_movement.asm68
-rwxr-xr-xevent/itemball.asm54
-rwxr-xr-xevent/itemfinder.asm58
-rw-r--r--event/kurt.asm26
-rw-r--r--event/magikarp.asm2
-rw-r--r--event/mom.asm10
-rw-r--r--event/move_deleter.asm10
-rw-r--r--event/name_rater.asm2
-rwxr-xr-xevent/poisonstep.asm162
-rw-r--r--event/poke_seer.asm8
-rwxr-xr-xevent/sacred_ash.asm74
-rwxr-xr-xevent/squirtbottle.asm51
-rwxr-xr-xevent/sweet_scent.asm75
-rw-r--r--event/unown.asm6
-rwxr-xr-xevent/whiteout.asm84
-rw-r--r--gbhw.asm18
-rw-r--r--gfx/battle/enemy_hp_bar_border.1bpp (renamed from gfx/unknown/0f8ac0.2bpp)bin32 -> 32 bytes
-rw-r--r--gfx/battle/expbar.2bpp (renamed from gfx/unknown/0f8b10.2bpp)bin144 -> 144 bytes
-rw-r--r--gfx/battle/hp_exp_bar_border.1bpp (renamed from gfx/unknown/0f8ae0.2bpp)bin48 -> 48 bytes
-rw-r--r--gfx/frames/map_entry_sign.2bpp (renamed from gfx/unknown/0f9344.2bpp)bin224 -> 224 bytes
-rw-r--r--gfx/frames/space.2bpp (renamed from gfx/unknown/0f9204.2bpp)bin16 -> 16 bytes
-rw-r--r--gfx/misc/cut_grass.2bpp (renamed from gfx/unknown/08c9cc.2bpp)bin64 -> 64 bytes
-rw-r--r--gfx/misc/cut_tree.2bpp (renamed from gfx/unknown/08c98c.2bpp)bin64 -> 64 bytes
-rw-r--r--gfx/misc/fishing.2bppbin96 -> 0 bytes
-rw-r--r--gfx/misc/fishing1.2bpp1
-rw-r--r--gfx/misc/fishing2.2bppbin0 -> 32 bytes
-rw-r--r--gfx/misc/fishing3.2bppbin0 -> 32 bytes
-rw-r--r--gfx/misc/fishing4.2bpp1
-rw-r--r--gfx/mobile/overworld_phone_icon.2bpp (renamed from gfx/unknown/0f8f24.2bpp)0
-rw-r--r--gfx/mobile/phone_tiles.2bpp (renamed from gfx/unknown/0f9214.2bpp)bin304 -> 304 bytes
-rw-r--r--gfx/overworld/chris_fish.2bpp (renamed from gfx/unknown/0b84f2.2bpp)bin144 -> 144 bytes
-rw-r--r--gfx/overworld/kris_fish.2bpp (renamed from gfx/unknown/0b8582.2bpp)bin144 -> 144 bytes
-rw-r--r--gfx/overworld/sprite_headers.asm415
-rw-r--r--gfx/pics/animation.asm345
-rw-r--r--home.asm154
-rw-r--r--home/audio.asm17
-rw-r--r--home/battle.asm56
-rw-r--r--home/copy.asm93
-rw-r--r--home/copy2.asm2
-rw-r--r--home/farcall.asm12
-rw-r--r--home/flag.asm2
-rw-r--r--home/init.asm10
-rw-r--r--home/joypad.asm18
-rw-r--r--home/map.asm370
-rw-r--r--home/map_objects.asm39
-rw-r--r--home/menu.asm54
-rw-r--r--home/movement.asm88
-rw-r--r--home/palettes.asm4
-rw-r--r--home/serial.asm38
-rw-r--r--home/tilemap.asm73
-rw-r--r--home/time.asm11
-rw-r--r--home/vblank.asm4
-rw-r--r--home/video.asm2
-rw-r--r--home/window.asm4
-rw-r--r--hram.asm16
-rw-r--r--items/item_effects.asm525
-rw-r--r--lib/mobile/main.asm22
-rw-r--r--macros.asm35
-rw-r--r--macros/charmap.asm10
-rw-r--r--macros/event.asm18
-rw-r--r--macros/move_anim.asm146
-rw-r--r--macros/move_effect.asm22
-rw-r--r--macros/movement.asm53
-rw-r--r--macros/text.asm1
-rw-r--r--main.asm31571
-rw-r--r--maps/AzaleaGym.asm6
-rw-r--r--maps/AzaleaPokeCenter1F.asm2
-rw-r--r--maps/AzaleaTown.asm14
-rw-r--r--maps/BattleTower1F.asm118
-rw-r--r--maps/BattleTowerBattleRoom.asm60
-rw-r--r--maps/BattleTowerElevator.asm4
-rw-r--r--maps/BattleTowerHallway.asm58
-rw-r--r--maps/BattleTowerOutside.asm4
-rw-r--r--maps/BillsHouse.asm10
-rw-r--r--maps/BlackthornCity.asm2
-rw-r--r--maps/BlackthornDodrioTradeHouse.asm2
-rw-r--r--maps/BlackthornDragonSpeechHouse.asm4
-rw-r--r--maps/BlackthornGym1F.asm2
-rw-r--r--maps/BlackthornGym2F.asm12
-rw-r--r--maps/BlackthornPokeCenter1F.asm2
-rw-r--r--maps/BluesHouse.asm6
-rw-r--r--maps/BurnedTower1F.asm8
-rw-r--r--maps/BurnedTowerB1F.asm10
-rw-r--r--maps/CeladonCafe.asm2
-rw-r--r--maps/CeladonCity.asm4
-rw-r--r--maps/CeladonDeptStore1F.asm2
-rw-r--r--maps/CeladonDeptStore3F.asm2
-rw-r--r--maps/CeladonDeptStore5F.asm4
-rw-r--r--maps/CeladonDeptStore6F.asm8
-rw-r--r--maps/CeladonGameCornerPrizeRoom.asm6
-rw-r--r--maps/CeladonGym.asm2
-rw-r--r--maps/CeladonMansion1F.asm8
-rw-r--r--maps/CeladonMansion3F.asm2
-rw-r--r--maps/CeladonMansionRoofHouse.asm2
-rw-r--r--maps/CeruleanCity.asm8
-rw-r--r--maps/CeruleanGym.asm4
-rw-r--r--maps/CeruleanPokeCenter1F.asm2
-rw-r--r--maps/CeruleanPoliceStation.asm2
-rw-r--r--maps/CeruleanTradeSpeechHouse.asm6
-rw-r--r--maps/CharcoalKiln.asm8
-rw-r--r--maps/CherrygroveCity.asm4
-rw-r--r--maps/CianwoodCity.asm18
-rw-r--r--maps/CianwoodCityPhotoStudio.asm2
-rw-r--r--maps/CianwoodGym.asm10
-rw-r--r--maps/CianwoodPharmacy.asm2
-rw-r--r--maps/CinnabarIsland.asm2
-rw-r--r--maps/Colosseum.asm2
-rw-r--r--maps/CopycatsHouse1F.asm2
-rw-r--r--maps/CopycatsHouse2F.asm6
-rw-r--r--maps/DanceTheatre.asm14
-rw-r--r--maps/DarkCaveBlackthornEntrance.asm8
-rw-r--r--maps/DarkCaveVioletEntrance.asm16
-rw-r--r--maps/DragonsDenB1F.asm12
-rw-r--r--maps/EarlsPokemonAcademy.asm4
-rw-r--r--maps/EcruteakCity.asm8
-rw-r--r--maps/EcruteakGym.asm4
-rw-r--r--maps/EcruteakHouse.asm4
-rw-r--r--maps/EcruteakItemfinderHouse.asm4
-rw-r--r--maps/EcruteakLugiaSpeechHouse.asm2
-rw-r--r--maps/EcruteakPokeCenter1F.asm4
-rw-r--r--maps/ElmsLab.asm20
-rw-r--r--maps/FastShip1F.asm4
-rw-r--r--maps/FastShipB1F.asm6
-rw-r--r--maps/FastShipCabins_NNW_NNE_NE.asm6
-rw-r--r--maps/FastShipCabins_SE_SSE_CaptainsCabin.asm10
-rw-r--r--maps/FastShipCabins_SW_SSW_NW.asm8
-rw-r--r--maps/FightingDojo.asm2
-rw-r--r--maps/FuchsiaCity.asm8
-rw-r--r--maps/FuchsiaGym.asm12
-rw-r--r--maps/GoldenrodBikeShop.asm2
-rw-r--r--maps/GoldenrodBillsHouse.asm2
-rw-r--r--maps/GoldenrodCity.asm8
-rw-r--r--maps/GoldenrodDeptStore1F.asm2
-rw-r--r--maps/GoldenrodDeptStore2F.asm2
-rw-r--r--maps/GoldenrodDeptStore3F.asm2
-rw-r--r--maps/GoldenrodDeptStore5F.asm10
-rw-r--r--maps/GoldenrodDeptStore6F.asm6
-rw-r--r--maps/GoldenrodDeptStoreB1F.asm12
-rw-r--r--maps/GoldenrodDeptStoreRoof.asm4
-rw-r--r--maps/GoldenrodFlowerShop.asm4
-rw-r--r--maps/GoldenrodGameCorner.asm10
-rw-r--r--maps/GoldenrodGym.asm2
-rw-r--r--maps/GoldenrodMagnetTrainStation.asm4
-rw-r--r--maps/GoldenrodPokeCenter1F.asm42
-rw-r--r--maps/IcePath1F.asm6
-rw-r--r--maps/IcePathB1F.asm10
-rw-r--r--maps/IcePathB2FBlackthornSide.asm2
-rw-r--r--maps/IcePathB2FMahoganySide.asm12
-rw-r--r--maps/IcePathB3F.asm4
-rw-r--r--maps/IlexForest.asm28
-rw-r--r--maps/IndigoPlateauPokeCenter1F.asm6
-rw-r--r--maps/KrissHouse2F.asm8
-rw-r--r--maps/KurtsHouse.asm22
-rw-r--r--maps/LakeofRage.asm10
-rw-r--r--maps/LakeofRageHiddenPowerHouse.asm4
-rw-r--r--maps/LakeofRageMagikarpHouse.asm4
-rw-r--r--maps/LancesRoom.asm4
-rw-r--r--maps/LavRadioTower1F.asm2
-rw-r--r--maps/LavenderMart.asm2
-rw-r--r--maps/MahoganyGym.asm4
-rw-r--r--maps/MahoganyMart1F.asm2
-rw-r--r--maps/MahoganyPokeCenter1F.asm2
-rw-r--r--maps/MahoganyTown.asm2
-rw-r--r--maps/ManiasHouse.asm2
-rw-r--r--maps/MobileBattleRoom.asm4
-rw-r--r--maps/MountMoonSquare.asm2
-rw-r--r--maps/MountMortar1FInside.asm18
-rw-r--r--maps/MountMortar1FOutside.asm4
-rw-r--r--maps/MountMortar2FInside.asm14
-rw-r--r--maps/MountMortarB1F.asm12
-rw-r--r--maps/MrFujisHouse.asm8
-rw-r--r--maps/MrPokemonsHouse.asm6
-rw-r--r--maps/MrPsychicsHouse.asm2
-rw-r--r--maps/NationalPark.asm20
-rw-r--r--maps/NationalParkBugContest.asm18
-rw-r--r--maps/NewBarkTown.asm2
-rw-r--r--maps/OaksLab.asm2
-rw-r--r--maps/OlivineCafe.asm2
-rw-r--r--maps/OlivineCity.asm4
-rw-r--r--maps/OlivineGoodRodHouse.asm2
-rw-r--r--maps/OlivineGym.asm2
-rw-r--r--maps/OlivineHouseBeta.asm2
-rw-r--r--maps/OlivineLighthouse2F.asm4
-rw-r--r--maps/OlivineLighthouse3F.asm2
-rw-r--r--maps/OlivineLighthouse5F.asm8
-rw-r--r--maps/OlivineLighthouse6F.asm22
-rw-r--r--maps/OlivinePort.asm2
-rw-r--r--maps/OlivinePunishmentSpeechHouse.asm2
-rw-r--r--maps/OlivineVoltorbHouse.asm2
-rw-r--r--maps/PalletTown.asm2
-rw-r--r--maps/PewterCity.asm10
-rw-r--r--maps/PewterMart.asm2
-rw-r--r--maps/PewterNidoranSpeechHouse.asm2
-rw-r--r--maps/PewterPokeCenter1F.asm2
-rw-r--r--maps/PokeCenter2F.asm10
-rw-r--r--maps/PokemonFanClub.asm6
-rw-r--r--maps/PowerPlant.asm6
-rw-r--r--maps/RadioTower1F.asm6
-rw-r--r--maps/RadioTower2F.asm4
-rw-r--r--maps/RadioTower3F.asm6
-rw-r--r--maps/RadioTower4F.asm8
-rw-r--r--maps/RadioTower5F.asm8
-rw-r--r--maps/RockTunnel1F.asm4
-rw-r--r--maps/RockTunnelB1F.asm6
-rw-r--r--maps/Route1.asm4
-rw-r--r--maps/Route10PokeCenter1F.asm2
-rw-r--r--maps/Route10South.asm2
-rw-r--r--maps/Route11.asm6
-rw-r--r--maps/Route12.asm6
-rw-r--r--maps/Route12SuperRodHouse.asm2
-rw-r--r--maps/Route14.asm4
-rw-r--r--maps/Route15.asm4
-rw-r--r--maps/Route17.asm4
-rw-r--r--maps/Route18.asm2
-rw-r--r--maps/Route19.asm4
-rw-r--r--maps/Route2.asm12
-rw-r--r--maps/Route20.asm6
-rw-r--r--maps/Route21.asm2
-rw-r--r--maps/Route24.asm2
-rw-r--r--maps/Route25.asm4
-rw-r--r--maps/Route26.asm6
-rw-r--r--maps/Route26DayofWeekSiblingsHouse.asm2
-rw-r--r--maps/Route27.asm10
-rw-r--r--maps/Route27SandstormHouse.asm2
-rw-r--r--maps/Route28FamousSpeechHouse.asm4
-rw-r--r--maps/Route29.asm10
-rw-r--r--maps/Route2NuggetSpeechHouse.asm2
-rw-r--r--maps/Route3.asm4
-rw-r--r--maps/Route30.asm10
-rw-r--r--maps/Route30BerrySpeechHouse.asm2
-rw-r--r--maps/Route31.asm20
-rw-r--r--maps/Route31VioletGate.asm2
-rw-r--r--maps/Route32.asm12
-rw-r--r--maps/Route32PokeCenter1F.asm2
-rw-r--r--maps/Route33.asm6
-rw-r--r--maps/Route34.asm12
-rw-r--r--maps/Route34IlexForestGate.asm4
-rw-r--r--maps/Route35.asm12
-rw-r--r--maps/Route35Goldenrodgate.asm4
-rw-r--r--maps/Route35NationalParkgate.asm14
-rw-r--r--maps/Route36.asm16
-rw-r--r--maps/Route36NationalParkgate.asm20
-rw-r--r--maps/Route36RuinsofAlphgate.asm2
-rw-r--r--maps/Route37.asm12
-rw-r--r--maps/Route38.asm138
-rw-r--r--maps/Route39.asm14
-rw-r--r--maps/Route39Barn.asm4
-rw-r--r--maps/Route39Farmhouse.asm4
-rw-r--r--maps/Route4.asm2
-rw-r--r--maps/Route40.asm16
-rw-r--r--maps/Route40BattleTowerGate.asm2
-rw-r--r--maps/Route41.asm14
-rw-r--r--maps/Route42.asm16
-rw-r--r--maps/Route43.asm10
-rw-r--r--maps/Route43Gate.asm2
-rw-r--r--maps/Route44.asm22
-rw-r--r--maps/Route45.asm22
-rw-r--r--maps/Route46.asm10
-rw-r--r--maps/Route5CleanseTagSpeechHouse.asm4
-rw-r--r--maps/Route5UndergroundEntrance.asm2
-rw-r--r--maps/Route8.asm4
-rw-r--r--maps/Route9.asm4
-rw-r--r--maps/RuinsofAlphAerodactylItemRoom.asm8
-rw-r--r--maps/RuinsofAlphHoOhItemRoom.asm8
-rw-r--r--maps/RuinsofAlphInnerChamber.asm4
-rw-r--r--maps/RuinsofAlphKabutoItemRoom.asm8
-rw-r--r--maps/RuinsofAlphOmanyteItemRoom.asm8
-rw-r--r--maps/RuinsofAlphOutside.asm4
-rw-r--r--maps/RuinsofAlphResearchCenter.asm2
-rw-r--r--maps/SaffronCity.asm4
-rw-r--r--maps/SaffronGym.asm8
-rw-r--r--maps/SaffronMart.asm2
-rw-r--r--maps/SaffronPokeCenter1F.asm4
-rw-r--r--maps/SaffronTrainStation.asm4
-rw-r--r--maps/SilphCo1F.asm2
-rw-r--r--maps/SilverCaveItemRooms.asm4
-rw-r--r--maps/SilverCaveRoom1.asm8
-rw-r--r--maps/SilverCaveRoom2.asm6
-rw-r--r--maps/SlowpokeWellB1F.asm22
-rw-r--r--maps/SlowpokeWellB2F.asm6
-rw-r--r--maps/SproutTower1F.asm4
-rw-r--r--maps/SproutTower2F.asm4
-rw-r--r--maps/SproutTower3F.asm6
-rw-r--r--maps/TeamRocketBaseB1F.asm18
-rw-r--r--maps/TeamRocketBaseB2F.asm28
-rw-r--r--maps/TeamRocketBaseB3F.asm18
-rw-r--r--maps/TimeCapsule.asm2
-rw-r--r--maps/TinTower1F.asm16
-rw-r--r--maps/TinTower3F.asm2
-rw-r--r--maps/TinTower4F.asm6
-rw-r--r--maps/TinTower5F.asm2
-rw-r--r--maps/TinTower6F.asm2
-rw-r--r--maps/TinTower7F.asm2
-rw-r--r--maps/TinTower8F.asm6
-rw-r--r--maps/TinTower9F.asm2
-rw-r--r--maps/TinTowerRoof.asm2
-rw-r--r--maps/TohjoFalls.asm2
-rw-r--r--maps/TradeCenter.asm2
-rw-r--r--maps/UndergroundPathSwitchRoomEntrances.asm4
-rw-r--r--maps/UndergroundWarehouse.asm10
-rw-r--r--maps/UnionCave1F.asm12
-rw-r--r--maps/UnionCaveB1F.asm8
-rw-r--r--maps/UnionCaveB2F.asm8
-rw-r--r--maps/VermilionCity.asm10
-rw-r--r--maps/VermilionMagnetTrainSpeechHouse.asm2
-rw-r--r--maps/VermilionPokeCenter1F.asm2
-rw-r--r--maps/VermilionPort.asm2
-rw-r--r--maps/VictoryRoad.asm10
-rw-r--r--maps/VioletCity.asm14
-rw-r--r--maps/VioletGym.asm2
-rw-r--r--maps/VioletMart.asm2
-rw-r--r--maps/VioletOnixTradeHouse.asm2
-rw-r--r--maps/VioletPokeCenter1F.asm2
-rw-r--r--maps/ViridianCity.asm6
-rw-r--r--maps/ViridianNicknameSpeechHouse.asm4
-rw-r--r--maps/WarehouseEntrance.asm12
-rw-r--r--maps/WhirlIslandB1F.asm12
-rw-r--r--maps/WhirlIslandB2F.asm6
-rw-r--r--maps/WhirlIslandLugiaChamber.asm2
-rw-r--r--maps/WhirlIslandNE.asm2
-rw-r--r--maps/WhirlIslandSW.asm2
-rw-r--r--maps/WiseTriosRoom.asm2
-rw-r--r--maps/map_headers.asm776
-rwxr-xr-xmisc/battle_tower_47.asm4871
-rwxr-xr-xmisc/battle_tower_5c.asm421
-rw-r--r--misc/crystal_misc.asm28
-rw-r--r--misc/mobile_22.asm132
-rw-r--r--misc/mobile_22_2.asm32
-rw-r--r--misc/mobile_40.asm396
-rwxr-xr-xmisc/mobile_41.asm1094
-rw-r--r--misc/mobile_42.asm92
-rw-r--r--misc/mobile_45.asm16785
-rwxr-xr-xmisc/mobile_46.asm8033
-rwxr-xr-xmisc/mobile_5b.asm1236
-rwxr-xr-xmisc/mobile_5c.asm2181
-rw-r--r--misc/mobile_5f.asm124
-rw-r--r--misc/unused_title.asm4
-rw-r--r--predef/cgb.asm56
-rw-r--r--sram.asm32
-rw-r--r--tilesets/animations.asm12
-rw-r--r--tilesets/tileset_headers.asm4
-rwxr-xr-xunknown/013a47.asm230
-rw-r--r--wram.asm468
447 files changed, 57900 insertions, 56758 deletions
diff --git a/audio/cry_pointers.asm b/audio/cry_pointers.asm
index d58a6f090..5185eafd5 100644
--- a/audio/cry_pointers.asm
+++ b/audio/cry_pointers.asm
@@ -1,70 +1,70 @@
; e91b0
- dbw BANK(Cry_00), Cry_00
- dbw BANK(Cry_01), Cry_01
- dbw BANK(Cry_02), Cry_02
- dbw BANK(Cry_03), Cry_03
- dbw BANK(Cry_04), Cry_04
- dbw BANK(Cry_05), Cry_05
- dbw BANK(Cry_06), Cry_06
- dbw BANK(Cry_07), Cry_07
- dbw BANK(Cry_08), Cry_08
- dbw BANK(Cry_09), Cry_09
- dbw BANK(Cry_0A), Cry_0A
- dbw BANK(Cry_0B), Cry_0B
- dbw BANK(Cry_0C), Cry_0C
- dbw BANK(Cry_0D), Cry_0D
- dbw BANK(Cry_0E), Cry_0E
- dbw BANK(Cry_0F), Cry_0F
- dbw BANK(Cry_10), Cry_10
- dbw BANK(Cry_11), Cry_11
- dbw BANK(Cry_12), Cry_12
- dbw BANK(Cry_13), Cry_13
- dbw BANK(Cry_14), Cry_14
- dbw BANK(Cry_15), Cry_15
- dbw BANK(Cry_16), Cry_16
- dbw BANK(Cry_17), Cry_17
- dbw BANK(Cry_18), Cry_18
- dbw BANK(Cry_19), Cry_19
- dbw BANK(Cry_1A), Cry_1A
- dbw BANK(Cry_1B), Cry_1B
- dbw BANK(Cry_1C), Cry_1C
- dbw BANK(Cry_1D), Cry_1D
- dbw BANK(Cry_1E), Cry_1E
- dbw BANK(Cry_1F), Cry_1F
- dbw BANK(Cry_20), Cry_20
- dbw BANK(Cry_21), Cry_21
- dbw BANK(Cry_22), Cry_22
- dbw BANK(Cry_23), Cry_23
- dbw BANK(Cry_24), Cry_24
- dbw BANK(Cry_25), Cry_25
- dbw BANK(Cry_26), Cry_26
- dbw BANK(Cry_27), Cry_27
- dbw BANK(Cry_28), Cry_28
- dbw BANK(Cry_29), Cry_29
- dbw BANK(Cry_2A), Cry_2A
- dbw BANK(Cry_2B), Cry_2B
- dbw BANK(Cry_2C), Cry_2C
- dbw BANK(Cry_2D), Cry_2D
- dbw BANK(Cry_2E), Cry_2E
- dbw BANK(Cry_2F), Cry_2F
- dbw BANK(Cry_30), Cry_30
- dbw BANK(Cry_31), Cry_31
- dbw BANK(Cry_32), Cry_32
- dbw BANK(Cry_33), Cry_33
- dbw BANK(Cry_34), Cry_34
- dbw BANK(Cry_35), Cry_35
- dbw BANK(Cry_36), Cry_36
- dbw BANK(Cry_37), Cry_37
- dbw BANK(Cry_38), Cry_38
- dbw BANK(Cry_39), Cry_39
- dbw BANK(Cry_3A), Cry_3A
- dbw BANK(Cry_3B), Cry_3B
- dbw BANK(Cry_3C), Cry_3C
- dbw BANK(Cry_3D), Cry_3D
- dbw BANK(Cry_3E), Cry_3E
- dbw BANK(Cry_3F), Cry_3F
- dbw BANK(Cry_40), Cry_40
- dbw BANK(Cry_41), Cry_41
- dbw BANK(Cry_42), Cry_42
- dbw BANK(Cry_43), Cry_43
+ dba Cry_00
+ dba Cry_01
+ dba Cry_02
+ dba Cry_03
+ dba Cry_04
+ dba Cry_05
+ dba Cry_06
+ dba Cry_07
+ dba Cry_08
+ dba Cry_09
+ dba Cry_0A
+ dba Cry_0B
+ dba Cry_0C
+ dba Cry_0D
+ dba Cry_0E
+ dba Cry_0F
+ dba Cry_10
+ dba Cry_11
+ dba Cry_12
+ dba Cry_13
+ dba Cry_14
+ dba Cry_15
+ dba Cry_16
+ dba Cry_17
+ dba Cry_18
+ dba Cry_19
+ dba Cry_1A
+ dba Cry_1B
+ dba Cry_1C
+ dba Cry_1D
+ dba Cry_1E
+ dba Cry_1F
+ dba Cry_20
+ dba Cry_21
+ dba Cry_22
+ dba Cry_23
+ dba Cry_24
+ dba Cry_25
+ dba Cry_26
+ dba Cry_27
+ dba Cry_28
+ dba Cry_29
+ dba Cry_2A
+ dba Cry_2B
+ dba Cry_2C
+ dba Cry_2D
+ dba Cry_2E
+ dba Cry_2F
+ dba Cry_30
+ dba Cry_31
+ dba Cry_32
+ dba Cry_33
+ dba Cry_34
+ dba Cry_35
+ dba Cry_36
+ dba Cry_37
+ dba Cry_38
+ dba Cry_39
+ dba Cry_3A
+ dba Cry_3B
+ dba Cry_3C
+ dba Cry_3D
+ dba Cry_3E
+ dba Cry_3F
+ dba Cry_40
+ dba Cry_41
+ dba Cry_42
+ dba Cry_43
; e927c
diff --git a/audio/engine.asm b/audio/engine.asm
index 0c4ebcad3..f3a67e5f3 100644
--- a/audio/engine.asm
+++ b/audio/engine.asm
@@ -6,7 +6,7 @@
; FadeMusic
; PlayStereoSFX
-_SoundRestart:: ; e8000
+_MapSetup_Sound_Off:: ; e8000
; restart sound operation
; clear all relevant hardware registers & wram
push hl
@@ -26,7 +26,7 @@ _SoundRestart:: ; e8000
.clearsound
; sound channel 1 2 3 4
xor a
- ld [hli], a ; rNR10, $ff15, rNR30, $ff1f ; sweep = 0
+ ld [hli], a ; rNR10, rNR20, rNR30, rNR40 ; sweep = 0
ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0
ld a, $08
@@ -63,7 +63,7 @@ MusicFadeRestart: ; e803d
push af
ld a, [MusicFadeIDLo]
push af
- call _SoundRestart
+ call _MapSetup_Sound_Off
pop af
ld [MusicFadeIDLo], a
pop af
@@ -345,7 +345,7 @@ UpdateChannels: ; e8125
ld a, [rNR52]
and a, %10001101 ; ch2 off
ld [rNR52], a
- ld hl, $ff15
+ ld hl, rNR20
call ClearChannel
ret
.asm_e8204
@@ -418,39 +418,39 @@ rept 4
endr
ld de, WaveSamples
add hl, de
- ; load wavepattern into $ff30-$ff3f
+ ; load wavepattern into rWave_0-rWave_f
ld a, [hli]
- ld [$ff30], a
+ ld [rWave_0], a
ld a, [hli]
- ld [$ff31], a
+ ld [rWave_1], a
ld a, [hli]
- ld [$ff32], a
+ ld [rWave_2], a
ld a, [hli]
- ld [$ff33], a
+ ld [rWave_3], a
ld a, [hli]
- ld [$ff34], a
+ ld [rWave_4], a
ld a, [hli]
- ld [$ff35], a
+ ld [rWave_5], a
ld a, [hli]
- ld [$ff36], a
+ ld [rWave_6], a
ld a, [hli]
- ld [$ff37], a
+ ld [rWave_7], a
ld a, [hli]
- ld [$ff38], a
+ ld [rWave_8], a
ld a, [hli]
- ld [$ff39], a
+ ld [rWave_9], a
ld a, [hli]
- ld [$ff3a], a
+ ld [rWave_a], a
ld a, [hli]
- ld [$ff3b], a
+ ld [rWave_b], a
ld a, [hli]
- ld [$ff3c], a
+ ld [rWave_c], a
ld a, [hli]
- ld [$ff3d], a
+ ld [rWave_d], a
ld a, [hli]
- ld [$ff3e], a
+ ld [rWave_e], a
ld a, [hli]
- ld [$ff3f], a
+ ld [rWave_f], a
pop hl
ld a, [wc293]
and a, $f0
@@ -475,7 +475,7 @@ endr
ld a, [rNR52]
and a, %10000111 ; ch4 off
ld [rNR52], a
- ld hl, $ff1f
+ ld hl, rNR40
call ClearChannel
ret
.asm_e82d4
@@ -613,6 +613,7 @@ FadeMusic: ; e8358
jr z, .novolume
dec a
jr .updatevolume
+
.novolume
; make sure volume is off
xor a
@@ -660,6 +661,7 @@ FadeMusic: ; e8358
ld hl, MusicFade
set 7, [hl]
ret
+
.fadein
; are we done?
cp a, $07
@@ -3159,7 +3161,7 @@ ChannelPointers: ; e8fd9
ClearChannels:: ; e8fe9
; runs ClearChannel for all 4 channels
-; doesn't seem to be used, but functionally identical to SoundRestart
+; doesn't seem to be used, but functionally identical to MapSetup_Sound_Off
ld hl, rNR50
xor a
rept 2
@@ -3177,12 +3179,12 @@ endr
; e8ffe
ClearChannel: ; e8ffe
-; input: hl = beginning hw sound register (rNR10, $ff15, rNR30, $ff1f)
+; input: hl = beginning hw sound register (rNR10, rNR20, rNR30, rNR40)
; output: 00 00 80 00 80
; sound channel 1 2 3 4
xor a
- ld [hli], a ; rNR10, $ff15, rNR30, $ff1f ; sweep = 0
+ ld [hli], a ; rNR10, rNR20, rNR30, rNR40 ; sweep = 0
ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0
ld a, $08
diff --git a/audio/music_pointers.asm b/audio/music_pointers.asm
index e42f9cc9f..11d55fe2c 100644
--- a/audio/music_pointers.asm
+++ b/audio/music_pointers.asm
@@ -9,110 +9,110 @@
; Songs V
; e906e
- dbw BANK(Music_Nothing), Music_Nothing ; 0xe91a3
- dbw BANK(Music_TitleScreen), Music_TitleScreen ; 0xeb808
- dbw BANK(Music_Route1), Music_Route1 ; 0xec000
- dbw BANK(Music_Route3), Music_Route3 ; 0xec2ca
- dbw BANK(Music_Route12), Music_Route12 ; 0xec506
- dbw BANK(Music_MagnetTrain), Music_MagnetTrain ; 0xef5f0
- dbw BANK(Music_KantoGymBattle), Music_KantoGymBattle ; 0xec720
- dbw BANK(Music_KantoTrainerBattle), Music_KantoTrainerBattle ; 0xec9fa
- dbw BANK(Music_KantoWildBattle), Music_KantoWildBattle ; 0xed06d
- dbw BANK(Music_PokemonCenter), Music_PokemonCenter ; 0xed5c6
- dbw BANK(Music_LookHiker), Music_LookHiker ; 0xf7411
- dbw BANK(Music_LookLass), Music_LookLass ; 0xed79b
- dbw BANK(Music_LookOfficer), Music_LookOfficer ; 0xed82d
- dbw BANK(Music_HealPokemon), Music_HealPokemon ; 0xf0697
- dbw BANK(Music_LavenderTown), Music_LavenderTown ; 0xef72f
- dbw BANK(Music_Route2), Music_Route2 ; 0xed8dd
- dbw BANK(Music_MtMoon), Music_MtMoon ; 0xedb29
- dbw BANK(Music_ShowMeAround), Music_ShowMeAround ; 0xedbd8
- dbw BANK(Music_GameCorner), Music_GameCorner ; 0xedd6d
- dbw BANK(Music_Bicycle), Music_Bicycle ; 0xee119
- dbw BANK(Music_HallOfFame), Music_HallOfFame ; 0xf05bf
- dbw BANK(Music_ViridianCity), Music_ViridianCity ; 0xf4000
- dbw BANK(Music_CeladonCity), Music_CeladonCity ; 0xf435b
- dbw BANK(Music_TrainerVictory), Music_TrainerVictory ; 0xebeab
- dbw BANK(Music_WildPokemonVictory), Music_WildPokemonVictory ; 0xf4518
- dbw BANK(Music_GymLeaderVictory), Music_GymLeaderVictory ; 0xf462c
- dbw BANK(Music_MtMoonSquare), Music_MtMoonSquare ; 0xf4815
- dbw BANK(Music_Gym), Music_Gym ; 0xf48ae
- dbw BANK(Music_PalletTown), Music_PalletTown ; 0xf4b0c
- dbw BANK(Music_ProfOaksPokemonTalk), Music_ProfOaksPokemonTalk ; 0xf4c9f
- dbw BANK(Music_ProfOak), Music_ProfOak ; 0xf4dea
- dbw BANK(Music_LookRival), Music_LookRival ; 0xf4f79
- dbw BANK(Music_AfterTheRivalFight), Music_AfterTheRivalFight ; 0xf5127
- dbw BANK(Music_Surf), Music_Surf ; 0xf518a
- dbw BANK(Music_Evolution), Music_Evolution ; 0xf06e1
- dbw BANK(Music_NationalPark), Music_NationalPark ; 0xf54e8
- dbw BANK(Music_Credits), Music_Credits ; 0x1f31c
- dbw BANK(Music_AzaleaTown), Music_AzaleaTown ; 0xf57e8
- dbw BANK(Music_CherrygroveCity), Music_CherrygroveCity ; 0xf5b03
- dbw BANK(Music_LookKimonoGirl), Music_LookKimonoGirl ; 0xf79b8
- dbw BANK(Music_UnionCave), Music_UnionCave ; 0xf5c60
- dbw BANK(Music_JohtoWildBattle), Music_JohtoWildBattle ; 0xf5dc5
- dbw BANK(Music_JohtoTrainerBattle), Music_JohtoTrainerBattle ; 0xf6096
- dbw BANK(Music_Route30), Music_Route30 ; 0xefc01
- dbw BANK(Music_EcruteakCity), Music_EcruteakCity ; 0xef2d0
- dbw BANK(Music_VioletCity), Music_VioletCity ; 0xf0000
- dbw BANK(Music_JohtoGymBattle), Music_JohtoGymBattle ; 0xea50d
- dbw BANK(Music_ChampionBattle), Music_ChampionBattle ; 0xea9c1
- dbw BANK(Music_RivalBattle), Music_RivalBattle ; 0xe974f
- dbw BANK(Music_RocketBattle), Music_RocketBattle ; 0xe9b6f
- dbw BANK(Music_ElmsLab), Music_ElmsLab ; 0xea040
- dbw BANK(Music_DarkCave), Music_DarkCave ; 0xea2be
- dbw BANK(Music_Route29), Music_Route29 ; 0xf0386
- dbw BANK(Music_Route36), Music_Route36 ; 0xe94e9
- dbw BANK(Music_SSAqua), Music_SSAqua ; 0xead99
- dbw BANK(Music_LookYoungster), Music_LookYoungster ; 0xf66c3
- dbw BANK(Music_LookBeauty), Music_LookBeauty ; 0xeee3e
- dbw BANK(Music_LookRocket), Music_LookRocket ; 0xf74a2
- dbw BANK(Music_LookPokemaniac), Music_LookPokemaniac ; 0xebde1
- dbw BANK(Music_LookSage), Music_LookSage ; 0xee35e
- dbw BANK(Music_NewBarkTown), Music_NewBarkTown ; 0xeb2d3
- dbw BANK(Music_GoldenrodCity), Music_GoldenrodCity ; 0xeb453
- dbw BANK(Music_VermilionCity), Music_VermilionCity ; 0xeb676
- dbw BANK(Music_PokemonChannel), Music_PokemonChannel ; 0xee45f
- dbw BANK(Music_PokeFluteChannel), Music_PokeFluteChannel ; 0xf7b13
- dbw BANK(Music_TinTower), Music_TinTower ; 0xf6811
- dbw BANK(Music_SproutTower), Music_SproutTower ; 0xf6974
- dbw BANK(Music_BurnedTower), Music_BurnedTower ; 0xf6a99
- dbw BANK(Music_Lighthouse), Music_Lighthouse ; 0xee569
- dbw BANK(Music_LakeOfRage), Music_LakeOfRage ; 0xee6c5
- dbw BANK(Music_IndigoPlateau), Music_IndigoPlateau ; 0xee852
- dbw BANK(Music_Route37), Music_Route37 ; 0xee94b
- dbw BANK(Music_RocketHideout), Music_RocketHideout ; 0xeeb75
- dbw BANK(Music_DragonsDen), Music_DragonsDen ; 0xeece8
- dbw BANK(Music_JohtoWildBattleNight), Music_JohtoWildBattleNight ; 0xf605c
- dbw BANK(Music_RuinsOfAlphRadio), Music_RuinsOfAlphRadio ; 0xeedcb
- dbw BANK(Music_SuccessfulCapture), Music_SuccessfulCapture ; 0xf4602
- dbw BANK(Music_Route26), Music_Route26 ; 0xeefb2
- dbw BANK(Music_Mom), Music_Mom ; 0xf6bf2
- dbw BANK(Music_VictoryRoad), Music_VictoryRoad ; 0xf6c72
- dbw BANK(Music_PokemonLullaby), Music_PokemonLullaby ; 0xf6d79
- dbw BANK(Music_PokemonMarch), Music_PokemonMarch ; 0xf6e23
- dbw BANK(Music_GoldSilverOpening), Music_GoldSilverOpening ; 0xf7055
- dbw BANK(Music_GoldSilverOpening2), Music_GoldSilverOpening2 ; 0xf7308
- dbw BANK(Music_MainMenu), Music_MainMenu ; 0xf78fd
- dbw BANK(Music_RuinsOfAlphInterior), Music_RuinsOfAlphInterior ; 0xebd9e
- dbw BANK(Music_RocketTheme), Music_RocketTheme ; 0xf766d
- dbw BANK(Music_DancingHall), Music_DancingHall ; 0xef9bc
- dbw BANK(Music_ContestResults), Music_ContestResults ; 0xefb3e
- dbw BANK(Music_BugCatchingContest), Music_BugCatchingContest ; 0xf7c16
- dbw BANK(Music_LakeOfRageRocketRadio), Music_LakeOfRageRocketRadio ; 0xef5b1
- dbw BANK(Music_Printer), Music_Printer ; 0xf07fd
- dbw BANK(Music_PostCredits), Music_PostCredits ; 0xcfd9e
+ dba Music_Nothing ; 0xe91a3
+ dba Music_TitleScreen ; 0xeb808
+ dba Music_Route1 ; 0xec000
+ dba Music_Route3 ; 0xec2ca
+ dba Music_Route12 ; 0xec506
+ dba Music_MagnetTrain ; 0xef5f0
+ dba Music_KantoGymBattle ; 0xec720
+ dba Music_KantoTrainerBattle ; 0xec9fa
+ dba Music_KantoWildBattle ; 0xed06d
+ dba Music_PokemonCenter ; 0xed5c6
+ dba Music_LookHiker ; 0xf7411
+ dba Music_LookLass ; 0xed79b
+ dba Music_LookOfficer ; 0xed82d
+ dba Music_HealPokemon ; 0xf0697
+ dba Music_LavenderTown ; 0xef72f
+ dba Music_Route2 ; 0xed8dd
+ dba Music_MtMoon ; 0xedb29
+ dba Music_ShowMeAround ; 0xedbd8
+ dba Music_GameCorner ; 0xedd6d
+ dba Music_Bicycle ; 0xee119
+ dba Music_HallOfFame ; 0xf05bf
+ dba Music_ViridianCity ; 0xf4000
+ dba Music_CeladonCity ; 0xf435b
+ dba Music_TrainerVictory ; 0xebeab
+ dba Music_WildPokemonVictory ; 0xf4518
+ dba Music_GymLeaderVictory ; 0xf462c
+ dba Music_MtMoonSquare ; 0xf4815
+ dba Music_Gym ; 0xf48ae
+ dba Music_PalletTown ; 0xf4b0c
+ dba Music_ProfOaksPokemonTalk ; 0xf4c9f
+ dba Music_ProfOak ; 0xf4dea
+ dba Music_LookRival ; 0xf4f79
+ dba Music_AfterTheRivalFight ; 0xf5127
+ dba Music_Surf ; 0xf518a
+ dba Music_Evolution ; 0xf06e1
+ dba Music_NationalPark ; 0xf54e8
+ dba Music_Credits ; 0x1f31c
+ dba Music_AzaleaTown ; 0xf57e8
+ dba Music_CherrygroveCity ; 0xf5b03
+ dba Music_LookKimonoGirl ; 0xf79b8
+ dba Music_UnionCave ; 0xf5c60
+ dba Music_JohtoWildBattle ; 0xf5dc5
+ dba Music_JohtoTrainerBattle ; 0xf6096
+ dba Music_Route30 ; 0xefc01
+ dba Music_EcruteakCity ; 0xef2d0
+ dba Music_VioletCity ; 0xf0000
+ dba Music_JohtoGymBattle ; 0xea50d
+ dba Music_ChampionBattle ; 0xea9c1
+ dba Music_RivalBattle ; 0xe974f
+ dba Music_RocketBattle ; 0xe9b6f
+ dba Music_ElmsLab ; 0xea040
+ dba Music_DarkCave ; 0xea2be
+ dba Music_Route29 ; 0xf0386
+ dba Music_Route36 ; 0xe94e9
+ dba Music_SSAqua ; 0xead99
+ dba Music_LookYoungster ; 0xf66c3
+ dba Music_LookBeauty ; 0xeee3e
+ dba Music_LookRocket ; 0xf74a2
+ dba Music_LookPokemaniac ; 0xebde1
+ dba Music_LookSage ; 0xee35e
+ dba Music_NewBarkTown ; 0xeb2d3
+ dba Music_GoldenrodCity ; 0xeb453
+ dba Music_VermilionCity ; 0xeb676
+ dba Music_PokemonChannel ; 0xee45f
+ dba Music_PokeFluteChannel ; 0xf7b13
+ dba Music_TinTower ; 0xf6811
+ dba Music_SproutTower ; 0xf6974
+ dba Music_BurnedTower ; 0xf6a99
+ dba Music_Lighthouse ; 0xee569
+ dba Music_LakeOfRage ; 0xee6c5
+ dba Music_IndigoPlateau ; 0xee852
+ dba Music_Route37 ; 0xee94b
+ dba Music_RocketHideout ; 0xeeb75
+ dba Music_DragonsDen ; 0xeece8
+ dba Music_JohtoWildBattleNight ; 0xf605c
+ dba Music_RuinsOfAlphRadio ; 0xeedcb
+ dba Music_SuccessfulCapture ; 0xf4602
+ dba Music_Route26 ; 0xeefb2
+ dba Music_Mom ; 0xf6bf2
+ dba Music_VictoryRoad ; 0xf6c72
+ dba Music_PokemonLullaby ; 0xf6d79
+ dba Music_PokemonMarch ; 0xf6e23
+ dba Music_GoldSilverOpening ; 0xf7055
+ dba Music_GoldSilverOpening2 ; 0xf7308
+ dba Music_MainMenu ; 0xf78fd
+ dba Music_RuinsOfAlphInterior ; 0xebd9e
+ dba Music_RocketTheme ; 0xf766d
+ dba Music_DancingHall ; 0xef9bc
+ dba Music_ContestResults ; 0xefb3e
+ dba Music_BugCatchingContest ; 0xf7c16
+ dba Music_LakeOfRageRocketRadio ; 0xef5b1
+ dba Music_Printer ; 0xf07fd
+ dba Music_PostCredits ; 0xcfd9e
; Crystal adds the following songs:
- dbw BANK(Music_Clair), Music_Clair ; 0x1fa8d
- dbw BANK(Music_MobileAdapterMenu), Music_MobileAdapterMenu ; 0x17801f
- dbw BANK(Music_MobileAdapter), Music_MobileAdapter ; 0x1fc87
- dbw BANK(Music_BuenasPassword), Music_BuenasPassword ; 0x178153
- dbw BANK(Music_LookMysticalMan), Music_LookMysticalMan ; 0x17843b
- dbw BANK(Music_CrystalOpening), Music_CrystalOpening ; 0x1786e8
- dbw BANK(Music_BattleTowerTheme), Music_BattleTowerTheme ; 0x178889
- dbw BANK(Music_SuicuneBattle), Music_SuicuneBattle ; 0x178b81
- dbw BANK(Music_BattleTowerLobby), Music_BattleTowerLobby ; 0x17948b
- dbw BANK(Music_MobileCenter), Music_MobileCenter ; 0x17961d
+ dba Music_Clair ; 0x1fa8d
+ dba Music_MobileAdapterMenu ; 0x17801f
+ dba Music_MobileAdapter ; 0x1fc87
+ dba Music_BuenasPassword ; 0x178153
+ dba Music_LookMysticalMan ; 0x17843b
+ dba Music_CrystalOpening ; 0x1786e8
+ dba Music_BattleTowerTheme ; 0x178889
+ dba Music_SuicuneBattle ; 0x178b81
+ dba Music_BattleTowerLobby ; 0x17948b
+ dba Music_MobileCenter ; 0x17961d
; e91a3
diff --git a/audio/sfx_pointers.asm b/audio/sfx_pointers.asm
index d0f24fea2..c5a2b02bf 100644
--- a/audio/sfx_pointers.asm
+++ b/audio/sfx_pointers.asm
@@ -1,212 +1,212 @@
; e927c
- dbw BANK(Sfx_DexFanfare5079), Sfx_DexFanfare5079
- dbw BANK(Sfx_Item), Sfx_Item
- dbw BANK(Sfx_CaughtMon), Sfx_CaughtMon
- dbw BANK(Sfx_PokeballsPlacedOnTable), Sfx_PokeballsPlacedOnTable
- dbw BANK(Sfx_Potion), Sfx_Potion
- dbw BANK(Sfx_FullHeal), Sfx_FullHeal
- dbw BANK(Sfx_Menu), Sfx_Menu
- dbw BANK(Sfx_ReadText), Sfx_ReadText
- dbw BANK(Sfx_ReadText2), Sfx_ReadText2
- dbw BANK(Sfx_DexFanfare2049), Sfx_DexFanfare2049
- dbw BANK(Sfx_DexFanfare80109), Sfx_DexFanfare80109
- dbw BANK(Sfx_Poison), Sfx_Poison
- dbw BANK(Sfx_GotSafariBalls), Sfx_GotSafariBalls
- dbw BANK(Sfx_BootPc), Sfx_BootPc
- dbw BANK(Sfx_ShutDownPc), Sfx_ShutDownPc
- dbw BANK(Sfx_ChoosePcOption), Sfx_ChoosePcOption
- dbw BANK(Sfx_EscapeRope), Sfx_EscapeRope
- dbw BANK(Sfx_PushButton), Sfx_PushButton
- dbw BANK(Sfx_SecondPartOfItemfinder), Sfx_SecondPartOfItemfinder
- dbw BANK(Sfx_WarpTo), Sfx_WarpTo
- dbw BANK(Sfx_WarpFrom), Sfx_WarpFrom
- dbw BANK(Sfx_ChangeDexMode), Sfx_ChangeDexMode
- dbw BANK(Sfx_JumpOverLedge), Sfx_JumpOverLedge
- dbw BANK(Sfx_GrassRustle), Sfx_GrassRustle
- dbw BANK(Sfx_Fly), Sfx_Fly
- dbw BANK(Sfx_Wrong), Sfx_Wrong
- dbw BANK(Sfx_Squeak), Sfx_Squeak
- dbw BANK(Sfx_Strength), Sfx_Strength
- dbw BANK(Sfx_Boat), Sfx_Boat
- dbw BANK(Sfx_WallOpen), Sfx_WallOpen
- dbw BANK(Sfx_PlacePuzzlePieceDown), Sfx_PlacePuzzlePieceDown
- dbw BANK(Sfx_EnterDoor), Sfx_EnterDoor
- dbw BANK(Sfx_SwitchPokemon), Sfx_SwitchPokemon
- dbw BANK(Sfx_Tally), Sfx_Tally
- dbw BANK(Sfx_Transaction), Sfx_Transaction
- dbw BANK(Sfx_ExitBuilding), Sfx_ExitBuilding
- dbw BANK(Sfx_Bump), Sfx_Bump
- dbw BANK(Sfx_Save), Sfx_Save
- dbw BANK(Sfx_Pokeflute), Sfx_Pokeflute
- dbw BANK(Sfx_ElevatorEnd), Sfx_ElevatorEnd
- dbw BANK(Sfx_ThrowBall), Sfx_ThrowBall
- dbw BANK(Sfx_BallPoof), Sfx_BallPoof
- dbw BANK(Sfx_Unknown3A), Sfx_Unknown3A
- dbw BANK(Sfx_Run), Sfx_Run
- dbw BANK(Sfx_SlotMachineStart), Sfx_SlotMachineStart
- dbw BANK(Sfx_Fanfare), Sfx_Fanfare
- dbw BANK(Sfx_Peck), Sfx_Peck
- dbw BANK(Sfx_Kinesis), Sfx_Kinesis
- dbw BANK(Sfx_Lick), Sfx_Lick
- dbw BANK(Sfx_Pound), Sfx_Pound
- dbw BANK(Sfx_MovePuzzlePiece), Sfx_MovePuzzlePiece
- dbw BANK(Sfx_CometPunch), Sfx_CometPunch
- dbw BANK(Sfx_MegaPunch), Sfx_MegaPunch
- dbw BANK(Sfx_Scratch), Sfx_Scratch
- dbw BANK(Sfx_Vicegrip), Sfx_Vicegrip
- dbw BANK(Sfx_RazorWind), Sfx_RazorWind
- dbw BANK(Sfx_Cut), Sfx_Cut
- dbw BANK(Sfx_WingAttack), Sfx_WingAttack
- dbw BANK(Sfx_Whirlwind), Sfx_Whirlwind
- dbw BANK(Sfx_Bind), Sfx_Bind
- dbw BANK(Sfx_VineWhip), Sfx_VineWhip
- dbw BANK(Sfx_DoubleKick), Sfx_DoubleKick
- dbw BANK(Sfx_MegaKick), Sfx_MegaKick
- dbw BANK(Sfx_Headbutt), Sfx_Headbutt
- dbw BANK(Sfx_HornAttack), Sfx_HornAttack
- dbw BANK(Sfx_Tackle), Sfx_Tackle
- dbw BANK(Sfx_PoisonSting), Sfx_PoisonSting
- dbw BANK(Sfx_Powder), Sfx_Powder
- dbw BANK(Sfx_Doubleslap), Sfx_Doubleslap
- dbw BANK(Sfx_Bite), Sfx_Bite
- dbw BANK(Sfx_JumpKick), Sfx_JumpKick
- dbw BANK(Sfx_Stomp), Sfx_Stomp
- dbw BANK(Sfx_TailWhip), Sfx_TailWhip
- dbw BANK(Sfx_KarateChop), Sfx_KarateChop
- dbw BANK(Sfx_Submission), Sfx_Submission
- dbw BANK(Sfx_WaterGun), Sfx_WaterGun
- dbw BANK(Sfx_SwordsDance), Sfx_SwordsDance
- dbw BANK(Sfx_Thunder), Sfx_Thunder
- dbw BANK(Sfx_Supersonic), Sfx_Supersonic
- dbw BANK(Sfx_Leer), Sfx_Leer
- dbw BANK(Sfx_Ember), Sfx_Ember
- dbw BANK(Sfx_Bubblebeam), Sfx_Bubblebeam
- dbw BANK(Sfx_HydroPump), Sfx_HydroPump
- dbw BANK(Sfx_Surf), Sfx_Surf
- dbw BANK(Sfx_Psybeam), Sfx_Psybeam
- dbw BANK(Sfx_Charge), Sfx_Charge
- dbw BANK(Sfx_Thundershock), Sfx_Thundershock
- dbw BANK(Sfx_Psychic), Sfx_Psychic
- dbw BANK(Sfx_Screech), Sfx_Screech
- dbw BANK(Sfx_BoneClub), Sfx_BoneClub
- dbw BANK(Sfx_Sharpen), Sfx_Sharpen
- dbw BANK(Sfx_EggBomb), Sfx_EggBomb
- dbw BANK(Sfx_Sing), Sfx_Sing
- dbw BANK(Sfx_HyperBeam), Sfx_HyperBeam
- dbw BANK(Sfx_Shine), Sfx_Shine
- dbw BANK(Sfx_Unknown5F), Sfx_Unknown5F
- dbw BANK(Sfx_Unknown60), Sfx_Unknown60
- dbw BANK(Sfx_Unknown61), Sfx_Unknown61
- dbw BANK(Sfx_Unknown62), Sfx_Unknown62
- dbw BANK(Sfx_Unknown63), Sfx_Unknown63
- dbw BANK(Sfx_Burn), Sfx_Burn
- dbw BANK(Sfx_TitleScreenEntrance), Sfx_TitleScreenEntrance
- dbw BANK(Sfx_Unknown66), Sfx_Unknown66
- dbw BANK(Sfx_GetCoinFromSlots), Sfx_GetCoinFromSlots
- dbw BANK(Sfx_PayDay), Sfx_PayDay
- dbw BANK(Sfx_Metronome), Sfx_Metronome
- dbw BANK(Sfx_Call), Sfx_Call
- dbw BANK(Sfx_HangUp), Sfx_HangUp
- dbw BANK(Sfx_NoSignal), Sfx_NoSignal
- dbw BANK(Sfx_Sandstorm), Sfx_Sandstorm
- dbw BANK(Sfx_Elevator), Sfx_Elevator
- dbw BANK(Sfx_Protect), Sfx_Protect
- dbw BANK(Sfx_Sketch), Sfx_Sketch
- dbw BANK(Sfx_RainDance), Sfx_RainDance
- dbw BANK(Sfx_Aeroblast), Sfx_Aeroblast
- dbw BANK(Sfx_Spark), Sfx_Spark
- dbw BANK(Sfx_Curse), Sfx_Curse
- dbw BANK(Sfx_Rage), Sfx_Rage
- dbw BANK(Sfx_Thief), Sfx_Thief
- dbw BANK(Sfx_Thief2), Sfx_Thief2
- dbw BANK(Sfx_SpiderWeb), Sfx_SpiderWeb
- dbw BANK(Sfx_MindReader), Sfx_MindReader
- dbw BANK(Sfx_Nightmare), Sfx_Nightmare
- dbw BANK(Sfx_Snore), Sfx_Snore
- dbw BANK(Sfx_SweetKiss), Sfx_SweetKiss
- dbw BANK(Sfx_SweetKiss2), Sfx_SweetKiss2
- dbw BANK(Sfx_BellyDrum), Sfx_BellyDrum
- dbw BANK(Sfx_Unknown7F), Sfx_Unknown7F
- dbw BANK(Sfx_SludgeBomb), Sfx_SludgeBomb
- dbw BANK(Sfx_Foresight), Sfx_Foresight
- dbw BANK(Sfx_Spite), Sfx_Spite
- dbw BANK(Sfx_Outrage), Sfx_Outrage
- dbw BANK(Sfx_PerishSong), Sfx_PerishSong
- dbw BANK(Sfx_GigaDrain), Sfx_GigaDrain
- dbw BANK(Sfx_Attract), Sfx_Attract
- dbw BANK(Sfx_Kinesis2), Sfx_Kinesis2
- dbw BANK(Sfx_ZapCannon), Sfx_ZapCannon
- dbw BANK(Sfx_MeanLook), Sfx_MeanLook
- dbw BANK(Sfx_HealBell), Sfx_HealBell
- dbw BANK(Sfx_Return), Sfx_Return
- dbw BANK(Sfx_ExpBar), Sfx_ExpBar
- dbw BANK(Sfx_MilkDrink), Sfx_MilkDrink
- dbw BANK(Sfx_Present), Sfx_Present
- dbw BANK(Sfx_MorningSun), Sfx_MorningSun
- dbw BANK(Sfx_LevelUp), Sfx_LevelUp
- dbw BANK(Sfx_KeyItem), Sfx_KeyItem
- dbw BANK(Sfx_Fanfare2), Sfx_Fanfare2
- dbw BANK(Sfx_RegisterPhoneNumber), Sfx_RegisterPhoneNumber
- dbw BANK(Sfx_3RdPlace), Sfx_3RdPlace
- dbw BANK(Sfx_GetEggFromDaycareMan), Sfx_GetEggFromDaycareMan
- dbw BANK(Sfx_GetEggFromDaycareLady), Sfx_GetEggFromDaycareLady
- dbw BANK(Sfx_MoveDeleted), Sfx_MoveDeleted
- dbw BANK(Sfx_2ndPlace), Sfx_2ndPlace
- dbw BANK(Sfx_1stPlace), Sfx_1stPlace
- dbw BANK(Sfx_ChooseACard), Sfx_ChooseACard
- dbw BANK(Sfx_GetTm), Sfx_GetTm
- dbw BANK(Sfx_GetBadge), Sfx_GetBadge
- dbw BANK(Sfx_QuitSlots), Sfx_QuitSlots
- dbw BANK(Sfx_EggCrack), Sfx_EggCrack
- dbw BANK(Sfx_DexFanfareLessThan20), Sfx_DexFanfareLessThan20
- dbw BANK(Sfx_DexFanfare140169), Sfx_DexFanfare140169
- dbw BANK(Sfx_DexFanfare170199), Sfx_DexFanfare170199
- dbw BANK(Sfx_DexFanfare200229), Sfx_DexFanfare200229
- dbw BANK(Sfx_DexFanfare230Plus), Sfx_DexFanfare230Plus
- dbw BANK(Sfx_Evolved), Sfx_Evolved
- dbw BANK(Sfx_MasterBall), Sfx_MasterBall
- dbw BANK(Sfx_EggHatch), Sfx_EggHatch
- dbw BANK(Sfx_GsIntroCharizardFireball), Sfx_GsIntroCharizardFireball
- dbw BANK(Sfx_GsIntroPokemonAppears), Sfx_GsIntroPokemonAppears
- dbw BANK(Sfx_Flash), Sfx_Flash
- dbw BANK(Sfx_GameFreakLogoGs), Sfx_GameFreakLogoGs
- dbw BANK(Sfx_NotVeryEffective), Sfx_NotVeryEffective
- dbw BANK(Sfx_Damage), Sfx_Damage
- dbw BANK(Sfx_SuperEffective), Sfx_SuperEffective
- dbw BANK(Sfx_BallBounce), Sfx_BallBounce
- dbw BANK(Sfx_Moonlight), Sfx_Moonlight
- dbw BANK(Sfx_Encore), Sfx_Encore
- dbw BANK(Sfx_BeatUp), Sfx_BeatUp
- dbw BANK(Sfx_BatonPass), Sfx_BatonPass
- dbw BANK(Sfx_BallWiggle), Sfx_BallWiggle
- dbw BANK(Sfx_SweetScent), Sfx_SweetScent
- dbw BANK(Sfx_SweetScent2), Sfx_SweetScent2
- dbw BANK(Sfx_HitEndOfExpBar), Sfx_HitEndOfExpBar
- dbw BANK(Sfx_GiveTrademon), Sfx_GiveTrademon
- dbw BANK(Sfx_GetTrademon), Sfx_GetTrademon
- dbw BANK(Sfx_TrainArrived), Sfx_TrainArrived
- dbw BANK(Sfx_StopSlot), Sfx_StopSlot
- dbw BANK(Sfx_2Boops), Sfx_2Boops
- dbw BANK(Sfx_GlassTing), Sfx_GlassTing
- dbw BANK(Sfx_GlassTing2), Sfx_GlassTing2
+ dba Sfx_DexFanfare5079
+ dba Sfx_Item
+ dba Sfx_CaughtMon
+ dba Sfx_PokeballsPlacedOnTable
+ dba Sfx_Potion
+ dba Sfx_FullHeal
+ dba Sfx_Menu
+ dba Sfx_ReadText
+ dba Sfx_ReadText2
+ dba Sfx_DexFanfare2049
+ dba Sfx_DexFanfare80109
+ dba Sfx_Poison
+ dba Sfx_GotSafariBalls
+ dba Sfx_BootPc
+ dba Sfx_ShutDownPc
+ dba Sfx_ChoosePcOption
+ dba Sfx_EscapeRope
+ dba Sfx_PushButton
+ dba Sfx_SecondPartOfItemfinder
+ dba Sfx_WarpTo
+ dba Sfx_WarpFrom
+ dba Sfx_ChangeDexMode
+ dba Sfx_JumpOverLedge
+ dba Sfx_GrassRustle
+ dba Sfx_Fly
+ dba Sfx_Wrong
+ dba Sfx_Squeak
+ dba Sfx_Strength
+ dba Sfx_Boat
+ dba Sfx_WallOpen
+ dba Sfx_PlacePuzzlePieceDown
+ dba Sfx_EnterDoor
+ dba Sfx_SwitchPokemon
+ dba Sfx_Tally
+ dba Sfx_Transaction
+ dba Sfx_ExitBuilding
+ dba Sfx_Bump
+ dba Sfx_Save
+ dba Sfx_Pokeflute
+ dba Sfx_ElevatorEnd
+ dba Sfx_ThrowBall
+ dba Sfx_BallPoof
+ dba Sfx_Unknown3A
+ dba Sfx_Run
+ dba Sfx_SlotMachineStart
+ dba Sfx_Fanfare
+ dba Sfx_Peck
+ dba Sfx_Kinesis
+ dba Sfx_Lick
+ dba Sfx_Pound
+ dba Sfx_MovePuzzlePiece
+ dba Sfx_CometPunch
+ dba Sfx_MegaPunch
+ dba Sfx_Scratch
+ dba Sfx_Vicegrip
+ dba Sfx_RazorWind
+ dba Sfx_Cut
+ dba Sfx_WingAttack
+ dba Sfx_Whirlwind
+ dba Sfx_Bind
+ dba Sfx_VineWhip
+ dba Sfx_DoubleKick
+ dba Sfx_MegaKick
+ dba Sfx_Headbutt
+ dba Sfx_HornAttack
+ dba Sfx_Tackle
+ dba Sfx_PoisonSting
+ dba Sfx_Powder
+ dba Sfx_Doubleslap
+ dba Sfx_Bite
+ dba Sfx_JumpKick
+ dba Sfx_Stomp
+ dba Sfx_TailWhip
+ dba Sfx_KarateChop
+ dba Sfx_Submission
+ dba Sfx_WaterGun
+ dba Sfx_SwordsDance
+ dba Sfx_Thunder
+ dba Sfx_Supersonic
+ dba Sfx_Leer
+ dba Sfx_Ember
+ dba Sfx_Bubblebeam
+ dba Sfx_HydroPump
+ dba Sfx_Surf
+ dba Sfx_Psybeam
+ dba Sfx_Charge
+ dba Sfx_Thundershock
+ dba Sfx_Psychic
+ dba Sfx_Screech
+ dba Sfx_BoneClub
+ dba Sfx_Sharpen
+ dba Sfx_EggBomb
+ dba Sfx_Sing
+ dba Sfx_HyperBeam
+ dba Sfx_Shine
+ dba Sfx_Unknown5F
+ dba Sfx_Unknown60
+ dba Sfx_Unknown61
+ dba Sfx_Unknown62
+ dba Sfx_Unknown63
+ dba Sfx_Burn
+ dba Sfx_TitleScreenEntrance
+ dba Sfx_Unknown66
+ dba Sfx_GetCoinFromSlots
+ dba Sfx_PayDay
+ dba Sfx_Metronome
+ dba Sfx_Call
+ dba Sfx_HangUp
+ dba Sfx_NoSignal
+ dba Sfx_Sandstorm
+ dba Sfx_Elevator
+ dba Sfx_Protect
+ dba Sfx_Sketch
+ dba Sfx_RainDance
+ dba Sfx_Aeroblast
+ dba Sfx_Spark
+ dba Sfx_Curse
+ dba Sfx_Rage
+ dba Sfx_Thief
+ dba Sfx_Thief2
+ dba Sfx_SpiderWeb
+ dba Sfx_MindReader
+ dba Sfx_Nightmare
+ dba Sfx_Snore
+ dba Sfx_SweetKiss
+ dba Sfx_SweetKiss2
+ dba Sfx_BellyDrum
+ dba Sfx_Unknown7F
+ dba Sfx_SludgeBomb
+ dba Sfx_Foresight
+ dba Sfx_Spite
+ dba Sfx_Outrage
+ dba Sfx_PerishSong
+ dba Sfx_GigaDrain
+ dba Sfx_Attract
+ dba Sfx_Kinesis2
+ dba Sfx_ZapCannon
+ dba Sfx_MeanLook
+ dba Sfx_HealBell
+ dba Sfx_Return
+ dba Sfx_ExpBar
+ dba Sfx_MilkDrink
+ dba Sfx_Present
+ dba Sfx_MorningSun
+ dba Sfx_LevelUp
+ dba Sfx_KeyItem
+ dba Sfx_Fanfare2
+ dba Sfx_RegisterPhoneNumber
+ dba Sfx_3RdPlace
+ dba Sfx_GetEggFromDaycareMan
+ dba Sfx_GetEggFromDaycareLady
+ dba Sfx_MoveDeleted
+ dba Sfx_2ndPlace
+ dba Sfx_1stPlace
+ dba Sfx_ChooseACard
+ dba Sfx_GetTm
+ dba Sfx_GetBadge
+ dba Sfx_QuitSlots
+ dba Sfx_EggCrack
+ dba Sfx_DexFanfareLessThan20
+ dba Sfx_DexFanfare140169
+ dba Sfx_DexFanfare170199
+ dba Sfx_DexFanfare200229
+ dba Sfx_DexFanfare230Plus
+ dba Sfx_Evolved
+ dba Sfx_MasterBall
+ dba Sfx_EggHatch
+ dba Sfx_GsIntroCharizardFireball
+ dba Sfx_GsIntroPokemonAppears
+ dba Sfx_Flash
+ dba Sfx_GameFreakLogoGs
+ dba Sfx_NotVeryEffective
+ dba Sfx_Damage
+ dba Sfx_SuperEffective
+ dba Sfx_BallBounce
+ dba Sfx_Moonlight
+ dba Sfx_Encore
+ dba Sfx_BeatUp
+ dba Sfx_BatonPass
+ dba Sfx_BallWiggle
+ dba Sfx_SweetScent
+ dba Sfx_SweetScent2
+ dba Sfx_HitEndOfExpBar
+ dba Sfx_GiveTrademon
+ dba Sfx_GetTrademon
+ dba Sfx_TrainArrived
+ dba Sfx_StopSlot
+ dba Sfx_2Boops
+ dba Sfx_GlassTing
+ dba Sfx_GlassTing2
; Crystal adds the following SFX:
- dbw BANK(Sfx_IntroUnown1), Sfx_IntroUnown1
- dbw BANK(Sfx_IntroUnown2), Sfx_IntroUnown2
- dbw BANK(Sfx_IntroUnown3), Sfx_IntroUnown3
- dbw BANK(Sfx_DittoPopUp), Sfx_DittoPopUp
- dbw BANK(Sfx_DittoTransform), Sfx_DittoTransform
- dbw BANK(Sfx_IntroSuicune1), Sfx_IntroSuicune1
- dbw BANK(Sfx_IntroPichu), Sfx_IntroPichu
- dbw BANK(Sfx_IntroSuicune2), Sfx_IntroSuicune2
- dbw BANK(Sfx_IntroSuicune3), Sfx_IntroSuicune3
- dbw BANK(Sfx_DittoBounce), Sfx_DittoBounce
- dbw BANK(Sfx_IntroSuicune4), Sfx_IntroSuicune4
- dbw BANK(Sfx_GameFreakPresents), Sfx_GameFreakPresents
- dbw BANK(Sfx_Tingle), Sfx_Tingle
- dbw BANK(Sfx_UnknownCB), Sfx_UnknownCB
- dbw BANK(Sfx_TwoPcBeeps), Sfx_TwoPcBeeps
- dbw BANK(Sfx_4NoteDitty), Sfx_4NoteDitty
- dbw BANK(Sfx_Twinkle), Sfx_Twinkle
+ dba Sfx_IntroUnown1
+ dba Sfx_IntroUnown2
+ dba Sfx_IntroUnown3
+ dba Sfx_DittoPopUp
+ dba Sfx_DittoTransform
+ dba Sfx_IntroSuicune1
+ dba Sfx_IntroPichu
+ dba Sfx_IntroSuicune2
+ dba Sfx_IntroSuicune3
+ dba Sfx_DittoBounce
+ dba Sfx_IntroSuicune4
+ dba Sfx_GameFreakPresents
+ dba Sfx_Tingle
+ dba Sfx_UnknownCB
+ dba Sfx_TwoPcBeeps
+ dba Sfx_4NoteDitty
+ dba Sfx_Twinkle
; e94e9
diff --git a/battle/ai/items.asm b/battle/ai/items.asm
index 547d213df..7c11e70b2 100644
--- a/battle/ai/items.asm
+++ b/battle/ai/items.asm
@@ -16,7 +16,7 @@ AI_SwitchOrTryItem: ; 38000
bit SUBSTATUS_CANT_RUN, a
jr nz, DontSwitch
- ld a, [wc731]
+ ld a, [wEnemyWrapCount]
and a
jr nz, DontSwitch
@@ -44,15 +44,15 @@ DontSwitch: ; 38041
; 38045
SwitchOften: ; 38045
- callab Function34941
- ld a, [wc717]
+ callab CheckAbleToSwitch
+ ld a, [wEnemySwitchMonParam]
and $f0
jp z, DontSwitch
cp $10
jr nz, .not_10
call Random
- cp $80
+ cp 1 + 50 percent
jr c, .switch
jp DontSwitch
.not_10
@@ -60,35 +60,35 @@ SwitchOften: ; 38045
cp $20
jr nz, .not_20
call Random
- cp 200
+ cp -1 + 79 percent
jr c, .switch
jp DontSwitch
.not_20
; $30
call Random
- cp 10
+ cp 4 percent
jp c, DontSwitch
.switch
- ld a, [wc717]
+ ld a, [wEnemySwitchMonParam]
and $f
inc a
; In register 'a' is the number (1-6) of the Pkmn to switch to
- ld [wc718], a
+ ld [wEnemySwitchMonIndex], a
jp AI_TrySwitch
; 38083
SwitchRarely: ; 38083
- callab Function34941
- ld a, [wc717]
+ callab CheckAbleToSwitch
+ ld a, [wEnemySwitchMonParam]
and $f0
jp z, DontSwitch
cp $10
jr nz, .not_10
call Random
- cp 20
+ cp 8 percent
jr c, .switch
jp DontSwitch
.not_10
@@ -96,34 +96,34 @@ SwitchRarely: ; 38083
cp $20
jr nz, .not_20
call Random
- cp 30
+ cp 12 percent
jr c, .switch
jp DontSwitch
.not_20
; $30
call Random
- cp 200
+ cp -1 + 79 percent
jp c, DontSwitch
.switch
- ld a, [wc717]
+ ld a, [wEnemySwitchMonParam]
and $f
inc a
- ld [wc718], a
+ ld [wEnemySwitchMonIndex], a
jp AI_TrySwitch
; 380c1
SwitchSometimes: ; 380c1
- callab Function34941
- ld a, [wc717]
+ callab CheckAbleToSwitch
+ ld a, [wEnemySwitchMonParam]
and $f0
jp z, DontSwitch
cp $10
jr nz, .not_10
call Random
- cp 50
+ cp -1 + 20 percent
jr c, .switch
jp DontSwitch
.not_10
@@ -131,21 +131,21 @@ SwitchSometimes: ; 380c1
cp $20
jr nz, .not_20
call Random
- cp $80
+ cp 1 + 50 percent
jr c, .switch
jp DontSwitch
.not_20
; $30
call Random
- cp 50
+ cp -1 + 20 percent
jp c, DontSwitch
.switch
- ld a, [wc717]
+ ld a, [wEnemySwitchMonParam]
and $f
inc a
- ld [wc718], a
+ ld [wEnemySwitchMonIndex], a
jp AI_TrySwitch
; 380ff
@@ -163,9 +163,9 @@ AI_TryItem: ; 38105
and a
ret nz
- ld a, [wc650]
+ ld a, [wEnemyTrainerItem1]
ld b, a
- ld a, [wc651]
+ ld a, [wEnemyTrainerItem2]
or b
ret z
@@ -180,7 +180,7 @@ AI_TryItem: ; 38105
ld b, h
ld c, l
ld hl, AI_Items
- ld de, wc650
+ ld de, wEnemyTrainerItem1
.loop
ld a, [hl]
and a
@@ -225,7 +225,7 @@ endr
xor a
ld [de], a
inc a
- ld [wc70f], a
+ ld [wEnemyGoesFirst], a
ld hl, EnemySubStatus3
res SUBSTATUS_BIDE, [hl]
@@ -233,7 +233,7 @@ endr
xor a
ld [EnemyFuryCutterCount], a
ld [EnemyProtectCount], a
- ld [wc72c], a
+ ld [wEnemyRageCounter], a
ld hl, EnemySubStatus4
res SUBSTATUS_RAGE, [hl]
@@ -250,7 +250,7 @@ endr
ld d, a
ld e, 0
ld hl, OTPartyMon1Level
- ld bc, OTPartyMon2 - OTPartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
.next
ld a, [hl]
cp e
@@ -314,7 +314,7 @@ AI_Items: ; 39196
bit ALWAYS_USE_F, a
jp nz, .Use
call Random
- cp 50
+ cp -1 + 20 percent
jp c, .Use
jp .DontUse
@@ -326,7 +326,7 @@ AI_Items: ; 39196
cp 4
jr c, .FailToxicCheck
call Random
- cp $80
+ cp 1 + 50 percent
jp c, .Use
.FailToxicCheck
ld a, [EnemyMonStatus]
@@ -367,7 +367,7 @@ AI_Items: ; 39196
callab AICheckEnemyQuarterHP
jp nc, .UseHealItem
call Random
- cp $80
+ cp 1 + 50 percent
jp c, .UseHealItem
jp .DontUse
@@ -375,7 +375,7 @@ AI_Items: ; 39196
callab AICheckEnemyQuarterHP
jp c, .DontUse
call Random
- cp $32
+ cp -1 + 20 percent
jp c, .DontUse
jr .UseHealItem
@@ -385,7 +385,7 @@ AI_Items: ; 39196
callab AICheckEnemyQuarterHP
jp nc, .UseHealItem
call Random
- cp $32
+ cp -1 + 20 percent
jp nc, .DontUse
.UseHealItem: ; 38281 (e:4281)
@@ -418,44 +418,44 @@ AI_Items: ; 39196
.asm_382ae: ; This appears to be unused
callab AICheckEnemyMaxHP
- jr c, .asm_382e4
+ jr c, .dont_use
push bc
ld de, EnemyMonMaxHP + 1
ld hl, EnemyMonHP + 1
ld a, [de]
sub [hl]
- jr z, .asm_382e7
+ jr z, .check_40_percent
dec hl
dec de
ld c, a
sbc [hl]
and a
- jr nz, .asm_382e7
+ jr nz, .check_40_percent
ld a, c
cp b
- jp c, .asm_382d5
+ jp c, .check_50_percent
callab AICheckEnemyQuarterHP
- jr c, .asm_382e7
+ jr c, .check_40_percent
-.asm_382d5
+.check_50_percent
pop bc
ld a, [bc]
bit UNKNOWN_USE_F, a
jp z, .Use
call Random
- cp $80
+ cp 1 + 50 percent
jp c, .Use
-.asm_382e4
+.dont_use
jp .DontUse
-.asm_382e7
+.check_40_percent
pop bc
ld a, [bc]
bit UNKNOWN_USE_F, a
jp z, .DontUse
call Random
- cp $64
+ cp 1 + 39 percent
jp c, .Use
jp .DontUse
; 382f9
@@ -517,13 +517,13 @@ AI_Items: ; 39196
bit ALWAYS_USE_F, a
jp nz, .Use
call Random
- cp $80
+ cp 1 + 50 percent
jp c, .DontUse
ld a, [bc]
bit CONTEXT_USE_F, a
jp nz, .Use
call Random
- cp $80
+ cp 1 + 50 percent
jp c, .DontUse
jp .Use
.notfirstturnout
@@ -531,7 +531,7 @@ AI_Items: ; 39196
bit ALWAYS_USE_F, a
jp z, .DontUse
call Random
- cp $32
+ cp -1 + 20 percent
jp nc, .DontUse
jp .Use
@@ -665,7 +665,7 @@ EnemyPotionFinish: ; 38436
xor a
ld [wd10a], a
call AIUsedItemSound
- predef Functionc6e0
+ predef AnimateHPBar
jp AIUpdateHUD
@@ -685,7 +685,7 @@ AI_TrySwitch: ; 3844b
inc d
.fainted
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
pop bc
dec c
@@ -701,16 +701,17 @@ AI_TrySwitch: ; 3844b
AI_Switch: ; 3846c
ld a, $1
ld [wEnemyIsSwitching], a
- ld [wc70f], a
+ ld [wEnemyGoesFirst], a
ld hl, EnemySubStatus4
res SUBSTATUS_RAGE, [hl]
xor a
ld [hBattleTurn], a
- callab Function3dc5b
+ callab PursuitSwitch
+
push af
ld a, [CurOTMon]
ld hl, OTPartyMon1Status
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -718,18 +719,20 @@ AI_Switch: ; 3846c
ld bc, $0004
call CopyBytes
pop af
+
jr c, .skiptext
ld hl, TextJump_EnemyWithdrew
call PrintText
+
.skiptext
- ld a, $1
+ ld a, 1
ld [wd264], a
callab NewEnemyMonStatus
callab ResetEnemyStatLevels
ld hl, PlayerSubStatus1
res SUBSTATUS_IN_LOVE, [hl]
- callba Function3d4e1
- callba Function3d57a
+ callba EnemySwitch
+ callba ResetBattleParticipants
xor a
ld [wd264], a
ld a, [wLinkMode]
@@ -754,7 +757,7 @@ Function384d5: ; This appears to be unused
AI_HealStatus: ; 384e0
ld a, [CurOTMon]
ld hl, OTPartyMon1Status
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
xor a
ld [hl], a
diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm
index 258ee2e16..5445671ac 100644
--- a/battle/ai/scoring.asm
+++ b/battle/ai/scoring.asm
@@ -176,7 +176,7 @@ AI_Types: ; 38635
push de
ld a, 1
ld [hBattleTurn], a
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
pop de
pop bc
pop hl
@@ -431,7 +431,7 @@ AI_Smart_LeechHit: ; 387f7
push hl
ld a, 1
ld [hBattleTurn], a
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
pop hl
; 60% chance to discourage this move if not very effective.
@@ -512,7 +512,7 @@ AI_Smart_LockOn: ; 3881d
push hl
push bc
- callba HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callba BattleCheckTypeMatchup
ld a, [wd265]
cp $a
pop bc
@@ -576,7 +576,7 @@ AI_Smart_Explosion: ; 388a6
; Unless this is the enemy's last Pokemon...
push hl
- callba CountEnemyAliveMons
+ callba FindAliveEnemyMons
pop hl
jr nc, .asm_388b7
@@ -981,7 +981,7 @@ AI_Smart_Whirlwind: ; 38a2a
; Consider player's type(s) if its moves are unknown.
push hl
- callab Function3484e
+ callab CheckPlayerMoveTypeMatchups
ld a, [wc716]
cp 10 ; neutral
pop hl
@@ -1062,7 +1062,7 @@ AI_Smart_Bind: ; 38a71
; Bind, Wrap, Fire Spin, Clamp
; 50% chance to discourage this move if the player is already trapped.
- ld a, [wc730]
+ ld a, [wPlayerWrapCount]
and a
jr nz, .asm_38a8b
@@ -1343,11 +1343,11 @@ AI_Smart_Rage: ; 38b7f
; Encourage this move based on Rage's counter.
.asm_38b8c
- ld a, [wc72c]
+ ld a, [wEnemyRageCounter]
cp $2
ret c
dec [hl]
- ld a, [wc72c]
+ ld a, [wEnemyRageCounter]
cp $3
ret c
dec [hl]
@@ -1384,7 +1384,7 @@ AI_Smart_Mimic: ; 38ba8
ld a, $1
ld [hBattleTurn], a
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
ld a, [wd265]
cp $a
@@ -1504,7 +1504,7 @@ AI_Smart_Encore: ; 38c3b
push hl
ld a, [wEnemyMoveStruct + MOVE_TYPE]
ld hl, EnemyMonType1
- predef Function347d3
+ predef CheckTypeMatchup
pop hl
ld a, [wd265]
@@ -1719,7 +1719,7 @@ AI_Smart_HealBell: ; 38d1f
ld b, a
ld c, 0
ld hl, OTPartyMon1HP
- ld de, OTPartyMon2 - OTPartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
.loop
push hl
@@ -1783,8 +1783,8 @@ AI_Smart_PriorityHit: ; 38d5a
ld [hBattleTurn], a
push hl
callab EnemyAttackDamage
- callab BattleCommand_DamageCalcWithStats
- callab BattleCommand_CalcDamageTypeMultiplier
+ callab BattleCommand_DamageCalc
+ callab BattleCommand_Stab
pop hl
ld a, [CurDamage + 1]
ld c, a
@@ -1830,7 +1830,7 @@ AI_Smart_Conversion2: ; 38d98
xor a
ld [hBattleTurn], a
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
ld a, [wd265]
cp $a
@@ -1908,7 +1908,7 @@ AI_Smart_MeanLook: ; 38dfb
; Otherwise, discourage this move unless the player only has not very effective moves against the enemy.
push hl
- callab Function3484e
+ callab CheckPlayerMoveTypeMatchups
ld a, [wc716]
cp $b ; not very effective
pop hl
@@ -1933,7 +1933,7 @@ AICheckLastPlayerMon: ; 38e2e
ld b, a
ld c, 0
ld hl, PartyMon1HP
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
.loop
ld a, [CurBattleMon]
@@ -2028,7 +2028,7 @@ endr
jp nz, AIDiscourageMove
push hl
- callba CountEnemyAliveMons
+ callba FindAliveEnemyMons
pop hl
jr nc, .asm_38eb0
@@ -2160,7 +2160,7 @@ endr
AI_Smart_PerishSong: ; 38f4a
push hl
- callab CountEnemyAliveMons
+ callab FindAliveEnemyMons
pop hl
jr c, .no
@@ -2169,7 +2169,7 @@ AI_Smart_PerishSong: ; 38f4a
jr nz, .yes
push hl
- callab Function3484e
+ callab CheckPlayerMoveTypeMatchups
ld a, [wc716]
cp 10 ; 1.0
pop hl
@@ -2431,7 +2431,7 @@ AI_Smart_BatonPass: ; 39062
; Consider player's type(s) if its moves are unknown.
push hl
- callab Function3484e
+ callab CheckPlayerMoveTypeMatchups
ld a, [wc716]
cp 10 ; neutral
pop hl
@@ -2466,7 +2466,7 @@ AI_Smart_RapidSpin: ; 39084
; 80% chance to greatly encourage this move if the enemy is
; trapped (Bind effect), seeded, or scattered with spikes.
- ld a, [wc731]
+ ld a, [wEnemyWrapCount]
and a
jr nz, .asm_39097
@@ -2496,7 +2496,7 @@ AI_Smart_HiddenPower: ; 3909e
; Calculate Hidden Power's type and base power based on enemy's DVs.
callab HiddenPowerDamage
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
pop hl
; Discourage Hidden Power if not very effective.
@@ -2859,7 +2859,7 @@ endr
AI_Smart_Stomp: ; 39200
; 80% chance to encourage this move if the player has used Minimize.
- ld a, [wc6fe]
+ ld a, [wPlayerMinimized]
and a
ret z
@@ -3375,13 +3375,13 @@ AIDamageCalc: ; 393e7
ld hl, .ConstantDamageEffects
call IsInArray
jr nc, .asm_39400
- callab BattleCommand3f
+ callab BattleCommand_ConstantDamage
ret
.asm_39400
callab EnemyAttackDamage
- callab BattleCommand_DamageCalcWithStats
- callab BattleCommand_CalcDamageTypeMultiplier
+ callab BattleCommand_DamageCalc
+ callab BattleCommand_Stab
ret
.ConstantDamageEffects
@@ -3498,7 +3498,7 @@ AI_Status: ; 39453
push de
ld a, 1
ld [hBattleTurn], a
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
pop de
pop bc
pop hl
diff --git a/battle/ai/switch.asm b/battle/ai/switch.asm
new file mode 100755
index 000000000..62a6bcd83
--- /dev/null
+++ b/battle/ai/switch.asm
@@ -0,0 +1,666 @@
+CheckPlayerMoveTypeMatchups: ; 3484e
+; Check how well the moves you've already used
+; fare against the enemy's Pokemon. Used to
+; score a potential switch.
+ push hl
+ push de
+ push bc
+ ld a, 10
+ ld [wc716], a
+ ld hl, PlayerUsedMoves
+ ld a, [hl]
+ and a
+ jr z, .unknown_moves
+
+ ld d, NUM_MOVES
+ ld e, 0
+.loop
+ ld a, [hli]
+ and a
+ jr z, .exit
+ push hl
+ dec a
+ ld hl, Moves + MOVE_POWER
+ call GetMoveAttr
+ and a
+ jr z, .next
+
+ inc hl
+ call GetMoveByte
+ ld hl, EnemyMonType
+ call CheckTypeMatchup
+ ld a, [wTypeMatchup]
+ cp 10 + 1 ; 1.0 + 0.1
+ jr nc, .super_effective
+ and a
+ jr z, .next
+ cp 10 ; 1.0
+ jr nc, .neutral
+
+.not_very_effective
+ ld a, e
+ cp 1 ; 0.1
+ jr nc, .next
+ ld e, 1
+ jr .next
+
+.neutral
+ ld e, 2
+ jr .next
+
+.super_effective
+ call .DecreaseScore
+ pop hl
+ jr .done
+
+.next
+ pop hl
+ dec d
+ jr nz, .loop
+
+.exit
+ ld a, e
+ cp 2
+ jr z, .done
+ call .IncreaseScore
+ ld a, e
+ and a
+ jr nz, .done
+ call .IncreaseScore
+ jr .done
+
+.unknown_moves
+ ld a, [BattleMonType1]
+ ld b, a
+ ld hl, EnemyMonType1
+ call CheckTypeMatchup
+ ld a, [wTypeMatchup]
+ cp 10 + 1 ; 1.0 + 0.1
+ jr c, .ok
+ call .DecreaseScore
+.ok
+ ld a, [BattleMonType2]
+ cp b
+ jr z, .ok2
+ call CheckTypeMatchup
+ ld a, [wTypeMatchup]
+ cp 10 + 1 ; 1.0 + 0.1
+ jr c, .ok2
+ call .DecreaseScore
+.ok2
+
+.done
+ call .CheckEnemyMoveMatchups
+ pop bc
+ pop de
+ pop hl
+ ret
+; 348de
+
+
+.CheckEnemyMoveMatchups: ; 348de
+ ld de, EnemyMonMoves
+ ld b, NUM_MOVES + 1
+ ld c, 0
+
+ ld a, [wTypeMatchup]
+ push af
+.loop2
+ dec b
+ jr z, .exit2
+
+ ld a, [de]
+ and a
+ jr z, .exit2
+
+ inc de
+ dec a
+ ld hl, Moves + MOVE_POWER
+ call GetMoveAttr
+ and a
+ jr z, .loop2
+
+ inc hl
+ call GetMoveByte
+ ld hl, BattleMonType1
+ call CheckTypeMatchup
+
+ ld a, [wTypeMatchup]
+ ; immune
+ and a
+ jr z, .loop2
+
+ ; not very effective
+ inc c
+ cp 10
+ jr c, .loop2
+
+ ; neutral
+rept 5
+ inc c
+endr
+ cp 10
+ jr z, .loop2
+
+ ; super effective
+ ld c, 100
+ jr .loop2
+
+.exit2
+ pop af
+ ld [wTypeMatchup], a
+
+ ld a, c
+ and a
+ jr z, .doubledown ; double down
+ cp 5
+ jr c, .DecreaseScore ; down
+ cp 100
+ ret c
+ jr .IncreaseScore ; up
+
+.doubledown
+ call .DecreaseScore
+
+ ; fallthrough
+; 34931
+
+
+.DecreaseScore: ; 34931
+ ld a, [wc716]
+ dec a
+ ld [wc716], a
+ ret
+; 34939
+
+
+.IncreaseScore: ; 34939
+ ld a, [wc716]
+ inc a
+ ld [wc716], a
+ ret
+; 34941
+
+CheckAbleToSwitch: ; 34941
+ xor a
+ ld [wEnemySwitchMonParam], a
+ call FindAliveEnemyMons
+ ret c
+
+ ld a, [EnemySubStatus1]
+ bit SUBSTATUS_PERISH, a
+ jr z, .no_perish
+
+ ld a, [EnemyPerishCount]
+ cp 1
+ jr nz, .no_perish
+
+ ; Perish count is 1
+
+ call FindAliveEnemyMons
+ call FindEnemyMonsWithEnoughHP
+ call FindEnemyMonsThatResistPlayer
+ call Function34a85
+
+ ld a, e
+ cp 2
+ jr nz, .not_2
+
+ ld a, [wc716]
+ add $30
+ ld [wEnemySwitchMonParam], a
+ ret
+
+.not_2
+ call FindAliveEnemyMons
+ sla c
+ sla c
+ ld b, $ff
+
+.loop1
+ inc b
+ sla c
+ jr nc, .loop1
+
+ ld a, b
+ add $30
+ ld [wEnemySwitchMonParam], a
+ ret
+
+.no_perish
+
+ call CheckPlayerMoveTypeMatchups
+ ld a, [wc716]
+ cp 11
+ ret nc
+
+ ld a, [LastEnemyCounterMove]
+ and a
+ jr z, .no_last_counter_move
+
+ call Function34a2a
+ ld a, [wc716]
+ and a
+ jr z, .no_last_counter_move
+
+ ld c, a
+ call Function34aa7
+ ld a, [wc716]
+ cp $ff
+ ret z
+
+ ld b, a
+ ld a, e
+ cp 2
+ jr z, .not_2_again
+
+ call CheckPlayerMoveTypeMatchups
+ ld a, [wc716]
+ cp 10
+ ret nc
+
+ ld a, b
+ add $10
+ ld [wEnemySwitchMonParam], a
+ ret
+
+.not_2_again
+ ld c, $10
+ call CheckPlayerMoveTypeMatchups
+ ld a, [wc716]
+ cp 10
+ jr nc, .okay
+ ld c, $20
+
+.okay
+ ld a, b
+ add c
+ ld [wEnemySwitchMonParam], a
+ ret
+
+.no_last_counter_move
+ call CheckPlayerMoveTypeMatchups
+ ld a, [wc716]
+ cp 10
+ ret nc
+
+ call FindAliveEnemyMons
+ call FindEnemyMonsWithEnoughHP
+ call FindEnemyMonsThatResistPlayer
+ call Function34a85
+
+ ld a, e
+ cp $2
+ ret nz
+
+ ld a, [wc716]
+ add $10
+ ld [wEnemySwitchMonParam], a
+ ret
+; 349f4
+
+
+FindAliveEnemyMons: ; 349f4
+ ld a, [OTPartyCount]
+ cp 2
+ jr c, .only_one
+
+ ld d, a
+ ld e, 0
+ ld b, 1 << (PARTY_LENGTH - 1)
+ ld c, 0
+ ld hl, OTPartyMon1HP
+
+.loop
+ ld a, [CurOTMon]
+ cp e
+ jr z, .next
+
+ push bc
+ ld b, [hl]
+ inc hl
+ ld a, [hld]
+ or b
+ pop bc
+ jr z, .next
+
+ ld a, c
+ or b
+ ld c, a
+
+.next
+ srl b
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ inc e
+ dec d
+ jr nz, .loop
+
+ ld a, c
+ and a
+ jr nz, .more_than_one
+
+.only_one
+ scf
+ ret
+
+.more_than_one
+ and a
+ ret
+; 34a2a
+
+
+Function34a2a: ; 34a2a
+ ld hl, OTPartyMon1
+ ld a, [OTPartyCount]
+ ld b, a
+ ld c, 1 << (PARTY_LENGTH - 1)
+ ld d, 0
+ xor a
+ ld [wc716], a
+
+.asm_34a39
+ ld a, [CurOTMon]
+ cp d
+ push hl
+ jr z, .asm_34a77
+
+ push hl
+ push bc
+ ld bc, MON_HP
+ add hl, bc
+ pop bc
+ ld a, [hli]
+ or [hl]
+ pop hl
+ jr z, .asm_34a77
+
+ ld a, [hl]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [LastEnemyCounterMove]
+ dec a
+ ld hl, Moves + MOVE_POWER
+ call GetMoveAttr
+ and a
+ jr z, .asm_34a77
+
+ inc hl
+ call GetMoveByte
+ ld hl, BaseType
+ call CheckTypeMatchup
+ ld a, [wTypeMatchup]
+ and a
+ jr nz, .asm_34a77
+
+ ld a, [wc716]
+ or c
+ ld [wc716], a
+.asm_34a77
+ pop hl
+ dec b
+ ret z
+
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+
+ inc d
+ srl c
+ jr .asm_34a39
+; 34a85
+
+
+Function34a85: ; 34a85
+ push bc
+ ld a, [OTPartyCount]
+ ld e, a
+ ld hl, OTPartyMon1HP
+ ld b, 1 << (PARTY_LENGTH - 1)
+ ld c, 0
+.loop
+ ld a, [hli]
+ or [hl]
+ jr z, .next
+
+ ld a, b
+ or c
+ ld c, a
+
+.next
+ srl b
+ push bc
+ ld bc, PartyMon2HP - (PartyMon1HP + 1)
+ add hl, bc
+ pop bc
+ dec e
+ jr nz, .loop
+
+ ld a, c
+ pop bc
+
+ and c
+ ld c, a
+
+ ; fallthrough
+; 34aa7
+
+Function34aa7: ; 34aa7
+
+ ld a, $ff
+ ld [wc716], a
+ ld hl, OTPartyMon1Moves
+ ld b, 1 << (PARTY_LENGTH - 1)
+ ld d, 0
+ ld e, 0
+.loop
+ ld a, b
+ and c
+ jr z, .next
+
+ push hl
+ push bc
+ ld b, NUM_MOVES
+ ld c, 0
+.loop3
+ ld a, [hli]
+ and a
+ push hl
+ jr z, .break3
+
+ dec a
+ ld hl, Moves + MOVE_POWER
+ call GetMoveAttr
+ and a
+ jr z, .nope
+
+ inc hl
+ call GetMoveByte
+ ld hl, BattleMonType1
+ call CheckTypeMatchup
+ ld a, [wTypeMatchup]
+ cp 10
+ jr c, .nope
+
+ ld e, 1
+ cp 10 + 1
+ jr c, .nope
+
+ ld e, 2
+ jr .break3
+
+.nope
+ pop hl
+ dec b
+ jr nz, .loop3
+
+ jr .done
+
+.break3
+ pop hl
+.done
+ ld a, e
+ pop bc
+ pop hl
+ cp $2
+ jr z, .done2
+
+ cp $1
+ jr nz, .next
+
+ ld a, d
+ or b
+ ld d, a
+ jr .next
+
+.next
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ srl b
+ jr nc, .loop
+
+ ld a, d
+ ld b, a
+ and a
+ ret z
+
+.done2
+ push bc
+ sla b
+ sla b
+ ld c, $ff
+.loop2
+ inc c
+ sla b
+ jr nc, .loop2
+
+ ld a, c
+ ld [wc716], a
+ pop bc
+ ret
+; 34b20
+
+
+FindEnemyMonsThatResistPlayer: ; 34b20
+ push bc
+ ld hl, OTPartySpecies
+ ld b, 1 << (PARTY_LENGTH - 1)
+ ld c, 0
+
+.loop
+ ld a, [hli]
+ cp $ff
+ jr z, .done
+
+ push hl
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [LastEnemyCounterMove]
+ and a
+ jr z, .skip_move
+
+ dec a
+ ld hl, Moves + MOVE_POWER
+ call GetMoveAttr
+ and a
+ jr z, .skip_move
+
+ inc hl
+ call GetMoveByte
+ jr .check_type
+
+.skip_move
+ ld a, [BattleMonType1]
+ ld hl, BaseType
+ call CheckTypeMatchup
+ ld a, [wTypeMatchup]
+ cp 10 + 1
+ jr nc, .dont_choose_mon
+ ld a, [BattleMonType2]
+
+.check_type
+ ld hl, BaseType
+ call CheckTypeMatchup
+ ld a, [wTypeMatchup]
+ cp 10 + 1
+ jr nc, .dont_choose_mon
+
+ ld a, b
+ or c
+ ld c, a
+
+.dont_choose_mon
+ srl b
+ pop hl
+ jr .loop
+
+.done
+ ld a, c
+ pop bc
+ and c
+ ld c, a
+ ret
+; 34b77
+
+
+FindEnemyMonsWithEnoughHP: ; 34b77
+ push bc
+ ld de, OTPartySpecies
+ ld b, 1 << (PARTY_LENGTH - 1)
+ ld c, 0
+ ld hl, OTPartyMon1HP
+
+.loop
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .done
+
+ push hl
+ push bc
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+rept 2
+ inc hl
+endr
+; hl = MaxHP + 1
+; b = (4 * b) % $100 + (c & 3)
+; c = c / 4
+ srl c
+ rl b
+ srl c
+ rl b
+; a = (MaxHP / $100) - b - (1 if c > (MaxHP % $100) else 0)
+ ld a, [hld]
+ cp c
+ ld a, [hl]
+ sbc b
+ pop bc
+ jr nc, .next
+
+ ld a, b
+ or c
+ ld c, a
+
+.next
+ srl b
+ pop hl
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ jr .loop
+
+.done
+ ld a, c
+ pop bc
+ and c
+ ld c, a
+ ret
+; 34bb1
diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm
index 82d5eab62..fed2c9236 100644
--- a/battle/anim_commands.asm
+++ b/battle/anim_commands.asm
@@ -40,7 +40,7 @@ _PlayBattleAnim: ; cc0e4
push af
ld [hl], c
- call Functioncc11c
+ call BattleAnimRunScript
pop af
ld [hVBlank], a
@@ -55,17 +55,17 @@ _PlayBattleAnim: ; cc0e4
ret
; cc11c
-Functioncc11c: ; cc11c
+BattleAnimRunScript: ; cc11c
ld a, [FXAnimIDHi]
and a
- jr nz, .asm_cc156
+ jr nz, .hi_byte
callba CheckBattleScene
- jr c, .asm_cc141
+ jr c, .disabled
call BattleAnimClearHud
- call Functioncc163
+ call RunBattleAnimScript
call BattleAnimAssignPals
call BattleAnimRequestPals
@@ -76,31 +76,31 @@ Functioncc11c: ; cc11c
call BattleAnimDelayFrame
call BattleAnimRestoreHuds
-.asm_cc141
+.disabled
ld a, [wcfca]
and a
- jr z, .asm_cc15f
+ jr z, .done
ld l, a
ld h, 0
- ld de, $10e
+ ld de, ANIM_MISS
add hl, de
ld a, l
ld [FXAnimIDLo], a
ld a, h
ld [FXAnimIDHi], a
-.asm_cc156
+.hi_byte
call WaitSFX
call Functioncc881
- call Functioncc163
+ call RunBattleAnimScript
-.asm_cc15f
+.done
call Functioncc8f6
ret
; cc163
-Functioncc163: ; cc163
+RunBattleAnimScript: ; cc163
call Functioncc8d3
@@ -168,8 +168,8 @@ BattleAnimRestoreHuds: ; cc1bb
ld [rSVBK], a
ld hl, UpdateBattleHuds
- ld a, $f
- rst FarCall
+ ld a, BANK(UpdatePlayerHUD)
+ rst FarCall ; Why the heck is this a callab?
pop af
ld [rSVBK], a
@@ -257,11 +257,11 @@ Functioncc23d: ; cc23d
ld a, [BattleAnimFlags]
bit 3, a
- jr z, .asm_cc254
+ jr z, .skip
ld hl, Sprites + 3
ld c, (SpritesEnd - Sprites) / 4
-.asm_cc249
+.loop
ld a, [hl]
and $f0
ld [hli], a
@@ -269,71 +269,71 @@ rept 3
inc hl
endr
dec c
- jr nz, .asm_cc249
+ jr nz, .loop
ret
-.asm_cc254
+.skip
ld hl, Sprites
ld c, SpritesEnd - Sprites
xor a
-.asm_cc25a
+.loop2
ld [hli], a
dec c
- jr nz, .asm_cc25a
+ jr nz, .loop2
ret
; cc25f
Functioncc25f: ; cc25f
- call Functioncc267
+ call .CheckTimer
ret nc
- call Functioncc275
+ call .RunScript
ret
; cc267
-Functioncc267: ; cc267
+.CheckTimer: ; cc267
ld a, [BattleAnimDuration]
and a
- jr z, .asm_cc273
+ jr z, .done
dec a
ld [BattleAnimDuration], a
and a
ret
-.asm_cc273
+.done
scf
ret
; cc275
-Functioncc275: ; cc275
-
+.RunScript: ; cc275
+.loop
call GetBattleAnimByte
cp $ff
- jr nz, .asm_cc286
+ jr nz, .not_done_with_anim
; Return from a subroutine.
ld hl, BattleAnimFlags
bit 1, [hl]
- jr nz, .asm_cc28e
+ jr nz, .do_anim
set 0, [hl]
ret
-.asm_cc286
+.not_done_with_anim
cp $d0
- jr nc, .asm_cc28e
+ jr nc, .do_anim
ld [BattleAnimDuration], a
ret
-.asm_cc28e
- call Functioncc293
+.do_anim
+ call .DoCommand
- jr Functioncc275
+ jr .loop
; cc293
-Functioncc293: ; cc293
+.DoCommand: ; cc293
; Execute battle animation command in [BattleAnimByte].
ld a, [BattleAnimByte]
sub $d0
@@ -353,54 +353,54 @@ endr
BattleAnimCommands:: ; cc2a4 (33:42a4)
- dw BattleAnimCmd_D0
- dw BattleAnimCmd_D1
- dw BattleAnimCmd_D2
- dw BattleAnimCmd_D3
- dw BattleAnimCmd_D4
- dw BattleAnimCmd_D5
- dw BattleAnimCmd_D6
- dw BattleAnimCmd_D7
- dw BattleAnimCmd_D8
- dw BattleAnimCmd_D9
- dw BattleAnimCmd_DA
- dw BattleAnimCmd_DB
- dw BattleAnimCmd_DC
- dw BattleAnimCmd_DD
- dw BattleAnimCmd_DE
- dw BattleAnimCmd_DF
- dw BattleAnimCmd_E0
- dw BattleAnimCmd_E1
- dw BattleAnimCmd_E2
- dw BattleAnimCmd_E3
- dw BattleAnimCmd_E4
- dw BattleAnimCmd_E5
- dw BattleAnimCmd_E6
+ dw BattleAnimCmd_Obj
+ dw BattleAnimCmd_1GFX
+ dw BattleAnimCmd_2GFX
+ dw BattleAnimCmd_3GFX
+ dw BattleAnimCmd_4GFX
+ dw BattleAnimCmd_5GFX
+ dw BattleAnimCmd_IncObj
+ dw BattleAnimCmd_SetObj
+ dw BattleAnimCmd_IncBGEffect
+ dw BattleAnimCmd_EnemyFeetObj
+ dw BattleAnimCmd_PlayerHeadObj
+ dw BattleAnimCmd_CheckPokeball
+ dw BattleAnimCmd_Transform
+ dw BattleAnimCmd_RaiseSub
+ dw BattleAnimCmd_DropSub
+ dw BattleAnimCmd_ResetObp0
+ dw BattleAnimCmd_Sound
+ dw BattleAnimCmd_Cry
+ dw BattleAnimCmd_MinimizeOpp
+ dw BattleAnimCmd_OAMOn
+ dw BattleAnimCmd_OAMOff
+ dw BattleAnimCmd_ClearObjs
+ dw BattleAnimCmd_BeatUp
dw BattleAnimCmd_E7
- dw BattleAnimCmd_E8
- dw BattleAnimCmd_E9
- dw BattleAnimCmd_EA
- dw BattleAnimCmd_EB
- dw BattleAnimCmd_EC
- dw BattleAnimCmd_ED
- dw BattleAnimCmd_EE
- dw BattleAnimCmd_EF
- dw BattleAnimCmd_F0
- dw BattleAnimCmd_F1
- dw BattleAnimCmd_F2
- dw BattleAnimCmd_F3
- dw BattleAnimCmd_F4
+ dw BattleAnimCmd_UpdateActorPic
+ dw BattleAnimCmd_Minimize
+ dw BattleAnimCmd_EA ; dummy
+ dw BattleAnimCmd_EB ; dummy
+ dw BattleAnimCmd_EC ; dummy
+ dw BattleAnimCmd_ED ; dummy
+ dw BattleAnimCmd_JumpAnd
+ dw BattleAnimCmd_JumpUntil
+ dw BattleAnimCmd_BGEffect
+ dw BattleAnimCmd_BGP
+ dw BattleAnimCmd_OBP0
+ dw BattleAnimCmd_OBP1
+ dw BattleAnimCmd_ClearSprites
dw BattleAnimCmd_F5
dw BattleAnimCmd_F6
dw BattleAnimCmd_F7
- dw BattleAnimCmd_F8
- dw BattleAnimCmd_F9
- dw BattleAnimCmd_FA
- dw BattleAnimCmd_FB
- dw BattleAnimCmd_FC
- dw BattleAnimCmd_FD
- dw BattleAnimCmd_FE
- dw BattleAnimCmd_FF
+ dw BattleAnimCmd_JumpIf
+ dw BattleAnimCmd_SetVar
+ dw BattleAnimCmd_IncVar
+ dw BattleAnimCmd_JumpVar
+ dw BattleAnimCmd_Jump
+ dw BattleAnimCmd_Loop
+ dw BattleAnimCmd_Call
+ dw BattleAnimCmd_Ret
BattleAnimCmd_EA:
@@ -409,7 +409,7 @@ BattleAnimCmd_EC:
BattleAnimCmd_ED: ; cc304 (33:4304)
ret
-BattleAnimCmd_FF: ; cc305 (33:4305)
+BattleAnimCmd_Ret: ; cc305 (33:4305)
ld hl, BattleAnimFlags
res 1, [hl]
ld hl, BattleAnimParent
@@ -422,7 +422,7 @@ BattleAnimCmd_FF: ; cc305 (33:4305)
ld [hl], d
ret
-BattleAnimCmd_FE: ; cc317 (33:4317)
+BattleAnimCmd_Call: ; cc317 (33:4317)
call GetBattleAnimByte
ld e, a
call GetBattleAnimByte
@@ -445,7 +445,7 @@ BattleAnimCmd_FE: ; cc317 (33:4317)
set 1, [hl]
ret
-BattleAnimCmd_FC: ; cc339 (33:4339)
+BattleAnimCmd_Jump: ; cc339 (33:4339)
call GetBattleAnimByte
ld e, a
call GetBattleAnimByte
@@ -456,7 +456,7 @@ BattleAnimCmd_FC: ; cc339 (33:4339)
ld [hl], d
ret
-BattleAnimCmd_FD: ; cc348 (33:4348)
+BattleAnimCmd_Loop: ; cc348 (33:4348)
call GetBattleAnimByte
ld hl, BattleAnimFlags
bit 2, [hl]
@@ -497,8 +497,8 @@ endr
ld [hl], e
ret
-BattleAnimCmd_EF: ; cc383 (33:4383)
- ld hl, wc689
+BattleAnimCmd_JumpUntil: ; cc383 (33:4383)
+ ld hl, wKickCounter
ld a, [hl]
and a
jr z, .asm_cc39a
@@ -527,17 +527,17 @@ endr
ld [hl], e
ret
-BattleAnimCmd_F9: ; cc3a6 (33:43a6)
+BattleAnimCmd_SetVar: ; cc3a6 (33:43a6)
call GetBattleAnimByte
ld [BattleAnimVar], a
ret
-BattleAnimCmd_FA: ; cc3ad (33:43ad)
+BattleAnimCmd_IncVar: ; cc3ad (33:43ad)
ld hl, BattleAnimVar
inc [hl]
ret
-BattleAnimCmd_FB: ; cc3b2 (33:43b2)
+BattleAnimCmd_JumpVar: ; cc3b2 (33:43b2)
call GetBattleAnimByte
ld hl, BattleAnimVar
cp [hl]
@@ -566,9 +566,9 @@ endr
ld [hl], d
ret
-BattleAnimCmd_F8: ; cc3d6 (33:43d6)
+BattleAnimCmd_JumpIf: ; cc3d6 (33:43d6)
call GetBattleAnimByte
- ld hl, wc689
+ ld hl, wKickCounter
cp [hl]
jr z, .jump
@@ -595,10 +595,10 @@ endr
ld [hl], d
ret
-BattleAnimCmd_EE: ; cc3fa (33:43fa)
+BattleAnimCmd_JumpAnd: ; cc3fa (33:43fa)
call GetBattleAnimByte
ld e, a
- ld a, [wc689]
+ ld a, [wKickCounter]
and e
jr nz, .jump
@@ -624,7 +624,7 @@ endr
ld [hl], d
ret
-BattleAnimCmd_D0: ; cc41f (33:441f)
+BattleAnimCmd_Obj: ; cc41f (33:441f)
call GetBattleAnimByte
ld [BattleAnimTemps], a
call GetBattleAnimByte
@@ -636,7 +636,7 @@ BattleAnimCmd_D0: ; cc41f (33:441f)
call Functioncc9a1
ret
-BattleAnimCmd_F0: ; cc43b (33:443b)
+BattleAnimCmd_BGEffect: ; cc43b (33:443b)
call GetBattleAnimByte
ld [BattleAnimTemps], a
call GetBattleAnimByte
@@ -648,23 +648,23 @@ BattleAnimCmd_F0: ; cc43b (33:443b)
call Functionccb4f
ret
-BattleAnimCmd_F1: ; cc457 (33:4457)
+BattleAnimCmd_BGP: ; cc457 (33:4457)
call GetBattleAnimByte
ld [wcfc7], a
ret
-BattleAnimCmd_F2: ; cc45e (33:445e)
+BattleAnimCmd_OBP0: ; cc45e (33:445e)
call GetBattleAnimByte
ld [wcfc8], a
ret
-BattleAnimCmd_F3: ; cc465 (33:4465)
+BattleAnimCmd_OBP1: ; cc465 (33:4465)
call GetBattleAnimByte
ld [wcfc9], a
ret
-BattleAnimCmd_DF: ; cc46c (33:446c)
- ld a, [hSGB] ; $ff00+$e7
+BattleAnimCmd_ResetObp0: ; cc46c (33:446c)
+ ld a, [hSGB]
and a
ld a, $e0
jr z, .asm_cc475
@@ -673,7 +673,7 @@ BattleAnimCmd_DF: ; cc46c (33:446c)
ld [wcfc8], a
ret
-BattleAnimCmd_E5: ; cc479 (33:4479)
+BattleAnimCmd_ClearObjs: ; cc479 (33:4479)
ld hl, OTPartyMon3HP
ld a, $a0
.asm_cc47e
@@ -683,11 +683,11 @@ BattleAnimCmd_E5: ; cc479 (33:4479)
jr nz, .asm_cc47e
ret
-BattleAnimCmd_D1:
-BattleAnimCmd_D2:
-BattleAnimCmd_D3:
-BattleAnimCmd_D4:
-BattleAnimCmd_D5: ; cc485 (33:4485)
+BattleAnimCmd_1GFX:
+BattleAnimCmd_2GFX:
+BattleAnimCmd_3GFX:
+BattleAnimCmd_4GFX:
+BattleAnimCmd_5GFX: ; cc485 (33:4485)
ld a, [BattleAnimByte]
and $f
ld c, a
@@ -722,7 +722,7 @@ endr
jr nz, .asm_cc492
ret
-BattleAnimCmd_D6: ; cc4c0 (33:44c0)
+BattleAnimCmd_IncObj: ; cc4c0 (33:44c0)
call GetBattleAnimByte
ld e, $a
ld bc, OTPartyMon3HP
@@ -746,7 +746,7 @@ BattleAnimCmd_D6: ; cc4c0 (33:44c0)
inc [hl]
ret
-BattleAnimCmd_D8: ; cc4e3 (33:44e3)
+BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3)
call GetBattleAnimByte
ld e, $5
ld bc, ActiveBGEffects
@@ -770,7 +770,7 @@ BattleAnimCmd_D8: ; cc4e3 (33:44e3)
inc [hl]
ret
-BattleAnimCmd_D7: ; cc506 (33:4506)
+BattleAnimCmd_SetObj: ; cc506 (33:4506)
call GetBattleAnimByte
ld e, $a
ld bc, OTPartyMon3HP
@@ -795,7 +795,7 @@ BattleAnimCmd_D7: ; cc506 (33:4506)
ld [hl], a
ret
-BattleAnimCmd_D9: ; cc52c (33:452c)
+BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c)
ld hl, w5_d300
.asm_cc52f
@@ -851,7 +851,7 @@ Functioncc561: ; cc561 (33:4561)
jr nz, Functioncc561
ret
-BattleAnimCmd_DA: ; cc57e (33:457e)
+BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e)
ld hl, w5_d300
.asm_cc581
@@ -907,7 +907,7 @@ Functioncc5b3: ; cc5b3 (33:45b3)
jr nz, Functioncc5b3
ret
-BattleAnimCmd_DB: ; cc5d0 (33:45d0)
+BattleAnimCmd_CheckPokeball: ; cc5d0 (33:45d0)
callab GetPokeBallWobble
ld a, c
ld [BattleAnimVar], a
@@ -916,15 +916,15 @@ BattleAnimCmd_DB: ; cc5d0 (33:45d0)
BattleAnimCmd_E7: ; cc5db (33:45db)
ret
-BattleAnimCmd_DC: ; cc5dc (33:45dc)
- ld a, [rSVBK] ; $ff00+$70
+BattleAnimCmd_Transform: ; cc5dc (33:45dc)
+ ld a, [rSVBK]
push af
ld a, 1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, [CurPartySpecies] ; CurPartySpecies
push af
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr z, .player
@@ -948,13 +948,13 @@ BattleAnimCmd_DC: ; cc5dc (33:45dc)
pop af
ld [CurPartySpecies], a ; CurPartySpecies
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
-BattleAnimCmd_E8: ; cc622 (33:4622)
+BattleAnimCmd_UpdateActorPic: ; cc622 (33:4622)
ld de, VTiles0 tile $00
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr z, .player
@@ -971,12 +971,12 @@ BattleAnimCmd_E8: ; cc622 (33:4622)
call Request2bpp
ret
-BattleAnimCmd_DD: ; cc640 (33:4640)
+BattleAnimCmd_RaiseSub: ; cc640 (33:4640)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, 1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
call GetSRAMBank
@@ -992,7 +992,7 @@ GetSubstitutePic: ; cc64c
or b
jr nz, .loop
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr z, .player
@@ -1037,7 +1037,7 @@ GetSubstitutePic: ; cc64c
.done
call CloseSRAM
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
CopyMonsterSpriteTile: ; cc6c6 (33:46c6)
@@ -1046,18 +1046,18 @@ CopyMonsterSpriteTile: ; cc6c6 (33:46c6)
call FarCopyBytes
ret
-BattleAnimCmd_E2: ; cc6cf (33:46cf)
- ld a, [rSVBK] ; $ff00+$70
+BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf)
+ ld a, [rSVBK]
push af
ld a, $1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
call GetSRAMBank
call GetMinimizePic
call Request2bpp
call CloseSRAM
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
GetMinimizePic: ; cc6e7 (33:46e7)
@@ -1071,7 +1071,7 @@ GetMinimizePic: ; cc6e7 (33:46e7)
or b
jr nz, .loop
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr z, .player
@@ -1102,11 +1102,11 @@ MinimizePic: ; cc725
INCBIN "gfx/battle/minimize.2bpp"
; cc735
-BattleAnimCmd_E9: ; cc735 (33:4735)
- ld a, [rSVBK] ; $ff00+$70
+BattleAnimCmd_Minimize: ; cc735 (33:4735)
+ ld a, [rSVBK]
push af
ld a, $1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
call GetSRAMBank
call GetMinimizePic
@@ -1114,18 +1114,18 @@ BattleAnimCmd_E9: ; cc735 (33:4735)
call Request2bpp
call CloseSRAM
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
-BattleAnimCmd_DE: ; cc750 (33:4750)
- ld a, [rSVBK] ; $ff00+$70
+BattleAnimCmd_DropSub: ; cc750 (33:4750)
+ ld a, [rSVBK]
push af
ld a, $1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, [CurPartySpecies] ; CurPartySpecies
push af
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr z, .player
@@ -1139,21 +1139,21 @@ BattleAnimCmd_DE: ; cc750 (33:4750)
pop af
ld [CurPartySpecies], a ; CurPartySpecies
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
-BattleAnimCmd_E6: ; cc776 (33:4776)
- ld a, [rSVBK] ; $ff00+$70
+BattleAnimCmd_BeatUp: ; cc776 (33:4776)
+ ld a, [rSVBK]
push af
ld a, $1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, [CurPartySpecies] ; CurPartySpecies
push af
- ld a, [wc689]
+ ld a, [wKickCounter]
ld [CurPartySpecies], a ; CurPartySpecies
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr z, .player
@@ -1175,20 +1175,20 @@ BattleAnimCmd_E6: ; cc776 (33:4776)
ld b, $1
call GetSGBLayout
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
-BattleAnimCmd_E3: ; cc7bb (33:47bb)
+BattleAnimCmd_OAMOn: ; cc7bb (33:47bb)
xor a
- ld [hOAMUpdate], a ; $ff00+$d8
+ ld [hOAMUpdate], a
ret
-BattleAnimCmd_E4: ; cc7bf (33:47bf)
+BattleAnimCmd_OAMOff: ; cc7bf (33:47bf)
ld a, $1
- ld [hOAMUpdate], a ; $ff00+$d8
+ ld [hOAMUpdate], a
ret
-BattleAnimCmd_F4: ; cc7c4 (33:47c4)
+BattleAnimCmd_ClearSprites: ; cc7c4 (33:47c4)
ld hl, BattleAnimFlags
set 3, [hl]
ret
@@ -1202,7 +1202,7 @@ BattleAnimCmd_F6: ; cc7cb (33:47cb)
BattleAnimCmd_F7: ; cc7cc (33:47cc)
ret
-BattleAnimCmd_E0: ; cc7cd (33:47cd)
+BattleAnimCmd_Sound: ; cc7cd (33:47cd)
call GetBattleAnimByte
ld e, a
srl a
@@ -1232,7 +1232,7 @@ Datacc7f8: ; cc7f8
; cc7fc
Functioncc7fc: ; cc7fc (33:47fc)
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr nz, .enemy
@@ -1244,7 +1244,7 @@ Functioncc7fc: ; cc7fc (33:47fc)
xor 1
ret
-BattleAnimCmd_E1: ; cc807 (33:4807)
+BattleAnimCmd_Cry: ; cc807 (33:4807)
call GetBattleAnimByte
and 3
ld e, a
@@ -1254,12 +1254,12 @@ rept 4
add hl, de
endr
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, 1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr nz, .enemy
@@ -1316,7 +1316,7 @@ endr
.done
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
; cc871 (33:4871)
@@ -1332,11 +1332,11 @@ Datacc871: ; cc871
Functioncc881: ; cc881
ld a, [wcfca]
cp $1
- jr z, .asm_cc88b
+ jr z, .okay
cp $4
ret nz
-.asm_cc88b
+.okay
ld a, [TypeModifier]
and $7f
ret z
@@ -1358,41 +1358,43 @@ Functioncc881: ; cc881
BattleAnimAssignPals: ; cc8a4
ld a, [hCGB]
and a
- jr nz, .asm_cc8be
+ jr nz, .cgb
ld a, [hSGB]
and a
- ld a, $e0
- jr z, .asm_cc8b2
- ld a, $f0
+ ld a, %11100000
+ jr z, .sgb
+ ld a, %11110000
-.asm_cc8b2
+.sgb
ld [wcfc8], a
- ld a, $e4
+ ld a, %11100100
ld [wcfc7], a
ld [wcfc9], a
ret
-.asm_cc8be
- ld a, $e4
+.cgb
+ ld a, %11100100
ld [wcfc7], a
ld [wcfc8], a
ld [wcfc9], a
call DmgToCgbBGPals
- ld de, $e4e4
+ lb de, %11100100, %11100100
call DmgToCgbObjPals
ret
; cc8d3
Functioncc8d3: ; cc8d3
+; Clear animation block
ld hl, LYOverrides
- ld bc, $0354
-.asm_cc8d9
+ ld bc, wBattleAnimEnd - LYOverrides
+.loop
ld [hl], $0
inc hl
dec bc
ld a, c
or b
- jr nz, .asm_cc8d9
+ jr nz, .loop
+
ld hl, FXAnimIDLo
ld e, [hl]
inc hl
@@ -1401,7 +1403,7 @@ Functioncc8d3: ; cc8d3
rept 2
add hl, de
endr
- call Function3ae1
+ call GetBattleAnimPointer
call BattleAnimAssignPals
call BattleAnimDelayFrame
ret
@@ -1409,12 +1411,12 @@ endr
Functioncc8f6: ; cc8f6
call WaitTop
- ld a, $e4
+ ld a, %11100100
ld [wcfc7], a
ld [wcfc8], a
ld [wcfc9], a
call DmgToCgbBGPals
- ld de, $e4e4
+ lb de, %11100100, %11100100
call DmgToCgbObjPals
xor a
ld [hSCX], a
@@ -1435,7 +1437,7 @@ Functioncc91a: ; cc91a
ld a, $5
ld [rSVBK], a
ld hl, BGPals
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, [rBGP]
ld b, a
ld c, $7
diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm
index f4aea5163..3fc6e7c7d 100644
--- a/battle/anim_objects.asm
+++ b/battle/anim_objects.asm
@@ -946,14 +946,14 @@ endr
Functioncd249: ; cd249 (33:5249)
ld hl, Unknown_cd26c
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $1
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, [CurItem] ; CurItem
ld e, a
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
.asm_cd25a
ld a, [hli]
cp $ff
@@ -1694,7 +1694,7 @@ Jumptable_cd66d: ; cd66d (33:566d)
Functioncd677: ; cd677 (33:5677)
call Functionce72c
ld a, $42
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
ld a, $58
ld [hLCDStatCustom + 1], a
ld a, $5e
@@ -1753,7 +1753,7 @@ Functioncd6c6: ; cd6c6 (33:56c6)
cp $70
jr c, asm_cd6da
xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
ld [hLCDStatCustom + 1], a
ld [hLCDStatCustom + 2], a
@@ -2839,7 +2839,7 @@ Jumptable_cdcc6: ; cdcc6 (33:5cc6)
Functioncdcca: ; cdcca (33:5cca)
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr z, .asm_cdcd9
ld hl, $b
@@ -3842,7 +3842,7 @@ Jumptable_ce258: ; ce258 (33:6258)
Functionce260: ; ce260 (33:6260)
call Functionce72c
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and a
jr nz, .asm_ce26c
ld a, $f0
@@ -3893,7 +3893,7 @@ Functionce29f: ; ce29f (33:629f)
srl a
ld e, a
ld d, $0
- ld a, [hSGB] ; $ff00+$e7
+ ld a, [hSGB]
and a
jr nz, .asm_ce2b6
ld hl, Unknown_ce2c4
@@ -4949,7 +4949,7 @@ endr
ld l, a
pop de
push bc
- call Functione73
+ call DecompressRequest2bpp
pop bc
ret
; ce85e (33:685e)
diff --git a/battle/anims.asm b/battle/anims.asm
index 0f3ba748b..d18cfff43 100644
--- a/battle/anims.asm
+++ b/battle/anims.asm
@@ -255,6 +255,7 @@ BattleAnimations:: ; c906f
dw BattleAnim_253
dw BattleAnim_254
dw BattleAnim_SweetScent2
+; $100
dw BattleAnim_ThrowPokeBall
dw BattleAnim_SendOutMon
dw BattleAnim_ReturnMon
@@ -302,10 +303,11 @@ BattleAnim_SweetScent2: ; c929c
; c92c1
BattleAnim_ThrowPokeBall: ; c92c1
- anim_jumpif $0, BattleAnim_ThrowPokeBall_branch_c92f2
- anim_jumpif $1, BattleAnim_ThrowPokeBall_branch_c9347
- anim_jumpif $2, BattleAnim_ThrowPokeBall_branch_c9305
- anim_jumpif $4, BattleAnim_ThrowPokeBall_branch_c9326
+ anim_jumpif NO_ITEM, .TheTrainerBlockedTheBall
+ anim_jumpif MASTER_BALL, .MasterBall
+ anim_jumpif ULTRA_BALL, .UltraBall
+ anim_jumpif GREAT_BALL, .GreatBall
+ ; any other ball
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
anim_sound $1a, SFX_THROW_BALL
anim_obj $15, 68, 92, $40
@@ -316,10 +318,10 @@ BattleAnim_ThrowPokeBall: ; c92c1
anim_sound $1, SFX_BALL_POOF
anim_obj $1c, 136, 64, $10
anim_wait 16
- anim_jump BattleAnim_ThrowPokeBall_branch_c9392
+ anim_jump .Shake
; c92f2
-BattleAnim_ThrowPokeBall_branch_c92f2: ; c92f2
+.TheTrainerBlockedTheBall: ; c92f2
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT
anim_sound $1a, SFX_THROW_BALL
anim_obj $16, 64, 92, $20
@@ -329,7 +331,7 @@ BattleAnim_ThrowPokeBall_branch_c92f2: ; c92f2
anim_ret
; c9305
-BattleAnim_ThrowPokeBall_branch_c9305: ; c9305
+.UltraBall: ; c9305
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
anim_sound $1a, SFX_THROW_BALL
anim_obj $15, 68, 92, $40
@@ -340,10 +342,10 @@ BattleAnim_ThrowPokeBall_branch_c9305: ; c9305
anim_sound $1, SFX_BALL_POOF
anim_obj $1c, 136, 64, $10
anim_wait 16
- anim_jump BattleAnim_ThrowPokeBall_branch_c9392
+ anim_jump .Shake
; c9326
-BattleAnim_ThrowPokeBall_branch_c9326: ; c9326
+.GreatBall: ; c9326
anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE
anim_sound $1a, SFX_THROW_BALL
anim_obj $15, 68, 92, $40
@@ -354,10 +356,10 @@ BattleAnim_ThrowPokeBall_branch_c9326: ; c9326
anim_sound $1, SFX_BALL_POOF
anim_obj $1c, 136, 64, $10
anim_wait 16
- anim_jump BattleAnim_ThrowPokeBall_branch_c9392
+ anim_jump .Shake
; c9347
-BattleAnim_ThrowPokeBall_branch_c9347: ; c9347
+.MasterBall: ; c9347
anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED
anim_sound $1a, SFX_THROW_BALL
anim_obj $15, 64, 92, $20
@@ -378,7 +380,7 @@ BattleAnim_ThrowPokeBall_branch_c9347: ; c9347
anim_obj $2b, 136, 56, $36
anim_obj $2b, 136, 56, $37
anim_wait 64
-BattleAnim_ThrowPokeBall_branch_c9392: ; c9392
+.Shake: ; c9392
anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0
anim_wait 8
anim_incobj $2
@@ -392,22 +394,22 @@ BattleAnim_ThrowPokeBall_branch_c9392: ; c9392
anim_wait 32
anim_wait 8
anim_setvar $0
-BattleAnim_ThrowPokeBall_branch_c93aa: ; c93aa
+.Loop: ; c93aa
anim_wait 48
anim_checkpokeball
- anim_jumpvar $1, BattleAnim_ThrowPokeBall_branch_c93bc
- anim_jumpvar $2, BattleAnim_ThrowPokeBall_branch_c93be
+ anim_jumpvar $1, .Click
+ anim_jumpvar $2, .BreakFree
anim_incobj $1
anim_sound $1, SFX_BALL_WIGGLE
- anim_jump BattleAnim_ThrowPokeBall_branch_c93aa
+ anim_jump .Loop
; c93bc
-BattleAnim_ThrowPokeBall_branch_c93bc: ; c93bc
+.Click: ; c93bc
anim_clearsprites
anim_ret
; c93be
-BattleAnim_ThrowPokeBall_branch_c93be: ; c93be
+.BreakFree: ; c93be
anim_setobj $1, $b
anim_sound $1, SFX_BALL_POOF
anim_obj $1c, 136, 64, $10
diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm
index f7245ce3b..da3d6b4a1 100644
--- a/battle/bg_effects.asm
+++ b/battle/bg_effects.asm
@@ -343,14 +343,14 @@ Functionc81c0: ; c81c0 (32:41c0)
call ClearBox
pop bc
xor a
- ld [hBGMapThird], a ; $ff00+$d5
+ ld [hBGMapThird], a
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
Functionc81e3: ; c81e3 (32:41e3)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call EndBattleBGEffect
ret
@@ -441,13 +441,13 @@ Functionc825a: ; c825a (32:425a)
.asm_c8271
call ClearBox
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
pop bc
ret
Functionc827a: ; c827a (32:427a)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call EndBattleBGEffect
ret
@@ -507,13 +507,13 @@ Functionc82c7: ; c82c7 (32:42c7)
.asm_c82de
call ClearBox
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
pop bc
ret
Functionc82e7: ; c82e7 (32:42e7)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call EndBattleBGEffect
ret
@@ -595,9 +595,9 @@ Functionc831d: ; c831d (32:431d)
jr nz, .asm_c8344
.asm_c8355
xor a
- ld [hBGMapThird], a ; $ff00+$d5
+ ld [hBGMapThird], a
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Functionc80e5
ld hl, $3
add hl, bc
@@ -606,7 +606,7 @@ Functionc831d: ; c831d (32:431d)
Functionc8365: ; c8365 (32:4365)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld hl, $3
add hl, bc
ld a, [hl]
@@ -723,7 +723,7 @@ endr
.asm_c841d
call Functionc80e5
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
.asm_c8425
call Functionc843b
@@ -731,7 +731,7 @@ endr
Functionc842a: ; c842a (32:442a)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld hl, $1
add hl, bc
ld [hl], $0
@@ -739,7 +739,7 @@ Functionc842a: ; c842a (32:442a)
Functionc8434: ; c8434 (32:4434)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call EndBattleBGEffect
ret
@@ -902,7 +902,7 @@ Functionc854e: ; c854e (32:454e)
call Functionc8f69
Functionc8557: ; c8557 (32:4557)
- ld a, [hLCDStatCustom] ; $ff00+$c6
+ ld a, [hLCDStatCustom]
and a
ret z
push bc
@@ -967,7 +967,7 @@ Functionc85a2: ; c85a2 (32:45a2)
call Functionc80e5
call Functionc8eca
ld a, $42
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $5e
@@ -1042,7 +1042,7 @@ Functionc8610: ; c8610 (32:4610)
call Functionc80e5
call Functionc8eca
ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $5f
@@ -1530,7 +1530,7 @@ Functionc88a5: ; c88a5 (32:48a5)
sub d
ld d, a
ld h, LYOverridesBackup / $100
- ld a, [hSCY] ; $ff00+$d0
+ ld a, [hSCY]
or a
jr nz, .asm_c88d0
ld a, [hLCDStatCustom + 1]
@@ -1546,7 +1546,7 @@ Functionc88a5: ; c88a5 (32:48a5)
ld l, a
ld [hl], $0
.asm_c88d6
- ld a, [hSCY] ; $ff00+$d0
+ ld a, [hSCY]
ld l, a
ld a, [hLCDStatCustom + 1]
sub l
@@ -1953,7 +1953,7 @@ Functionc8ae5: ; c8ae5 (32:4ae5)
ret
Functionc8b00: ; c8b00 (32:4b00)
- ld a, [hCGB] ; $ff00+$e6
+ ld a, [hCGB]
and a
jr nz, asm_c8b7a
call Functionc80d7 ; ; ; call does not return
@@ -1969,7 +1969,7 @@ Functionc8b0e: ; c8b0e (32:4b0e)
ld a, $e4
call Functionc8ecb
ld a, $47
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $60
@@ -2266,7 +2266,7 @@ Functionc8cab: ; c8cab (32:4cab)
call Functionc80e5
call Functionc8eca
ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $37
@@ -2307,7 +2307,7 @@ Functionc8ce1: ; c8ce1 (32:4ce1)
push af
call DelayFrame
pop af
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCY], a
xor $ff
inc a
ld [OTPartyMon3SpclAtk], a
@@ -2318,7 +2318,7 @@ Functionc8cf9: ; c8cf9 (32:4cf9)
jr nc, .asm_c8cff
xor a
.asm_c8cff
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ret
Functionc8d02: ; c8d02 (32:4d02)
@@ -2326,7 +2326,7 @@ Functionc8d02: ; c8d02 (32:4d02)
jr nc, .asm_c8d08
xor a
.asm_c8d08
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCY], a
ret
Functionc8d0b: ; c8d0b (32:4d0b)
@@ -2373,7 +2373,7 @@ Functionc8d3a: ; c8d3a (32:4d3a)
jr nc, .asm_c8d53
ld d, $6
call Functionc905d
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld hl, $3
add hl, bc
ld a, [hl]
@@ -2382,7 +2382,7 @@ Functionc8d3a: ; c8d3a (32:4d3a)
ret
.asm_c8d53
xor a
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ret
Functionc8d57: ; c8d57 (32:4d57)
@@ -2410,7 +2410,7 @@ Functionc8d57: ; c8d57 (32:4d57)
ret
Functionc8d77: ; c8d77 (32:4d77)
- ld a, [hCGB] ; $ff00+$e6
+ ld a, [hCGB]
and a
jr nz, asm_c8dd4
push de
@@ -2469,7 +2469,7 @@ Functionc8daa: ; c8daa (32:4daa)
Functionc8dc9: ; c8dc9 (32:4dc9)
call Functionc8f19
ld a, $e4
- ld [rBGP], a ; $ff00+$47
+ ld [rBGP], a
call EndBattleBGEffect
ret
asm_c8dd4: ; c8dd4 (32:4dd4)
@@ -2563,15 +2563,15 @@ Functionc8e49: ; c8e49 (32:4e49)
Functionc8e52: ; c8e52 (32:4e52)
ld h, a
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, h
push bc
push af
ld hl, BGPals ; BGPals
- ld de, Unkn1Pals ; wd000
+ ld de, wMapPals ; wd000
ld b, a
ld c, $1
call CopyPals
@@ -2583,22 +2583,22 @@ Functionc8e52: ; c8e52 (32:4e52)
call CopyPals
pop bc
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
Functionc8e7f: ; c8e7f (32:4e7f)
ld h, a
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, h
push bc
push af
ld hl, BGPals + 8
- ld de, Unkn1Pals + 8
+ ld de, wMapPals + 8
ld b, a
ld c, $1
call CopyPals
@@ -2610,9 +2610,9 @@ Functionc8e7f: ; c8e7f (32:4e7f)
call CopyPals
pop bc
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
Functionc8eac: ; c8eac (32:4eac)
@@ -2660,7 +2660,7 @@ Functionc8ecb: ; c8ecb (32:4ecb)
ret
Functionc8ede: ; c8ede (32:4ede)
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
call Functionc9038
jr nz, .asm_c8eea
ld de, $36
@@ -2675,7 +2675,7 @@ Functionc8ede: ; c8ede (32:4ede)
ret
Functionc8ef4: ; c8ef4 (32:4ef4)
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
call Functionc9038
jr nz, .asm_c8f00
ld de, $36
@@ -2695,15 +2695,15 @@ Functionc8f0a: ; c8f0a (32:4f0a)
ld [hLCDStatCustom + 2], a
call Functionc8eca
xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
call EndBattleBGEffect
ret
Functionc8f19: ; c8f19 (32:4f19)
xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
ld a, $e4
- ld [rBGP], a ; $ff00+$47
+ ld [rBGP], a
ld [wcfc7], a
ld [wcfc9], a
ld [hLCDStatCustom + 1], a
@@ -2902,7 +2902,7 @@ Functionc901b: ; c901b (32:501b)
Functionc9038: ; c9038 (32:5038)
ld hl, $2
add hl, bc
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and $1
xor [hl]
ret
@@ -2910,7 +2910,7 @@ Functionc9038: ; c9038 (32:5038)
Functionc9042: ; c9042 (32:5042)
ld hl, $2
add hl, bc
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld a, [hBattleTurn]
and $1
xor [hl]
jr nz, .asm_c9053
@@ -2923,7 +2923,7 @@ Functionc9042: ; c9042 (32:5042)
ret
Functionc9059: ; c9059 (32:5059)
- ld a, [hSGB] ; $ff00+$e7
+ ld a, [hSGB]
and a
ret
diff --git a/battle/core.asm b/battle/core.asm
index f42fe3c55..1defd0e23 100644
--- a/battle/core.asm
+++ b/battle/core.asm
@@ -3,52 +3,52 @@ BattleCore:
; Core components of the battle engine.
-Function3c000: ; 3c000
+SendOutFirstMons: ; 3c000
xor a
- ld [wc664], a
+ ld [wBattleParticipantsNotFainted], a
ld [wc6fc], a
ld [wd0ec], a
ld [BattleEnded], a
inc a
ld [wd264], a
ld hl, OTPartyMon1HP
- ld bc, OTPartyMon2 - (OTPartyMon1 + 1)
- ld d, NUM_MOVES - 1
-.asm_3c019
+ ld bc, PARTYMON_STRUCT_LENGTH - 1
+ ld d, BATTLEACTION_SWITCH1 - 1
+.loop
inc d
ld a, [hli]
or [hl]
- jr nz, .asm_3c021
+ jr nz, .alive
add hl, bc
- jr .asm_3c019
+ jr .loop
-.asm_3c021
+.alive
ld a, d
ld [wBattleAction], a
ld a, [wLinkMode]
and a
- jr z, .asm_3c031
+ jr z, .not_linked
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $2
- jr z, .asm_3c04c
+ jr z, .player_2
-.asm_3c031
+.not_linked
ld a, [wBattleMode]
dec a
- jr z, .asm_3c047
+ jr z, .wild
xor a
- ld [wc718], a
+ ld [wEnemySwitchMonIndex], a
call NewEnemyMonStatus
call ResetEnemyStatLevels
call BreakAttraction
- call Function3d4e1
+ call EnemySwitch
-.asm_3c047
+.wild
ld c, 40
call DelayFrames
-.asm_3c04c
+.player_2
call LoadTileMapToTempTileMap
call CheckPlayerPartyForFitPkmn
ld a, d
@@ -57,19 +57,19 @@ Function3c000: ; 3c000
call Call_LoadTempTileMapToTileMap
ld a, [BattleType]
cp BATTLETYPE_DEBUG
- jp z, .asm_3c0e2
+ jp z, .tutorial_debug
cp BATTLETYPE_TUTORIAL
- jp z, .asm_3c0e2
+ jp z, .tutorial_debug
xor a
ld [CurPartyMon], a
-.asm_3c06b
+.loop2
call CheckIfPartyHasPkmnToBattleWith
- jr nz, .asm_3c076
+ jr nz, .alive2
ld hl, CurPartyMon
inc [hl]
- jr .asm_3c06b
+ jr .loop2
-.asm_3c076
+.alive2
ld a, [CurBattleMon]
ld [LastPlayerMon], a
ld a, [CurPartyMon]
@@ -86,36 +86,36 @@ Function3c000: ; 3c000
ld a, $9
call Function3d490
call LoadTileMapToTempTileMap
- call Function3d57a
- call Function3da0d
+ call ResetBattleParticipants
+ call InitBattleMon
call ResetPlayerStatLevels
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
- call Function3db5f
+ call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
call SpikesDamage
ld a, [wLinkMode]
and a
- jr z, .asm_3c0df
- ld a, [$ffcb]
+ jr z, .not_linked_2
+ ld a, [hLinkPlayerNumber]
cp $2
- jr nz, .asm_3c0df
+ jr nz, .not_linked_2
xor a
- ld [wc718], a
+ ld [wEnemySwitchMonIndex], a
call NewEnemyMonStatus
call ResetEnemyStatLevels
call BreakAttraction
- call Function3d4e1
+ call EnemySwitch
call SetEnemyTurn
call SpikesDamage
-.asm_3c0df
+.not_linked_2
jp Function3c12f
-.asm_3c0e2
+.tutorial_debug
jp BattleMenu
; 3c0e5
@@ -136,7 +136,7 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5
and $c0
ld [wBattleResult], a
ld hl, BattleText_EnemyFled
- call Function3d2e0
+ call CheckMobileBattleError
jr nc, .asm_3c115
ld hl, wcd2a
@@ -150,7 +150,7 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5
.asm_3c118
call StopDangerSound
- call Function3d2e0
+ call CheckMobileBattleError
jr c, .asm_3c126
ld de, SFX_RUN
@@ -166,20 +166,20 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5
Function3c12f: ; 3c12f
.loop
- call Function3c1bf
- call Function3c3f5
+ call MobileFn_3c1bf
+ call CheckContestBattleOver
jp c, .quit
xor a
ld [wPlayerIsSwitching], a
ld [wEnemyIsSwitching], a
ld [wd264], a
- ld [wc73f], a
- ld [wc740], a
+ ld [wPlayerJustGotFrozen], a
+ ld [wEnemyJustGotFrozen], a
ld [CurDamage], a
ld [CurDamage + 1], a
- call Function3c27c
+ call HandleBerserkGene
call UpdateBattleMonInParty
callba AIChooseMove
@@ -191,35 +191,35 @@ Function3c12f: ; 3c12f
jp c, .quit
.not_disconnected
- call Function3c410
- jr c, .asm_3c18a
-.asm_3c179
+ call CheckPlayerLockedIn
+ jr c, .skip_iteration
+.loop1
call BattleMenu
jr c, .quit
ld a, [BattleEnded]
and a
jr nz, .quit
- ld a, [wd232] ; roared/whirlwinded/teleported
+ ld a, [wForcedSwitch] ; roared/whirlwinded/teleported
and a
jr nz, .quit
-.asm_3c18a
- call Function3c434
- jr nz, .asm_3c179
+.skip_iteration
+ call ParsePlayerAction
+ jr nz, .loop1
- call Function3c300
+ call EnemyTriesToFlee
jr c, .quit
- call Function3c314
- jr c, .asm_3c19e
- call Function3c5fe
- jr .asm_3c1a1
-.asm_3c19e
- call Function3c664
-.asm_3c1a1
- call Function3d2e0
+ call DetermineMoveOrder
+ jr c, .false
+ call Battle_EnemyFirst
+ jr .proceed
+.false
+ call Battle_PlayerFirst
+.proceed
+ call CheckMobileBattleError
jr c, .quit
- ld a, [wd232]
+ ld a, [wForcedSwitch]
and a
jr nz, .quit
@@ -227,7 +227,7 @@ Function3c12f: ; 3c12f
and a
jr nz, .quit
- call Function3c1d6
+ call HandleBetweenTurnEffects
ld a, [BattleEnded]
and a
jr nz, .quit
@@ -237,46 +237,41 @@ Function3c12f: ; 3c12f
ret
; 3c1bf
-Function3c1bf: ; 3c1bf
- ret
-; 3c1c0
-
-
-Function3c1c0: ; 3c1c0
+MobileFn_3c1bf: mobile
ld a, $5
call GetSRAMBank
- ld hl, $a89b
+ ld hl, $a89b ; s5_a89b
inc [hl]
- jr nz, .asm_3c1d2
+ jr nz, .finish
dec hl
inc [hl]
- jr nz, .asm_3c1d2
+ jr nz, .finish
dec [hl]
inc hl
dec [hl]
-.asm_3c1d2
+.finish
call CloseSRAM
ret
; 3c1d6
-Function3c1d6: ; 3c1d6
- ld a, [$ffcb]
+HandleBetweenTurnEffects: ; 3c1d6
+ ld a, [hLinkPlayerNumber]
cp $1
jr z, .CheckEnemyFirst
call CheckFaint_PlayerThenEnemy
ret c
- call Function3ca26
+ call HandleFutureSight
call CheckFaint_PlayerThenEnemy
ret c
call HandleWeather
call CheckFaint_PlayerThenEnemy
ret c
- call Function3c874
+ call HandleWrap
call CheckFaint_PlayerThenEnemy
ret c
- call Function3c801
+ call HandlePerishSong
call CheckFaint_PlayerThenEnemy
ret c
jr .NoMoreFaintingConditions
@@ -284,27 +279,27 @@ Function3c1d6: ; 3c1d6
.CheckEnemyFirst
call CheckFaint_EnemyThenPlayer
ret c
- call Function3ca26
+ call HandleFutureSight
call CheckFaint_EnemyThenPlayer
ret c
call HandleWeather
call CheckFaint_EnemyThenPlayer
ret c
- call Function3c874
+ call HandleWrap
call CheckFaint_EnemyThenPlayer
ret c
- call Function3c801
+ call HandlePerishSong
call CheckFaint_EnemyThenPlayer
ret c
.NoMoreFaintingConditions
- call Function3c8eb
- call Function3c93c
+ call HandleLeftovers
+ call HandleMysteryberry
call HanleDefrost
call HandleSafeguard
call HandleScreens
- call Function3de97
- call Function3dcf9
+ call HandleStatBoostingHeldItems
+ call HandleHealingItems
call UpdateBattleMonInParty
call LoadTileMapToTempTileMap
jp Function3c4df
@@ -360,8 +355,8 @@ CheckFaint_EnemyThenPlayer: ; 3c25c
ret
; 3c27c
-Function3c27c: ; 3c27c
- ld a, [$ffcb]
+HandleBerserkGene: ; 3c27c
+ ld a, [hLinkPlayerNumber]
cp $1
jr z, .reverse
@@ -417,88 +412,89 @@ Function3c27c: ; 3c27c
ld [hl], a
ld [AttackMissed], a
ld [EffectFailed], a
- callba BattleCommand77
+ callba BattleCommand_AttackUp2
pop af
pop hl
ld [hl], a
call GetItemName
ld hl, BattleText_UsersStringBuffer1Activated
call StdBattleTextBox
- callab BattleCommand8c
+ callab BattleCommand_StatUpMessage
pop af
bit SUBSTATUS_CONFUSED, a
ret nz
xor a
ld [wcfca], a
ld de, ANIM_CONFUSED
- call Function3ee0f
+ call Call_PlayBattleAnim_OnlyIfVisible
call SwitchTurnCore
ld hl, BecameConfusedText
jp StdBattleTextBox
; 3c300
-Function3c300: ; 3c300
+EnemyTriesToFlee: ; 3c300
ld a, [wLinkMode]
and a
- jr z, .asm_3c30d
+ jr z, .not_linked
ld a, [wBattleAction]
- cp $f
- jr z, .asm_3c30f
+ cp BATTLEACTION_FORFEIT
+ jr z, .forfeit
-.asm_3c30d
+.not_linked
and a
ret
-.asm_3c30f
+.forfeit
call WildFled_EnemyFled_LinkBattleCanceled
scf
ret
; 3c314
-Function3c314: ; 3c314
+DetermineMoveOrder: ; 3c314
ld a, [wLinkMode]
and a
- jr z, .asm_3c35b
+ jr z, .use_move
ld a, [wBattleAction]
- cp $e
- jr z, .asm_3c35b
- cp $d
- jr z, .asm_3c35b
- sub NUM_MOVES
- jr c, .asm_3c35b
+ cp BATTLEACTION_E
+ jr z, .use_move
+ cp BATTLEACTION_D
+ jr z, .use_move
+ sub BATTLEACTION_SWITCH1
+ jr c, .use_move
ld a, [wd0ec]
cp $2
- jr nz, .asm_3c34c
- ld a, [$ffcb]
+ jr nz, .switch
+ ld a, [hLinkPlayerNumber]
cp $2
- jr z, .asm_3c341
+ jr z, .player_2
+
call BattleRandom
cp 1 + (50 percent)
- jp c, .asm_3c3f1
- jp Function3c3f3
+ jp c, .player_first
+ jp .enemy_first
-.asm_3c341
+.player_2
call BattleRandom
cp 1 + (50 percent)
- jp c, Function3c3f3
- jp .asm_3c3f1
+ jp c, .enemy_first
+ jp .player_first
-.asm_3c34c
+.switch
callab AI_Switch
call SetEnemyTurn
call SpikesDamage
- jp Function3c3f3
+ jp .enemy_first
-.asm_3c35b
+.use_move
ld a, [wd0ec]
and a
- jp nz, .asm_3c3f1
+ jp nz, .player_first
call CompareMovePriority
- jr z, .asm_3c36d
- jp c, .asm_3c3f1
- jp Function3c3f3
+ jr z, .equal_priority
+ jp c, .player_first ; player goes first
+ jp .enemy_first
-.asm_3c36d
+.equal_priority
call SetPlayerTurn
callab GetUserItem
push bc
@@ -506,84 +502,84 @@ Function3c314: ; 3c314
pop de
ld a, d
cp HELD_QUICK_CLAW
- jr nz, .asm_3c391
+ jr nz, .player_no_quick_claw
ld a, b
cp HELD_QUICK_CLAW
- jr z, .asm_3c39f
+ jr z, .both_have_quick_claw
call BattleRandom
cp e
- jr nc, .asm_3c3c5
- jp .asm_3c3f1
+ jr nc, .speed_check
+ jp .player_first
-.asm_3c391
+.player_no_quick_claw
ld a, b
cp HELD_QUICK_CLAW
- jr nz, .asm_3c3c5
+ jr nz, .speed_check
call BattleRandom
cp c
- jr nc, .asm_3c3c5
- jp Function3c3f3
+ jr nc, .speed_check
+ jp .enemy_first
-.asm_3c39f
- ld a, [$ffcb]
+.both_have_quick_claw
+ ld a, [hLinkPlayerNumber]
cp $2
- jr z, .asm_3c3b5
+ jr z, .player_2b
call BattleRandom
cp c
- jp c, Function3c3f3
+ jp c, .enemy_first
call BattleRandom
cp e
- jp c, .asm_3c3f1
- jr .asm_3c3c5
+ jp c, .player_first
+ jr .speed_check
-.asm_3c3b5
+.player_2b
call BattleRandom
cp e
- jp c, .asm_3c3f1
+ jp c, .player_first
call BattleRandom
cp c
- jp c, Function3c3f3
- jr .asm_3c3c5
+ jp c, .enemy_first
+ jr .speed_check
-.asm_3c3c5
+.speed_check
ld de, BattleMonSpeed
ld hl, EnemyMonSpeed
- ld c, $2
+ ld c, 2
call StringCmp
- jr z, .asm_3c3d8
- jp nc, .asm_3c3f1
- jp Function3c3f3
+ jr z, .speed_tie
+ jp nc, .player_first
+ jp .enemy_first
-.asm_3c3d8
- ld a, [$ffcb]
+.speed_tie
+ ld a, [hLinkPlayerNumber]
cp $2
- jr z, .asm_3c3e9
+ jr z, .player_2c
call BattleRandom
cp 1 + (50 percent)
- jp c, .asm_3c3f1
- jp Function3c3f3
+ jp c, .player_first
+ jp .enemy_first
-.asm_3c3e9
+.player_2c
call BattleRandom
cp 1 + (50 percent)
- jp c, Function3c3f3
-.asm_3c3f1
+ jp c, .enemy_first
+.player_first
scf
ret
; 3c3f3
-Function3c3f3: ; 3c3f3
+.enemy_first: ; 3c3f3
and a
ret
; 3c3f5
-Function3c3f5: ; 3c3f5
+CheckContestBattleOver: ; 3c3f5
ld a, [BattleType]
cp BATTLETYPE_CONTEST
- jr nz, .asm_3c40e
- ld a, [wdc79]
+ jr nz, .contest_not_over
+ ld a, [wParkBallsRemaining]
and a
- jr nz, .asm_3c40e
+ jr nz, .contest_not_over
ld a, [wBattleResult]
and $c0
add $2
@@ -591,12 +587,12 @@ Function3c3f5: ; 3c3f5
scf
ret
-.asm_3c40e
+.contest_not_over
and a
ret
; 3c410
-Function3c410: ; 3c410
+CheckPlayerLockedIn: ; 3c410
ld a, [PlayerSubStatus4]
and 1 << SUBSTATUS_RECHARGE
jp nz, .quit
@@ -622,25 +618,25 @@ Function3c410: ; 3c410
ret
; 3c434
-Function3c434: ; 3c434
- call Function3c410
- jp c, .asm_3c4ba
+ParsePlayerAction: ; 3c434
+ call CheckPlayerLockedIn
+ jp c, .locked_in
ld hl, PlayerSubStatus5
bit SUBSTATUS_ENCORED, [hl]
- jr z, .asm_3c449
+ jr z, .not_encored
ld a, [LastPlayerMove]
ld [CurPlayerMove], a
- jr .asm_3c47c
+ jr .encored
-.asm_3c449
+.not_encored
ld a, [wd0ec]
cp $2
- jr z, .asm_3c4ce
+ jr z, .reset_rage
and a
- jr nz, .asm_3c4b5
+ jr nz, .reset_bide
ld a, [PlayerSubStatus3]
and 1 << SUBSTATUS_BIDE
- jr nz, .asm_3c4ba
+ jr nz, .locked_in
xor a
ld [wd235], a
inc a ; POUND
@@ -651,67 +647,67 @@ Function3c434: ; 3c434
call UpdateBattleHuds
ld a, [CurPlayerMove]
cp STRUGGLE
- jr z, .asm_3c476
+ jr z, .struggle
call PlayClickSFX
-.asm_3c476
+.struggle
ld a, $1
ld [hBGMapMode], a
pop af
ret nz
-.asm_3c47c
+.encored
call SetPlayerTurn
callab UpdateMoveData
xor a
- ld [wc732], a
+ ld [wPlayerCharging], a
ld a, [wPlayerMoveStruct + MOVE_EFFECT]
cp EFFECT_FURY_CUTTER
- jr z, .asm_3c494
+ jr z, .continue_fury_cutter
xor a
ld [PlayerFuryCutterCount], a
-.asm_3c494
+.continue_fury_cutter
ld a, [wPlayerMoveStruct + MOVE_EFFECT]
cp EFFECT_RAGE
- jr z, .asm_3c4a4
+ jr z, .continue_rage
ld hl, PlayerSubStatus4
res SUBSTATUS_RAGE, [hl]
xor a
- ld [wc72b], a
+ ld [wPlayerRageCounter], a
-.asm_3c4a4
+.continue_rage
ld a, [wPlayerMoveStruct + MOVE_EFFECT]
cp EFFECT_PROTECT
- jr z, .asm_3c4c9
+ jr z, .continue_protect
cp EFFECT_ENDURE
- jr z, .asm_3c4c9
+ jr z, .continue_protect
xor a
ld [PlayerProtectCount], a
- jr .asm_3c4c9
+ jr .continue_protect
-.asm_3c4b5
+.reset_bide
ld hl, PlayerSubStatus3
res SUBSTATUS_BIDE, [hl]
-.asm_3c4ba
+.locked_in
xor a
ld [PlayerFuryCutterCount], a
ld [PlayerProtectCount], a
- ld [wc72b], a
+ ld [wPlayerRageCounter], a
ld hl, PlayerSubStatus4
res SUBSTATUS_RAGE, [hl]
-.asm_3c4c9
- call Function3e7c1
+.continue_protect
+ call ParseEnemyAction
xor a
ret
-.asm_3c4ce
+.reset_rage
xor a
ld [PlayerFuryCutterCount], a
ld [PlayerProtectCount], a
- ld [wc72b], a
+ ld [wPlayerRageCounter], a
ld hl, PlayerSubStatus4
res SUBSTATUS_RAGE, [hl]
xor a
@@ -719,7 +715,7 @@ Function3c434: ; 3c434
; 3c4df
Function3c4df: ; 3c4df
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $1
jr z, .asm_3c4ea
call .asm_3c4ed
@@ -777,7 +773,7 @@ Function3c4df: ; 3c4df
; 3c543
-Function3c543: ; 3c543
+TryEnemyFlee: ; 3c543
ld a, [wBattleMode]
dec a
jr nz, .Stay
@@ -786,7 +782,7 @@ Function3c543: ; 3c543
bit SUBSTATUS_CANT_RUN, a
jr nz, .Stay
- ld a, [wc731]
+ ld a, [wEnemyWrapCount]
and a
jr nz, .Stay
@@ -936,19 +932,19 @@ GetMoveEffect: ; 3c5ec
; 3c5fe
-Function3c5fe: ; 3c5fe
+Battle_EnemyFirst: ; 3c5fe
call LoadTileMapToTempTileMap
- call Function3c543
+ call TryEnemyFlee
jp c, WildFled_EnemyFled_LinkBattleCanceled
call SetEnemyTurn
ld a, $1
- ld [wc70f], a
+ ld [wEnemyGoesFirst], a
callab AI_SwitchOrTryItem
- jr c, .asm_3c62f
- call Function3c6de
- call Function3d2e0
+ jr c, .switch_item
+ call EnemyTurn_EndOpponentProtectEndureDestinyBond
+ call CheckMobileBattleError
ret c
- ld a, [wd232]
+ ld a, [wForcedSwitch]
and a
ret nz
call HasPlayerFainted
@@ -956,15 +952,15 @@ Function3c5fe: ; 3c5fe
call HasEnemyFainted
jp z, HandleEnemyMonFaint
-.asm_3c62f
+.switch_item
call SetEnemyTurn
call ResidualDamage
jp z, HandleEnemyMonFaint
call RefreshBattleHuds
- call Function3c6cf
- call Function3d2e0
+ call PlayerTurn_EndOpponentProtectEndureDestinyBond
+ call CheckMobileBattleError
ret c
- ld a, [wd232]
+ ld a, [wForcedSwitch]
and a
ret nz
call HasEnemyFainted
@@ -980,18 +976,18 @@ Function3c5fe: ; 3c5fe
ret
; 3c664
-Function3c664: ; 3c664
+Battle_PlayerFirst: ; 3c664
xor a
- ld [wc70f], a
+ ld [wEnemyGoesFirst], a
call SetEnemyTurn
callab AI_SwitchOrTryItem
push af
- call Function3c6cf
+ call PlayerTurn_EndOpponentProtectEndureDestinyBond
pop bc
- ld a, [wd232]
+ ld a, [wForcedSwitch]
and a
ret nz
- call Function3d2e0
+ call CheckMobileBattleError
ret c
call HasEnemyFainted
jp z, HandleEnemyMonFaint
@@ -1005,14 +1001,14 @@ Function3c664: ; 3c664
push bc
call RefreshBattleHuds
pop af
- jr c, .asm_3c6be
+ jr c, .switched_or_used_item
call LoadTileMapToTempTileMap
- call Function3c543
+ call TryEnemyFlee
jp c, WildFled_EnemyFled_LinkBattleCanceled
- call Function3c6de
- call Function3d2e0
+ call EnemyTurn_EndOpponentProtectEndureDestinyBond
+ call CheckMobileBattleError
ret c
- ld a, [wd232]
+ ld a, [wForcedSwitch]
and a
ret nz
call HasPlayerFainted
@@ -1020,7 +1016,7 @@ Function3c664: ; 3c664
call HasEnemyFainted
jp z, HandleEnemyMonFaint
-.asm_3c6be
+.switched_or_used_item
call SetEnemyTurn
call ResidualDamage
jp z, HandleEnemyMonFaint
@@ -1030,21 +1026,21 @@ Function3c664: ; 3c664
ret
; 3c6cf
-Function3c6cf: ; 3c6cf
+PlayerTurn_EndOpponentProtectEndureDestinyBond: ; 3c6cf
call SetPlayerTurn
- call Function3c6fe
+ call EndUserDestinyBond
callab DoPlayerTurn
- jp Function3c6ed
+ jp EndOpponentProtectEndureDestinyBond
; 3c6de
-Function3c6de: ; 3c6de
+EnemyTurn_EndOpponentProtectEndureDestinyBond: ; 3c6de
call SetEnemyTurn
- call Function3c6fe
+ call EndUserDestinyBond
callab DoEnemyTurn
- jp Function3c6ed
+ jp EndOpponentProtectEndureDestinyBond
; 3c6ed
-Function3c6ed: ; 3c6ed
+EndOpponentProtectEndureDestinyBond: ; 3c6ed
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVarAddr
res SUBSTATUS_PROTECT, [hl]
@@ -1055,7 +1051,7 @@ Function3c6ed: ; 3c6ed
ret
; 3c6fe
-Function3c6fe: ; 3c6fe
+EndUserDestinyBond: ; 3c6fe
ld a, BATTLE_VARS_SUBSTATUS5
call GetBattleVarAddr
res SUBSTATUS_DESTINY_BOND, [hl]
@@ -1106,14 +1102,14 @@ ResidualDamage: ; 3c716
xor a
ld [wcfca], a
- call Function3ee0f
+ call Call_PlayBattleAnim_OnlyIfVisible
call GetEighthMaxHP
ld de, PlayerToxicCount
ld a, [hBattleTurn]
and a
- jr z, .asm_3c74d
+ jr z, .check_toxic
ld de, EnemyToxicCount
-.asm_3c74d
+.check_toxic
ld a, BATTLE_VARS_SUBSTATUS5
call GetBattleVar
@@ -1132,7 +1128,7 @@ ResidualDamage: ; 3c716
ld c, l
.did_toxic
- call Function3cc3f
+ call SubtractHPFromUser
.did_psn_brn
call HasUserFainted
@@ -1141,7 +1137,7 @@ ResidualDamage: ; 3c716
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
bit SUBSTATUS_LEECH_SEED, [hl]
- jr z, .asm_3c7a1
+ jr z, .not_seeded
call SwitchTurnCore
xor a
@@ -1150,17 +1146,17 @@ ResidualDamage: ; 3c716
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- call z, Function3ee0f
+ call z, Call_PlayBattleAnim_OnlyIfVisible
call SwitchTurnCore
call GetEighthMaxHP
- call Function3cc3f
+ call SubtractHPFromUser
ld a, $1
ld [hBGMapMode], a
- call Function3ccef
+ call RestoreHP
ld hl, LeechSeedSapsText
call StdBattleTextBox
-.asm_3c7a1
+.not_seeded
call HasUserFainted
jr z, .fainted
@@ -1168,16 +1164,16 @@ ResidualDamage: ; 3c716
ld a, BATTLE_VARS_SUBSTATUS1
call GetBattleVarAddr
bit SUBSTATUS_NIGHTMARE, [hl]
- jr z, .asm_3c7c5
+ jr z, .not_nightmare
xor a
ld [wcfca], a
ld de, ANIM_IN_NIGHTMARE
- call Function3ee0f
+ call Call_PlayBattleAnim_OnlyIfVisible
call GetQuarterMaxHP
- call Function3cc3f
+ call SubtractHPFromUser
ld hl, HasANightmareText
call StdBattleTextBox
-.asm_3c7c5
+.not_nightmare
call HasUserFainted
jr z, .fainted
@@ -1185,25 +1181,25 @@ ResidualDamage: ; 3c716
ld a, BATTLE_VARS_SUBSTATUS1
call GetBattleVarAddr
bit SUBSTATUS_CURSE, [hl]
- jr z, .asm_3c7e9
+ jr z, .not_cursed
xor a
ld [wcfca], a
ld de, ANIM_IN_NIGHTMARE
- call Function3ee0f
+ call Call_PlayBattleAnim_OnlyIfVisible
call GetQuarterMaxHP
- call Function3cc3f
+ call SubtractHPFromUser
ld hl, HurtByCurseText
call StdBattleTextBox
-.asm_3c7e9
+.not_cursed
ld hl, BattleMonHP
ld a, [hBattleTurn]
and a
- jr z, .asm_3c7f4
+ jr z, .check_fainted
ld hl, EnemyMonHP
-.asm_3c7f4
+.check_fainted
ld a, [hli]
or [hl]
ret nz
@@ -1216,27 +1212,28 @@ ResidualDamage: ; 3c716
ret
; 3c801
-Function3c801: ; 3c801
- ld a, [$ffcb]
+HandlePerishSong: ; 3c801
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3c813
+ jr z, .EnemyFirst
call SetPlayerTurn
- call .asm_3c81c
+ call .do_it
call SetEnemyTurn
- jp .asm_3c81c
+ jp .do_it
-.asm_3c813
+.EnemyFirst
call SetEnemyTurn
- call .asm_3c81c
+ call .do_it
call SetPlayerTurn
-.asm_3c81c
+
+.do_it
ld hl, PlayerPerishCount
ld a, [hBattleTurn]
and a
- jr z, .asm_3c827
+ jr z, .got_count
ld hl, EnemyPerishCount
-.asm_3c827
+.got_count
ld a, BATTLE_VARS_SUBSTATUS1
call GetBattleVar
bit SUBSTATUS_PERISH, a
@@ -1284,46 +1281,51 @@ Function3c801: ; 3c801
ret
; 3c874
-Function3c874: ; 3c874
- ld a, [$ffcb]
+HandleWrap: ; 3c874
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3c886
+ jr z, .EnemyFirst
call SetPlayerTurn
- call .asm_3c88f
+ call .do_it
call SetEnemyTurn
- jp .asm_3c88f
+ jp .do_it
-.asm_3c886
+.EnemyFirst
call SetEnemyTurn
- call .asm_3c88f
+ call .do_it
call SetPlayerTurn
-.asm_3c88f
- ld hl, wc730
- ld de, wc72e
+
+.do_it
+ ld hl, wPlayerWrapCount
+ ld de, wPlayerTrappingMove
ld a, [hBattleTurn]
and a
- jr z, .asm_3c8a0
- ld hl, wc731
- ld de, wc72f
+ jr z, .got_addrs
+ ld hl, wEnemyWrapCount
+ ld de, wEnemyTrappingMove
-.asm_3c8a0
+.got_addrs
ld a, [hl]
and a
ret z
+
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
ret nz
+
ld a, [de]
ld [wd265], a
ld [FXAnimIDLo], a
call GetMoveName
dec [hl]
- jr z, .asm_3c8de
+ jr z, .release_from_bounds
+
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- jr nz, .asm_3c8d3
+ jr nz, .skip_anim
+
call SwitchTurnCore
xor a
ld [wcfca], a
@@ -1331,13 +1333,13 @@ Function3c874: ; 3c874
predef PlayBattleAnim
call SwitchTurnCore
-.asm_3c8d3
+.skip_anim
call GetSixteenthMaxHP
- call Function3cc3f
+ call SubtractHPFromUser
ld hl, BattleText_UsersHurtByStringBuffer1
jr .asm_3c8e1
-.asm_3c8de
+.release_from_bounds
ld hl, BattleText_UserWasReleasedFromStringBuffer1
.asm_3c8e1
@@ -1351,20 +1353,21 @@ SwitchTurnCore: ; 3c8e4
ret
; 3c8eb
-Function3c8eb: ; 3c8eb
- ld a, [$ffcb]
+HandleLeftovers: ; 3c8eb
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3c8fd
+ jr z, .DoEnemyFirst
call SetPlayerTurn
- call .asm_3c906
+ call .do_it
call SetEnemyTurn
- jp .asm_3c906
+ jp .do_it
-.asm_3c8fd
+.DoEnemyFirst
call SetEnemyTurn
- call .asm_3c906
+ call .do_it
call SetPlayerTurn
-.asm_3c906
+.do_it
+
callab GetUserItem
ld a, [hl]
ld [wd265], a
@@ -1372,50 +1375,53 @@ Function3c8eb: ; 3c8eb
ld a, b
cp HELD_LEFTOVERS
ret nz
+
ld hl, BattleMonHP
ld a, [hBattleTurn]
and a
- jr z, .asm_3c922
+ jr z, .got_hp
ld hl, EnemyMonHP
-.asm_3c922
+.got_hp
+; Don't restore if we're already at max HP
ld a, [hli]
ld b, a
ld a, [hli]
ld c, a
ld a, [hli]
cp b
- jr nz, .asm_3c92d
+ jr nz, .restore
ld a, [hl]
cp c
ret z
-.asm_3c92d
+.restore
call GetSixteenthMaxHP
call SwitchTurnCore
- call Function3ccef
+ call RestoreHP
ld hl, BattleText_0x80880
jp StdBattleTextBox
; 3c93c
-Function3c93c: ; 3c93c
- ld a, [$ffcb]
+HandleMysteryberry: ; 3c93c
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3c94e
+ jr z, .DoEnemyFirst
call SetPlayerTurn
- call .asm_3c957
+ call .do_it
call SetEnemyTurn
- jp .asm_3c957
+ jp .do_it
-.asm_3c94e
+.DoEnemyFirst
call SetEnemyTurn
- call .asm_3c957
+ call .do_it
call SetPlayerTurn
-.asm_3c957
+
+.do_it
callab GetUserItem
ld a, b
cp HELD_RESTORE_PP
- jr nz, .asm_3c9ae
+ jr nz, .quit
ld hl, PartyMon1PP
ld a, [CurBattleMon]
call GetPartyLocation
@@ -1426,12 +1432,12 @@ Function3c93c: ; 3c93c
call GetPartyLocation
ld a, [hBattleTurn]
and a
- jr z, .asm_3c99b
+ jr z, .wild
ld de, wc739
ld hl, wc735
ld a, [wBattleMode]
dec a
- jr z, .asm_3c99b
+ jr z, .wild
ld hl, OTPartyMon1PP
ld a, [CurOTMon]
call GetPartyLocation
@@ -1441,33 +1447,33 @@ Function3c93c: ; 3c93c
ld a, [CurOTMon]
call GetPartyLocation
-.asm_3c99b
+.wild
ld c, $0
-.asm_3c99d
+.loop
ld a, [hl]
and a
- jr z, .asm_3c9ae
+ jr z, .quit
ld a, [de]
and $3f
- jr z, .asm_3c9af
+ jr z, .restore
inc hl
inc de
inc c
ld a, c
cp NUM_MOVES
- jr nz, .asm_3c99d
+ jr nz, .loop
-.asm_3c9ae
+.quit
ret
-.asm_3c9af
+.restore
; lousy hack
ld a, [hl]
cp SKETCH
ld b, 1
- jr z, .asm_3c9b8
+ jr z, .sketch
ld b, 5
-.asm_3c9b8
+.sketch
ld a, [de]
add b
ld [de], a
@@ -1479,10 +1485,10 @@ Function3c93c: ; 3c93c
ld hl, BattleMonPP
ld a, [hBattleTurn]
and a
- jr z, .asm_3c9d2
+ jr z, .player_pp
ld de, EnemyMonMoves - 1
ld hl, EnemyMonPP
-.asm_3c9d2
+.player_pp
inc de
pop bc
ld b, 0
@@ -1496,67 +1502,68 @@ Function3c93c: ; 3c93c
ld a, [wd265]
cp [hl]
- jr nz, .asm_3c9f5
+ jr nz, .skip_checks
ld a, [hBattleTurn]
and a
ld a, [PlayerSubStatus5]
- jr z, .asm_3c9ee
+ jr z, .check_transform
ld a, [EnemySubStatus5]
-.asm_3c9ee
+.check_transform
bit SUBSTATUS_TRANSFORMED, a
- jr nz, .asm_3c9f5
+ jr nz, .skip_checks
ld a, [de]
add b
ld [de], a
-.asm_3c9f5
+.skip_checks
callab GetUserItem
ld a, [hl]
ld [wd265], a
xor a
ld [hl], a
- call Function3df12
+ call GetPartymonItem
ld a, [hBattleTurn]
and a
- jr z, .asm_3ca12
+ jr z, .consume_item
ld a, [wBattleMode]
dec a
- jr z, .asm_3ca14
- call Function3df1f
+ jr z, .skip_consumption
+ call GetOTPartymonItem
-.asm_3ca12
+.consume_item
xor a
ld [hl], a
-.asm_3ca14
+.skip_consumption
call GetItemName
call SwitchTurnCore
- call Function3ddc8
+ call ItemRecoveryAnim
call SwitchTurnCore
ld hl, BattleText_UserRecoveredPPUsing
jp StdBattleTextBox
; 3ca26
-Function3ca26: ; 3ca26
- ld a, [$ffcb]
+HandleFutureSight: ; 3ca26
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3ca38
+ jr z, .enemy_first
call SetPlayerTurn
- call .asm_3ca41
+ call .do_it
call SetEnemyTurn
- jp .asm_3ca41
+ jp .do_it
-.asm_3ca38
+.enemy_first
call SetEnemyTurn
- call .asm_3ca41
+ call .do_it
call SetPlayerTurn
-.asm_3ca41
- ld hl, wc71d
+
+.do_it
+ ld hl, wPlayerFutureSightCount
ld a, [hBattleTurn]
and a
- jr z, .asm_3ca4c
- ld hl, wc71e
+ jr z, .okay
+ ld hl, wEnemyFutureSightCount
-.asm_3ca4c
+.okay
ld a, [hl]
and a
ret z
@@ -1595,21 +1602,23 @@ Function3ca26: ; 3ca26
; 3ca8f
HanleDefrost: ; 3ca8f
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3ca9a
- call .asm_3ca9d
- jr .asm_3cac9
+ jr z, .enemy_first
+ call .do_player_turn
+ jr .do_enemy_turn
-.asm_3ca9a
- call .asm_3cac9
-.asm_3ca9d
+.enemy_first
+ call .do_enemy_turn
+.do_player_turn
ld a, [BattleMonStatus]
bit FRZ, a
ret z
- ld a, [wc73f]
+
+ ld a, [wPlayerJustGotFrozen]
and a
ret nz
+
call BattleRandom
cp 10 percent
ret nc
@@ -1624,11 +1633,11 @@ HanleDefrost: ; 3ca8f
ld hl, DefrostedOpponentText
jp StdBattleTextBox
-.asm_3cac9
+.do_enemy_turn
ld a, [EnemyMonStatus]
bit FRZ, a
ret z
- ld a, [wc740]
+ ld a, [wEnemyJustGotFrozen]
and a
ret nz
call BattleRandom
@@ -1653,7 +1662,7 @@ HanleDefrost: ; 3ca8f
; 3cafb
HandleSafeguard: ; 3cafb
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $1
jr z, .asm_3cb06
call .asm_3cb09
@@ -1691,7 +1700,7 @@ HandleSafeguard: ; 3cafb
HandleScreens: ; 3cb36
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp 1
jr z, .Both
call .CheckPlayer
@@ -1776,7 +1785,7 @@ HandleWeather: ; 3cb9e
cp WEATHER_SANDSTORM
ret nz
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp 1
jr z, .enemy_first
@@ -1826,7 +1835,7 @@ HandleWeather: ; 3cb9e
call Call_PlayBattleAnim
call SwitchTurnCore
call GetEighthMaxHP
- call Function3cc3f
+ call SubtractHPFromUser
ld hl, SandstormHitsText
jp StdBattleTextBox
@@ -1862,19 +1871,19 @@ endr
dw BattleText_TheSandstormSubsided
; 3cc39
-Function3cc39: ; 3cc39
- call Function3cc45
- jp Function3cd3c
+SubtractHPFromTarget: ; 3cc39
+ call SubtractHP
+ jp UpdateHPBar
; 3cc3f
-Function3cc3f: ; 3cc3f
+SubtractHPFromUser: ; 3cc3f
; Subtract HP from Pkmn
- call Function3cc45
- jp Function3cd36
+ call SubtractHP
+ jp UpdateHPBarBattleHuds
; 3cc45
-Function3cc45: ; 3cc45
+SubtractHP: ; 3cc45
ld hl, BattleMonHP
ld a, [hBattleTurn]
and a
@@ -2015,7 +2024,7 @@ Function3ccc2: ; 3ccc2
ret
; 3ccde
-Function3ccde: ; 3ccde
+CheckUserHasEnoughHP: ; 3ccde
ld hl, BattleMonHP + 1
ld a, [hBattleTurn]
and a
@@ -2031,7 +2040,7 @@ Function3ccde: ; 3ccde
; 3ccef
-Function3ccef: ; 3ccef
+RestoreHP ; 3ccef
ld hl, EnemyMonMaxHP
ld a, [hBattleTurn]
and a
@@ -2039,20 +2048,20 @@ Function3ccef: ; 3ccef
ld hl, BattleMonMaxHP
.ok
ld a, [hli]
- ld [Buffer1 + 1], a
+ ld [Buffer2], a
ld a, [hld]
- ld [Buffer1 + 0], a
+ ld [Buffer1], a
dec hl
ld a, [hl]
- ld [Buffer1 + 2], a
+ ld [Buffer3], a
add c
ld [hld], a
- ld [Buffer1 + 4], a
+ ld [Buffer5], a
ld a, [hl]
- ld [Buffer1 + 3], a
+ ld [Buffer4], a
adc b
ld [hli], a
- ld [Buffer1 + 5], a
+ ld [Buffer6], a
ld a, [Buffer1]
ld c, a
@@ -2065,23 +2074,23 @@ Function3ccef: ; 3ccef
jr c, .asm_3cd2d
ld a, b
ld [hli], a
- ld [Buffer1 + 5], a
+ ld [Buffer6], a
ld a, c
ld [hl], a
- ld [Buffer1 + 4], a
+ ld [Buffer5], a
.asm_3cd2d
call SwitchTurnCore
- call Function3cd36
+ call UpdateHPBarBattleHuds
jp SwitchTurnCore
; 3cd36
-Function3cd36: ; 3cd36
- call Function3cd3c
+UpdateHPBarBattleHuds: ; 3cd36
+ call UpdateHPBar
jp UpdateBattleHuds
; 3cd3c
-Function3cd3c: ; 3cd3c
+UpdateHPBar: ; 3cd3c
hlcoord 10, 9
ld a, [hBattleTurn]
and a
@@ -2092,7 +2101,7 @@ Function3cd3c: ; 3cd3c
.ok
push bc
ld [wd10a], a
- predef Functionc6e0
+ predef AnimateHPBar
pop bc
ret
; 3cd55
@@ -2136,18 +2145,18 @@ HandleEnemyMonFaint: ; 3cd55
ld hl, BattleMonHP
ld a, [hli]
or [hl]
- jr nz, .asm_3cdba
+ jr nz, .player_mon_not_fainted
- call Function3d1f8
- jr nc, .asm_3cda4
+ call AskUseNextPokemon
+ jr nc, .dont_flee
ld a, 1
ld [BattleEnded], a
ret
-.asm_3cda4
- call Function3d227
- call Function3d2e0
+.dont_flee
+ call ForcePlayerMonChoice
+ call CheckMobileBattleError
jp c, WildFled_EnemyFled_LinkBattleCanceled
ld a, $1
@@ -2156,7 +2165,7 @@ HandleEnemyMonFaint: ; 3cd55
jp z, WildFled_EnemyFled_LinkBattleCanceled
jr Function3cdca
-.asm_3cdba
+.player_mon_not_fainted
ld a, $1
ld [wd0ec], a
call Function3cf4a
@@ -2167,19 +2176,19 @@ HandleEnemyMonFaint: ; 3cd55
; 3cdca
Function3cdca: ; 3cdca
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3cde6
+ jr z, .player_1
call ClearSprites
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
- call Function3d2b3
+ call PlayerPartyMonEntrance
ld a, $1
call EnemyPartyMonEntrance
- jr .asm_3cdfc
+ jr .done
-.asm_3cde6
+.player_1
ld a, [CurPartyMon]
push af
ld a, $1
@@ -2188,9 +2197,9 @@ Function3cdca: ; 3cdca
call LoadTileMapToTempTileMap
pop af
ld [CurPartyMon], a
- call Function3d2b3
+ call PlayerPartyMonEntrance
-.asm_3cdfc
+.done
xor a
ld [wd0ec], a
ret
@@ -2200,7 +2209,7 @@ Function3ce01: ; 3ce01
call UpdateBattleMonInParty
ld a, [wBattleMode]
dec a
- jr z, .asm_3ce16
+ jr z, .wild
ld a, [CurOTMon]
ld hl, OTPartyMon1HP
call GetPartyLocation
@@ -2208,7 +2217,7 @@ Function3ce01: ; 3ce01
ld [hli], a
ld [hl], a
-.asm_3ce16
+.wild
ld hl, PlayerSubStatus3
res SUBSTATUS_IN_LOOP, [hl]
xor a
@@ -2219,25 +2228,25 @@ Function3ce01: ; 3ce01
call BreakAttraction
ld a, [wBattleMode]
dec a
- jr z, .asm_3ce2f
- jr .asm_3ce37
+ jr z, .wild2
+ jr .trainer
-.asm_3ce2f
+.wild2
call StopDangerSound
ld a, $1
ld [wc6fd], a
-.asm_3ce37
+.trainer
ld hl, BattleMonHP
ld a, [hli]
or [hl]
- jr nz, .asm_3ce47
+ jr nz, .player_mon_did_not_faint
ld a, [wc6f7]
and a
- jr nz, .asm_3ce47
- call Function3d1aa
+ jr nz, .player_mon_did_not_faint
+ call PlayerMonFaintHappinessMod
-.asm_3ce47
+.player_mon_did_not_faint
call CheckPlayerPartyForFitPkmn
ld a, d
and a
@@ -2250,93 +2259,94 @@ Function3ce01: ; 3ce01
ld a, [wBattleResult]
and $c0
ld [wBattleResult], a
- call ShareExperiencePoints
- jr z, .asm_3ce72
+ call DoOthersShareExperience
+ jr z, .skip_exp
ld hl, EnemyMonBaseStats
ld b, $7
-.asm_3ce6c
+.loop
srl [hl]
inc hl
dec b
- jr nz, .asm_3ce6c
+ jr nz, .loop
-.asm_3ce72
+.skip_exp
ld hl, EnemyMonBaseStats
ld de, wc720
- ld bc, $0007
+ ld bc, EnemyMonEnd - EnemyMonBaseStats
call CopyBytes
xor a
ld [wc71f], a
call GiveExperiencePoints
- call ShareExperiencePoints
+ call DoOthersShareExperience
ret z
- ld a, [wc664]
+
+ ld a, [wBattleParticipantsNotFainted]
push af
ld a, d
- ld [wc664], a
+ ld [wBattleParticipantsNotFainted], a
ld hl, wc720
ld de, EnemyMonBaseStats
- ld bc, $0007
+ ld bc, EnemyMonEnd - EnemyMonBaseStats
call CopyBytes
ld a, $1
ld [wc71f], a
call GiveExperiencePoints
pop af
- ld [wc664], a
+ ld [wBattleParticipantsNotFainted], a
ret
; 3ceaa
-ShareExperiencePoints: ; 3ceaa
+DoOthersShareExperience: ; 3ceaa
ld a, [PartyCount]
ld b, a
ld hl, PartyMon1
ld c, 1
ld d, 0
-.asm_3ceb5
+.loop
push hl
push bc
- ld bc, PartyMon1HP - PartyMon1
+ ld bc, MON_HP
add hl, bc
ld a, [hli]
or [hl]
pop bc
pop hl
- jr z, .asm_3ced1
+ jr z, .next
push hl
push bc
- ld bc, PartyMon1Item - PartyMon1
+ ld bc, MON_ITEM
add hl, bc
pop bc
ld a, [hl]
pop hl
cp EXP_SHARE
- jr nz, .asm_3ced1
+ jr nz, .next
ld a, d
or c
ld d, a
-.asm_3ced1
+.next
sla c
push de
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
add hl, de
pop de
dec b
- jr nz, .asm_3ceb5
+ jr nz, .loop
ld a, d
ld e, 0
ld b, PARTY_LENGTH
-.asm_3cee1
+.loop2
srl a
- jr nc, .asm_3cee6
+ jr nc, .okay
inc e
-.asm_3cee6
+.okay
dec b
- jr nz, .asm_3cee1
+ jr nz, .loop2
ld a, e
and a
ret
@@ -2384,7 +2394,7 @@ CheckEnemyTrainerDefeated: ; 3cf35
ld b, a
xor a
ld hl, OTPartyMon1HP
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
.loop
or [hl]
@@ -2407,16 +2417,16 @@ Function3cf4a: ; 3cf4a
callba Function2c012
ld a, [wLinkMode]
and a
- jr z, .asm_3cf6d
+ jr z, .not_linked
call Function3e8e4
ld a, [wBattleAction]
- cp $f
+ cp BATTLEACTION_FORFEIT
ret z
call Call_LoadTempTileMapToTileMap
-.asm_3cf6d
+.not_linked
ld hl, BattleMonHP
ld a, [hli]
or [hl]
@@ -2429,7 +2439,7 @@ Function3cf4a: ; 3cf4a
EnemyPartyMonEntrance: ; 3cf78
push af
xor a
- ld [wc718], a
+ ld [wEnemySwitchMonIndex], a
call NewEnemyMonStatus
call ResetEnemyStatLevels
call BreakAttraction
@@ -2437,14 +2447,14 @@ EnemyPartyMonEntrance: ; 3cf78
and a
jr nz, .asm_3cf8f
- call Function3d4e1
+ call EnemySwitch
jr .asm_3cf92
.asm_3cf8f
- call Function3d517
+ call EnemySwitch_SetMode
.asm_3cf92
- call Function3d57a
+ call ResetBattleParticipants
call SetEnemyTurn
call SpikesDamage
xor a
@@ -2469,47 +2479,47 @@ WinTrainerBattle: ; 3cfa4
call StdBattleTextBox
call IsMobileBattle
- jr z, .asm_3cff5
+ jr z, .mobile
ld a, [wLinkMode]
and a
ret nz
ld a, [InBattleTowerBattle]
bit 0, a
- jr nz, .asm_3d006
+ jr nz, .battle_tower
call Function3ebd8
ld c, $28
call DelayFrames
ld a, [BattleType]
cp BATTLETYPE_CANLOSE
- jr nz, .asm_3cfe8
+ jr nz, .skip_heal
predef HealParty
-.asm_3cfe8
+.skip_heal
ld a, [wc2cc]
bit 0, a
- jr nz, .asm_3cff2
- call Function3718
+ jr nz, .skip_win_loss_text
+ call PrintWinLossText
-.asm_3cff2
+.skip_win_loss_text
jp Function3d02b
-.asm_3cff5
+.mobile
call Function3ebd8
- ld c, $28
+ ld c, 40
call DelayFrames
ld c, $4
callba Function4ea0a
ret
-.asm_3d006
+.battle_tower
call Function3ebd8
- ld c, $28
+ ld c, 40
call DelayFrames
call EmptyBattleTextBox
ld c, $3
- callba StoreText
- call Functiona80
+ callba BattleTowerText
+ call WaitPressAorB_BlinkCursor
ld hl, wPayDayMoney
ld a, [hli]
or [hl]
@@ -2517,7 +2527,7 @@ WinTrainerBattle: ; 3cfa4
or [hl]
ret nz
call ClearTileMap
- call WhiteBGMap
+ call ClearBGPalettes
ret
; 3d02b
@@ -2675,30 +2685,30 @@ PlayVictoryMusic: ; 3d0ea
ld de, MUSIC_WILD_VICTORY
ld a, [wBattleMode]
dec a
- jr nz, .asm_3d113
+ jr nz, .trainer_victory
push de
- call ShareExperiencePoints
+ call DoOthersShareExperience
pop de
- jr nz, .asm_3d11e
+ jr nz, .play_music
ld hl, wPayDayMoney
ld a, [hli]
or [hl]
- jr nz, .asm_3d11e
- ld a, [wc664]
+ jr nz, .play_music
+ ld a, [wBattleParticipantsNotFainted]
and a
- jr z, .asm_3d121
- jr .asm_3d11e
+ jr z, .lost
+ jr .play_music
-.asm_3d113
+.trainer_victory
ld de, MUSIC_GYM_VICTORY
call IsJohtoGymLeader
- jr c, .asm_3d11e
+ jr c, .play_music
ld de, MUSIC_TRAINER_VICTORY
-.asm_3d11e
+.play_music
call PlayMusic
-.asm_3d121
+.lost
pop de
ret
; 3d123
@@ -2767,7 +2777,7 @@ HandlePlayerMonFaint: ; 3d14e
call z, FaintEnemyPokemon
ld a, $1
ld [wc6f7], a
- call Function3d1aa
+ call PlayerMonFaintHappinessMod
call CheckPlayerPartyForFitPkmn
ld a, d
and a
@@ -2789,15 +2799,15 @@ HandlePlayerMonFaint: ; 3d14e
jp z, WinTrainerBattle
.notfainted
- call Function3d1f8
- jr nc, .asm_3d190
+ call AskUseNextPokemon
+ jr nc, .switch
ld a, $1
ld [BattleEnded], a
ret
-.asm_3d190
- call Function3d227
- call Function3d2e0
+.switch
+ call ForcePlayerMonChoice
+ call CheckMobileBattleError
jp c, WildFled_EnemyFled_LinkBattleCanceled
ld a, c
and a
@@ -2809,10 +2819,10 @@ HandlePlayerMonFaint: ; 3d14e
jp Function3cdca
; 3d1aa
-Function3d1aa: ; 3d1aa
+PlayerMonFaintHappinessMod: ; 3d1aa
ld a, [CurBattleMon]
ld c, a
- ld hl, wc664
+ ld hl, wBattleParticipantsNotFainted
ld b, $0
predef FlagPredef
ld hl, EnemySubStatus3
@@ -2831,10 +2841,10 @@ Function3d1aa: ; 3d1aa
ld b, a
ld a, [EnemyMonLevel]
cp b
- jr c, .asm_3d1dc
+ jr c, .got_param
ld c, HAPPINESS_BEATENBYSTRONGFOE
-.asm_3d1dc
+.got_param
ld a, [CurBattleMon]
ld [CurPartyMon], a
callab ChangeHappiness
@@ -2845,61 +2855,64 @@ Function3d1aa: ; 3d1aa
ld a, [wc6f7]
and a
ret z
- ret
+ ret ; ??????????
; 3d1f8
-Function3d1f8: ; 3d1f8
+AskUseNextPokemon: ; 3d1f8
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
+; We don't need to be here if we're in a Trainer battle,
+; as that decision is made for us.
ld a, [wBattleMode]
and a
dec a
ret nz
+
ld hl, BattleText_UseNextMon
call StdBattleTextBox
-.asm_3d20a
+.loop
lb bc, 1, 7
call PlaceYesNoBox
- ld a, [wcfa9]
- jr c, .asm_3d217
+ ld a, [MenuSelection2]
+ jr c, .pressed_b
and a
ret
-.asm_3d217
- ld a, [wcfa9]
- cp $1
- jr z, .asm_3d20a
+.pressed_b
+ ld a, [MenuSelection2]
+ cp $1 ; YES
+ jr z, .loop
ld hl, PartyMon1Speed
ld de, EnemyMonSpeed
jp TryToRunAwayFromBattle
; 3d227
-Function3d227: ; 3d227
+ForcePlayerMonChoice: ; 3d227
call EmptyBattleTextBox
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function3d2f7
call ForcePickPartyMonInBattle
ld a, [wLinkMode]
and a
- jr z, .asm_3d241
+ jr z, .skip_link
ld a, $1
ld [wd0ec], a
call Function3e8e4
-.asm_3d241
+.skip_link
xor a
ld [wd0ec], a
- call Function3d2e0
- jr c, .asm_3d251
+ call CheckMobileBattleError
+ jr c, .enemy_fainted_mobile_error
ld hl, EnemyMonHP
ld a, [hli]
or [hl]
- jr nz, .asm_3d26c
+ jr nz, .send_out_pokemon
-.asm_3d251
+.enemy_fainted_mobile_error
call ClearSprites
- call WhiteBGMap
- call Function3eda6
+ call ClearBGPalettes
+ call _LoadHPBar
call ExitMenu
call LoadTileMapToTempTileMap
call WaitBGMap
@@ -2909,25 +2922,25 @@ Function3d227: ; 3d227
ld c, a
ret
-.asm_3d26c
+.send_out_pokemon
call ClearSprites
ld a, [CurBattleMon]
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
+ call AddBattleParticipant
+ call InitBattleMon
call ResetPlayerStatLevels
call ClearPalettes
call DelayFrame
- call Function3eda6
+ call _LoadHPBar
call WriteBackup
call ClearSGB
call SetPalettes
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
- call Function3db5f
+ call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@@ -2938,18 +2951,18 @@ Function3d227: ; 3d227
ret
; 3d2b3
-Function3d2b3: ; 3d2b3
+PlayerPartyMonEntrance: ; 3d2b3
ld a, [CurBattleMon]
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
+ call AddBattleParticipant
+ call InitBattleMon
call ResetPlayerStatLevels
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
- call Function3db5f
+ call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@@ -2957,20 +2970,20 @@ Function3d2b3: ; 3d2b3
; 3d2e0
-Function3d2e0: ; 3d2e0
+CheckMobileBattleError: ; 3d2e0
ld a, [wLinkMode]
cp LINK_MOBILE
- jr nz, .asm_3d2ef ; It's not a mobile battle
+ jr nz, .not_mobile ; It's not a mobile battle
ld a, [wcd2b]
and a
- jr z, .asm_3d2ef
+ jr z, .not_mobile
; We have a mobile battle and something else happened
scf
ret
-.asm_3d2ef
+.not_mobile
xor a
ret
; 3d2f1
@@ -2982,8 +2995,8 @@ IsMobileBattle: ; 3d2f1
; 3d2f7
Function3d2f7: ; 3d2f7
- call WhiteBGMap
-Function3d2fa: ; 3d2fa
+ call ClearBGPalettes
+Function3d2fa: ; switch to fullscreen menu?
callba Function5004f
callba Function50405
callba Function8e85
@@ -3046,7 +3059,7 @@ ForcePickPartyMonInBattle: ; 3d362
.pick
call PickPartyMonInBattle
ret nc
- call Function3d2e0
+ call CheckMobileBattleError
ret c
ld de, SFX_WRONG
@@ -3071,7 +3084,7 @@ ForcePickSwitchMonInBattle: ; 3d380
.pick
call ForcePickPartyMonInBattle
- call Function3d2e0
+ call CheckMobileBattleError
ret c
call SwitchMonAlreadyOut
jr c, .pick
@@ -3087,11 +3100,11 @@ LostBattle: ; 3d38e
ld a, [InBattleTowerBattle]
bit 0, a
- jr nz, .asm_3d3bd
+ jr nz, .battle_tower
ld a, [BattleType]
cp BATTLETYPE_CANLOSE
- jr nz, .asm_3d3e3
+ jr nz, .not_canlose
; Remove the enemy from the screen.
hlcoord 0, 0
@@ -3104,12 +3117,12 @@ LostBattle: ; 3d38e
ld a, [wc2cc]
bit 0, a
- jr nz, .asm_3d3bc
- call Function3718
-.asm_3d3bc
+ jr nz, .skip_win_loss_text
+ call PrintWinLossText
+.skip_win_loss_text
ret
-.asm_3d3bd
+.battle_tower
; Remove the enemy from the screen.
hlcoord 0, 0
lb bc, 8, 21
@@ -3121,13 +3134,13 @@ LostBattle: ; 3d38e
call EmptyBattleTextBox
ld c, 2
- callba StoreText
- call Functiona80
+ callba BattleTowerText
+ call WaitPressAorB_BlinkCursor
call ClearTileMap
- call WhiteBGMap
+ call ClearBGPalettes
ret
-.asm_3d3e3
+.not_canlose
ld a, [wLinkMode]
and a
jr nz, .LostLinkBattle
@@ -3141,7 +3154,7 @@ LostBattle: ; 3d38e
.LostLinkBattle
call UpdateEnemyMonInParty
call CheckEnemyTrainerDefeated
- jr nz, .asm_3d40a
+ jr nz, .not_tied
ld hl, TiedAgainstText
ld a, [wBattleResult]
and $c0
@@ -3149,10 +3162,10 @@ LostBattle: ; 3d38e
ld [wBattleResult], a
jr .text
-.asm_3d40a
+.not_tied
ld hl, LostAgainstText
call IsMobileBattle
- jr z, .asm_3d417
+ jr z, .mobile
.text
call StdBattleTextBox
@@ -3161,7 +3174,7 @@ LostBattle: ; 3d38e
scf
ret
-.asm_3d417
+.mobile
; Remove the enemy from the screen.
hlcoord 0, 0
lb bc, 8, 21
@@ -3293,93 +3306,96 @@ Function3d4ae: ; 3d4ae
; 3d4c3
-Function3d4c3: ; 3d4c3
+ForceEnemySwitch: ; 3d4c3
call ResetEnemyBattleVars
- ld a, [wc718]
+ ld a, [wEnemySwitchMonIndex]
dec a
ld b, a
call LoadEnemyPkmnToSwitchTo
- call Function3d7a0
+ call ClearEnemyMonBox
call NewEnemyMonStatus
call ResetEnemyStatLevels
call Function_SetEnemyPkmnAndSendOutAnimation
call BreakAttraction
- call Function3d57a
+ call ResetBattleParticipants
ret
; 3d4e1
-Function3d4e1: ; 3d4e1
- call Function3d714
- jr nc, Function3d517
+EnemySwitch: ; 3d4e1
+ call CheckWhetherToAskSwitch
+ jr nc, EnemySwitch_SetMode
+ ; Shift Mode
call ResetEnemyBattleVars
- call Function3d533
- jr c, .asm_3d4f1
+ call CheckWhetherSwitchmonIsPredetermined
+ jr c, .skip
call FindPkmnInOTPartyToSwitchIntoBattle
-.asm_3d4f1
+.skip
+ ; 'b' contains the PartyNr of the Pkmn the AI will switch to
call LoadEnemyPkmnToSwitchTo
- call Function3d74b
+ call OfferSwitch
push af
- call Function3d7a0
+ call ClearEnemyMonBox
call Function_BattleTextEnemySentOut
call Function_SetEnemyPkmnAndSendOutAnimation
pop af
ret c
+ ; If we're here, then we're switching too
xor a
- ld [wc664], a
+ ld [wBattleParticipantsNotFainted], a
ld [wc6fc], a
ld [wd0ec], a
inc a
ld [wEnemyIsSwitching], a
call LoadTileMapToTempTileMap
- jp Function3e3ad
+ jp PlayerSwitch
; 3d517
-Function3d517: ; 3d517
+EnemySwitch_SetMode: ; 3d517
call ResetEnemyBattleVars
- call Function3d533
- jr c, .asm_3d522
+ call CheckWhetherSwitchmonIsPredetermined
+ jr c, .skip
call FindPkmnInOTPartyToSwitchIntoBattle
-.asm_3d522
+.skip
; 'b' contains the PartyNr of the Pkmn the AI will switch to
call LoadEnemyPkmnToSwitchTo
ld a, 1
ld [wEnemyIsSwitching], a
- call Function3d7a0
+ call ClearEnemyMonBox
call Function_BattleTextEnemySentOut
jp Function_SetEnemyPkmnAndSendOutAnimation
; 3d533
-Function3d533: ; 3d533
+CheckWhetherSwitchmonIsPredetermined: ; 3d533
; returns carry if: ???
ld a, [wLinkMode]
and a
- jr z, .asm_3d541
+ jr z, .not_linked
ld a, [wBattleAction]
- sub NUM_MOVES
+ sub BATTLEACTION_SWITCH1
ld b, a
- jr .asm_3d555
+ jr .return_carry
-.asm_3d541
- ld a, [wc718]
+.not_linked
+ ld a, [wEnemySwitchMonIndex]
and a
- jr z, .asm_3d54b
+ jr z, .check_wd264
dec a
ld b, a
- jr .asm_3d555
+ jr .return_carry
-.asm_3d54b
+.check_wd264
ld a, [wd264]
and a
ld b, $0
- jr nz, .asm_3d555
+ jr nz, .return_carry
and a
ret
-.asm_3d555
+.return_carry
scf
ret
; 3d557
@@ -3394,22 +3410,22 @@ ResetEnemyBattleVars: ; 3d557
dec a
ld [wc6e6], a
xor a
- ld [wc730], a
+ ld [wPlayerWrapCount], a
hlcoord 18, 0
ld a, $8
call Function3d490
call EmptyBattleTextBox
- jp LoadMenuDataHeader_0x1d75
+ jp LoadStandardMenuDataHeader
; 3d57a
-Function3d57a: ; 3d57a
+ResetBattleParticipants: ; 3d57a
xor a
- ld [wc664], a
+ ld [wBattleParticipantsNotFainted], a
ld [wc6fc], a
-Function3d581: ; 3d581
+AddBattleParticipant: ; 3d581
ld a, [CurBattleMon]
ld c, a
- ld hl, wc664
+ ld hl, wBattleParticipantsNotFainted
ld b, SET_FLAG
push bc
predef FlagPredef
@@ -3479,7 +3495,7 @@ LookUpTheEffectivenessOfEveryMove: ; 3d5d7
ld a, BANK(Moves)
call FarCopyBytes
call SetEnemyTurn
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
pop bc
pop de
pop hl
@@ -3515,13 +3531,13 @@ IsThePlayerPkmnTypesEffectiveAgainstOTPkmn: ; 3d618
ld a, [BattleMonType1]
ld [wPlayerMoveStruct + MOVE_TYPE], a
call SetPlayerTurn
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
ld a, [wd265]
cp 10 + 1 ; 1.0 + 0.1
jr nc, .asm_3d663
ld a, [BattleMonType2]
ld [wPlayerMoveStruct + MOVE_TYPE], a
- callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ callab BattleCheckTypeMatchup
ld a, [wd265]
cp 10 + 1 ; 1.0 + 0.1
jr nc, .asm_3d663
@@ -3628,37 +3644,37 @@ LoadEnemyPkmnToSwitchTo: ; 3d6ca
ld a, [CurPartySpecies]
cp UNOWN
- jr nz, .asm_3d708
+ jr nz, .skip_unown
ld a, [wdef4]
and a
- jr nz, .asm_3d708
+ jr nz, .skip_unown
ld hl, EnemyMonDVs
predef GetUnownLetter
ld a, [UnownLetter]
ld [wdef4], a
-.asm_3d708
+.skip_unown
ld hl, EnemyMonHP
ld a, [hli]
- ld [wc6ea], a
+ ld [wEnemyHPAtTimeOfPlayerSwitch], a
ld a, [hl]
- ld [wc6eb], a
+ ld [wEnemyHPAtTimeOfPlayerSwitch + 1], a
ret
; 3d714
-Function3d714: ; 3d714
+CheckWhetherToAskSwitch: ; 3d714
ld a, [wd264]
dec a
- jp z, .asm_3d749
+ jp z, .return_nc
ld a, [PartyCount]
dec a
- jp z, .asm_3d749
+ jp z, .return_nc
ld a, [wLinkMode]
and a
- jp nz, .asm_3d749
+ jp nz, .return_nc
ld a, [Options]
bit BATTLE_SHIFT, a
- jr nz, .asm_3d749
+ jr nz, .return_nc
ld a, [CurPartyMon]
push af
ld a, [CurBattleMon]
@@ -3667,16 +3683,16 @@ Function3d714: ; 3d714
pop bc
ld a, b
ld [CurPartyMon], a
- jr c, .asm_3d749
+ jr c, .return_nc
scf
ret
-.asm_3d749
+.return_nc
and a
ret
; 3d74b
-Function3d74b: ; 3d74b
+OfferSwitch: ; 3d74b
ld a, [CurPartyMon]
push af
callab Battle_GetTrainerName
@@ -3684,19 +3700,19 @@ Function3d74b: ; 3d74b
call StdBattleTextBox
lb bc, 1, 7
call PlaceYesNoBox
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
- jr nz, .asm_3d79a
+ jr nz, .said_no
call Function3d2f7
call PickSwitchMonInBattle
- jr c, .asm_3d791
+ jr c, .canceled_switch
ld a, [CurBattleMon]
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
call ClearPalettes
call DelayFrame
- call Function3eda6
+ call _LoadHPBar
pop af
ld [CurPartyMon], a
xor a
@@ -3705,19 +3721,19 @@ Function3d74b: ; 3d74b
and a
ret
-.asm_3d791
+.canceled_switch
call ClearPalettes
call DelayFrame
- call Function3eda6
+ call _LoadHPBar
-.asm_3d79a
+.said_no
pop af
ld [CurPartyMon], a
scf
ret
; 3d7a0
-Function3d7a0: ; 3d7a0
+ClearEnemyMonBox: ; 3d7a0
xor a
ld [hBGMapMode], a
call ExitMenu
@@ -3726,7 +3742,7 @@ Function3d7a0: ; 3d7a0
lb bc, 4, 10
call ClearBox
call WaitBGMap
- jp Function3ee27
+ jp FinishBattleAnim
; 3d7b8
Function_BattleTextEnemySentOut: ; 3d7b8
@@ -3744,41 +3760,41 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7
ld a, OTPARTYMON
ld [MonType], a
predef CopyPkmnToTempMon
- call Function3f47c
+ call GetMonFrontpic
xor a
ld [wcfca], a
- ld [wc689], a
+ ld [wKickCounter], a
call SetEnemyTurn
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
- call Function3da79
- jr nc, .asm_3d800
+ call BattleCheckEnemyShininess
+ jr nc, .not_shiny
ld a, 1 ; shiny anim
- ld [wc689], a
+ ld [wKickCounter], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
-.asm_3d800
+.not_shiny
ld bc, TempMonSpecies
- callba Function4e53f
- jr c, .asm_3d82c
+ callba CheckFaintedFrzSlp
+ jr c, .skip_cry
callba CheckBattleScene
- jr c, .asm_3d821
+ jr c, .cry_no_anim
hlcoord 12, 0
ld d, $0
- ld e, $0
- predef Functiond008e
- jr .asm_3d82c
+ ld e, ANIM_MON_SLOW
+ predef AnimateFrontpic
+ jr .skip_cry
-.asm_3d821
+.cry_no_anim
ld a, $f
ld [CryTracks], a
ld a, [TempEnemyMonSpecies]
call PlayStereoCry
-.asm_3d82c
+.skip_cry
call UpdateEnemyHUD
ld a, $1
ld [hBGMapMode], a
@@ -3798,11 +3814,11 @@ endr
ld [EnemyDisableCount], a
ld [EnemyFuryCutterCount], a
ld [EnemyProtectCount], a
- ld [wc72c], a
+ ld [wEnemyRageCounter], a
ld [EnemyDisabledMove], a
- ld [wc6fa], a
- ld [wc730], a
- ld [wc731], a
+ ld [wEnemyMinimized], a
+ ld [wPlayerWrapCount], a
+ ld [wEnemyWrapCount], a
ld [EnemyTurnsTaken], a
ld hl, PlayerSubStatus5
res SUBSTATUS_CANT_RUN, [hl]
@@ -3810,8 +3826,8 @@ endr
; 3d867
ResetEnemyStatLevels: ; 3d867
- ld a, 7
- ld b, 8
+ ld a, BASE_STAT_LEVEL
+ ld b, NUM_LEVEL_STATS
ld hl, EnemyStatLevels
.loop
ld [hli], a
@@ -3875,53 +3891,53 @@ TryToRunAwayFromBattle: ; 3d8b3
; Run away from battle, with or without item
ld a, [BattleType]
cp BATTLETYPE_DEBUG
- jp z, .asm_3d9a2
+ jp z, .can_escape
cp BATTLETYPE_CONTEST
- jp z, .asm_3d9a2
+ jp z, .can_escape
cp BATTLETYPE_TRAP
- jp z, .asm_3d98d
+ jp z, .cant_escape
cp BATTLETYPE_CELEBI
- jp z, .asm_3d98d
+ jp z, .cant_escape
cp BATTLETYPE_SHINY
- jp z, .asm_3d98d
+ jp z, .cant_escape
cp BATTLETYPE_SUICUNE
- jp z, .asm_3d98d
+ jp z, .cant_escape
ld a, [wLinkMode]
and a
- jp nz, .asm_3d9a2
+ jp nz, .can_escape
ld a, [wBattleMode]
dec a
- jp nz, .asm_3d992
+ jp nz, .cant_run_from_trainer
ld a, [EnemySubStatus5]
bit SUBSTATUS_CANT_RUN, a
- jp nz, .asm_3d98d
+ jp nz, .cant_escape
- ld a, [wc730]
+ ld a, [wPlayerWrapCount]
and a
- jp nz, .asm_3d98d
+ jp nz, .cant_escape
push hl
push de
ld a, [BattleMonItem]
ld [wd265], a
ld b, a
- callab GetItem
+ callab GetItemHeldEffect
ld a, b
cp HELD_ESCAPE
pop de
pop hl
- jr nz, .asm_3d916
+ jr nz, .no_flee_item
call SetPlayerTurn
call GetItemName
ld hl, BattleText_UserFledUsingAStringBuffer1
call StdBattleTextBox
- jp .asm_3d9a2
+ jp .can_escape
-.asm_3d916
+.no_flee_item
ld a, [wd267]
inc a
ld [wd267], a
@@ -3939,7 +3955,7 @@ TryToRunAwayFromBattle: ; 3d8b3
ld hl, hStringCmpString1
ld c, $2
call StringCmp
- jr nc, .asm_3d9a2
+ jr nc, .can_escape
xor a
ld [hMultiplicand], a
@@ -3950,52 +3966,52 @@ TryToRunAwayFromBattle: ; 3d8b3
ld [hDividend + 0], a
ld a, [hProduct + 3]
ld [hDividend + 1], a
- ld a, [$ffb1]
+ ld a, [hStringCmpString1 + 0]
ld b, a
- ld a, [$ffb2]
+ ld a, [hStringCmpString1 + 1]
srl b
rr a
srl b
rr a
and a
- jr z, .asm_3d9a2
+ jr z, .can_escape
ld [hDivisor], a
ld b, $2
call Divide
ld a, [hQuotient + 1]
and a
- jr nz, .asm_3d9a2
+ jr nz, .can_escape
ld a, [wd267]
ld c, a
-.asm_3d96c
+.loop
dec c
- jr z, .asm_3d97a
+ jr z, .cant_escape_2
ld b, $1e
ld a, [hQuotient + 2]
add b
- ld [$ffb6], a
- jr c, .asm_3d9a2
- jr .asm_3d96c
+ ld [hQuotient + 2], a
+ jr c, .can_escape
+ jr .loop
-.asm_3d97a
+.cant_escape_2
call BattleRandom
ld b, a
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
cp b
- jr nc, .asm_3d9a2
+ jr nc, .can_escape
ld a, $1
ld [wd0ec], a
ld hl, BattleText_CantEscape2
- jr .asm_3d995
+ jr .print_inescapable_text
-.asm_3d98d
+.cant_escape
ld hl, BattleText_CantEscape
- jr .asm_3d995
+ jr .print_inescapable_text
-.asm_3d992
+.cant_run_from_trainer
ld hl, BattleText_TheresNoEscapeFromTrainerBattle
-.asm_3d995
+.print_inescapable_text
call StdBattleTextBox
ld a, $1
ld [wd266], a
@@ -4003,11 +4019,11 @@ TryToRunAwayFromBattle: ; 3d8b3
and a
ret
-.asm_3d9a2
+.can_escape
ld a, [wLinkMode]
and a
- ld a, $2
- jr z, .asm_3d9cf
+ ld a, DRAW
+ jr z, .fled
call LoadTileMapToTempTileMap
xor a
ld [wd0ec], a
@@ -4017,16 +4033,16 @@ TryToRunAwayFromBattle: ; 3d8b3
ld [CurPlayerMove], a
call Function3e8e4
call Call_LoadTempTileMapToTileMap
- call Function3d2e0
- jr c, .asm_3d9f5
+ call CheckMobileBattleError
+ jr c, .mobile
; Got away safely
ld a, [wBattleAction]
- cp $f
- ld a, $2
- jr z, .asm_3d9cf
+ cp BATTLEACTION_FORFEIT
+ ld a, DRAW
+ jr z, .fled
dec a
-.asm_3d9cf
+.fled
ld b, a
ld a, [wBattleResult]
and $c0
@@ -4045,15 +4061,15 @@ TryToRunAwayFromBattle: ; 3d8b3
scf
ret
-.asm_3d9f5
+.mobile
call StopDangerSound
ld hl, wcd2a
bit 4, [hl]
- jr nz, .asm_3da05
+ jr nz, .skip_link_error
ld hl, BattleText_LinkErrorBattleCanceled
call StdBattleTextBox
-.asm_3da05
+.skip_link_error
call WaitSFX
call LoadTileMapToTempTileMap
scf
@@ -4061,22 +4077,22 @@ TryToRunAwayFromBattle: ; 3d8b3
; 3da0d
-Function3da0d: ; 3da0d
- ld a, PartyMon1Species - PartyMon1
+InitBattleMon: ; 3da0d
+ ld a, MON_SPECIES
call GetPartyParamLocation
ld de, BattleMonSpecies
- ld bc, 1 + 1 + NUM_MOVES ; species, item, moves ; BattleMonDVs - BattleMonSpecies
+ ld bc, MON_ID
call CopyBytes
- ld bc, PartyMon1DVs - (PartyMon1Species + 1 + 1 + NUM_MOVES)
+ ld bc, MON_DVS - MON_ID
add hl, bc
ld de, BattleMonDVs
- ld bc, 2 + NUM_MOVES + 1 ; DVs, PP, happiness ; BattleMonLevel - BattleMonDVs
+ ld bc, MON_PKRUS - MON_DVS
call CopyBytes
rept 3
inc hl
endr
ld de, BattleMonLevel
- ld bc, 1 + 1 + 1 + 2 + 2 * 6 ; level, status, unused, stats
+ ld bc, PARTYMON_STRUCT_LENGTH - MON_LEVEL
call CopyBytes
ld a, [BattleMonSpecies]
ld [TempBattleMonSpecies], a
@@ -4095,28 +4111,28 @@ endr
call CopyBytes
ld hl, BattleMonAttack
ld de, PlayerStats
- ld bc, 2 * 5
+ ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK
call CopyBytes
- call Function3ec2c
+ call ApplyStatusEffectOnPlayerStats
call BadgeStatBoosts
ret
; 3da74
-Function3da74: ; 3da74
- call Function3da85
- jr Function3da7c
+BattleCheckPlayerShininess: ; 3da74
+ call GetPartyMonDVs
+ jr BattleCheckShininess
-Function3da79: ; 3da79
- call Function3da97
+BattleCheckEnemyShininess: ; 3da79
+ call GetEnemyMonDVs
-Function3da7c: ; 3da7c
+BattleCheckShininess: ; 3da7c
ld b, h
ld c, l
callab CheckShininess
ret
; 3da85
-Function3da85: ; 3da85
+GetPartyMonDVs: ; 3da85
ld hl, BattleMonDVs
ld a, [PlayerSubStatus5]
bit SUBSTATUS_TRANSFORMED, a
@@ -4126,7 +4142,7 @@ Function3da85: ; 3da85
jp GetPartyLocation
; 3da97
-Function3da97: ; 3da97
+GetEnemyMonDVs: ; 3da97
ld hl, EnemyMonDVs
ld a, [EnemySubStatus5]
bit SUBSTATUS_TRANSFORMED, a
@@ -4141,8 +4157,8 @@ Function3da97: ; 3da97
; 3dab1
ResetPlayerStatLevels: ; 3dab1
- ld a, 7
- ld b, 8
+ ld a, BASE_STAT_LEVEL
+ ld b, NUM_LEVEL_STATS
ld hl, PlayerStatLevels
.loop
ld [hli], a
@@ -4157,18 +4173,18 @@ Function3dabd: ; 3dabd
ld hl, OTPartyMon1Species
call GetPartyLocation
ld de, EnemyMonSpecies
- ld bc, 1 + 1 + NUM_MOVES
+ ld bc, MON_ID
call CopyBytes
- ld bc, OTPartyMon1DVs - (OTPartyMon1Species + 1 + 1 + NUM_MOVES)
+ ld bc, MON_DVS - MON_ID
add hl, bc
ld de, EnemyMonDVs
- ld bc, 2 + NUM_MOVES + 1
+ ld bc, MON_PKRUS - MON_DVS
call CopyBytes
rept 3
inc hl
endr
ld de, EnemyMonLevel
- ld bc, 1 + 1 + 1 + 2 + 2 * 6
+ ld bc, PARTYMON_STRUCT_LENGTH - MON_LEVEL
call CopyBytes
ld a, [EnemyMonSpecies]
ld [CurSpecies], a
@@ -4181,9 +4197,9 @@ endr
call CopyBytes
ld hl, EnemyMonAttack
ld de, EnemyStats
- ld bc, 2 * 5
+ ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK
call CopyBytes
- call Function3ec30
+ call ApplyStatusEffectOnEnemyStats
ld hl, BaseType1
ld de, EnemyMonType1
ld a, [hli]
@@ -4206,18 +4222,18 @@ endr
; 3db32
-Function3db32: ; 3db32
+SwitchPlayerMon: ; 3db32
call ClearSprites
ld a, [CurBattleMon]
ld [LastPlayerMon], a
ld a, [CurPartyMon]
ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
+ call AddBattleParticipant
+ call InitBattleMon
call ResetPlayerStatLevels
call NewBattleMonStatus
call BreakAttraction
- call Function3db5f
+ call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
ld hl, EnemyMonHP
@@ -4227,7 +4243,7 @@ Function3db32: ; 3db32
; 3db5f
-Function3db5f: ; 3db5f
+SendOutPlayerMon: ; 3db5f
ld hl, BattleMonDVs
predef GetUnownLetter
hlcoord 1, 5
@@ -4237,9 +4253,9 @@ Function3db5f: ; 3db5f
call WaitBGMap
xor a
ld [hBGMapMode], a
- call Function3f43d
+ call GetMonBackpic
xor a
- ld [$ffad], a
+ ld [hFillBox], a
ld [wd0d2], a
ld [CurMoveNum], a
ld [TypeModifier], a
@@ -4248,35 +4264,35 @@ Function3db5f: ; 3db5f
ld [LastPlayerCounterMove], a
ld [LastPlayerMove], a
call CheckAmuletCoin
- call Function3ee27
+ call FinishBattleAnim
xor a
- ld [wc731], a
+ ld [wEnemyWrapCount], a
call SetPlayerTurn
xor a
ld [wcfca], a
- ld [wc689], a
+ ld [wKickCounter], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
- call Function3da74
- jr nc, .asm_3dbbc
+ call BattleCheckPlayerShininess
+ jr nc, .not_shiny
ld a, $1
- ld [wc689], a
+ ld [wKickCounter], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
-.asm_3dbbc
- ld a, PartyMon1Species - PartyMon1
+.not_shiny
+ ld a, MON_SPECIES
call GetPartyParamLocation
ld b, h
ld c, l
- callba Function4e53f
- jr c, .asm_3dbd6
+ callba CheckFaintedFrzSlp
+ jr c, .statused
ld a, $f0
ld [CryTracks], a
ld a, [CurPartySpecies]
call PlayStereoCry
-.asm_3dbd6
+.statused
call UpdatePlayerHUD
ld a, $1
ld [hBGMapMode], a
@@ -4301,11 +4317,11 @@ endr
ld [PlayerDisableCount], a
ld [PlayerFuryCutterCount], a
ld [PlayerProtectCount], a
- ld [wc72b], a
+ ld [wPlayerRageCounter], a
ld [DisabledMove], a
- ld [wc6fe], a
- ld [wc731], a
- ld [wc730], a
+ ld [wPlayerMinimized], a
+ ld [wEnemyWrapCount], a
+ ld [wPlayerWrapCount], a
ld [PlayerTurnsTaken], a
ld hl, EnemySubStatus5
res SUBSTATUS_CANT_RUN, [hl]
@@ -4350,7 +4366,7 @@ SpikesDamage: ; 3dc23
call StdBattleTextBox
call GetEighthMaxHP
- call Function3cc39
+ call SubtractHPFromTarget
pop hl
call .hl
@@ -4361,14 +4377,14 @@ SpikesDamage: ; 3dc23
jp [hl]
; 3dc5b
-Function3dc5b: ; 3dc5b
+PursuitSwitch: ; 3dc5b
ld a, BATTLE_VARS_MOVE
call GetBattleVar
ld b, a
call GetMoveEffect
ld a, b
cp EFFECT_PURSUIT
- jr nz, .asm_3dce4
+ jr nz, .done
ld a, [CurBattleMon]
push af
@@ -4376,11 +4392,11 @@ Function3dc5b: ; 3dc5b
ld hl, DoPlayerTurn
ld a, [hBattleTurn]
and a
- jr z, .asm_3dc7e
+ jr z, .do_turn
ld hl, DoEnemyTurn
ld a, [LastPlayerMon]
ld [CurBattleMon], a
-.asm_3dc7e
+.do_turn
ld a, BANK(DoPlayerTurn)
rst FarCall
@@ -4394,14 +4410,14 @@ Function3dc5b: ; 3dc5b
ld a, [hBattleTurn]
and a
- jr z, .asm_3dcc0
+ jr z, .check_enemy_fainted
ld a, [LastPlayerMon]
call UpdateBattleMon
ld hl, BattleMonHP
ld a, [hli]
or [hl]
- jr nz, .asm_3dce4
+ jr nz, .done
ld a, $f0
ld [CryTracks], a
@@ -4409,18 +4425,18 @@ Function3dc5b: ; 3dc5b
call PlayStereoCry
ld a, [wc71a]
ld c, a
- ld hl, wc664
- ld b, $0
+ ld hl, wBattleParticipantsNotFainted
+ ld b, RESET_FLAG
predef FlagPredef
call PlayerMonFaintedAnimation
ld hl, BattleText_PkmnFainted
- jr .asm_3dcdf
+ jr .done_fainted
-.asm_3dcc0
+.check_enemy_fainted
ld hl, EnemyMonHP
ld a, [hli]
or [hl]
- jr nz, .asm_3dce4
+ jr nz, .done
ld de, SFX_KINESIS
call PlaySFX
@@ -4431,12 +4447,12 @@ Function3dc5b: ; 3dc5b
call EnemyMonFaintedAnimation
ld hl, BattleText_EnemyPkmnFainted
-.asm_3dcdf
+.done_fainted
call StdBattleTextBox
scf
ret
-.asm_3dce4
+.done
and a
ret
; 3dce6
@@ -4454,31 +4470,31 @@ Function3dce6: ; 3dce6
ret
; 3dcf9
-Function3dcf9: ; 3dcf9
- ld a, [$ffcb]
+HandleHealingItems: ; 3dcf9
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3dd17
+ jr z, .player_1
call SetPlayerTurn
- call Function3dd2f
- call Function3dde9
- call Function3de51
+ call HandleHPHealingItem
+ call UseHeldStatusHealingItem
+ call HandleStatusHealingItem
call SetEnemyTurn
- call Function3dd2f
- call Function3dde9
- jp Function3de51
+ call HandleHPHealingItem
+ call UseHeldStatusHealingItem
+ jp HandleStatusHealingItem
-.asm_3dd17
+.player_1
call SetEnemyTurn
- call Function3dd2f
- call Function3dde9
- call Function3de51
+ call HandleHPHealingItem
+ call UseHeldStatusHealingItem
+ call HandleStatusHealingItem
call SetPlayerTurn
- call Function3dd2f
- call Function3dde9
- jp Function3de51
+ call HandleHPHealingItem
+ call UseHeldStatusHealingItem
+ jp HandleStatusHealingItem
; 3dd2f
-Function3dd2f: ; 3dd2f
+HandleHPHealingItem: ; 3dd2f
callab GetOpponentItem
ld a, b
cp $1
@@ -4487,11 +4503,11 @@ Function3dd2f: ; 3dd2f
ld hl, EnemyMonMaxHP
ld a, [hBattleTurn]
and a
- jr z, .asm_3dd4a
+ jr z, .go
ld de, BattleMonHP + 1
ld hl, BattleMonMaxHP
-.asm_3dd4a
+.go
push bc
ld a, [de]
ld [wd1ec], a
@@ -4507,18 +4523,18 @@ Function3dd2f: ; 3dd2f
cp [hl]
ld a, c
pop bc
- jr z, .asm_3dd62
- jr c, .asm_3dd66
+ jr z, .equal
+ jr c, .less
ret
-.asm_3dd62
+.equal
inc hl
cp [hl]
dec hl
ret nc
-.asm_3dd66
- call Function3ddc8
+.less
+ call ItemRecoveryAnim
ld a, [hli]
ld [Buffer2], a
ld a, [hl]
@@ -4536,13 +4552,13 @@ Function3dd2f: ; 3dd2f
cp c
ld a, [hl]
sbc b
- jr nc, .asm_3dd8d
+ jr nc, .okay
ld a, [hli]
ld [wd1ef], a
ld a, [hl]
ld [wd1ee], a
-.asm_3dd8d
+.okay
ld a, [wd1ef]
ld [de], a
inc de
@@ -4552,25 +4568,25 @@ Function3dd2f: ; 3dd2f
ld [wd10a], a
and a
hlcoord 2, 2
- jr z, .asm_3dda4
+ jr z, .got_hp_bar_coords
hlcoord 10, 9
-.asm_3dda4
+.got_hp_bar_coords
ld [wd10a], a
- predef Functionc6e0
-Function3ddac:
+ predef AnimateHPBar
+UseOpponentItem:
call RefreshBattleHuds
callab GetOpponentItem
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
- callab Function27192
+ callab ConsumeHeldItem
ld hl, RecoveredUsingText
jp StdBattleTextBox
; 3ddc8
-Function3ddc8: ; 3ddc8
+ItemRecoveryAnim: ; 3ddc8
push hl
push de
push bc
@@ -4589,16 +4605,16 @@ Function3ddc8: ; 3ddc8
ret
; 3dde9
-Function3dde9: ; 3dde9
+UseHeldStatusHealingItem: ; 3dde9
callab GetOpponentItem
ld hl, .Statuses
-.asm_3ddf2
+.loop
ld a, [hli]
cp $ff
ret z
inc hl
cp b
- jr nz, .asm_3ddf2
+ jr nz, .loop
dec hl
ld b, [hl]
ld a, BATTLE_VARS_STATUS_OPP
@@ -4619,26 +4635,26 @@ Function3dde9: ; 3dde9
and [hl]
res SUBSTATUS_NIGHTMARE, [hl]
ld a, b
- cp $7f
- jr nz, .asm_3de26
+ cp ALL_STATUS
+ jr nz, .skip_confuse
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
res SUBSTATUS_CONFUSED, [hl]
-.asm_3de26
- ld hl, Function365fd
+.skip_confuse
+ ld hl, CalcEnemyStats
ld a, [hBattleTurn]
and a
- jr z, .asm_3de31
- ld hl, Function365d7
+ jr z, .got_pointer
+ ld hl, CalcPlayerStats
-.asm_3de31
+.got_pointer
call SwitchTurnCore
- ld a, BANK(Function365fd)
+ ld a, BANK(CalcEnemyStats)
rst FarCall
call SwitchTurnCore
- call Function3ddc8
- call Function3ddac
+ call ItemRecoveryAnim
+ call UseOpponentItem
ld a, $1
and a
ret
@@ -4650,12 +4666,12 @@ Function3dde9: ; 3dde9
db HELD_HEAL_BURN, 1 << BRN
db HELD_HEAL_SLEEP, SLP
db HELD_HEAL_PARALYZE, 1 << PAR
- db HELD_HEAL_STATUS, 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR
+ db HELD_HEAL_STATUS, ALL_STATUS
db $ff
; 3de51
-Function3de51: ; 3de51
+HandleStatusHealingItem: ; 3de51
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
bit SUBSTATUS_CONFUSED, a
@@ -4663,24 +4679,24 @@ Function3de51: ; 3de51
callab GetOpponentItem
ld a, b
cp HELD_HEAL_CONFUSION
- jr z, .asm_3de67
+ jr z, .heal_status
cp HELD_HEAL_STATUS
ret nz
-.asm_3de67
+.heal_status
ld a, [hl]
ld [wd265], a
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
res SUBSTATUS_CONFUSED, [hl]
call GetItemName
- call Function3ddc8
+ call ItemRecoveryAnim
ld hl, BattleText_0x80dab
call StdBattleTextBox
ld a, [hBattleTurn]
and a
- jr nz, .asm_3de90
- call Function3df1f
+ jr nz, .do_partymon
+ call GetOTPartymonItem
xor a
ld [bc], a
ld a, [wBattleMode]
@@ -4689,36 +4705,37 @@ Function3de51: ; 3de51
ld [hl], $0
ret
-.asm_3de90
- call Function3df12
+.do_partymon
+ call GetPartymonItem
xor a
ld [bc], a
ld [hl], a
ret
; 3de97
-Function3de97: ; 3de97
- ld a, [$ffcb]
+HandleStatBoostingHeldItems: ; 3de97
+; The effects handled here are not used in-game.
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3dea3
- call Function3dea9
- jp Function3deb1
+ jr z, .player_1
+ call .DoEnemy
+ jp .DoPlayer
-.asm_3dea3
- call Function3deb1
- jp Function3dea9
+.player_1
+ call .DoPlayer
+ jp .DoEnemy
; 3dea9
-Function3dea9: ; 3dea9
- call Function3df12
+.DoEnemy: ; 3dea9
+ call GetPartymonItem
ld a, $0
- jp Function3deb6
+ jp .HandleItem
; 3deb1
-Function3deb1: ; 3deb1
- call Function3df1f
+.DoPlayer: ; 3deb1
+ call GetOTPartymonItem
ld a, $1
-Function3deb6: ; 3deb6
+.HandleItem: ; 3deb6
ld [hBattleTurn], a
ld d, h
ld e, l
@@ -4726,17 +4743,17 @@ Function3deb6: ; 3deb6
push bc
ld a, [bc]
ld b, a
- callab GetItem
- ld hl, .data_3defc
-.asm_3dec7
+ callab GetItemHeldEffect
+ ld hl, .StatUpItems
+.loop
ld a, [hli]
cp $ff
- jr z, .asm_3def9
+ jr z, .finish
rept 2
inc hl
endr
cp b
- jr nz, .asm_3dec7
+ jr nz, .loop
pop bc
ld a, [bc]
ld [wd265], a
@@ -4747,7 +4764,7 @@ endr
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, BANK(BattleCommand70)
+ ld a, BANK(BattleCommand_AttackUp)
rst FarCall
pop bc
pop de
@@ -4760,28 +4777,28 @@ endr
call GetItemName
ld hl, BattleText_UsersStringBuffer1Activated
call StdBattleTextBox
- callab BattleCommand8c
+ callab BattleCommand_StatUpMessage
ret
-.asm_3def9
+.finish
pop bc
pop de
ret
; 3defc
-.data_3defc
- dbw HELD_ATTACK_UP, BattleCommand70
- dbw HELD_DEFENSE_UP, BattleCommand71
- dbw HELD_SPEED_UP, BattleCommand72
- dbw HELD_SP_ATTACK_UP, BattleCommand73
- dbw HELD_SP_DEFENSE_UP, BattleCommand74
- dbw HELD_ACCURACY_UP, BattleCommand75
- dbw HELD_EVASION_UP, BattleCommand76
+.StatUpItems
+ dbw HELD_ATTACK_UP, BattleCommand_AttackUp
+ dbw HELD_DEFENSE_UP, BattleCommand_DefenseUp
+ dbw HELD_SPEED_UP, BattleCommand_SpeedUp
+ dbw HELD_SP_ATTACK_UP, BattleCommand_SpecialAttackUp
+ dbw HELD_SP_DEFENSE_UP, BattleCommand_SpecialDefenseUp
+ dbw HELD_ACCURACY_UP, BattleCommand_AccuracyUp
+ dbw HELD_EVASION_UP, BattleCommand_EvasionUp
db $ff
; 3df12
-Function3df12: ; 3df12
+GetPartymonItem: ; 3df12
ld hl, PartyMon1Item
ld a, [CurBattleMon]
call GetPartyLocation
@@ -4789,7 +4806,7 @@ Function3df12: ; 3df12
ret
; 3df1f
-Function3df1f: ; 3df1f
+GetOTPartymonItem: ; 3df1f
ld hl, OTPartyMon1Item
ld a, [CurOTMon]
call GetPartyLocation
@@ -4797,7 +4814,7 @@ Function3df1f: ; 3df1f
ret
; 3df2c
-Function3df2c: ; 3df2c
+UpdateBattleHUDs: ; 3df2c
push hl
push de
push bc
@@ -4945,7 +4962,7 @@ PrintPlayerHUD: ; 3dfbf
push af
push hl
ld de, BattleMonStatus
- predef Function50d2e
+ predef PlaceNonFaintStatus
pop hl
pop bc
ret nz
@@ -5024,7 +5041,7 @@ DrawEnemyHUD: ; 3e043
push af
push hl
ld de, EnemyMonStatus
- predef Function50d2e
+ predef PlaceNonFaintStatus
pop hl
pop bc
jr nz, .asm_3e0be
@@ -5078,14 +5095,14 @@ DrawEnemyHUD: ; 3e043
rr a
srl b
rr a
- ld [$ffb6], a
+ ld [hProduct + 3], a
ld a, b
- ld [$ffb5], a
+ ld [hProduct + 2], a
.asm_3e105
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
ld [hDividend + 0], a
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
ld [hDividend + 1], a
ld a, $2
ld b, a
@@ -5101,7 +5118,7 @@ DrawEnemyHUD: ; 3e043
ld [wd10a], a
hlcoord 2, 2
ld b, 0
- call DrawHPBar
+ call DrawBattleHPBar
ret
; 3e127
@@ -5117,7 +5134,7 @@ Function3e12e: ; 3e12e
ld a, [hl]
cp b
ret z
- jp Function3ee27
+ jp FinishBattleAnim
; 3e138
Function3e138: ; 3e138
@@ -5151,9 +5168,9 @@ BattleMenu: ; 3e139
; Auto input: choose "ITEM"
ld a, [InputType]
or a
- jr z, .asm_3e171
+ jr z, .skip_dude_pack_select
callba _DudeAutoInput_DownA
-.asm_3e171
+.skip_dude_pack_select
call LoadBattleMenu2
ret c
@@ -5216,7 +5233,7 @@ BattleMenu_Pack: ; 3e1c7
and a
jp nz, ItemsCantBeUsed
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
@@ -5227,34 +5244,34 @@ BattleMenu_Pack: ; 3e1c7
callba BattlePack
ld a, [wd0ec]
and a
- jr z, .asm_3e20d
- jr .asm_3e209
+ jr z, .didnt_use_item
+ jr .got_item
.tutorial
callba Function107bb
ld a, POKE_BALL
ld [CurItem], a
call DoItemEffect
- jr .asm_3e209
+ jr .got_item
.contest
ld a, PARK_BALL
ld [CurItem], a
call DoItemEffect
-.asm_3e209
+.got_item
call Function3e234
ret
-.asm_3e20d
+.didnt_use_item
call ClearPalettes
call DelayFrame
- call Function3ed9f
- call Function3f43d
- call Function3f47c
+ call _LoadBattleFontsHPBar
+ call GetMonBackpic
+ call GetMonFrontpic
call ExitMenu
call WaitBGMap
- call Function3ee27
+ call FinishBattleAnim
call LoadTileMapToTempTileMap
jp BattleMenu
; 3e22b
@@ -5273,28 +5290,28 @@ Function3e234: ; 3e234
ld a, [wItemAttributeParamBuffer]
cp $3
jr z, .asm_3e24a
- call WhiteBGMap
+ call ClearBGPalettes
.asm_3e24a
xor a
ld [hBGMapMode], a
- call Function3ed9f
+ call _LoadBattleFontsHPBar
call ClearSprites
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
jr z, .asm_3e25d
- call Function3f43d
+ call GetMonBackpic
.asm_3e25d
- call Function3f47c
+ call GetMonFrontpic
ld a, $1
- ld [wcfa9], a
+ ld [MenuSelection2], a
call ExitMenu
- call Function3df2c
+ call UpdateBattleHUDs
call WaitBGMap
call LoadTileMapToTempTileMap
call ResetTextRelatedRAM
- call Function3ee27
+ call FinishBattleAnim
and a
ret
@@ -5311,11 +5328,11 @@ Function3e234: ; 3e234
; 3e28d
BattleMenu_PKMN: ; 3e28d
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
Function3e290:
call ExitMenu
- call LoadMenuDataHeader_0x1d75
- call WhiteBGMap
+ call LoadStandardMenuDataHeader
+ call ClearBGPalettes
Function3e299:
call Function3d2fa
xor a
@@ -5328,7 +5345,7 @@ Function3e299:
call Function3e2f5
jr c, .asm_3e2c8
call Function1bee
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jp z, Function3e358
cp $2
@@ -5338,13 +5355,13 @@ Function3e299:
jr .asm_3e2a8
.asm_3e2c8
- call Function3d2e0
+ call CheckMobileBattleError
jr c, .asm_3e2da
jr Function3e299
.asm_3e2cf
call Function3e308
- call Function3d2e0
+ call CheckMobileBattleError
jr c, .asm_3e2da
jp Function3e290
@@ -5352,7 +5369,7 @@ Function3e299:
call ClearSprites
call ClearPalettes
call DelayFrame
- call Function3eda6
+ call _LoadHPBar
call WriteBackup
call LoadTileMapToTempTileMap
call ClearSGB
@@ -5413,7 +5430,7 @@ Function3e358: ; 3e358
jp Function3e299
.asm_3e36b
- ld a, [wc730]
+ ld a, [wPlayerWrapCount]
and a
jr nz, .asm_3e378
ld a, [EnemySubStatus5]
@@ -5435,7 +5452,7 @@ Function3e358: ; 3e358
call ClearPalettes
call DelayFrame
call ClearSprites
- call Function3eda6
+ call _LoadHPBar
call WriteBackup
call ClearSGB
call SetPalettes
@@ -5444,57 +5461,57 @@ Function3e358: ; 3e358
; fallthrough
; 3e3ad
-Function3e3ad: ; 3e3ad
+PlayerSwitch: ; 3e3ad
ld a, 1
ld [wPlayerIsSwitching], a
ld a, [wLinkMode]
and a
- jr z, .asm_3e3c1
- call LoadMenuDataHeader_0x1d75
+ jr z, .not_linked
+ call LoadStandardMenuDataHeader
call Function3e8e4
call WriteBackup
-.asm_3e3c1
- call Function3e7c1
+.not_linked
+ call ParseEnemyAction
ld a, [wLinkMode]
and a
- jr nz, .asm_3e3cf
+ jr nz, .linked
-.asm_3e3ca
+.switch
call BattleMonEntrance
and a
ret
-.asm_3e3cf
+.linked
ld a, [wBattleAction]
- cp $e
- jp z, .asm_3e3ca
- cp $d
- jp z, .asm_3e3ca
- cp NUM_MOVES
- jp c, .asm_3e3ca
- cp $f
- jr nz, .asm_3e3e9
+ cp BATTLEACTION_E
+ jp z, .switch
+ cp BATTLEACTION_D
+ jp z, .switch
+ cp BATTLEACTION_SWITCH1
+ jp c, .switch
+ cp BATTLEACTION_FORFEIT
+ jr nz, .dont_run
call WildFled_EnemyFled_LinkBattleCanceled
ret
-.asm_3e3e9
- ld a, [$ffcb]
+.dont_run
+ ld a, [hLinkPlayerNumber]
cp $1
- jr z, .asm_3e3f7
+ jr z, .player_1
call BattleMonEntrance
- call Function3e3ff
+ call EnemyMonEntrance
and a
ret
-.asm_3e3f7
- call Function3e3ff
+.player_1
+ call EnemyMonEntrance
call BattleMonEntrance
and a
ret
; 3e3ff
-Function3e3ff: ; 3e3ff
+EnemyMonEntrance: ; 3e3ff
callab AI_Switch
call SetEnemyTurn
jp SpikesDamage
@@ -5510,7 +5527,7 @@ BattleMonEntrance: ; 3e40b
res SUBSTATUS_RAGE, [hl]
call SetEnemyTurn
- call Function3dc5b
+ call PursuitSwitch
jr c, .ok
call Function3dce6
.ok
@@ -5521,19 +5538,19 @@ BattleMonEntrance: ; 3e40b
ld a, [CurBattleMon]
ld [CurPartyMon], a
- call Function3d581
- call Function3da0d
+ call AddBattleParticipant
+ call InitBattleMon
call ResetPlayerStatLevels
call SendOutPkmnText
call NewBattleMonStatus
call BreakAttraction
- call Function3db5f
+ call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
call SpikesDamage
ld a, $2
- ld [wcfa9], a
+ ld [MenuSelection2], a
ret
; 3e459
@@ -5547,12 +5564,12 @@ PassedBattleMonEntrance: ; 3e459
ld a, [CurPartyMon]
ld [CurBattleMon], a
- call Function3d581
- call Function3da0d
+ call AddBattleParticipant
+ call InitBattleMon
xor a
ld [wd265], a
call ApplyStatLevelMultiplierOnAllStats
- call Function3db5f
+ call SendOutPlayerMon
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
call SetPlayerTurn
@@ -5563,7 +5580,7 @@ PassedBattleMonEntrance: ; 3e459
BattleMenu_Run: ; 3e489
call Call_LoadTempTileMapToTileMap
ld a, $3
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld hl, BattleMonSpeed
ld de, EnemyMonSpeed
call TryToRunAwayFromBattle
@@ -5580,7 +5597,7 @@ BattleMenu_Run: ; 3e489
CheckAmuletCoin: ; 3e4a8
ld a, [BattleMonItem]
ld b, a
- callab GetItem
+ callab GetItemHeldEffect
ld a, b
cp HELD_AMULET_COIN
ret nz
@@ -5608,7 +5625,7 @@ MoveSelectionScreen: ; 3e4bc
jr .asm_3e4e2
.asm_3e4dd
- ld a, PartyMon1Moves - PartyMon1
+ ld a, MON_MOVES
call GetPartyParamLocation
.asm_3e4e2
@@ -5659,7 +5676,7 @@ MoveSelectionScreen: ; 3e4bc
inc a
.asm_3e53e
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1
ld [wcfaa], a
ld a, [wd0eb]
@@ -5726,9 +5743,9 @@ MoveSelectionScreen: ; 3e4bc
xor a
ld [wd0e3], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld b, a
ld a, [wd235]
dec a
@@ -5751,7 +5768,7 @@ MoveSelectionScreen: ; 3e4bc
ret nz
ld hl, BattleMonPP
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld c, a
ld b, 0
add hl, bc
@@ -5767,7 +5784,7 @@ MoveSelectionScreen: ; 3e4bc
ld a, [wc6e1]
and a
jr nz, .asm_3e606
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld hl, BattleMonMoves
ld c, a
ld b, 0
@@ -5797,17 +5814,17 @@ MoveSelectionScreen: ; 3e4bc
; 3e61d
.asm_3e61d
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
and a
jp nz, .asm_3e57a
ld a, [wd0eb]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
jp .asm_3e57a
; 3e62e
.asm_3e62e ; 3e62e
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld b, a
ld a, [wd0eb]
rept 2
@@ -5816,7 +5833,7 @@ endr
cp b
jp nz, .asm_3e57a
ld a, $1
- ld [wcfa9], a
+ ld [MenuSelection2], a
jp .asm_3e57a
; 3e643
@@ -5833,7 +5850,7 @@ endr
swap a
and $f
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp b
jr nz, .asm_3e671
ld a, [hl]
@@ -5852,7 +5869,7 @@ endr
ld a, [hl]
and $f
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
swap a
add b
ld [hl], a
@@ -5867,7 +5884,7 @@ endr
push hl
call .asm_3e6a5
pop hl
- ld bc, PartyMon1PP - PartyMon1Moves
+ ld bc, MON_PP - MON_MOVES
add hl, bc
call .asm_3e6a5
@@ -5886,7 +5903,7 @@ endr
ld d, h
ld e, l
pop hl
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld c, a
ld b, 0
@@ -5899,7 +5916,7 @@ endr
ret
.asm_3e6bf
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd0e3], a
jp MoveSelectionScreen
; 3e6c8
@@ -5921,7 +5938,7 @@ MoveInfoBox: ; 3e6c8
swap a
and $f
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp b
jr nz, .asm_3e6f4
@@ -5931,11 +5948,11 @@ MoveInfoBox: ; 3e6c8
jr .done
.asm_3e6f4
- ld hl, wcfa9
+ ld hl, MenuSelection2
dec [hl]
call SetPlayerTurn
ld hl, BattleMonMoves
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld c, a
ld b, 0
add hl, bc
@@ -5946,9 +5963,9 @@ MoveInfoBox: ; 3e6c8
ld [CurPartyMon], a
ld a, WILDMON
ld [MonType], a
- callab Functionf8ec
+ callab GetMaxPPOfMove
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld c, [hl]
inc [hl]
ld b, 0
@@ -6055,13 +6072,13 @@ Function3e786: ; 3e786
-Function3e7c1: ; 3e7c1
+ParseEnemyAction: ; 3e7c1
ld a, [wEnemyIsSwitching]
and a
ret nz
ld a, [wLinkMode]
and a
- jr z, .asm_3e817
+ jr z, .not_linked
call EmptyBattleTextBox
call LoadTileMapToTempTileMap
ld a, [wd0ec]
@@ -6069,74 +6086,75 @@ Function3e7c1: ; 3e7c1
call z, Function3e8e4
call Call_LoadTempTileMapToTileMap
ld a, [wBattleAction]
- cp $e
- jp z, .asm_3e8bd
- cp $d
- jp z, .asm_3e82c
- cp NUM_MOVES
+ cp BATTLEACTION_E
+ jp z, .struggle
+ cp BATTLEACTION_D
+ jp z, .battle_action_d
+ cp BATTLEACTION_SWITCH1
jp nc, ResetVarsForSubstatusRage
ld [CurEnemyMoveNum], a
ld c, a
ld a, [EnemySubStatus1]
bit SUBSTATUS_ROLLOUT, a
- jp nz, .asm_3e882
+ jp nz, .skip_load
ld a, [EnemySubStatus3]
and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_BIDE
- jp nz, .asm_3e882
+ jp nz, .skip_load
ld hl, EnemySubStatus5
bit SUBSTATUS_ENCORED, [hl]
ld a, [LastEnemyMove]
- jp nz, .asm_3e87f
+ jp nz, .finish
ld hl, EnemyMonMoves
ld b, 0
add hl, bc
ld a, [hl]
- jp .asm_3e87f
+ jp .finish
-.asm_3e817
+.not_linked
ld hl, EnemySubStatus5
bit SUBSTATUS_ENCORED, [hl]
- jr z, .asm_3e824
+ jr z, .skip_encore
ld a, [LastEnemyMove]
- jp .asm_3e87f
+ jp .finish
-.asm_3e824
+.skip_encore
call CheckSubstatus_RechargeChargedRampageBideRollout
jp nz, ResetVarsForSubstatusRage
- jr .asm_3e830
+ jr .continue
-.asm_3e82c
+.battle_action_d
ld a, $ff
- jr .asm_3e87f
+ jr .finish
-.asm_3e830
+.continue
ld hl, EnemyMonMoves
ld de, EnemyMonPP
ld b, NUM_MOVES
-.asm_3e838
+.loop
ld a, [hl]
and a
- jp z, .asm_3e8bd
+ jp z, .struggle
ld a, [EnemyDisabledMove]
cp [hl]
- jr z, .asm_3e848
+ jr z, .disabled
ld a, [de]
and $3f
- jr nz, .asm_3e84f
+ jr nz, .enough_pp
-.asm_3e848
+.disabled
inc hl
inc de
dec b
- jr nz, .asm_3e838
- jr .asm_3e8bd
+ jr nz, .loop
+ jr .struggle
-.asm_3e84f
+.enough_pp
ld a, [wBattleMode]
dec a
- jr nz, .asm_3e882
-.asm_3e855
+ jr nz, .skip_load
+; wild
+.loop2
ld hl, EnemyMonMoves
call BattleRandom
and 3 ; TODO factor in NUM_MOVES
@@ -6148,48 +6166,48 @@ Function3e7c1: ; 3e7c1
and $f
dec a
cp c
- jr z, .asm_3e855
+ jr z, .loop2
ld a, [hl]
and a
- jr z, .asm_3e855
+ jr z, .loop2
ld hl, EnemyMonPP
add hl, bc
ld b, a
ld a, [hl]
and $3f
- jr z, .asm_3e855
+ jr z, .loop2
ld a, c
ld [CurEnemyMoveNum], a
ld a, b
-.asm_3e87f
+.finish
ld [CurEnemyMove], a
-.asm_3e882
+.skip_load
call SetEnemyTurn
callab UpdateMoveData
call CheckSubstatus_RechargeChargedRampageBideRollout
- jr nz, .asm_3e894
+ jr nz, .raging
xor a
- ld [wc733], a
+ ld [wEnemyCharging], a
-.asm_3e894
+.raging
ld a, [wEnemyMoveStruct + MOVE_EFFECT]
cp EFFECT_FURY_CUTTER
- jr z, .asm_3e89f
+ jr z, .fury_cutter
xor a
ld [EnemyFuryCutterCount], a
-.asm_3e89f
+.fury_cutter
ld a, [wEnemyMoveStruct + MOVE_EFFECT]
cp EFFECT_RAGE
- jr z, .asm_3e8af
+ jr z, .no_rage
ld hl, EnemySubStatus4
res SUBSTATUS_RAGE, [hl]
xor a
- ld [wc72c], a
+ ld [wEnemyRageCounter], a
-.asm_3e8af
+.no_rage
ld a, [wEnemyMoveStruct + MOVE_EFFECT]
cp EFFECT_PROTECT
ret z
@@ -6199,16 +6217,16 @@ Function3e7c1: ; 3e7c1
ld [EnemyProtectCount], a
ret
-.asm_3e8bd
+.struggle
ld a, STRUGGLE
- jr .asm_3e87f
+ jr .finish
; 3e8c1
ResetVarsForSubstatusRage: ; 3e8c1
xor a
ld [EnemyFuryCutterCount], a
ld [EnemyProtectCount], a
- ld [wc72c], a
+ ld [wEnemyRageCounter], a
ld hl, EnemySubStatus4
res SUBSTATUS_RAGE, [hl]
ret
@@ -6857,7 +6875,7 @@ Function3ebc7: ; 3ebc7
Function3ebd8: ; 3ebd8
xor a
ld [TempEnemyMonSpecies], a
- call Function3ee27
+ call FinishBattleAnim
ld a, [OtherTrainerClass]
ld [TrainerClass], a
ld de, VTiles2
@@ -6917,25 +6935,25 @@ Function3ec1a: ; 3ec1a
; 3ec2c
-Function3ec2c: ; 3ec2c
+ApplyStatusEffectOnPlayerStats: ; 3ec2c
ld a, 1
- jr Function3ec31
+ jr ApplyStatusEffectOnStats
; 3ec30
-Function3ec30: ; 3ec30
+ApplyStatusEffectOnEnemyStats: ; 3ec30
xor a
; 3ec31
-Function3ec31: ; 3ec31
+ApplyStatusEffectOnStats: ; 3ec31
ld [hBattleTurn], a
- call Function3ec39
- jp Function3ec76
+ call ApplyPrzEffectOnSpeed
+ jp ApplyBrnEffectOnAttack
; 3ec39
-Function3ec39: ; 3ec39
+ApplyPrzEffectOnSpeed: ; 3ec39
ld a, [hBattleTurn]
and a
- jr z, .asm_3ec5a
+ jr z, .enemy
ld a, [BattleMonStatus]
and 1 << PAR
ret z
@@ -6949,14 +6967,14 @@ Function3ec39: ; 3ec39
rr b
ld [hli], a
or b
- jr nz, .asm_3ec58
+ jr nz, .player_ok
ld b, $1
-.asm_3ec58
+.player_ok
ld [hl], b
ret
-.asm_3ec5a
+.enemy
ld a, [EnemyMonStatus]
and 1 << PAR
ret z
@@ -6970,18 +6988,18 @@ Function3ec39: ; 3ec39
rr b
ld [hli], a
or b
- jr nz, .asm_3ec74
+ jr nz, .enemy_ok
ld b, $1
-.asm_3ec74
+.enemy_ok
ld [hl], b
ret
; 3ec76
-Function3ec76: ; 3ec76
+ApplyBrnEffectOnAttack: ; 3ec76
ld a, [hBattleTurn]
and a
- jr z, .asm_3ec93
+ jr z, .enemy
ld a, [BattleMonStatus]
and 1 << BRN
ret z
@@ -6993,14 +7011,14 @@ Function3ec76: ; 3ec76
rr b
ld [hli], a
or b
- jr nz, .asm_3ec91
+ jr nz, .player_ok
ld b, $1
-.asm_3ec91
+.player_ok
ld [hl], b
ret
-.asm_3ec93
+.enemy
ld a, [EnemyMonStatus]
and 1 << BRN
ret z
@@ -7012,10 +7030,10 @@ Function3ec76: ; 3ec76
rr b
ld [hli], a
or b
- jr nz, .asm_3eca9
+ jr nz, .enemy_ok
ld b, $1
-.asm_3eca9
+.enemy_ok
ld [hl], b
ret
; 3ecab
@@ -7023,12 +7041,12 @@ Function3ec76: ; 3ec76
ApplyStatLevelMultiplierOnAllStats: ; 3ecab
; Apply StatLevelMultipliers on all 5 Stats
ld c, 0
-.asm_3ecad
+.stat_loop
call ApplyStatLevelMultiplier
inc c
ld a, c
cp 5
- jr nz, .asm_3ecad
+ jr nz, .stat_loop
ret
; 3ecb7
@@ -7041,17 +7059,17 @@ ApplyStatLevelMultiplier: ; 3ecb7
ld hl, BattleMonAttack
ld de, PlayerStats
ld bc, PlayerAtkLevel
- jr z, .asm_3ecd2
+ jr z, .got_pointers
ld hl, EnemyMonAttack
ld de, EnemyStats
ld bc, EnemyAtkLevel
-.asm_3ecd2
+.got_pointers
add c
ld c, a
- jr nc, .asm_3ecd7
+ jr nc, .okay
inc b
-.asm_3ecd7
+.okay
ld a, [bc]
pop bc
ld b, a
@@ -7062,9 +7080,9 @@ ApplyStatLevelMultiplier: ; 3ecb7
ld a, c
add e
ld e, a
- jr nc, .asm_3ece6
+ jr nc, .okay2
inc d
-.asm_3ece6
+.okay2
pop bc
push hl
ld hl, .StatLevelMultipliers
@@ -7094,24 +7112,24 @@ ApplyStatLevelMultiplier: ; 3ecb7
sub 999 % $100
ld a, [hQuotient + 1]
sbc 999 / $100
- jp c, .asm_3ed1e
+ jp c, .okay3
ld a, 999 / $100
- ld [$ffb5], a
+ ld [hQuotient + 1], a
ld a, 999 % $100
- ld [$ffb6], a
+ ld [hQuotient + 2], a
-.asm_3ed1e
- ld a, [$ffb5]
+.okay3
+ ld a, [hQuotient + 1]
ld [hli], a
ld b, a
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
ld [hl], a
or b
- jr nz, .asm_3ed29
+ jr nz, .okay4
inc [hl]
-.asm_3ed29
+.okay4
pop bc
ret
; 3ed2b
@@ -7161,18 +7179,18 @@ BadgeStatBoosts: ; 3ed45
; Swap badges 3 (PlainBadge) and 5 (MineralBadge).
ld d, a
- and %00000100
+ and (1 << PLAINBADGE)
rept 2
add a
endr
ld b, a
ld a, d
- and %00010000
+ and (1 << MINERALBADGE)
rrca
rrca
ld c, a
ld a, d
- and %11101011
+ and ((1 << ZEPHYRBADGE) | (1 << HIVEBADGE) | (1 << FOGBADGE) | (1 << STORMBADGE) | (1 << GLACIERBADGE) | (1 << RISINGBADGE))
or b
or c
ld b, a
@@ -7230,29 +7248,29 @@ BoostStat: ; 3ed7c
; 3ed9f
-Function3ed9f: ; 3ed9f
- callab Functionfb4f2
+_LoadBattleFontsHPBar: ; 3ed9f
+ callab LoadBattleFontsHPBar
ret
; 3eda6
-Function3eda6: ; 3eda6
- callab Functionfb50d
+_LoadHPBar: ; 3eda6
+ callab LoadHPBar
ret
; 3edad
-Function3edad: ; 3edad
- ld de, GFX_f8ac0
+LoadHPExpBarGFX: ; unreferenced
+ ld de, EnemyHPBarBorderGFX
ld hl, VTiles2 tile $6c
- lb bc, BANK(GFX_f8ac0), 4
+ lb bc, BANK(EnemyHPBarBorderGFX), 4
call Get1bpp
- ld de, GFX_f8ae0
+ ld de, HPExpBarBorderGFX
ld hl, VTiles2 tile $73
- lb bc, BANK(GFX_f8ae0), 6
+ lb bc, BANK(HPExpBarBorderGFX), 6
call Get1bpp
- ld de, GFX_f8b10
+ ld de, ExpBarGFX
ld hl, VTiles2 tile $55
- lb bc, BANK(GFX_f8b10), 8
+ lb bc, BANK(ExpBarGFX), 8
jp Get2bpp
; 3edd1
@@ -7336,7 +7354,7 @@ endr
; 3ee0f
-Function3ee0f: ; 3ee0f
+Call_PlayBattleAnim_OnlyIfVisible: ; 3ee0f
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
@@ -7352,7 +7370,7 @@ Call_PlayBattleAnim: ; 3ee17
predef_jump PlayBattleAnim
; 3ee27
-Function3ee27: ; 3ee27
+FinishBattleAnim: ; 3ee27
push af
push bc
push de
@@ -7371,6 +7389,7 @@ Function3ee27: ; 3ee27
GiveExperiencePoints: ; 3ee3b
; Give experience.
+; Don't give experience if linked or in the Battle Tower.
ld a, [wLinkMode]
and a
ret nz
@@ -7384,77 +7403,78 @@ GiveExperiencePoints: ; 3ee3b
ld [CurPartyMon], a
ld bc, PartyMon1Species
-.asm_3ee50
- ld hl, $0022
+.loop
+ ld hl, MON_HP
add hl, bc
ld a, [hli]
or [hl]
- jp z, .asm_3f0b9
+ jp z, .skip_stats ; fainted
+
push bc
- ld hl, wc664
+ ld hl, wBattleParticipantsNotFainted
ld a, [CurPartyMon]
ld c, a
- ld b, $2
+ ld b, CHECK_FLAG
ld d, $0
predef FlagPredef
ld a, c
and a
pop bc
- jp z, .asm_3f0b9
- ld hl, $000c
+ jp z, .skip_stats
+ ld hl, MON_STAT_EXP + 1
add hl, bc
ld d, h
ld e, l
ld hl, EnemyMonBaseStats - 1
push bc
ld c, $5
-.asm_3ee7c
+.loop1
inc hl
ld a, [de]
add [hl]
ld [de], a
- jr nc, .asm_3ee89
+ jr nc, .okay1
dec de
ld a, [de]
inc a
- jr z, .asm_3eea4
+ jr z, .next
ld [de], a
inc de
-.asm_3ee89
+.okay1
push hl
push bc
- ld a, PartyMon1PokerusStatus - PartyMon1
+ ld a, MON_PKRUS
call GetPartyParamLocation
ld a, [hl]
and a
pop bc
pop hl
- jr z, .asm_3eea9
+ jr z, .skip
ld a, [de]
add [hl]
ld [de], a
- jr nc, .asm_3eea9
+ jr nc, .skip
dec de
ld a, [de]
inc a
- jr z, .asm_3eea4
+ jr z, .next
ld [de], a
inc de
- jr .asm_3eea9
+ jr .skip
-.asm_3eea4
+.next
ld a, $ff
ld [de], a
inc de
ld [de], a
-.asm_3eea9
+.skip
rept 2
inc de
endr
dec c
- jr nz, .asm_3ee7c
+ jr nz, .loop1
xor a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
@@ -7463,40 +7483,40 @@ endr
ld a, [EnemyMonLevel]
ld [hMultiplier], a
call Multiply
- ld a, $7
+ ld a, 7
ld [hDivisor], a
- ld b, $4
+ ld b, 4
call Divide
pop bc
- ld hl, $0006
+ ld hl, MON_ID
add hl, bc
ld a, [PlayerID]
cp [hl]
- jr nz, .asm_3eedd
+ jr nz, .boosted
inc hl
ld a, [PlayerID + 1]
cp [hl]
ld a, $0
- jr z, .asm_3eee2
+ jr z, .no_boost
-.asm_3eedd
- call DoubleExp
+.boosted
+ call BoostExp
ld a, $1
-.asm_3eee2
+.no_boost
ld [StringBuffer2 + 2], a
ld a, [wBattleMode]
dec a
- call nz, DoubleExp
+ call nz, BoostExp
push bc
- ld a, PartyMon1Item - PartyMon1
+ ld a, MON_ITEM
call GetPartyParamLocation
ld a, [hl]
cp LUCKY_EGG
- call z, DoubleExp
- ld a, [$ffb6]
+ call z, BoostExp
+ ld a, [hQuotient + 2]
ld [StringBuffer2 + 1], a
- ld a, [$ffb5]
+ ld a, [hQuotient + 1]
ld [StringBuffer2], a
ld a, [CurPartyMon]
ld hl, PartyMonNicknames
@@ -7504,35 +7524,35 @@ endr
ld hl, Text_PkmnGainedExpPoint
call BattleTextBox
ld a, [StringBuffer2 + 1]
- ld [$ffb6], a
+ ld [hQuotient + 2], a
ld a, [StringBuffer2]
- ld [$ffb5], a
+ ld [hQuotient + 1], a
pop bc
call Function3f136
push bc
call LoadTileMapToTempTileMap
pop bc
- ld hl, $000a
+ ld hl, MON_EXP + 2
add hl, bc
ld d, [hl]
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
add d
ld [hld], a
ld d, [hl]
- ld a, [$ffb5]
+ ld a, [hQuotient + 1]
adc d
ld [hl], a
- jr nc, .asm_3ef3d
+ jr nc, .skip2
dec hl
inc [hl]
- jr nz, .asm_3ef3d
+ jr nz, .skip2
ld a, $ff
rept 2
ld [hli], a
endr
ld [hl], a
-.asm_3ef3d
+.skip2
ld a, [CurPartyMon]
ld e, a
ld d, $0
@@ -7543,16 +7563,16 @@ endr
call GetBaseData
push bc
ld d, MAX_LEVEL
- callab Function50e47
+ callab CalcExpAtLevel
pop bc
- ld hl, $000a
+ ld hl, MON_EXP + 2
add hl, bc
push bc
- ld a, [hMultiplicand]
+ ld a, [hQuotient]
ld b, a
- ld a, [$ffb5]
+ ld a, [hQuotient + 1]
ld c, a
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
ld d, a
ld a, [hld]
sub d
@@ -7560,7 +7580,7 @@ endr
sbc c
ld a, [hl]
sbc b
- jr c, .asm_3ef74
+ jr c, .max_exp
ld a, b
ld [hli], a
ld a, c
@@ -7568,49 +7588,50 @@ endr
ld a, d
ld [hld], a
-.asm_3ef74
+.max_exp
xor a ; PARTYMON
ld [MonType], a
predef CopyPkmnToTempMon
- callab Function50e1b
+ callab CalcLevel
pop bc
- ld hl, PartyMon1Level - PartyMon1
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
cp MAX_LEVEL
- jp nc, .asm_3f0b9
+ jp nc, .skip_stats
cp d
- jp z, .asm_3f0b9
+ jp z, .skip_stats
+; <NICKNAME> grew to level ##!
ld [wc719], a
ld a, [CurPartyLevel]
push af
ld a, d
ld [CurPartyLevel], a
ld [hl], a
- ld hl, PartyMon1Species - PartyMon1
+ ld hl, MON_SPECIES
add hl, bc
ld a, [hl]
ld [CurSpecies], a
ld [wd265], a
call GetBaseData
- ld hl, $0025
+ ld hl, MON_MAXHP + 1
add hl, bc
ld a, [hld]
ld e, a
ld d, [hl]
push de
- ld hl, $0024
+ ld hl, MON_MAXHP
add hl, bc
ld d, h
ld e, l
- ld hl, $000a
+ ld hl, MON_EXP + 2
add hl, bc
push bc
ld b, $1
predef CalcPkmnStats
pop bc
pop de
- ld hl, $0025
+ ld hl, MON_MAXHP + 1
add hl, bc
ld a, [hld]
sub e
@@ -7629,7 +7650,7 @@ endr
ld d, a
ld a, [CurPartyMon]
cp d
- jr nz, .asm_3f035
+ jr nz, .skip_animation
ld de, BattleMonHP
ld a, [hli]
ld [de], a
@@ -7638,27 +7659,27 @@ endr
ld [de], a
ld de, BattleMonMaxHP
push bc
- ld bc, $000c
+ ld bc, PARTYMON_STRUCT_LENGTH - MON_MAXHP
call CopyBytes
pop bc
- ld hl, $001f
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
ld [BattleMonLevel], a
ld a, [PlayerSubStatus5]
bit SUBSTATUS_TRANSFORMED, a
- jr nz, .asm_3f012
- ld hl, $0026
+ jr nz, .transformed
+ ld hl, MON_ATK
add hl, bc
ld de, PlayerStats
- ld bc, $000a
+ ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK
call CopyBytes
-.asm_3f012
+.transformed
xor a
ld [wd265], a
call ApplyStatLevelMultiplierOnAllStats
- callab Function3ec2c
+ callab ApplyStatusEffectOnPlayerStats
callab BadgeStatBoosts
callab UpdatePlayerHUD
call EmptyBattleTextBox
@@ -7666,13 +7687,13 @@ endr
ld a, $1
ld [hBGMapMode], a
-.asm_3f035
+.skip_animation
callba LevelUpHappinessMod
ld a, [CurBattleMon]
ld b, a
ld a, [CurPartyMon]
cp b
- jr z, .asm_3f057
+ jr z, .skip_animation2
ld de, SFX_HIT_END_OF_EXP_BAR
call PlaySFX
call WaitSFX
@@ -7680,7 +7701,7 @@ endr
call StdBattleTextBox
call LoadTileMapToTempTileMap
-.asm_3f057
+.skip_animation2
xor a ; PARTYMON
ld [MonType], a
predef CopyPkmnToTempMon
@@ -7693,7 +7714,7 @@ endr
predef PrintTempMonStats
ld c, $1e
call DelayFrames
- call Functiona80
+ call WaitPressAorB_BlinkCursor
call Call_LoadTempTileMapToTileMap
xor a ; PARTYMON
ld [MonType], a
@@ -7705,7 +7726,7 @@ endr
ld a, [wc719]
ld b, a
-.asm_3f093
+.level_loop
inc b
ld a, b
ld [CurPartyLevel], a
@@ -7714,7 +7735,7 @@ endr
pop bc
ld a, b
cp c
- jr nz, .asm_3f093
+ jr nz, .level_loop
pop af
ld [CurPartyLevel], a
ld hl, EvolvableFlags
@@ -7725,26 +7746,26 @@ endr
pop af
ld [CurPartyLevel], a
-.asm_3f0b9
+.skip_stats
ld a, [PartyCount]
ld b, a
ld a, [CurPartyMon]
inc a
cp b
- jr z, .asm_3f0d1
+ jr z, .done
ld [CurPartyMon], a
- ld a, PartyMon1Species - PartyMon1
+ ld a, MON_SPECIES
call GetPartyParamLocation
ld b, h
ld c, l
- jp .asm_3ee50
+ jp .loop
-.asm_3f0d1
- jp Function3d57a
+.done
+ jp ResetBattleParticipants
; 3f0d4
Function3f0d4: ; 3f0d4
- ld a, [wc664]
+ ld a, [wBattleParticipantsNotFainted]
ld b, a
ld c, $6
ld d, $0
@@ -7776,19 +7797,23 @@ Function3f0d4: ; 3f0d4
ret
; 3f106
-DoubleExp: ; 3f106
+BoostExp: ; 3f106
+; Multiply experience by 1.5x
push bc
- ld a, [$ffb5]
+; load experience value
+ ld a, [hProduct + 2]
ld b, a
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
ld c, a
+; halve it
srl b
rr c
+; add it back to the whole exp value
add c
- ld [$ffb6], a
- ld a, [$ffb5]
+ ld [hProduct + 3], a
+ ld a, [hProduct + 2]
adc b
- ld [$ffb5], a
+ ld [hProduct + 2], a
pop bc
ret
; 3f11b
@@ -7822,20 +7847,20 @@ Function3f136: ; 3f136
ld hl, CurPartyMon
ld a, [CurBattleMon]
cp [hl]
- jp nz, .asm_3f219
+ jp nz, .finish
ld a, [BattleMonLevel]
cp MAX_LEVEL
- jp nc, .asm_3f219
+ jp nc, .finish
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
ld [wd004], a
push af
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
ld [wd003], a
push af
xor a
- ld [DefaultFlypoint], a
+ ld [wd002], a
xor a ; PARTYMON
ld [MonType], a
predef CopyPkmnToTempMon
@@ -7844,7 +7869,7 @@ Function3f136: ; 3f136
ld e, a
push de
ld de, TempMonExp + 2
- call Function3f39c
+ call CalcExpBar
push bc
ld hl, TempMonExp + 2
ld a, [wd004]
@@ -7864,12 +7889,12 @@ endr
.asm_3f186
ld d, MAX_LEVEL
- callab Function50e47
- ld a, [hMultiplicand]
+ callab CalcExpAtLevel
+ ld a, [hProduct + 1]
ld b, a
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
ld c, a
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
ld d, a
ld hl, TempMonExp + 2
ld a, [hld]
@@ -7887,7 +7912,7 @@ endr
ld [hld], a
.asm_3f1a8
- callab Function50e1b
+ callab CalcLevel
ld a, d
pop bc
pop de
@@ -7932,7 +7957,7 @@ endr
push bc
ld b, d
ld de, TempMonExp + 2
- call Function3f39c
+ call CalcExpBar
ld a, b
pop bc
ld c, a
@@ -7940,11 +7965,11 @@ endr
call Function3f22c
call Function3dfe
pop af
- ld [$ffb5], a
+ ld [hProduct + 2], a
pop af
- ld [$ffb6], a
+ ld [hProduct + 3], a
-.asm_3f219
+.finish
pop bc
ret
; 3f21b
@@ -7968,7 +7993,7 @@ Function3f22c: ; 3f22c
push bc
push de
hlcoord 17, 11
- call Function3f41c
+ call PlaceExpBar
pop de
ld a, $1
ld [hBGMapMode], a
@@ -7984,7 +8009,7 @@ Function3f22c: ; 3f22c
push bc
push de
hlcoord 17, 11
- call Function3f41c
+ call PlaceExpBar
pop de
ld a, $1
ld [hBGMapMode], a
@@ -8012,32 +8037,33 @@ Function3f22c: ; 3f22c
SendOutPkmnText: ; 3f26d
ld a, [wLinkMode]
and a
- jr z, .asm_3f27c
+ jr z, .not_linked
ld hl, JumpText_GoPkmn ; If we're in a LinkBattle print just "Go <PlayerMon>"
- ld a, [wd264] ; besides this variable is set. which stands for ???
+ ld a, [wd264] ; unless this (unidentified) variable is set
and a
- jr nz, .asm_3f2ce
+ jr nz, .skip_to_textbox
-.asm_3f27c
+.not_linked
; Depending on the HP of the enemy Pkmn, the game prints a different text
ld hl, EnemyMonHP
ld a, [hli]
or [hl]
ld hl, JumpText_GoPkmn
- jr z, .asm_3f2ce
+ jr z, .skip_to_textbox
+ ; compute enemy helth remaining as a percentage
xor a
ld [hMultiplicand + 0], a
ld hl, EnemyMonHP
ld a, [hli]
- ld [wc6ea], a
+ ld [wEnemyHPAtTimeOfPlayerSwitch], a
ld [hMultiplicand + 1], a
ld a, [hl]
- ld [wc6eb], a
+ ld [wEnemyHPAtTimeOfPlayerSwitch + 1], a
ld [hMultiplicand + 2], a
- ld a, $19
+ ld a, 25
ld [hMultiplier], a
call Multiply
ld hl, EnemyMonMaxHP
@@ -8048,22 +8074,25 @@ SendOutPkmnText: ; 3f26d
srl a
rr b
ld a, b
- ld b, $4
+ ld b, 4
ld [hDivisor], a
call Divide
+
ld a, [hQuotient + 2]
ld hl, JumpText_GoPkmn
- cp $46
- jr nc, .asm_3f2ce
+ cp 70
+ jr nc, .skip_to_textbox
+
ld hl, JumpText_DoItPkmn
- cp $28
- jr nc, .asm_3f2ce
+ cp 40
+ jr nc, .skip_to_textbox
+
ld hl, JumpText_GoForItPkmn
- cp $a
- jr nc, .asm_3f2ce
- ld hl, JumpText_YourFoesWeakGetmPkmn
+ cp 10
+ jr nc, .skip_to_textbox
-.asm_3f2ce
+ ld hl, JumpText_YourFoesWeakGetmPkmn
+.skip_to_textbox
jp BattleTextBox
; 3f2d1
@@ -8112,13 +8141,13 @@ TextJump_BattleMonNickComma: ; 3f2fa
start_asm
; 3f2ff
-Function3f2ff: ; 3f2ff
+WithdrawPkmnText: ; 3f2ff
; Print text to withdraw Pkmn
; depending on HP the message is different
push de
push bc
ld hl, EnemyMonHP + 1
- ld de, wc6eb
+ ld de, wEnemyHPAtTimeOfPlayerSwitch + 1
ld b, [hl]
dec hl
ld a, [de]
@@ -8129,7 +8158,7 @@ Function3f2ff: ; 3f2ff
ld a, [de]
sbc b
ld [hMultiplicand + 1], a
- ld a, $19
+ ld a, 25
ld [hMultiplier], a
call Multiply
ld hl, EnemyMonMaxHP
@@ -8140,7 +8169,7 @@ Function3f2ff: ; 3f2ff
srl a
rr b
ld a, b
- ld b, $4
+ ld b, 4
ld [hDivisor], a
call Divide
pop bc
@@ -8151,11 +8180,11 @@ Function3f2ff: ; 3f2ff
ret z
ld hl, TextJump_ComeBack
- cp $1e
+ cp 30
ret c
ld hl, TextJump_OKComeBack
- cp $46
+ cp 70
ret c
ld hl, TextJump_GoodComeBack
@@ -8189,23 +8218,23 @@ TextJump_ComeBack: ; 3f35b
; 3f360
-Function3f360: ; 3f360
- ld hl, wc6f0
+HandleSafariAngerEatingStatus: ; unreferenced
+ ld hl, wSafariMonEating
ld a, [hl]
and a
- jr z, .asm_3f36d
+ jr z, .angry
dec [hl]
ld hl, BattleText_WildPkmnIsEating
- jr .asm_3f388
+ jr .finish
-.asm_3f36d
- dec hl
+.angry
+ dec hl ; wSafariMonAngerCount
ld a, [hl]
and a
ret z
dec [hl]
ld hl, BattleText_WildPkmnIsAngry
- jr nz, .asm_3f388
+ jr nz, .finish
push hl
ld a, [EnemyMonSpecies]
ld [CurSpecies], a
@@ -8214,7 +8243,7 @@ Function3f360: ; 3f360
ld [EnemyMonCatchRate], a
pop hl
-.asm_3f388
+.finish
push hl
call Call_LoadTempTileMapToTileMap
pop hl
@@ -8224,19 +8253,22 @@ Function3f360: ; 3f360
FillInExpBar: ; 3f390
push hl
- call Function3f39c
+ call CalcExpBar
pop hl
- ld de, $0007
+ ld de, 7
add hl, de
- jp Function3f41c
+ jp PlaceExpBar
; 3f39c
-Function3f39c: ; 3f39c
+CalcExpBar: ; 3f39c
+; Calculate the percent exp between this level and the next
+; Level in b
push de
ld d, b
push de
- callab Function50e47
+ callab CalcExpAtLevel
pop de
+; exp at current level gets pushed to the stack
ld hl, hMultiplicand
ld a, [hli]
push af
@@ -8244,16 +8276,18 @@ Function3f39c: ; 3f39c
push af
ld a, [hl]
push af
+; next level
inc d
- callab Function50e47
- ld hl, $ffb6
+ callab CalcExpAtLevel
+; back up the next level exp, and subtract the two levels
+ ld hl, hMultiplicand + 2
ld a, [hl]
- ld [$ffba], a
+ ld [hMathBuffer + 2], a
pop bc
sub b
ld [hld], a
ld a, [hl]
- ld [$ffb9], a
+ ld [hMathBuffer + 1], a
pop bc
sbc b
ld [hld], a
@@ -8263,21 +8297,24 @@ Function3f39c: ; 3f39c
sbc b
ld [hl], a
pop de
- ld hl, $ffb5
+
+ ld hl, hMultiplicand + 1
ld a, [hli]
push af
ld a, [hl]
push af
+
+; get the amount of exp remaining to the next level
ld a, [de]
dec de
ld c, a
- ld a, [$ffba]
+ ld a, [hMathBuffer + 2]
sub c
ld [hld], a
ld a, [de]
dec de
ld b, a
- ld a, [$ffb9]
+ ld a, [hMathBuffer + 1]
sbc b
ld [hld], a
ld a, [de]
@@ -8287,6 +8324,7 @@ Function3f39c: ; 3f39c
ld [hld], a
xor a
ld [hl], a
+; multiply by 64
ld a, $40
ld [hMultiplier], a
call Multiply
@@ -8294,10 +8332,10 @@ Function3f39c: ; 3f39c
ld c, a
pop af
ld b, a
-.asm_3f3f4
+.loop
ld a, b
and a
- jr z, .asm_3f40c
+ jr z, .done
srl b
rr c
ld hl, hProduct
@@ -8308,12 +8346,12 @@ Function3f39c: ; 3f39c
rr [hl]
inc hl
rr [hl]
- jr .asm_3f3f4
+ jr .loop
-.asm_3f40c
+.done
ld a, c
ld [hDivisor], a
- ld b, $4
+ ld b, 4
call Divide
ld a, [hQuotient + 2]
ld b, a
@@ -8323,49 +8361,49 @@ Function3f39c: ; 3f39c
ret
; 3f41c
-Function3f41c: ; 3f41c
- ld c, $8
-.asm_3f41e
+PlaceExpBar: ; 3f41c
+ ld c, $8 ; number of tiles
+.loop1
ld a, b
sub $8
- jr c, .asm_3f42c
+ jr c, .next
ld b, a
- ld a, $6a
+ ld a, $6a ; full bar
ld [hld], a
dec c
- jr z, .asm_3f43c
- jr .asm_3f41e
+ jr z, .finish
+ jr .loop1
-.asm_3f42c
+.next
add $8
- jr z, .asm_3f434
- add $54
- jr .asm_3f436
+ jr z, .loop2
+ add $54 ; tile to the left of small exp bar tile
+ jr .skip
-.asm_3f434
- ld a, $62
+.loop2
+ ld a, $62 ; empty bar
-.asm_3f436
+.skip
ld [hld], a
- ld a, $62
+ ld a, $62 ; empty bar
dec c
- jr nz, .asm_3f434
+ jr nz, .loop2
-.asm_3f43c
+.finish
ret
; 3f43d
-Function3f43d: ; 3f43d
+GetMonBackpic: ; 3f43d
ld a, [PlayerSubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
- ld hl, BattleAnimCmd_DD
- jr nz, Function3f46f
+ ld hl, BattleAnimCmd_RaiseSub
+ jr nz, GetBackpic_DoAnim ; substitute
Function3f447: ; 3f447
- ld a, [wc6fe]
+ ld a, [wPlayerMinimized]
and a
- ld hl, BattleAnimCmd_E2
- jr nz, Function3f46f
+ ld hl, BattleAnimCmd_MinimizeOpp
+ jr nz, GetBackpic_DoAnim
ld a, [CurPartySpecies]
push af
ld a, [BattleMonSpecies]
@@ -8379,7 +8417,7 @@ Function3f447: ; 3f447
ret
; 3f46f
-Function3f46f: ; 3f46f
+GetBackpic_DoAnim: ; 3f46f
ld a, [hBattleTurn]
push af
xor a
@@ -8391,17 +8429,17 @@ Function3f46f: ; 3f46f
ret
; 3f47c
-Function3f47c: ; 3f47c
+GetMonFrontpic: ; 3f47c
ld a, [EnemySubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
- ld hl, BattleAnimCmd_DD
- jr nz, Function3f4b4
+ ld hl, BattleAnimCmd_RaiseSub
+ jr nz, GetFrontpic_DoAnim
Function3f486: ; 3f486
- ld a, [wc6fa]
+ ld a, [wEnemyMinimized]
and a
- ld hl, BattleAnimCmd_E2
- jr nz, Function3f4b4
+ ld hl, BattleAnimCmd_MinimizeOpp
+ jr nz, GetFrontpic_DoAnim
ld a, [CurPartySpecies]
push af
@@ -8418,7 +8456,7 @@ Function3f486: ; 3f486
ret
; 3f4b4
-Function3f4b4: ; 3f4b4
+GetFrontpic_DoAnim: ; 3f4b4
ld a, [hBattleTurn]
push af
call SetEnemyTurn
@@ -8440,9 +8478,9 @@ StartBattle: ; 3f4c1
ld a, [TimeOfDayPal]
push af
- call Function3f4dd
- call Function3c000
- call Function3f69e
+ call BattleIntro
+ call SendOutFirstMons
+ call ExitBattle
pop af
ld [TimeOfDayPal], a
scf
@@ -8450,32 +8488,33 @@ StartBattle: ; 3f4c1
; 3f4d9
-Function3f4d9: ; 3f4d9
- call Function3c000
+_SendOutFirstMons: ; 3f4d9
+; unreferenced
+ call SendOutFirstMons
ret
; 3f4dd
-Function3f4dd: ; 3f4dd
+BattleIntro: ; 3f4dd
callba MobileFn_106050 ; mobile
call LoadTrainerOrWildMonPic
xor a
ld [TempBattleMonSpecies], a
ld [wd0d2], a
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
callba PlayBattleMusic
callba ShowLinkBattleParticipants
callba FindFirstAliveMon
call DisableSpriteUpdates
callba ClearBattleRAM
- call Function3f55e
- call Function3f568
+ call InitEnemy
+ call BackUpVBGMap2
ld b, $0
call GetSGBLayout
ld hl, rLCDC
res 6, [hl]
- call Function3fb6c
+ call InitBattleDisplay
call BattleStartMessage
ld hl, rLCDC
set 6, [hl]
@@ -8483,10 +8522,10 @@ Function3f4dd: ; 3f4dd
ld [hBGMapMode], a
call EmptyBattleTextBox
hlcoord 9, 7
- ld bc, 5 << 8 + 11
+ lb bc, 5, 11
call ClearBox
hlcoord 1, 0
- ld bc, 4 << 8 + 10
+ lb bc, 4, 10
call ClearBox
call ClearSprites
ld a, [wBattleMode]
@@ -8509,20 +8548,20 @@ LoadTrainerOrWildMonPic: ; 3f54e
ret
; 3f55e
-Function3f55e: ; 3f55e
+InitEnemy: ; 3f55e
ld a, [OtherTrainerClass]
and a
- jp nz, Function3f594 ; trainer
- jp Function3f607 ; wild
+ jp nz, InitEnemyTrainer ; trainer
+ jp InitEnemyWildmon ; wild
; 3f568
-Function3f568: ; 3f568
+BackUpVBGMap2: ; 3f568
ld a, [rSVBK]
push af
- ld a, $6
+ ld a, $6 ; BANK(w6_d000)
ld [rSVBK], a
ld hl, w6_d000
- ld bc, $400
+ ld bc, $40 tiles ; VBGMap3 - VBGMap2
ld a, $2
call ByteFill
ld a, [rVBK]
@@ -8530,8 +8569,8 @@ Function3f568: ; 3f568
ld a, $1
ld [rVBK], a
ld de, w6_d000
- ld hl, VBGMap0
- ld bc, $0f40
+ ld hl, VBGMap0 ; VBGMap2
+ lb bc, BANK(BackUpVBGMap2), $40
call Request2bpp
pop af
ld [rVBK], a
@@ -8540,7 +8579,7 @@ Function3f568: ; 3f568
ret
; 3f594
-Function3f594: ; 3f594
+InitEnemyTrainer: ; 3f594
ld [TrainerClass], a
callba MobileFn_10606a
xor a
@@ -8558,7 +8597,7 @@ Function3f594: ; 3f594
ld de, VTiles2
callab GetTrainerPic
xor a
- ld [$ffad], a
+ ld [hFillBox], a
dec a
ld [wc6e6], a
hlcoord 12, 0
@@ -8577,7 +8616,7 @@ Function3f594: ; 3f594
ld b, a
.partyloop
push bc
- ld a, PartyMon1HP - PartyMon1
+ ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
or [hl]
@@ -8595,7 +8634,7 @@ Function3f594: ; 3f594
ret
; 3f607
-Function3f607: ; 3f607
+InitEnemyWildmon: ; 3f607
ld a, $1
ld [wBattleMode], a
callba MobileFn_10605d
@@ -8612,18 +8651,18 @@ Function3f607: ; 3f607
predef GetUnownLetter
ld a, [CurPartySpecies]
cp UNOWN
- jr nz, .asm_3f648
+ jr nz, .skip_unown
ld a, [wdef4]
and a
- jr nz, .asm_3f648
+ jr nz, .skip_unown
ld a, [UnownLetter]
ld [wdef4], a
-.asm_3f648
+.skip_unown
ld de, VTiles2
predef Function5108b
xor a
ld [TrainerClass], a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 12, 0
lb bc, 7, 7
predef FillBox
@@ -8683,9 +8722,9 @@ Function3f662: ; 3f662
; 3f69e
-Function3f69e: ; 3f69e
+ExitBattle: ; 3f69e
call Function3f6a5
- call Function3f6d0
+ call CleanUpBattleRAM
ret
; 3f6a5
@@ -8693,7 +8732,7 @@ Function3f6a5: ; 3f6a5
ld a, [wLinkMode]
and a
jr z, .not_linked
- call Function3f759
+ call ShowLinkBattleParticipantsAfterEnd
ld c, 150
call DelayFrames
call Function3f77c
@@ -8703,7 +8742,7 @@ Function3f6a5: ; 3f6a5
ld a, [wBattleResult]
and $f
ret nz
- call Function3f71d
+ call CheckPayDay
xor a
ld [wd1e9], a
predef Function421e6
@@ -8711,7 +8750,7 @@ Function3f6a5: ; 3f6a5
ret
; 3f6d0
-Function3f6d0: ; 3f6d0
+CleanUpBattleRAM: ; 3f6d0
call Function3f998
xor a
ld [Danger], a
@@ -8722,7 +8761,7 @@ Function3f6d0: ; 3f6d0
ld [OtherTrainerClass], a
ld [wd266], a
ld [wd267], a
- ld [wd232], a
+ ld [wForcedSwitch], a
ld [wd0d8], a
ld [wKeyItemsPocketCursor], a
ld [wItemsPocketCursor], a
@@ -8744,7 +8783,7 @@ Function3f6d0: ; 3f6d0
ret
; 3f71d
-Function3f71d: ; 3f71d
+CheckPayDay: ; 3f71d
ld hl, wPayDayMoney
ld a, [hli]
or [hl]
@@ -8753,21 +8792,21 @@ Function3f71d: ; 3f71d
ret z
ld a, [wc73d]
and a
- jr z, .asm_3f73d
+ jr z, .okay
ld hl, wPayDayMoney + 2
sla [hl]
dec hl
rl [hl]
dec hl
rl [hl]
- jr nc, .asm_3f73d
+ jr nc, .okay
ld a, $ff
rept 2
ld [hli], a
endr
ld [hl], a
-.asm_3f73d
+.okay
ld hl, wPayDayMoney + 2
ld de, Money + 2
call Function3d0be
@@ -8777,13 +8816,13 @@ endr
bit 0, a
ret z
call ClearTileMap
- call WhiteBGMap
+ call ClearBGPalettes
ret
; 3f759
-Function3f759: ; 3f759
+ShowLinkBattleParticipantsAfterEnd: ; 3f759
callba MobileFn_1060df
- callba Function106187
+ callba BackupMobileEventIndex
ld a, [CurOTMon]
ld hl, OTPartyMon1Status
call GetPartyLocation
@@ -8795,54 +8834,60 @@ Function3f759: ; 3f759
; 3f77c
Function3f77c: ; 3f77c
- callba Function3d2e0
- jp c, Function3f80f
- call Function3f830
- jr nz, .asm_3f797
+ callba CheckMobileBattleError
+ jp c, .Mobile_InvalidBattle
+ call IsMobileBattle2
+ jr nz, .proceed
+
ld hl, wcd2a
bit 4, [hl]
- jr z, .asm_3f797
- callba Function2b930
+ jr z, .proceed
-.asm_3f797
+ callba DetermineLinkBattleResult
+
+.proceed
ld a, [wBattleResult]
and $f
cp $1
- jr c, .asm_3f7ad
- jr z, .asm_3f7b8
- callba MobileFn_106107
+ jr c, .victory
+ jr z, .loss
+ callba MobileFn_SaveBattleResult_Draw
ld de, .Draw
- jr .asm_3f7c3
+ jr .store_result
-.asm_3f7ad
- callba MobileFn_1060fb
+.victory
+ callba MobileFn_SaveBattleResult_Win
ld de, .Win
- jr .asm_3f7c3
+ jr .store_result
-.asm_3f7b8
- callba MobileFn_106101
+.loss
+ callba MobileFn_SaveBattleResult_Lose
ld de, .Lose
- jr .asm_3f7c3
+ jr .store_result
-.asm_3f7c3
+.store_result
hlcoord 6, 8
call PlaceString
- callba Function106187
- ld c, $c8
+ callba BackupMobileEventIndex
+ ld c, 200
call DelayFrames
+
ld a, BANK(sLinkBattleStats)
call GetSRAMBank
+
call Function3fa42
call Function3f85f
+
call CloseSRAM
- call Function3f830
- jr z, .asm_3f7ee
- call Functiona80
+
+ call IsMobileBattle2
+ jr z, .mobile
+ call WaitPressAorB_BlinkCursor
call ClearTileMap
ret
-.asm_3f7ee
- ld c, $c8
+.mobile
+ ld c, 200
call DelayFrames
call ClearTileMap
ret
@@ -8857,11 +8902,11 @@ Function3f77c: ; 3f77c
; 3f80f
-Function3f80f: ; 3f80f
+.Mobile_InvalidBattle: ; 3f80f
hlcoord 6, 8
ld de, .Invalid
call PlaceString
- ld c, $c8
+ ld c, 200
call DelayFrames
call ClearTileMap
ret
@@ -8872,7 +8917,7 @@ Function3f80f: ; 3f80f
; 3f830
-Function3f830: ; 3f830
+IsMobileBattle2: ; 3f830
ld a, [wLinkMode]
cp LINK_MOBILE
ret
@@ -8882,7 +8927,9 @@ Function3f830: ; 3f830
Function3f836: ; 3f836
ld a, BANK(sLinkBattleStats)
call GetSRAMBank
+
call Function3f85f
+
call CloseSRAM
hlcoord 0, 0, AttrMap
xor a
@@ -8894,7 +8941,7 @@ Function3f836: ; 3f836
call SetPalettes
ld c, $8
call DelayFrames
- call Functiona80
+ call WaitPressAorB_BlinkCursor
ret
; 3f85f
@@ -8920,7 +8967,7 @@ Function3f85f: ; 3f85f
push hl
ld h, d
ld l, e
- ld de, DefaultFlypoint
+ ld de, wd002
ld bc, $000a
call CopyBytes
ld a, $50
@@ -8928,7 +8975,7 @@ Function3f85f: ; 3f85f
inc de
ld bc, $0006
call CopyBytes
- ld de, DefaultFlypoint
+ ld de, wd002
pop hl
call PlaceString
pop hl
@@ -9145,16 +9192,16 @@ GetRoamMonSpecies: ; 3fa31
Function3fa42: ; 3fa42
ld hl, wd276
ld de, StringBuffer1
- ld bc, $0002
+ ld bc, 2
call CopyBytes
ld hl, wd26b
- ld bc, $000a
+ ld bc, 10
call CopyBytes
- ld hl, $b254
+ ld hl, s1_b254
call Function3faa0
- ld hl, $b266
- ld d, $5
-.asm_3fa62
+ ld hl, s1_b266
+ ld d, 5
+.loop
push hl
rept 2
inc hl
@@ -9164,38 +9211,38 @@ rept 2
dec hl
endr
and a
- jr z, .asm_3fa85
+ jr z, .copy
push de
- ld bc, $000c
+ ld bc, 12
ld de, StringBuffer1
call CompareLong
pop de
pop hl
- jr c, .asm_3fa99
- ld bc, $0012
+ jr c, .done
+ ld bc, 18
add hl, bc
dec d
- jr nz, .asm_3fa62
- ld bc, $ffee
+ jr nz, .loop
+ ld bc, -18
add hl, bc
push hl
-.asm_3fa85
+.copy
ld d, h
ld e, l
ld hl, StringBuffer1
- ld bc, $000c
+ ld bc, 12
call CopyBytes
- ld b, $6
+ ld b, 6
xor a
-.asm_3fa93
+.loop2
ld [de], a
inc de
dec b
- jr nz, .asm_3fa93
+ jr nz, .loop2
pop hl
-.asm_3fa99
+.done
call Function3faa0
call Function3fac8
ret
@@ -9205,13 +9252,13 @@ Function3faa0: ; 3faa0
ld a, [wBattleResult]
and $f
cp $1
- ld bc, $000d
- jr c, .asm_3fab4
- ld bc, $000f
- jr z, .asm_3fab4
- ld bc, $0011
+ ld bc, 13
+ jr c, .okay
+ ld bc, 15
+ jr z, .okay
+ ld bc, 17
-.asm_3fab4
+.okay
add hl, bc
call Function3fabe
ret nc
@@ -9235,9 +9282,9 @@ Function3fabe: ; 3fabe
Function3fac8: ; 3fac8
ld b, $5
- ld hl, $b277
- ld de, DefaultFlypoint
-.asm_3fad0
+ ld hl, s1_b277
+ ld de, wd002
+.loop
push bc
push de
push hl
@@ -9253,21 +9300,21 @@ Function3fac8: ; 3fac8
ld a, c
ld [de], a
inc de
- ld bc, $0012
+ ld bc, 18
add hl, bc
pop bc
dec b
- jr nz, .asm_3fad0
+ jr nz, .loop
ld b, $0
ld c, $1
-.asm_3faed
+.loop2
ld a, b
rept 2
add b
endr
ld e, a
ld d, $0
- ld hl, DefaultFlypoint
+ ld hl, wd002
add hl, de
push hl
ld a, c
@@ -9276,7 +9323,7 @@ rept 2
endr
ld e, a
ld d, $0
- ld hl, DefaultFlypoint
+ ld hl, wd002
add hl, de
ld d, h
ld e, l
@@ -9285,45 +9332,45 @@ endr
ld c, $3
call StringCmp
pop bc
- jr z, .asm_3fb10
- jr nc, .asm_3fb1f
+ jr z, .equal
+ jr nc, .done
-.asm_3fb10
+.equal
inc c
ld a, c
cp $5
- jr nz, .asm_3faed
+ jr nz, .loop2
inc b
ld c, b
inc c
ld a, b
cp $4
- jr nz, .asm_3faed
+ jr nz, .loop2
ret
-.asm_3fb1f
+.done
push bc
ld a, b
- ld bc, $0012
- ld hl, $b266
+ ld bc, 18
+ ld hl, s1_b266
call AddNTimes
push hl
- ld de, DefaultFlypoint
- ld bc, $0012
+ ld de, wd002
+ ld bc, 18
call CopyBytes
pop hl
pop bc
push hl
ld a, c
- ld bc, $0012
- ld hl, $b266
+ ld bc, 18
+ ld hl, s1_b266
call AddNTimes
pop de
push hl
- ld bc, $0012
+ ld bc, 18
call CopyBytes
- ld hl, DefaultFlypoint
- ld bc, $0012
+ ld hl, wd002
+ ld bc, 18
pop de
call CopyBytes
ret
@@ -9341,10 +9388,10 @@ Function3fb54: ; 3fb54
ld a, [hld]
adc b
ld b, a
- jr nc, .asm_3fb63
+ jr nc, .okay
inc e
-.asm_3fb63
+.okay
ld a, [hld]
add c
ld c, a
@@ -9356,21 +9403,21 @@ Function3fb54: ; 3fb54
ret
; 3fb6c
-Function3fb6c: ; 3fb6c
- call Function3fbf8
+InitBattleDisplay: ; 3fb6c
+ call .InitBackPic
hlcoord 0, 12
- ld b, $4
- ld c, $12
+ ld b, 4
+ ld c, 18
call TextBox
callba MobileTextBorder
hlcoord 1, 5
lb bc, 3, 7
call ClearBox
- call Functione51
- call Function3ed9f
- call Function3fbd6
+ call LoadStandardFont
+ call _LoadBattleFontsHPBar
+ call .BlankBGMap
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld [hSCY], a
ld a, $90
ld [hWY], a
@@ -9378,13 +9425,13 @@ Function3fb6c: ; 3fb6c
call WaitBGMap
xor a
ld [hBGMapMode], a
- callba Function4e980
+ callba SlideBattlePics
ld a, $1
ld [hBGMapMode], a
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 6
- ld bc, $0606
+ lb bc, 6, 6
predef FillBox
xor a
ld [hWY], a
@@ -9401,32 +9448,35 @@ Function3fb6c: ; 3fb6c
ret
; 3fbd6
-Function3fbd6: ; 3fbd6
+.BlankBGMap: ; 3fbd6
ld a, [rSVBK]
push af
ld a, $6
ld [rSVBK], a
+
ld hl, w6_d000
- ld bc, $400
- ld a, $7f
+ ld bc, w6_d400 - w6_d000
+ ld a, " "
call ByteFill
+
ld de, w6_d000
ld hl, VBGMap0
- lb bc, BANK(Function3fbd6), $40
+ lb bc, BANK(.BlankBGMap), $40
call Request2bpp
+
pop af
ld [rSVBK], a
ret
; 3fbf8
-Function3fbf8: ; 3fbf8
- call GetBattleBackpic
- call Function3fc30
+.InitBackPic: ; 3fbf8
+ call GetTrainerBackpic
+ call CopyBackpic
ret
; 3fbff
-GetBattleBackpic: ; 3fbff
+GetTrainerBackpic: ; 3fbff
; Load the player character's backpic (6x6) into VRAM starting from $9310.
; Special exception for Dude.
@@ -9461,7 +9511,7 @@ GetBattleBackpic: ; 3fbff
; 3fc30
-Function3fc30: ; 3fc30
+CopyBackpic: ; 3fc30
ld a, [rSVBK]
push af
ld a, $6
@@ -9476,9 +9526,9 @@ Function3fc30: ; 3fc30
ld [rSVBK], a
call Function3fc5b
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 6
- ld bc, $0606
+ lb bc, 6, 6
predef FillBox
ret
; 3fc5b
@@ -9489,10 +9539,10 @@ Function3fc5b: ; 3fc5b
ld [hMapObjectIndexBuffer], a
ld b, $6
ld e, $a8
-.asm_3fc65
+.outer_loop
ld c, $3
ld d, $40
-.asm_3fc69
+.inner_loop
ld [hl], d
inc hl
ld [hl], e
@@ -9507,7 +9557,7 @@ Function3fc5b: ; 3fc5b
add $8
ld d, a
dec c
- jr nz, .asm_3fc69
+ jr nz, .inner_loop
ld a, [hMapObjectIndexBuffer]
add $3
ld [hMapObjectIndexBuffer], a
@@ -9515,7 +9565,7 @@ Function3fc5b: ; 3fc5b
add $8
ld e, a
dec b
- jr nz, .asm_3fc65
+ jr nz, .outer_loop
ret
; 3fc8b
@@ -9523,7 +9573,7 @@ Function3fc5b: ; 3fc5b
BattleStartMessage: ; 3fc8b
ld a, [wBattleMode]
dec a
- jr z, .asm_3fcaa
+ jr z, .wild
ld de, SFX_SHINE
call PlaySFX
@@ -9535,66 +9585,66 @@ BattleStartMessage: ; 3fc8b
callba Battle_GetTrainerName
ld hl, WantsToBattleText
- jr .asm_3fd0e
+ jr .PlaceBattleStartText
-.asm_3fcaa
- call Function3da79
- jr nc, .asm_3fcc2
+.wild
+ call BattleCheckEnemyShininess
+ jr nc, .not_shiny
xor a
ld [wcfca], a
ld a, 1
ld [hBattleTurn], a
ld a, 1
- ld [wc689], a
+ ld [wKickCounter], a
ld de, ANIM_SEND_OUT_MON
call Call_PlayBattleAnim
-.asm_3fcc2
+.not_shiny
callba CheckSleepingTreeMon
- jr c, .asm_3fceb
+ jr c, .skip_cry
callba CheckBattleScene
- jr c, .asm_3fce0
+ jr c, .cry_no_anim
hlcoord 12, 0
ld d, $0
- ld e, $1
- predef Functiond008e
- jr .asm_3fceb
+ ld e, ANIM_MON_NORMAL
+ predef AnimateFrontpic
+ jr .skip_cry
-.asm_3fce0
+.cry_no_anim
ld a, $0f
ld [CryTracks], a
ld a, [TempEnemyMonSpecies]
call PlayStereoCry
-.asm_3fceb
+.skip_cry
ld a, [BattleType]
cp BATTLETYPE_FISH
- jr nz, .asm_3fcfd
+ jr nz, .NotFishing
callba MobileFn_106086
ld hl, HookedPokemonAttackedText
- jr .asm_3fd0e
+ jr .PlaceBattleStartText
-.asm_3fcfd
+.NotFishing
ld hl, PokemonFellFromTreeText
cp BATTLETYPE_TREE
- jr z, .asm_3fd0e
+ jr z, .PlaceBattleStartText
ld hl, WildCelebiAppearedText
cp BATTLETYPE_CELEBI
- jr z, .asm_3fd0e
+ jr z, .PlaceBattleStartText
ld hl, WildPokemonAppearedText
-.asm_3fd0e
+.PlaceBattleStartText
push hl
callba Function2c000
pop hl
call StdBattleTextBox
- call Function3f830
+ call IsMobileBattle2
ret nz
ld c, $2
diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm
index a337d458b..1113f968f 100644
--- a/battle/effect_command_pointers.asm
+++ b/battle/effect_command_pointers.asm
@@ -1,180 +1,179 @@
-
dw 0 ; padding
BattleCommandPointers: ; 3fd28
- dw BattleCommand01 ; 34084
- dw BattleCommand02 ; 343db
- dw BattleCommand03 ; 34541
- dw BattleCommand04 ; 34555
- dw BattleCommand05 ; 34631
- dw BattleCommand06 ; 352dc
- dw BattleCommand_CalcDamageTypeMultiplier ; 346d2 - 07
- dw BattleCommand08 ; 34cfd
- dw BattleCommand09 ; 34d32
- dw BattleCommand0a ; 34eee
- dw BattleCommand0b ; 34f60
- dw BattleCommand0c ; 35004
- dw BattleCommand0d ; 35023
- dw BattleCommand0e ; 3505e
- dw BattleCommand0f ; 35175
- dw BattleCommand10 ; 351ad
- dw BattleCommand11 ; 351c0
- dw BattleCommand12 ; 35250
- dw BattleCommand13 ; 35eee
- dw BattleCommand14 ; 35e5c
- dw BattleCommand15 ; 35fff
- dw BattleCommand16 ; 36008
- dw BattleCommand17 ; 3608c
- dw BattleCommand18 ; 36102
- dw BattleCommand19 ; 36165
- dw BattleCommand1a ; 37380
- dw BattleCommand1b ; 373c9
- dw BattleCommand1c ; 361e4
- dw BattleCommand1d ; 362e3
- dw BattleCommand1e ; 3705c
- dw BattleCommand1f ; 3707f
- dw BattleCommand20 ; 3710e
- dw BattleCommand21 ; 36671
- dw BattleCommand22 ; 366e5
- dw BattleCommand23 ; 3680f
- dw BattleCommand24 ; 369b6
- dw BattleCommand25 ; 36aa0
- dw BattleCommand26 ; 36af3
- dw BattleCommand27 ; 36cb2
- dw BattleCommand28 ; 36c7e
- dw BattleCommand29 ; 36c98
- dw BattleCommand2a ; 36d3b
- dw BattleCommand2b ; 36d1d
- dw BattleCommand2c ; 3713e
- dw BattleCommand2d ; 371cd
- dw BattleCommand2e ; 372fc
- dw BattleCommand2f ; 35f2c
- dw BattleCommand30 ; 36dc7
- dw BattleCommand31 ; 36e7c
- dw BattleCommand32 ; 36f0b
- dw BattleCommand33 ; 36f46
- dw BattleCommand34 ; 37418
- dw BattleCommand35 ; 36f9d
- dw BattleCommand36 ; 36fe1
- dw BattleCommand37 ; 36fed
- dw BattleCommand38 ; 37e85
- dw BattleCommand39 ; 36b4d
- dw BattleCommand3a ; 36b3a
- dw BattleCommand3b ; 36c2d
+ dw BattleCommand_CheckTurn ; 34084
+ dw BattleCommand_CheckObedience ; 343db
+ dw BattleCommand_UsedMoveText ; 34541
+ dw BattleCommand_DoTurn ; 34555
+ dw BattleCommand_Critical ; 34631
+ dw BattleCommand_DamageStats ; 352dc
+ dw BattleCommand_Stab ; 346d2 - 07
+ dw BattleCommand_DamageVariation ; 34cfd
+ dw BattleCommand_CheckHit ; 34d32
+ dw BattleCommand_LowerSub ; 34eee
+ dw BattleCommand_HitTargetNoSub ; 34f60
+ dw BattleCommand_RaiseSub ; 35004
+ dw BattleCommand_FailureText ; 35023
+ dw BattleCommand_CheckFaint ; 3505e
+ dw BattleCommand_CriticalText ; 35175
+ dw BattleCommand_SuperEffectiveText ; 351ad
+ dw BattleCommand_CheckDestinyBond ; 351c0
+ dw BattleCommand_BuildOpponentRage ; 35250
+ dw BattleCommand_PoisonTarget ; 35eee
+ dw BattleCommand_SleepTarget ; 35e5c
+ dw BattleCommand_DrainTarget ; 35fff
+ dw BattleCommand_EatDream ; 36008
+ dw BattleCommand_BurnTarget ; 3608c
+ dw BattleCommand_FreezeTarget ; 36102
+ dw BattleCommand_ParalyzeTarget ; 36165
+ dw BattleCommand_SelfDestruct ; 37380
+ dw BattleCommand_MirrorMove ; 373c9
+ dw BattleCommand_StatUp ; 361e4
+ dw BattleCommand_StatDown ; 362e3
+ dw BattleCommand_PayDay ; 3705c
+ dw BattleCommand_Conversion ; 3707f
+ dw BattleCommand_ResetStats ; 3710e
+ dw BattleCommand_StoreEnergy ; 36671
+ dw BattleCommand_UnleashEnergy ; 366e5
+ dw BattleCommand_ForceSwitch ; 3680f
+ dw BattleCommand_EndLoop ; 369b6
+ dw BattleCommand_FlinchTarget ; 36aa0
+ dw BattleCommand_OHKO ; 36af3
+ dw BattleCommand_Recoil ; 36cb2
+ dw BattleCommand_Mist ; 36c7e
+ dw BattleCommand_FocusEnergy ; 36c98
+ dw BattleCommand_Confuse ; 36d3b
+ dw BattleCommand_ConfuseTarget ; 36d1d
+ dw BattleCommand_Heal ; 3713e
+ dw BattleCommand_Transform ; 371cd
+ dw BattleCommand_Screen ; 372fc
+ dw BattleCommand_Poison ; 35f2c
+ dw BattleCommand_Paralyze ; 36dc7
+ dw BattleCommand_Substitute ; 36e7c
+ dw BattleCommand_RechargeNextTurn ; 36f0b
+ dw BattleCommand_Mimic ; 36f46
+ dw BattleCommand_Metronome ; 37418
+ dw BattleCommand_LeechSeed ; 36f9d
+ dw BattleCommand_Splash ; 36fe1
+ dw BattleCommand_Disable ; 36fed
+ dw BattleCommand_ClearText ; 37e85
+ dw BattleCommand_Charge ; 36b4d
+ dw BattleCommand_CheckCharge ; 36b3a
+ dw BattleCommand_TrapTarget ; 36c2d
dw BattleCommand3c ; 36c2c
- dw BattleCommand3d ; 36751
- dw BattleCommand3e ; 3671a
- dw BattleCommand3f ; 35726
- dw BattleCommand40 ; 35813
- dw BattleCommand41 ; 35864
- dw BattleCommand42 ; 35926
- dw BattleCommand43 ; 359d0
- dw BattleCommand44 ; 359e6
- dw BattleCommand45 ; 35a53
- dw BattleCommand46 ; 35a74
- dw BattleCommand47 ; 35b16
- dw BattleCommand48 ; 35b33
- dw BattleCommand49 ; 35bff
- dw BattleCommand4a ; 35c0f
- dw BattleCommand4b ; 35c94
- dw BattleCommand4c ; 35cc9
- dw BattleCommand4d ; 36ac9
- dw BattleCommand4e ; 346b2
- dw BattleCommand4f ; 346cd
- dw BattleCommand50 ; 37492
- dw BattleCommand51 ; 37517
- dw BattleCommand52 ; 37536
- dw BattleCommand53 ; 37563
- dw BattleCommand54 ; 37588
- dw BattleCommand55 ; 37618
- dw BattleCommand56 ; 37683
- dw BattleCommand57 ; 376a0
- dw BattleCommand58 ; 376c2
- dw BattleCommand59 ; 376f8
- dw BattleCommand5a ; 3766f
- dw BattleCommand5b ; 37718
- dw BattleCommand5c ; 37734
+ dw BattleCommand_Rampage ; 36751
+ dw BattleCommand_CheckRampage ; 3671a
+ dw BattleCommand_ConstantDamage ; 35726
+ dw BattleCommand_Counter ; 35813
+ dw BattleCommand_Encore ; 35864
+ dw BattleCommand_PainSplit ; 35926
+ dw BattleCommand_Snore ; 359d0
+ dw BattleCommand_Conversion2 ; 359e6
+ dw BattleCommand_LockOn ; 35a53
+ dw BattleCommand_Sketch ; 35a74
+ dw BattleCommand_DefrostOpponent ; 35b16
+ dw BattleCommand_SleepTalk ; 35b33
+ dw BattleCommand_DestinyBond ; 35bff
+ dw BattleCommand_Spite ; 35c0f
+ dw BattleCommand_FalseSwipe ; 35c94
+ dw BattleCommand_HealBell ; 35cc9
+ dw BattleCommand_KingsRock ; 36ac9
+ dw BattleCommand_TripleKick ; 346b2
+ dw BattleCommand_KickCounter ; 346cd
+ dw BattleCommand_Thief ; 37492
+ dw BattleCommand_ArenaTrap ; 37517
+ dw BattleCommand_Nightmare ; 37536
+ dw BattleCommand_Defrost ; 37563
+ dw BattleCommand_Curse ; 37588
+ dw BattleCommand_Protect ; 37618
+ dw BattleCommand_Spikes ; 37683
+ dw BattleCommand_Foresight ; 376a0
+ dw BattleCommand_PerishSong ; 376c2
+ dw BattleCommand_StartSandstorm ; 376f8
+ dw BattleCommand_Endure ; 3766f
+ dw BattleCommand_CheckCurl ; 37718
+ dw BattleCommand_RolloutPower ; 37734
dw BattleCommand5d ; 37791
- dw BattleCommand5e ; 37792
- dw BattleCommand5f ; 377ce
- dw BattleCommand60 ; 3784b
- dw BattleCommand61 ; 37874
- dw BattleCommand_DamageCalcWithStats ; 35612 - 62
- dw BattleCommand63 ; 3790e
- dw BattleCommand64 ; 37939
- dw BattleCommand65 ; 37972
- dw BattleCommand66 ; 37991
- dw BattleCommand67 ; 379c9
- dw BattleCommand68 ; 37b1d
- dw BattleCommand69 ; 37b39
- dw BattleCommand6a ; 37b74
- dw BattleCommand6b ; 37b78
- dw BattleCommand6c ; 37b7c
- dw BattleCommand6d ; 37be8
- dw BattleCommand6e ; 37bf4
- dw BattleCommand6f ; 37c07
- dw BattleCommand70 ; 361ac
- dw BattleCommand71 ; 361b0
- dw BattleCommand72 ; 361b4
- dw BattleCommand73 ; 361b8
- dw BattleCommand74 ; 361bc
- dw BattleCommand75 ; 361c0
- dw BattleCommand76 ; 361c4
- dw BattleCommand77 ; 361c8
- dw BattleCommand78 ; 361cc
- dw BattleCommand79 ; 361d0
- dw BattleCommand7a ; 361d4
- dw BattleCommand7b ; 361d8
- dw BattleCommand7c ; 361dc
- dw BattleCommand7d ; 361e0
- dw BattleCommand7e ; 362ad
- dw BattleCommand7f ; 362b1
- dw BattleCommand80 ; 362b5
- dw BattleCommand81 ; 362b9
- dw BattleCommand82 ; 362bd
- dw BattleCommand83 ; 362c1
- dw BattleCommand84 ; 362c5
- dw BattleCommand85 ; 362c9
- dw BattleCommand86 ; 362cd
- dw BattleCommand87 ; 362d1
- dw BattleCommand88 ; 362d5
- dw BattleCommand89 ; 362d9
- dw BattleCommand8a ; 362dd
- dw BattleCommand8b ; 362e1
- dw BattleCommand8c ; 363b8
- dw BattleCommand8d ; 363e9
- dw BattleCommand8e ; 3644c
- dw BattleCommand8f ; 3646a
- dw BattleCommand90 ; 34ecc
- dw BattleCommand91 ; 34fdb
- dw BattleCommand92 ; 34fd1
+ dw BattleCommand_FuryCutter ; 37792
+ dw BattleCommand_Attract ; 377ce
+ dw BattleCommand_HappinessPower ; 3784b
+ dw BattleCommand_Present ; 37874
+ dw BattleCommand_DamageCalc ; 35612 - 62
+ dw BattleCommand_FrustrationPower ; 3790e
+ dw BattleCommand_Safeguard ; 37939
+ dw BattleCommand_CheckSafeguard ; 37972
+ dw BattleCommand_GetMagnitude ; 37991
+ dw BattleCommand_BatonPass ; 379c9
+ dw BattleCommand_Pursuit ; 37b1d
+ dw BattleCommand_ClearHazards ; 37b39
+ dw BattleCommand_HealMorn ; 37b74
+ dw BattleCommand_HealDay ; 37b78
+ dw BattleCommand_HealNite ; 37b7c
+ dw BattleCommand_HiddenPower ; 37be8
+ dw BattleCommand_StartRain ; 37bf4
+ dw BattleCommand_StartSun ; 37c07
+ dw BattleCommand_AttackUp ; 361ac
+ dw BattleCommand_DefenseUp ; 361b0
+ dw BattleCommand_SpeedUp ; 361b4
+ dw BattleCommand_SpecialAttackUp ; 361b8
+ dw BattleCommand_SpecialDefenseUp ; 361bc
+ dw BattleCommand_AccuracyUp ; 361c0
+ dw BattleCommand_EvasionUp ; 361c4
+ dw BattleCommand_AttackUp2 ; 361c8
+ dw BattleCommand_DefenseUp2 ; 361cc
+ dw BattleCommand_SpeedUp2 ; 361d0
+ dw BattleCommand_SpecialAttackUp2 ; 361d4
+ dw BattleCommand_SpecialDefenseUp2 ; 361d8
+ dw BattleCommand_AccuracyUp2 ; 361dc
+ dw BattleCommand_EvasionUp2 ; 361e0
+ dw BattleCommand_AttackDown ; 362ad
+ dw BattleCommand_DefenseDown ; 362b1
+ dw BattleCommand_SpeedDown ; 362b5
+ dw BattleCommand_SpecialAttackDown ; 362b9
+ dw BattleCommand_SpecialDefenseDown ; 362bd
+ dw BattleCommand_AccuracyDown ; 362c1
+ dw BattleCommand_EvasionDown ; 362c5
+ dw BattleCommand_AttackDown2 ; 362c9
+ dw BattleCommand_DefenseDown2 ; 362cd
+ dw BattleCommand_SpeedDown2 ; 362d1
+ dw BattleCommand_SpecialAttackDown2 ; 362d5
+ dw BattleCommand_SpecialDefenseDown2 ; 362d9
+ dw BattleCommand_AccuracyDown2 ; 362dd
+ dw BattleCommand_EvasionDown2 ; 362e1
+ dw BattleCommand_StatUpMessage ; 363b8
+ dw BattleCommand_StatDownMessage ; 363e9
+ dw BattleCommand_StatUpFailText ; 3644c
+ dw BattleCommand_StatDownFailText ; 3646a
+ dw BattleCommand_EffectChance ; 34ecc
+ dw BattleCommand_StatDownAnim ; 34fdb
+ dw BattleCommand_StatUpAnim ; 34fd1
dw BattleCommand_SwitchTurn ; 34ffd - 93
- dw BattleCommand94 ; 36a82
- dw BattleCommand95 ; 37c1a
- dw BattleCommand96 ; 37c55
- dw BattleCommand97 ; 36f1d
- dw BattleCommand98 ; 36f25
- dw BattleCommand99 ; 36f2f
- dw BattleCommand9a ; 37c95
- dw BattleCommand9b ; 37d0d
- dw BattleCommand9c ; 37d34
- dw BattleCommand9d ; 37ce6
- dw BattleCommand9e ; 37d02
- dw BattleCommand9f ; 37d94
- dw BattleCommanda0 ; 36778
- dw BattleCommanda1 ; 35461
- dw BattleCommanda2 ; 3527b
- dw BattleCommanda3 ; 34833
- dw BattleCommanda4 ; 36500
+ dw BattleCommand_FakeOut ; 36a82
+ dw BattleCommand_BellyDrum ; 37c1a
+ dw BattleCommand_PsychUp ; 37c55
+ dw BattleCommand_Rage ; 36f1d
+ dw BattleCommand_DoubleFlyingDamage ; 36f25
+ dw BattleCommand_DoubleUndergroundDamage ; 36f2f
+ dw BattleCommand_MirrorCoat ; 37c95
+ dw BattleCommand_CheckFutureSight ; 37d0d
+ dw BattleCommand_FutureSight ; 37d34
+ dw BattleCommand_DoubleMinimizeDamage ; 37ce6
+ dw BattleCommand_SkipSunCharge ; 37d02
+ dw BattleCommand_ThunderAccuracy ; 37d94
+ dw BattleCommand_Teleport ; 36778
+ dw BattleCommand_BeatUp ; 35461
+ dw BattleCommand_RageDamage ; 3527b
+ dw BattleCommand_ResetTypeMatchup ; 34833
+ dw BattleCommand_AllStatsUp ; 36500
dw BattleCommanda5 ; 35165
- dw BattleCommanda6 ; 365af
- dw BattleCommanda7 ; 365c3
+ dw BattleCommand_RaiseSubNoAnim ; 365af
+ dw BattleCommand_LowerSubNoAnim ; 365c3
dw BattleCommanda8 ; 355b5
- dw BattleCommand_IfAttackMissedResetDamage ; 355d5 - a9
- dw BattleCommandaa ; 37e80
- dw BattleCommandab ; 34f57
- dw BattleCommandac ; 3658f
- dw BattleCommandad ; 351a5
- dw BattleCommandae ; 35197
- dw BattleCommandaf ; 365a7
+ dw BattleCommand_ClearMissDamage ; 355d5 - a9
+ dw BattleCommand_MoveDelay ; 37e80
+ dw BattleCommand_HitTarget ; 34f57
+ dw BattleCommand_TriStatusChance ; 3658f
+ dw BattleCommand_SuperEffectiveLoopText ; 351a5
+ dw BattleCommand_StartLoop ; 35197
+ dw BattleCommand_Curl ; 365a7
; 3fe86
diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm
index 94f68d1ac..38a00bb73 100644
--- a/battle/effect_commands.asm
+++ b/battle/effect_commands.asm
@@ -17,9 +17,9 @@ DoEnemyTurn: ; 3400a
jr z, DoTurn
ld a, [wBattleAction]
- cp $e
+ cp BATTLEACTION_E
jr z, DoTurn
- cp NUM_MOVES
+ cp BATTLEACTION_SWITCH1
ret nc
; fallthrough
@@ -30,12 +30,12 @@ DoTurn: ; 3401d
; Read in and execute the user's move effects for this turn.
xor a
- ld [wc6b4], a
+ ld [wTurnEnded], a
; Effect command checkturn is called for every move.
call CheckTurn
- ld a, [wc6b4]
+ ld a, [wTurnEnded]
and a
ret nz
@@ -119,7 +119,7 @@ endr
CheckTurn:
-BattleCommand01: ; 34084
+BattleCommand_CheckTurn: ; 34084
; checkturn
; Repurposed as hardcoded turn handling. Useless as a command.
@@ -128,12 +128,12 @@ BattleCommand01: ; 34084
ld a, BATTLE_VARS_MOVE
call GetBattleVar
inc a
- jp z, Function34385
+ jp z, EndTurn
xor a
ld [AttackMissed], a
ld [EffectFailed], a
- ld [wc689], a
+ ld [wKickCounter], a
ld [AlreadyDisobeyed], a
ld [AlreadyFailed], a
ld [wc73e], a
@@ -156,7 +156,7 @@ CheckPlayerTurn:
ld hl, MustRechargeText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.no_recharge
@@ -185,7 +185,7 @@ CheckPlayerTurn:
ld hl, UpdatePlayerHUD
call CallBattleCore
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld hl, PlayerSubStatus1
res SUBSTATUS_NIGHTMARE, [hl]
jr .not_asleep
@@ -202,7 +202,7 @@ CheckPlayerTurn:
jr z, .not_asleep
call CantMove
- jp Function34385
+ jp EndTurn
.not_asleep
@@ -222,7 +222,7 @@ CheckPlayerTurn:
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_frozen
@@ -236,7 +236,7 @@ CheckPlayerTurn:
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_flinched
@@ -293,7 +293,7 @@ CheckPlayerTurn:
call HitConfusion
call CantMove
- jp Function34385
+ jp EndTurn
.not_confused
@@ -317,7 +317,7 @@ CheckPlayerTurn:
ld hl, InfatuationText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_infatuated
@@ -334,7 +334,7 @@ CheckPlayerTurn:
call MoveDisabled
call CantMove
- jp Function34385
+ jp EndTurn
.no_disabled_move
@@ -351,7 +351,7 @@ CheckPlayerTurn:
ld hl, FullyParalyzedText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
; 341f0
@@ -371,20 +371,20 @@ CantMove: ; 341f0
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp FLY
- jr z, .asm_3420f
+ jr z, .fly_dig
cp DIG
ret nz
-.asm_3420f
+.fly_dig
res SUBSTATUS_UNDERGROUND, [hl]
res SUBSTATUS_FLYING, [hl]
- jp Function37ece
+ jp AppearUserRaiseSub
; 34216
-Function34216: ; 34216
+OpponentCantMove: ; 34216
call BattleCommand_SwitchTurn
call CantMove
jp BattleCommand_SwitchTurn
@@ -402,7 +402,7 @@ CheckEnemyTurn: ; 3421f
ld hl, MustRechargeText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.no_recharge
@@ -433,7 +433,7 @@ CheckEnemyTurn: ; 3421f
ld hl, UpdateEnemyHUD
call CallBattleCore
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld hl, EnemySubStatus1
res SUBSTATUS_NIGHTMARE, [hl]
jr .not_asleep
@@ -446,7 +446,7 @@ CheckEnemyTurn: ; 3421f
cp SLEEP_TALK
jr z, .not_asleep
call CantMove
- jp Function34385
+ jp EndTurn
.not_asleep
@@ -463,7 +463,7 @@ CheckEnemyTurn: ; 3421f
ld hl, FrozenSolidText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_frozen
@@ -477,7 +477,7 @@ CheckEnemyTurn: ; 3421f
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_flinched
@@ -527,7 +527,7 @@ CheckEnemyTurn: ; 3421f
; 50% chance of hitting itself
call BattleRandom
- cp $80
+ cp 1 + 50 percent
jr nc, .not_confused
; clear confusion-dependent substatus
@@ -538,9 +538,9 @@ CheckEnemyTurn: ; 3421f
ld hl, HurtItselfText
call StdBattleTextBox
- call Function355dd
- call BattleCommand_DamageCalcWithStats
- call BattleCommand0a
+ call HitSelfInConfusion
+ call BattleCommand_DamageCalc
+ call BattleCommand_LowerSub
xor a
ld [wcfca], a
@@ -552,10 +552,10 @@ CheckEnemyTurn: ; 3421f
call z, PlayFXAnimID
ld c, $1
- call Function35d1c
- call BattleCommand0c
+ call EnemyHurtItself
+ call BattleCommand_RaiseSub
call CantMove
- jp Function34385
+ jp EndTurn
.not_confused
@@ -573,13 +573,13 @@ CheckEnemyTurn: ; 3421f
; 50% chance of infatuation
call BattleRandom
- cp $80
+ cp 1 + 50 percent
jr c, .not_infatuated
ld hl, InfatuationText
call StdBattleTextBox
call CantMove
- jp Function34385
+ jp EndTurn
.not_infatuated
@@ -597,7 +597,7 @@ CheckEnemyTurn: ; 3421f
call MoveDisabled
call CantMove
- jp Function34385
+ jp EndTurn
.no_disabled_move
@@ -619,9 +619,9 @@ CheckEnemyTurn: ; 3421f
; 34385
-Function34385: ; 34385
+EndTurn: ; 34385
ld a, $1
- ld [wc6b4], a
+ ld [wTurnEnded], a
jp ResetDamage
; 3438d
@@ -635,7 +635,7 @@ MoveDisabled: ; 3438d
ld a, BATTLE_VARS_MOVE
call GetBattleVar
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetMoveName
ld hl, DisabledMoveText
@@ -651,9 +651,9 @@ HitConfusion: ; 343a5
xor a
ld [CriticalHit], a
- call Function355dd
- call BattleCommand_DamageCalcWithStats
- call BattleCommand0a
+ call HitSelfInConfusion
+ call BattleCommand_DamageCalc
+ call BattleCommand_LowerSub
xor a
ld [wcfca], a
@@ -668,14 +668,14 @@ HitConfusion: ; 343a5
ld hl, UpdatePlayerHUD
call CallBattleCore
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld c, $1
- call Function35d7e
- jp BattleCommand0c
+ call PlayerHurtItself
+ jp BattleCommand_RaiseSub
; 343db
-BattleCommand02: ; 343db
+BattleCommand_CheckObedience: ; 343db
; checkobedience
; Enemy can't disobey
@@ -683,7 +683,7 @@ BattleCommand02: ; 343db
and a
ret nz
- call Function34548
+ call CheckUserIsCharging
ret nz
; If we've already checked this turn
@@ -706,7 +706,7 @@ BattleCommand02: ; 343db
; If the monster's id doesn't match the player's,
; some conditions need to be met.
- ld a, PartyMon1ID - PartyMon1
+ ld a, MON_ID
call BattlePartyAttr
ld a, [PlayerID]
@@ -723,22 +723,22 @@ BattleCommand02: ; 343db
ld hl, JohtoBadges
; risingbadge
- bit 7, [hl]
+ bit RISINGBADGE, [hl]
ld a, MAX_LEVEL + 1
jr nz, .getlevel
; stormbadge
- bit 5, [hl]
+ bit STORMBADGE, [hl]
ld a, 70
jr nz, .getlevel
; fogbadge
- bit 3, [hl]
+ bit FOGBADGE, [hl]
ld a, 50
jr nz, .getlevel
; hivebadge
- bit 1, [hl]
+ bit HIVEBADGE, [hl]
ld a, 30
jr nz, .getlevel
@@ -1006,28 +1006,28 @@ IgnoreSleepOnly: ; 3451f
; 34541
-BattleCommand03: ; 34541
+BattleCommand_UsedMoveText: ; 34541
; usedmovetext
callba DisplayUsedMoveText
ret
; 34548
-Function34548: ; 34548
+CheckUserIsCharging: ; 34548
ld a, [hBattleTurn]
and a
- ld a, [wc732] ; player
+ ld a, [wPlayerCharging] ; player
jr z, .end
- ld a, [wc733] ; enemy
+ ld a, [wEnemyCharging] ; enemy
.end
and a
ret
; 34555
-BattleCommand04: ; 34555
- call Function34548
+BattleCommand_DoTurn: ; 34555
+ call CheckUserIsCharging
ret nz
ld hl, BattleMonPP
@@ -1058,7 +1058,7 @@ BattleCommand04: ; 34555
and 1 << SUBSTATUS_IN_LOOP | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_BIDE
ret nz
- call .asm_345ad
+ call .consume_pp
ld a, b
and a
jp nz, EndMoveEffect
@@ -1077,42 +1077,42 @@ endr
ld hl, PartyMon1PP
ld a, [CurBattleMon]
- jr z, .asm_345a4
+ jr z, .player
-; skip this part entirely if wildbattle
+; mimic this part entirely if wildbattle
ld a, [wBattleMode]
dec a
- jr z, .asm_345c5
+ jr z, .wild
ld hl, OTPartyMon1PP
ld a, [CurOTMon]
-.asm_345a4
+.player
call GetPartyLocation
push hl
- call Function3460b
+ call CheckMimicUsed
pop hl
ret c
-.asm_345ad
+.consume_pp
ld a, [hBattleTurn]
and a
ld a, [CurMoveNum]
- jr z, .asm_345b8
+ jr z, .okay
ld a, [CurEnemyMoveNum]
-.asm_345b8
+.okay
ld c, a
ld b, 0
add hl, bc
ld a, [hl]
and $3f
- jr z, .asm_345e3
+ jr z, .out_of_pp
dec [hl]
ld b, 0
ret
-.asm_345c5
+.wild
ld hl, EnemyMonMoves
ld a, [CurEnemyMoveNum]
ld c, a
@@ -1120,20 +1120,20 @@ endr
add hl, bc
ld a, [hl]
cp MIMIC
- jr z, .asm_345dc
- ld hl, wc735
+ jr z, .mimic
+ ld hl, wWildMonMoves
add hl, bc
ld a, [hl]
cp MIMIC
ret z
-.asm_345dc
- ld hl, wc739
- call .asm_345ad
+.mimic
+ ld hl, wWildMonPP
+ call .consume_pp
ret
-.asm_345e3
- call BattleCommandaa
+.out_of_pp
+ call BattleCommand_MoveDelay
; get move effect
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
@@ -1165,39 +1165,39 @@ endr
db $ff
; 3460b
-Function3460b: ; 3460b
+CheckMimicUsed: ; 3460b
ld a, [hBattleTurn]
and a
ld a, [CurMoveNum]
- jr z, .asm_34616
+ jr z, .player
ld a, [CurEnemyMoveNum]
-.asm_34616
+.player
ld c, a
- ld a, 2
+ ld a, MON_MOVES
call UserPartyAttr
ld a, BATTLE_VARS_MOVE
call GetBattleVar
cp MIMIC
- jr z, .asm_3462f
-
+ jr z, .mimic
+;
ld b, 0
add hl, bc
ld a, [hl]
cp MIMIC
- jr nz, .asm_3462f
+ jr nz, .mimic
scf
ret
-.asm_3462f
+.mimic
and a
ret
; 34631
-BattleCommand05: ; 34631
+BattleCommand_Critical: ; 34631
; critical
; Determine whether this attack's hit will be critical.
@@ -1297,10 +1297,10 @@ endr
; 346b2
-BattleCommand4e: ; 346b2
+BattleCommand_TripleKick: ; 346b2
; triplekick
- ld a, [wc689]
+ ld a, [wKickCounter]
ld b, a
inc b
ld hl, CurDamage + 1
@@ -1308,7 +1308,7 @@ BattleCommand4e: ; 346b2
ld e, a
ld a, [hli]
ld d, a
-.asm_346be
+.next_kick
dec b
ret z
ld a, [hl]
@@ -1319,7 +1319,7 @@ BattleCommand4e: ; 346b2
ld [hli], a
; No overflow.
- jr nc, .asm_346be
+ jr nc, .next_kick
ld a, $ff
ld [hld], a
ld [hl], a
@@ -1327,16 +1327,16 @@ BattleCommand4e: ; 346b2
; 346cd
-BattleCommand4f: ; 346cd
+BattleCommand_KickCounter: ; 346cd
; kickcounter
- ld hl, wc689
+ ld hl, wKickCounter
inc [hl]
ret
; 346d2
-BattleCommand_CalcDamageTypeMultiplier: ; 346d2
+BattleCommand_Stab: ; 346d2
; STAB = Same Type Attack Bonus
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -1368,7 +1368,7 @@ BattleCommand_CalcDamageTypeMultiplier: ; 346d2
.go
ld a, BATTLE_VARS_MOVE_TYPE
call GetBattleVarAddr
- ld [wd265], a
+ ld [wTypeMatchup], a
push hl
push de
@@ -1384,7 +1384,7 @@ BattleCommand_CalcDamageTypeMultiplier: ; 346d2
pop bc
pop de
- ld a, [wd265]
+ ld a, [wTypeMatchup]
cp b
jr z, .stab
cp c
@@ -1512,29 +1512,29 @@ endr
jr .TypesLoop
.end
- call HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
- ld a, [wd265]
+ call BattleCheckTypeMatchup
+ ld a, [wTypeMatchup]
ld b, a
ld a, [TypeModifier]
- and $80
+ and %10000000
or b
ld [TypeModifier], a
ret
; 347c8
-HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn: ; 347c8
+BattleCheckTypeMatchup: ; 347c8
ld hl, EnemyMonType1
ld a, [hBattleTurn]
and a
- jr z, Function347d3
+ jr z, CheckTypeMatchup
ld hl, BattleMonType1
; fallthrough
; 347d3
-Function347d3: ; 347d3
+CheckTypeMatchup: ; 347d3
push hl
push de
push bc
@@ -1545,7 +1545,7 @@ Function347d3: ; 347d3
inc hl
ld c, [hl]
ld a, 10 ; 1.0
- ld [wd265], a
+ ld [wTypeMatchup], a
ld hl, TypeMatchup
.TypesLoop
ld a, [hli]
@@ -1579,7 +1579,7 @@ Function347d3: ; 347d3
ld [hMultiplicand + 1], a
ld a, [hli]
ld [hMultiplicand + 2], a
- ld a, [wd265]
+ ld a, [wTypeMatchup]
ld [hMultiplier], a
call Multiply
ld a, 10
@@ -1589,7 +1589,7 @@ Function347d3: ; 347d3
call Divide
pop bc
ld a, [hQuotient + 2]
- ld [wd265], a
+ ld [wTypeMatchup], a
jr .TypesLoop
.End
@@ -1600,692 +1600,34 @@ Function347d3: ; 347d3
; 34833
-BattleCommanda3: ; 34833
- call HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
- ld a, [wd265]
+BattleCommand_ResetTypeMatchup: ; 34833
+; Reset the type matchup multiplier to 1.0, if the type matchup is not 0.
+; If there is immunity in play, the move automatically misses.
+ call BattleCheckTypeMatchup
+ ld a, [wTypeMatchup]
and a
ld a, 10 ; 1.0
- jr nz, .skip
+ jr nz, .reset
call ResetDamage
xor a
ld [TypeModifier], a
inc a
ld [AttackMissed], a
ret
-.skip
- ld [wd265], a
- ret
-; 3484e
-
-
-Function3484e: ; 3484e
- push hl
- push de
- push bc
- ld a, 10
- ld [wc716], a
- ld hl, PlayerUsedMoves
- ld a, [hl]
- and a
- jr z, .unknown_moves
-
- ld d, NUM_MOVES
- ld e, 0
-.loop
- ld a, [hli]
- and a
- jr z, .exit
- push hl
- dec a
- ld hl, Moves + MOVE_POWER
- call GetMoveAttr
- and a
- jr z, .next
-
- inc hl
- call GetMoveByte
- ld hl, EnemyMonType
- call Function347d3
- ld a, [wd265]
- cp 10 + 1 ; 1.0 + 0.1
- jr nc, .super_effective
- and a
- jr z, .next
- cp 10 ; 1.0
- jr nc, .neutral
-
-.not_very_effective
- ld a, e
- cp 1 ; 0.1
- jr nc, .next
- ld e, 1
- jr .next
-
-.neutral
- ld e, 2
- jr .next
-
-.super_effective
- call Function34931
- pop hl
- jr .done
-
-.next
- pop hl
- dec d
- jr nz, .loop
-
-.exit
- ld a, e
- cp 2
- jr z, .done
- call Function34939
- ld a, e
- and a
- jr nz, .done
- call Function34939
- jr .done
-
-.unknown_moves
- ld a, [BattleMonType1]
- ld b, a
- ld hl, EnemyMonType1
- call Function347d3
- ld a, [wd265]
- cp 10 + 1 ; 1.0 + 0.1
- jr c, .ok
- call Function34931
-.ok
- ld a, [BattleMonType2]
- cp b
- jr z, .ok2
- call Function347d3
- ld a, [wd265]
- cp 10 + 1 ; 1.0 + 0.1
- jr c, .ok2
- call Function34931
-.ok2
-
-.done
- call Function348de
- pop bc
- pop de
- pop hl
- ret
-; 348de
-
-
-Function348de: ; 348de
- ld de, EnemyMonMoves
- ld b, NUM_MOVES + 1
- ld c, 0
-
- ld a, [wd265]
- push af
-.loop
- dec b
- jr z, .exit
-
- ld a, [de]
- and a
- jr z, .exit
-
- inc de
- dec a
- ld hl, Moves + MOVE_POWER
- call GetMoveAttr
- and a
- jr z, .loop
-
- inc hl
- call GetMoveByte
- ld hl, BattleMonType1
- call Function347d3
-
- ld a, [wd265]
- ; immune
- and a
- jr z, .loop
-
- ; not very effective
- inc c
- cp 10
- jr c, .loop
-
- ; neutral
-rept 5
- inc c
-endr
- cp 10
- jr z, .loop
-
- ; super effective
- ld c, 100
- jr .loop
-
-.exit
- pop af
- ld [wd265], a
-
- ld a, c
- and a
- jr z, .doubledown ; double down
- cp 5
- jr c, Function34931 ; down
- cp 100
- ret c
- jr Function34939 ; up
-
-.doubledown
- call Function34931
-
- ; fallthrough
-; 34931
-
-
-Function34931: ; 34931
- ld a, [wc716]
- dec a
- ld [wc716], a
- ret
-; 34939
-
-
-Function34939: ; 34939
- ld a, [wc716]
- inc a
- ld [wc716], a
- ret
-; 34941
-
-
-Function34941: ; 34941
- xor a
- ld [wc717], a
- call CountEnemyAliveMons
- ret c
-
- ld a, [EnemySubStatus1]
- bit SUBSTATUS_PERISH, a
- jr z, .no_perish
-
- ld a, [EnemyPerishCount]
- cp 1
- jr nz, .no_perish
-
- ; Perish count is 1
-
- call CountEnemyAliveMons
- call Function34b77
- call Function34b20
- call Function34a85
-
- ld a, e
- cp 2
- jr nz, .asm_34971
-
- ld a, [wc716]
- add $30
- ld [wc717], a
- ret
-
-.asm_34971
- call CountEnemyAliveMons
- sla c
- sla c
- ld b, $ff
-
-.asm_3497a
- inc b
- sla c
- jr nc, .asm_3497a
-
- ld a, b
- add $30
- ld [wc717], a
- ret
-
-.no_perish
-
- call Function3484e
- ld a, [wc716]
- cp 11
- ret nc
-
- ld a, [LastEnemyCounterMove]
- and a
- jr z, .asm_349d2
-
- call Function34a2a
- ld a, [wc716]
- and a
- jr z, .asm_349d2
-
- ld c, a
- call Function34aa7
- ld a, [wc716]
- cp $ff
- ret z
-
- ld b, a
- ld a, e
- cp 2
- jr z, .asm_349be
-
- call Function3484e
- ld a, [wc716]
- cp 10
- ret nc
-
- ld a, b
- add $10
- ld [wc717], a
- ret
-
-.asm_349be
- ld c, $10
- call Function3484e
- ld a, [wc716]
- cp 10
- jr nc, .asm_349cc
- ld c, $20
-
-.asm_349cc
- ld a, b
- add c
- ld [wc717], a
- ret
-
-.asm_349d2
- call Function3484e
- ld a, [wc716]
- cp 10
- ret nc
-
- call CountEnemyAliveMons
- call Function34b77
- call Function34b20
- call Function34a85
-
- ld a, e
- cp $2
- ret nz
-
- ld a, [wc716]
- add $10
- ld [wc717], a
- ret
-; 349f4
-
-
-CountEnemyAliveMons: ; 349f4
- ld a, [OTPartyCount]
- cp 2
- jr c, .only_one
-
- ld d, a
- ld e, 0
- ld b, 1 << (PARTY_LENGTH - 1)
- ld c, 0
- ld hl, OTPartyMon1HP
-
-.loop
- ld a, [CurOTMon]
- cp e
- jr z, .next
-
- push bc
- ld b, [hl]
- inc hl
- ld a, [hld]
- or b
- pop bc
- jr z, .next
-
- ld a, c
- or b
- ld c, a
-
-.next
- srl b
- push bc
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- pop bc
- inc e
- dec d
- jr nz, .loop
-
- ld a, c
- and a
- jr nz, .more_than_one
-
-.only_one
- scf
- ret
-
-.more_than_one
- and a
- ret
-; 34a2a
-
-
-Function34a2a: ; 34a2a
- ld hl, OTPartyMon1
- ld a, [OTPartyCount]
- ld b, a
- ld c, 1 << (PARTY_LENGTH - 1)
- ld d, 0
- xor a
- ld [wc716], a
-
-.asm_34a39
- ld a, [CurOTMon]
- cp d
- push hl
- jr z, .asm_34a77
-
- push hl
- push bc
- ld bc, PartyMon1HP - PartyMon1
- add hl, bc
- pop bc
- ld a, [hli]
- or [hl]
- pop hl
- jr z, .asm_34a77
-
- ld a, [hl]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [LastEnemyCounterMove]
- dec a
- ld hl, Moves + MOVE_POWER
- call GetMoveAttr
- and a
- jr z, .asm_34a77
-
- inc hl
- call GetMoveByte
- ld hl, BaseType
- call Function347d3
- ld a, [wd265]
- and a
- jr nz, .asm_34a77
-
- ld a, [wc716]
- or c
- ld [wc716], a
-.asm_34a77
- pop hl
- dec b
- ret z
-
- push bc
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- pop bc
-
- inc d
- srl c
- jr .asm_34a39
-; 34a85
-
-
-Function34a85: ; 34a85
- push bc
- ld a, [OTPartyCount]
- ld e, a
- ld hl, OTPartyMon1HP
- ld b, 1 << (PARTY_LENGTH - 1)
- ld c, 0
-.asm_34a91
- ld a, [hli]
- or [hl]
- jr z, .asm_34a98
-
- ld a, b
- or c
- ld c, a
-
-.asm_34a98
- srl b
- push bc
- ld bc, PartyMon2HP - (PartyMon1HP + 1)
- add hl, bc
- pop bc
- dec e
- jr nz, .asm_34a91
-
- ld a, c
- pop bc
-
- and c
- ld c, a
-
- ; fallthrough
-; 34aa7
-
-Function34aa7: ; 34aa7
-
- ld a, $ff
- ld [wc716], a
- ld hl, OTPartyMon1Moves
- ld b, 1 << (PARTY_LENGTH - 1)
- ld d, 0
- ld e, 0
-.asm_34ab5
- ld a, b
- and c
- jr z, .asm_34b00
-
- push hl
- push bc
- ld b, NUM_MOVES
- ld c, 0
-.asm_34abf
- ld a, [hli]
- and a
- push hl
- jr z, .asm_34aef
-
- dec a
- ld hl, Moves + MOVE_POWER
- call GetMoveAttr
- and a
- jr z, .asm_34ae9
-
- inc hl
- call GetMoveByte
- ld hl, BattleMonType1
- call Function347d3
- ld a, [wd265]
- cp 10
- jr c, .asm_34ae9
-
- ld e, 1
- cp 11
- jr c, .asm_34ae9
-
- ld e, 2
- jr .asm_34aef
-
-.asm_34ae9
- pop hl
- dec b
- jr nz, .asm_34abf
-
- jr .asm_34af0
-
-.asm_34aef
- pop hl
-.asm_34af0
- ld a, e
- pop bc
- pop hl
- cp $2
- jr z, .asm_34b0e
-
- cp $1
- jr nz, .asm_34b00
-
- ld a, d
- or b
- ld d, a
- jr .asm_34b00
-
-.asm_34b00
- push bc
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- pop bc
- srl b
- jr nc, .asm_34ab5
-
- ld a, d
- ld b, a
- and a
- ret z
-
-.asm_34b0e
- push bc
- sla b
- sla b
- ld c, $ff
-.asm_34b15
- inc c
- sla b
- jr nc, .asm_34b15
-
- ld a, c
- ld [wc716], a
- pop bc
- ret
-; 34b20
-
-
-Function34b20: ; 34b20
- push bc
- ld hl, OTPartySpecies
- ld b, 1 << (PARTY_LENGTH - 1)
- ld c, 0
-
-.asm_34b28
- ld a, [hli]
- cp $ff
- jr z, .asm_34b72
-
- push hl
- ld [CurSpecies], a
- call GetBaseData
- ld a, [LastEnemyCounterMove]
- and a
- jr z, .asm_34b4a
-
- dec a
- ld hl, Moves + MOVE_POWER
- call GetMoveAttr
- and a
- jr z, .asm_34b4a
-
- inc hl
- call GetMoveByte
- jr .asm_34b5d
-
-.asm_34b4a
- ld a, [BattleMonType1]
- ld hl, BaseType
- call Function347d3
- ld a, [wd265]
- cp $b
- jr nc, .asm_34b6d
- ld a, [BattleMonType2]
-
-.asm_34b5d
- ld hl, BaseType
- call Function347d3
- ld a, [wd265]
- cp $b
- jr nc, .asm_34b6d
-
- ld a, b
- or c
- ld c, a
-
-.asm_34b6d
- srl b
- pop hl
- jr .asm_34b28
-
-.asm_34b72
- ld a, c
- pop bc
- and c
- ld c, a
- ret
-; 34b77
-
-
-Function34b77: ; 34b77
- push bc
- ld de, OTPartySpecies
- ld b, 1 << (PARTY_LENGTH - 1)
- ld c, 0
- ld hl, OTPartyMon1HP
-
-.loop
- ld a, [de]
- inc de
- cp $ff
- jr z, .done
-
- push hl
- push bc
- ld b, [hl]
- inc hl
- ld c, [hl]
-rept 2
- inc hl
-endr
- srl c
- rl b
- srl c
- rl b
- ld a, [hld]
- cp c
- ld a, [hl]
- sbc b
- pop bc
- jr nc, .next
- ld a, b
- or c
- ld c, a
-
-.next
- srl b
- pop hl
- push bc
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- pop bc
- jr .loop
-
-.done
- ld a, c
- pop bc
- and c
- ld c, a
+.reset
+ ld [wTypeMatchup], a
ret
-; 34bb1
+; 3484e
+INCLUDE "battle/ai/switch.asm"
TypeMatchup: ; 34bb1
INCLUDE "battle/type_matchup.asm"
; 34cfd
-BattleCommand08: ; 34cfd
+BattleCommand_DamageVariation: ; 34cfd
; damagevariation
; Modify the damage spread between 85% and 100%.
@@ -2340,7 +1682,7 @@ BattleCommand08: ; 34cfd
; 34d32
-BattleCommand09: ; 34d32
+BattleCommand_CheckHit: ; 34d32
; checkhit
call .DreamEater
@@ -2624,18 +1966,18 @@ BattleCommand09: ; 34d32
ld a, [hQuotient + 1]
or b
jr nz, .asm_34ea2
- ld [$ffb5], a
+ ld [hQuotient + 1], a
ld a, $1
- ld [$ffb6], a
+ ld [hQuotient + 2], a
.asm_34ea2
ld b, c
dec d
jr nz, .asm_34e7a
- ld a, [$ffb5]
+ ld a, [hQuotient + 1]
and a
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
jr z, .asm_34eaf
ld a, $ff
@@ -2662,7 +2004,7 @@ BattleCommand09: ; 34d32
; 34ecc
-BattleCommand90: ; 34ecc
+BattleCommand_EffectChance: ; 34ecc
; effectchance
xor a
@@ -2691,7 +2033,7 @@ BattleCommand90: ; 34ecc
; 34eee
-BattleCommand0a: ; 34eee
+BattleCommand_LowerSub: ; 34eee
; lowersub
ld a, BATTLE_VARS_SUBSTATUS4
@@ -2702,57 +2044,57 @@ BattleCommand0a: ; 34eee
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVar
bit SUBSTATUS_CHARGED, a
- jr nz, .asm_34f18
+ jr nz, .already_charged
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_RAZOR_WIND
- jr z, .asm_34f21
+ jr z, .charge_turn
cp EFFECT_SKY_ATTACK
- jr z, .asm_34f21
+ jr z, .charge_turn
cp EFFECT_SKULL_BASH
- jr z, .asm_34f21
+ jr z, .charge_turn
cp EFFECT_SOLARBEAM
- jr z, .asm_34f21
+ jr z, .charge_turn
cp EFFECT_FLY
- jr z, .asm_34f21
+ jr z, .charge_turn
-.asm_34f18
+.already_charged
call .Rampage
- jr z, .asm_34f21
+ jr z, .charge_turn
- call Function34548
+ call CheckUserIsCharging
ret nz
-.asm_34f21
- call Function37ed5
- jr c, .asm_34f36
+.charge_turn
+ call _CheckBattleScene
+ jr c, .mimic_anims
xor a
ld [wcfca], a
ld [FXAnimIDHi], a
inc a
- ld [wc689], a
+ ld [wKickCounter], a
ld a, SUBSTITUTE
- jp Function37e44
+ jp LoadAnim
-.asm_34f36
- call BattleCommanda7
- jp BattleCommandaa
+.mimic_anims
+ call BattleCommand_LowerSubNoAnim
+ jp BattleCommand_MoveDelay
.Rampage
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_ROLLOUT
- jr z, .asm_34f4d
+ jr z, .rollout_rampage
cp EFFECT_RAMPAGE
- jr z, .asm_34f4d
+ jr z, .rollout_rampage
ld a, 1
and a
ret
-.asm_34f4d
+.rollout_rampage
ld a, [wc73e]
and a
ld a, 0
@@ -2761,45 +2103,45 @@ BattleCommand0a: ; 34eee
; 34f57
-BattleCommandab: ; 34f57
+BattleCommand_HitTarget: ; 34f57
; hittarget
- call BattleCommand0a
- call BattleCommand0b
- jp BattleCommand0c
+ call BattleCommand_LowerSub
+ call BattleCommand_HitTargetNoSub
+ jp BattleCommand_RaiseSub
; 34f60
-BattleCommand0b: ; 34f60
+BattleCommand_HitTargetNoSub: ; 34f60
ld a, [AttackMissed]
and a
- jp nz, BattleCommandaa
+ jp nz, BattleCommand_MoveDelay
ld a, [hBattleTurn]
and a
ld de, PlayerRolloutCount
- ld a, 1
- jr z, .asm_34f76
+ ld a, BATTLEANIM_ENEMY_DAMAGE
+ jr z, .got_rollout_count
ld de, EnemyRolloutCount
- ld a, 4
+ ld a, BATTLEANIM_PLAYER_DAMAGE
-.asm_34f76
+.got_rollout_count
ld [wcfca], a
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_MULTI_HIT
- jr z, .asm_34fb0
+ jr z, .multihit
cp EFFECT_CONVERSION
- jr z, .asm_34fb0
+ jr z, .conversion
cp EFFECT_DOUBLE_HIT
- jr z, .asm_34fb0
+ jr z, .doublehit
cp EFFECT_TWINEEDLE
- jr z, .asm_34fb0
+ jr z, .twineedle
cp EFFECT_TRIPLE_KICK
- jr z, .asm_34f96
+ jr z, .triplekick
xor a
- ld [wc689], a
+ ld [wKickCounter], a
-.asm_34f96
+.triplekick
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -2810,18 +2152,21 @@ BattleCommand0b: ; 34f60
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp FLY
- jr z, .asm_34fad
+ jr z, .fly_dig
cp DIG
ret nz
-.asm_34fad
+.fly_dig
; clear sprite
- jp Function37ec7
-.asm_34fb0
- ld a, [wc689]
+ jp AppearUserLowerSub
+.multihit
+.conversion
+.doublehit
+.twineedle
+ ld a, [wKickCounter]
and 1
xor 1
- ld [wc689], a
+ ld [wKickCounter], a
ld a, [de]
cp $1
push af
@@ -2837,35 +2182,35 @@ BattleCommand0b: ; 34f60
; 34fd1
-BattleCommand92: ; 34fd1
+BattleCommand_StatUpAnim: ; 34fd1
ld a, [AttackMissed]
and a
- jp nz, BattleCommandaa
+ jp nz, BattleCommand_MoveDelay
xor a
- jr BattleCommand91_92
+ jr BattleCommand_StatUpDownAnim
; 34fdb
-BattleCommand91: ; 34fdb
+BattleCommand_StatDownAnim: ; 34fdb
ld a, [AttackMissed]
and a
- jp nz, BattleCommandaa
+ jp nz, BattleCommand_MoveDelay
ld a, [hBattleTurn]
and a
- ld a, 2
- jr z, BattleCommand91_92
- ld a, 5
+ ld a, BATTLEANIM_ENEMY_STAT_DOWN
+ jr z, BattleCommand_StatUpDownAnim
+ ld a, BATTLEANIM_WOBBLE
; fallthrough
; 34feb
-BattleCommand91_92: ; 34feb
+BattleCommand_StatUpDownAnim: ; 34feb
ld [wcfca], a
xor a
- ld [wc689], a
+ ld [wKickCounter], a
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
ld e, a
@@ -2884,7 +2229,7 @@ BattleCommand_SwitchTurn: ; 34ffd
; 35004
-BattleCommand0c: ; 35004
+BattleCommand_RaiseSub: ; 35004
; raisesub
ld a, BATTLE_VARS_SUBSTATUS4
@@ -2892,119 +2237,122 @@ BattleCommand0c: ; 35004
bit SUBSTATUS_SUBSTITUTE, a
ret z
- call Function37ed5
- jp c, BattleCommanda6
+ call _CheckBattleScene
+ jp c, BattleCommand_RaiseSubNoAnim
xor a
ld [wcfca], a
ld [FXAnimIDHi], a
ld a, $2
- ld [wc689], a
+ ld [wKickCounter], a
ld a, SUBSTITUTE
- jp Function37e44
+ jp LoadAnim
; 35023
-BattleCommand0d: ; 35023
-; resulttext
+BattleCommand_FailureText: ; 35023
+; failuretext
+; If the move missed or failed, load the appropriate
+; text, and end the effects of multi-turn or multi-
+; hit moves.
ld a, [AttackMissed]
and a
ret z
- call Function350e4
+ call GetFailureResultText
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVarAddr
cp FLY
- jr z, .asm_3504f
+ jr z, .fly_dig
cp DIG
- jr z, .asm_3504f
+ jr z, .fly_dig
; Move effect:
inc hl
ld a, [hl]
cp EFFECT_MULTI_HIT
- jr z, .asm_35049
+ jr z, .multihit
cp EFFECT_DOUBLE_HIT
- jr z, .asm_35049
+ jr z, .multihit
cp EFFECT_TWINEEDLE
- jr z, .asm_35049
+ jr z, .multihit
jp EndMoveEffect
-.asm_35049
- call BattleCommand0c
+.multihit
+ call BattleCommand_RaiseSub
jp EndMoveEffect
-.asm_3504f
+.fly_dig
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
res SUBSTATUS_UNDERGROUND, [hl]
res SUBSTATUS_FLYING, [hl]
- call Function37ece
+ call AppearUserRaiseSub
jp EndMoveEffect
; 3505e
-BattleCommand0e: ; 3505e
+BattleCommand_CheckFaint: ; 3505e
; checkfaint
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_ENDURE, a
- jr z, .asm_35072
- call BattleCommand4b
+ jr z, .not_enduring
+ call BattleCommand_FalseSwipe
ld b, $0
- jr nc, .asm_3508b
+ jr nc, .okay
ld b, $1
- jr .asm_3508b
+ jr .okay
-.asm_35072
+.not_enduring
call GetOpponentItem
ld a, b
cp HELD_FOCUS_BAND
ld b, $0
- jr nz, .asm_3508b
+ jr nz, .okay
call BattleRandom
cp c
- jr nc, .asm_3508b
- call BattleCommand4b
+ jr nc, .okay
+ call BattleCommand_FalseSwipe
ld b, $0
- jr nc, .asm_3508b
+ jr nc, .okay
ld b, $2
-.asm_3508b
+.okay
push bc
- call .asm_50bb
+ call .check_sub
ld c, $0
ld a, [hBattleTurn]
and a
- jr nz, .asm_3509b
- call Function35d1c
- jr .asm_3509e
+ jr nz, .damage_player
+ call EnemyHurtItself
+ jr .done_damage
-.asm_3509b
- call Function35d7e
+.damage_player
+ call PlayerHurtItself
-.asm_3509e
+.done_damage
pop bc
ld a, b
and a
ret z
dec a
- jr nz, .asm_350ab
+ jr nz, .not_enduring2
ld hl, EnduredText
jp StdBattleTextBox
-.asm_350ab
+.not_enduring2
call GetOpponentItem
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
ld hl, HungOnText
jp StdBattleTextBox
-.asm_50bb
+.check_sub
ld a, BATTLE_VARS_SUBSTATUS4_OPP
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
@@ -3013,10 +2361,10 @@ BattleCommand0e: ; 3505e
ld de, PlayerDamageTaken + 1
ld a, [hBattleTurn]
and a
- jr nz, .asm_350ce
+ jr nz, .damage_taken
ld de, EnemyDamageTaken + 1
-.asm_350ce
+.damage_taken
ld a, [CurDamage + 1]
ld b, a
ld a, [de]
@@ -3037,26 +2385,26 @@ BattleCommand0e: ; 3505e
; 350e4
-Function350e4: ; 350e4
+GetFailureResultText: ; 350e4
ld hl, DoesntAffectText
ld de, DoesntAffectText
ld a, [TypeModifier]
and $7f
- jr z, .asm_35110
+ jr z, .got_text
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_FUTURE_SIGHT
ld hl, ButItFailedText
ld de, ItFailedText
- jr z, .asm_35110
+ jr z, .got_text
ld hl, AttackMissedText
ld de, AttackMissed2Text
ld a, [CriticalHit]
cp $ff
- jr nz, .asm_35110
+ jr nz, .got_text
ld hl, UnaffectedText
-.asm_35110
- call Function35157
+.got_text
+ call FailText_CheckOpponentProtect
xor a
ld [CriticalHit], a
@@ -3064,9 +2412,11 @@ Function350e4: ; 350e4
call GetBattleVar
cp EFFECT_JUMP_KICK
ret nz
+
ld a, [TypeModifier]
and $7f
ret z
+
ld hl, CurDamage
ld a, [hli]
ld b, [hl]
@@ -3078,29 +2428,29 @@ Function350e4: ; 350e4
dec hl
ld [hli], a
or b
- jr nz, .asm_3513e
+ jr nz, .do_at_least_1_damage
inc a
ld [hl], a
-.asm_3513e
+.do_at_least_1_damage
ld hl, CrashedText
call StdBattleTextBox
ld a, $1
- ld [wc689], a
- call Function37e36
+ ld [wKickCounter], a
+ call LoadMoveAnim
ld c, $1
ld a, [hBattleTurn]
and a
- jp nz, Function35d1c
- jp Function35d7e
+ jp nz, EnemyHurtItself
+ jp PlayerHurtItself
-Function35157: ; 35157
+FailText_CheckOpponentProtect: ; 35157
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_PROTECT, a
- jr z, .asm_35162
+ jr z, .not_protected
ld h, d
ld l, e
-.asm_35162
+.not_protected
jp StdBattleTextBox
; 35165
@@ -3117,7 +2467,7 @@ BattleCommanda5: ; 35165
; 35175
-BattleCommand0f: ; 35175
+BattleCommand_CriticalText: ; 35175
; criticaltext
; Prints the message for critical hits or one-hit KOs.
@@ -3150,7 +2500,7 @@ BattleCommand0f: ; 35175
; 35197
-BattleCommandae: ; 35197
+BattleCommand_StartLoop: ; 35197
; startloop
ld hl, PlayerRolloutCount
@@ -3165,7 +2515,7 @@ BattleCommandae: ; 35197
; 351a5
-BattleCommandad: ; 351a5
+BattleCommand_SuperEffectiveLoopText: ; 351a5
; supereffectivelooptext
ld a, BATTLE_VARS_SUBSTATUS3
@@ -3177,7 +2527,7 @@ BattleCommandad: ; 351a5
; 351ad
-BattleCommand10: ; 351ad
+BattleCommand_SuperEffectiveText: ; 351ad
; supereffectivetext
ld a, [TypeModifier]
@@ -3192,7 +2542,7 @@ BattleCommand10: ; 351ad
; 351c0
-BattleCommand11: ; 351c0
+BattleCommand_CheckDestinyBond: ; 351c0
; checkdestinybond
; Faint the user if it fainted an opponent using Destiny Bond.
@@ -3233,18 +2583,18 @@ BattleCommand11: ; 351c0
ld a, [hld]
ld [Buffer2], a
ld a, [hl]
- ld [wd1ec], a
+ ld [Buffer3], a
xor a
ld [hld], a
ld a, [hl]
- ld [wd1ed], a
+ ld [Buffer4], a
xor a
ld [hl], a
- ld [wd1ee], a
- ld [wd1ef], a
+ ld [Buffer5], a
+ ld [Buffer6], a
ld h, b
ld l, c
- predef Functionc6e0
+ predef AnimateHPBar
call RefreshBattleHuds
call BattleCommand_SwitchTurn
@@ -3252,9 +2602,9 @@ BattleCommand11: ; 351c0
ld [wcfca], a
ld [FXAnimIDHi], a
inc a
- ld [wc689], a
- ld a, $c2
- call Function37e44
+ ld [wKickCounter], a
+ ld a, DESTINY_BOND
+ call LoadAnim
call BattleCommand_SwitchTurn
jr .asm_3524d ; 3522f $1c
@@ -3274,14 +2624,14 @@ BattleCommand11: ; 351c0
jr nz, .asm_3524d
.asm_3524a
- call BattleCommand0c
+ call BattleCommand_RaiseSub
.asm_3524d
jp EndMoveEffect
; 35250
-BattleCommand12: ; 35250
+BattleCommand_BuildOpponentRage: ; 35250
; buildopponentrage
jp .start
@@ -3295,12 +2645,12 @@ BattleCommand12: ; 35250
bit SUBSTATUS_RAGE, a
ret z
- ld de, wc72c
+ ld de, wEnemyRageCounter
ld a, [hBattleTurn]
and a
- jr z, .asm_3526b
- ld de, wc72b
-.asm_3526b
+ jr z, .player
+ ld de, wPlayerRageCounter
+.player
ld a, [de]
inc a
ret z
@@ -3313,7 +2663,7 @@ BattleCommand12: ; 35250
; 3527b
-BattleCommanda2: ; 3527b
+BattleCommand_RageDamage: ; 3527b
; ragedamage
ld a, [CurDamage]
@@ -3324,16 +2674,16 @@ BattleCommanda2: ; 3527b
ld c, a
ld a, [hBattleTurn]
and a
- ld a, [wc72b]
+ ld a, [wPlayerRageCounter]
jr z, .asm_35290
- ld a, [wc72c]
+ ld a, [wEnemyRageCounter]
.asm_35290
and a
jr z, .asm_3529a
dec a
add hl, bc
jr nc, .asm_35290
- ld hl, $ffff
+ ld hl, -1
.asm_3529a
ld a, h
ld [CurDamage], a
@@ -3358,7 +2708,7 @@ endr
DittoMetalPowder: ; 352b1
- ld a, PartyMon1Species - PartyMon1
+ ld a, MON_SPECIES
call BattlePartyAttr
ld a, [hBattleTurn]
and a
@@ -3395,7 +2745,7 @@ DittoMetalPowder: ; 352b1
; 352dc
-BattleCommand06: ; 352dc
+BattleCommand_DamageStats: ; 352dc
; damagestats
ld a, [hBattleTurn]
@@ -3478,7 +2828,7 @@ PlayerAttackDamage: ; 352e2
call ThickClubBoost
.done
- call Function3534d
+ call TruncateHL_BC
ld a, [BattleMonLevel]
ld e, a
@@ -3490,13 +2840,14 @@ PlayerAttackDamage: ; 352e2
; 3534d
-Function3534d: ; 3534d
+TruncateHL_BC: ; 3534d
+.loop
; Truncate 16-bit values hl and bc to 8-bit values b and c respectively.
; b = hl, c = bc
ld a, h
or b
- jr z, .asm_3536b
+ jr z, .finish
srl b
rr c
@@ -3505,10 +2856,10 @@ Function3534d: ; 3534d
ld a, c
or b
- jr nz, .asm_3535e
+ jr nz, .done_bc
inc c
-.asm_3535e
+.done_bc
srl h
rr l
srl h
@@ -3516,17 +2867,17 @@ Function3534d: ; 3534d
ld a, l
or h
- jr nz, .asm_3536b
+ jr nz, .finish
inc l
-.asm_3536b
+.finish
ld a, [wLinkMode]
cp 3
jr z, .done
ld a, h
or b
- jr nz, Function3534d
+ jr nz, .loop
.done
ld b, l
@@ -3633,7 +2984,7 @@ SpeciesItemBoost: ; 353d1
ld h, a
push hl
- ld a, PartyMon1Species - PartyMon1
+ ld a, MON_SPECIES
call BattlePartyAttr
ld a, [hBattleTurn]
@@ -3645,11 +2996,11 @@ SpeciesItemBoost: ; 353d1
pop hl
cp b
- jr z, .GetItem
+ jr z, .GetItemHeldEffect
cp c
ret nz
-.GetItem
+.GetItemHeldEffect
push hl
call GetUserItem
ld a, [hl]
@@ -3732,7 +3083,7 @@ EnemyAttackDamage: ; 353f6
call ThickClubBoost
.done
- call Function3534d
+ call TruncateHL_BC
ld a, [EnemyMonLevel]
ld e, a
@@ -3744,50 +3095,53 @@ EnemyAttackDamage: ; 353f6
; 35461
-BattleCommanda1: ; 35461
+BattleCommand_BeatUp: ; 35461
; beatup
call ResetDamage
ld a, [hBattleTurn]
and a
- jp nz, .asm_354ef
+ jp nz, .enemy_beats_up
ld a, [PlayerSubStatus3]
bit SUBSTATUS_IN_LOOP, a
- jr nz, .asm_35482
+ jr nz, .next_mon
ld c, 20
call DelayFrames
xor a
ld [PlayerRolloutCount], a
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld [wc72d], a
- jr .asm_3548d
-.asm_35482
+ jr .got_mon
+
+.next_mon
ld a, [PlayerRolloutCount]
ld b, a
ld a, [PartyCount]
sub b
- ld [DefaultFlypoint], a
-.asm_3548d
- ld a, [DefaultFlypoint]
+ ld [wd002], a
+
+.got_mon
+ ld a, [wd002]
ld hl, PartyMonNicknames
call GetNick
- ld a, $22
- call Function355bd
+ ld a, MON_HP
+ call GetBeatupMonLocation
ld a, [hli]
or [hl]
- jp z, Function355b0
- ld a, [DefaultFlypoint]
+ jp z, .beatup_fail ; fainted
+ ld a, [wd002]
ld c, a
ld a, [CurBattleMon]
cp [hl]
ld hl, BattleMonStatus
- jr z, .asm_354b2
- ld a, $20
- call Function355bd
-.asm_354b2
+ jr z, .active_mon
+ ld a, MON_STATUS
+ call GetBeatupMonLocation
+.active_mon
ld a, [hl]
and a
- jp nz, Function355b0
+ jp nz, .beatup_fail
+
ld a, $1
ld [wc72d], a
ld hl, BeatUpAttackText
@@ -3798,8 +3152,8 @@ BattleCommanda1: ; 35461
ld a, [BaseDefense]
ld c, a
push bc
- ld a, $0
- call Function355bd
+ ld a, MON_SPECIES
+ call GetBeatupMonLocation
ld a, [hl]
ld [CurSpecies], a
call GetBaseData
@@ -3807,8 +3161,8 @@ BattleCommanda1: ; 35461
pop bc
ld b, a
push bc
- ld a, $1f
- call Function355bd
+ ld a, MON_LEVEL
+ call GetBeatupMonLocation
ld a, [hl]
ld e, a
pop bc
@@ -3816,85 +3170,86 @@ BattleCommanda1: ; 35461
ld d, a
ret
-.asm_354ef
+.enemy_beats_up
ld a, [EnemySubStatus3]
bit SUBSTATUS_IN_LOOP, a
- jr nz, .asm_35502
+ jr nz, .not_first_enemy_beatup
xor a
ld [EnemyRolloutCount], a
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld [wc72d], a
- jr .asm_3550d
+ jr .enemy_continue
-.asm_35502
+.not_first_enemy_beatup
ld a, [EnemyRolloutCount]
ld b, a
ld a, [OTPartyCount]
sub b
- ld [DefaultFlypoint], a
-.asm_3550d
+ ld [wd002], a
+.enemy_continue
ld a, [wBattleMode]
dec a
- jr z, .asm_3556b
+ jr z, .wild
ld a, [wLinkMode]
and a
- jr nz, .asm_35532
+ jr nz, .link_or_tower
ld a, [InBattleTowerBattle]
and a
- jr nz, .asm_35532
+ jr nz, .link_or_tower
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
ld c, a
ld b, 0
ld hl, OTPartySpecies
add hl, bc
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
- jr .asm_35544
+ jr .got_enemy_nick
-.asm_35532
- ld a, [DefaultFlypoint]
+.link_or_tower
+ ld a, [wd002]
ld hl, OTPartyMonNicknames
ld bc, NAME_LENGTH
call AddNTimes
ld de, StringBuffer1
call CopyBytes
-.asm_35544
- ld a, $22
- call Function355bd
+.got_enemy_nick
+ ld a, MON_HP
+ call GetBeatupMonLocation
ld a, [hli]
or [hl]
- jp z, Function355b0
- ld a, [DefaultFlypoint]
+ jp z, .beatup_fail
+ ld a, [wd002]
ld b, a
ld a, [CurOTMon]
cp b
ld hl, EnemyMonStatus
- jr z, .asm_35560
+ jr z, .active_enemy
- ld a, $20
- call Function355bd
-.asm_35560
+ ld a, MON_STATUS
+ call GetBeatupMonLocation
+.active_enemy
ld a, [hl]
and a
- jr nz, Function355b0
+ jr nz, .beatup_fail
ld a, $1
ld [wc72d], a
- jr .asm_3557d
+ jr .finish_beatup
-.asm_3556b
+.wild
ld a, [EnemyMonSpecies]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
ld hl, BeatUpAttackText
call StdBattleTextBox
jp EnemyAttackDamage
-.asm_3557d
+
+.finish_beatup
ld hl, BeatUpAttackText
call StdBattleTextBox
ld a, [BattleMonSpecies]
@@ -3903,8 +3258,8 @@ BattleCommanda1: ; 35461
ld a, [BaseDefense]
ld c, a
push bc
- ld a, $0
- call Function355bd
+ ld a, MON_SPECIES
+ call GetBeatupMonLocation
ld a, [hl]
ld [CurSpecies], a
call GetBaseData
@@ -3912,8 +3267,8 @@ BattleCommanda1: ; 35461
pop bc
ld b, a
push bc
- ld a, $1f
- call Function355bd
+ ld a, MON_LEVEL
+ call GetBeatupMonLocation
ld a, [hl]
ld e, a
pop bc
@@ -3923,7 +3278,7 @@ BattleCommanda1: ; 35461
; 355b0
-Function355b0: ; 355b0
+.beatup_fail: ; 355b0
ld b, buildopponentrage_command
jp SkipToBattleCommand
; 355b5
@@ -3938,7 +3293,7 @@ BattleCommanda8: ; 355b5
; 355bd
-Function355bd: ; 355bd
+GetBeatupMonLocation: ; 355bd
push bc
ld c, a
ld b, 0
@@ -3949,14 +3304,14 @@ Function355bd: ; 355bd
ld hl, OTPartyMon1Species
.asm_355cc
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
add hl, bc
call GetPartyLocation
pop bc
ret
-BattleCommand_IfAttackMissedResetDamage: ; 355d5
+BattleCommand_ClearMissDamage: ; 355d5
; clearmissdamage
ld a, [AttackMissed]
and a
@@ -3966,37 +3321,37 @@ BattleCommand_IfAttackMissedResetDamage: ; 355d5
; 355dd
-Function355dd: ; 355dd
+HitSelfInConfusion: ; 355dd
call ResetDamage
ld a, [hBattleTurn]
and a
ld hl, BattleMonDefense
ld de, PlayerScreens
ld a, [BattleMonLevel]
- jr z, .asm_355f7
+ jr z, .got_it
ld hl, EnemyMonDefense
ld de, EnemyScreens
ld a, [EnemyMonLevel]
-.asm_355f7
+.got_it
push af
ld a, [hli]
ld b, a
ld c, [hl]
ld a, [de]
bit SCREENS_REFLECT, a
- jr z, .asm_35604
+ jr z, .mimic_screen
sla c
rl b
-.asm_35604
+.mimic_screen
rept 3
dec hl
endr
ld a, [hli]
ld l, [hl]
ld h, a
- call Function3534d
+ call TruncateHL_BC
ld d, $28
pop af
ld e, a
@@ -4004,7 +3359,7 @@ endr
; 35612
-BattleCommand_DamageCalcWithStats: ; 35612
+BattleCommand_DamageCalc: ; 35612
; damagecalc
; Return a damage value for move power d, player level e, enemy defense c and player attack b.
@@ -4016,33 +3371,33 @@ BattleCommand_DamageCalcWithStats: ; 35612
; Selfdestruct and Explosion halve defense.
cp EFFECT_EXPLOSION
- jr nz, .asm_35620
+ jr nz, .dont_explode
srl c
- jr nz, .asm_35620
+ jr nz, .dont_explode
inc c
-.asm_35620
+.dont_explode
; Variable-hit moves and Conversion can have a power of 0.
cp EFFECT_MULTI_HIT
- jr z, .asm_3562b
+ jr z, .skip_zero_damage_check
cp EFFECT_CONVERSION
- jr z, .asm_3562b
+ jr z, .skip_zero_damage_check
; No damage if move power is 0.
ld a, d
and a
ret z
-.asm_3562b
+.skip_zero_damage_check
; Minimum defense value is 1.
ld a, c
and a
- jr nz, .asm_35631
+ jr nz, .not_dividing_by_zero
ld c, 1
-.asm_35631
+.not_dividing_by_zero
xor a
ld hl, hDividend
@@ -4054,9 +3409,9 @@ endr
; Level * 2
ld a, e
add a
- jr nc, .asm_3563e
+ jr nc, .level_not_overflowing
ld [hl], $1
-.asm_3563e
+.level_not_overflowing
inc hl
ld [hli], a
@@ -4138,44 +3493,44 @@ endr
; Update CurDamage (capped at 997).
ld hl, CurDamage
ld b, [hl]
- ld a, [hQuotient + 2]
+ ld a, [hProduct + 3]
add b
- ld [$ffb6], a
- jr nc, .asm_356a5
+ ld [hProduct + 3], a
+ jr nc, .dont_cap_1
- ld a, [hQuotient + 1]
+ ld a, [hProduct + 2]
inc a
- ld [$ffb5], a
+ ld [hProduct + 2], a
and a
jr z, .Cap
-.asm_356a5
- ld a, [$ffb3]
+.dont_cap_1
+ ld a, [hProduct]
ld b, a
- ld a, [$ffb4]
+ ld a, [hProduct + 1]
or a
jr nz, .Cap
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
cp 998 / $100
- jr c, .asm_356bd
+ jr c, .dont_cap_2
cp 998 / $100 + 1
jr nc, .Cap
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
cp 998 % $100
jr nc, .Cap
-.asm_356bd
+.dont_cap_2
inc hl
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
ld b, [hl]
add b
ld [hld], a
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
ld b, [hl]
adc b
ld [hl], a
@@ -4183,7 +3538,7 @@ endr
ld a, [hl]
cp 998 / $100
- jr c, .asm_356df
+ jr c, .dont_cap_3
cp 998 / $100 + 1
jr nc, .Cap
@@ -4191,7 +3546,7 @@ endr
inc hl
ld a, [hld]
cp 998 % $100
- jr c, .asm_356df
+ jr c, .dont_cap_3
.Cap
ld a, 997 / $100
@@ -4200,15 +3555,15 @@ endr
ld [hld], a
-.asm_356df
+.dont_cap_3
; Minimum neutral damage is 2 (bringing the cap to 999).
inc hl
ld a, [hl]
add 2
ld [hld], a
- jr nc, .asm_356e7
+ jr nc, .dont_floor
inc [hl]
-.asm_356e7
+.dont_floor
ld a, 1
and a
@@ -4221,20 +3576,20 @@ endr
ret z
; x2
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
add a
- ld [$ffb6], a
+ ld [hProduct + 3], a
- ld a, [$ffb5]
+ ld a, [hQuotient + 1]
rl a
- ld [$ffb5], a
+ ld [hProduct + 2], a
; Cap at $ffff.
ret nc
ld a, $ff
- ld [$ffb5], a
- ld [$ffb6], a
+ ld [hProduct + 2], a
+ ld [hProduct + 3], a
ret
; 35703
@@ -4262,61 +3617,62 @@ TypeBoostItems: ; 35703
; 35726
-BattleCommand3f: ; 35726
+BattleCommand_ConstantDamage: ; 35726
; constantdamage
ld hl, BattleMonLevel
ld a, [hBattleTurn]
and a
- jr z, .asm_35731
+ jr z, .got_turn
ld hl, EnemyMonLevel
-.asm_35731
+.got_turn
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_LEVEL_DAMAGE
ld b, [hl]
ld a, 0
- jr z, .asm_3578c
+ jr z, .got_power
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_PSYWAVE
- jr z, .asm_35758
+ jr z, .psywave
cp EFFECT_SUPER_FANG
- jr z, .asm_3576b
+ jr z, .super_fang
cp EFFECT_REVERSAL
- jr z, .asm_35792
+ jr z, .reversal
ld a, BATTLE_VARS_MOVE_POWER
call GetBattleVar
ld b, a
ld a, $0
- jr .asm_3578c
+ jr .got_power
-.asm_35758
+.psywave
ld a, b
srl a
add b
ld b, a
-.asm_3575d
+.psywave_loop
call BattleRandom
and a
- jr z, .asm_3575d ; 35761 $fa
+ jr z, .psywave_loop ; 35761 $fa
cp b
- jr nc, .asm_3575d ; 35764 $f7
+ jr nc, .psywave_loop ; 35764 $f7
ld b, a
ld a, $0
- jr .asm_3578c ; 35769 $21
-.asm_3576b
+ jr .got_power ; 35769 $21
+
+.super_fang
ld hl, EnemyMonHP
ld a, [hBattleTurn]
and a
- jr z, .asm_35776 ; 35771 $3
+ jr z, .got_hp ; 35771 $3
ld hl, BattleMonHP
-.asm_35776
+.got_hp
ld a, [hli]
srl a
ld b, a
@@ -4326,26 +3682,28 @@ BattleCommand3f: ; 35726
ld a, b
pop bc
and a
- jr nz, .asm_3578c ; 35781 $9
+ jr nz, .got_power ; 35781 $9
or b
ld a, $0
- jr nz, .asm_3578c ; 35786 $4
+ jr nz, .got_power ; 35786 $4
ld b, $1
- jr .asm_3578c ; 3578a $0
-.asm_3578c
+ jr .got_power ; 3578a $0
+
+.got_power
ld hl, CurDamage
ld [hli], a
ld [hl], b
ret
-.asm_35792
+
+.reversal
ld hl, BattleMonHP
ld a, [hBattleTurn]
and a
- jr z, .asm_3579d ; 35798 $3
+ jr z, .reversal_got_hp ; 35798 $3
ld hl, EnemyMonHP
-.asm_3579d
+.reversal_got_hp
xor a
- ld [$ffb3], a
+ ld [hDividend], a
ld [hMultiplicand + 0], a
ld a, [hli]
ld [hMultiplicand + 1], a
@@ -4360,9 +3718,9 @@ BattleCommand3f: ; 35726
ld [hDivisor], a
ld a, b
and a
- jr z, .asm_357d6
+ jr z, .skip_to_divide
- ld a, [$ffb7]
+ ld a, [hProduct + 4]
srl b
rr a
srl b
@@ -4379,21 +3737,21 @@ BattleCommand3f: ; 35726
ld a, b
ld [hDividend + 2], a
-.asm_357d6
+.skip_to_divide
ld b, $4
call Divide
ld a, [hQuotient + 2]
ld b, a
ld hl, .FlailPower
-.asm_357e1
+.reversal_loop
ld a, [hli]
cp b
- jr nc, .asm_357e8
+ jr nc, .break_loop
inc hl
- jr .asm_357e1
+ jr .reversal_loop
-.asm_357e8
+.break_loop
ld a, [hBattleTurn]
and a
ld a, [hl]
@@ -4412,7 +3770,7 @@ BattleCommand3f: ; 35726
call EnemyAttackDamage
.notEnemysTurn
- call BattleCommand_DamageCalcWithStats
+ call BattleCommand_DamageCalc
pop hl
ld [hl], 1
ret
@@ -4428,7 +3786,7 @@ BattleCommand3f: ; 35726
; 35813
-BattleCommand40: ; 35813
+BattleCommand_Counter: ; 35813
; counter
ld a, 1
@@ -4444,12 +3802,12 @@ BattleCommand40: ; 35813
cp EFFECT_COUNTER
ret z
- call BattleCommanda3
- ld a, [wd265]
+ call BattleCommand_ResetTypeMatchup
+ ld a, [wTypeMatchup]
and a
ret z
- call Function36abf
+ call CheckOpponentWentFirst
ret z
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -4489,7 +3847,7 @@ BattleCommand40: ; 35813
; 35864
-BattleCommand41: ; 35864
+BattleCommand_Encore: ; 35864
; encore
ld hl, EnemyMonMoves
@@ -4536,7 +3894,7 @@ rept 3
inc a
endr
ld [de], a
- call Function36abf
+ call CheckOpponentWentFirst
jr nz, .asm_3591a
ld a, [hBattleTurn]
and a
@@ -4613,52 +3971,52 @@ endr
; 35926
-BattleCommand42: ; 35926
+BattleCommand_PainSplit: ; 35926
; painsplit
ld a, [AttackMissed]
and a
- jp nz, Function359cd
+ jp nz, PainSplit_PrintButItFailed
call CheckSubstituteOpp
- jp nz, Function359cd
+ jp nz, PainSplit_PrintButItFailed
call AnimateCurrentMove
ld hl, BattleMonMaxHP + 1
ld de, EnemyMonMaxHP + 1
- call .asm_3597d
+ call .PlayerShareHP
ld a, $1
ld [wd10a], a
hlcoord 10, 9
- predef Functionc6e0
+ predef AnimateHPBar
ld hl, EnemyMonHP
ld a, [hli]
- ld [wd1ed], a
+ ld [Buffer4], a
ld a, [hli]
- ld [wd1ec], a
+ ld [Buffer3], a
ld a, [hli]
ld [Buffer2], a
ld a, [hl]
ld [Buffer1], a
- call Function359ac
+ call .EnemyShareHP
xor a
ld [wd10a], a
call ResetDamage
hlcoord 2, 2
- predef Functionc6e0
- callba Function178000
+ predef AnimateHPBar
+ callba _UpdateBattleHUDs
ld hl, SharedPainText
jp StdBattleTextBox
-.asm_3597d
+.PlayerShareHP
ld a, [hld]
ld [Buffer1], a
ld a, [hld]
ld [Buffer2], a
ld a, [hld]
ld b, a
- ld [wd1ec], a
+ ld [Buffer3], a
ld a, [hl]
- ld [wd1ed], a
+ ld [Buffer4], a
rept 2
dec de
endr
@@ -4681,11 +4039,7 @@ rept 3
inc de
endr
- ; fallthrough
-; 359ac
-
-
-Function359ac: ; 359ac
+.EnemyShareHP: ; 359ac
ld c, [hl]
dec hl
ld a, [CurDamage + 1]
@@ -4694,28 +4048,28 @@ Function359ac: ; 359ac
dec hl
ld a, [CurDamage]
sbc b
- jr nc, .asm_359c2
+ jr nc, .skip
ld a, [CurDamage]
ld b, a
ld a, [CurDamage + 1]
ld c, a
-.asm_359c2
+.skip
ld a, c
ld [hld], a
- ld [wd1ee], a
+ ld [Buffer5], a
ld a, b
ld [hli], a
- ld [wd1ef], a
+ ld [Buffer6], a
ret
; 359cd
-Function359cd: ; 359cd
+PainSplit_PrintButItFailed: ; 359cd
jp PrintDidntAffect2
; 359d0
-BattleCommand43: ; 359d0
+BattleCommand_Snore: ; 359d0
; snore
ld a, BATTLE_VARS_STATUS
call GetBattleVar
@@ -4724,12 +4078,12 @@ BattleCommand43: ; 359d0
call ResetDamage
ld a, $1
ld [AttackMissed], a
- call Function37354
+ call FailSnore
jp EndMoveEffect
; 359e6
-BattleCommand44: ; 359e6
+BattleCommand_Conversion2: ; 359e6
; conversion2
ld a, [AttackMissed]
@@ -4775,36 +4129,36 @@ BattleCommand44: ; 359e6
push hl
ld a, d
ld [hl], a
- call HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn
+ call BattleCheckTypeMatchup
pop hl
pop af
ld [hl], a
pop hl
- ld a, [wd265]
- cp $a
+ ld a, [wTypeMatchup]
+ cp 10
jr nc, .asm_35a13
call BattleCommand_SwitchTurn
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
predef GetTypeName
ld hl, TransformedTypeText
jp StdBattleTextBox
.asm_35a50
- jp Function37354
+ jp FailConversion2
; 35a53
-BattleCommand45: ; 35a53
+BattleCommand_LockOn: ; 35a53
; lockon
call CheckSubstituteOpp
- jr nz, .asm_35a6e
+ jr nz, .fail
ld a, [AttackMissed]
and a
- jr nz, .asm_35a6e
+ jr nz, .fail
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
@@ -4814,67 +4168,77 @@ BattleCommand45: ; 35a53
ld hl, TookAimText
jp StdBattleTextBox
-.asm_35a6e
+.fail
call AnimateFailedMove
jp PrintDidntAffect
; 35a74
-BattleCommand46: ; 35a74
+BattleCommand_Sketch: ; 35a74
; sketch
- call Function372d8
-
+ call ClearLastMove
+; Don't sketch during a link battle
ld a, [wLinkMode]
and a
- jr z, .asm_35a83
+ jr z, .not_linked
call AnimateFailedMove
jp PrintNothingHappened
-.asm_35a83
+.not_linked
+; If the opponent has a substitute up, fail.
call CheckSubstituteOpp
- jp nz, .asm_35b10
-
+ jp nz, .fail
+; If the opponent is transformed, fail.
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
bit SUBSTATUS_TRANSFORMED, [hl]
- jp nz, .asm_35b10
-
- ld a, PartyMon1Moves - PartyMon1
+ jp nz, .fail
+; Get the user's moveset in its party struct.
+; This move replacement shall be permanent.
+; Pointer will be in de.
+ ld a, MON_MOVES
call UserPartyAttr
ld d, h
ld e, l
+; Get the battle move structs.
ld hl, BattleMonMoves
ld a, [hBattleTurn]
and a
- jr z, .asm_35aa5
+ jr z, .get_last_move
ld hl, EnemyMonMoves
-.asm_35aa5
+.get_last_move
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
- ld [wd265], a
+ ld [wTypeMatchup], a
ld b, a
+; Fail if move is invalid or is Struggle.
and a
- jr z, .asm_35b10
+ jr z, .fail
cp STRUGGLE
- jr z, .asm_35b10
+ jr z, .fail
+; Fail if user already knows that move
ld c, NUM_MOVES
-.asm_35ab7
+.does_user_already_know_move
ld a, [hli]
cp b
- jr z, .asm_35b10
+ jr z, .fail
dec c
- jr nz, .asm_35ab7
+ jr nz, .does_user_already_know_move
+; Find Sketch in the user's moveset.
+; Pointer in hl, and index in c.
dec hl
ld c, NUM_MOVES
-.asm_35ac1
+.find_sketch
dec c
ld a, [hld]
cp SKETCH
- jr nz, .asm_35ac1
+ jr nz, .find_sketch
inc hl
+; The Sketched move is loaded to that slot.
ld a, b
ld [hl], a
+; Copy the base PP from that move.
push bc
push hl
dec a
@@ -4885,24 +4249,27 @@ BattleCommand46: ; 35a74
add hl, bc
ld [hl], a
pop bc
+
ld a, [hBattleTurn]
and a
- jr z, .asm_35af6
+ jr z, .user_trainer
ld a, [wBattleMode]
dec a
- jr nz, .asm_35af6
+ jr nz, .user_trainer
+; wildmon
ld a, [hl]
push bc
- ld hl, wc739
+ ld hl, wWildMonPP
ld b, 0
add hl, bc
ld [hl], a
- ld hl, wc735
+ ld hl, wWildMonMoves
add hl, bc
pop bc
ld [hl], b
- jr .asm_35b04
-.asm_35af6
+ jr .done_copy
+
+.user_trainer
ld a, [hl]
push af
ld l, c
@@ -4911,23 +4278,23 @@ BattleCommand46: ; 35a74
ld a, b
ld [hl], a
pop af
- ld de, $0015
+ ld de, MON_PP - MON_MOVES
add hl, de
ld [hl], a
-.asm_35b04
+.done_copy
call GetMoveName
call AnimateCurrentMove
ld hl, SketchedText
jp StdBattleTextBox
-.asm_35b10
+.fail
call AnimateFailedMove
jp PrintDidntAffect
; 35b16
-BattleCommand47: ; 35b16
+BattleCommand_DefrostOpponent: ; 35b16
; defrostopponent
; Thaw the opponent if frozen, and
; raise the user's Attack one stage.
@@ -4946,7 +4313,7 @@ BattleCommand47: ; 35b16
ld a, EFFECT_ATTACK_UP
ld [hl], a
- call BattleCommand1c
+ call BattleCommand_StatUp
pop af
pop hl
@@ -4955,13 +4322,13 @@ BattleCommand47: ; 35b16
; 35b33
-BattleCommand48: ; 35b33
+BattleCommand_SleepTalk: ; 35b33
; sleeptalk
- call Function372d8
+ call ClearLastMove
ld a, [AttackMissed]
and a
- jr nz, .asm_35ba3
+ jr nz, .fail
ld a, [hBattleTurn]
and a
ld hl, BattleMonMoves + 1
@@ -4975,12 +4342,12 @@ BattleCommand48: ; 35b33
ld a, BATTLE_VARS_STATUS
call GetBattleVar
and SLP
- jr z, .asm_35ba3
+ jr z, .fail
ld a, [hl]
and a
- jr z, .asm_35ba3
+ jr z, .fail
call .asm_35ba9
- jr c, .asm_35ba3
+ jr c, .fail
dec hl
.asm_35b62
push hl
@@ -5007,18 +4374,19 @@ BattleCommand48: ; 35b33
call GetBattleVarAddr
ld a, e
ld [hl], a
- call Function34548
- jr nz, .asm_35b9a
- ld a, [wc689]
+ call CheckUserIsCharging
+ jr nz, .charging
+ ld a, [wKickCounter]
push af
- call BattleCommand0a
+ call BattleCommand_LowerSub
pop af
- ld [wc689], a
-.asm_35b9a
- call Function37e36
+ ld [wKickCounter], a
+.charging
+ call LoadMoveAnim
call UpdateMoveData
jp ResetTurn
-.asm_35ba3
+
+.fail
call AnimateFailedMove
jp TryPrintButItFailed
@@ -5100,7 +4468,7 @@ BattleCommand48: ; 35b33
; 35bff
-BattleCommand49: ; 35bff
+BattleCommand_DestinyBond: ; 35bff
; destinybond
ld a, BATTLE_VARS_SUBSTATUS5
@@ -5112,13 +4480,13 @@ BattleCommand49: ; 35bff
; 35c0f
-BattleCommand4a: ; 35c0f
+BattleCommand_Spite: ; 35c0f
; spite
ld a, [AttackMissed]
and a
jp nz, .asm_35c91
- ld bc, PartyMon2 - PartyMon1 ; ????
+ ld bc, PARTYMON_STRUCT_LENGTH ; ????
ld hl, EnemyMonMoves
ld a, [hBattleTurn]
and a
@@ -5138,7 +4506,7 @@ BattleCommand4a: ; 35c0f
ld a, [hli]
cp b
jr nz, .asm_35c33
- ld [wd265], a
+ ld [wTypeMatchup], a
dec hl
ld b, 0
push bc
@@ -5166,7 +4534,7 @@ endr
sub b
ld [hl], a
push af
- ld a, PartyMon1PP - PartyMon1
+ ld a, MON_PP
call OpponentPartyAttr
ld d, b
pop af
@@ -5192,7 +4560,7 @@ endr
call AnimateCurrentMove
pop de
ld a, d
- ld [wd265], a
+ ld [wTypeMatchup], a
ld hl, SpiteEffectText
jp StdBattleTextBox
.asm_35c91
@@ -5200,7 +4568,7 @@ endr
; 35c94
-BattleCommand4b: ; 35c94
+BattleCommand_FalseSwipe: ; 35c94
; falseswipe
ld hl, EnemyMonHP
@@ -5244,7 +4612,7 @@ BattleCommand4b: ; 35c94
; 35cc9
-BattleCommand4c: ; 35cc9
+BattleCommand_HealBell: ; 35cc9
; healbell
ld a, BATTLE_VARS_SUBSTATUS1
@@ -5262,7 +4630,7 @@ BattleCommand4c: ; 35cc9
ld [hl], a
ld h, d
ld l, e
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld d, PartyEnd - PartySpecies
.asm_35ce9
ld [hl], a
@@ -5276,8 +4644,8 @@ BattleCommand4c: ; 35cc9
ld a, [hBattleTurn]
and a
- jp z, Function365d7
- jp Function365fd
+ jp z, CalcPlayerStats
+ jp CalcEnemyStats
; 35d00
@@ -5307,39 +4675,40 @@ PlayFXAnimID: ; 35d08
; 35d1c
-Function35d1c: ; 35d1c
+EnemyHurtItself: ; 35d1c
ld hl, CurDamage
ld a, [hli]
ld b, a
ld a, [hl]
or b
- jr z, .asm_35d7b
+ jr z, .did_no_damage
ld a, c
and a
- jr nz, .asm_35d31
+ jr nz, .mimic_sub_check
ld a, [EnemySubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
- jp nz, Function35de0
-.asm_35d31
+ jp nz, SelfInflictDamageToSubstitute
+
+.mimic_sub_check
ld a, [hld]
ld b, a
ld a, [EnemyMonHP + 1]
- ld [wd1ec], a
+ ld [Buffer3], a
sub b
ld [EnemyMonHP + 1], a
ld a, [hl]
ld b, a
ld a, [EnemyMonHP]
- ld [wd1ec + 1], a
+ ld [Buffer4], a
sbc b
ld [EnemyMonHP], a
- jr nc, .asm_35d59
+ jr nc, .mimic_faint
- ld a, [wd1ed]
+ ld a, [Buffer4]
ld [hli], a
- ld a, [wd1ec]
+ ld a, [Buffer3]
ld [hl], a
xor a
@@ -5347,7 +4716,7 @@ Function35d1c: ; 35d1c
ld [hli], a
ld [hl], a
-.asm_35d59
+.mimic_faint
ld hl, EnemyMonMaxHP
ld a, [hli]
ld [Buffer2], a
@@ -5355,63 +4724,63 @@ Function35d1c: ; 35d1c
ld [Buffer1], a
ld hl, EnemyMonHP
ld a, [hli]
- ld [wd1ef], a
+ ld [Buffer6], a
ld a, [hl]
- ld [wd1ee], a
+ ld [Buffer5], a
hlcoord 2, 2
xor a
ld [wd10a], a
- predef Functionc6e0
-.asm_35d7b
+ predef AnimateHPBar
+.did_no_damage
jp RefreshBattleHuds
; 35d7e
-Function35d7e: ; 35d7e
+PlayerHurtItself: ; 35d7e
ld hl, CurDamage
ld a, [hli]
ld b, a
ld a, [hl]
or b
- jr z, .asm_35ddd
+ jr z, .did_no_damage
ld a, c
and a
- jr nz, .asm_35d93
+ jr nz, .mimic_sub_check
ld a, [PlayerSubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
- jp nz, Function35de0
-.asm_35d93
+ jp nz, SelfInflictDamageToSubstitute
+.mimic_sub_check
ld a, [hld]
ld b, a
ld a, [BattleMonHP + 1]
- ld [wd1ec], a
+ ld [Buffer3], a
sub b
ld [BattleMonHP + 1], a
- ld [wd1ee], a
+ ld [Buffer5], a
ld b, [hl]
ld a, [BattleMonHP]
- ld [wd1ec + 1], a
+ ld [Buffer4], a
sbc b
ld [BattleMonHP], a
- ld [wd1ee + 1], a
- jr nc, .asm_35dc5
+ ld [Buffer6], a
+ jr nc, .mimic_faint
- ld a, [wd1ec + 1]
+ ld a, [Buffer4]
ld [hli], a
- ld a, [wd1ec]
+ ld a, [Buffer3]
ld [hl], a
xor a
ld hl, BattleMonHP
ld [hli], a
ld [hl], a
- ld hl, wd1ee
+ ld hl, Buffer5
ld [hli], a
ld [hl], a
-.asm_35dc5
+.mimic_faint
ld hl, BattleMonMaxHP
ld a, [hli]
ld [Buffer2], a
@@ -5420,13 +4789,13 @@ Function35d7e: ; 35d7e
hlcoord 10, 9
ld a, $1
ld [wd10a], a
- predef Functionc6e0
-.asm_35ddd
+ predef AnimateHPBar
+.did_no_damage
jp RefreshBattleHuds
; 35de0
-Function35de0: ; 35de0
+SelfInflictDamageToSubstitute: ; 35de0
ld hl, SubTookDamageText
call StdBattleTextBox
@@ -5458,11 +4827,11 @@ Function35de0: ; 35de0
call StdBattleTextBox
call BattleCommand_SwitchTurn
- call BattleCommanda7
+ call BattleCommand_LowerSubNoAnim
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVar
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
- call z, Function37ec7
+ call z, AppearUserLowerSub
call BattleCommand_SwitchTurn
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -5495,8 +4864,8 @@ UpdateMoveData: ; 35e40
ld a, BATTLE_VARS_MOVE
call GetBattleVar
- ld [CurSpecies], a ; not CurSpecies
- ld [wd265], a
+ ld [CurMove], a
+ ld [wNamedObjectIndexBuffer], a
dec a
call GetMoveData
@@ -5505,21 +4874,21 @@ UpdateMoveData: ; 35e40
; 35e5c
-BattleCommand14: ; 35e5c
+BattleCommand_SleepTarget: ; 35e5c
; sleeptarget
call GetOpponentItem
ld a, b
cp HELD_PREVENT_SLEEP
- jr nz, .asm_35e70
+ jr nz, .not_protected_by_item
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
ld hl, ProtectedByText
- jr .asm_35ec6
+ jr .fail
-.asm_35e70
+.not_protected_by_item
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
ld d, h
@@ -5527,36 +4896,36 @@ BattleCommand14: ; 35e5c
ld a, [de]
and SLP
ld hl, AlreadyAsleepText
- jr nz, .asm_35ec6
+ jr nz, .fail
ld a, [AttackMissed]
and a
jp nz, PrintDidntAffect2
ld hl, DidntAffect1Text
- call Function35ece
- jr c, .asm_35ec6
+ call .CheckAIRandomFail
+ jr c, .fail
ld a, [de]
and a
- jr nz, .asm_35ec6
+ jr nz, .fail
call CheckSubstituteOpp
- jr nz, .asm_35ec6
+ jr nz, .fail
call AnimateCurrentMove
ld b, $7
ld a, [InBattleTowerBattle]
and a
- jr z, .asm_35ea4
+ jr z, .random_loop
ld b, $3
-.asm_35ea4
+.random_loop
call BattleRandom
and b
- jr z, .asm_35ea4
+ jr z, .random_loop
cp 7
- jr z, .asm_35ea4
+ jr z, .random_loop
inc a
ld [de], a
call UpdateOpponentInParty
@@ -5565,12 +4934,12 @@ BattleCommand14: ; 35e5c
ld hl, FellAsleepText
call StdBattleTextBox
- callba Function3dde9
+ callba UseHeldStatusHealingItem
- jp z, Function34216
+ jp z, OpponentCantMove
ret
-.asm_35ec6
+.fail
push hl
call AnimateFailedMove
pop hl
@@ -5578,37 +4947,37 @@ BattleCommand14: ; 35e5c
; 35ece
-Function35ece: ; 35ece
+.CheckAIRandomFail: ; 35ece
; Enemy turn
ld a, [hBattleTurn]
and a
- jr z, .asm_35eec
+ jr z, .dont_fail
; Not in link battle
ld a, [wLinkMode]
and a
- jr nz, .asm_35eec
+ jr nz, .dont_fail
ld a, [InBattleTowerBattle]
and a
- jr nz, .asm_35eec
+ jr nz, .dont_fail
; Not locked-on by the enemy
ld a, [PlayerSubStatus5]
bit SUBSTATUS_LOCK_ON, a
- jr nz, .asm_35eec
+ jr nz, .dont_fail
call BattleRandom
- cp $40
+ cp $40 ; 25%
ret c
-.asm_35eec
+.dont_fail
xor a
ret
; 35eee
-BattleCommand13: ; 35eee
+BattleCommand_PoisonTarget: ; 35eee
; poisontarget
call CheckSubstituteOpp
@@ -5620,7 +4989,7 @@ BattleCommand13: ; 35eee
ld a, [TypeModifier]
and $7f
ret z
- call Function35fe1
+ call CheckIfTargetIsPoisonType
ret z
call GetOpponentItem
ld a, b
@@ -5629,104 +4998,105 @@ BattleCommand13: ; 35eee
ld a, [EffectFailed]
and a
ret nz
- call Function37962
+ call SafeCheckSafeguard
ret nz
- call Function35ff5
+
+ call PoisonOpponent
ld de, ANIM_PSN
- call Function37e54
+ call PlayOpponentBattleAnim
call RefreshBattleHuds
ld hl, WasPoisonedText
call StdBattleTextBox
- callba Function3dde9
+ callba UseHeldStatusHealingItem
ret
; 35f2c
-BattleCommand2f: ; 35f2c
+BattleCommand_Poison: ; 35f2c
; poison
ld hl, DoesntAffectText
ld a, [TypeModifier]
and $7f
- jp z, .asm_35fb8
+ jp z, .failed
- call Function35fe1
- jp z, .asm_35fb8
+ call CheckIfTargetIsPoisonType
+ jp z, .failed
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVar
ld b, a
ld hl, AlreadyPoisonedText
and 1 << PSN
- jp nz, .asm_35fb8
+ jp nz, .failed
call GetOpponentItem
ld a, b
cp HELD_PREVENT_POISON
- jr nz, .asm_35f5f
+ jr nz, .do_poison
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
ld hl, ProtectedByText
- jr .asm_35fb8
+ jr .failed
-.asm_35f5f
+.do_poison
ld hl, DidntAffect1Text
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVar
and a
- jr nz, .asm_35fb8
+ jr nz, .failed
ld a, [hBattleTurn]
and a
- jr z, .asm_35f89
+ jr z, .mimic_random
ld a, [wLinkMode]
and a
- jr nz, .asm_35f89
+ jr nz, .mimic_random
ld a, [InBattleTowerBattle]
and a
- jr nz, .asm_35f89
+ jr nz, .mimic_random
ld a, [PlayerSubStatus5]
bit SUBSTATUS_LOCK_ON, a
- jr nz, .asm_35f89
+ jr nz, .mimic_random
call BattleRandom
- cp $40
- jr c, .asm_35fb8
+ cp $40 ; 25% chance AI fails
+ jr c, .failed
-.asm_35f89
+.mimic_random
call CheckSubstituteOpp
- jr nz, .asm_35fb8
+ jr nz, .failed
ld a, [AttackMissed]
and a
- jr nz, .asm_35fb8
- call Function35fc9
- jr z, .asm_35fa4
+ jr nz, .failed
+ call .check_toxic
+ jr z, .toxic
- call Function35fc0
+ call .apply_poison
ld hl, WasPoisonedText
call StdBattleTextBox
- jr .asm_35fb1
+ jr .finished
-.asm_35fa4
+.toxic
set SUBSTATUS_TOXIC, [hl]
xor a
ld [de], a
- call Function35fc0
+ call .apply_poison
ld hl, BadlyPoisonedText
call StdBattleTextBox
-.asm_35fb1
- callba Function3dde9
+.finished
+ callba UseHeldStatusHealingItem
ret
-.asm_35fb8
+.failed
push hl
call AnimateFailedMove
pop hl
@@ -5734,14 +5104,14 @@ BattleCommand2f: ; 35f2c
; 35fc0
-Function35fc0: ; 35fc0
+.apply_poison: ; 35fc0
call AnimateCurrentMove
- call Function35ff5
+ call PoisonOpponent
jp RefreshBattleHuds
; 35fc9
-Function35fc9: ; 35fc9
+.check_toxic: ; 35fc9
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
ld a, [hBattleTurn]
@@ -5757,7 +5127,7 @@ Function35fc9: ; 35fc9
; 35fe1
-Function35fe1: ; 35fe1
+CheckIfTargetIsPoisonType: ; 35fe1
ld de, EnemyMonType1
ld a, [hBattleTurn]
and a
@@ -5774,7 +5144,7 @@ Function35fe1: ; 35fe1
; 35ff5
-Function35ff5: ; 35ff5
+PoisonOpponent: ; 35ff5
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set PSN, [hl]
@@ -5782,45 +5152,45 @@ Function35ff5: ; 35ff5
; 35fff
-BattleCommand15: ; 35fff
+BattleCommand_DrainTarget: ; 35fff
; draintarget
- call Function36011
+ call SapHealth
ld hl, SuckedHealthText
jp StdBattleTextBox
; 36008
-BattleCommand16: ; 36008
+BattleCommand_EatDream: ; 36008
; eatdream
- call Function36011
+ call SapHealth
ld hl, DreamEatenText
jp StdBattleTextBox
; 36011
-Function36011: ; 36011
+SapHealth: ; 36011
ld hl, CurDamage
ld a, [hli]
srl a
- ld [$ffb3], a
+ ld [hDividend], a
ld b, a
ld a, [hl]
rr a
- ld [$ffb4], a
+ ld [hDividend + 1], a
or b
- jr nz, .asm_36026 ; 0x36020 $4
+ jr nz, .ok1 ; 0x36020 $4
ld a, $1
- ld [$ffb4], a
-.asm_36026
+ ld [hDividend + 1], a
+.ok1
ld hl, BattleMonHP
ld de, BattleMonMaxHP
ld a, [hBattleTurn]
and a
- jr z, .asm_36037 ; 0x3602f $6
+ jr z, .battlemonhp ; 0x3602f $6
ld hl, EnemyMonHP
ld de, EnemyMonMaxHP
-.asm_36037
- ld bc, wd1ed
+.battlemonhp
+ ld bc, Buffer4
ld a, [hli]
ld [bc], a
ld a, [hl]
@@ -5833,17 +5203,17 @@ Function36011: ; 36011
ld a, [de]
dec bc
ld [bc], a
- ld a, [$ffb4]
+ ld a, [hDividend + 1]
ld b, [hl]
add b
ld [hld], a
- ld [wd1ee], a
- ld a, [$ffb3]
+ ld [Buffer5], a
+ ld a, [hDividend]
ld b, [hl]
adc b
ld [hli], a
- ld [wd1ef], a
- jr c, .asm_36064 ; 0x36056 $c
+ ld [Buffer6], a
+ jr c, .okay2 ; 0x36056 $c
ld a, [hld]
ld b, a
ld a, [de]
@@ -5854,33 +5224,33 @@ Function36011: ; 36011
ld a, [de]
inc de
sbc b
- jr nc, .asm_36070 ; 0x36062 $c
-.asm_36064
+ jr nc, .okay3 ; 0x36062 $c
+.okay2
ld a, [de]
ld [hld], a
- ld [wd1ee], a
+ ld [Buffer5], a
dec de
ld a, [de]
ld [hli], a
- ld [wd1ef], a
+ ld [Buffer6], a
inc de
-.asm_36070
+.okay3
ld a, [hBattleTurn]
and a
hlcoord 10, 9
ld a, $1
- jr z, .asm_3607e ; 0x36078 $4
+ jr z, .hp_bar ; 0x36078 $4
hlcoord 2, 2
xor a
-.asm_3607e
+.hp_bar
ld [wd10a], a
- predef Functionc6e0
+ predef AnimateHPBar
call RefreshBattleHuds
jp UpdateBattleMonInParty
; 3608c
-BattleCommand17: ; 3608c
+BattleCommand_BurnTarget: ; 3608c
; burntarget
xor a
@@ -5894,7 +5264,7 @@ BattleCommand17: ; 3608c
ld a, [TypeModifier]
and $7f
ret z
- call Function36e5b
+ call CheckMoveTypeMatchesTarget ; Don't burn a Fire-type
ret z
call GetOpponentItem
ld a, b
@@ -5903,22 +5273,22 @@ BattleCommand17: ; 3608c
ld a, [EffectFailed]
and a
ret nz
- call Function37962
+ call SafeCheckSafeguard
ret nz
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set BRN, [hl]
call UpdateOpponentInParty
- ld hl, Function3ec76
+ ld hl, ApplyBrnEffectOnAttack
call CallBattleCore
ld de, ANIM_BRN
- call Function37e54
+ call PlayOpponentBattleAnim
call RefreshBattleHuds
ld hl, WasBurnedText
call StdBattleTextBox
- callba Function3dde9
+ callba UseHeldStatusHealingItem
ret
; 360dd
@@ -5950,7 +5320,7 @@ Defrost: ; 360dd
; 36102
-BattleCommand18: ; 36102
+BattleCommand_FreezeTarget: ; 36102
; freezetarget
xor a
@@ -5967,7 +5337,7 @@ BattleCommand18: ; 36102
ld a, [Weather]
cp WEATHER_SUN
ret z
- call Function36e5b
+ call CheckMoveTypeMatchesTarget ; Don't freeze an Ice-type
ret z
call GetOpponentItem
ld a, b
@@ -5976,35 +5346,36 @@ BattleCommand18: ; 36102
ld a, [EffectFailed]
and a
ret nz
- call Function37962
+ call SafeCheckSafeguard
ret nz
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set FRZ, [hl]
call UpdateOpponentInParty
ld de, ANIM_FRZ
- call Function37e54
+ call PlayOpponentBattleAnim
call RefreshBattleHuds
ld hl, WasFrozenText
call StdBattleTextBox
- callba Function3dde9
+ callba UseHeldStatusHealingItem
ret nz
- call Function34216
+
+ call OpponentCantMove
call EndRechargeOpp
- ld hl, wc740
+ ld hl, wEnemyJustGotFrozen
ld a, [hBattleTurn]
and a
- jr z, .asm_36162
- ld hl, wc73f
-.asm_36162
+ jr z, .finish
+ ld hl, wPlayerJustGotFrozen
+.finish
ld [hl], $1
ret
; 36165
-BattleCommand19: ; 36165
+BattleCommand_ParalyzeTarget: ; 36165
; paralyzetarget
xor a
@@ -6025,86 +5396,86 @@ BattleCommand19: ; 36165
ld a, [EffectFailed]
and a
ret nz
- call Function37962
+ call SafeCheckSafeguard
ret nz
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set PAR, [hl]
call UpdateOpponentInParty
- ld hl, Function3ec39
+ ld hl, ApplyPrzEffectOnSpeed
call CallBattleCore
ld de, ANIM_PAR
- call Function37e54
+ call PlayOpponentBattleAnim
call RefreshBattleHuds
call PrintParalyze
- ld hl, Function3dde9
+ ld hl, UseHeldStatusHealingItem
jp CallBattleCore
; 361ac
-BattleCommand70: ; 361ac
+BattleCommand_AttackUp: ; 361ac
; attackup
- ld b, $0
- jr BattleCommand1c
-BattleCommand71: ; 361b0
+ ld b, ATTACK
+ jr BattleCommand_StatUp
+BattleCommand_DefenseUp: ; 361b0
; defenseup
- ld b, $1
- jr BattleCommand1c
-BattleCommand72: ; 361b4
+ ld b, DEFENSE
+ jr BattleCommand_StatUp
+BattleCommand_SpeedUp: ; 361b4
; speedup
- ld b, $2
- jr BattleCommand1c
-BattleCommand73: ; 361b8
+ ld b, SPEED
+ jr BattleCommand_StatUp
+BattleCommand_SpecialAttackUp: ; 361b8
; specialattackup
- ld b, $3
- jr BattleCommand1c
-BattleCommand74: ; 361bc
+ ld b, SP_ATTACK
+ jr BattleCommand_StatUp
+BattleCommand_SpecialDefenseUp: ; 361bc
; specialdefenseup
- ld b, $4
- jr BattleCommand1c
-BattleCommand75: ; 361c0
+ ld b, SP_DEFENSE
+ jr BattleCommand_StatUp
+BattleCommand_AccuracyUp: ; 361c0
; accuracyup
- ld b, $5
- jr BattleCommand1c
-BattleCommand76: ; 361c4
+ ld b, ACCURACY
+ jr BattleCommand_StatUp
+BattleCommand_EvasionUp: ; 361c4
; evasionup
- ld b, $6
- jr BattleCommand1c
-BattleCommand77: ; 361c8
+ ld b, EVASION
+ jr BattleCommand_StatUp
+BattleCommand_AttackUp2: ; 361c8
; attackup2
- ld b, $10
- jr BattleCommand1c
-BattleCommand78: ; 361cc
+ ld b, $10 | ATTACK
+ jr BattleCommand_StatUp
+BattleCommand_DefenseUp2: ; 361cc
; defenseup2
- ld b, $11
- jr BattleCommand1c
-BattleCommand79: ; 361d0
+ ld b, $10 | DEFENSE
+ jr BattleCommand_StatUp
+BattleCommand_SpeedUp2: ; 361d0
; speedup2
- ld b, $12
- jr BattleCommand1c
-BattleCommand7a: ; 361d4
+ ld b, $10 | SPEED
+ jr BattleCommand_StatUp
+BattleCommand_SpecialAttackUp2: ; 361d4
; specialattackup2
- ld b, $13
- jr BattleCommand1c
-BattleCommand7b: ; 361d8
+ ld b, $10 | SP_ATTACK
+ jr BattleCommand_StatUp
+BattleCommand_SpecialDefenseUp2: ; 361d8
; specialdefenseup2
- ld b, $14
- jr BattleCommand1c
-BattleCommand7c: ; 361dc
+ ld b, $10 | SP_DEFENSE
+ jr BattleCommand_StatUp
+BattleCommand_AccuracyUp2: ; 361dc
; accuracyup2
- ld b, $15
- jr BattleCommand1c
-BattleCommand7d: ; 361e0
+ ld b, $10 | ACCURACY
+ jr BattleCommand_StatUp
+BattleCommand_EvasionUp2: ; 361e0
; evasionup2
- ld b, $16
- jr BattleCommand1c
-BattleCommand1c: ; 361e4
+ ld b, $10 | EVASION
+ jr BattleCommand_StatUp
+BattleCommand_StatUp: ; 361e4
; statup
call CheckIfStatCanBeRaised
ld a, [FailedMessage]
and a
ret nz
- jp Function36281
+ jp StatUpAnimation
; 361ef
@@ -6114,15 +5485,15 @@ CheckIfStatCanBeRaised: ; 361ef
ld hl, PlayerStatLevels
ld a, [hBattleTurn]
and a
- jr z, .asm_361fe ; 0x361f9 $3
+ jr z, .got_stat_levels ; 0x361f9 $3
ld hl, EnemyStatLevels
-.asm_361fe
+.got_stat_levels
ld a, [AttackMissed]
and a
- jp nz, Function3627b
+ jp nz, .stat_raise_failed
ld a, [EffectFailed]
and a
- jp nz, Function3627b
+ jp nz, .stat_raise_failed
ld a, [LoweredStat]
and $f
ld c, a
@@ -6132,29 +5503,29 @@ CheckIfStatCanBeRaised: ; 361ef
inc b
ld a, $d
cp b
- jp c, Function36270
+ jp c, .cant_raise_stat
ld a, [LoweredStat]
and $f0
- jr z, .asm_3622b ; 0x36222 $7
+ jr z, .got_num_stages ; 0x36222 $7
inc b
ld a, $d
cp b
- jr nc, .asm_3622b ; 0x36228 $1
+ jr nc, .got_num_stages ; 0x36228 $1
ld b, a
-.asm_3622b
+.got_num_stages
ld [hl], b
push hl
ld a, c
cp $5
- jr nc, .asm_36268 ; 0x36230 $36
+ jr nc, .done_calcing_stats ; 0x36230 $36
ld hl, BattleMonStats + 1
ld de, PlayerStats
ld a, [hBattleTurn]
and a
- jr z, .asm_36243 ; 0x3623b $6
+ jr z, .got_stats_pointer ; 0x3623b $6
ld hl, EnemyMonStats + 1
ld de, EnemyStats
-.asm_36243
+.got_stats_pointer
push bc
sla c
ld b, 0
@@ -6162,25 +5533,25 @@ CheckIfStatCanBeRaised: ; 361ef
ld a, c
add e
ld e, a
- jr nc, .asm_3624f ; 0x3624c $1
+ jr nc, .no_carry ; 0x3624c $1
inc d
-.asm_3624f
+.no_carry
pop bc
ld a, [hld]
sub 999 % $100
- jr nz, .asm_3625b ; 0x36253 $6
+ jr nz, .not_already_max ; 0x36253 $6
ld a, [hl]
sbc 999 / $100
- jp z, Function3626e
-.asm_3625b
+ jp z, .stats_already_max
+.not_already_max
ld a, [hBattleTurn]
and a
- jr z, .asm_36265 ; 0x3625e $5
- call Function365fd
- jr .asm_36268 ; 0x36263 $3
-.asm_36265
- call Function365d7
-.asm_36268
+ jr z, .calc_player_stats ; 0x3625e $5
+ call CalcEnemyStats
+ jr .done_calcing_stats ; 0x36263 $3
+.calc_player_stats
+ call CalcPlayerStats
+.done_calcing_stats
pop hl
xor a
ld [FailedMessage], a
@@ -6188,14 +5559,14 @@ CheckIfStatCanBeRaised: ; 361ef
; 3626e
-Function3626e: ; 3626e
+.stats_already_max: ; 3626e
pop hl
dec [hl]
; fallthrough
; 36270
-Function36270: ; 36270
+.cant_raise_stat: ; 36270
ld a, $2
ld [FailedMessage], a
ld a, $1
@@ -6204,100 +5575,102 @@ Function36270: ; 36270
; 3627b
-Function3627b: ; 3627b
+.stat_raise_failed: ; 3627b
ld a, $1
ld [FailedMessage], a
ret
; 36281
-Function36281: ; 36281
- ld bc, wc6fe
+StatUpAnimation: ; 36281
+ ld bc, wPlayerMinimized
ld hl, Function3f447
ld a, [hBattleTurn]
and a
- jr z, .asm_36292 ; 0x3628a $6
- ld bc, wc6fa
+ jr z, .do_player ; 0x3628a $6
+ ld bc, wEnemyMinimized
ld hl, Function3f486
-.asm_36292
+.do_player
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp MINIMIZE
ret nz
+
ld a, $1
ld [bc], a
- call Function37ed5
+ call _CheckBattleScene
ret nc
+
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
call WaitBGMap
- jp BattleCommandaa
+ jp BattleCommand_MoveDelay
; 362ad
-BattleCommand7e: ; 362ad
+BattleCommand_AttackDown: ; 362ad
; attackdown
ld a, ATTACK
- jr BattleCommand1d
-BattleCommand7f: ; 362b1
+ jr BattleCommand_StatDown
+BattleCommand_DefenseDown: ; 362b1
; defensedown
ld a, DEFENSE
- jr BattleCommand1d
-BattleCommand80: ; 362b5
+ jr BattleCommand_StatDown
+BattleCommand_SpeedDown: ; 362b5
; speeddown
ld a, SPEED
- jr BattleCommand1d
-BattleCommand81: ; 362b9
+ jr BattleCommand_StatDown
+BattleCommand_SpecialAttackDown: ; 362b9
; specialattackdown
ld a, SP_ATTACK
- jr BattleCommand1d
-BattleCommand82: ; 362bd
+ jr BattleCommand_StatDown
+BattleCommand_SpecialDefenseDown: ; 362bd
; specialdefensedown
ld a, SP_DEFENSE
- jr BattleCommand1d
-BattleCommand83: ; 362c1
+ jr BattleCommand_StatDown
+BattleCommand_AccuracyDown: ; 362c1
; accuracydown
ld a, ACCURACY
- jr BattleCommand1d
-BattleCommand84: ; 362c5
+ jr BattleCommand_StatDown
+BattleCommand_EvasionDown: ; 362c5
; evasiondown
ld a, EVASION
- jr BattleCommand1d
-BattleCommand85: ; 362c9
+ jr BattleCommand_StatDown
+BattleCommand_AttackDown2: ; 362c9
; attackdown2
ld a, $10 | ATTACK
- jr BattleCommand1d
-BattleCommand86: ; 362cd
+ jr BattleCommand_StatDown
+BattleCommand_DefenseDown2: ; 362cd
; defensedown2
ld a, $10 | DEFENSE
- jr BattleCommand1d
-BattleCommand87: ; 362d1
+ jr BattleCommand_StatDown
+BattleCommand_SpeedDown2: ; 362d1
; speeddown2
ld a, $10 | SPEED
- jr BattleCommand1d
-BattleCommand88: ; 362d5
+ jr BattleCommand_StatDown
+BattleCommand_SpecialAttackDown2: ; 362d5
; specialattackdown2
ld a, $10 | SP_ATTACK
- jr BattleCommand1d
-BattleCommand89: ; 362d9
+ jr BattleCommand_StatDown
+BattleCommand_SpecialDefenseDown2: ; 362d9
; specialdefensedown2
ld a, $10 | SP_DEFENSE
- jr BattleCommand1d
-BattleCommand8a: ; 362dd
+ jr BattleCommand_StatDown
+BattleCommand_AccuracyDown2: ; 362dd
; accuracydown2
ld a, $10 | ACCURACY
- jr BattleCommand1d
-BattleCommand8b: ; 362e1
+ jr BattleCommand_StatDown
+BattleCommand_EvasionDown2: ; 362e1
; evasiondown2
ld a, $10 | EVASION
-BattleCommand1d: ; 362e3
+BattleCommand_StatDown: ; 362e3
; statdown
ld [LoweredStat], a
- call Function36391
+ call CheckMist
jp nz, .Mist
ld hl, EnemyStatLevels
@@ -6380,11 +5753,11 @@ BattleCommand1d: ; 362e3
ld de, EnemyStats
ld a, [hBattleTurn]
and a
- jr z, .asm_36366
+ jr z, .do_enemy
ld hl, BattleMonAttack + 1
ld de, PlayerStats
-.asm_36366
- call Function3641a
+.do_enemy
+ call TryLowerStat
pop hl
jr z, .CouldntLower
@@ -6417,25 +5790,26 @@ BattleCommand1d: ; 362e3
; 36391
-Function36391: ; 36391
+CheckMist: ; 36391
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
cp EFFECT_ATTACK_DOWN
- jr c, .asm_363ae
+ jr c, .dont_check_mist
cp EFFECT_EVASION_DOWN + 1
- jr c, .asm_363b0
+ jr c, .check_mist
cp EFFECT_ATTACK_DOWN_2
- jr c, .asm_363ae
+ jr c, .dont_check_mist
cp EFFECT_EVASION_DOWN_2 + 1
- jr c, .asm_363b0
+ jr c, .check_mist
cp EFFECT_ATTACK_DOWN_HIT
- jr c, .asm_363ae
+ jr c, .dont_check_mist
cp EFFECT_EVASION_DOWN_HIT + 1
- jr c, .asm_363b0
-.asm_363ae
+ jr c, .check_mist
+.dont_check_mist
xor a
ret
-.asm_363b0
+
+.check_mist
ld a, BATTLE_VARS_SUBSTATUS4_OPP
call GetBattleVar
bit SUBSTATUS_MIST, a
@@ -6443,7 +5817,7 @@ Function36391: ; 36391
; 363b8
-BattleCommand8c: ; 363b8
+BattleCommand_StatUpMessage: ; 363b8
ld a, [FailedMessage]
and a
ret nz
@@ -6477,7 +5851,7 @@ BattleCommand8c: ; 363b8
; 363e9
-BattleCommand8d: ; 363e9
+BattleCommand_StatDownMessage: ; 363e9
ld a, [FailedMessage]
and a
ret nz
@@ -6510,7 +5884,7 @@ BattleCommand8d: ; 363e9
; 3641a
-Function3641a: ; 3641a
+TryLowerStat: ; 3641a
; Lower stat c from stat struct hl (buffer de).
push bc
@@ -6521,32 +5895,32 @@ Function3641a: ; 3641a
ld a, c
add e
ld e, a
- jr nc, .asm_36426
+ jr nc, .no_carry
inc d
-.asm_36426
+.no_carry
pop bc
; The lowest possible stat is 1.
ld a, [hld]
sub 1
- jr nz, .asm_3642f
+ jr nz, .not_min
ld a, [hl]
and a
ret z
-.asm_3642f
+.not_min
ld a, [hBattleTurn]
and a
jr z, .Player
call BattleCommand_SwitchTurn
- call Function365d7
+ call CalcPlayerStats
call BattleCommand_SwitchTurn
jr .end
.Player
call BattleCommand_SwitchTurn
- call Function365fd
+ call CalcEnemyStats
call BattleCommand_SwitchTurn
.end
ld a, 1
@@ -6555,13 +5929,13 @@ Function3641a: ; 3641a
; 3644c
-BattleCommand8e: ; 3644c
+BattleCommand_StatUpFailText: ; 3644c
; statupfailtext
ld a, [FailedMessage]
and a
ret z
push af
- call BattleCommandaa
+ call BattleCommand_MoveDelay
pop af
dec a
jp z, TryPrintButItFailed
@@ -6575,13 +5949,13 @@ BattleCommand8e: ; 3644c
; 3646a
-BattleCommand8f: ; 3646a
+BattleCommand_StatDownFailText: ; 3646a
; statdownfailtext
ld a, [FailedMessage]
and a
ret z
push af
- call BattleCommandaa
+ call BattleCommand_MoveDelay
pop af
dec a
jp z, TryPrintButItFailed
@@ -6626,54 +6000,50 @@ GetStatName: ; 3648f
; 364e6
-Table0x364e6: ; 364e6
- db 25, 100
- db 28, 100
- db 33, 100
- db 40, 100
- db 50, 100
- db 66, 100
-; 364f2
-
-
-StatLevelMulipliers: ; 364f2
- db 1, 1 ; 1.0x
- db 15, 10 ; 1.5x
- db 2, 1 ; 2.0x
- db 25, 10 ; 2.5x
- db 3, 1 ; 3.0x
- db 35, 10 ; 3.5x
- db 4, 1 ; 4.0x
+StatLevelMultipliers: ; 364e6
+ db 25, 100 ; 0.25x
+ db 28, 100 ; 0.28x
+ db 33, 100 ; 0.33x
+ db 40, 100 ; 0.40x
+ db 50, 100 ; 0.50x
+ db 66, 100 ; 0.66x
+ db 1, 1 ; 1.00x
+ db 15, 10 ; 1.50x
+ db 2, 1 ; 2.00x
+ db 25, 10 ; 2.50x
+ db 3, 1 ; 3.00x
+ db 35, 10 ; 3.50x
+ db 4, 1 ; 4.00x
; 36500
-BattleCommanda4: ; 36500
+BattleCommand_AllStatsUp: ; 36500
; allstatsup
; Attack
call ResetMiss
- call BattleCommand70
- call BattleCommand8c
+ call BattleCommand_AttackUp
+ call BattleCommand_StatUpMessage
; Defense
call ResetMiss
- call BattleCommand71
- call BattleCommand8c
+ call BattleCommand_DefenseUp
+ call BattleCommand_StatUpMessage
; Speed
call ResetMiss
- call BattleCommand72
- call BattleCommand8c
+ call BattleCommand_SpeedUp
+ call BattleCommand_StatUpMessage
; Special Attack
call ResetMiss
- call BattleCommand73
- call BattleCommand8c
+ call BattleCommand_SpecialAttackUp
+ call BattleCommand_StatUpMessage
; Special Defense
call ResetMiss
- call BattleCommand74
- jp BattleCommand8c
+ call BattleCommand_SpecialDefenseUp
+ jp BattleCommand_StatUpMessage
; 3652d
@@ -6684,16 +6054,16 @@ ResetMiss: ; 3652d
; 36532
-Function36532: ; 36532
+LowerStat: ; 36532
ld [LoweredStat], a
ld hl, PlayerStatLevels
ld a, [hBattleTurn]
and a
- jr z, .asm_36540
+ jr z, .got_target
ld hl, EnemyStatLevels
-.asm_36540
+.got_target
ld a, [LoweredStat]
and $f
ld c, a
@@ -6701,66 +6071,66 @@ Function36532: ; 36532
add hl, bc
ld b, [hl]
dec b
- jr z, .asm_36589
+ jr z, .cant_lower_anymore
ld a, [LoweredStat]
and $f0
- jr z, .asm_36558
+ jr z, .got_num_stages
dec b
- jr nz, .asm_36558
+ jr nz, .got_num_stages
inc b
-.asm_36558
+.got_num_stages
ld [hl], b
ld a, c
cp 5
- jr nc, .asm_36576
+ jr nc, .accuracy_evasion
push hl
ld hl, BattleMonStats + 1
ld de, PlayerStats
ld a, [hBattleTurn]
and a
- jr z, .asm_36570
+ jr z, .got_target_2
ld hl, EnemyMonStats + 1
ld de, EnemyStats
-.asm_36570
- call Function3641a
+.got_target_2
+ call TryLowerStat
pop hl
- jr z, .asm_36588
+ jr z, .failed
-.asm_36576
+.accuracy_evasion
ld a, [hBattleTurn]
and a
- jr z, .asm_36580
+ jr z, .player
- call Function365fd
+ call CalcEnemyStats
- jr .asm_36583
+ jr .finish
-.asm_36580
- call Function365d7
+.player
+ call CalcPlayerStats
-.asm_36583
+.finish
xor a
ld [FailedMessage], a
ret
-.asm_36588
+.failed
inc [hl]
-.asm_36589
+.cant_lower_anymore
ld a, 2
ld [FailedMessage], a
ret
; 3658f
-BattleCommandac: ; 3658f
+BattleCommand_TriStatusChance: ; 3658f
; tristatuschance
- call BattleCommand90
+ call BattleCommand_EffectChance
; 1/3 chance of each status
.loop
@@ -6774,13 +6144,13 @@ BattleCommandac: ; 3658f
rst JumpTable
ret
.ptrs
- dw BattleCommand19 ; paralyze
- dw BattleCommand18 ; freeze
- dw BattleCommand17 ; burn
+ dw BattleCommand_ParalyzeTarget ; paralyze
+ dw BattleCommand_FreezeTarget ; freeze
+ dw BattleCommand_BurnTarget ; burn
; 365a7
-BattleCommandaf: ; 365a7
+BattleCommand_Curl: ; 365a7
; curl
ld a, BATTLE_VARS_SUBSTATUS2
call GetBattleVarAddr
@@ -6789,79 +6159,79 @@ BattleCommandaf: ; 365a7
; 365af
-BattleCommanda6: ; 365af
- ld hl, Function3f43d
+BattleCommand_RaiseSubNoAnim: ; 365af
+ ld hl, GetMonBackpic
ld a, [hBattleTurn]
and a
- jr z, .asm_365ba ; 365b5 $3
- ld hl, Function3f47c
-.asm_365ba
+ jr z, .PlayerTurn ; 365b5 $3
+ ld hl, GetMonFrontpic
+.PlayerTurn
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
; 365c3
-BattleCommanda7: ; 365c3
+BattleCommand_LowerSubNoAnim: ; 365c3
ld hl, Function3f447
ld a, [hBattleTurn]
and a
- jr z, .asm_365ce ; 365c9 $3
+ jr z, .PlayerTurn ; 365c9 $3
ld hl, Function3f486
-.asm_365ce
+.PlayerTurn
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
call CallBattleCore
jp WaitBGMap
; 365d7
-Function365d7: ; 365d7
+CalcPlayerStats: ; 365d7
ld hl, PlayerAtkLevel
ld de, PlayerStats
ld bc, BattleMonAttack
- ld a, $5
- call Function3661d
+ ld a, 5
+ call CalcStats
ld hl, BadgeStatBoosts
call CallBattleCore
call BattleCommand_SwitchTurn
- ld hl, Function3ec39
+ ld hl, ApplyPrzEffectOnSpeed
call CallBattleCore
- ld hl, Function3ec76
+ ld hl, ApplyBrnEffectOnAttack
call CallBattleCore
jp BattleCommand_SwitchTurn
; 365fd
-Function365fd: ; 365fd
+CalcEnemyStats: ; 365fd
ld hl, EnemyAtkLevel
ld de, EnemyStats
ld bc, EnemyMonAttack
- ld a, $5
- call Function3661d
+ ld a, 5
+ call CalcStats
call BattleCommand_SwitchTurn
- ld hl, Function3ec39
+ ld hl, ApplyPrzEffectOnSpeed
call CallBattleCore
- ld hl, Function3ec76
+ ld hl, ApplyBrnEffectOnAttack
call CallBattleCore
jp BattleCommand_SwitchTurn
; 3661d
-Function3661d: ; 3661d
-.asm_3661d
+CalcStats: ; 3661d
+.loop
push af
ld a, [hli]
push hl
@@ -6870,7 +6240,7 @@ Function3661d: ; 3661d
ld c, a
dec c
ld b, 0
- ld hl, Table0x364e6
+ ld hl, StatLevelMultipliers
rept 2
add hl, bc
endr
@@ -6897,42 +6267,42 @@ endr
ld b, a
ld a, [hQuotient + 2]
or b
- jr nz, .asm_36651
+ jr nz, .check_maxed_out
ld a, 1
ld [hQuotient + 2], a
- jr .asm_36662
+ jr .not_maxed_out
-.asm_36651
+.check_maxed_out
ld a, [hQuotient + 2]
cp 999 % $100
ld a, b
sbc 999 / $100
- jr c, .asm_36662
+ jr c, .not_maxed_out
ld a, 999 % $100
- ld [$ffb6], a
+ ld [hQuotient + 2], a
ld a, 999 / $100
- ld [$ffb5], a
+ ld [hQuotient + 1], a
-.asm_36662
+.not_maxed_out
pop bc
- ld a, [$ffb5]
+ ld a, [hQuotient + 1]
ld [bc], a
inc bc
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
ld [bc], a
inc bc
pop hl
pop af
dec a
- jr nz, .asm_3661d
+ jr nz, .loop
ret
; 36671
-BattleCommand21: ; 36671
+BattleCommand_StoreEnergy: ; 36671
; storeenergy
ld a, BATTLE_VARS_SUBSTATUS3
@@ -6943,11 +6313,11 @@ BattleCommand21: ; 36671
ld hl, PlayerRolloutCount
ld a, [hBattleTurn]
and a
- jr z, .asm_36684
+ jr z, .check_still_storing_energy
ld hl, EnemyRolloutCount
-.asm_36684
+.check_still_storing_energy
dec [hl]
- jr nz, .asm_366dc
+ jr nz, .still_storing
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
@@ -6961,13 +6331,13 @@ BattleCommand21: ; 36671
ld a, 1
ld [hl], a
ld hl, PlayerDamageTaken + 1
- ld de, wc732
+ ld de, wPlayerCharging ; player
ld a, [hBattleTurn]
and a
- jr z, .asm_366ad
+ jr z, .player
ld hl, EnemyDamageTaken + 1
- ld de, wc733
-.asm_366ad
+ ld de, wEnemyCharging ; enemy
+.player
ld a, [hld]
add a
ld b, a
@@ -6975,16 +6345,16 @@ BattleCommand21: ; 36671
ld a, [hl]
rl a
ld [CurDamage], a
- jr nc, .asm_366c3
+ jr nc, .not_maxed
ld a, $ff
ld [CurDamage], a
ld [CurDamage + 1], a
-.asm_366c3
+.not_maxed
or b
- jr nz, .asm_366cb
+ jr nz, .built_up_something
ld a, 1
ld [AttackMissed], a
-.asm_366cb
+.built_up_something
xor a
ld [hli], a
ld [hl], a
@@ -6998,14 +6368,14 @@ BattleCommand21: ; 36671
ld b, unleashenergy_command
jp SkipToBattleCommand
-.asm_366dc
+.still_storing
ld hl, StoringEnergyText
call StdBattleTextBox
jp EndMoveEffect
; 366e5
-BattleCommand22: ; 366e5
+BattleCommand_UnleashEnergy: ; 366e5
; unleashenergy
ld de, PlayerDamageTaken
@@ -7032,51 +6402,53 @@ rept 2
endr
ld [bc], a
ld a, 1
- ld [wc689], a
+ ld [wKickCounter], a
call AnimateCurrentMove
jp EndMoveEffect
; 3671a
-BattleCommand3e: ; 3671a
+BattleCommand_CheckRampage: ; 3671a
; checkrampage
ld de, PlayerRolloutCount
ld a, [hBattleTurn]
and a
- jr z, .asm_36725 ; 36720 $3
+ jr z, .player ; 36720 $3
ld de, EnemyRolloutCount
-.asm_36725
+.player
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
- bit 1, [hl]
+ bit SUBSTATUS_RAMPAGE, [hl]
ret z
ld a, [de]
dec a
ld [de], a
- jr nz, .asm_3674c ; 36730 $1a
- res 1, [hl]
+ jr nz, .continue_rampage ; 36730 $1a
+
+ res SUBSTATUS_RAMPAGE, [hl]
call BattleCommand_SwitchTurn
- call Function37962
+ call SafeCheckSafeguard
push af
call BattleCommand_SwitchTurn
pop af
- jr nz, .asm_3674c ; 3673f $b
- set 7, [hl]
+ jr nz, .continue_rampage ; 3673f $b
+
+ set SUBSTATUS_CONFUSED, [hl]
call BattleRandom
- and $1
+ and %00000001
rept 2
inc a
endr
- inc de
+ inc de ; ConfuseCount
ld [de], a
-.asm_3674c
+.continue_rampage
ld b, rampage_command
jp SkipToBattleCommand
; 36751
-BattleCommand3d: ; 36751
+BattleCommand_Rampage: ; 36751
; rampage
; No rampage during Sleep Talk.
@@ -7094,8 +6466,9 @@ BattleCommand3d: ; 36751
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
set SUBSTATUS_RAMPAGE, [hl]
+; Rampage for 1 or 2 more turns
call BattleRandom
- and 1
+ and %00000001
inc a
ld [de], a
ld a, 1
@@ -7104,7 +6477,7 @@ BattleCommand3d: ; 36751
; 36778
-BattleCommanda0: ; 36778
+BattleCommand_Teleport: ; 36778
; teleport
ld a, [BattleType]
@@ -7121,34 +6494,39 @@ BattleCommanda0: ; 36778
call GetBattleVar
bit SUBSTATUS_CANT_RUN, a
jr nz, .failed
+; Only need to check these next things if it's your turn
ld a, [hBattleTurn]
and a
- jr nz, .asm_367bf
+ jr nz, .enemy_turn
+; Can't teleport from a trainer battle
ld a, [wBattleMode]
dec a
jr nz, .failed
+; If your level is greater than the opponent's, you run without fail.
ld a, [CurPartyLevel]
ld b, a
ld a, [BattleMonLevel]
cp b
- jr nc, .asm_367df
+ jr nc, .run_away
+; Generate a number between 0 and (YourLevel + TheirLevel).
add b
ld c, a
inc c
-.asm_367ac
+.loop_player
call BattleRandom
cp c
- jr nc, .asm_367ac ; 367b0 $fa
+ jr nc, .loop_player ; 367b0 $fa
+; If that number is greater than 4 times your level, run away.
srl b
srl b
cp b
- jr nc, .asm_367df ; 367b7 $26
+ jr nc, .run_away ; 367b7 $26
.failed
call AnimateFailedMove
jp PrintButItFailed
-.asm_367bf
+.enemy_turn
ld a, [wBattleMode]
dec a
jr nz, .failed
@@ -7156,38 +6534,38 @@ BattleCommanda0: ; 36778
ld b, a
ld a, [CurPartyLevel]
cp b
- jr nc, .asm_367df ; 367cd $10
+ jr nc, .run_away ; 367cd $10
add b
ld c, a
inc c
-.asm_367d2
+.loop_enemy
call BattleRandom
cp c
- jr nc, .asm_367d2 ; 367d6 $fa
+ jr nc, .loop_enemy ; 367d6 $fa
srl b
srl b
cp b
- jr nc, .asm_367df ; 367dd $0
-.asm_367df
+ jr nc, .run_away ; 367dd $0
+.run_away
call UpdateBattleMonInParty
xor a
ld [wcfca], a
inc a
- ld [wd232], a
- ld [wc689], a
- call Function36804
- call BattleCommand0a
- call Function37e36
+ ld [wForcedSwitch], a
+ ld [wKickCounter], a
+ call SetBattleDraw
+ call BattleCommand_LowerSub
+ call LoadMoveAnim
ld c, 20
call DelayFrames
- call Function36804
+ call SetBattleDraw
ld hl, FledFromBattleText
jp StdBattleTextBox
; 36804
-Function36804: ; 36804
+SetBattleDraw: ; 36804
ld a, [wBattleResult]
and $c0
or $2
@@ -7196,82 +6574,85 @@ Function36804: ; 36804
; 3680f
-BattleCommand23: ; 3680f
+BattleCommand_ForceSwitch: ; 3680f
; forceswitch
ld a, [BattleType]
cp BATTLETYPE_SHINY
- jp z, .asm_36969
+ jp z, .fail
cp BATTLETYPE_TRAP
- jp z, .asm_36969
+ jp z, .fail
cp BATTLETYPE_CELEBI
- jp z, .asm_36969
+ jp z, .fail
cp BATTLETYPE_SUICUNE
- jp z, .asm_36969
+ jp z, .fail
ld a, [hBattleTurn]
and a
- jp nz, .asm_368cd
+ jp nz, .force_player_switch
ld a, [AttackMissed]
and a
- jr nz, .asm_36852 ; 36830 $20
+ jr nz, .missed ; 36830 $20
ld a, [wBattleMode]
dec a
- jr nz, .asm_36869 ; 36836 $31
+ jr nz, .trainer ; 36836 $31
ld a, [CurPartyLevel]
ld b, a
ld a, [BattleMonLevel]
cp b
- jr nc, .asm_36855 ; 36840 $13
+ jr nc, .wild_force_flee ; 36840 $13
add b
ld c, a
inc c
-.asm_36845
+.random_loop_wild
call BattleRandom
cp c
- jr nc, .asm_36845 ; 36849 $fa
+ jr nc, .random_loop_wild ; 36849 $fa
srl b
srl b
cp b
- jr nc, .asm_36855 ; 36850 $3
-.asm_36852
- jp .asm_36969
-.asm_36855
+ jr nc, .wild_force_flee ; 36850 $3
+.missed
+ jp .fail
+
+.wild_force_flee
call UpdateBattleMonInParty
xor a
ld [wcfca], a
inc a
- ld [wd232], a
- call Function36804
+ ld [wForcedSwitch], a
+ call SetBattleDraw
ld a, [wPlayerMoveStruct + MOVE_ANIM]
- jp .asm_36975
-.asm_36869
- call CountEnemyAliveMons
- jr c, .asm_368ca ; 3686c $5c
- ld a, [wc70f]
+ jp .succeed
+
+.trainer
+ call FindAliveEnemyMons
+ jr c, .switch_fail ; 3686c $5c
+ ld a, [wEnemyGoesFirst]
and a
- jr z, .asm_368ca ; 36872 $56
+ jr z, .switch_fail ; 36872 $56
call UpdateEnemyMonInParty
ld a, $1
- ld [wc689], a
+ ld [wKickCounter], a
call AnimateCurrentMove
ld c, $14
call DelayFrames
hlcoord 1, 0
lb bc, 4, 10
call ClearBox
- ld c, $14
+ ld c, 20
call DelayFrames
ld a, [OTPartyCount]
ld b, a
ld a, [CurOTMon]
ld c, a
-.asm_3689a
+; select a random enemy mon to switch to
+.random_loop_trainer
call BattleRandom
and $7
cp b
- jr nc, .asm_3689a ; 368a0 $f8
+ jr nc, .random_loop_trainer ; 368a0 $f8
cp c
- jr z, .asm_3689a ; 368a3 $f5
+ jr z, .random_loop_trainer ; 368a3 $f5
push af
push bc
ld hl, OTPartyMon1HP
@@ -7280,11 +6661,11 @@ BattleCommand23: ; 3680f
or [hl]
pop bc
pop de
- jr z, .asm_3689a ; 368b1 $e7
+ jr z, .random_loop_trainer ; 368b1 $e7
ld a, d
inc a
- ld [wc718], a
- callab Function3d4c3
+ ld [wEnemySwitchMonIndex], a
+ callab ForceEnemySwitch
ld hl, DraggedOutText
call StdBattleTextBox
@@ -7292,81 +6673,81 @@ BattleCommand23: ; 3680f
ld hl, SpikesDamage
jp CallBattleCore
-.asm_368ca
- jp .asm_36969
+.switch_fail
+ jp .fail
-.asm_368cd
+.force_player_switch
ld a, [AttackMissed]
and a
- jr nz, .asm_368f3
+ jr nz, .player_miss
ld a, [wBattleMode]
dec a
- jr nz, .asm_36908
+ jr nz, .vs_trainer
ld a, [BattleMonLevel]
ld b, a
ld a, [CurPartyLevel]
cp b
- jr nc, .asm_368f5
+ jr nc, .wild_succeed_playeristarget
add b
ld c, a
inc c
-.asm_368e6
+.wild_random_loop_playeristarget
call BattleRandom
cp c
- jr nc, .asm_368e6
+ jr nc, .wild_random_loop_playeristarget
srl b
srl b
cp b
- jr nc, .asm_368f5
+ jr nc, .wild_succeed_playeristarget
-.asm_368f3
- jr .asm_36969
+.player_miss
+ jr .fail
-.asm_368f5
+.wild_succeed_playeristarget
call UpdateBattleMonInParty
xor a
ld [wcfca], a
inc a
- ld [wd232], a
- call Function36804
+ ld [wForcedSwitch], a
+ call SetBattleDraw
ld a, [wEnemyMoveStruct + MOVE_ANIM]
- jr .asm_36975
+ jr .succeed
-.asm_36908
- call Function36994
- jr c, .asm_36969
+.vs_trainer
+ call CheckPlayerHasMonToSwitchTo
+ jr c, .fail
- ld a, [wc70f]
+ ld a, [wEnemyGoesFirst]
cp $1
- jr z, .asm_368ca
+ jr z, .switch_fail
call UpdateBattleMonInParty
ld a, $1
- ld [wc689], a
+ ld [wKickCounter], a
call AnimateCurrentMove
- ld c, $14
+ ld c, 20
call DelayFrames
hlcoord 9, 7
lb bc, 5, 11
call ClearBox
- ld c, $14
+ ld c, 20
call DelayFrames
ld a, [PartyCount]
ld b, a
ld a, [CurBattleMon]
ld c, a
-.asm_3693a
+.random_loop_trainer_playeristarget
call BattleRandom
and $7
cp b
- jr nc, .asm_3693a
+ jr nc, .random_loop_trainer_playeristarget
cp c
- jr z, .asm_3693a
+ jr z, .random_loop_trainer_playeristarget
push af
push bc
@@ -7376,11 +6757,11 @@ BattleCommand23: ; 3680f
or [hl]
pop bc
pop de
- jr z, .asm_3693a
+ jr z, .random_loop_trainer_playeristarget
ld a, d
ld [CurPartyMon], a
- ld hl, Function3db32
+ ld hl, SwitchPlayerMon
call CallBattleCore
ld hl, DraggedOutText
@@ -7389,63 +6770,63 @@ BattleCommand23: ; 3680f
ld hl, SpikesDamage
jp CallBattleCore
-.asm_36969
- call BattleCommand0a
- call BattleCommandaa
- call BattleCommand0c
+.fail
+ call BattleCommand_LowerSub
+ call BattleCommand_MoveDelay
+ call BattleCommand_RaiseSub
jp PrintButItFailed
-.asm_36975
+.succeed
push af
- call Function36804
+ call SetBattleDraw
ld a, $1
- ld [wc689], a
+ ld [wKickCounter], a
call AnimateCurrentMove
- ld c, $14
+ ld c, 20
call DelayFrames
pop af
ld hl, FledInFearText
- cp $2e
- jr z, .asm_36991
+ cp ROAR
+ jr z, .do_text
ld hl, BlownAwayText
-.asm_36991
+.do_text
jp StdBattleTextBox
; 36994
-Function36994: ; 36994
+CheckPlayerHasMonToSwitchTo: ; 36994
ld a, [PartyCount]
ld d, a
ld e, 0
- ld bc, PartyMon2 - PartyMon1
-.asm_3699d
+ ld bc, PARTYMON_STRUCT_LENGTH
+.loop
ld a, [CurBattleMon]
cp e
- jr z, .asm_369ae
+ jr z, .next
ld a, e
ld hl, PartyMon1HP
call AddNTimes
ld a, [hli]
or [hl]
- jr nz, .asm_369b4
+ jr nz, .not_fainted
-.asm_369ae
+.next
inc e
dec d
- jr nz, .asm_3699d
+ jr nz, .loop
scf
ret
-.asm_369b4
+.not_fainted
and a
ret
; 369b6
-BattleCommand24: ; 369b6
+BattleCommand_EndLoop: ; 369b6
; endloop
; Loop back to the command before 'critical'.
@@ -7578,30 +6959,30 @@ BattleCommand24: ; 369b6
; 36a82
-BattleCommand94: ; 36a82
+BattleCommand_FakeOut: ; 36a82
ld a, [AttackMissed]
and a
ret nz
call CheckSubstituteOpp
- jr nz, .asm_36a9a
+ jr nz, .fail
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVar
and 1 << FRZ | SLP
- jr nz, .asm_36a9a
+ jr nz, .fail
- call Function36abf
- jr z, Function36ab5
+ call CheckOpponentWentFirst
+ jr z, FlinchTarget
-.asm_36a9a
+.fail
ld a, 1
ld [AttackMissed], a
ret
; 36aa0
-BattleCommand25: ; 36aa0
+BattleCommand_FlinchTarget: ; 36aa0
call CheckSubstituteOpp
ret nz
@@ -7610,7 +6991,7 @@ BattleCommand25: ; 36aa0
and 1 << FRZ | SLP
ret nz
- call Function36abf
+ call CheckOpponentWentFirst
ret nz
ld a, [EffectFailed]
@@ -7621,7 +7002,7 @@ BattleCommand25: ; 36aa0
; 36ab5
-Function36ab5: ; 36ab5
+FlinchTarget: ; 36ab5
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
set SUBSTATUS_FLINCHED, [hl]
@@ -7629,18 +7010,20 @@ Function36ab5: ; 36ab5
; 36abf
-Function36abf: ; 36abf
+CheckOpponentWentFirst: ; 36abf
+; Returns a=0, z if user went first
+; Returns a=1, nz if opponent went first
push bc
- ld a, [wc70f]
+ ld a, [wEnemyGoesFirst] ; 0 if player went first
ld b, a
- ld a, [hBattleTurn]
- xor b
+ ld a, [hBattleTurn] ; 0 if it's the player's turn
+ xor b ; 1 if opponent went first
pop bc
ret
; 36ac9
-BattleCommand4d: ; 36ac9
+BattleCommand_KingsRock: ; 36ac9
; kingsrock
ld a, [AttackMissed]
@@ -7670,7 +7053,7 @@ BattleCommand4d: ; 36ac9
; 36af3
-BattleCommand26: ; 36af3
+BattleCommand_OHKO: ; 36af3
; ohko
call ResetDamage
@@ -7700,7 +7083,7 @@ BattleCommand26: ; 36af3
ld a, $ff
.asm_36b1e
ld [bc], a
- call BattleCommand09
+ call BattleCommand_CheckHit
ld hl, CurDamage
ld a, $ff
ld [hli], a
@@ -7717,7 +7100,7 @@ BattleCommand26: ; 36af3
; 36b3a
-BattleCommand3a: ; 36b3a
+BattleCommand_CheckCharge: ; 36b3a
; checkcharge
ld a, BATTLE_VARS_SUBSTATUS3
@@ -7732,21 +7115,21 @@ BattleCommand3a: ; 36b3a
; 36b4d
-BattleCommand39: ; 36b4d
+BattleCommand_Charge: ; 36b4d
; charge
- call BattleCommand38
+ call BattleCommand_ClearText
ld a, BATTLE_VARS_STATUS
call GetBattleVar
and SLP
- jr z, .asm_36b65
+ jr z, .awake
- call BattleCommandaa
- call BattleCommand0c
+ call BattleCommand_MoveDelay
+ call BattleCommand_RaiseSub
call PrintButItFailed
jp EndMoveEffect
-.asm_36b65
+.awake
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
set SUBSTATUS_CHARGED, [hl]
@@ -7756,41 +7139,41 @@ BattleCommand39: ; 36b4d
and a
call nz, StdBattleTextBox
- call BattleCommand0a
+ call BattleCommand_LowerSub
xor a
ld [wcfca], a
inc a
- ld [wc689], a
- call Function37e36
+ ld [wKickCounter], a
+ call LoadMoveAnim
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
cp FLY
- jr z, .asm_36b96
+ jr z, .flying
cp DIG
- jr z, .asm_36b96
- call BattleCommand0c
- jr .asm_36b99
-.asm_36b96
- call Function37ec0
-.asm_36b99
+ jr z, .flying
+ call BattleCommand_RaiseSub
+ jr .not_flying
+.flying
+ call DisappearUser
+.not_flying
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
ld b, a
cp FLY
- jr z, .asm_36bb0
+ jr z, .set_flying
cp DIG
- jr nz, .asm_36bb2
+ jr nz, .dont_set_digging
set SUBSTATUS_UNDERGROUND, [hl]
- jr .asm_36bb2
+ jr .dont_set_digging
-.asm_36bb0
+.set_flying
set SUBSTATUS_FLYING, [hl]
-.asm_36bb2
- call Function34548
- jr nz, .asm_36bc3
+.dont_set_digging
+ call CheckUserIsCharging
+ jr nz, .mimic
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
ld [hl], b
@@ -7798,7 +7181,7 @@ BattleCommand39: ; 36b4d
call GetBattleVarAddr
ld [hl], b
-.asm_36bc3
+.mimic
call ResetDamage
ld hl, .UsedText
@@ -7881,19 +7264,19 @@ BattleCommand3c: ; 36c2c
; 36c2d
-BattleCommand3b: ; 36c2d
+BattleCommand_TrapTarget: ; 36c2d
; traptarget
ld a, [AttackMissed]
and a
ret nz
- ld hl, wc731
- ld de, wc72f
+ ld hl, wEnemyWrapCount
+ ld de, wEnemyTrappingMove
ld a, [hBattleTurn]
and a
jr z, .asm_36c43
- ld hl, wc730
- ld de, wc72e
+ ld hl, wPlayerWrapCount
+ ld de, wPlayerTrappingMove
.asm_36c43
ld a, [hl]
@@ -7939,7 +7322,7 @@ endr
; 36c7e
-BattleCommand28: ; 36c7e
+BattleCommand_Mist: ; 36c7e
; mist
ld a, BATTLE_VARS_SUBSTATUS4
@@ -7956,7 +7339,7 @@ BattleCommand28: ; 36c7e
; 36c98
-BattleCommand29: ; 36c98
+BattleCommand_FocusEnergy: ; 36c98
; focusenergy
ld a, BATTLE_VARS_SUBSTATUS4
@@ -7973,7 +7356,7 @@ BattleCommand29: ; 36c98
; 36cb2
-BattleCommand27: ; 36cb2
+BattleCommand_Recoil: ; 36cb2
; recoil
ld hl, BattleMonMaxHP
@@ -8006,20 +7389,20 @@ rept 2
dec hl
endr
ld a, [hl]
- ld [wd1ec], a
+ ld [Buffer3], a
sub c
ld [hld], a
- ld [wd1ee], a
+ ld [Buffer5], a
ld a, [hl]
- ld [wd1ed], a
+ ld [Buffer4], a
sbc b
ld [hl], a
- ld [wd1ef], a
+ ld [Buffer6], a
jr nc, .asm_36cfe
xor a
ld [hli], a
ld [hl], a
- ld hl, wd1ee
+ ld hl, Buffer5
ld [hli], a
ld [hl], a
.asm_36cfe
@@ -8032,14 +7415,14 @@ endr
xor a
.asm_36d0c
ld [wd10a], a
- predef Functionc6e0
+ predef AnimateHPBar
call RefreshBattleHuds
ld hl, RecoilText
jp StdBattleTextBox
; 36d1d
-BattleCommand2b: ; 36d1d
+BattleCommand_ConfuseTarget: ; 36d1d
; confusetarget
call GetOpponentItem
@@ -8049,7 +7432,7 @@ BattleCommand2b: ; 36d1d
ld a, [EffectFailed]
and a
ret nz
- call Function37962
+ call SafeCheckSafeguard
ret nz
call CheckSubstituteOpp
ret nz
@@ -8060,7 +7443,7 @@ BattleCommand2b: ; 36d1d
jr Function36d70
-BattleCommand2a: ; 36d3b
+BattleCommand_Confuse: ; 36d3b
; confuse
call GetOpponentItem
@@ -8068,7 +7451,7 @@ BattleCommand2a: ; 36d3b
cp HELD_PREVENT_CONFUSE
jr nz, .asm_36d53
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
call AnimateFailedMove
ld hl, ProtectedByText
@@ -8122,7 +7505,7 @@ endr
.asm_36d99
ld de, ANIM_CONFUSED
- call Function37e54
+ call PlayOpponentBattleAnim
ld hl, BecameConfusedText
call StdBattleTextBox
@@ -8134,7 +7517,7 @@ endr
cp HELD_HEAL_CONFUSION
ret nz
.asm_36db0
- ld hl, Function3de51
+ ld hl, HandleStatusHealingItem
jp CallBattleCore
; 36db6
@@ -8151,7 +7534,7 @@ Function36db6: ; 36db6
; 36dc7
-BattleCommand30: ; 36dc7
+BattleCommand_Paralyze: ; 36dc7
; paralyze
ld a, BATTLE_VARS_STATUS_OPP
@@ -8166,7 +7549,7 @@ BattleCommand30: ; 36dc7
cp HELD_PREVENT_PARALYZE
jr nz, .asm_36def
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetItemName
call AnimateFailedMove
ld hl, ProtectedByText
@@ -8207,16 +7590,16 @@ BattleCommand30: ; 36dc7
call DelayFrames
call AnimateCurrentMove
ld a, $1
- ld [$ffd4], a
+ ld [hBGMapMode], a
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set PAR, [hl]
call UpdateOpponentInParty
- ld hl, Function3ec39
+ ld hl, ApplyPrzEffectOnSpeed
call CallBattleCore
call UpdateBattleHuds
call PrintParalyze
- ld hl, Function3dde9
+ ld hl, UseHeldStatusHealingItem
jp CallBattleCore
.asm_36e49
call AnimateFailedMove
@@ -8230,7 +7613,7 @@ BattleCommand30: ; 36dc7
; 36e5b
-Function36e5b: ; 36e5b
+CheckMoveTypeMatchesTarget: ; 36e5b
; Compare move type to opponent type.
; Return z if matching the opponent type,
; unless the move is Normal (Tri Attack).
@@ -8267,10 +7650,10 @@ Function36e5b: ; 36e5b
; 36e7c
-BattleCommand31: ; 36e7c
+BattleCommand_Substitute: ; 36e7c
; substitute
- call BattleCommandaa
+ call BattleCommand_MoveDelay
ld hl, BattleMonMaxHP
ld de, PlayerSubstituteHP
ld a, [hBattleTurn]
@@ -8283,7 +7666,7 @@ BattleCommand31: ; 36e7c
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
- jr nz, .asm_36ef4
+ jr nz, .already_has_sub
ld a, [hli]
ld b, [hl]
@@ -8302,10 +7685,10 @@ endr
ld a, [hl]
sbc 0
ld d, a
- jr c, .asm_36eff
+ jr c, .too_weak_to_sub
ld a, d
or e
- jr z, .asm_36eff
+ jr z, .too_weak_to_sub
ld [hl], d
inc hl
ld [hl], e
@@ -8314,51 +7697,51 @@ endr
call GetBattleVarAddr
set SUBSTATUS_SUBSTITUTE, [hl]
- ld hl, wc730
- ld de, wc72e
+ ld hl, wPlayerWrapCount
+ ld de, wPlayerTrappingMove
ld a, [hBattleTurn]
and a
- jr z, .asm_36ecf
- ld hl, wc731
- ld de, wc72f
-.asm_36ecf
+ jr z, .player
+ ld hl, wEnemyWrapCount
+ ld de, wEnemyTrappingMove
+.player
xor a
ld [hl], a
ld [de], a
- call Function37ed5
- jr c, .asm_36ee8
+ call _CheckBattleScene
+ jr c, .mobile
xor a
ld [wcfca], a
ld [FXAnimIDHi], a
- ld [wc689], a
+ ld [wKickCounter], a
ld a, SUBSTITUTE
- call Function37e44
- jr .asm_36eeb
+ call LoadAnim
+ jr .finish
-.asm_36ee8
- call BattleCommanda6
-.asm_36eeb
+.mobile
+ call BattleCommand_RaiseSubNoAnim
+.finish
ld hl, MadeSubstituteText
call StdBattleTextBox
jp RefreshBattleHuds
-.asm_36ef4
- call Function34548
- call nz, BattleCommand0c
+.already_has_sub
+ call CheckUserIsCharging
+ call nz, BattleCommand_RaiseSub
ld hl, HasSubstituteText
- jr .asm_36f08
+ jr .jp_stdbattletextbox
-.asm_36eff
- call Function34548
- call nz, BattleCommand0c
+.too_weak_to_sub
+ call CheckUserIsCharging
+ call nz, BattleCommand_RaiseSub
ld hl, TooWeakSubText
-.asm_36f08
+.jp_stdbattletextbox
jp StdBattleTextBox
; 36f0b
-BattleCommand32: ; 36f0b
+BattleCommand_RechargeNextTurn: ; 36f0b
; rechargenextturn
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
@@ -8377,7 +7760,7 @@ EndRechargeOpp: ; 36f13
; 36f1d
-BattleCommand97: ; 36f1d
+BattleCommand_Rage: ; 36f1d
; rage
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
@@ -8386,7 +7769,7 @@ BattleCommand97: ; 36f1d
; 36f25
-BattleCommand98: ; 36f25
+BattleCommand_DoubleFlyingDamage: ; 36f25
; doubleflyingdamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
@@ -8396,7 +7779,7 @@ BattleCommand98: ; 36f25
; 36f2f
-BattleCommand99: ; 36f2f
+BattleCommand_DoubleUndergroundDamage: ; 36f2f
; doubleundergrounddamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVar
@@ -8422,46 +7805,46 @@ DoubleDamage: ; 36f37
; 36f46
-BattleCommand33: ; 36f46
+BattleCommand_Mimic: ; 36f46
; mimic
- call Function372d8
- call BattleCommandaa
+ call ClearLastMove
+ call BattleCommand_MoveDelay
ld a, [AttackMissed]
and a
- jr nz, .asm_36f9a
+ jr nz, .fail
ld hl, BattleMonMoves
ld a, [hBattleTurn]
and a
- jr z, .asm_36f5d
+ jr z, .player_turn
ld hl, EnemyMonMoves
-.asm_36f5d
+.player_turn
call CheckHiddenOpponent
- jr nz, .asm_36f9a
+ jr nz, .fail
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
- jr z, .asm_36f9a
+ jr z, .fail
cp STRUGGLE
- jr z, .asm_36f9a
+ jr z, .fail
ld b, a
ld c, NUM_MOVES
-.asm_36f71
+.check_already_knows_move
ld a, [hli]
cp b
- jr z, .asm_36f9a
+ jr z, .fail
dec c
- jr nz, .asm_36f71
+ jr nz, .check_already_knows_move
dec hl
-.asm_36f79
+.find_mimic
ld a, [hld]
cp MIMIC
- jr nz, .asm_36f79
+ jr nz, .find_mimic
inc hl
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
ld [hl], a
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
ld bc, BattleMonPP - BattleMonMoves
add hl, bc
ld [hl], 5
@@ -8469,12 +7852,13 @@ BattleCommand33: ; 36f46
call AnimateCurrentMove
ld hl, LearnedMoveText
jp StdBattleTextBox
-.asm_36f9a
- jp Function37357
+
+.fail
+ jp FailMimic
; 36f9d
-BattleCommand35: ; 36f9d
+BattleCommand_LeechSeed: ; 36f9d
; leechseed
ld a, [AttackMissed]
and a
@@ -8517,14 +7901,14 @@ BattleCommand35: ; 36f9d
; 36fe1
-BattleCommand36: ; 36fe1
+BattleCommand_Splash: ; 36fe1
call AnimateCurrentMove
callba MobileFn_1060e5
jp PrintNothingHappened
; 36fed
-BattleCommand37: ; 36fed
+BattleCommand_Disable: ; 36fed
; disable
ld a, [AttackMissed]
@@ -8589,16 +7973,16 @@ BattleCommand37: ; 36fed
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
ld [hl], a
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetMoveName
ld hl, WasDisabledText
jp StdBattleTextBox
.asm_37059
- jp Function37354
+ jp FailDisable
; 3705c
-BattleCommand1e: ; 3705c
+BattleCommand_PayDay: ; 3705c
; payday
xor a
@@ -8627,7 +8011,7 @@ BattleCommand1e: ; 3705c
; 3707f
-BattleCommand1f: ; 3707f
+BattleCommand_Conversion: ; 3707f
; conversion
ld hl, BattleMonMoves
@@ -8716,7 +8100,7 @@ BattleCommand1f: ; 3707f
ld [de], a
inc de
ld [de], a
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
callba GetTypeName
call AnimateCurrentMove
ld hl, TransformedTypeText
@@ -8724,7 +8108,7 @@ BattleCommand1f: ; 3707f
; 3710e
-BattleCommand20: ; 3710e
+BattleCommand_ResetStats: ; 3710e
; resetstats
ld a, 7 ; neutral
@@ -8737,9 +8121,9 @@ BattleCommand20: ; 3710e
push af
call SetPlayerTurn
- call Function365d7
+ call CalcPlayerStats
call SetEnemyTurn
- call Function365fd
+ call CalcEnemyStats
pop af
ld [hBattleTurn], a
@@ -8759,7 +8143,7 @@ BattleCommand20: ; 3710e
; 3713e
-BattleCommand2c: ; 3713e
+BattleCommand_Heal: ; 3713e
; heal
ld de, BattleMonHP
@@ -8788,7 +8172,7 @@ BattleCommand2c: ; 3713e
push hl
push de
push af
- call BattleCommandaa
+ call BattleCommand_MoveDelay
ld a, BATTLE_VARS_SUBSTATUS5
call GetBattleVarAddr
res SUBSTATUS_TOXIC, [hl]
@@ -8805,10 +8189,10 @@ BattleCommand2c: ; 3713e
ld a, [hBattleTurn]
and a
jr nz, .asm_37193
- call Function365d7
+ call CalcPlayerStats
jr .asm_37196
.asm_37193
- call Function365fd
+ call CalcEnemyStats
.asm_37196
pop af
pop de
@@ -8824,7 +8208,7 @@ BattleCommand2c: ; 3713e
.asm_371a9
call AnimateCurrentMove
call BattleCommand_SwitchTurn
- ld hl, Function3ccef
+ ld hl, RestoreHP
call CallBattleCore
call BattleCommand_SwitchTurn
call UpdateUserInParty
@@ -8839,10 +8223,10 @@ BattleCommand2c: ; 3713e
; 371cd
-BattleCommand2d: ; 371cd
+BattleCommand_Transform: ; 371cd
; transform
- call Function372d8
+ call ClearLastMove
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
bit SUBSTATUS_TRANSFORMED, [hl]
@@ -8853,17 +8237,17 @@ BattleCommand2d: ; 371cd
ld [wcfca], a
ld [FXAnimIDHi], a
ld a, $1
- ld [wc689], a
+ ld [wKickCounter], a
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
bit SUBSTATUS_SUBSTITUTE, [hl]
push af
- jr z, .asm_37200
- call Function34548
- jr nz, .asm_37200
+ jr z, .mimic_substitute
+ call CheckUserIsCharging
+ jr nz, .mimic_substitute
ld a, SUBSTITUTE
- call Function37e44
-.asm_37200
+ call LoadAnim
+.mimic_substitute
ld a, BATTLE_VARS_SUBSTATUS5
call GetBattleVarAddr
set SUBSTATUS_TRANSFORMED, [hl]
@@ -8872,12 +8256,12 @@ BattleCommand2d: ; 371cd
ld de, EnemyMonSpecies
ld a, [hBattleTurn]
and a
- jr nz, .asm_3721f
+ jr nz, .got_mon_species
ld hl, EnemyMonSpecies
ld de, BattleMonSpecies
xor a
ld [CurMoveNum], a
-.asm_3721f
+.got_mon_species
push hl
ld a, [hli]
ld [de], a
@@ -8889,21 +8273,23 @@ endr
call CopyBytes
ld a, [hBattleTurn]
and a
- jr z, .asm_3723a
+ jr z, .mimic_enemy_backup
ld a, [de]
- ld [wc6f2], a
+ ld [wEnemyBackupDVs], a
inc de
ld a, [de]
- ld [wc6f2 + 1], a
+ ld [wEnemyBackupDVs + 1], a
dec de
-.asm_3723a
+.mimic_enemy_backup
+; copy DVs
ld a, [hli]
ld [de], a
inc de
ld a, [hli]
ld [de], a
inc de
- ld bc, $000c
+; move pointer to stats
+ ld bc, BattleMonStats - BattleMonPP
add hl, bc
push hl
ld h, d
@@ -8912,66 +8298,67 @@ endr
ld d, h
ld e, l
pop hl
- ld bc, $000c
+ ld bc, BattleMonStructEnd - BattleMonStats
call CopyBytes
- ld bc, $ffe2
+; init the power points
+ ld bc, BattleMonMoves - BattleMonStructEnd
add hl, bc
push de
ld d, h
ld e, l
pop hl
- ld bc, $ffe8
+ ld bc, BattleMonPP - BattleMonStructEnd
add hl, bc
ld b, NUM_MOVES
-.asm_3725f
+.pp_loop
ld a, [de]
inc de
and a
- jr z, .asm_3726c
+ jr z, .done_move
cp SKETCH
ld a, 1
- jr z, .asm_3726c
+ jr z, .done_move
ld a, 5
-.asm_3726c
+.done_move
ld [hli], a
dec b
- jr nz, .asm_3725f
+ jr nz, .pp_loop
pop hl
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
ld hl, EnemyStats
ld de, PlayerStats
- ld bc, $000a
+ ld bc, 2 * 5
call BattleSideCopy
ld hl, EnemyStatLevels
ld de, PlayerStatLevels
- ld bc, $0008
+ ld bc, 8
call BattleSideCopy
- call Function37ed5
- jr c, .asm_372a8
- ld a, [hBattleTurn]
- and a
- ld a, [wc6fe]
- jr z, .asm_372a0
- ld a, [wc6fa]
-.asm_372a0
- and a
- jr nz, .asm_372a8
- call Function37e36
- jr .asm_372ae
-.asm_372a8
- call BattleCommandaa
- call BattleCommanda6
-.asm_372ae
+ call _CheckBattleScene
+ jr c, .mimic_anims
+ ld a, [hBattleTurn]
+ and a
+ ld a, [wPlayerMinimized]
+ jr z, .got_byte
+ ld a, [wEnemyMinimized]
+.got_byte
+ and a
+ jr nz, .mimic_anims
+ call LoadMoveAnim
+ jr .after_anim
+.mimic_anims
+ call BattleCommand_MoveDelay
+ call BattleCommand_RaiseSubNoAnim
+.after_anim
xor a
ld [wcfca], a
ld [FXAnimIDHi], a
ld a, $2
- ld [wc689], a
+ ld [wKickCounter], a
pop af
ld a, SUBSTITUTE
- call nz, Function37e44
+ call nz, LoadAnim
ld hl, TransformedText
jp StdBattleTextBox
; 372c6
@@ -9000,7 +8387,7 @@ Function372d2: ; 372d2
; 372d8
-Function372d8: ; 372d8
+ClearLastMove: ; 372d8
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
xor a
@@ -9032,7 +8419,7 @@ ResetActorDisable: ; 372e7
; 372fc
-BattleCommand2e: ; 372fc
+BattleCommand_Screen: ; 372fc
; screen
ld hl, PlayerScreens
@@ -9109,15 +8496,20 @@ PrintButItFailed: ; 3734e
; 37354
-Function37354: ; 37354
+FailSnore:
+FailDisable:
+FailConversion2:
+FailAttract:
+FailForesight:
+FailSpikes:
call AnimateFailedMove
; fallthrough
; 37357
-Function37357: ; 37357
+FailMimic: ; 37357
ld hl, ButItFailedText ; 'but it failed!'
ld de, ItFailedText ; 'it failed!'
- jp Function35157
+ jp FailText_CheckOpponentProtect
; 37360
@@ -9132,7 +8524,7 @@ PrintDidntAffect2: ; 37366
call AnimateFailedMove
ld hl, DidntAffect1Text ; 'it didn't affect'
ld de, DidntAffect2Text ; 'it didn't affect'
- jp Function35157
+ jp FailText_CheckOpponentProtect
; 37372
@@ -9151,11 +8543,11 @@ CheckSubstituteOpp: ; 37378
; 37380
-BattleCommand1a: ; 37380
+BattleCommand_SelfDestruct: ; 37380
callba MobileFn_10610d
- ld a, $4
+ ld a, BATTLEANIM_PLAYER_DAMAGE
ld [wcfca], a
- ld c, $3
+ ld c, 3
call DelayFrames
ld a, BATTLE_VARS_STATUS
call GetBattleVarAddr
@@ -9165,16 +8557,16 @@ BattleCommand1a: ; 37380
ld [hli], a
ld [hl], a
ld a, $1
- ld [wc689], a
- call BattleCommand0a
- call Function37e36
+ ld [wKickCounter], a
+ call BattleCommand_LowerSub
+ call LoadMoveAnim
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVarAddr
res SUBSTATUS_LEECH_SEED, [hl]
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
res SUBSTATUS_DESTINY_BOND, [hl]
- call Function37ed5
+ call _CheckBattleScene
ret nc
callba DrawPlayerHUD
callba DrawEnemyHUD
@@ -9215,13 +8607,13 @@ CheckUserMove: ; 37462
ResetTurn: ; 3747b
- ld hl, wc732
+ ld hl, wPlayerCharging
ld a, [hBattleTurn]
and a
- jr z, .asm_37486
- ld hl, wc733
+ jr z, .player
+ ld hl, wEnemyCharging
-.asm_37486
+.player
ld [hl], 1
xor a
ld [AlreadyDisobeyed], a
@@ -9233,7 +8625,7 @@ ResetTurn: ; 3747b
INCLUDE "battle/effects/thief.asm"
-BattleCommand51: ; 37517
+BattleCommand_ArenaTrap: ; 37517
; arenatrap
; Doesn't work on an absent opponent.
@@ -9264,7 +8656,7 @@ BattleCommand51: ; 37517
INCLUDE "battle/effects/nightmare.asm"
-BattleCommand53: ; 37563
+BattleCommand_Defrost: ; 37563
; defrost
; Thaw the user.
@@ -9286,7 +8678,7 @@ BattleCommand53: ; 37563
jr z, .done
.party
- ld a, PartyMon1Status - PartyMon1
+ ld a, MON_STATUS
call UserPartyAttr
res FRZ, [hl]
@@ -9320,7 +8712,7 @@ BattleCommand5d: ; 37791
; 37792
-BattleCommand5e: ; 37792
+BattleCommand_FuryCutter: ; 37792
; furycutter
ld hl, PlayerFuryCutterCount
@@ -9381,88 +8773,9 @@ ResetFuryCutterCount: ; 377be
; 377ce
-BattleCommand5f: ; 377ce
-; attract
- ld a, [AttackMissed]
- and a
- jr nz, .failed
- call Function377f5
- jr c, .failed
- call CheckHiddenOpponent
- jr nz, .failed
- ld a, BATTLE_VARS_SUBSTATUS1_OPP
- call GetBattleVarAddr
- bit SUBSTATUS_IN_LOVE, [hl]
- jr nz, .failed
-
- set SUBSTATUS_IN_LOVE, [hl]
- call AnimateCurrentMove
-
-; 'fell in love!'
- ld hl, FellInLoveText
- jp StdBattleTextBox
-
-.failed
- jp Function37354
-; 377f5
-
-
-Function377f5: ; 377f5
- ld a, PartyMon1Species - PartyMon1
- call BattlePartyAttr
- ld a, [hl]
- ld [CurPartySpecies], a
-
- ld a, [CurBattleMon]
- ld [CurPartyMon], a
- xor a
- ld [MonType], a
-
- callba GetGender
- jr c, .asm_37849
-
- ld b, 1
- jr nz, .asm_37815
- dec b
-
-.asm_37815
- push bc
- ld a, [TempEnemyMonSpecies]
- ld [CurPartySpecies], a
- ld hl, EnemyMonDVs
- ld a, [EnemySubStatus5]
- bit SUBSTATUS_TRANSFORMED, a
- jr z, .asm_37829
- ld hl, wc6f2
-.asm_37829
- ld a, [hli]
- ld [TempMonDVs], a
- ld a, [hl]
- ld [TempMonDVs + 1], a
- ld a, 3
- ld [MonType], a
- callba GetGender
- pop bc
- jr c, .asm_37849
-
- ld a, 1
- jr nz, .asm_37844
- dec a
+INCLUDE "battle/effects/attract.asm"
-.asm_37844
- xor b
- jr z, .asm_37849
-
- and a
- ret
-
-.asm_37849
- scf
- ret
-; 3784b
-
-
-BattleCommand60: ; 3784b
+BattleCommand_HappinessPower: ; 3784b
; happinesspower
push bc
ld hl, BattleMonHappiness
@@ -9490,102 +8803,9 @@ BattleCommand60: ; 3784b
; 37874
-BattleCommand61: ; 37874
-; present
-
- ld a, [wLinkMode]
- cp $3
- jr z, .asm_3787d
- push bc
- push de
-.asm_3787d
-
- call BattleCommand_CalcDamageTypeMultiplier
-
- ld a, [wLinkMode]
- cp $3
- jr z, .asm_37889
- pop de
- pop bc
-.asm_37889
-
- ld a, [wd265]
- and a
- jp z, AnimateFailedMove
- ld a, [AttackMissed]
- and a
- jp nz, AnimateFailedMove
-
- push bc
- call BattleRandom
- ld b, a
- ld hl, .table_37907
- ld c, 0
-.asm_378a1
- ld a, [hli]
- cp $ff
- jr z, .asm_378b7 ; 378a4 $11
- cp b
- jr nc, .asm_378ad ; 378a7 $4
- inc c
- inc hl
- jr .asm_378a1 ; 378ab $f4
-
-.asm_378ad
- ld a, c
- ld [wc689], a
- call Function37de9
- ld d, [hl]
- pop bc
- ret
-
-.asm_378b7
- pop bc
- ld a, $3
- ld [wc689], a
- call AnimateCurrentMove
- call BattleCommand_SwitchTurn
- ld hl, AICheckPlayerMaxHP
- ld a, [hBattleTurn]
- and a
- jr z, .asm_378ce ; 378c9 $3
- ld hl, AICheckEnemyMaxHP
-.asm_378ce
- ld a, BANK(AICheckPlayerMaxHP)
- rst FarCall
- jr c, .asm_378f3 ; 378d1 $20
+INCLUDE "battle/effects/present.asm"
- ld hl, GetQuarterMaxHP
- call CallBattleCore
- call BattleCommand_SwitchTurn
- ld hl, Function3ccef
- call CallBattleCore
- call BattleCommand_SwitchTurn
- ld hl, RegainedHealthText
- call StdBattleTextBox
- call BattleCommand_SwitchTurn
- call UpdateOpponentInParty
- jr .asm_37904 ; 378f1 $11
-
-.asm_378f3
- call BattleCommand_SwitchTurn
- call Function37ed5
- jr nc, .asm_37904 ; 378f9 $9
- call AnimateFailedMove
- ld hl, RefusedGiftText
- call StdBattleTextBox
-.asm_37904
- jp EndMoveEffect
-
-.table_37907
- db 40 percent, 40
- db 70 percent + 1, 80
- db 80 percent, 120
- db $ff
-; 3790e
-
-
-BattleCommand63: ; 3790e
+BattleCommand_FrustrationPower: ; 3790e
; frustrationpower
push bc
@@ -9615,7 +8835,7 @@ BattleCommand63: ; 3790e
; 37939
-BattleCommand64: ; 37939
+BattleCommand_Safeguard: ; 37939
; safeguard
ld hl, PlayerScreens
@@ -9640,41 +8860,41 @@ BattleCommand64: ; 37939
; 37962
-Function37962: ; 37962
+SafeCheckSafeguard: ; 37962
push hl
ld hl, EnemyScreens
ld a, [hBattleTurn]
and a
- jr z, .asm_3796e
+ jr z, .got_turn
ld hl, PlayerScreens
-.asm_3796e
+.got_turn
bit SCREENS_SAFEGUARD, [hl]
pop hl
ret
; 37972
-BattleCommand65: ; 37972
+BattleCommand_CheckSafeguard: ; 37972
; checksafeguard
ld hl, EnemyScreens
ld a, [hBattleTurn]
and a
- jr z, .asm_3797d ; 37978 $3
+ jr z, .got_turn ; 37978 $3
ld hl, PlayerScreens
-.asm_3797d
+.got_turn
bit SCREENS_SAFEGUARD, [hl]
ret z
ld a, 1
ld [AttackMissed], a
- call BattleCommandaa
+ call BattleCommand_MoveDelay
ld hl, SafeguardProtectText
call StdBattleTextBox
jp EndMoveEffect
; 37991
-BattleCommand66: ; 37991
+BattleCommand_GetMagnitude: ; 37991
; getmagnitude
push bc
@@ -9694,8 +8914,8 @@ endr
push de
inc hl
ld a, [hl]
- ld [wd265], a
- call BattleCommandaa
+ ld [wTypeMatchup], a
+ call BattleCommand_MoveDelay
ld hl, MagnitudeText
call StdBattleTextBox
pop de
@@ -9714,7 +8934,7 @@ endr
; 379c9
-BattleCommand67: ; 379c9
+BattleCommand_BatonPass: ; 379c9
; batonpass
ld a, [hBattleTurn]
@@ -9733,14 +8953,14 @@ BattleCommand67: ; 379c9
call DelayFrames
; Transition into switchmon menu
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
callba Function3d2f7
callba ForcePickSwitchMonInBattle
; Return to battle scene
call ClearPalettes
- callba Function3ed9f
+ callba _LoadBattleFontsHPBar
call WriteBackup
call ClearSprites
hlcoord 1, 0
@@ -9752,7 +8972,7 @@ BattleCommand67: ; 379c9
call BatonPass_LinkPlayerSwitch
; Mobile link battles handle entrances differently
- callba Function3d2e0
+ callba CheckMobileBattleError
jp c, EndMoveEffect
ld hl, PassedBattleMonEntrance
@@ -9777,18 +8997,18 @@ BattleCommand67: ; 379c9
call BatonPass_LinkEnemySwitch
; Mobile link battles handle entrances differently
- callba Function3d2e0
+ callba CheckMobileBattleError
jp c, EndMoveEffect
; Passed enemy PartyMon entrance
xor a
- ld [wc718], a
- ld hl, Function3d517
+ ld [wEnemySwitchMonIndex], a
+ ld hl, EnemySwitch_SetMode
call CallBattleCore
- ld hl, Function3d57a
+ ld hl, ResetBattleParticipants
call CallBattleCore
ld a, 1
- ld [wd265], a
+ ld [wTypeMatchup], a
ld hl, ApplyStatLevelMultiplierOnAllStats
call CallBattleCore
@@ -9807,7 +9027,7 @@ BatonPass_LinkPlayerSwitch: ; 37a67
ld a, 1
ld [wd0ec], a
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld hl, Function3e8e4
call CallBattleCore
call WriteBackup
@@ -9823,24 +9043,24 @@ BatonPass_LinkEnemySwitch: ; 37a82
and a
ret z
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld hl, Function3e8e4
call CallBattleCore
ld a, [OTPartyCount]
- add NUM_MOVES
+ add BATTLEACTION_SWITCH1
ld b, a
ld a, [wBattleAction]
- cp NUM_MOVES
- jr c, .asm_37aa0
+ cp BATTLEACTION_SWITCH1
+ jr c, .baton_pass
cp b
- jr c, .asm_37aa8
+ jr c, .switch
-.asm_37aa0
+.baton_pass
ld a, [CurOTMon]
- add NUM_MOVES
+ add BATTLEACTION_SWITCH1
ld [wBattleAction], a
-.asm_37aa8
+.switch
jp WriteBackup
; 37aab
@@ -9886,8 +9106,8 @@ ResetBatonPassStatus: ; 37ab1
ld [hl], 0
xor a
- ld [wc730], a
- ld [wc731], a
+ ld [wPlayerWrapCount], a
+ ld [wEnemyWrapCount], a
ret
; 37ae9
@@ -9937,7 +9157,7 @@ CheckAnyOtherAliveMons: ; 37b01
.next
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
pop bc
inc c
@@ -9950,7 +9170,7 @@ CheckAnyOtherAliveMons: ; 37b01
; 37b1d
-BattleCommand68: ; 37b1d
+BattleCommand_Pursuit: ; 37b1d
; pursuit
; Double damage if the opponent is switching.
@@ -9977,7 +9197,7 @@ BattleCommand68: ; 37b1d
; 37b39
-BattleCommand69: ; 37b39
+BattleCommand_ClearHazards: ; 37b39
; clearhazards
ld a, BATTLE_VARS_SUBSTATUS4
@@ -9990,12 +9210,12 @@ BattleCommand69: ; 37b39
.asm_37b4a
ld hl, PlayerScreens
- ld de, wc730
+ ld de, wPlayerWrapCount
ld a, [hBattleTurn]
and a
jr z, .asm_37b5b ; 37b53 $6
ld hl, EnemyScreens
- ld de, wc731
+ ld de, wEnemyWrapCount
.asm_37b5b
bit SCREENS_SPIKES, [hl]
jr z, .asm_37b69 ; 37b5d $a
@@ -10016,25 +9236,25 @@ BattleCommand69: ; 37b39
; 37b74
-BattleCommand6a: ; 37b74
+BattleCommand_HealMorn: ; 37b74
; healmorn
ld b, MORN
- jr BattleCommand6a6c
+ jr BattleCommand_HealMorn6c
; 37b78
-BattleCommand6b: ; 37b78
+BattleCommand_HealDay: ; 37b78
; healday
ld b, DAY
- jr BattleCommand6a6c
+ jr BattleCommand_HealMorn6c
; 37b7c
-BattleCommand6c: ; 37b7c
+BattleCommand_HealNite: ; 37b7c
; healnite
ld b, NITE
; fallthrough
; 37b7e
-BattleCommand6a6c: ; 37b7e
+BattleCommand_HealMorn6c: ; 37b7e
; Time- and weather-sensitive heal.
ld hl, BattleMonMaxHP
@@ -10096,7 +9316,7 @@ endr
call AnimateCurrentMove
call BattleCommand_SwitchTurn
- callab Function3ccef
+ callab RestoreHP
call BattleCommand_SwitchTurn
call UpdateUserInParty
@@ -10120,7 +9340,7 @@ endr
; 37be8
-BattleCommand6d: ; 37be8
+BattleCommand_HiddenPower: ; 37be8
; hiddenpower
ld a, [AttackMissed]
@@ -10131,7 +9351,7 @@ BattleCommand6d: ; 37be8
; 37bf4
-BattleCommand6e: ; 37bf4
+BattleCommand_StartRain: ; 37bf4
; startrain
ld a, WEATHER_RAIN
ld [Weather], a
@@ -10143,7 +9363,7 @@ BattleCommand6e: ; 37bf4
; 37c07
-BattleCommand6f: ; 37c07
+BattleCommand_StartSun: ; 37c07
; startsun
ld a, WEATHER_SUN
ld [Weather], a
@@ -10155,88 +9375,96 @@ BattleCommand6f: ; 37c07
; 37c1a
-BattleCommand95: ; 37c1a
+BattleCommand_BellyDrum: ; 37c1a
; bellydrum
- call BattleCommand77
+; This command is buggy because it raises the user's attack
+; before checking that it has enough HP to use the move.
+; Swap the order of these two blocks to fix.
+ call BattleCommand_AttackUp2
ld a, [AttackMissed]
and a
- jr nz, .asm_37c4f
+ jr nz, .failed
callab GetHalfMaxHP
-
- callab Function3ccde
- jr nc, .asm_37c4f
+ callab CheckUserHasEnoughHP
+ jr nc, .failed
push bc
call AnimateCurrentMove
pop bc
- callab Function3cc3f
+ callab SubtractHPFromUser
call UpdateUserInParty
ld a, 5
-.asm_37c41
+.max_attack_loop
push af
- call BattleCommand77
+ call BattleCommand_AttackUp2
pop af
dec a
- jr nz, .asm_37c41
+ jr nz, .max_attack_loop
ld hl, BellyDrumText
jp StdBattleTextBox
-.asm_37c4f
+
+.failed
call AnimateFailedMove
jp PrintButItFailed
; 37c55
-BattleCommand96: ; 37c55
+BattleCommand_PsychUp: ; 37c55
; psychup
ld hl, EnemyStatLevels
ld de, PlayerStatLevels
ld a, [hBattleTurn]
and a
- jr z, .asm_37c64 ; 37c5e $4
+ jr z, .pointers_correct ; 37c5e $4
+; It's the enemy's turn, so swap the pointers.
push hl
ld h, d
ld l, e
pop de
-.asm_37c64
+.pointers_correct
push hl
- ld b, $8
-.asm_37c67
+ ld b, NUM_LEVEL_STATS
+; If any of the enemy's stats is modified from its base level,
+; the move succeeds. Otherwise, it fails.
+.loop
ld a, [hli]
- cp $7
- jr nz, .asm_37c76 ; 37c6a $a
+ cp BASE_STAT_LEVEL
+ jr nz, .break ; 37c6a $a
dec b
- jr nz, .asm_37c67 ; 37c6d $f8
+ jr nz, .loop ; 37c6d $f8
pop hl
call AnimateFailedMove
jp PrintButItFailed
-.asm_37c76
+
+.break
pop hl
- ld b, $8
-.asm_37c79
+ ld b, NUM_LEVEL_STATS
+.loop2
ld a, [hli]
ld [de], a
inc de
dec b
- jr nz, .asm_37c79 ; 37c7d $fa
+ jr nz, .loop2 ; 37c7d $fa
ld a, [hBattleTurn]
and a
- jr nz, .asm_37c89 ; 37c82 $5
- call Function365d7
- jr .asm_37c8c ; 37c87 $3
-.asm_37c89
- call Function365fd
-.asm_37c8c
+ jr nz, .calc_enemy_stats ; 37c82 $5
+ call CalcPlayerStats
+ jr .merge ; 37c87 $3
+
+.calc_enemy_stats
+ call CalcEnemyStats
+.merge
call AnimateCurrentMove
ld hl, CopiedStatsText
jp StdBattleTextBox
; 37c95
-BattleCommand9a: ; 37c95
+BattleCommand_MirrorCoat: ; 37c95
; mirrorcoat
ld a, 1
@@ -10253,12 +9481,12 @@ BattleCommand9a: ; 37c95
cp EFFECT_MIRROR_COAT
ret z
- call BattleCommanda3
- ld a, [wd265]
+ call BattleCommand_ResetTypeMatchup
+ ld a, [wTypeMatchup]
and a
ret z
- call Function36abf
+ call CheckOpponentWentFirst
ret z
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
@@ -10298,14 +9526,14 @@ BattleCommand9a: ; 37c95
; 37ce6
-BattleCommand9d: ; 37ce6
+BattleCommand_DoubleMinimizeDamage: ; 37ce6
; doubleminimizedamage
- ld hl, wc6fa
+ ld hl, wEnemyMinimized
ld a, [hBattleTurn]
and a
jr z, .ok
- ld hl, wc6fe
+ ld hl, wPlayerMinimized
.ok
ld a, [hl]
and a
@@ -10322,8 +9550,8 @@ BattleCommand9d: ; 37ce6
; 37d02
-BattleCommand9e: ; 37d02
-; skipsuncharge
+BattleCommand_SkipSunCharge: ; 37d02
+; mimicsuncharge
ld a, [Weather]
cp WEATHER_SUN
ret nz
@@ -10332,15 +9560,15 @@ BattleCommand9e: ; 37d02
; 37d0d
-BattleCommand9b: ; 37d0d
+BattleCommand_CheckFutureSight: ; 37d0d
; checkfuturesight
- ld hl, wc71d
+ ld hl, wPlayerFutureSightCount
ld de, wc727
ld a, [hBattleTurn]
and a
jr z, .ok
- ld hl, wc71e
+ ld hl, wEnemyFutureSightCount
ld de, wc729
.ok
@@ -10360,10 +9588,10 @@ BattleCommand9b: ; 37d0d
jp SkipToBattleCommand
; 37d34
-BattleCommand9c: ; 37d34
+BattleCommand_FutureSight: ; 37d34
; futuresight
- call Function34548
+ call CheckUserIsCharging
jr nz, .asm_37d4b ; 37d37 $12
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -10375,22 +9603,22 @@ BattleCommand9c: ; 37d34
call GetBattleVarAddr
ld [hl], b
.asm_37d4b
- ld hl, wc71d
+ ld hl, wPlayerFutureSightCount
ld a, [hBattleTurn]
and a
jr z, .asm_37d56 ; 37d51 $3
- ld hl, wc71e
+ ld hl, wEnemyFutureSightCount
.asm_37d56
ld a, [hl]
and a
jr nz, .asm_37d87 ; 37d58 $2d
ld a, $4
ld [hl], a
- call BattleCommand0a
- call BattleCommandaa
+ call BattleCommand_LowerSub
+ call BattleCommand_MoveDelay
ld hl, ForesawAttackText
call StdBattleTextBox
- call BattleCommand0c
+ call BattleCommand_RaiseSub
ld de, wc727
ld a, [hBattleTurn]
and a
@@ -10416,7 +9644,7 @@ BattleCommand9c: ; 37d34
; 37d94
-BattleCommand9f: ; 37d94
+BattleCommand_ThunderAccuracy: ; 37d94
; thunderaccuracy
ld a, BATTLE_VARS_MOVE_TYPE
@@ -10452,7 +9680,7 @@ GetUserItem: ; 37db2
ld hl, EnemyMonItem
.go
ld b, [hl]
- jp GetItem
+ jp GetItemHeldEffect
; 37dc1
@@ -10465,11 +9693,11 @@ GetOpponentItem: ; 37dc1
ld hl, BattleMonItem
.go
ld b, [hl]
- jp GetItem
+ jp GetItemHeldEffect
; 37dd0
-GetItem: ; 37dd0
+GetItemHeldEffect: ; 37dd0
; Return the effect of item b in bc.
ld a, b
and a
@@ -10491,17 +9719,17 @@ GetItem: ; 37dd0
; 37de9
-Function37de9: ; 37de9
+AnimateCurrentMoveEitherSide: ; 37de9
push hl
push de
push bc
- ld a, [wc689]
+ ld a, [wKickCounter]
push af
- call BattleCommand0a
+ call BattleCommand_LowerSub
pop af
- ld [wc689], a
- call Function37e19
- call BattleCommand0c
+ ld [wKickCounter], a
+ call PlayDamageAnim
+ call BattleCommand_RaiseSub
pop bc
pop de
pop hl
@@ -10513,13 +9741,13 @@ AnimateCurrentMove: ; 37e01
push hl
push de
push bc
- ld a, [wc689]
+ ld a, [wKickCounter]
push af
- call BattleCommand0a
+ call BattleCommand_LowerSub
pop af
- ld [wc689], a
- call Function37e36
- call BattleCommand0c
+ ld [wKickCounter], a
+ call LoadMoveAnim
+ call BattleCommand_RaiseSub
pop bc
pop de
pop hl
@@ -10527,7 +9755,7 @@ AnimateCurrentMove: ; 37e01
; 37e19
-Function37e19: ; 37e19
+PlayDamageAnim: ; 37e19
xor a
ld [FXAnimIDHi], a
@@ -10540,18 +9768,18 @@ Function37e19: ; 37e19
ld a, [hBattleTurn]
and a
- ld a, 1
- jr z, .asm_37e30
- ld a, 4
+ ld a, BATTLEANIM_ENEMY_DAMAGE
+ jr z, .player
+ ld a, BATTLEANIM_PLAYER_DAMAGE
-.asm_37e30
+.player
ld [wcfca], a
- jp Function37e47
+ jp PlayUserBattleAnim
; 37e36
-Function37e36: ; 37e36
+LoadMoveAnim: ; 37e36
xor a
ld [wcfca], a
ld [FXAnimIDHi], a
@@ -10565,7 +9793,7 @@ Function37e36: ; 37e36
; 37e44
-Function37e44: ; 37e44
+LoadAnim: ; 37e44
ld [FXAnimIDLo], a
@@ -10573,7 +9801,7 @@ Function37e44: ; 37e44
; 37e47
-Function37e47: ; 37e47
+PlayUserBattleAnim: ; 37e47
push hl
push de
push bc
@@ -10585,7 +9813,7 @@ Function37e47: ; 37e47
; 37e54
-Function37e54: ; 37e54
+PlayOpponentBattleAnim: ; 37e54
ld a, e
ld [FXAnimIDLo], a
ld a, d
@@ -10616,13 +9844,13 @@ CallBattleCore: ; 37e73
AnimateFailedMove: ; 37e77
- call BattleCommand0a
- call BattleCommandaa
- jp BattleCommand0c
+ call BattleCommand_LowerSub
+ call BattleCommand_MoveDelay
+ jp BattleCommand_RaiseSub
; 37e80
-BattleCommandaa: ; 37e80
+BattleCommand_MoveDelay: ; 37e80
; movedelay
; Wait 40 frames.
ld c, 40
@@ -10630,7 +9858,7 @@ BattleCommandaa: ; 37e80
; 37e85
-BattleCommand38: ; 37e85
+BattleCommand_ClearText: ; 37e85
; cleartext
; Used in multi-hit moves.
@@ -10647,10 +9875,10 @@ SkipToBattleCommand: ; 37e8c
ld h, a
ld a, [BattleScriptBufferLoc]
ld l, a
-.asm_37e94
+.loop
ld a, [hli]
cp b
- jr nz, .asm_37e94
+ jr nz, .loop
ld a, h
ld [BattleScriptBufferLoc + 1], a
@@ -10687,26 +9915,26 @@ GetMoveByte: ; 37ebb
; 37ec0
-Function37ec0: ; 37ec0
- callba Functionfbd54
+DisappearUser: ; 37ec0
+ callba _DisappearUser
ret
; 37ec7
-Function37ec7: ; 37ec7
- callba Functionfbd71
+AppearUserLowerSub: ; 37ec7
+ callba _AppearUserLowerSub
ret
; 37ece
-Function37ece: ; 37ece
- callba Functionfbd69
+AppearUserRaiseSub: ; 37ece
+ callba _AppearUserRaiseSub
ret
; 37ed5
-Function37ed5: ; 37ed5
-; Related to mobile link battles.
+_CheckBattleScene: ; 37ed5
+; Checks the options. Returns carry if battle animations are disabled.
push hl
push de
push bc
diff --git a/battle/effects/attract.asm b/battle/effects/attract.asm
new file mode 100755
index 000000000..f1bc590eb
--- /dev/null
+++ b/battle/effects/attract.asm
@@ -0,0 +1,79 @@
+BattleCommand_Attract: ; 377ce
+; attract
+ ld a, [AttackMissed]
+ and a
+ jr nz, .failed
+ call CheckOppositeGender
+ jr c, .failed
+ call CheckHiddenOpponent
+ jr nz, .failed
+ ld a, BATTLE_VARS_SUBSTATUS1_OPP
+ call GetBattleVarAddr
+ bit SUBSTATUS_IN_LOVE, [hl]
+ jr nz, .failed
+
+ set SUBSTATUS_IN_LOVE, [hl]
+ call AnimateCurrentMove
+
+; 'fell in love!'
+ ld hl, FellInLoveText
+ jp StdBattleTextBox
+
+.failed
+ jp FailAttract
+; 377f5
+
+
+CheckOppositeGender: ; 377f5
+ ld a, MON_SPECIES
+ call BattlePartyAttr
+ ld a, [hl]
+ ld [CurPartySpecies], a
+
+ ld a, [CurBattleMon]
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+
+ callba GetGender
+ jr c, .genderless_samegender
+
+ ld b, 1
+ jr nz, .got_gender
+ dec b
+
+.got_gender
+ push bc
+ ld a, [TempEnemyMonSpecies]
+ ld [CurPartySpecies], a
+ ld hl, EnemyMonDVs
+ ld a, [EnemySubStatus5]
+ bit SUBSTATUS_TRANSFORMED, a
+ jr z, .not_transformed
+ ld hl, wEnemyBackupDVs
+.not_transformed
+ ld a, [hli]
+ ld [TempMonDVs], a
+ ld a, [hl]
+ ld [TempMonDVs + 1], a
+ ld a, 3
+ ld [MonType], a
+ callba GetGender
+ pop bc
+ jr c, .genderless_samegender
+
+ ld a, 1
+ jr nz, .got_enemy_gender
+ dec a
+
+.got_enemy_gender
+ xor b
+ jr z, .genderless_samegender
+
+ and a
+ ret
+
+.genderless_samegender
+ scf
+ ret
+; 3784b
diff --git a/battle/effects/curse.asm b/battle/effects/curse.asm
index 06706aba1..dceb3b8d5 100644
--- a/battle/effects/curse.asm
+++ b/battle/effects/curse.asm
@@ -1,4 +1,4 @@
-BattleCommand54: ; 37588
+BattleCommand_Curse: ; 37588
; curse
ld de, BattleMonType1
@@ -26,13 +26,13 @@ BattleCommand54: ; 37588
; Attack
ld a, [bc]
- cp 13 ; max
+ cp MAX_STAT_LEVEL
jr c, .raise
; Defense
inc bc
ld a, [bc]
- cp 13 ; max
+ cp MAX_STAT_LEVEL
jr nc, .cantraise
.raise
@@ -40,19 +40,19 @@ BattleCommand54: ; 37588
; Raise Attack and Defense, and lower Speed.
ld a, $1
- ld [wc689], a
+ ld [wKickCounter], a
call AnimateCurrentMove
- ld a, $2
- call Function36532
+ ld a, SPEED
+ call LowerStat
call BattleCommand_SwitchTurn
- call BattleCommand8d
+ call BattleCommand_StatDownMessage
call ResetMiss
call BattleCommand_SwitchTurn
- call BattleCommand70
- call BattleCommand8c
+ call BattleCommand_AttackUp
+ call BattleCommand_StatUpMessage
call ResetMiss
- call BattleCommand71
- jp BattleCommand8c
+ call BattleCommand_DefenseUp
+ jp BattleCommand_StatUpMessage
.ghost
@@ -74,7 +74,7 @@ BattleCommand54: ; 37588
call AnimateCurrentMove
ld hl, GetHalfMaxHP
call CallBattleCore
- ld hl, Function3cc3f
+ ld hl, SubtractHPFromUser
call CallBattleCore
call UpdateUserInParty
ld hl, PutACurseText
@@ -89,7 +89,7 @@ BattleCommand54: ; 37588
; Can't raise either stat.
- ld b, $8 ; ABILITY
+ ld b, ABILITY + 1
call GetStatName
call AnimateFailedMove
ld hl, WontRiseAnymoreText
diff --git a/battle/effects/endure.asm b/battle/effects/endure.asm
index 026fde417..ed4329ff5 100644
--- a/battle/effects/endure.asm
+++ b/battle/effects/endure.asm
@@ -1,4 +1,4 @@
-BattleCommand5a: ; 3766f
+BattleCommand_Endure: ; 3766f
; endure
; Endure shares code with Protect. See protect.asm.
diff --git a/battle/effects/foresight.asm b/battle/effects/foresight.asm
index 775fbd78d..6f4f97cd2 100644
--- a/battle/effects/foresight.asm
+++ b/battle/effects/foresight.asm
@@ -1,4 +1,4 @@
-BattleCommand57: ; 376a0
+BattleCommand_Foresight: ; 376a0
; foresight
ld a, [AttackMissed]
@@ -19,5 +19,5 @@ BattleCommand57: ; 376a0
jp StdBattleTextBox
.failed
- jp Function37354
+ jp FailForesight
; 376c2
diff --git a/battle/effects/metronome.asm b/battle/effects/metronome.asm
index 6815377d0..ddc1bf62e 100644
--- a/battle/effects/metronome.asm
+++ b/battle/effects/metronome.asm
@@ -1,18 +1,18 @@
-BattleCommand34: ; 37418
+BattleCommand_Metronome: ; 37418
; metronome
- call Function372d8
- call Function34548
+ call ClearLastMove
+ call CheckUserIsCharging
jr nz, .asm_3742b
- ld a, [wc689]
+ ld a, [wKickCounter]
push af
- call BattleCommand0a
+ call BattleCommand_LowerSub
pop af
- ld [wc689], a
+ ld [wKickCounter], a
.asm_3742b
- call Function37e36
+ call LoadMoveAnim
.GetMove
call BattleRandom
diff --git a/battle/effects/mirror_move.asm b/battle/effects/mirror_move.asm
index 32a1998bb..c4f208d77 100644
--- a/battle/effects/mirror_move.asm
+++ b/battle/effects/mirror_move.asm
@@ -1,7 +1,7 @@
-BattleCommand1b: ; 373c9
+BattleCommand_MirrorMove: ; 373c9
; mirrormove
- call Function372d8
+ call ClearLastMove
ld a, BATTLE_VARS_MOVE
call GetBattleVarAddr
@@ -37,16 +37,16 @@ BattleCommand1b: ; 373c9
call GetMoveData
call GetMoveName
call CopyName1
- call Function34548
+ call CheckUserIsCharging
jr nz, .done
- ld a, [wc689]
+ ld a, [wKickCounter]
push af
- call BattleCommand0a
+ call BattleCommand_LowerSub
pop af
- ld [wc689], a
+ ld [wKickCounter], a
.done
- call BattleCommandaa
+ call BattleCommand_MoveDelay
jp ResetTurn
; 37418
diff --git a/battle/effects/nightmare.asm b/battle/effects/nightmare.asm
index da39affc1..788e3de41 100644
--- a/battle/effects/nightmare.asm
+++ b/battle/effects/nightmare.asm
@@ -1,4 +1,4 @@
-BattleCommand52: ; 37536
+BattleCommand_Nightmare: ; 37536
; nightmare
; Can't hit an absent opponent.
diff --git a/battle/effects/perish_song.asm b/battle/effects/perish_song.asm
index 95391f3bd..ac491ef6b 100644
--- a/battle/effects/perish_song.asm
+++ b/battle/effects/perish_song.asm
@@ -1,4 +1,4 @@
-BattleCommand58: ; 376c2
+BattleCommand_PerishSong: ; 376c2
; perishsong
diff --git a/battle/effects/present.asm b/battle/effects/present.asm
new file mode 100755
index 000000000..a1594e379
--- /dev/null
+++ b/battle/effects/present.asm
@@ -0,0 +1,93 @@
+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
+
+ ld a, [wTypeMatchup]
+ and a
+ jp z, AnimateFailedMove
+ ld a, [AttackMissed]
+ and a
+ jp nz, AnimateFailedMove
+
+ push bc
+ call BattleRandom
+ ld b, a
+ ld hl, .PresentPower
+ ld c, 0
+.next
+ ld a, [hli]
+ cp $ff
+ jr z, .heal_effect ; 378a4 $11
+ cp b
+ jr nc, .got_power ; 378a7 $4
+ inc c
+ inc hl
+ jr .next ; 378ab $f4
+
+.got_power
+ ld a, c
+ ld [wPresentPower], a
+ call AnimateCurrentMoveEitherSide
+ ld d, [hl]
+ pop bc
+ ret
+
+.heal_effect
+ pop bc
+ ld a, $3
+ ld [wPresentPower], a
+ call AnimateCurrentMove
+ call BattleCommand_SwitchTurn
+ ld hl, AICheckPlayerMaxHP
+ ld a, [hBattleTurn]
+ and a
+ jr z, .got_hp_fn_pointer ; 378c9 $3
+ ld hl, AICheckEnemyMaxHP
+.got_hp_fn_pointer
+ ld a, BANK(AICheckPlayerMaxHP)
+ rst FarCall
+ jr c, .already_fully_healed ; 378d1 $20
+
+ ld hl, GetQuarterMaxHP
+ call CallBattleCore
+ call BattleCommand_SwitchTurn
+ ld hl, RestoreHP
+ call CallBattleCore
+ call BattleCommand_SwitchTurn
+ ld hl, RegainedHealthText
+ call StdBattleTextBox
+ call BattleCommand_SwitchTurn
+ call UpdateOpponentInParty
+ jr .do_animation ; 378f1 $11
+
+.already_fully_healed
+ call BattleCommand_SwitchTurn
+ call _CheckBattleScene
+ jr nc, .do_animation ; 378f9 $9
+ call AnimateFailedMove
+ ld hl, RefusedGiftText
+ call StdBattleTextBox
+.do_animation
+ jp EndMoveEffect
+
+.PresentPower
+ db 40 percent, 40
+ db 70 percent + 1, 80
+ db 80 percent, 120
+ db $ff
+; 3790e
diff --git a/battle/effects/protect.asm b/battle/effects/protect.asm
index eaf011ffe..568ac00f8 100644
--- a/battle/effects/protect.asm
+++ b/battle/effects/protect.asm
@@ -1,4 +1,4 @@
-BattleCommand55: ; 37618
+BattleCommand_Protect: ; 37618
; protect
call ProtectChance
ret c
@@ -23,7 +23,7 @@ ProtectChance: ; 3762c
ld de, EnemyProtectCount
.asm_37637
- call Function36abf
+ call CheckOpponentWentFirst
jr nz, .failed
; Can't have a substitute.
diff --git a/battle/effects/rollout.asm b/battle/effects/rollout.asm
index 3826734b4..fe4c9189b 100644
--- a/battle/effects/rollout.asm
+++ b/battle/effects/rollout.asm
@@ -1,7 +1,7 @@
MAX_ROLLOUT_COUNT EQU 5
-BattleCommand5b: ; 37718
+BattleCommand_CheckCurl: ; 37718
; checkcurl
ld de, PlayerRolloutCount
@@ -25,7 +25,7 @@ BattleCommand5b: ; 37718
; 37734
-BattleCommand5c: ; 37734
+BattleCommand_RolloutPower: ; 37734
; rolloutpower
ld a, BATTLE_VARS_STATUS
diff --git a/battle/effects/sandstorm.asm b/battle/effects/sandstorm.asm
index a33db7f8c..27b8e8e2c 100644
--- a/battle/effects/sandstorm.asm
+++ b/battle/effects/sandstorm.asm
@@ -1,4 +1,4 @@
-BattleCommand59: ; 376f8
+BattleCommand_StartSandstorm: ; 376f8
; startsandstorm
ld a, [Weather]
diff --git a/battle/effects/spikes.asm b/battle/effects/spikes.asm
index 68894b1c1..3d15e4cfd 100644
--- a/battle/effects/spikes.asm
+++ b/battle/effects/spikes.asm
@@ -1,4 +1,4 @@
-BattleCommand56: ; 37683
+BattleCommand_Spikes: ; 37683
; spikes
ld hl, EnemyScreens
@@ -23,5 +23,5 @@ BattleCommand56: ; 37683
jp StdBattleTextBox
.failed
- jp Function37354
+ jp FailSpikes
; 376a0
diff --git a/battle/effects/thief.asm b/battle/effects/thief.asm
index 730fcd66c..f344edef9 100644
--- a/battle/effects/thief.asm
+++ b/battle/effects/thief.asm
@@ -1,4 +1,4 @@
-BattleCommand50: ; 37492
+BattleCommand_Thief: ; 37492
; thief
ld a, [hBattleTurn]
diff --git a/battle/hidden_power.asm b/battle/hidden_power.asm
index 7eb720401..68b0e80f8 100644
--- a/battle/hidden_power.asm
+++ b/battle/hidden_power.asm
@@ -106,7 +106,7 @@ endr
; based on the new type, but keep base power.
ld a, d
push af
- callba BattleCommand06 ; damagestats
+ callba BattleCommand_DamageStats ; damagestats
pop af
ld d, a
ret
diff --git a/battle/misc.asm b/battle/misc.asm
index 6d38b8e2f..d47573df9 100644
--- a/battle/misc.asm
+++ b/battle/misc.asm
@@ -1,50 +1,50 @@
-Functionfbd54: ; fbd54
+_DisappearUser: ; fbd54
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld [hBGMapMode], a
+ ld a, [hBattleTurn]
and a
- jr z, .asm_fbd61
- call Functionfbd96
- jr .asm_fbd64
-.asm_fbd61
- call Functionfbd9d
-.asm_fbd64
+ jr z, .player
+ call GetEnemyFrontpicCoords
+ jr .okay
+.player
+ call GetPlayerBackpicCoords
+.okay
call ClearBox
- jr Functionfbd91
+ jr FinishAppearDisappearUser
-Functionfbd69: ; fbd69 (3e:7d69)
- callba BattleCommanda6
- jr Functionfbd77
+_AppearUserRaiseSub: ; fbd69 (3e:7d69)
+ callba BattleCommand_RaiseSubNoAnim
+ jr AppearUser
-Functionfbd71: ; fbd71 (3e:7d71)
- callba BattleCommanda7
+_AppearUserLowerSub: ; fbd71 (3e:7d71)
+ callba BattleCommand_LowerSubNoAnim
-Functionfbd77: ; fbd77 (3e:7d77)
+AppearUser: ; fbd77 (3e:7d77)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, [hBattleTurn] ; $ff00+$e4
+ ld [hBGMapMode], a
+ ld a, [hBattleTurn]
and a
- jr z, .asm_fbd85
- call Functionfbd96
+ jr z, .player
+ call GetEnemyFrontpicCoords
xor a
- jr .asm_fbd8a
-.asm_fbd85
- call Functionfbd9d
+ jr .okay
+.player
+ call GetPlayerBackpicCoords
ld a, $31
-.asm_fbd8a
- ld [$ffad], a
+.okay
+ ld [hFillBox], a
predef FillBox
-Functionfbd91: ; fbd91 (3e:7d91)
+FinishAppearDisappearUser: ; fbd91 (3e:7d91)
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
-Functionfbd96: ; fbd96 (3e:7d96)
+GetEnemyFrontpicCoords: ; fbd96 (3e:7d96)
hlcoord 12, 0
lb bc, 7, 7
ret
-Functionfbd9d: ; fbd9d (3e:7d9d)
+GetPlayerBackpicCoords: ; fbd9d (3e:7d9d)
hlcoord 2, 6
lb bc, 6, 6
ret
@@ -62,7 +62,7 @@ DoWeatherModifiers: ; fbda4
ld a, [de]
inc de
cp $ff
- jr z, .asm_fbdc0
+ jr z, .done_weather_types
cp b
jr nz, .NextWeatherType
@@ -78,7 +78,7 @@ endr
jr .CheckWeatherType
-.asm_fbdc0
+.done_weather_types
ld de, .WeatherMoveModifiers
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -217,10 +217,10 @@ DoBadgeTypeBoosts: ; fbe24
ld a, e
or d
- jr nz, .asm_fbe6f
+ jr nz, .done_min
ld e, 1
-.asm_fbe6f
+.done_min
add hl, de
jr nc, .Update
diff --git a/battle/moves/move_effects.asm b/battle/moves/move_effects.asm
index 29fd27983..454a1ac9b 100644
--- a/battle/moves/move_effects.asm
+++ b/battle/moves/move_effects.asm
@@ -44,7 +44,7 @@ NormalHit:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -83,7 +83,7 @@ PoisonHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -107,7 +107,7 @@ LeechHit:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -133,7 +133,7 @@ BurnHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -158,7 +158,7 @@ FreezeHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -187,7 +187,7 @@ ParalyzeHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -208,8 +208,8 @@ Explosion:
damagevariation
checkhit
selfdestruct
- effect0x0b
- resulttext
+ hittargetnosub
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -229,7 +229,7 @@ DreamEater:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -252,10 +252,10 @@ AttackUp:
usedmovetext
doturn
attackup
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -266,10 +266,10 @@ DefenseUp:
usedmovetext
doturn
defenseup
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -278,10 +278,10 @@ SpeedUp:
usedmovetext
doturn
speedup
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -291,10 +291,10 @@ SpecialAttackUp:
usedmovetext
doturn
specialattackup
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -303,10 +303,10 @@ SpecialDefenseUp:
usedmovetext
doturn
specialdefenseup
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -315,10 +315,10 @@ AccuracyUp:
usedmovetext
doturn
accuracyup
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -328,12 +328,12 @@ EvasionUp:
checkobedience
usedmovetext
doturn
- effect0x0a
+ lowersub
evasionup
- effect0x92
- effect0xa7
- effect0x0c
- statmessageuser
+ statupanim
+ lowersubnoanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -343,10 +343,10 @@ AttackUp2:
usedmovetext
doturn
attackup2
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -357,10 +357,10 @@ DefenseUp2:
usedmovetext
doturn
defenseup2
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -370,10 +370,10 @@ SpeedUp2:
usedmovetext
doturn
speedup2
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -382,10 +382,10 @@ SpecialAttackUp2:
usedmovetext
doturn
specialattackup2
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -395,10 +395,10 @@ SpecialDefenseUp2:
usedmovetext
doturn
specialdefenseup2
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -407,10 +407,10 @@ AccuracyUp2:
usedmovetext
doturn
accuracyup2
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -419,10 +419,10 @@ EvasionUp2:
usedmovetext
doturn
evasionup2
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
@@ -433,10 +433,10 @@ AttackDown:
doturn
checkhit
attackdown
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -448,10 +448,10 @@ DefenseDown:
doturn
checkhit
defensedown
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -462,10 +462,10 @@ SpeedDown:
doturn
checkhit
speeddown
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -475,10 +475,10 @@ SpecialAttackDown:
doturn
checkhit
specialattackdown
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -488,10 +488,10 @@ SpecialDefenseDown:
doturn
checkhit
specialdefensedown
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -505,10 +505,10 @@ AccuracyDown:
doturn
checkhit
accuracydown
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -519,10 +519,10 @@ EvasionDown:
doturn
checkhit
evasiondown
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -533,10 +533,10 @@ AttackDown2:
doturn
checkhit
attackdown2
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -547,10 +547,10 @@ DefenseDown2:
doturn
checkhit
defensedown2
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -562,10 +562,10 @@ SpeedDown2:
doturn
checkhit
speeddown2
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -575,10 +575,10 @@ SpecialAttackDown2:
doturn
checkhit
specialattackdown2
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -588,10 +588,10 @@ SpecialDefenseDown2:
doturn
checkhit
specialdefensedown2
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -601,10 +601,10 @@ AccuracyDown2:
doturn
checkhit
accuracydown2
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -614,10 +614,10 @@ EvasionDown2:
doturn
checkhit
evasiondown2
- effect0x0a
- effect0x91
- effect0x0c
- statmessagetarget
+ lowersub
+ statdownanim
+ raisesub
+ statdownmessage
statdownfailtext
endmove
@@ -634,14 +634,14 @@ AttackDownHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
attackdown
- statmessagetarget
+ statdownmessage
endmove
Acid:
@@ -659,7 +659,7 @@ DefenseDownHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -667,7 +667,7 @@ DefenseDownHit:
buildopponentrage
effectchance
defensedown
- statmessagetarget
+ statdownmessage
endmove
Bubblebeam:
@@ -686,14 +686,14 @@ SpeedDownHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
speeddown
- statmessagetarget
+ statdownmessage
endmove
SpecialAttackDownHit:
@@ -708,14 +708,14 @@ SpecialAttackDownHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
specialattackdown
- statmessagetarget
+ statdownmessage
endmove
PsychicM:
@@ -733,14 +733,14 @@ SpecialDefenseDownHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
specialdefensedown
- statmessagetarget
+ statdownmessage
endmove
MudSlap:
@@ -757,14 +757,14 @@ AccuracyDownHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
accuracydown
- statmessagetarget
+ statdownmessage
endmove
EvasionDownHit:
@@ -779,14 +779,14 @@ EvasionDownHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
evasiondown
- statmessagetarget
+ statdownmessage
endmove
SteelWing:
@@ -802,14 +802,14 @@ DefenseUpHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
defenseup
- statmessageuser
+ statupmessage
endmove
MetalClaw:
@@ -825,14 +825,14 @@ AttackUpHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
checkdestinybond
buildopponentrage
attackup
- statmessageuser
+ statupmessage
endmove
Ancientpower:
@@ -848,7 +848,7 @@ AllUpHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -868,7 +868,7 @@ PayDay:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -898,7 +898,7 @@ Bide:
doturn
usedmovetext
unleashenergy
- effect0xa3
+ resettypematchup
checkhit
hittarget
effect0xa5
@@ -925,7 +925,7 @@ Rampage:
damagevariation
clearmissdamage
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -958,7 +958,7 @@ MultiHit:
usedmovetext
doturn
startloop
- effect0x0a
+ lowersub
checkhit
critical
damagestats
@@ -966,8 +966,8 @@ MultiHit:
stab
damagevariation
clearmissdamage
- effect0x0b
- resulttext
+ hittargetnosub
+ failuretext
checkfaint
criticaltext
cleartext
@@ -975,7 +975,7 @@ MultiHit:
checkdestinybond
buildopponentrage
endloop
- effect0x0c
+ raisesub
kingsrock
endmove
@@ -985,7 +985,7 @@ PoisonMultiHit:
usedmovetext
doturn
startloop
- effect0x0a
+ lowersub
checkhit
effectchance
critical
@@ -994,8 +994,8 @@ PoisonMultiHit:
stab
damagevariation
clearmissdamage
- effect0x0b
- resulttext
+ hittargetnosub
+ failuretext
checkfaint
criticaltext
cleartext
@@ -1003,7 +1003,7 @@ PoisonMultiHit:
checkdestinybond
buildopponentrage
endloop
- effect0x0c
+ raisesub
kingsrock
poisontarget
endmove
@@ -1027,7 +1027,7 @@ FlinchHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1046,7 +1046,7 @@ OHKOHit:
stab
ohko
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1069,7 +1069,7 @@ RecoilHit:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1122,7 +1122,7 @@ ConfuseHit:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1169,7 +1169,7 @@ TriAttack:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1218,7 +1218,7 @@ SkyAttack:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1246,7 +1246,7 @@ HyperBeam:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1267,7 +1267,7 @@ Rage:
ragedamage
damagevariation
hittarget
- resulttext
+ failuretext
rage
checkfaint
criticaltext
@@ -1328,7 +1328,7 @@ RazorWind:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1350,9 +1350,9 @@ Dig:
stab
damagevariation
checkhit
- effect0x0b
- effect0x0c
- resulttext
+ hittargetnosub
+ raisesub
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1377,7 +1377,7 @@ Whirlpool:
damagevariation
clearmissdamage
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1398,9 +1398,9 @@ StaticDamage:
doturn
constantdamage
checkhit
- effect0xa3
+ resettypematchup
hittarget
- resulttext
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -1416,7 +1416,7 @@ Reversal:
stab
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
supereffectivetext
checkdestinybond
@@ -1430,7 +1430,7 @@ Counter:
doturn
counter
hittarget
- resulttext
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -1466,7 +1466,7 @@ Snore:
effectchance
snore
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1541,7 +1541,7 @@ FalseSwipe:
falseswipe
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1562,7 +1562,7 @@ TripleKick:
usedmovetext
doturn
startloop
- effect0x0a
+ lowersub
checkhit
critical
damagestats
@@ -1571,8 +1571,8 @@ TripleKick:
stab
damagevariation
clearmissdamage
- effect0x0b
- resulttext
+ hittargetnosub
+ failuretext
checkfaint
criticaltext
cleartext
@@ -1581,7 +1581,7 @@ TripleKick:
buildopponentrage
kickcounter
endloop
- effect0x0c
+ raisesub
kingsrock
endmove
@@ -1597,7 +1597,7 @@ Thief:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1634,7 +1634,7 @@ FlameWheel:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1708,7 +1708,7 @@ Rollout:
rolloutpower
damagevariation
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1725,12 +1725,12 @@ Swagger:
switchturn
attackup2
switchturn
- effect0x0a
- effect0x92
- effect0x0c
- resulttext
+ lowersub
+ statupanim
+ raisesub
+ failuretext
switchturn
- statmessageuser
+ statupmessage
switchturn
confusetarget
endmove
@@ -1747,7 +1747,7 @@ FuryCutter:
furycutter
damagevariation
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1776,7 +1776,7 @@ Return:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1797,7 +1797,7 @@ Present:
stab
damagevariation
clearmissdamage
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1818,7 +1818,7 @@ Frustration:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1846,7 +1846,7 @@ SacredFire:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1869,7 +1869,7 @@ Magnitude:
checkhit
doubleundergrounddamage
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1897,7 +1897,7 @@ Pursuit:
pursuit
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1917,7 +1917,7 @@ RapidSpin:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1959,7 +1959,7 @@ HiddenPower:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -1989,7 +1989,7 @@ FakeOut:
checkhit
fakeout
hittarget
- resulttext
+ failuretext
endmove
BellyDrum:
@@ -2012,7 +2012,7 @@ MirrorCoat:
doturn
mirrorcoat
hittarget
- resulttext
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -2032,7 +2032,7 @@ SkullBash:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2041,7 +2041,7 @@ SkullBash:
kingsrock
endturn
defenseup
- statmessageuser
+ statupmessage
endmove
Twister:
@@ -2057,7 +2057,7 @@ Twister:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2079,7 +2079,7 @@ Earthquake:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2097,8 +2097,8 @@ FutureSight:
futuresight
damagevariation
checkhit
- effect0x0b
- resulttext
+ hittargetnosub
+ failuretext
checkfaint
checkdestinybond
buildopponentrage
@@ -2116,7 +2116,7 @@ Gust:
doubleflyingdamage
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2137,7 +2137,7 @@ Stomp:
checkhit
effectchance
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2160,7 +2160,7 @@ Solarbeam:
damagevariation
checkhit
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2182,7 +2182,7 @@ Thunder:
stab
damagevariation
hittarget
- resulttext
+ failuretext
checkfaint
criticaltext
supereffectivetext
@@ -2204,15 +2204,15 @@ BeatUp:
movedelay
doturn
startloop
- effect0x0a
+ lowersub
checkhit
critical
beatup
damagecalc
damagevariation
clearmissdamage
- effect0x0b
- resulttext
+ hittargetnosub
+ failuretext
checkfaint
criticaltext
cleartext
@@ -2221,7 +2221,7 @@ BeatUp:
buildopponentrage
endloop
effect0xa8
- effect0x0c
+ raisesub
kingsrock
endmove
@@ -2231,9 +2231,9 @@ DefenseCurl:
doturn
defenseup
curl
- effect0x0a
- effect0x92
- effect0x0c
- statmessageuser
+ lowersub
+ statupanim
+ raisesub
+ statupmessage
statupfailtext
endmove
diff --git a/battle/sliding_intro.asm b/battle/sliding_intro.asm
new file mode 100755
index 000000000..e13e8bd05
--- /dev/null
+++ b/battle/sliding_intro.asm
@@ -0,0 +1,107 @@
+SlideBattlePics: ; 4e980
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call .subfunction1
+ ld a, rSCX - $ff00
+ ld [hLCDStatCustom], a
+ call .subfunction2
+ xor a
+ ld [hLCDStatCustom], a
+ pop af
+ ld [rSVBK], a
+ ret
+; 4e998
+
+.subfunction1: ; 4e998
+ call .subfunction4
+ ld a, $90
+ ld [hSCX], a
+ ld a, %11100100
+ call DmgToCgbBGPals
+ lb de, %11100100, %11100100
+ call DmgToCgbObjPals
+ ret
+; 4e9ab
+
+.subfunction2: ; 4e9ab
+ ld d, $90
+ ld e, $72
+ ld a, $48
+ inc a
+.loop1
+ push af
+.loop2
+ ld a, [rLY]
+ cp $60
+ jr c, .loop2
+ ld a, d
+ ld [hSCX], a
+ call .subfunction5
+rept 2
+ inc e
+endr
+rept 2
+ dec d
+endr
+ pop af
+ push af
+ cp $1
+ jr z, .skip1
+ push de
+ call .subfunction3
+ pop de
+
+.skip1
+ call DelayFrame
+ pop af
+ dec a
+ jr nz, .loop1
+ ret
+; 4e9d6
+
+.subfunction3: ; 4e9d6
+ ld hl, Sprites + 1
+ ld c, $12 ; 18
+ ld de, $4
+.loop3
+rept 2
+ dec [hl]
+endr
+ add hl, de
+ dec c
+ jr nz, .loop3
+ ret
+; 4e9e5
+
+.subfunction4: ; 4e9e5
+ ld hl, LYOverrides
+ ld a, $90
+ ld bc, SCREEN_HEIGHT_PX
+ call ByteFill
+ ret
+; 4e9f1
+
+.subfunction5: ; 4e9f1
+ ld hl, LYOverrides
+ ld a, d
+ ld c, $3e ; 62
+.loop4
+ ld [hli], a
+ dec c
+ jr nz, .loop4
+ ld a, e
+ ld c, $22 ; 34
+.loop5
+ ld [hli], a
+ dec c
+ jr nz, .loop5
+ xor a
+ ld c, $30 ; 48
+.loop6
+ ld [hli], a
+ dec c
+ jr nz, .loop6
+ ret
+; 4ea0a
diff --git a/compare.sh b/compare.sh
index 142de2079..d013a88ab 100755
--- a/compare.sh
+++ b/compare.sh
@@ -3,7 +3,7 @@
# create baserom.txt if necessary
if [ ! -f baserom.txt ]; then
- hexdump -C baserom.gbc > baserom.txt
+ hexdump -C baserom.gbc > baserom.txt
fi
hexdump -C pokecrystal.gbc > pokecrystal.txt
diff --git a/compare2.sh b/compare2.sh
new file mode 100755
index 000000000..64695229e
--- /dev/null
+++ b/compare2.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Compares baserom.gbc and pokecrystal.gbc
+
+# create baserom.txt if necessary
+crystal_md5=9f2922b235a5eeb78d65594e82ef5dde
+if [ ! -f baserom.gbc ]; then
+ echo "FATAL: Baserom not found"
+ exit 1
+fi
+
+if [ $1 ]; then
+ if [ $1 == "-v" ]; then
+ verbose=1
+ else
+ verbose = 0
+ fi
+else
+ verbose=0
+fi
+
+base_md5=`md5sum baserom.gbc | cut -d' ' -f1`
+if [ $verbose == 1 ]; then
+ echo "baserom.gbc: $base_md5"
+fi
+if [ $base_md5 != $crystal_md5 ]; then
+ echo "FATAL: Baserom is incorrect"
+ exit 1
+fi
+
+built_md5=`md5sum pokecrystal.gbc | cut -d' ' -f1`
+if [ $verbose == 1 ]; then
+ echo "pokecrystal.gbc: $built_md5"
+fi
+if [ $built_md5 != $crystal_md5 ]
+then
+ if [ $verbose == 1 ]; then
+ echo "Checksums do not match, here's where the ROMs differ..."
+ fi
+ if [ ! -f baserom.txt ]; then
+ hexdump -C baserom.gbc > baserom.txt
+ fi
+
+ hexdump -C pokecrystal.gbc > pokecrystal.txt
+
+ diff -u baserom.txt pokecrystal.txt | less
+else
+ if [ $verbose == 1 ]; then
+ echo "Checksums match! :D"
+ fi
+fi
+
diff --git a/constants.asm b/constants.asm
index e0a2961d4..1d8f7d9b2 100644
--- a/constants.asm
+++ b/constants.asm
@@ -28,3 +28,4 @@ INCLUDE "constants/deco_constants.asm"
INCLUDE "constants/radio_constants.asm"
INCLUDE "constants/sprite_constants.asm"
INCLUDE "constants/tilemap_constants.asm"
+INCLUDE "constants/battle_tower_constants.asm"
diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm
index ea57f7230..27cb1f319 100644
--- a/constants/animation_constants.asm
+++ b/constants/animation_constants.asm
@@ -1,26 +1,3 @@
-ANIM_SWEET_SCENT_2 EQU 255 ; unused?
-ANIM_THROW_POKE_BALL EQU 256
-ANIM_SEND_OUT_MON EQU 257 ; seems to also cover shiny
-ANIM_RETURN_MON EQU 258
-ANIM_CONFUSED EQU 259
-ANIM_SLP EQU 260
-ANIM_BRN EQU 261
-ANIM_PSN EQU 262
-ANIM_SAP EQU 263
-ANIM_FRZ EQU 264
-ANIM_PAR EQU 265
-ANIM_IN_LOVE EQU 266
-ANIM_IN_SANDSTORM EQU 267
-ANIM_IN_NIGHTMARE EQU 268
-ANIM_IN_WHIRLPOOL EQU 269
-ANIM_MISS EQU 270
-ANIM_ENEMY_DAMAGE EQU 271
-ANIM_ENEMY_STAT_DOWN EQU 272 ; vibrate horizontally
-ANIM_PLAYER_STAT_DOWN EQU 273 ; wobble horizontally
-ANIM_PLAYER_DAMAGE EQU 274
-ANIM_WOBBLE EQU 275
-ANIM_SHAKE EQU 276
-ANIM_HIT_CONFUSION EQU 277
ANIM_OBJ_BURNED EQU $10
ANIM_OBJ_FROZEN EQU $2a
@@ -60,3 +37,14 @@ ANIM_BG_PSYCHIC EQU $29
ANIM_BG_VIBRATE_MON EQU $33
ANIM_BG_WOBBLE_MON EQU $34
+
+ const_def
+ const ANIM_MON_SLOW ; 0
+ const ANIM_MON_NORMAL ; 1
+ const ANIM_MON_MENU ; 2
+ const ANIM_MON_TRADE ; 3
+ const ANIM_MON_EVOLVE ; 4
+ const ANIM_MON_HATCH ; 5
+ const ANIM_MON_UNUSED ; 6
+ const ANIM_MON_EGG1 ; 7
+ const ANIM_MON_EGG2 ; 8
diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm
index 6ee0995cd..804f223cb 100644
--- a/constants/battle_constants.asm
+++ b/constants/battle_constants.asm
@@ -4,6 +4,8 @@ EGG_LEVEL EQU 5
NUM_MOVES EQU 4
REST_TURNS EQU 2
+MAX_STAT_LEVEL EQU 13
+BASE_STAT_LEVEL EQU 7
const_def
const ATTACK
@@ -13,6 +15,8 @@ REST_TURNS EQU 2
const SP_DEFENSE
const ACCURACY
const EVASION
+ const ABILITY
+NUM_LEVEL_STATS EQU const_value
; move struct
const_def
@@ -94,6 +98,8 @@ const_value SET 3
const PAR
const SLP ; 7 turns
+ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP
+
; substatus
enum_start 7, -1
enum SUBSTATUS_IN_LOVE
@@ -344,3 +350,27 @@ SUBSTATUS_CURLED EQU 0
const ENEMY_COUNTER_MOVE
const PLAYER_LAST_MOVE
const ENEMY_LAST_MOVE
+
+; wBattleAction
+ const_def
+ const BATTLEACTION_MOVE1
+ const BATTLEACTION_MOVE2
+ const BATTLEACTION_MOVE3
+ const BATTLEACTION_MOVE4
+ const BATTLEACTION_SWITCH1
+ const BATTLEACTION_SWITCH2
+ const BATTLEACTION_SWITCH3
+ const BATTLEACTION_SWITCH4
+ const BATTLEACTION_SWITCH5
+ const BATTLEACTION_SWITCH6
+ const BATTLEACTION_A
+ const BATTLEACTION_B
+ const BATTLEACTION_C
+ const BATTLEACTION_D
+ const BATTLEACTION_E
+ const BATTLEACTION_FORFEIT
+
+ const_def
+ const WIN
+ const LOSE
+ const DRAW
diff --git a/constants/battle_tower_constants.asm b/constants/battle_tower_constants.asm
new file mode 100755
index 000000000..49311f35d
--- /dev/null
+++ b/constants/battle_tower_constants.asm
@@ -0,0 +1,33 @@
+ const_def
+ const BATTLE_TOWER_ACTION_00
+ const BATTLE_TOWER_ACTION_01
+ const BATTLE_TOWER_ACTION_02
+ const BATTLE_TOWER_ACTION_03
+ const BATTLE_TOWER_ACTION_04
+ const BATTLE_TOWER_ACTION_05
+ const BATTLE_TOWER_ACTION_06
+ const BATTLE_TOWER_ACTION_07
+ const BATTLE_TOWER_ACTION_08
+ const BATTLE_TOWER_ACTION_09
+ const BATTLE_TOWER_ACTION_0A
+ const BATTLE_TOWER_ACTION_0B
+ const BATTLE_TOWER_ACTION_0C
+ const BATTLE_TOWER_ACTION_0D
+ const BATTLE_TOWER_ACTION_0E
+ const BATTLE_TOWER_ACTION_0F
+ const BATTLE_TOWER_ACTION_10
+ const BATTLE_TOWER_ACTION_11
+ const BATTLE_TOWER_ACTION_12
+ const BATTLE_TOWER_ACTION_13
+ const BATTLE_TOWER_ACTION_14
+ const BATTLE_TOWER_ACTION_15
+ const BATTLE_TOWER_ACTION_16
+ const BATTLE_TOWER_ACTION_17
+ const BATTLE_TOWER_ACTION_18
+ const BATTLE_TOWER_ACTION_19
+ const BATTLE_TOWER_ACTION_1A
+ const BATTLE_TOWER_ACTION_1B
+ const BATTLE_TOWER_ACTION_1C
+ const BATTLE_TOWER_ACTION_1D
+ const BATTLE_TOWER_ACTION_1E
+ const BATTLE_TOWER_ACTION_1F
diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm
index 5e7583f8e..c774faa95 100644
--- a/constants/gfx_constants.asm
+++ b/constants/gfx_constants.asm
@@ -39,4 +39,8 @@ const_value SET 1
const ANIM_GFX_WAVE
const ANIM_GFX_AEROBLAST
+
+LEN_2BPP_TILE EQU 16
+LEN_1BPP_TILE EQU 8
+TILES_PER_FRAME EQU 6
TILESIZE EQU $10
diff --git a/constants/item_constants.asm b/constants/item_constants.asm
index 4a144515f..71cc2ba60 100644
--- a/constants/item_constants.asm
+++ b/constants/item_constants.asm
@@ -191,81 +191,81 @@
const MIRAGE_MAIL ; $BD
const ITEM_BE ; $BE
- add_tm DYNAMICPUNCH
- add_tm HEADBUTT
- add_tm CURSE
- add_tm ROLLOUT
- const ITEM_C3
- add_tm ROAR
- add_tm TOXIC
- add_tm ZAP_CANNON
- add_tm ROCK_SMASH
- add_tm PSYCH_UP
- add_tm HIDDEN_POWER
- add_tm SUNNY_DAY
- add_tm SWEET_SCENT
- add_tm SNORE
- add_tm BLIZZARD
- add_tm HYPER_BEAM
- add_tm ICY_WIND
- add_tm PROTECT
- add_tm RAIN_DANCE
- add_tm GIGA_DRAIN
- add_tm ENDURE
- add_tm FRUSTRATION
- add_tm SOLARBEAM
- add_tm IRON_TAIL
- add_tm DRAGONBREATH
- add_tm THUNDER
- add_tm EARTHQUAKE
- add_tm RETURN
- add_tm DIG
- const ITEM_DC
- add_tm PSYCHIC
- add_tm SHADOW_BALL
- add_tm MUD_SLAP
- add_tm DOUBLE_TEAM
- add_tm ICE_PUNCH
- add_tm SWAGGER
- add_tm SLEEP_TALK
- add_tm SLUDGE_BOMB
- add_tm SANDSTORM
- add_tm FIRE_BLAST
- add_tm SWIFT
- add_tm DEFENSE_CURL
- add_tm THUNDERPUNCH
- add_tm DREAM_EATER
- add_tm DETECT
- add_tm REST
- add_tm ATTRACT
- add_tm THIEF
- add_tm STEEL_WING
- add_tm FIRE_PUNCH
- add_tm FURY_CUTTER
- add_tm NIGHTMARE
+ add_tm DYNAMICPUNCH ; $BF
+ add_tm HEADBUTT ; $C0
+ add_tm CURSE ; $C1
+ add_tm ROLLOUT ; $C2
+ const ITEM_C3 ; $C3
+ add_tm ROAR ; $C4
+ add_tm TOXIC ; $C5
+ add_tm ZAP_CANNON ; $C6
+ add_tm ROCK_SMASH ; $C7
+ add_tm PSYCH_UP ; $C8
+ add_tm HIDDEN_POWER ; $C9
+ add_tm SUNNY_DAY ; $CA
+ add_tm SWEET_SCENT ; $CB
+ add_tm SNORE ; $CC
+ add_tm BLIZZARD ; $CD
+ add_tm HYPER_BEAM ; $CE
+ add_tm ICY_WIND ; $CF
+ add_tm PROTECT ; $D0
+ add_tm RAIN_DANCE ; $D1
+ add_tm GIGA_DRAIN ; $D2
+ add_tm ENDURE ; $D3
+ add_tm FRUSTRATION ; $D4
+ add_tm SOLARBEAM ; $D5
+ add_tm IRON_TAIL ; $D6
+ add_tm DRAGONBREATH ; $D7
+ add_tm THUNDER ; $D8
+ add_tm EARTHQUAKE ; $D9
+ add_tm RETURN ; $DA
+ add_tm DIG ; $DB
+ const ITEM_DC ; $DC
+ add_tm PSYCHIC ; $DD
+ add_tm SHADOW_BALL ; $DE
+ add_tm MUD_SLAP ; $DF
+ add_tm DOUBLE_TEAM ; $E0
+ add_tm ICE_PUNCH ; $E1
+ add_tm SWAGGER ; $E2
+ add_tm SLEEP_TALK ; $E3
+ add_tm SLUDGE_BOMB ; $E4
+ add_tm SANDSTORM ; $E5
+ add_tm FIRE_BLAST ; $E6
+ add_tm SWIFT ; $E7
+ add_tm DEFENSE_CURL ; $E8
+ add_tm THUNDERPUNCH ; $E9
+ add_tm DREAM_EATER ; $EA
+ add_tm DETECT ; $EB
+ add_tm REST ; $EC
+ add_tm ATTRACT ; $ED
+ add_tm THIEF ; $EE
+ add_tm STEEL_WING ; $EF
+ add_tm FIRE_PUNCH ; $F0
+ add_tm FURY_CUTTER ; $F1
+ add_tm NIGHTMARE ; $F2
NUM_TMS = const_value - TM01 - 2
- add_hm CUT
- add_hm FLY
- add_hm SURF
- add_hm STRENGTH
- add_hm FLASH
- add_hm WHIRLPOOL
- add_hm WATERFALL
+ add_hm CUT ; $F3
+ add_hm FLY ; $F4
+ add_hm SURF ; $F5
+ add_hm STRENGTH ; $F6
+ add_hm FLASH ; $F7
+ add_hm WHIRLPOOL ; $F8
+ add_hm WATERFALL ; $F9
NUM_HMS = const_value - HM01
- const HM_08
+ const HM_08 ; $FA
add_mt FLAMETHROWER
add_mt THUNDERBOLT
add_mt ICE_BEAM
+ITEM_FROM_MEM EQU $ff
; leftovers from red
SAFARI_BALL EQU 8 ; MOON_STONE
MOON_STONE_RED EQU 10 ; BURN_HEAL
FULL_HEAL_RED EQU 52 ; X_SPEED
-
MAIL_MAX_LENGTH EQU $20
; pockets
@@ -318,6 +318,7 @@ const_value SET 30
const HELD_SP_DEFENSE_UP
const HELD_ACCURACY_UP
const HELD_EVASION_UP
+ const HELD_38
const_value SET 40
const HELD_40
@@ -412,3 +413,28 @@ ITEMMENU_CLOSE EQU 6
const MART_MT_MOON
const MART_INDIGO_PLATEAU
const MART_UNDERGROUND
+
+; PartyMenuActionText
+ const_def
+ const PARTYMENUACTION_00
+ const PARTYMENUACTION_HEALING_ITEM
+ const PARTYMENUACTION_02
+ const PARTYMENUACTION_TEACH_TM
+ const PARTYMENUACTION_04
+ const PARTYMENUACTION_EVO_STONE
+ const PARTYMENUACTION_06
+ const PARTYMENUACTION_07
+ const PARTYMENUACTION_08
+ const PARTYMENUACTION_MOBILE
+
+const_value set $f0
+ const PARTYMENUTEXT_HEAL_PSN
+ const PARTYMENUTEXT_HEAL_BRN
+ const PARTYMENUTEXT_HEAL_FRZ
+ const PARTYMENUTEXT_HEAL_SLP
+ const PARTYMENUTEXT_HEAL_PAR
+ const PARTYMENUTEXT_HEAL_HP
+ const PARTYMENUTEXT_HEAL_ALL
+ const PARTYMENUTEXT_REVIVE
+ const PARTYMENUTEXT_LEVEL_UP
+ const PARTYMENUTEXT_HEAL_CONFUSION
diff --git a/constants/map_constants.asm b/constants/map_constants.asm
index 0880a4f1e..c98c64ff9 100644
--- a/constants/map_constants.asm
+++ b/constants/map_constants.asm
@@ -494,6 +494,11 @@ MAP_NONE EQU 0
const _ROOF
; connection directions
+ const_def
+ const EAST_F
+ const WEST_F
+ const SOUTH_F
+ const NORTH_F
const_def
shift_const EAST
@@ -540,7 +545,7 @@ const_value SET 1
const OBJECT_SPRITE_Y
const OBJECT_SPRITE_X_OFFSET
const OBJECT_SPRITE_Y_OFFSET
- const OBJECT_27
+ const OBJECT_MOVEMENT_BYTE_INDEX
const OBJECT_28
const OBJECT_29
const OBJECT_30
@@ -566,11 +571,10 @@ const_value SET 1
const MAPOBJECT_FLAG_HI ; d
const MAPOBJECT_E ; unused
const MAPOBJECT_F ; unused
+OBJECT_LENGTH EQU const_value
MAPOBJECT_SCREEN_HEIGHT EQU 11
MAPOBJECT_SCREEN_WIDTH EQU 12
-OBJECT_STRUCT_3_DATA_WIDTH EQU 6
-OBJECT_STRUCT_3_DATA_HEIGHT EQU 37
OW_DOWN EQU DOWN << 2
OW_UP EQU UP << 2
@@ -586,7 +590,10 @@ OW_RIGHT EQU RIGHT << 2
const EMOTE_BOLT ; 5
const EMOTE_SLEEP ; 6
const EMOTE_FISH ; 7
- const EMOTE_ROD ; 8 - add directional constant
+ const EMOTE_08 ; 8
+ const EMOTE_09 ; 9
+ const EMOTE_0A ; 10
+ const EMOTE_0B ; 11
EMOTE_MEM EQU -1
const_def
diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm
index e3088496f..194257996 100644
--- a/constants/map_setup_constants.asm
+++ b/constants/map_setup_constants.asm
@@ -1,16 +1,16 @@
-const_value SET $f0
- const MAPSETUP_00
+const_value SET $f1
const MAPSETUP_WARP
- const MAPSETUP_02
+ const MAPSETUP_CONTINUE
const MAPSETUP_RELOADMAP
- const MAPSETUP_04
- const MAPSETUP_05
- const MAPSETUP_06
- const MAPSETUP_07
- const MAPSETUP_08
- const MAPSETUP_09
- const MAPSETUP_10
+ const MAPSETUP_TELEPORT
+ const MAPSETUP_DOOR
+ const MAPSETUP_FALL
+ const MAPSETUP_CONNECTION
+ const MAPSETUP_LINKRETURN
+ const MAPSETUP_TRAIN
+ const MAPSETUP_SUBMENU
const MAPSETUP_BADWARP
+ const MAPSETUP_FLY
; Command descriptions from Condensation water's scripting compendium. const_def
const_def
diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm
index d8e5fc9e5..108eda873 100644
--- a/constants/misc_constants.asm
+++ b/constants/misc_constants.asm
@@ -7,6 +7,7 @@ MAX_PC_ITEMS EQU 50
; strings
PLAYER_NAME_LENGTH EQU 8
+BOX_NAME_LENGTH EQU 9
PKMN_NAME_LENGTH EQU 11
MOVE_NAME_LENGTH EQU 13
ITEM_NAME_LENGTH EQU 13
@@ -109,14 +110,19 @@ const_value = 1
const MOM_ITEM
const MOM_DOLL
-BATTLETOWER_PKMNSTRUCTLENGTH EQU $30
BATTLETOWER_NROFPKMNS EQU 3
BATTLETOWER_TRAINERDATALENGTH EQU $24
BATTLETOWER_NROFTRAINERS EQU 7
+BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS
+BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7
WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY)
+MOBILE_EVENT_OBJECT_GS_BALL EQU $b
+
+MALE EQU 0
+FEMALE EQU 1
PRINTNUM_MONEY_F EQU 5
PRINTNUM_RIGHTALIGN_F EQU 6
@@ -157,3 +163,64 @@ const_value = 1
HMENURETURN_SCRIPT EQU %10000000
HMENURETURN_ASM EQU %11111111
+
+NUM_MON_SUBMENU_ITEMS EQU 8
+
+ const_def
+ const ZEPHYRBADGE
+ const HIVEBADGE
+ const PLAINBADGE
+ const FOGBADGE
+ const MINERALBADGE
+ const STORMBADGE
+ const GLACIERBADGE
+ const RISINGBADGE
+NUM_JOHTO_BADGES EQU const_value
+ const_def
+ const BOULDERBADGE
+ const CASCADEBADGE
+ const THUNDERBADGE
+ const RAINBOWBADGE
+ const SOULBADGE
+ const MARSHBADGE
+ const VOLCANOBADGE
+ const EARTHBADGE
+NUM_KANTO_BADGES EQU const_value
+NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES
+
+ const_def
+ const JUMPTABLE_8D24B_FUNCTION_00
+ const JUMPTABLE_8D24B_FUNCTION_01
+ const JUMPTABLE_8D24B_FUNCTION_02
+ const JUMPTABLE_8D24B_FUNCTION_03
+ const JUMPTABLE_8D24B_FUNCTION_04
+ const JUMPTABLE_8D24B_FUNCTION_05
+ const JUMPTABLE_8D24B_FUNCTION_06
+ const JUMPTABLE_8D24B_FUNCTION_07
+ const JUMPTABLE_8D24B_FUNCTION_08
+ const JUMPTABLE_8D24B_FUNCTION_09
+ const JUMPTABLE_8D24B_FUNCTION_0A
+ const JUMPTABLE_8D24B_FUNCTION_0B
+ const JUMPTABLE_8D24B_FUNCTION_0C
+ const JUMPTABLE_8D24B_FUNCTION_0D
+ const JUMPTABLE_8D24B_FUNCTION_0E
+ const JUMPTABLE_8D24B_FUNCTION_0F
+ const JUMPTABLE_8D24B_FUNCTION_10
+ const JUMPTABLE_8D24B_FUNCTION_11
+ const JUMPTABLE_8D24B_FUNCTION_12
+ const JUMPTABLE_8D24B_FUNCTION_13
+ const JUMPTABLE_8D24B_FUNCTION_14
+ const JUMPTABLE_8D24B_FUNCTION_15
+ const JUMPTABLE_8D24B_FUNCTION_16
+ const JUMPTABLE_8D24B_FUNCTION_17
+ const JUMPTABLE_8D24B_FUNCTION_18
+ const JUMPTABLE_8D24B_FUNCTION_19
+ const JUMPTABLE_8D24B_FUNCTION_1A
+ const JUMPTABLE_8D24B_FUNCTION_1B
+ const JUMPTABLE_8D24B_FUNCTION_1C
+ const JUMPTABLE_8D24B_FUNCTION_1D
+ const JUMPTABLE_8D24B_FUNCTION_1E
+ const JUMPTABLE_8D24B_FUNCTION_1F
+ const JUMPTABLE_8D24B_FUNCTION_20
+ const JUMPTABLE_8D24B_FUNCTION_21
+ const JUMPTABLE_8D24B_FUNCTION_22
diff --git a/constants/move_constants.asm b/constants/move_constants.asm
index d88b0b560..e8392b45a 100644
--- a/constants/move_constants.asm
+++ b/constants/move_constants.asm
@@ -256,3 +256,44 @@
const_value SET const_value + -1
const NUM_ATTACKS ; $fb
+
+; Battle animations use the same constants
+; as the moves up to this point.
+ const ANIM_FC ; $fc
+ const ANIM_FD ; $fd
+ const ANIM_FE ; $fe
+ const ANIM_SWEET_SCENT_2 ; $ff
+ const ANIM_THROW_POKE_BALL ; $100
+ const ANIM_SEND_OUT_MON ; $101
+ const ANIM_RETURN_MON ; $102
+ const ANIM_CONFUSED ; $103
+ const ANIM_SLP ; $104
+ const ANIM_BRN ; $105
+ const ANIM_PSN ; $106
+ const ANIM_SAP ; $107
+ const ANIM_FRZ ; $108
+ const ANIM_PAR ; $109
+ const ANIM_IN_LOVE ; $10a
+ const ANIM_IN_SANDSTORM ; $10b
+ const ANIM_IN_NIGHTMARE ; $10c
+ const ANIM_IN_WHIRLPOOL ; $10d
+; battle anims
+ const ANIM_MISS ; $10e
+ const ANIM_ENEMY_DAMAGE ; $10f
+ const ANIM_ENEMY_STAT_DOWN ; $110
+ const ANIM_PLAYER_STAT_DOWN ; $111
+ const ANIM_PLAYER_DAMAGE ; $112
+ const ANIM_WOBBLE ; $113
+ const ANIM_SHAKE ; $114
+ const ANIM_HIT_CONFUSION ; $115
+
+; wcfca uses offsets from ANIM_MISS
+ const_def
+ const BATTLEANIM_NONE
+ const BATTLEANIM_ENEMY_DAMAGE
+ const BATTLEANIM_ENEMY_STAT_DOWN
+ const BATTLEANIM_PLAYER_STAT_DOWN
+ const BATTLEANIM_PLAYER_DAMAGE
+ const BATTLEANIM_WOBBLE
+ const BATTLEANIM_SHAKE
+ const BATTLEANIM_HIT_CONFUSION \ No newline at end of file
diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm
index 0012ec1e2..3407281c4 100644
--- a/constants/pokemon_constants.asm
+++ b/constants/pokemon_constants.asm
@@ -260,30 +260,62 @@ NUM_POKEMON EQU const_value
EGG EQU 253
; pokemon structure in RAM
-MON_SPECIES EQUS "PartyMon1Species - PartyMon1"
-MON_ITEM EQUS "PartyMon1Item - PartyMon1"
-MON_MOVES EQUS "PartyMon1Moves - PartyMon1"
-MON_ID EQUS "PartyMon1ID - PartyMon1"
-MON_EXP EQUS "PartyMon1Exp - PartyMon1"
-MON_HP_EXP EQUS "PartyMon1HPExp - PartyMon1"
-MON_ATK_EXP EQUS "PartyMon1AtkExp - PartyMon1"
-MON_DEF_EXP EQUS "PartyMon1DefExp - PartyMon1"
-MON_SPD_EXP EQUS "PartyMon1SpdExp - PartyMon1"
-MON_SPC_EXP EQUS "PartyMon1SpcExp - PartyMon1"
-MON_DVS EQUS "PartyMon1DVs - PartyMon1"
-MON_PP EQUS "PartyMon1PP - PartyMon1"
-MON_HAPPINESS EQUS "PartyMon1Happiness - PartyMon1"
-MON_PKRUS EQUS "PartyMon1PokerusStatus - PartyMon1"
-MON_CAUGHTTIME EQUS "PartyMon1CaughtTime - PartyMon1"
-MON_CAUGHTGENDER EQUS "PartyMon1CaughtGender - PartyMon1"
-MON_LEVEL EQUS "PartyMon1Level - PartyMon1"
-MON_STATUS EQUS "PartyMon1Status - PartyMon1"
-MON_HP EQUS "PartyMon1HP - PartyMon1"
-MON_MAXHP EQUS "PartyMon1MaxHP - PartyMon1"
-MON_ATK EQUS "PartyMon1Attack - PartyMon1"
-MON_DEF EQUS "PartyMon1Defense - PartyMon1"
-MON_SPD EQUS "PartyMon1Speed - PartyMon1"
-MON_SAT EQUS "PartyMon1SpclAtk - PartyMon1"
-MON_SDF EQUS "PartyMon1SpclDef - PartyMon1"
-BOXMON_STRUCT_LENGTH EQUS "PartyMon1Status - PartyMon1"
-PARTYMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1"
+MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)"
+MON_ITEM EQUS "(PartyMon1Item - PartyMon1)"
+MON_MOVES EQUS "(PartyMon1Moves - PartyMon1)"
+MON_ID EQUS "(PartyMon1ID - PartyMon1)"
+MON_EXP EQUS "(PartyMon1Exp - PartyMon1)"
+MON_STAT_EXP EQUS "(PartyMon1StatExp - PartyMon1)"
+MON_HP_EXP EQUS "(PartyMon1HPExp - PartyMon1)"
+MON_ATK_EXP EQUS "(PartyMon1AtkExp - PartyMon1)"
+MON_DEF_EXP EQUS "(PartyMon1DefExp - PartyMon1)"
+MON_SPD_EXP EQUS "(PartyMon1SpdExp - PartyMon1)"
+MON_SPC_EXP EQUS "(PartyMon1SpcExp - PartyMon1)"
+MON_DVS EQUS "(PartyMon1DVs - PartyMon1)"
+MON_PP EQUS "(PartyMon1PP - PartyMon1)"
+MON_HAPPINESS EQUS "(PartyMon1Happiness - PartyMon1)"
+MON_PKRUS EQUS "(PartyMon1PokerusStatus - PartyMon1)"
+MON_CAUGHTDATA EQUS "(PartyMon1CaughtData - PartyMon1)"
+MON_CAUGHTLEVEL EQUS "(PartyMon1CaughtLevel - PartyMon1)"
+MON_CAUGHTTIME EQUS "(PartyMon1CaughtTime - PartyMon1)"
+MON_CAUGHTGENDER EQUS "(PartyMon1CaughtGender - PartyMon1)"
+MON_CAUGHTLOCATION EQUS "(PartyMon1CaughtLocation - PartyMon1)"
+MON_LEVEL EQUS "(PartyMon1Level - PartyMon1)"
+MON_STATUS EQUS "(PartyMon1Status - PartyMon1)"
+MON_HP EQUS "(PartyMon1HP - PartyMon1)"
+MON_MAXHP EQUS "(PartyMon1MaxHP - PartyMon1)"
+MON_ATK EQUS "(PartyMon1Attack - PartyMon1)"
+MON_DEF EQUS "(PartyMon1Defense - PartyMon1)"
+MON_SPD EQUS "(PartyMon1Speed - PartyMon1)"
+MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)"
+MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)"
+BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)"
+PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)"
+SCRATCHMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1Item)"
+
+const_value SET 1
+ const MONMENU_CUT ; 1
+ const MONMENU_FLY ; 2
+ const MONMENU_SURF ; 3
+ const MONMENU_STRENGTH ; 4
+ const MONMENU_WATERFALL ; 5
+ const MONMENU_FLASH ; 6
+ const MONMENU_WHIRLPOOL ; 7
+ const MONMENU_DIG ; 8
+ const MONMENU_TELEPORT ; 9
+ const MONMENU_SOFTBOILED ; 10
+ const MONMENU_HEADBUTT ; 11
+ const MONMENU_ROCKSMASH ; 12
+ const MONMENU_MILKDRINK ; 13
+ const MONMENU_SWEETSCENT ; 14
+
+ const MONMENU_STATS ; 15
+ const MONMENU_SWITCH ; 16
+ const MONMENU_ITEM ; 17
+ const MONMENU_CANCEL ; 18
+ const MONMENU_MOVE ; 19
+ const MONMENU_MAIL ; 20
+ const MONMENU_ERROR ; 21
+
+MONMENU_FIELD_MOVE EQU 0
+MONMENU_MENUOPTION EQU 1
diff --git a/constants/radio_constants.asm b/constants/radio_constants.asm
index 46341c305..ee9cd6ce6 100644
--- a/constants/radio_constants.asm
+++ b/constants/radio_constants.asm
@@ -93,3 +93,18 @@
const BUENA_ITEM
const BUENA_MOVE
const BUENA_STRING
+
+ const_def
+ const BUENA_STARTERS
+ const BUENA_DRINKS
+ const BUENA_ITEMS
+ const BUENA_BALLS
+ const BUENA_MON1
+ const BUENA_MON2
+ const BUENA_TOWNS
+ const BUENA_TYPES
+ const BUENA_MOVES
+ const BUENA_XITEMS
+ const BUENA_STATIONS
+NUM_PASSWORD_CATEGORIES EQU const_value
+NUM_PASSWORDS_PER_CATEGORY EQU 3
diff --git a/constants/script_constants.asm b/constants/script_constants.asm
index 191a9c024..058f9d92d 100644
--- a/constants/script_constants.asm
+++ b/constants/script_constants.asm
@@ -35,3 +35,17 @@ NUM_VARS EQU const_value
RETVAR_STRBUF2 EQU (0 << 6)
RETVAR_ADDR_DE EQU (1 << 6)
RETVAR_EXECUTE EQU (2 << 6)
+
+const_value SET -1
+ const PLAYEREVENT_MAPSCRIPT
+ const PLAYEREVENT_NONE
+ const PLAYEREVENT_SEENBYTRAINER
+ const PLAYEREVENT_TALKTOTRAINER
+ const PLAYEREVENT_ITEMBALL
+ const PLAYEREVENT_CONNECTION
+ const PLAYEREVENT_WARP
+ const PLAYEREVENT_FALL
+ const PLAYEREVENT_WHITEOUT
+ const PLAYEREVENT_HATCH
+ const PLAYEREVENT_JOYCHANGEFACING
+NUM_PLAYER_EVENTS EQU const_value
diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm
index a355877f2..a017d41b0 100644
--- a/constants/sprite_constants.asm
+++ b/constants/sprite_constants.asm
@@ -170,6 +170,16 @@ const_value SET 1
const STANDING_SPRITE
const STILL_SPRITE
+; sprite header fields
+ const_def
+ const SPRITEHEADER_ADDR_LO
+ const SPRITEHEADER_ADDR_HI
+ const SPRITEHEADER_SIZE
+ const SPRITEHEADER_BANK
+ const SPRITEHEADER_TYPE
+ const SPRITEHEADER_PALETTE
+NUM_SPRITEHEADER_FIELDS EQU const_value
+
; sprite palettes
const_def
const PAL_OW_RED
@@ -184,17 +194,17 @@ const_value SET 1
; sprite movement data table indices
const_def
const SPRITEMOVEDATA_00
- const SPRITEMOVEDATA_01
- const SPRITEMOVEDATA_02
- const SPRITEMOVEDATA_03
+ const SPRITEMOVEDATA_ITEM_TREE
+ const SPRITEMOVEDATA_WANDER
+ const SPRITEMOVEDATA_SPINRANDOM_SLOW
const SPRITEMOVEDATA_WALK_UP_DOWN
const SPRITEMOVEDATA_WALK_LEFT_RIGHT
const SPRITEMOVEDATA_STANDING_DOWN
const SPRITEMOVEDATA_STANDING_UP
const SPRITEMOVEDATA_STANDING_LEFT
const SPRITEMOVEDATA_STANDING_RIGHT
- const SPRITEMOVEDATA_0A
- const SPRITEMOVEDATA_0B
+ const SPRITEMOVEDATA_SPINRANDOM_FAST
+ const SPRITEMOVEDATA_PLAYER
const SPRITEMOVEDATA_0C
const SPRITEMOVEDATA_0D
const SPRITEMOVEDATA_0E
@@ -202,36 +212,38 @@ const_value SET 1
const SPRITEMOVEDATA_10
const SPRITEMOVEDATA_11
const SPRITEMOVEDATA_12
- const SPRITEMOVEDATA_13
- const SPRITEMOVEDATA_14
- const SPRITEMOVEDATA_15
- const SPRITEMOVEDATA_16
- const SPRITEMOVEDATA_17
- const SPRITEMOVEDATA_18
- const SPRITEMOVEDATA_19
- const SPRITEMOVEDATA_1A
+ const SPRITEMOVEDATA_FOLLOWING
+ const SPRITEMOVEDATA_SCRIPTED
+ const SPRITEMOVEDATA_SNORLAX
+ const SPRITEMOVEDATA_POKEMON
+ const SPRITEMOVEDATA_SUDOWOODO
+ const SPRITEMOVEDATA_SMASHABLE_ROCK
+ const SPRITEMOVEDATA_STRENGTH_BOULDER
+ const SPRITEMOVEDATA_FOLLOWNOTEXACT
const SPRITEMOVEDATA_1B
const SPRITEMOVEDATA_1C
const SPRITEMOVEDATA_1D
- const SPRITEMOVEDATA_1E
- const SPRITEMOVEDATA_1F
+ const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE
+ const SPRITEMOVEDATA_SPINCLOCKWISE
const SPRITEMOVEDATA_20
- const SPRITEMOVEDATA_21
+ const SPRITEMOVEDATA_BIGDOLL
const SPRITEMOVEDATA_22
const SPRITEMOVEDATA_23
- const SPRITEMOVEDATA_24
+ const SPRITEMOVEDATA_LAPRAS
const SPRITEMOVEDATA_25
+NUM_SPRITEMOVEDATA EQU const_value +- 1
+SPRITEMOVEDATA_FIELDS EQU 6
; sprite movement functions
const_def
const SPRITEMOVEFN_00
- const SPRITEMOVEFN_01
- const SPRITEMOVEFN_02
- const SPRITEMOVEFN_03
- const SPRITEMOVEFN_04
- const SPRITEMOVEFN_05
- const SPRITEMOVEFN_06
- const SPRITEMOVEFN_07
+ const SPRITEMOVEFN_RANDOM_WALK_Y
+ const SPRITEMOVEFN_RANDOM_WALK_X
+ const SPRITEMOVEFN_RANDOM_WALK_XY
+ const SPRITEMOVEFN_SLOW_RANDOM_SPIN
+ const SPRITEMOVEFN_FAST_RANDOM_SPIN
+ const SPRITEMOVEFN_STANDING
+ const SPRITEMOVEFN_OBEY_DPAD
const SPRITEMOVEFN_08
const SPRITEMOVEFN_09
const SPRITEMOVEFN_0A
@@ -239,16 +251,18 @@ const_value SET 1
const SPRITEMOVEFN_0C
const SPRITEMOVEFN_0D
const SPRITEMOVEFN_0E
- const SPRITEMOVEFN_0F
- const SPRITEMOVEFN_10
- const SPRITEMOVEFN_11
- const SPRITEMOVEFN_12
+ const SPRITEMOVEFN_FOLLOW
+ const SPRITEMOVEFN_SCRIPTED
+ const SPRITEMOVEFN_STRENGTH
+ const SPRITEMOVEFN_FOLLOWNOTEXACT
const SPRITEMOVEFN_13
const SPRITEMOVEFN_14
- const SPRITEMOVEFN_15
- const SPRITEMOVEFN_16
+ const SPRITEMOVEFN_BIG_SNORLAX
+ const SPRITEMOVEFN_BOUNCE
const SPRITEMOVEFN_17
- const SPRITEMOVEFN_18
- const SPRITEMOVEFN_19
+ const SPRITEMOVEFN_SPIN_CLOCKWISE
+ const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE
const SPRITEMOVEFN_1A
const SPRITEMOVEFN_1B
+
+MAX_OUTDOOR_SPRITES EQU 23
diff --git a/constants/tilemap_constants.asm b/constants/tilemap_constants.asm
index e47a1b269..215bd2934 100644
--- a/constants/tilemap_constants.asm
+++ b/constants/tilemap_constants.asm
@@ -3,3 +3,41 @@ WALLTILE EQU 1
WATRTILE EQU 15
TALK EQU 1 << 4
+
+const_value SET 1
+ const TILESET_JOHTO_OUTSIDE_1 ; 01
+ const TILESET_JOHTO_OUTSIDE_2 ; 02
+ const TILESET_KANTO_OUTSIDE ; 03
+ const TILESET_BATTLE_TOWER_OUTSIDE ; 04
+ const TILESET_HOUSE_1 ; 05
+ const TILESET_KRISS_HOUSE ; 06
+ const TILESET_POKECENTER ; 07
+ const TILESET_GATE ; 08
+ const TILESET_PORT ; 09
+ const TILESET_LAB ; 0a
+ const TILESET_POWER_PLANT ; 0b
+ const TILESET_MART ; 0c
+ const TILESET_CELADON_MANSION ; 0d
+ const TILESET_GAME_CORNER ; 0e
+ const TILESET_GYM_1 ; 0f
+ const TILESET_KURT_HOUSE ; 10
+ const TILESET_TRAIN_STATION ; 11
+ const TILESET_OLIVINE_GYM ; 12
+ const TILESET_LIGHTHOUSE ; 13
+ const TILESET_KRISS_HOUSE_2F ; 14
+ const TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE ; 15
+ const TILESET_BATTLE_TOWER ; 16
+ const TILESET_SPROUT_TOWER ; 17
+ const TILESET_CAVE ; 18
+ const TILESET_PARK ; 19
+ const TILESET_RUINS_OF_ALPH ; 1a
+ const TILESET_RADIO_TOWER ; 1b
+ const TILESET_UNDERGROUND ; 1c
+ const TILESET_ICE_PATH ; 1d
+ const TILESET_WHIRL_ISLANDS ; 1e
+ const TILESET_ILEX_FOREST ; 1f
+ const TILESET_20 ; 20
+ const TILESET_HO_OH_WORD_ROOM ; 21
+ const TILESET_KABUTO_WORD_ROOM ; 22
+ const TILESET_OMANYTE_WORD_ROOM ; 23
+ const TILESET_AERODACTYL_WORD_ROOM ; 24
diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm
index 9bb72b2a2..ffe9b11a6 100644
--- a/constants/wram_constants.asm
+++ b/constants/wram_constants.asm
@@ -54,7 +54,6 @@ SATURDAY EQU 6
PLAYER_OBJECT EQU 0
NUM_OBJECTS EQU $10
-OBJECT_LENGTH EQU $10
; InputType: ; c2c7
AUTO_INPUT EQU $ff
@@ -76,3 +75,9 @@ NUM_OBJECT_STRUCTS EQU 13
; After-Champion Spawn
SPAWN_LANCE EQU 1
SPAWN_RED EQU 2
+
+; wPokemonWithdrawDepositParameter
+PC_WITHDRAW EQU 0
+PC_DEPOSIT EQU 1
+DAYCARE_WITHDRAW EQU 2
+DAYCARE_DEPOSIT EQU 3
diff --git a/data/battle_tower.asm b/data/battle_tower.asm
index b0455eb10..8b278fca9 100644
--- a/data/battle_tower.asm
+++ b/data/battle_tower.asm
@@ -1,13 +1,13 @@
Function_LoadOpponentTrainerAndPokemons: ; 1f8000
ld a, [rSVBK]
push af
- ld a, $3
+ ld a, BANK(BT_OTTrainer)
ld [rSVBK], a
- ; Fill BT_OTrainer with zeros
+ ; Fill BT_OTTrainer with zeros
xor a
- ld hl, BT_OTrainer
- ld bc, BT_OTrainerEnd - BT_OTrainer
+ ld hl, BT_OTTrainer
+ ld bc, BT_OTTrainerEnd - BT_OTTrainer
call ByteFill
; Write $ff into the Item-Slots
@@ -17,36 +17,36 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000
ld [BT_OTPkmn3Item], a
; Set BT_OTTrainer as start address to write the following data to
- ld de, BT_OTrainer
+ ld de, BT_OTTrainer
ld a, [hRandomAdd]
ld b, a
-.asm_1f8022 ; loop to find a random trainer
+.resample ; loop to find a random trainer
call Random
ld a, [hRandomAdd]
add b
ld b, a ; b contains the nr of the trainer
IF DEF(CRYSTAL11)
- and $7f
- cp $46
+ and (1 << 7) - 1
+ cp 70
ELSE
- and $1f
- cp $15
+ and (1 << 5) - 1
+ cp 21
ENDC
- jr nc, .asm_1f8022
+ jr nc, .resample
ld b, a
- ld a, BANK(sNrOfBeatenBattleTowerTrainers)
+ ld a, BANK(sBTTrainers)
call GetSRAMBank
ld c, BATTLETOWER_NROFTRAINERS
ld hl, sBTTrainers
-.asm_1f803a
+.next_trainer
ld a, [hli]
cp b
- jr z, .asm_1f8022
+ jr z, .resample
dec c
- jr nz, .asm_1f803a ; c <= 7 initialise all 7 trainers?
+ jr nz, .next_trainer ; c <= 7 initialise all 7 trainers?
ld hl, sBTTrainers
ld a, [sNrOfBeatenBattleTowerTrainers]
@@ -61,9 +61,9 @@ ENDC
push af
; Copy name (10 bytes) and class (1 byte) of trainer
ld hl, BattleTowerTrainers
- ld bc, 11
+ ld bc, NAME_LENGTH
call AddNTimes
- ld bc, 11
+ ld bc, NAME_LENGTH
call CopyBytes
call Function_LoadRandomBattleTowerPkmn
@@ -73,7 +73,7 @@ ENDC
ld bc, BATTLETOWER_TRAINERDATALENGTH
call AddNTimes
ld bc, BATTLETOWER_TRAINERDATALENGTH
-.asm_1f8070
+.copy_bt_trainer_data_loop
ld a, BANK(BattleTowerTrainerData)
call GetFarByte
ld [de], a
@@ -82,7 +82,7 @@ ENDC
dec bc
ld a, b
or c
- jr nz, .asm_1f8070
+ jr nz, .copy_bt_trainer_data_loop
pop af
ld [rSVBK], a
@@ -108,20 +108,20 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
ld a, [hRandomAdd]
ld b, a
-.asm_1f8099
+.resample
call Random
ld a, [hRandomAdd]
add b
ld b, a
and $1f
- cp (BattleTowerMons2 - BattleTowerMons1) / ($3b)
- jr nc, .asm_1f8099
+ cp BATTLETOWER_NRMONSPERLEVELBRACKET
+ jr nc, .resample
; in register 'a' is the chosen Pkmn of the LevelGroup
; Check if Pkmn was already loaded before
; Check current and the 2 previous teams
; includes check if item is double at the current team
- ld bc, BATTLETOWER_PKMNSTRUCTLENGTH + $b
+ ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
call AddNTimes
ld a, [hli]
ld b, a
@@ -164,17 +164,17 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
cp b
jr z, .FindARandomBattleTowerPkmn
- ld bc, BATTLETOWER_PKMNSTRUCTLENGTH + $b
+ ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH
call CopyBytes
- ld a, [wd265]
+ ld a, [wNamedObjectIndexBuffer]
push af
push de
- ld hl, - (BATTLETOWER_PKMNSTRUCTLENGTH + $b)
+ ld hl, - (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH)
add hl, de
ld a, [hl]
- ld [wd265], a
- ld bc, BATTLETOWER_PKMNSTRUCTLENGTH
+ ld [wNamedObjectIndexBuffer], a
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
push hl
call GetPokemonName
@@ -186,7 +186,7 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081
pop de
pop af
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
pop bc
dec c
jp nz, .loop
@@ -229,6 +229,7 @@ BattleTowerTrainers: ; 1f814e
db "KAUFMAN@@@", SWIMMERM
db "LANCASTER@", SKIER
db "McMAHILL@@", CAMPER
+; The following can only be sampled in Crystal 1.1.
db "OBRIEN@@@@", GENTLEMAN
db "FROST@@@@@", BEAUTY
db "MORSE@@@@@", SUPER_NERD
@@ -282,7 +283,7 @@ BattleTowerTrainers: ; 1f814e
BattleTowerMons: ; 1f8450
-
+; 10 groups of 21 mons.
BattleTowerMons1:
db JOLTEON
diff --git a/data/battle_tower_2.asm b/data/battle_tower_2.asm
new file mode 100755
index 000000000..8d6e6d59d
--- /dev/null
+++ b/data/battle_tower_2.asm
@@ -0,0 +1,72 @@
+BattleTowerTrainerData:: ; What exactly it is, I don't know
+; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied)
+ db $37, $03, $0e, $09, $25, $0b, $1c, $0d, $12, $0d, $00, $05, $0e, $09, $1a, $0b, $30, $04, $3f, $06, $20, $04, $21, $0d, $0e, $09, $30, $04, $20, $04, $0b, $06, $34, $03, $06, $05
+ db $36, $03, $ca, $00, $22, $08, $20, $04, $33, $0d, $11, $0d, $37, $05, $06, $05, $3f, $06, $ca, $00, $20, $04, $06, $0d, $ca, $00, $21, $03, $09, $06, $12, $04, $28, $0b, $0c, $0d
+ db $32, $06, $31, $04, $02, $02, $03, $04, $22, $02, $00, $05, $40, $04, $2d, $06, $13, $0d, $18, $03, $3f, $04, $13, $0d, $1a, $0c, $33, $04, $32, $0d, $09, $06, $22, $02, $13, $0d
+ db $22, $0c, $22, $0c, $0a, $09, $0b, $08, $2f, $06, $22, $07, $22, $06, $2c, $04, $1a, $06, $0d, $07, $3f, $0d, $00, $05, $0b, $08, $09, $06, $2c, $04, $1f, $0e, $1c, $0b, $41, $0b
+ db $a3, $00, $41, $03, $1f, $04, $29, $00, $1c, $04, $03, $02, $3d, $05, $38, $06, $71, $00, $18, $03, $30, $06, $53, $00, $1e, $05, $b9, $00, $21, $0d, $30, $06, $d1, $00, $0a, $06
+ db $13, $02, $31, $06, $04, $02, $1c, $04, $0d, $0d, $31, $0d, $39, $07, $31, $06, $24, $07, $3d, $04, $40, $04, $30, $0d, $03, $06, $08, $05, $02, $05, $14, $07, $08, $05, $1a, $0d
+ db $0d, $02, $07, $02, $00, $05, $22, $02, $10, $0b, $0a, $0d, $16, $02, $01, $02, $08, $0d, $2c, $04, $23, $07, $23, $0d, $16, $02, $01, $02, $08, $0d, $02, $03, $20, $04, $23, $0d
+ db $1e, $02, $22, $02, $00, $05, $20, $08, $2c, $04, $03, $02, $1d, $05, $41, $08, $41, $08, $35, $05, $40, $0b, $00, $05, $0b, $05, $0b, $02, $00, $05, $04, $04, $14, $08, $00, $05
+ db $06, $0c, $09, $06, $00, $00, $0b, $09, $1e, $0c, $37, $0d, $41, $03, $06, $04, $34, $06, $22, $0c, $15, $09, $23, $0d, $02, $03, $22, $08, $41, $0d, $26, $04, $31, $0d, $01, $05
+ db $22, $0c, $30, $04, $01, $05, $2c, $04, $23, $07, $01, $05, $37, $03, $3d, $04, $3c, $0d, $1c, $03, $29, $08, $3c, $0d, $18, $04, $30, $0d, $06, $05, $14, $07, $30, $0d, $06, $05
+ db $0e, $06, $04, $05, $2c, $04, $1e, $0c, $38, $0d, $00, $05, $3f, $03, $3f, $06, $20, $04, $33, $0d, $04, $0d, $00, $00, $20, $04, $26, $0d, $04, $05, $0c, $04, $26, $0d, $04, $05
+ db $18, $02, $33, $03, $28, $04, $2c, $04, $09, $07, $03, $05, $30, $04, $08, $09, $00, $05, $1a, $02, $32, $03, $00, $05, $3f, $05, $26, $07, $01, $05, $26, $05, $0f, $02, $00, $05
+ db $3a, $0b, $3a, $0b, $00, $05, $42, $03, $19, $08, $30, $04, $39, $03, $13, $06, $13, $06, $19, $08, $21, $0d, $00, $00, $39, $03, $09, $02, $00, $05, $40, $03, $3a, $08, $2a, $0d
+ db $31, $05, $11, $0e, $30, $04, $1b, $08, $07, $08, $0c, $0d, $1b, $02, $1b, $02, $01, $05, $15, $02, $0a, $04, $0e, $0d, $22, $05, $31, $06, $02, $05, $1d, $06, $3b, $07, $0e, $0d
+ db $1b, $02, $2c, $04, $0d, $0d, $34, $03, $00, $03, $11, $0d, $1b, $08, $31, $04, $0b, $0d, $2f, $08, $01, $05, $00, $00, $06, $05, $10, $05, $0f, $06, $11, $0d, $06, $05, $00, $00
+ db $42, $03, $30, $04, $1f, $0b, $16, $0e, $10, $07, $34, $0d, $17, $0e, $04, $0d, $00, $00, $42, $03, $19, $08, $30, $04, $0c, $05, $35, $05, $01, $05, $1e, $06, $36, $08, $41, $0d
+ db $18, $03, $42, $03, $43, $04, $3a, $0b, $3b, $0b, $03, $05, $2c, $05, $06, $05, $1b, $03, $43, $04, $39, $0b, $3c, $04, $14, $0b, $0f, $05, $06, $05, $40, $03, $3f, $04, $20, $0e
+ db $0c, $05, $36, $07, $30, $04, $27, $0b, $10, $08, $31, $0d, $11, $0e, $30, $04, $41, $03, $07, $0d, $2f, $08, $03, $05, $06, $05, $3f, $06, $11, $0e, $30, $04, $30, $07, $06, $05
+ db $36, $03, $06, $06, $44, $04, $0b, $0e, $16, $0d, $00, $05, $32, $0d, $08, $06, $09, $0e, $44, $04, $09, $08, $22, $0d, $04, $0e, $09, $0e, $44, $04, $29, $08, $05, $0d, $00, $00
+ db $3f, $06, $2c, $04, $34, $0d, $14, $05, $13, $02, $04, $02, $0c, $05, $3f, $04, $38, $0d, $02, $03, $29, $08, $32, $0d, $35, $05, $15, $06, $40, $05, $02, $03, $34, $07, $04, $0d
+ db $12, $03, $02, $04, $07, $07, $28, $04, $2c, $0d, $00, $05, $2c, $03, $12, $03, $2b, $06, $0a, $04, $06, $0d, $31, $0d, $2c, $03, $12, $03, $06, $04, $0d, $06, $28, $0b, $02, $05
+ db $41, $04, $3c, $0b, $34, $0d, $40, $03, $00, $03, $0d, $0d, $13, $0c, $33, $08, $31, $0d, $1e, $09, $27, $07, $3b, $0d, $22, $08, $15, $04, $11, $0d, $2c, $03, $0c, $04, $3b, $0d
+ db $03, $0a, $3a, $0d, $2c, $04, $1c, $0b, $35, $07, $26, $0d, $24, $09, $43, $04, $26, $0d, $0f, $03, $1f, $07, $04, $05, $02, $03, $24, $08, $26, $0d, $3f, $03, $13, $04, $04, $05
+ db $06, $05, $06, $05, $06, $05, $06, $05, $2c, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $07, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $33, $04, $03, $05
+ db $27, $05, $01, $05, $00, $00, $18, $04, $19, $0d, $01, $05, $41, $05, $00, $00, $00, $00, $16, $06, $3d, $04, $19, $0d, $20, $04, $05, $05, $00, $00, $21, $03, $0c, $04, $19, $0d
+ db $03, $02, $43, $03, $27, $04, $28, $04, $2d, $0d, $00, $05, $30, $05, $04, $05, $02, $03, $38, $06, $3e, $04, $41, $0d, $16, $0e, $04, $05, $02, $03, $38, $06, $20, $04, $41, $0d
+ db $34, $03, $00, $03, $11, $0d, $03, $04, $1c, $0b, $07, $0d, $29, $05, $00, $05, $00, $00, $40, $04, $11, $0d, $3e, $0d, $03, $06, $11, $0d, $00, $05, $16, $0e, $0d, $06, $20, $06
+ db $19, $03, $17, $0b, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $06, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $36, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b
+ db $0a, $03, $0c, $0c, $25, $0a, $21, $0e, $2c, $04, $03, $02, $10, $09, $03, $08, $09, $06, $0a, $03, $31, $04, $16, $0d, $27, $05, $17, $07, $04, $05, $02, $0c, $0a, $09, $2f, $0d
+ db $15, $02, $2c, $04, $03, $02, $24, $04, $39, $04, $0f, $0d, $1e, $02, $11, $02, $01, $05, $0d, $04, $39, $08, $05, $0d, $29, $05, $08, $02, $00, $05, $43, $03, $0c, $04, $3b, $0d
+ db $10, $0b, $04, $04, $00, $05, $05, $08, $21, $0d, $00, $00, $1f, $05, $01, $02, $00, $05, $18, $03, $3c, $08, $31, $0d, $02, $06, $23, $0b, $31, $03, $43, $03, $13, $07, $16, $0d
+ db $0f, $0e, $19, $0d, $00, $05, $0b, $0e, $2c, $04, $19, $0d, $0e, $0e, $2c, $04, $06, $05, $1f, $07, $19, $0d, $01, $05, $06, $05, $37, $03, $29, $04, $32, $0d, $19, $0d, $01, $05
+ db $35, $03, $06, $04, $0d, $06, $29, $0b, $05, $0d, $00, $00, $16, $0e, $30, $04, $0b, $0d, $29, $08, $16, $0d, $00, $05, $11, $0e, $30, $04, $30, $07, $06, $05, $29, $08, $03, $05
+ db $18, $04, $03, $05, $0b, $0d, $2c, $04, $1e, $0c, $01, $05, $1f, $05, $1d, $07, $1d, $07, $2c, $04, $21, $07, $01, $05, $0a, $05, $12, $02, $32, $0d, $11, $0c, $0c, $06, $1a, $0d
+ db $0c, $0c, $37, $03, $1a, $03, $40, $04, $23, $0b, $26, $0a, $3f, $06, $09, $04, $1b, $07, $37, $03, $22, $08, $27, $06, $04, $0e, $03, $05, $00, $00, $26, $0a, $3b, $08, $1b, $07
+ db $18, $03, $1b, $08, $29, $0b, $40, $08, $32, $0d, $00, $05, $2f, $06, $29, $0b, $0b, $0d, $2f, $08, $23, $0d, $02, $0d, $35, $05, $13, $0e, $2e, $06, $22, $06, $2f, $08, $27, $06
+ db $1c, $03, $02, $0e, $31, $03, $2a, $0d, $24, $0d, $00, $00, $18, $03, $0b, $0d, $30, $08, $40, $08, $04, $05, $00, $00, $1c, $05, $01, $05, $03, $03, $02, $0e, $27, $04, $34, $0d
+ db $33, $03, $30, $04, $2c, $04, $1c, $0b, $35, $07, $00, $05, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $40, $04, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $22, $07
+ db $22, $0c, $22, $0c, $16, $0a, $35, $0d, $1c, $0b, $3f, $0d, $13, $05, $16, $0a, $40, $06, $23, $07, $06, $0d, $06, $05, $3f, $06, $16, $0a, $16, $0d, $37, $03, $2c, $04, $26, $07
+ db $0e, $06, $05, $08, $04, $0d, $00, $00, $00, $00, $00, $00, $14, $05, $06, $05, $12, $02, $00, $00, $00, $00, $00, $00, $23, $05, $01, $06, $18, $0d, $00, $00, $00, $00, $00, $00
+ db $18, $03, $27, $03, $03, $05, $20, $0b, $27, $06, $06, $05, $20, $0e, $12, $07, $2b, $0d, $2c, $03, $0e, $08, $35, $07, $37, $03, $27, $03, $03, $05, $42, $07, $2f, $08, $06, $05
+ db $36, $03, $30, $04, $17, $04, $2c, $03, $0c, $04, $3b, $0d, $18, $03, $32, $07, $15, $0d, $35, $05, $0d, $07, $07, $0d, $09, $05, $06, $05, $0f, $0c, $09, $04, $07, $0d, $3b, $0d
+ db $0b, $05, $14, $06, $24, $04, $0a, $0d, $3c, $0d, $00, $05, $14, $05, $09, $02, $32, $0d, $1e, $06, $04, $07, $06, $0d, $1a, $05, $33, $04, $03, $05, $16, $02, $00, $02, $07, $05
+ db $0a, $03, $32, $07, $0b, $0e, $22, $06, $2c, $04, $29, $0b, $0a, $03, $12, $0d, $24, $04, $1a, $0b, $33, $0d, $03, $0d, $0a, $03, $35, $04, $1b, $07, $06, $05, $1e, $06, $14, $07
+ db $0e, $06, $2c, $04, $00, $0d, $06, $03, $31, $04, $04, $0d, $0c, $05, $12, $02, $00, $05, $40, $03, $09, $04, $01, $0d, $35, $05, $36, $08, $00, $05, $02, $03, $31, $04, $21, $0d
+ db $22, $05, $07, $0e, $30, $04, $c5, $00, $10, $02, $01, $05, $0c, $0c, $00, $01, $30, $04, $82, $00, $21, $04, $01, $05, $10, $01, $11, $05, $30, $04, $c3, $00, $3f, $04, $06, $05
+ db $3a, $07, $3b, $07, $36, $03, $30, $04, $21, $04, $06, $0d, $17, $0e, $03, $05, $00, $00, $3f, $06, $21, $04, $21, $0d, $36, $05, $36, $03, $30, $04, $33, $06, $3f, $04, $0c, $0d
+ db $43, $03, $20, $04, $41, $0d, $17, $06, $06, $03, $0a, $04, $3a, $06, $13, $04, $04, $0d, $08, $06, $3f, $04, $31, $0d, $43, $03, $39, $04, $04, $05, $17, $06, $39, $04, $41, $0d
+ db $36, $03, $16, $04, $08, $06, $09, $08, $06, $0d, $00, $00, $1f, $0b, $03, $05, $12, $0e, $0f, $0e, $2c, $0d, $00, $05, $3a, $06, $16, $04, $38, $06, $38, $06, $2c, $0d, $00, $05
+ db $11, $05, $25, $03, $33, $04, $2f, $08, $19, $0d, $00, $05, $11, $05, $25, $03, $3f, $06, $26, $04, $19, $0d, $00, $05, $11, $05, $21, $03, $35, $04, $14, $07, $19, $0d, $06, $05
+ db $2c, $04, $0a, $0d, $04, $05, $33, $03, $29, $0b, $05, $0d, $00, $06, $04, $05, $09, $02, $33, $03, $07, $04, $35, $07, $33, $03, $3a, $08, $05, $0d, $3f, $06, $29, $08, $05, $0d
+ db $05, $03, $1b, $04, $41, $03, $39, $0b, $3a, $0b, $01, $05, $2c, $04, $03, $05, $00, $00, $40, $07, $3e, $0d, $00, $05, $00, $0e, $09, $05, $04, $05, $19, $09, $1d, $0b, $03, $05
+ db $1c, $0c, $20, $06, $05, $08, $3e, $0d, $00, $05, $00, $00, $18, $03, $1f, $0e, $11, $0a, $1c, $0b, $15, $0b, $1c, $06, $03, $0e, $06, $0c, $21, $0c, $14, $0d, $06, $05, $1f, $08
+ db $37, $03, $0e, $01, $08, $01, $19, $06, $27, $0b, $03, $02, $0e, $01, $08, $01, $1b, $08, $05, $08, $21, $0d, $00, $00, $36, $03, $33, $04, $04, $05, $00, $04, $41, $08, $3b, $0d
+ db $06, $02, $00, $05, $34, $03, $00, $03, $0d, $0d, $00, $05, $3c, $06, $05, $08, $16, $04, $2f, $08, $33, $0d, $02, $0d, $1c, $05, $00, $05, $18, $03, $05, $08, $1b, $04, $0c, $0d
+ db $2c, $04, $13, $09, $20, $06, $39, $03, $20, $04, $3c, $0d, $05, $03, $43, $04, $0b, $0d, $22, $04, $06, $0d, $31, $0d, $24, $08, $00, $05, $02, $03, $09, $08, $06, $0d, $3b, $0d
+ db $06, $03, $20, $04, $24, $0d, $24, $04, $10, $0b, $00, $05, $39, $07, $00, $05, $2a, $06, $04, $04, $3c, $04, $00, $00, $24, $04, $1c, $0b, $07, $0d, $2f, $08, $09, $06, $06, $05
+ db $44, $07, $23, $0b, $33, $0d, $2c, $04, $20, $06, $24, $08, $24, $08, $00, $05, $0e, $0e, $12, $08, $09, $0b, $28, $06, $24, $08, $00, $05, $02, $03, $13, $06, $11, $08, $41, $0d
+ db $36, $03, $06, $06, $30, $04, $0f, $0b, $02, $0b, $3b, $0d, $31, $0d, $00, $05, $39, $03, $20, $04, $21, $0d, $00, $00, $04, $0e, $02, $05, $06, $06, $20, $0e, $0b, $06, $27, $06
+ db $14, $05, $04, $02, $09, $0e, $08, $08, $2e, $08, $41, $0d, $34, $05, $2e, $08, $21, $0d, $3f, $03, $18, $08, $00, $05, $36, $05, $05, $02, $00, $05, $17, $06, $39, $04, $00, $05
+ db $34, $03, $00, $03, $11, $0d, $41, $08, $0b, $06, $06, $04, $39, $07, $00, $05, $00, $00, $36, $03, $30, $04, $07, $08, $10, $05, $15, $08, $00, $05, $3a, $06, $1e, $06, $14, $0d
+ db $37, $05, $37, $05, $00, $05, $38, $05, $38, $05, $41, $05, $25, $05, $04, $05, $32, $05, $31, $05, $41, $05, $41, $05, $0f, $05, $04, $05, $0f, $05, $0f, $05, $16, $05, $01, $05
+ db $1f, $0e, $36, $04, $40, $0d, $2f, $08, $1a, $0d, $00, $05, $21, $06, $35, $05, $24, $06, $1a, $06, $12, $0e, $00, $00, $1b, $05, $31, $06, $02, $05, $28, $0d, $27, $0d, $00, $00
+ db $41, $08, $0b, $06, $37, $03, $08, $06, $20, $04, $3b, $0d, $15, $02, $16, $06, $26, $07, $13, $0c, $33, $08, $32, $0d, $2d, $07, $00, $05, $35, $03, $0b, $04, $28, $06, $06, $05
+ db $0c, $08, $2c, $04, $1c, $0b, $06, $07, $0a, $0d, $03, $05, $30, $06, $06, $07, $00, $05, $2c, $04, $20, $06, $24, $07, $30, $06, $0b, $07, $00, $05, $2c, $04, $20, $06, $22, $07
+ db $22, $0c, $22, $0c, $0a, $09, $04, $0b, $02, $07, $27, $06, $0f, $0c, $0a, $0a, $22, $06, $02, $07, $27, $06, $04, $05, $3a, $06, $0e, $0a, $22, $06, $05, $08, $02, $07, $04, $05
+ db $2d, $0b, $02, $08, $37, $0d, $10, $05, $29, $07, $03, $05, $20, $0e, $0e, $0e, $0d, $06, $42, $07, $30, $08, $28, $06, $10, $05, $04, $05, $04, $05, $10, $05, $10, $05, $04, $05
+ db $3f, $03, $16, $0e, $3f, $08, $0b, $0d, $2f, $08, $41, $0d, $34, $05, $00, $05, $02, $03, $3a, $06, $31, $07, $31, $0d, $21, $0e, $03, $05, $3f, $03, $16, $0e, $26, $07, $03, $05
+ db $3a, $06, $2c, $03, $12, $03, $17, $0c, $28, $0b, $06, $0d, $3a, $06, $17, $0c, $23, $0b, $0d, $06, $2f, $08, $22, $0d, $14, $07, $04, $05, $17, $0c, $1c, $0b, $1b, $07, $00, $05
+ db $1b, $02, $00, $05, $0c, $08, $2c, $04, $23, $0b, $32, $0d, $2b, $07, $1f, $04, $3b, $0d, $09, $07, $09, $07, $00, $05, $26, $05, $00, $05, $3f, $03, $22, $07, $d1, $00, $32, $0d
diff --git a/data/evos_attacks.asm b/data/evos_attacks.asm
index a85b5b306..0a0bba542 100644
--- a/data/evos_attacks.asm
+++ b/data/evos_attacks.asm
@@ -10,3389 +10,3389 @@ INCLUDE "data/evos_attacks_pointers.asm"
EvosAttacks::
BulbasaurEvosAttacks:
- db EVOLVE_LEVEL,16,IVYSAUR
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 EVOLVE_LEVEL, 7, METAPOD
db 0 ; no more evolutions
- db 1,TACKLE
- db 1,STRING_SHOT
+ db 1, TACKLE
+ db 1, STRING_SHOT
db 0 ; no more level-up moves
MetapodEvosAttacks:
- db EVOLVE_LEVEL,10,BUTTERFREE
+ db EVOLVE_LEVEL, 10, BUTTERFREE
db 0 ; no more evolutions
- db 1,HARDEN
- db 7,HARDEN
+ 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 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 EVOLVE_LEVEL, 7, KAKUNA
db 0 ; no more evolutions
- db 1,POISON_STING
- db 1,STRING_SHOT
+ db 1, POISON_STING
+ db 1, STRING_SHOT
db 0 ; no more level-up moves
KakunaEvosAttacks:
- db EVOLVE_LEVEL,10,BEEDRILL
+ db EVOLVE_LEVEL, 10, BEEDRILL
db 0 ; no more evolutions
- db 1,HARDEN
- db 7,HARDEN
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 EVOLVE_LEVEL, 16, KADABRA
db 0 ; no more evolutions
- db 1,TELEPORT
+ db 1, TELEPORT
db 0 ; no more level-up moves
KadabraEvosAttacks:
- db EVOLVE_TRADE,$ff,ALAKAZAM
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
+ 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
+ db 35, TRI_ATTACK
else
- db 35,SWIFT
+ db 35, SWIFT
endc
- db 43,SCREECH
- db 53,ZAP_CANNON
+ 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 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 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 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 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 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 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 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 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 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 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 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 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
+ db 1, WITHDRAW
+ db 1, SUPERSONIC
+ db 1, AURORA_BEAM
+ db 1, PROTECT
if _CRYSTAL
- db 33,SPIKES
+ db 33, SPIKES
endc
- db 41,SPIKE_CANNON
+ db 41, SPIKE_CANNON
db 0 ; no more level-up moves
GastlyEvosAttacks:
- db EVOLVE_LEVEL,25,HAUNTER
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 EVOLVE_LEVEL, 20, GYARADOS
db 0 ; no more evolutions
- db 1,SPLASH
- db 15,TACKLE
- db 30,FLAIL
+ 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 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 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 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
+ 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
+ db 36, BATON_PASS
else
- db 36,FOCUS_ENERGY
+ db 36, FOCUS_ENERGY
endc
- db 42,TAKE_DOWN
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
+ 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
+ db 45, AGILITY
else
- db 45,SCREECH
+ db 45, SCREECH
endc
- db 53,PSYCHIC_M
+ 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
+ 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
+ db 53, AGILITY
else
- db 53,SCREECH
+ db 53, SCREECH
endc
- db 63,PSYCHIC_M
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 EVOLVE_LEVEL, 18, SKIPLOOM
db 0 ; no more evolutions
- db 1,SPLASH
+ db 1, SPLASH
if _CRYSTAL
- db 5,SYNTHESIS
+ db 5, SYNTHESIS
else
- db 1,SYNTHESIS
+ 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 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 EVOLVE_LEVEL, 27, JUMPLUFF
db 0 ; no more evolutions
- db 1,SPLASH
- db 1,SYNTHESIS
- db 1,TAIL_WHIP
- db 1,TACKLE
+ db 1, SPLASH
+ db 1, SYNTHESIS
+ db 1, TAIL_WHIP
+ db 1, TACKLE
if _CRYSTAL
- db 5,SYNTHESIS
+ 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 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
+ db 1, SPLASH
+ db 1, SYNTHESIS
+ db 1, TAIL_WHIP
+ db 1, TACKLE
if _CRYSTAL
- db 5,SYNTHESIS
+ 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 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 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 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 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 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
+ 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
+ db 37, WING_ATTACK
else
- db 37,SWIFT
+ db 37, SWIFT
endc
- db 43,SCREECH
+ db 43, SCREECH
db 0 ; no more level-up moves
WooperEvosAttacks:
- db EVOLVE_LEVEL,20,QUAGSIRE
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
+ 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 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 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 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 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
+ 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
+ db 65, METAL_CLAW
endc
db 0 ; no more level-up moves
TeddiursaEvosAttacks:
- db EVOLVE_LEVEL,30,URSARING
+ 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 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 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 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 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 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
+ 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
+ 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
+ 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
+ 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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
+ db 1, BITE
+ db 1, LEER
if _CRYSTAL
- db 11,BUBBLEBEAM
- db 21,RAIN_DANCE
- db 31,GUST
- db 41,AURORA_BEAM
+ 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
+ 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 51, MIST
+ db 61, MIRROR_COAT
+ db 71, HYDRO_PUMP
db 0 ; no more level-up moves
LarvitarEvosAttacks:
- db EVOLVE_LEVEL,30,PUPITAR
+ 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 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 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 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 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 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 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/odd_eggs.asm b/data/odd_eggs.asm
index 96a6717b9..1e4525d39 100644
--- a/data/odd_eggs.asm
+++ b/data/odd_eggs.asm
@@ -44,7 +44,7 @@ GiveOddEgg: ; 1fb4b6
call AddNTimes
ld de, OddEggSpecies
- ld bc, party_struct_length + 2 * PKMN_NAME_LENGTH
+ ld bc, PARTYMON_STRUCT_LENGTH + 2 * PKMN_NAME_LENGTH
call CopyBytes
ld a, EGG_TICKET
diff --git a/engine/battle_start.asm b/engine/battle_start.asm
index 4b12bb632..0897b8a4a 100644
--- a/engine/battle_start.asm
+++ b/engine/battle_start.asm
@@ -26,7 +26,7 @@ Predef_StartBattle: ; 8c20f
ld a, $5
ld [rSVBK], a
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld bc, $0040
xor a
call ByteFill
@@ -254,7 +254,7 @@ StartTrainerBattle_SetUpBGMap: ; 8c3a1 (23:43a1)
call StartTrainerBattle_NextScene
xor a
ld [wcf64], a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
@@ -309,10 +309,10 @@ StartTrainerBattle_Flash: ; 8c3ab (23:43ab)
StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8)
callba Function5602
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
call StartTrainerBattle_NextScene
ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
xor a
ld [hLCDStatCustom + 1], a
ld a, $90
@@ -365,7 +365,7 @@ StartTrainerBattle_SineWave: ; 8c408 (23:4408)
StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d)
callba Function5602
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
call StartTrainerBattle_NextScene
xor a
ld [wcf64], a
@@ -386,7 +386,7 @@ ENDM
StartTrainerBattle_SpinToBlack: ; 8c44f (23:444f)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, [wcf64]
ld e, a
ld d, 0
@@ -400,7 +400,7 @@ endr
ld [wcf65], a
call .load
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call DelayFrame
call DelayFrame
ld hl, wcf64
@@ -409,12 +409,12 @@ endr
.end
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call DelayFrame
call DelayFrame
call DelayFrame
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $20
ld [wJumptableIndex], a
ret
@@ -508,12 +508,12 @@ endr
StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578)
callba Function5602
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
call StartTrainerBattle_NextScene
ld a, $10
ld [wcf64], a
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f)
@@ -533,12 +533,12 @@ StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f)
.done
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call DelayFrame
call DelayFrame
call DelayFrame
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $20
ld [wJumptableIndex], a
ret
@@ -580,7 +580,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
jp z, .nextscene
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
hlcoord 0, 0, AttrMap
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
inc b
@@ -636,11 +636,11 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
dec b
jr nz, .loop2
- ld a, [hCGB] ; $ff00+$e6
+ ld a, [hCGB]
and a
jr nz, .cgb
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call DelayFrame
call DelayFrame
jr .nextscene
@@ -653,13 +653,13 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
jr nz, .daytime
ld hl, .nightpals
.daytime
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5 ; WRAM5 = palettes
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
call .copypals
push hl
- ld de, Unkn1Pals + 8 * 7
+ ld de, wMapPals + 8 * 7
ld bc, $8
call CopyBytes
pop hl
@@ -667,9 +667,9 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
ld bc, $8
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
call DelayFrame
call Function8cf4f
@@ -678,7 +678,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc)
ret
.copypals: ; 8c677 (23:4677)
- ld de, Unkn1Pals + 8 * 7
+ ld de, wMapPals + 8 * 7
call .copy
ld de, BGPals + 8 * 7
call .copy
@@ -829,7 +829,7 @@ StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768)
inc de
ld h, a
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call .Copy
call WaitBGMap
jr .loop
diff --git a/engine/billspc.asm b/engine/billspc.asm
new file mode 100755
index 000000000..03a7592ca
--- /dev/null
+++ b/engine/billspc.asm
@@ -0,0 +1,2667 @@
+_DepositPKMN: ; e2391 (38:6391)
+ 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
+ call Functione2963
+ xor a
+ ld [wcb2e], a
+ call DelayFrame
+.asm_e23b4
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_e23c6
+ call Functione23d5
+ call DelayFrame
+ jr .asm_e23b4
+.asm_e23c6
+ call ClearSprites
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ ret
+
+Functione23d5: ; e23d5 (38:63d5)
+ ld a, [wJumptableIndex]
+ ld hl, Jumptable_e23df
+ call Functione33df
+ jp [hl]
+
+Jumptable_e23df: ; e23df (38:63df)
+ dw Functione23e9
+ dw Functione241a
+ dw Functione245d
+ dw Functione247d
+ dw Functione2992
+
+
+Functione23e9: ; e23e9 (38:63e9)
+ xor a
+ ld [hBGMapMode], a
+ call ClearSprites
+ call Functione2d30
+ call Functione2a8e
+ ld de, PCString_ChooseaPKMN
+ call Functione2a6e
+ ld a, $5
+ ld [wcb2d], a
+ call Functione2c2c
+ call PCMonInfo
+ ld a, $ff
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ call WaitBGMap
+ call Functione2e01
+ call Functione298d
+ ret
+
+Functione241a: ; e241a (38:641a)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_e2457
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_e2443
+ call Functione29b5
+ and a
+ ret z
+ call Functione2e01
+ xor a
+ ld [hBGMapMode], a
+ call Functione2c2c
+ call PCMonInfo
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ ret
+.asm_e2443
+ call Functione2def
+ and a
+ ret z
+ cp $ff
+ jr z, .asm_e2457
+ ld a, $2
+ ld [wJumptableIndex], a
+ ret
+; e2452 (38:6452)
+
+.asm_e2452
+ ld hl, wJumptableIndex
+ dec [hl]
+ ret
+
+.asm_e2457
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+
+Functione245d: ; e245d (38:645d)
+ xor a
+ ld [hBGMapMode], a
+ call ClearSprites
+ call Functione2def
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ ld de, PCString_WhatsUp
+ call Functione2a6e
+ ld a, $1
+ ld [MenuSelection2], a
+ call Functione298d
+ ret
+
+Functione247d: ; e247d (38:647d)
+ ld hl, BillsPCDepositMenuDataHeader
+ call CopyMenuDataHeader
+ ld a, [MenuSelection2]
+ call Function1d4b
+ call InterpretMenu2
+ jp c, BillsPCDepositFuncCancel
+ ld a, [MenuSelection2]
+ dec a
+ and $3
+ ld e, a
+ ld d, 0
+ ld hl, BillsPCDepositJumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+BillsPCDepositJumptable: ; e24a1 (38:64a1)
+ dw BillsPCDepositFuncDeposit ; Deposit Pokemon
+ dw BillsPCDepositFuncStats ; Pokemon Stats
+ dw BillsPCDepositFuncRelease ; Release Pokemon
+ dw BillsPCDepositFuncCancel ; Cancel
+
+
+BillsPCDepositFuncDeposit: ; e24a9 (38:64a9)
+ call Functione2f18
+ jp c, BillsPCDepositFuncCancel
+ call Functione307c
+ jr c, .no_overflow_31
+ ld a, $0
+ ld [wJumptableIndex], a
+ xor a
+ ld [wcb2b], a
+ ld [wcb2a], a
+ ret
+.no_overflow_31
+ ld de, PCString_WhatsUp
+ call Functione2a6e
+ ret
+
+BillsPCDepositFuncStats: ; e24c8 (38:64c8)
+ call LoadStandardMenuDataHeader
+ call Functione2f7e
+ call ExitMenu
+ call PCMonInfo
+ call Functione2def
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ ret
+
+BillsPCDepositFuncRelease: ; e24e0 (38:64e0)
+ call Functione2f18
+ jr c, BillsPCDepositFuncCancel
+ call Functione2f5f
+ jr c, BillsPCDepositFuncCancel
+ ld a, [MenuSelection2]
+ push af
+ ld de, PCString_ReleasePKMN
+ call Functione2a6e
+ call LoadStandardMenuDataHeader
+ lb bc, 14, 11
+ call PlaceYesNoBox
+ ld a, [MenuSelection2]
+ dec a
+ call ExitMenu
+ and a
+ jr nz, .asm_e252c
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba Functione039
+ call Functione3180
+ ld a, $0
+ ld [wJumptableIndex], a
+ xor a
+ ld [wcb2b], a
+ ld [wcb2a], a
+ pop af
+ ret
+.asm_e252c
+ ld de, PCString_WhatsUp
+ call Functione2a6e
+ pop af
+ ld [MenuSelection2], a
+ ret
+
+BillsPCDepositFuncCancel: ; e2537 (38:6537)
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; e253d (38:653d)
+
+BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d)
+ db $40 ; flags
+ db 04, 09 ; start coords
+ db 13, 19 ; end coords
+ dw BillsPCDepositMenuData
+ db 1 ; default option
+; 0xe2545
+
+BillsPCDepositMenuData: ; 0xe2545 (38:6545)
+ db $80 ; flags
+ db 4 ; items
+ db "DEPOSIT@"
+ db "STATS@"
+ db "RELEASE@"
+ db "CANCEL@"
+; 0xe2564 (38:6564)
+
+Functione2564: ; e2564
+ hlcoord 0, 0
+ ld b, $4
+ ld c, $8
+ call ClearBox
+ hlcoord 0, 4
+ ld b, $a
+ ld c, $9
+ call ClearBox
+ hlcoord 0, 14
+ ld b, $2
+ ld c, $8
+ call ClearBox
+ ret
+; e2583
+
+_WithdrawPKMN: ; e2583 (38:6583)
+ 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
+ call Functione2963
+ ld a, $f
+ ld [wcb2e], a
+ call DelayFrame
+.asm_e25a7
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .no_overflow_49
+ call Functione25c8
+ call DelayFrame
+ jr .asm_e25a7
+.no_overflow_49
+ call ClearSprites
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ ret
+
+Functione25c8: ; e25c8 (38:65c8)
+ ld a, [wJumptableIndex]
+ ld hl, .jumptable
+ call Functione33df
+ jp [hl]
+
+.jumptable: ; e25d2 (38:65d2)
+ dw Functione25dc
+ dw Functione2612
+ dw Functione2655
+ dw BillsPC_Withdraw
+ dw Functione2992
+
+
+Functione25dc: ; e25dc (38:65dc)
+ ld a, $f
+ ld [wcb2e], a
+ xor a
+ ld [hBGMapMode], a
+ call ClearSprites
+ call Functione2d30
+ call Functione2a8e
+ ld de, PCString_ChooseaPKMN
+ call Functione2a6e
+ ld a, $5
+ ld [wcb2d], a
+ call Functione2c2c
+ call PCMonInfo
+ ld a, $ff
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ call WaitBGMap
+ call Functione2e01
+ call Functione298d
+ ret
+
+Functione2612: ; e2612 (38:6612)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_e264f
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_e263b
+ call Functione29b5
+ and a
+ ret z
+ call Functione2e01
+ xor a
+ ld [hBGMapMode], a
+ call Functione2c2c
+ call PCMonInfo
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ ret
+.asm_e263b
+ call Functione2def
+ and a
+ ret z
+ cp $ff
+ jr z, .asm_e264f
+ ld a, $2
+ ld [wJumptableIndex], a
+ ret
+; e264a (38:664a)
+
+.asm_e264a
+ ld hl, wJumptableIndex
+ dec [hl]
+ ret
+
+.asm_e264f
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; e2655
+
+Functione2655: ; e2655 (38:6655)
+ xor a
+ ld [hBGMapMode], a
+ call ClearSprites
+ call Functione2def
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ ld de, PCString_WhatsUp
+ call Functione2a6e
+ ld a, $1
+ ld [MenuSelection2], a
+ call Functione298d
+ ret
+
+BillsPC_Withdraw: ; e2675 (38:6675)
+ ld hl, .MenuDataHeader
+ call CopyMenuDataHeader
+ ld a, [MenuSelection2]
+ call Function1d4b
+ call InterpretMenu2
+ jp c, .cancel
+ ld a, [MenuSelection2]
+ dec a
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.jumptable: ; e2699 (38:6699) #mark
+ dw .withdraw ; Withdraw
+ dw .stats ; Stats
+ dw .release ; Release
+ dw .cancel ; Cancel
+
+
+.withdraw: ; e26a1 (38:66a1)
+ call Functione2f18
+ jp c, .cancel
+ call TryWithdrawPokemon
+ jr c, .FailedWithdraw
+ ld a, $0
+ ld [wJumptableIndex], a
+ xor a
+ ld [wcb2b], a
+ ld [wcb2a], a
+ ret
+.FailedWithdraw
+ ld de, PCString_WhatsUp
+ call Functione2a6e
+ ret
+
+.stats: ; e26c0 (38:66c0)
+ call LoadStandardMenuDataHeader
+ call Functione2f7e
+ call ExitMenu
+ call PCMonInfo
+ call Functione2def
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ ret
+
+.release: ; e26d8 (38:66d8)
+ ld a, [MenuSelection2]
+ push af
+ call Functione2f5f
+ jr c, .FailedRelease
+ ld de, PCString_ReleasePKMN
+ call Functione2a6e
+ call LoadStandardMenuDataHeader
+ lb bc, 14, 11
+ call PlaceYesNoBox
+ ld a, [MenuSelection2]
+ dec a
+ call ExitMenu
+ and a
+ jr nz, .FailedRelease
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ ld a, PC_DEPOSIT
+ ld [wPokemonWithdrawDepositParameter], a
+ callba Functione039
+ call Functione3180
+ ld a, $0
+ ld [wJumptableIndex], a
+ xor a
+ ld [wcb2b], a
+ ld [wcb2a], a
+ pop af
+ ret
+.FailedRelease
+ ld de, PCString_WhatsUp
+ call Functione2a6e
+ pop af
+ ld [MenuSelection2], a
+ ret
+
+.cancel: ; e272b (38:672b)
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; e2731 (38:6731)
+
+.MenuDataHeader: ; 0xe2731
+ db $40 ; flags
+ db 04, 09 ; start coords
+ db 13, 19 ; end coords
+ dw .MenuData
+ db 1 ; default option
+; 0xe2739
+
+.MenuData: ; 0xe2739
+ db $80 ; flags
+ db 4 ; items
+ db "WITHDRAW@"
+ db "STATS@"
+ db "RELEASE@"
+ db "CANCEL@"
+; 0xe2759
+
+_MovePKMNWithoutMail: ; e2759
+ 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
+ call Functione2963
+ ld a, [wCurBox]
+ and $f
+ inc a
+ ld [wcb2e], a
+ call DelayFrame
+.asm_e2781
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_e2793
+ call Functione27a2
+ call DelayFrame
+ jr .asm_e2781
+
+.asm_e2793
+ call ClearSprites
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [Options], a
+ ret
+; e27a2
+
+Functione27a2: ; e27a2
+ ld a, [wJumptableIndex]
+ ld hl, Jumptable_e27ac
+ call Functione33df
+ jp [hl]
+; e27ac
+
+Jumptable_e27ac: ; e27ac
+ dw Functione27ba
+ dw Functione27eb
+ dw Functione283d
+ dw Functione285d
+ dw Functione28df
+ dw Functione2903
+ dw Functione2992
+; e27ba
+
+Functione27ba: ; e27ba
+ xor a
+ ld [hBGMapMode], a
+ call ClearSprites
+ call Functione2d30
+ ld de, PCString_ChooseaPKMN
+ call Functione2a6e
+ ld a, $5
+ ld [wcb2d], a
+ call Functione2c2c
+ call Functione2a80
+ call PCMonInfo
+ ld a, $ff
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ call WaitBGMap
+ call Functione2e01
+ call Functione298d
+ ret
+; e27eb
+
+Functione27eb: ; e27eb
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_e2837
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_e2823
+ call Functione29d0
+ jr c, .asm_e2816
+ and a
+ ret z
+ call Functione2e01
+ xor a
+ ld [hBGMapMode], a
+ call Functione2c2c
+ call PCMonInfo
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ ret
+
+.asm_e2816
+ xor a
+ ld [wcb2b], a
+ ld [wcb2a], a
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+
+.asm_e2823
+ call Functione2def
+ and a
+ ret z
+ cp $ff
+ jr z, .asm_e2837
+ ld a, $2
+ ld [wJumptableIndex], a
+ ret
+
+ ld hl, wJumptableIndex
+ dec [hl]
+ ret
+
+.asm_e2837
+ ld a, $6
+ ld [wJumptableIndex], a
+ ret
+; e283d
+
+Functione283d: ; e283d
+ xor a
+ ld [hBGMapMode], a
+ call ClearSprites
+ call Functione2def
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ ld de, PCString_WhatsUp
+ call Functione2a6e
+ ld a, $1
+ ld [MenuSelection2], a
+ call Functione298d
+ ret
+; e285d
+
+Functione285d: ; e285d
+ ld hl, MenuDataHeader_0xe28c3
+ call CopyMenuDataHeader
+ ld a, [MenuSelection2]
+ call Function1d4b
+ call InterpretMenu2
+ jp c, Functione28bd
+ ld a, [MenuSelection2]
+ dec a
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_e2881
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e2881
+
+Jumptable_e2881: ; e2881
+ dw Functione2887
+ dw Functione28a5
+ dw Functione28bd
+; e2887
+
+Functione2887: ; e2887
+ call Functione2f18
+ jp c, Functione28bd
+ ld a, [wcb2a]
+ ld [wcb2f], a
+ ld a, [wcb2b]
+ ld [wcb30], a
+ ld a, [wcb2e]
+ ld [wcb31], a
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; e28a5
+
+Functione28a5: ; e28a5
+ call LoadStandardMenuDataHeader
+ call Functione2f7e
+ call ExitMenu
+ call PCMonInfo
+ call Functione2def
+ ld [CurPartySpecies], a
+ ld a, $17
+ call Functione33d0
+ ret
+; e28bd
+
+Functione28bd: ; e28bd
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; e28c3
+
+MenuDataHeader_0xe28c3: ; 0xe28c3
+ db $40 ; flags
+ db 04, 09 ; start coords
+ db 13, 19 ; end coords
+ dw MenuData2_0xe28cb
+ db 1 ; default option
+; 0xe28cb
+
+MenuData2_0xe28cb: ; 0xe28cb
+ db $80 ; flags
+ db 3 ; items
+ db "MOVE@"
+ db "STATS@"
+ db "CANCEL@"
+; 0xe28df
+
+Functione28df: ; e28df
+ xor a
+ ld [hBGMapMode], a
+ call Functione2d30
+ ld de, PCString_MoveToWhere
+ call Functione2a6e
+ ld a, $5
+ ld [wcb2d], a
+ call Functione2c2c
+ call Functione2a80
+ call ClearSprites
+ call Functione2e8c
+ call WaitBGMap
+ call Functione298d
+ ret
+; e2903
+
+Functione2903: ; e2903
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_e294b
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_e2938
+ call Functione29f4
+ jr c, .asm_e292b
+ and a
+ ret z
+ call Functione2e8c
+ xor a
+ ld [hBGMapMode], a
+ call Functione2c2c
+ ld a, $1
+ ld [hBGMapMode], a
+ call DelayFrame
+ call DelayFrame
+ ret
+
+.asm_e292b
+ xor a
+ ld [wcb2b], a
+ ld [wcb2a], a
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+
+.asm_e2938
+ call Functione2ee5
+ jr c, .asm_e2946
+ call Functione31e7
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+
+.asm_e2946
+ ld hl, wJumptableIndex
+ dec [hl]
+ ret
+
+.asm_e294b
+ ld a, [wcb2f]
+ ld [wcb2a], a
+ ld a, [wcb30]
+ ld [wcb2b], a
+ ld a, [wcb31]
+ ld [wcb2e], a
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+; e2963
+
+Functione2963: ; e2963 (38:6963)
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call Functione33e8
+ ld hl, OverworldMap
+ ld bc, $338
+ xor a
+ call ByteFill
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wcb2b], a
+ ld [wcb2a], a
+ ret
+
+Functione298d: ; e298d (38:698d)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Functione2992: ; e2992 (38:6992)
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Functione2998: ; e2998 (38:6998)
+ ld a, [wcb2d]
+ ld d, a
+ ld a, [wcb2c]
+ and a
+ jr z, .asm_e29b2
+ dec a
+ cp $1
+ jr z, .asm_e29b2
+ ld e, a
+ ld a, [hl]
+ and D_UP
+ jr nz, Functione2a18
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Functione2a2c
+.asm_e29b2
+ jp Functione2a65
+
+Functione29b5: ; e29b5 (38:69b5)
+ ld hl, hJoyLast
+ ld a, [wcb2d]
+ ld d, a
+ ld a, [wcb2c]
+ ld e, a
+ and a
+ jr z, .asm_e29cd
+ ld a, [hl]
+ and D_UP
+ jr nz, Functione2a18
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Functione2a2c
+.asm_e29cd
+ jp Functione2a65
+; e29d0 (38:69d0)
+
+Functione29d0: ; e29d0
+ ld hl, hJoyLast
+ ld a, [wcb2d]
+ ld d, a
+ ld a, [wcb2c]
+ ld e, a
+ and a
+ jr z, .asm_e29e8
+ ld a, [hl]
+ and D_UP
+ jr nz, Functione2a18
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Functione2a2c
+
+.asm_e29e8
+ ld a, [hl]
+ and D_LEFT
+ jr nz, Functione2a48
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, Functione2a56
+ jr Functione2a65
+
+Functione29f4: ; e29f4
+ ld hl, hJoyLast
+ ld a, [wcb2d]
+ ld d, a
+ ld a, [wcb2c]
+ ld e, a
+ and a
+ jr z, .asm_e2a0c
+
+ ld a, [hl]
+ and D_UP
+ jr nz, Functione2a18
+ ld a, [hl]
+ and D_DOWN
+ jr nz, Functione2a2c
+
+.asm_e2a0c
+ ld a, [hl]
+ and D_LEFT
+ jr nz, Functione2a48
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, Functione2a56
+ jr Functione2a65
+
+Functione2a18: ; e2a18 (38:6a18)
+ ld hl, wcb2b
+ ld a, [hl]
+ and a
+ jr z, .asm_e2a22
+ dec [hl]
+ jr Functione2a68
+
+.asm_e2a22
+ ld hl, wcb2a
+ ld a, [hl]
+ and a
+ jr z, Functione2a65
+ dec [hl]
+ jr Functione2a68
+
+Functione2a2c: ; e2a2c (38:6a2c)
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ inc a
+ cp e
+ jr nc, Functione2a65
+
+ ld hl, wcb2b
+ ld a, [hl]
+ inc a
+ cp d
+ jr nc, .asm_e2a42
+ inc [hl]
+ jr Functione2a68
+
+.asm_e2a42
+ ld hl, wcb2a
+ inc [hl]
+ jr Functione2a68
+; e2a48 (38:6a48)
+
+Functione2a48: ; e2a48
+ ld hl, wcb2e
+ ld a, [hl]
+ and a
+ jr z, .asm_e2a52
+ dec [hl]
+ jr Functione2a6c
+
+.asm_e2a52
+ ld [hl], $e
+ jr Functione2a6c
+
+Functione2a56: ; e2a56
+ ld hl, wcb2e
+ ld a, [hl]
+ cp $e
+ jr z, .asm_e2a61
+ inc [hl]
+ jr Functione2a6c
+
+.asm_e2a61
+ ld [hl], $0
+ jr Functione2a6c
+
+Functione2a65: ; e2a65 (38:6a65)
+ xor a
+ and a
+ ret
+
+Functione2a68: ; e2a68 (38:6a68)
+ ld a, $1
+ and a
+ ret
+; e2a6c (38:6a6c)
+
+Functione2a6c: ; e2a6c
+ scf
+ ret
+; e2a6e
+
+Functione2a6e: ; e2a6e (38:6a6e)
+ push de
+ hlcoord 0, 15
+ lb bc, 1, 18
+ call TextBox
+ pop de
+ hlcoord 1, 16
+ call PlaceString
+ ret
+; e2a80 (38:6a80)
+
+Functione2a80: ; e2a80
+ call Functione2a8e
+ hlcoord 8, 1
+ ld [hl], $5f
+ hlcoord 19, 1
+ ld [hl], $5e
+ ret
+; e2a8e
+
+Functione2a8e: ; e2a8e (38:6a8e)
+ hlcoord 8, 0
+ lb bc, 1, 10
+ call TextBox
+
+ ld a, [wcb2e]
+ and a
+ jr z, .party
+
+ cp NUM_BOXES + 1
+ jr nz, .gotbox
+
+ ld a, [wCurBox]
+ inc a
+.gotbox
+ dec a
+ ld hl, wBoxNames
+ ld bc, BOX_NAME_LENGTH
+ call AddNTimes
+ ld e, l
+ ld d, h
+ jr .print
+
+.party
+ ld de, String_e2abd
+.print
+ hlcoord 10, 1
+ call PlaceString
+ ret
+; e2abd (38:6abd)
+
+String_e2abd:
+ db "PARTY <PK><MN>@"
+; e2ac6
+
+PCMonInfo: ; e2ac6 (38:6ac6)
+; Display a monster's pic and
+; attributes when highlighting
+; it in a PC menu.
+
+; Includes the neat cascading
+; effect when showing the pic.
+
+; Example: Species, level, gender,
+; whether it's holding an item.
+
+ hlcoord 0, 0
+ lb bc, 15, 8
+ call ClearBox
+
+ hlcoord 8, 14
+ lb bc, 1, 3
+ call ClearBox
+
+ call Functione2def
+ and a
+ ret z
+ cp $ff
+ ret z
+
+ ld [wd265], a
+ hlcoord 1, 4
+ xor a
+ ld b, 7
+.asm_e2ae9
+ ld c, 7
+ push af
+ push hl
+.asm_e2aed
+ ld [hli], a
+ add 7
+ dec c
+ jr nz, .asm_e2aed
+ pop hl
+ ld de, 20
+ add hl, de
+ pop af
+ inc a
+ dec b
+ jr nz, .asm_e2ae9
+
+ call Functione2b6d
+ ld a, [wd265]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ call GetBaseData
+ ld de, VTiles2 tile $00
+ predef GetFrontpic
+ xor a
+ ld [wcb32], a
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+
+ cp EGG
+ ret z
+
+ call GetBasePokemonName
+ hlcoord 1, 14
+ call PlaceString
+
+ hlcoord 1, 12
+ call PrintLevel
+
+ ld a, $3
+ ld [MonType], a
+ callba GetGender
+ jr c, .asm_e2b4f
+ ld a, "♂"
+ jr nz, .printgender
+ ld a, "♀"
+.printgender
+ hlcoord 5, 12
+ ld [hl], a
+.asm_e2b4f
+
+ ld a, [TempMonItem]
+ and a
+ ret z
+
+ ld d, a
+ callab ItemIsMail
+ jr c, .mail
+ ld a, $5d ; item icon
+ jr .printitem
+.mail
+ ld a, $1
+ ld [wcb32], a
+ ld a, $5c ; mail icon
+.printitem
+ hlcoord 7, 12
+ ld [hl], a
+ ret
+
+Functione2b6d: ; e2b6d (38:6b6d)
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld e, a
+ ld d, $0
+ ld hl, wc801
+rept 3
+ add hl, de
+endr
+ ld a, [hl]
+ and a
+ jr z, .asm_e2bc6
+ cp $f
+ jr z, .asm_e2bf5
+ ld b, a
+ call Functione3396
+ ld a, b
+ call GetSRAMBank
+ push hl
+ ld bc, $35
+ add hl, bc
+ ld bc, $20
+ ld a, e
+ call AddNTimes
+ ld a, [hl]
+ ld [TempMonLevel], a
+ pop hl
+ push hl
+ ld bc, $17
+ add hl, bc
+ ld bc, $20
+ ld a, e
+ call AddNTimes
+ ld a, [hl]
+ ld [TempMonItem], a
+ pop hl
+ ld bc, $2b
+ add hl, bc
+ ld bc, $20
+ ld a, e
+ call AddNTimes
+ ld de, TempMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ call CloseSRAM
+ ret
+.asm_e2bc6
+ ld hl, PartyMon1Level
+ ld bc, $30
+ ld a, e
+ call AddNTimes
+ ld a, [hl]
+ ld [TempMonLevel], a
+ ld hl, PartyMon1Item
+ ld bc, $30
+ ld a, e
+ call AddNTimes
+ ld a, [hl]
+ ld [TempMonItem], a
+ ld hl, PartyMon1DVs
+ ld bc, $30
+ ld a, e
+ call AddNTimes
+ ld de, TempMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ret
+
+.asm_e2bf5
+ ld a, BANK(sBox)
+ call GetSRAMBank
+ ld hl, sBoxMon1Level
+ ld bc, $20
+ ld a, e
+ call AddNTimes
+ ld a, [hl]
+ ld [TempMonLevel], a
+
+ ld hl, sBoxMon1Item
+ ld bc, $20
+ ld a, e
+ call AddNTimes
+ ld a, [hl]
+ ld [TempMonItem], a
+
+ ld hl, sBoxMon1DVs
+ ld bc, $20
+ ld a, e
+ call AddNTimes
+ ld de, TempMonDVs
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+
+ call CloseSRAM
+ ret
+
+Functione2c2c: ; e2c2c (38:6c2c)
+ hlcoord 8, 2
+ lb bc, 10, 10
+ call TextBox
+
+ hlcoord 8, 2
+ ld [hl], "└"
+ hlcoord 19, 2
+ ld [hl], "┘"
+
+ ld a, [wcb2a]
+ ld e, a
+ ld d, 0
+ ld hl, OverworldMap
+rept 3
+ add hl, de
+endr
+ ld e, l
+ ld d, h
+ hlcoord 9, 4
+ ld a, [wcb2d]
+.asm_e2c53
+ push af
+ push de
+ push hl
+ call Functione2c6e
+ pop hl
+ ld de, $28
+ add hl, de
+ pop de
+rept 3
+ inc de
+endr
+ pop af
+ dec a
+ jr nz, .asm_e2c53
+ ret
+; e2c67 (38:6c67)
+
+String_e2c67:
+ db "CANCEL@"
+; e2c6e
+
+Functione2c6e: ; e2c6e (38:6c6e)
+ ld a, [de]
+ and a
+ ret z
+ cp $ff
+ jr nz, .asm_e2c7c
+ ld de, String_e2c67
+ call PlaceString
+ ret
+.asm_e2c7c
+ inc de
+ ld a, [de]
+ ld b, a
+ inc de
+ ld a, [de]
+ ld e, a
+ ld a, b
+ and a
+ jr z, .asm_e2cc8
+ cp $f
+ jr z, .asm_e2cf1
+ push hl
+ call Functione3396
+ ld a, b
+ call GetSRAMBank
+ push hl
+ ld bc, $16
+ add hl, bc
+ ld bc, $20
+ ld a, e
+ call AddNTimes
+ ld a, [hl]
+ pop hl
+ and a
+ jr z, .asm_e2cc2
+ ld bc, $372
+ add hl, bc
+ ld bc, $b
+ ld a, e
+ call AddNTimes
+ ld de, StringBuffer1
+ ld bc, $b
+ call CopyBytes
+ call CloseSRAM
+ pop hl
+ ld de, StringBuffer1
+ call PlaceString
+ ret
+.asm_e2cc2
+ call CloseSRAM
+ pop hl
+ jr .asm_e2d23
+.asm_e2cc8
+ push hl
+ ld hl, PartySpecies
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .asm_e2cee
+ ld hl, PartyMonNicknames
+ ld bc, $b
+ ld a, e
+ call AddNTimes
+ ld de, StringBuffer1
+ ld bc, $b
+ call CopyBytes
+ pop hl
+ ld de, StringBuffer1
+ call PlaceString
+ ret
+.asm_e2cee
+ pop hl
+ jr .asm_e2d23
+.asm_e2cf1
+ push hl
+ ld a, BANK(sBox)
+ call GetSRAMBank
+ ld hl, sBoxSpecies
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr z, .asm_e2d1f
+ ld hl, sBoxMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ ld a, e
+ call AddNTimes
+ ld de, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ pop hl
+ ld de, StringBuffer1
+ call PlaceString
+ ret
+.asm_e2d1f
+ call CloseSRAM
+ pop hl
+.asm_e2d23
+ ld de, String_e2d2a
+ call PlaceString
+ ret
+; e2d2a (38:6d2a)
+
+String_e2d2a:
+ db "-----@"
+; e2d30
+
+Functione2d30: ; e2d30 (38:6d30)
+ xor a
+ ld hl, OverworldMap
+ ld bc, $5a
+ call ByteFill
+ ld de, OverworldMap
+ xor a
+ ld [wd003], a
+ ld [wd004], a
+ ld a, [wcb2e]
+ and a
+ jr z, .asm_e2d87
+ cp $f
+ jr z, .asm_e2db7
+ ld b, a
+ call Functione3396
+ ld a, b
+ call GetSRAMBank
+ inc hl
+.asm_e2d57
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_e2d79
+ and a
+ jr z, .asm_e2d79
+ ld [de], a
+ inc de
+ ld a, [wcb2e]
+ ld [de], a
+ inc de
+ ld a, [wd003]
+ ld [de], a
+ inc a
+ ld [wd003], a
+ inc de
+ inc hl
+ ld a, [wd004]
+ inc a
+ ld [wd004], a
+ jr .asm_e2d57
+.asm_e2d79
+ call CloseSRAM
+ ld a, $ff
+ ld [de], a
+ ld a, [wd004]
+ inc a
+ ld [wcb2c], a
+ ret
+.asm_e2d87
+ ld hl, PartySpecies
+.asm_e2d8a
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_e2dac
+ and a
+ jr z, .asm_e2dac
+ ld [de], a
+ inc de
+ ld a, [wcb2e]
+ ld [de], a
+ inc de
+ ld a, [wd003]
+ ld [de], a
+ inc a
+ ld [wd003], a
+ inc de
+ inc hl
+ ld a, [wd004]
+ inc a
+ ld [wd004], a
+ jr .asm_e2d8a
+.asm_e2dac
+ ld a, $ff
+ ld [de], a
+ ld a, [wd004]
+ inc a
+ ld [wcb2c], a
+ ret
+.asm_e2db7
+ ld a, BANK(sBox)
+ call GetSRAMBank
+ ld hl, sBoxSpecies
+.asm_e2dbf
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_e2de1
+ and a
+ jr z, .asm_e2de1
+ ld [de], a
+ inc de
+ ld a, [wcb2e]
+ ld [de], a
+ inc de
+ ld a, [wd003]
+ ld [de], a
+ inc a
+ ld [wd003], a
+ inc de
+ inc hl
+ ld a, [wd004]
+ inc a
+ ld [wd004], a
+ jr .asm_e2dbf
+.asm_e2de1
+ call CloseSRAM
+ ld a, $ff
+ ld [de], a
+ ld a, [wd004]
+ inc a
+ ld [wcb2c], a
+ ret
+
+Functione2def: ; e2def (38:6def)
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld e, a
+ ld d, $0
+ ld hl, OverworldMap
+rept 3
+ add hl, de
+endr
+ ld a, [hl]
+ ret
+
+Functione2e01: ; e2e01 (38:6e01)
+ ld a, [wcb2c]
+ and a
+ jr nz, .asm_e2e0b
+ call ClearSprites
+ ret
+.asm_e2e0b
+ ld hl, Unknown_e2e2b
+ ld de, Sprites
+.done1
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, [wcb2b]
+ and $7
+ swap a
+ 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
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .done1
+; e2e2b (38:6e2b)
+
+Unknown_e2e2b: ; e2e2b
+ db $26, $50, $00, $00
+ db $26, $58, $00, $00
+ db $26, $60, $00, $00
+ db $26, $68, $00, $00
+ db $26, $70, $00, $00
+ db $26, $78, $00, $00
+ db $26, $80, $00, $00
+ db $26, $88, $00, $00
+ db $26, $90, $00, $00
+ db $26, $97, $00, $00
+ db $39, $50, $00, $40
+ db $39, $58, $00, $40
+ db $39, $60, $00, $40
+ db $39, $68, $00, $40
+ db $39, $70, $00, $40
+ db $39, $78, $00, $40
+ db $39, $80, $00, $40
+ db $39, $88, $00, $40
+ db $39, $90, $00, $40
+ db $39, $97, $00, $40
+ db $2e, $4e, $01, $00
+ db $31, $4e, $01, $40
+ db $2e, $99, $01, $20
+ db $31, $99, $01, $60
+ db $ff
+; e2e8c
+
+Functione2e8c: ; e2e8c
+ ld hl, Unknown_e2eac
+ ld de, Sprites
+.asm_e2e92
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, [wcb2b]
+ and $7
+ swap a
+ 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
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .asm_e2e92
+; e2eac
+
+Unknown_e2eac: ; e2eac
+ db $27, $50, $06, $00
+ db $2b, $58, $00, $40
+ db $2b, $60, $00, $40
+ db $2b, $68, $00, $40
+ db $2b, $70, $00, $40
+ db $2b, $78, $00, $40
+ db $2b, $80, $00, $40
+ db $2b, $88, $00, $40
+ db $2b, $90, $00, $40
+ db $27, $98, $07, $00
+ db $ff
+; e2ed5
+
+Functione2ed5: ; e2ed5
+.asm_e2ed5
+ push bc
+ push hl
+.asm_e2ed7
+ ld [hli], a
+ dec c
+ jr nz, .asm_e2ed7
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_e2ed5
+ ret
+; e2ee5
+
+Functione2ee5: ; e2ee5
+ ld hl, wcb2e
+ ld a, [wcb31]
+ cp [hl]
+ jr z, .asm_e2f00
+ ld a, [wcb2e]
+ and a
+ jr z, .asm_e2ef8
+ ld e, $15
+ jr .asm_e2efa
+
+.asm_e2ef8
+ ld e, $7
+
+.asm_e2efa
+ ld a, [wcb2c]
+ cp e
+ jr nc, .asm_e2f02
+
+.asm_e2f00
+ and a
+ ret
+
+.asm_e2f02
+ ld de, PCString_TheresNoRoom
+ call Functione2a6e
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, 50
+ call DelayFrames
+ scf
+ ret
+; e2f18
+
+Functione2f18: ; e2f18 (38:6f18)
+ ld a, [wcb2e]
+ and a
+ jr nz, .Okay
+ ld a, [wcb2c]
+ cp $3
+ jr c, .ItsYourLastPokemon
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ callba CheckCurPartyMonFainted
+ jr c, .AllOthersFainted
+ ld a, [wcb32]
+ and a
+ jr nz, .HasMail
+.Okay
+ and a
+ ret
+.HasMail
+ ld de, PCString_RemoveMail
+ jr .NotOkay
+.AllOthersFainted
+ ld de, PCString_NoMoreUsablePKMN
+ jr .NotOkay
+.ItsYourLastPokemon
+ ld de, PCString_ItsYourLastPKMN
+.NotOkay
+ call Functione2a6e
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, 50
+ call DelayFrames
+ scf
+ ret
+
+Functione2f5f: ; e2f5f (38:6f5f)
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_e2f68
+ and a
+ ret
+.asm_e2f68
+ ld de, PCString_NoReleasingEGGS
+ call Functione2a6e
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, 50
+ call DelayFrames
+ scf
+ ret
+
+Functione2f7e: ; e2f7e (38:6f7e)
+ call LowVolume
+ call Functione2fd6
+ ld a, $3
+ ld [MonType], a
+ predef StatsScreenInit
+ call Functione33e8
+ call MaxVolume
+ ret
+
+Functione2f95: ; e2f95 (38:6f95)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and A_BUTTON | B_BUTTON | D_RIGHT | D_LEFT
+ ld [wcf73], a
+ jr nz, .pressed_a_b_right_left
+ ld a, [hl]
+ and D_DOWN | D_UP
+ ld [wcf73], a
+ jr nz, .pressed_down_up
+ jr .pressed_a_b_right_left
+
+.pressed_down_up
+ call Functione2998
+ and a
+ jr z, .asm_e2fd1
+ call Functione2def
+ ld [wd265], a
+ call Functione2b6d
+ ld a, [wd265]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ ld hl, TempMonDVs
+ predef GetUnownLetter
+ call GetBaseData
+ call Functione2fd6
+.pressed_a_b_right_left
+ ret
+
+.asm_e2fd1
+ xor a
+ ld [wcf73], a
+ ret
+
+Functione2fd6: ; e2fd6 (38:6fd6)
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ ld a, [wcb2e]
+ and a
+ jr z, .asm_e3020
+ cp $f
+ jr nz, .asm_e3048
+ ld a, BANK(sBox)
+ call GetSRAMBank
+ ld hl, sBoxSpecies
+ call Functione3357
+ ld hl, sBoxMonNicknames
+ call Functione3363
+ ld hl, sBoxMonOT
+ call Functione3376
+ ld hl, sBoxMons
+ ld bc, BOXMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, wd018_Mon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ callba Function5088b
+ ret
+
+.asm_e3020
+ ld hl, PartySpecies
+ call Functione3357
+ ld hl, PartyMonNicknames
+ call Functione3363
+ ld hl, PartyMonOT
+ call Functione3376
+ ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, wd018_Mon
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ret
+
+.asm_e3048
+ ld b, a
+ call Functione3396
+ ld a, b
+ call GetSRAMBank
+ push hl
+ inc hl
+ call Functione3357
+ pop hl
+ push hl
+ ld bc, $372
+ add hl, bc
+ call Functione3363
+ pop hl
+ push hl
+ ld bc, $296
+ add hl, bc
+ call Functione3376
+ pop hl
+ ld bc, $16
+ add hl, bc
+ ld bc, $20
+ call Functione3389
+ call CloseSRAM
+ callba Function5088b
+ ret
+
+Functione307c: ; e307c (38:707c)
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ ld hl, PartyMonNicknames
+ ld a, [CurPartyMon]
+ call GetNick
+ ld a, PC_DEPOSIT
+ ld [wPokemonWithdrawDepositParameter], a
+ predef SentGetPkmnIntoFromBox
+ jr c, .asm_boxisfull
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba Functione039
+ ld a, [CurPartySpecies]
+ call PlayCry
+ hlcoord 0, 0
+ lb bc, 15, 8
+ call ClearBox
+ hlcoord 8, 14
+ lb bc, 1, 3
+ call ClearBox
+ hlcoord 0, 15
+ lb bc, 1, 18
+ call TextBox
+ call WaitBGMap
+ hlcoord 1, 16
+ ld de, PCString_Stored
+ call PlaceString
+ ld l, c
+ ld h, b
+ ld de, StringBuffer1
+ call PlaceString
+ ld a, "!"
+ ld [bc], a
+ ld c, 50
+ call DelayFrames
+ and a
+ ret
+
+.asm_boxisfull
+ ld de, PCString_BoxFull
+ call Functione2a6e
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, 50
+ call DelayFrames
+ scf
+ ret
+
+TryWithdrawPokemon: ; e30fa (38:70fa)
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ ld a, BANK(sBoxMonNicknames)
+ call GetSRAMBank
+ ld a, [CurPartyMon]
+ ld hl, sBoxMonNicknames
+ call GetNick
+ call CloseSRAM
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ predef SentGetPkmnIntoFromBox
+ jr c, .PartyFull
+ ld a, PC_DEPOSIT
+ ld [wPokemonWithdrawDepositParameter], a
+ callba Functione039
+ ld a, [CurPartySpecies]
+ call PlayCry
+ hlcoord 0, 0
+ lb bc, 15, 8
+ call ClearBox
+ hlcoord 8, 14
+ lb bc, 1, 3
+ call ClearBox
+ hlcoord 0, 15
+ lb bc, 1, 18
+ call TextBox
+ call WaitBGMap
+ hlcoord 1, 16
+ ld de, PCString_Got
+ call PlaceString
+ ld l, c
+ ld h, b
+ ld de, StringBuffer1
+ call PlaceString
+ ld a, $e7
+ ld [bc], a
+ ld c, 50
+ call DelayFrames
+ and a
+ ret
+
+.PartyFull
+ ld de, PCString_PartyFull
+ call Functione2a6e
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, 50
+ call DelayFrames
+ scf
+ ret
+
+
+Functione3180: ; e3180 (38:7180)
+ hlcoord 0, 0
+ lb bc, 15, 8
+ call ClearBox
+ hlcoord 8, 14
+ lb bc, 1, 3
+ call ClearBox
+ hlcoord 0, 15
+ lb bc, 1, 18
+ call TextBox
+
+ call WaitBGMap
+ ld a, [CurPartySpecies]
+ call GetCryIndex
+ jr c, .asm_e31ab
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+.asm_e31ab
+
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+ hlcoord 1, 16
+ ld de, PCString_ReleasedPKMN
+ call PlaceString
+ ld c, 80
+ call DelayFrames
+ hlcoord 0, 15
+ lb bc, 1, 18
+ call TextBox
+ hlcoord 1, 16
+ ld de, PCString_Bye
+ call PlaceString
+ ld l, c
+ ld h, b
+ inc hl
+ ld de, StringBuffer1
+ call PlaceString
+ ld l, c
+ ld h, b
+ ld [hl], $e7
+ ld c, 50
+ call DelayFrames
+ ret
+; e31e7 (38:71e7)
+
+Functione31e7: ; e31e7
+ push hl
+ push de
+ push bc
+ push af
+ hlcoord 0, 15
+ lb bc, 1, 18
+ call TextBox
+ hlcoord 1, 16
+ ld de, String_e3233
+ call PlaceString
+ ld c, 20
+ call DelayFrames
+ pop af
+ pop bc
+ pop de
+ pop hl
+ ld a, [wCurBox]
+ push af
+ ld bc, 0
+ ld a, [wcb31]
+ and a
+ jr nz, .asm_e3215
+ set 0, c
+
+.asm_e3215
+ ld a, [wcb2e]
+ and a
+ jr nz, .asm_e321d
+ set 1, c
+
+.asm_e321d
+ ld hl, Jumptable_e3245
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, Functione322a
+ push de
+ jp [hl]
+; e322a
+
+Functione322a: ; e322a
+ pop af
+ ld e, a
+ callba Function14ad5
+ ret
+; e3233
+
+String_e3233:
+ db "Saving… Leave ON!@"
+; e3245
+
+Jumptable_e3245: ; e3245
+ dw Functione324d
+ dw Functione3267
+ dw Functione327d
+ dw Functione3284
+; e324d
+
+Functione324d: ; e324d
+ ld hl, wcb31
+ ld a, [wcb2e]
+ cp [hl]
+ jr z, .asm_e325d
+ call Functione32b0
+ call Functione32fa
+ ret
+
+.asm_e325d
+ call Functione32b0
+ call Functione328e
+ call Functione32fa
+ ret
+; e3267
+
+Functione3267: ; e3267
+ call Functione3316
+ ld a, $1
+ ld [wc2cd], a
+ callba SaveGameData
+ xor a
+ ld [wc2cd], a
+ call Functione32fa
+ ret
+; e327d
+
+Functione327d: ; e327d
+ call Functione32b0
+ call Functione3346
+ ret
+; e3284
+
+Functione3284: ; e3284
+ call Functione3316
+ call Functione328e
+ call Functione3346
+ ret
+; e328e
+
+Functione328e: ; e328e
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld e, a
+ ld a, [wcb30]
+ ld hl, wcb2f
+ add [hl]
+ cp e
+ ret nc
+ ld hl, wcb2b
+ ld a, [hl]
+ and a
+ jr z, .asm_e32a8
+ dec [hl]
+ ret
+
+.asm_e32a8
+ ld hl, wcb2a
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+; e32b0
+
+Functione32b0: ; e32b0
+ ld a, [wcb31]
+ dec a
+ ld e, a
+ callba Function14ac2
+ ld a, [wcb30]
+ ld hl, wcb2f
+ add [hl]
+ ld [CurPartyMon], a
+ ld a, $1
+ call GetSRAMBank
+ ld hl, sBoxSpecies
+ call Functione3357
+ ld hl, sBoxMonNicknames
+ call Functione3363
+ ld hl, sBoxMonOT
+ call Functione3376
+ ld hl, sBoxMons
+ ld bc, BOXMON_STRUCT_LENGTH
+ call Functione3389
+ call CloseSRAM
+ callba Function5088b
+ ld a, PC_DEPOSIT
+ ld [wPokemonWithdrawDepositParameter], a
+ callba Functione039
+ ret
+; e32fa
+
+Functione32fa: ; e32fa
+ ld a, [wcb2e]
+ dec a
+ ld e, a
+ callba Function14ac2
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ callba Function51322
+ ret
+; e3316
+
+Functione3316: ; e3316
+ ld a, [wcb30]
+ ld hl, wcb2f
+ add [hl]
+ ld [CurPartyMon], a
+ ld hl, PartySpecies
+ call Functione3357
+ ld hl, PartyMonNicknames
+ call Functione3363
+ ld hl, PartyMonOT
+ call Functione3376
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call Functione3389
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callba Functione039
+ ret
+; e3346
+
+Functione3346: ; e3346
+ ld a, [wcb2b]
+ ld hl, wcb2a
+ add [hl]
+ ld [CurPartyMon], a
+ callba Function5138b
+ ret
+; e3357
+
+Functione3357: ; e3357 (38:7357)
+ ld a, [CurPartyMon]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ret
+
+Functione3363: ; e3363 (38:7363)
+ ld bc, $b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, wd002
+ ld bc, $b
+ call CopyBytes
+ ret
+
+Functione3376: ; e3376 (38:7376)
+ ld bc, $b
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, wd00d
+ ld bc, $b
+ call CopyBytes
+ ret
+
+Functione3389: ; e3389 (38:7389)
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld de, wd018
+ call CopyBytes
+ ret
+
+Functione3396: ; e3396 (38:7396)
+ dec b
+ ld c, b
+ ld b, 0
+ ld hl, Unknown_e33a6
+rept 3
+ add hl, bc
+endr
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+; e33a6 (38:73a6)
+
+Unknown_e33a6: ; e33a6
+ ; bank, address
+ 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
+; e33d0
+
+Functione33d0: ; e33d0 (38:73d0)
+ ld b, a
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $fc
+ call Functioncf8
+ ret
+
+Functione33df: ; e33df (38:73df)
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+Functione33e8: ; e33e8 (38:73e8)
+ call DisableLCD
+ ld hl, VTiles2 tile $00
+ ld bc, $310
+ xor a
+ call ByteFill
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ ld hl, PCMailGFX
+ ld de, VTiles2 tile $5c
+ ld bc, $40
+ call CopyBytes
+ ld hl, PCSelectLZ
+ ld de, VTiles0 tile $00
+ call Decompress
+ ld a, 6
+ call SkipMusic
+ call EnableLCD
+ ret
+; e3419 (38:7419)
+
+PCSelectLZ: INCBIN "gfx/pc.2bpp.lz"
+PCMailGFX: INCBIN "gfx/pc_mail.2bpp"
+; e34dd
+
+PCString_ChooseaPKMN: db "Choose a <PK><MN>.@"
+PCString_WhatsUp: db "What's up?@"
+PCString_ReleasePKMN: db "Release <PK><MN>?@"
+PCString_MoveToWhere: db "Move to where?@"
+PCString_ItsYourLastPKMN: db "It's your last <PK><MN>!@"
+PCString_TheresNoRoom: db "There's no room!@"
+PCString_NoMoreUsablePKMN: db "No more usable <PK><MN>!@"
+PCString_RemoveMail: db "Remove MAIL.@"
+PCString_ReleasedPKMN: db "Released <PK><MN>.@"
+PCString_Bye: db "Bye,@"
+PCString_Stored: db "Stored @"
+PCString_Got: db "Got @"
+PCString_Non: db "Non.@"
+PCString_BoxFull: db "The BOX is full.@"
+PCString_PartyFull: db "The party's full!@"
+PCString_NoReleasingEGGS: db "No releasing EGGS!@"
+; e35aa
+
+
+_ChangeBox: ; e35aa (38:75aa)
+ call LoadStandardMenuDataHeader
+ call Functione35e2
+.loop
+ xor a
+ ld [hBGMapMode], a
+ call Functione36cf
+ call Functione379c
+ ld hl, _ChangeBox_menudataheader
+ call CopyMenuDataHeader
+ xor a
+ ld [wd0e4], a
+ hlcoord 0, 4
+ lb bc, 8, 9
+ call TextBox
+ call HandleScrollingMenu
+ ld a, [wcf73]
+ cp $2
+ jr z, .done
+ call Functione37af
+ call Functione36f9
+ jr .loop
+.done
+ call WriteBackup
+ ret
+
+Functione35e2: ; e35e2 (38:75e2)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ret
+; e35f1 (38:75f1)
+
+_ChangeBox_menudataheader: ; 0xe35f1
+ db $40 ; flags
+ db 05, 01 ; start coords
+ db 12, 09 ; end coords
+ dw .menudata2
+ db 1 ; default option
+; 0xe35f9
+
+.menudata2: ; 0xe35f9
+ db $22 ; flags
+ db 4, 0
+ db 1
+ dba .boxes
+ dba .boxnames
+ dba NULL
+ dba Functione3632
+; e3609
+
+.boxes: ; e3609
+ db NUM_BOXES
+x = 1
+rept NUM_BOXES
+ db x
+x = x + 1
+endr
+ db -1
+; e3619
+
+.boxnames: ; e3619
+ push de
+ ld a, [MenuSelection]
+ dec a
+ call GetBoxName
+ pop hl
+ call PlaceString
+ ret
+; e3626
+
+GetBoxName: ; e3626 (38:7626)
+ ld bc, BOX_NAME_LENGTH
+ ld hl, wBoxNames
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ret
+; e3632 (38:7632)
+
+Functione3632: ; e3632
+ hlcoord 11, 7
+ lb bc, 5, 7
+ call TextBox
+ ld a, [MenuSelection]
+ cp -1
+ ret z
+ hlcoord 12, 9
+ ld de, String_e3663
+ call PlaceString
+ call GetBoxCount
+ ld [wd265], a
+ hlcoord 13, 11
+ ld de, wd265
+ lb bc, 1, 2
+ call PrintNum
+ ld de, String_e3668
+ call PlaceString
+ ret
+; e3663
+
+String_e3663: ; e3663
+ db "#MON@"
+; e3668
+
+String_e3668: ; e3668
+ ; db "/20@"
+ db "/"
+ db "0" + MONS_PER_BOX / 10 ; "2"
+ db "0" + MONS_PER_BOX % 10 ; "0"
+ db "@"
+; e366c
+
+GetBoxCount: ; e366c (38:766c)
+ ld a, [wCurBox]
+ ld c, a
+ ld a, [MenuSelection]
+ dec a
+ cp c
+ jr z, .activebox
+ ld c, a
+ ld b, 0
+ ld hl, .boxbanks
+rept 3
+ add hl, bc
+endr
+ ld a, [hli]
+ ld b, a
+ call GetSRAMBank
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ call CloseSRAM
+ ld c, a
+ ld a, [wSavedAtLeastOnce]
+ and a
+ jr z, .newfile
+ ld a, c
+ ret
+
+.newfile
+ xor a
+ ret
+
+.activebox
+ ld a, BANK(sBoxCount)
+ ld b, a
+ call GetSRAMBank
+ ld hl, sBoxCount
+ ld a, [hl]
+ call CloseSRAM
+ ret
+; e36a5 (38:76a5)
+
+.boxbanks: ; e36a5
+ 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
+; e36cf
+
+Functione36cf: ; e36cf (38:76cf)
+ hlcoord 0, 0
+ ld b, 2
+ ld c, 18
+ call TextBox
+ hlcoord 1, 2
+ ld de, String_e36f1
+ call PlaceString
+ ld a, [wCurBox]
+ and $f
+ call GetBoxName
+ hlcoord 11, 2
+ call PlaceString
+ ret
+; e36f1 (38:76f1)
+
+String_e36f1: ; e36f1
+ db "CURRENT@"
+; e36f9
+
+Functione36f9: ; e36f9 (38:76f9)
+ ld hl, MenuDataHeader_0xe377b
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ call ExitMenu
+ ret c
+ ld a, [MenuSelection2]
+ cp $1
+ jr z, .asm_e3734
+ cp $2
+ jr z, .asm_e3745
+ cp $3
+ jr z, .asm_e3717
+ and a
+ ret
+
+.asm_e3717
+ call GetBoxCount
+ and a
+ jr z, .asm_e372f
+ ld e, l
+ ld d, h
+ ld a, [MenuSelection]
+ dec a
+ ld c, a
+ callba Function844bc
+ call Functione35e2
+ and a
+ ret
+
+.asm_e372f
+ call Functione37be
+ and a
+ ret
+
+.asm_e3734
+ ld a, [MenuSelection]
+ dec a
+ ld e, a
+ ld a, [wCurBox]
+ cp e
+ ret z
+ callba Function14a83
+ ret
+
+.asm_e3745
+ ld b, $4
+ ld de, wd002
+ callba NamingScreen
+ call ClearTileMap
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ ld a, [MenuSelection]
+ dec a
+ call GetBoxName
+ ld e, l
+ ld d, h
+ ld hl, wd002
+ ld c, $8
+ call InitString
+ ld a, [MenuSelection]
+ dec a
+ call GetBoxName
+ ld de, wd002
+ call CopyName2
+ ret
+; e3778 (38:7778)
+
+ hlcoord 11, 7 ; XXX
+
+MenuDataHeader_0xe377b: ; 0xe377b
+ db $40 ; flags
+ db 04, 11 ; start coords
+ db 13, 19 ; end coords
+ dw MenuData2_0xe3783
+ db 1 ; default option
+; 0xe3783
+
+MenuData2_0xe3783: ; 0xe3783
+ db $80 ; flags
+ db 4 ; items
+ db "SWITCH@"
+ db "NAME@"
+ db "PRINT@"
+ db "QUIT@"
+; 0xe379c
+
+Functione379c: ; e379c (38:779c)
+ ld de, String_e37a1
+ jr Functione37e3
+; e37a1 (38:77a1)
+
+String_e37a1: ; e37a1
+ db "Choose a BOX.@"
+; e37af
+
+Functione37af: ; e37af (38:77af)
+ ld de, String_e37b4
+ jr Functione37e3
+; e37b4 (38:77b4)
+
+String_e37b4: ; e37b4
+ db "What's up?@"
+; e37be
+
+Functione37be: ; e37be (38:77be)
+ ld de, String_e37d3
+ call Functione37e3
+ ld de, SFX_WRONG
+ call WaitPlaySFX
+ call WaitSFX
+ ld c, 50
+ call DelayFrames
+ ret
+; e37d3 (38:77d3)
+
+String_e37d3: ; e37d3
+ db "There's no #MON.@"
+; e37e3
+
+Functione37e3: ; e37e3 (38:77e3)
+ push de
+ hlcoord 0, 14
+ lb bc, 2, 18
+ call TextBox
+ pop de
+ hlcoord 1, 16
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm
new file mode 100755
index 000000000..7c4d8ba62
--- /dev/null
+++ b/engine/breeding/egg.asm
@@ -0,0 +1,976 @@
+Function16e1d: ; 16e1d
+ call Function16ed6
+ ld c, $0
+ jp nc, .asm_16eb7
+ ld a, [wBreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon1DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon1DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ jr c, .asm_16e70
+ ld b, $1
+ jr nz, .asm_16e48
+ inc b
+
+.asm_16e48
+ push bc
+ ld a, [wBreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon2DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon2DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ pop bc
+ jr c, .asm_16e70
+ ld a, $1
+ jr nz, .asm_16e6d
+ inc a
+
+.asm_16e6d
+ cp b
+ jr nz, .asm_16e89
+
+.asm_16e70
+ ld c, $0
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .asm_16e82
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr nz, .asm_16eb7
+ jr .asm_16e89
+
+.asm_16e82
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .asm_16eb7
+
+.asm_16e89
+ call Function16ebc
+ ld c, $ff
+ jp z, .asm_16eb7
+ ld a, [wBreedMon2Species]
+ ld b, a
+ ld a, [wBreedMon1Species]
+ cp b
+ ld c, $fe
+ jr z, .asm_16e9f
+ ld c, $80
+.asm_16e9f
+ ld a, [wBreedMon1ID]
+ ld b, a
+ ld a, [wBreedMon2ID]
+ cp b
+ jr nz, .asm_16eb7
+ ld a, [wBreedMon1ID + 1]
+ ld b, a
+ ld a, [wBreedMon2ID + 1]
+ cp b
+ jr nz, .asm_16eb7
+ ld a, c
+ sub $4d
+ ld c, a
+
+.asm_16eb7
+ ld a, c
+ ld [wd265], a
+ ret
+; 16ebc
+
+
+Function16ebc: ; 16ebc (5:6ebc)
+ ld a, [wBreedMon1DVs]
+ and $f
+ ld b, a
+ ld a, [wBreedMon2DVs]
+ and $f
+ cp b
+ ret nz
+ ld a, [wBreedMon1DVs + 1]
+ and $7
+ ld b, a
+ ld a, [wBreedMon2DVs + 1]
+ and $7
+ cp b
+ ret
+; 16ed6
+
+Function16ed6: ; 16ed6
+ ld a, [wBreedMon2Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp $ff
+ jr z, .asm_16f3a
+ ld a, [wBreedMon1Species]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ cp $ff
+ jr z, .asm_16f3a
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .asm_16f3c
+ ld [CurSpecies], a
+ call GetBaseData
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld b, a
+ pop af
+ and $f0
+ swap a
+ ld c, a
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .asm_16f3c
+ ld [CurSpecies], a
+ push bc
+ call GetBaseData
+ pop bc
+ ld a, [BaseEggGroups]
+ push af
+ and $f
+ ld d, a
+ pop af
+ and $f0
+ swap a
+ ld e, a
+ ld a, d
+ cp b
+ jr z, .asm_16f3c
+ cp c
+ jr z, .asm_16f3c
+ ld a, e
+ cp b
+ jr z, .asm_16f3c
+ cp c
+ jr z, .asm_16f3c
+
+.asm_16f3a
+ and a
+ ret
+
+.asm_16f3c
+ scf
+ ret
+; 16f3e
+
+DoEggStep:: ; 16f3e
+ ld de, PartySpecies
+ ld hl, PartyMon1Happiness
+ ld c, 0
+.loop
+ ld a, [de]
+ inc de
+ cp -1
+ ret z
+ cp EGG
+ jr nz, .next
+ dec [hl]
+ jr nz, .next
+ ld a, 1
+ and a
+ ret
+
+.next
+ push de
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ pop de
+ jr .loop
+; 16f5e
+
+OverworldHatchEgg:: ; 16f5e
+ call ResetWindow
+ call LoadStandardMenuDataHeader
+ call Function16f70
+ call Function2b4d
+ call RestartMapMusic
+ jp LoadMoveSprites
+; 16f70
+
+Function16f70: ; 16f70 (5:6f70)
+ ld de, PartySpecies
+ ld hl, PartyMon1Happiness
+ xor a
+ ld [CurPartyMon], a
+
+Function16f7a: ; 16f7a (5:6f7a)
+ ld a, [de]
+ inc de
+ cp -1
+ jp z, Function1708a
+ push de
+ push hl
+ cp EGG
+ jp nz, Function1707d
+ ld a, [hl]
+ and a
+ jp nz, Function1707d
+ ld [hl], $78
+
+ push de
+
+ callba Function4dbb8
+ callba MobileFn_10608d
+ ld a, [CurPartyMon]
+ ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ dec a
+ call SetSeenAndCaughtMon
+
+ ld a, [CurPartySpecies]
+ cp TOGEPI
+ jr nz, .nottogepi
+ ; set the event flag for hatching togepi
+ ld de, EVENT_TOGEPI_HATCHED
+ ld b, SET_FLAG
+ call EventFlagAction
+.nottogepi
+
+ pop de
+
+ ld a, [CurPartySpecies]
+ dec de
+ ld [de], a
+ ld [wd265], a
+ ld [CurSpecies], a
+ call GetPokemonName
+ xor a
+ ld [wd26b], a
+ call GetBaseData
+ ld a, [CurPartyMon]
+ ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld bc, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ push hl
+ ld bc, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ pop hl
+ push hl
+ ld bc, MON_STATUS
+ add hl, bc
+ xor a
+ ld [hli], a
+ ld [hl], a
+ pop hl
+ push hl
+ ld bc, MON_EXP + 2
+ add hl, bc
+ ld b, $0
+ predef CalcPkmnStats
+ pop bc
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_HP
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ ld hl, MON_ID
+ add hl, bc
+ ld a, [PlayerID]
+ ld [hli], a
+ ld a, [PlayerID + 1]
+ ld [hl], a
+ ld a, [CurPartyMon]
+ ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
+ ld bc, NAME_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ call CopyBytes
+ ld hl, UnknownText_0x1708b
+ call PrintText
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ ld bc, PKMN_NAME_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ push de
+ ld hl, UnknownText_0x170ba
+ call PrintText
+ call YesNoBox
+ pop de
+ jr c, .nonickname
+ ld a, $1
+ ld [wd26b], a
+ xor a
+ ld [MonType], a
+ push de
+ ld b, $0
+ callba NamingScreen
+ pop hl
+ ld de, StringBuffer1
+ call InitName
+ jr Function1707d
+.nonickname
+ ld hl, StringBuffer1
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+
+Function1707d: ; 1707d (5:707d)
+ ld hl, CurPartyMon
+ inc [hl]
+ pop hl
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ pop de
+ jp Function16f7a
+
+Function1708a: ; 1708a (5:708a)
+ ret
+; 1708b (5:708b)
+
+UnknownText_0x1708b: ; 0x1708b
+ ; Huh? @ @
+ text_jump UnknownText_0x1c0db0
+ start_asm
+; 0x17090
+
+Function17090: ; 17090
+ ld hl, VramState
+ res 0, [hl]
+ push hl
+ push de
+ push bc
+ ld a, [CurPartySpecies]
+ push af
+ call Function1728f
+ ld hl, UnknownText_0x170b0
+ call PrintText
+ pop af
+ ld [CurPartySpecies], a
+ pop bc
+ pop de
+ pop hl
+ ld hl, UnknownText_0x170b5
+ ret
+; 170b0 (5:70b0)
+
+UnknownText_0x170b0: ; 0x170b0
+ ;
+ text_jump UnknownText_0x1c0db8
+ db "@"
+; 0x170b5
+
+UnknownText_0x170b5: ; 0x170b5
+ ; came out of its EGG!@ @
+ text_jump UnknownText_0x1c0dba
+ db "@"
+; 0x170ba
+
+UnknownText_0x170ba: ; 0x170ba
+ ; Give a nickname to @ ?
+ text_jump UnknownText_0x1c0dd8
+ db "@"
+; 0x170bf
+
+Function170bf: ; 170bf
+ call Function17197
+ ld d, h
+ ld e, l
+ ld b, NUM_MOVES
+.loop
+ ld a, [de]
+ and a
+ jr z, .done
+ ld hl, wEggMonMoves
+ ld c, NUM_MOVES
+.next
+ ld a, [de]
+ cp [hl]
+ jr z, .skip
+ inc hl
+ dec c
+ jr nz, .next
+ call Function170e4
+ jr nc, .skip
+ call Function17169
+
+.skip
+ inc de
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+; 170e4
+
+Function170e4: ; 170e4
+GLOBAL EggMoves
+
+ push bc
+ ld a, [wEggMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EggMovePointers
+rept 2
+ add hl, bc
+endr
+ ld a, BANK(EggMovePointers)
+ call GetFarHalfword
+.loop
+ ld a, BANK(EggMoves)
+ call GetFarByte
+ cp -1
+ jr z, .found_mon
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .done_carry
+ inc hl
+ jr .loop
+
+.found_mon
+ call Function1720b
+ ld b, NUM_MOVES
+.loop2
+ ld a, [de]
+ cp [hl]
+ jr z, .found_eggmove
+ inc hl
+ dec b
+ jr z, .inherit_tmhm
+ jr .loop2
+
+.found_eggmove
+ ld a, [wEggMonSpecies]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, EvosAttacksPointers
+rept 2
+ add hl, bc
+endr
+ ld a, BANK(EvosAttacksPointers)
+ call GetFarHalfword
+.loop3
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ inc hl
+ and a
+ jr nz, .loop3
+.loop4
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ and a
+ jr z, .inherit_tmhm
+ inc hl
+ ld a, BANK(EvosAttacks)
+ call GetFarByte
+ ld b, a
+ ld a, [de]
+ cp b
+ jr z, .done_carry
+ inc hl
+ jr .loop4
+
+.inherit_tmhm
+ ld hl, TMHMMoves
+.loop5
+ ld a, BANK(TMHMMoves)
+ call GetFarByte
+ inc hl
+ and a
+ jr z, .done
+ ld b, a
+ ld a, [de]
+ cp b
+ jr nz, .loop5
+ ld [wd262], a
+ predef CanLearnTMHMMove
+ ld a, c
+ and a
+ jr z, .done
+
+.done_carry
+ pop bc
+ scf
+ ret
+
+.done
+ pop bc
+ and a
+ ret
+; 17169
+
+Function17169: ; 17169
+ push de
+ push bc
+ ld a, [de]
+ ld b, a
+ ld hl, wEggMonMoves
+ ld c, NUM_MOVES
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ dec c
+ jr nz, .loop
+ ld de, wEggMonMoves
+ ld hl, wEggMonMoves + 1
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+
+.done
+ dec hl
+ ld [hl], b
+ ld hl, wEggMonMoves
+ ld de, wEggMonPP
+ predef FillPP
+ pop bc
+ pop de
+ ret
+; 17197
+
+Function17197: ; 17197
+ ld hl, wBreedMon2Moves
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ jr z, .ditto1
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .ditto2
+ ld a, [wDittoInDaycare]
+ and a
+ ret z
+ ld hl, wBreedMon1Moves
+ ret
+
+.ditto1
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [wBreedMon2Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon2DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon2DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ jr c, .inherit_mon2_moves
+ jr nz, .inherit_mon2_moves
+ jr .inherit_mon1_moves
+
+.ditto2
+ ld a, [CurPartySpecies]
+ push af
+ ld a, [wBreedMon1Species]
+ ld [CurPartySpecies], a
+ ld a, [wBreedMon1DVs]
+ ld [TempMonDVs], a
+ ld a, [wBreedMon1DVs + 1]
+ ld [TempMonDVs + 1], a
+ ld a, $3
+ ld [MonType], a
+ predef GetGender
+ jr c, .inherit_mon1_moves
+ jr nz, .inherit_mon1_moves
+
+.inherit_mon2_moves
+ ld hl, wBreedMon2Moves
+ pop af
+ ld [CurPartySpecies], a
+ ret
+
+.inherit_mon1_moves
+ ld hl, wBreedMon1Moves
+ pop af
+ ld [CurPartySpecies], a
+ ret
+; 1720b
+
+Function1720b: ; 1720b
+ ld hl, wBreedMon1Moves
+ ld a, [wBreedMon1Species]
+ cp DITTO
+ ret z
+ ld a, [wBreedMon2Species]
+ cp DITTO
+ jr z, .ditto
+ ld a, [wDittoInDaycare]
+ and a
+ ret z
+
+.ditto
+ ld hl, wBreedMon2Moves
+ ret
+; 17224
+
+
+Function17224: ; 17224 (5:7224)
+ push de
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BattleMonDVs
+ predef GetUnownLetter
+ pop de
+ predef_jump GetFrontpic
+
+Function1723c: ; 1723c (5:723c)
+ push de
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BattleMonDVs
+ predef GetUnownLetter
+ pop de
+ predef_jump Function5108b
+
+Function17254: ; 17254 (5:7254)
+ push af
+ call WaitTop
+ push hl
+ push bc
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ pop bc
+ pop hl
+ ld a, b
+ ld [hBGMapAddress + 1], a
+ ld a, c
+ ld [hFillBox], a
+ lb bc, 7, 7
+ predef FillBox
+ pop af
+ call Function17363
+ call SetPalettes
+ jp WaitBGMap
+
+Function1727f: ; 1727f (5:727f)
+ push hl
+ push de
+ push bc
+ callab Function8cf69
+ call DelayFrame
+ pop bc
+ pop de
+ pop hl
+ ret
+
+Function1728f: ; 1728f (5:728f)
+ ld a, [wd265]
+ ld [wJumptableIndex], a
+ ld a, [CurSpecies]
+ push af
+ ld de, MUSIC_NONE
+ call PlayMusic
+ callba Function8000
+ call DisableLCD
+ ld hl, EggHatchGFX
+ ld de, VTiles0 tile $00
+ ld bc, $20
+ ld a, BANK(EggHatchGFX)
+ call FarCopyBytes
+ callba Function8cf53
+ ld de, VTiles2 tile $00
+ ld a, [wJumptableIndex]
+ call Function1723c
+ ld de, VTiles2 tile $31
+ ld a, EGG
+ call Function17224
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic
+ call EnableLCD
+ hlcoord 7, 4
+ ld b, $98
+ ld c, $31
+ ld a, EGG
+ call Function17254
+ ld c, $50
+ call DelayFrames
+ xor a
+ ld [wcf64], a
+ ld a, [hSCX]
+ ld b, a
+.asm_172ee
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ cp $8
+ jr nc, .asm_17327
+ ld e, [hl]
+.asm_172f8
+ ld a, $2
+ ld [hSCX], a
+ ld a, $fe
+ ld [wc3c0], a
+ call Function1727f
+ ld c, $2
+ call DelayFrames
+ ld a, $fe
+ ld [hSCX], a
+ ld a, $2
+ ld [wc3c0], a
+ call Function1727f
+ ld c, $2
+ call DelayFrames
+ dec e
+ jr nz, .asm_172f8
+ ld c, $10
+ call DelayFrames
+ call Function1736d
+ jr .asm_172ee
+.asm_17327
+ ld de, SFX_EGG_HATCH
+ call PlaySFX
+ xor a
+ ld [hSCX], a
+ ld [wc3c0], a
+ call ClearSprites
+ call Function173b3
+ hlcoord 6, 3
+ ld b, $98
+ ld c, $0
+ ld a, [wJumptableIndex]
+ call Function17254
+ call Function17418
+ call WaitSFX
+ ld a, [wJumptableIndex]
+ ld [CurPartySpecies], a
+ hlcoord 6, 3
+ ld d, $0
+ ld e, ANIM_MON_HATCH
+ predef AnimateFrontpic
+ pop af
+ ld [CurSpecies], a
+ ret
+
+Function17363: ; 17363 (5:7363)
+ ld [PlayerHPPal], a
+ ld b, $b
+ ld c, $0
+ jp GetSGBLayout
+
+Function1736d: ; 1736d (5:736d)
+ ld a, [wcf64]
+ dec a
+ and $7
+ cp $7
+ ret z
+ srl a
+ ret nc
+ swap a
+ srl a
+ add $4c
+ ld d, a
+ ld e, $58
+ ld a, $19
+ call Function3b2a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ld de, SFX_EGG_CRACK
+ jp PlaySFX
+; 17393 (5:7393)
+
+EggHatchGFX: ; 17393
+INCBIN "gfx/unknown/017393.2bpp"
+; 173b3
+
+Function173b3: ; 173b3 (5:73b3)
+ callba Function8cf53
+ ld hl, Unknown_173ef
+.loop
+ ld a, [hli]
+ cp $ff
+ jr z, .done
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ push bc
+ ld a, $1c
+ call Function3b2a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ pop de
+ ld a, e
+ ld hl, $1
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ ld hl, $b
+ add hl, bc
+ ld [hl], d
+ pop hl
+ jr .loop
+.done
+ ld de, SFX_EGG_HATCH
+ call PlaySFX
+ call Function1727f
+ ret
+; 173ef (5:73ef)
+
+Unknown_173ef: ; 173ef
+; Probably OAM.
+ db $54, $48, $00, $3c
+ db $5c, $48, $01, $04
+ db $54, $50, $00, $30
+ db $5c, $50, $01, $10
+ db $54, $58, $02, $24
+ db $5c, $58, $03, $1c
+ db $50, $4c, $00, $36
+ db $60, $4c, $01, $0a
+ db $50, $54, $02, $2a
+ db $60, $54, $03, $16
+ db $ff
+; 17418
+
+Function17418: ; 17418 (5:7418)
+ ld c, $81
+.asm_1741a
+ call Function1727f
+ dec c
+ jr nz, .asm_1741a
+ ret
+
+Special_DayCareMon1: ; 17421
+ ld hl, UnknownText_0x17467
+ call PrintText
+ ld a, [wBreedMon1Species]
+ call PlayCry
+ ld a, [wDaycareLady]
+ bit 0, a
+ jr z, Function1745f
+ call KeepTextOpen
+ ld hl, wBreedMon2Nick
+ call Function1746c
+ jp PrintText
+
+Special_DayCareMon2: ; 17440
+ ld hl, UnknownText_0x17462
+ call PrintText
+ ld a, [wBreedMon2Species]
+ call PlayCry
+ ld a, [wDaycareMan]
+ bit 0, a
+ jr z, Function1745f
+ call KeepTextOpen
+ ld hl, wBreedMon1Nick
+ call Function1746c
+ jp PrintText
+
+Function1745f: ; 1745f
+ jp WaitPressAorB_BlinkCursor
+; 17462
+
+UnknownText_0x17462: ; 0x17462
+ ; It's @ that was left with the DAY-CARE LADY.
+ text_jump UnknownText_0x1c0df3
+ db "@"
+; 0x17467
+
+UnknownText_0x17467: ; 0x17467
+ ; It's @ that was left with the DAY-CARE MAN.
+ text_jump UnknownText_0x1c0e24
+ db "@"
+; 0x1746c
+
+Function1746c: ; 1746c
+ push bc
+ ld de, StringBuffer1
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ call Function16e1d
+ pop bc
+ ld a, [wd265]
+ ld hl, UnknownText_0x1749c
+ cp $ff
+ jr z, .asm_1749b
+ ld hl, UnknownText_0x174a1
+ and a
+ jr z, .asm_1749b
+ ld hl, UnknownText_0x174a6
+ cp 230
+ jr nc, .asm_1749b
+ cp 70
+ ld hl, UnknownText_0x174ab
+ jr nc, .asm_1749b
+ ld hl, UnknownText_0x174b0
+
+.asm_1749b
+ ret
+; 1749c
+
+UnknownText_0x1749c: ; 0x1749c
+ ; It's brimming with energy.
+ text_jump UnknownText_0x1c0e54
+ db "@"
+; 0x174a1
+
+UnknownText_0x174a1: ; 0x174a1
+ ; It has no interest in @ .
+ text_jump UnknownText_0x1c0e6f
+ db "@"
+; 0x174a6
+
+UnknownText_0x174a6: ; 0x174a6
+ ; It appears to care for @ .
+ text_jump UnknownText_0x1c0e8d
+ db "@"
+; 0x174ab
+
+UnknownText_0x174ab: ; 0x174ab
+ ; It's friendly with @ .
+ text_jump UnknownText_0x1c0eac
+ db "@"
+; 0x174b0
+
+UnknownText_0x174b0: ; 0x174b0
+ ; It shows interest in @ .
+ text_jump UnknownText_0x1c0ec6
+ db "@"
+; 0x174b5
+
+Function_174b5: ; 174b5
+ ld hl, String_174b9
+ ret
+; 174b9
+
+String_174b9: ; 174b9
+ db "@"
+; 174ba
+
diff --git a/engine/card_flip.asm b/engine/card_flip.asm
new file mode 100755
index 000000000..8ee1e5cd9
--- /dev/null
+++ b/engine/card_flip.asm
@@ -0,0 +1,2560 @@
+_CardFlip: ; e00ee (38:40ee)
+ ld hl, Options
+ set 4, [hl]
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ call DisableLCD
+ call LoadStandardFont
+ call LoadFontsExtra
+ ld hl, LZ_e0d16
+ ld de, VTiles2 tile $00
+ call Decompress
+ ld hl, LZ_e0ea8
+ ld de, VTiles2 tile $3e
+ call Decompress
+ ld hl, LZ_e0cdb
+ ld de, VTiles0 tile $00
+ call Decompress
+ ld hl, GFX_e0cf6
+ ld de, VTiles1 tile $6f
+ ld bc, $10
+ call CopyBytes
+ ld hl, GFX_e0d06
+ ld de, VTiles1 tile $75
+ ld bc, $10
+ call CopyBytes
+ call Functione0521
+ call Functione04c1
+ call Functione0c37
+ call EnableLCD
+ call Function3200
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ call DelayFrame
+ xor a
+ ld [wJumptableIndex], a
+ ld a, $2
+ ld [wcf64], a
+ ld [wcf65], a
+ ld de, MUSIC_GAME_CORNER
+ call PlayMusic
+.MasterLoop
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .leavethegame
+ call .CardFlip
+ jr .MasterLoop
+.leavethegame
+ call WaitSFX
+ ld de, SFX_QUIT_SLOTS
+ call PlaySFX
+ call WaitSFX
+ call ClearBGPalettes
+ ld hl, Options
+ res 4, [hl]
+ ret
+
+.CardFlip: ; e0191 (38:4191)
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, .Jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e01a0 (38:41a0)
+
+.Jumptable: ; e01a0
+ dw .AskPlayWithThree
+ dw .DeductCoins
+ dw .ChooseACard
+ dw .PlaceYourBet
+ dw .CheckTheCard
+ dw .TabulateTheResult
+ dw .PlayAgain
+ dw .Quit
+; e01b0
+
+.Increment: ; e01b0
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; e01b5
+
+.AskPlayWithThree: ; e01b5
+ ld hl, .PlayWithThreeCoinsText
+ call Functione0489
+ call YesNoBox
+ jr c, .SaidNo
+ call Functione0366
+ call .Increment
+ ret
+
+.SaidNo
+ ld a, $7
+ ld [wJumptableIndex], a
+ ret
+; e01cd
+
+.PlayWithThreeCoinsText: ; 0xe01cd
+ ; Play with three coins?
+ text_jump UnknownText_0x1c5793
+ db "@"
+; 0xe01d2
+
+.DeductCoins: ; e01d2
+ ld a, [Coins]
+ ld h, a
+ ld a, [Coins + 1]
+ ld l, a
+ ld a, h
+ and a
+ jr nz, .deduct ; You have at least 256 coins.
+ ld a, l
+ cp 3
+ jr nc, .deduct ; You have at least 3 coins.
+ ld hl, .NotEnoughCoinsText
+ call Functione0489
+ ld a, $7
+ ld [wJumptableIndex], a
+ ret
+
+.deduct
+ ld de, -3
+ add hl, de
+ ld a, h
+ ld [Coins], a
+ ld a, l
+ ld [Coins + 1], a
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ xor a
+ ld [hBGMapMode], a
+ call Functione049c
+ ld a, $1
+ ld [hBGMapMode], a
+ call WaitSFX
+ call .Increment
+ ret
+; e0212
+
+.NotEnoughCoinsText: ; 0xe0212
+ ; Not enough coins…
+ text_jump UnknownText_0x1c57ab
+ db "@"
+; 0xe0217
+
+.ChooseACard: ; e0217
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ lb bc, 12, 9
+ call Functione04e5
+ hlcoord 9, 0
+ ld bc, SCREEN_WIDTH
+ ld a, [wc6e8]
+ call AddNTimes
+ ld [hl], $f5
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, 20
+ call DelayFrames
+ hlcoord 2, 0
+ call Functione03c1
+ ld a, $1
+ ld [hBGMapMode], a
+ ld c, 20
+ call DelayFrames
+ hlcoord 2, 6
+ call Functione03c1
+ call WaitBGMap
+ ld hl, .ChooseACardText
+ call Functione0489
+ xor a
+ ld [wcf66], a
+.loop
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ and A_BUTTON
+ jr nz, .next
+ ld de, SFX_KINESIS
+ call PlaySFX
+ call Functione0849
+ ld c, 4
+ call DelayFrames
+ ld hl, wcf66
+ ld a, [hl]
+ xor $1
+ ld [hl], a
+ jr .loop
+
+.next
+ ld de, SFX_SLOT_MACHINE_START
+ call PlaySFX
+ ld a, $3
+.loop2
+ push af
+ call Functione0849
+ ld c, 4
+ call DelayFrames
+ call ClearSprites
+ ld c, 4
+ call DelayFrames
+ pop af
+ dec a
+ jr nz, .loop2
+ ld hl, wcf66
+ ld a, [hl]
+ push af
+ xor $1
+ ld [hl], a
+ call Functione03ac
+ lb bc, 6, 5
+ call Functione04e5
+ pop af
+ ld [wcf66], a
+ call .Increment
+ ret
+; e02b2
+
+.ChooseACardText: ; 0xe02b2
+ ; Choose a card.
+ text_jump UnknownText_0x1c57be
+ db "@"
+; 0xe02b7
+
+.PlaceYourBet: ; e02b7
+ ld hl, .PlaceYourBetText
+ call Functione0489
+.betloop
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ and A_BUTTON
+ jr nz, .betdone
+ call Functione089c
+ call Functione0960
+ call DelayFrame
+ jr .betloop
+
+.betdone
+ call .Increment
+ ret
+; e02d5
+
+.PlaceYourBetText: ; 0xe02d5
+ ; Place your bet.
+ text_jump UnknownText_0x1c57ce
+ db "@"
+; 0xe02da
+
+.CheckTheCard: ; e02da
+ xor a
+ ld [hVBlankCounter], a
+ call Functione0960
+ call WaitSFX
+ ld de, SFX_CHOOSE_A_CARD
+ call PlaySFX
+ call WaitSFX
+ ld a, [wc6e8]
+ ld e, a
+ ld d, 0
+ ld hl, wc6d0
+rept 2
+ add hl, de
+endr
+ ld a, [wcf66]
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [CurEnemyMoveNum], a
+ ld e, a
+ ld hl, wc6ea
+ add hl, de
+ ld [hl], $1
+ call Functione03ac
+ call Functione03ec
+ call Function3200
+ call .Increment
+ ret
+; e0314
+
+.TabulateTheResult: ; e0314
+ call Functione0637
+ call WaitPressAorB_BlinkCursor
+ call .Increment
+ ret
+; e031e
+
+.PlayAgain: ; e031e
+ call ClearSprites
+ ld hl, .PlayAgainText
+ call Functione0489
+ call YesNoBox
+ jr nc, .Continue
+ call .Increment
+ ret
+
+.Continue
+ ld a, [wc6e8]
+ inc a
+ ld [wc6e8], a
+ cp $c
+ jr c, .KeepTheCurrentDeck
+ call Functione04c1
+ ld a, $1
+ ld [hBGMapMode], a
+ call Functione0366
+ ld hl, .CardsShuffledText
+ call PrintText
+ jr .LoopAround
+
+.KeepTheCurrentDeck
+ call Functione0534
+
+.LoopAround
+ ld a, $1
+ ld [wJumptableIndex], a
+ ret
+; e0356
+
+.PlayAgainText: ; 0xe0356
+ ; Want to play again?
+ text_jump UnknownText_0x1c57df
+ db "@"
+; 0xe035b
+
+.CardsShuffledText: ; 0xe035b
+ ; The cards have been shuffled.
+ text_jump UnknownText_0x1c57f4
+ db "@"
+; 0xe0360
+
+.Quit: ; e0360
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; e0366
+
+Functione0366: ; e0366
+ ld hl, wc6d0
+ ld bc, $18
+ xor a
+ call ByteFill
+ ld de, wc6d0
+ ld c, $17
+.asm_e0375
+ call Random
+ and $1f
+ cp $18
+ jr nc, .asm_e0375
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e0375
+ ld [hl], c
+ dec c
+ jr nz, .asm_e0375
+ xor a
+ ld [wc6e8], a
+ ld hl, wc6ea
+ ld bc, $18
+ call ByteFill
+ ret
+; e0398
+
+Functione0398: ; e0398
+ ld hl, 0
+ ld bc, 6
+ ld a, [wcf64]
+ call AddNTimes
+ ld b, $0
+ ld a, [wcf65]
+ ld c, a
+ add hl, bc
+ ret
+; e03ac
+
+Functione03ac: ; e03ac
+ ld a, [wcf66]
+ and a
+ jr nz, .asm_e03ba
+ hlcoord 2, 0
+ ld bc, $1018
+ jr .asm_e03c0
+
+.asm_e03ba
+ hlcoord 2, 6
+ ld bc, $4018
+
+.asm_e03c0
+ ret
+; e03c1
+
+Functione03c1: ; e03c1
+ xor a
+ ld [hBGMapMode], a
+ ld de, Unknown_e03ce
+ lb bc, 6, 5
+ call Functione04f7
+ ret
+; e03ce
+
+Unknown_e03ce: ; e03ce
+ db $08, $09, $09, $09, $0a
+ db $0b, $28, $2b, $28, $0c
+ db $0b, $2c, $2d, $2e, $0c
+ db $0b, $2f, $30, $31, $0c
+ db $0b, $32, $33, $34, $0c
+ db $0d, $0e, $0e, $0e, $0f
+; e03ec
+
+Functione03ec: ; e03ec
+ xor a
+ ld [hBGMapMode], a
+ push hl
+ push hl
+ ld de, Unknown_e043b
+ lb bc, 6, 5
+ call Functione04f7
+ ld a, [CurEnemyMoveNum]
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_e0459
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld e, a
+ ld d, [hl]
+ pop hl
+ ld bc, $17
+ add hl, bc
+ ld [hl], e
+ ld bc, SCREEN_HEIGHT
+ add hl, bc
+ ld a, d
+ ld de, SCREEN_WIDTH
+ ld b, $3
+.asm_e0418
+ push hl
+ ld c, $3
+.asm_e041b
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e041b
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e0418
+ pop hl
+ ld a, [hCGB]
+ and a
+ ret z
+ ld de, AttrMap - TileMap
+ add hl, de
+ ld a, [CurEnemyMoveNum]
+ and 3
+ inc a
+ lb bc, 6, 5
+ call Functione04e7
+ ret
+; e043b
+
+Unknown_e043b: ; e043b
+ db $18, $19, $19, $19, $1a
+ db $1b, $35, $7f, $7f, $1c
+ db $0b, $28, $28, $28, $0c
+ db $0b, $28, $28, $28, $0c
+ db $0b, $28, $28, $28, $0c
+ db $1d, $1e, $1e, $1e, $1f
+; e0459
+
+Unknown_e0459: ; e0459
+ db $f7,$4e, $f7,$57, $f7,$69, $f7,$60
+ db $f8,$4e, $f8,$57, $f8,$69, $f8,$60
+ db $f9,$4e, $f9,$57, $f9,$69, $f9,$60
+ db $fa,$4e, $fa,$57, $fa,$69, $fa,$60
+ db $fb,$4e, $fb,$57, $fb,$69, $fb,$60
+ db $fc,$4e, $fc,$57, $fc,$69, $fc,$60
+; e0489
+
+Functione0489: ; e0489
+ push hl
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call TextBox
+ pop hl
+ call PrintTextBoxText
+ call Functione049c
+ ret
+; e049c
+
+Functione049c: ; e049c
+ hlcoord 9, 15
+ ld b, $1
+ ld c, $9
+ call TextBox
+ hlcoord 10, 16
+ ld de, String_e04bc
+ call PlaceString
+ hlcoord 15, 16
+ ld de, Coins
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 4
+ call PrintNum
+ ret
+; e04bc
+
+String_e04bc:
+ db "COIN@"
+; e04c1
+
+Functione04c1: ; e04c1 (38:44c1)
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ ld a, $29
+ call ByteFill
+ hlcoord 9, 0
+ ld de, Unknown_e110c
+ lb bc, 12, 11
+ call Functione04f7
+ hlcoord 0, 12
+ lb bc, 4, 18
+ call TextBox
+ ret
+; e04e5 (38:44e5)
+
+Functione04e5: ; e04e5
+ ld a, $29
+
+Functione04e7: ; e04e7 (38:44e7)
+ push bc
+ push hl
+.asm_e04e9
+ ld [hli], a
+ dec c
+ jr nz, .asm_e04e9
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, Functione04e7
+ ret
+
+Functione04f7: ; e04f7 (38:44f7)
+ push bc
+ push hl
+.asm_e04f9
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_e04f9
+ pop hl
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, Functione04f7
+ ret
+; e0509 (38:4509)
+
+Functione0509: ; e0509
+ ld de, Sprites
+ ld a, [hli]
+.asm_e050d
+ 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_e050d
+ ret
+; e0521
+
+Functione0521: ; e0521 (38:4521)
+ ld de, VTiles1 tile $76
+ ld hl, $8f62
+ ld bc, $9e
+ call CopyBytes
+ ld hl, $8ffe
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+; e0534 (38:4534)
+
+Functione0534: ; e0534
+ xor a
+ ld [hBGMapMode], a
+ ld a, [CurEnemyMoveNum]
+ ld e, a
+ ld d, 0
+ and 3
+ ld c, a
+ ld b, 0
+ ld a, e
+ and $1c
+ srl a
+ add Jumptable_e0553 % $100
+ ld l, a
+ ld a, 0
+ adc Jumptable_e0553 / $100
+ ld h, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e0553
+
+Jumptable_e0553: ; e0553
+ dw Functione055f
+ dw Functione0583
+ dw Functione05a7
+ dw Functione05cb
+ dw Functione05ef
+ dw Functione0613
+; e055f
+
+Functione055f: ; e055f
+ ld hl, wc6e6 + 8
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e0575
+ hlcoord 13, 3
+rept 2
+ add hl, bc
+endr
+ ld [hl], $36
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $37
+ ret
+
+.asm_e0575
+ hlcoord 13, 3
+rept 2
+ add hl, bc
+endr
+ ld [hl], $36
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3d
+ ret
+; e0583
+
+Functione0583: ; e0583
+ ld hl, wc6e6
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e0599
+ hlcoord 13, 4
+rept 2
+ add hl, bc
+endr
+ ld [hl], $3b
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3a
+ ret
+
+.asm_e0599
+ hlcoord 13, 4
+rept 2
+ add hl, bc
+endr
+ ld [hl], $3d
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3a
+ ret
+; e05a7
+
+Functione05a7: ; e05a7
+ ld hl, wc6e6 + 8
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e05bd
+ hlcoord 13, 6
+rept 2
+ add hl, bc
+endr
+ ld [hl], $36
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $38
+ ret
+
+.asm_e05bd
+ hlcoord 13, 6
+rept 2
+ add hl, bc
+endr
+ ld [hl], $36
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3d
+ ret
+; e05cb
+
+Functione05cb: ; e05cb
+ ld hl, wc6e6
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e05e1
+ hlcoord 13, 7
+rept 2
+ add hl, bc
+endr
+ ld [hl], $3c
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3a
+ ret
+
+.asm_e05e1
+ hlcoord 13, 7
+rept 2
+ add hl, bc
+endr
+ ld [hl], $3d
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3a
+ ret
+; e05ef
+
+Functione05ef: ; e05ef
+ ld hl, wc6e6 + 8
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e0605
+ hlcoord 13, 9
+rept 2
+ add hl, bc
+endr
+ ld [hl], $36
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $39
+ ret
+
+.asm_e0605
+ hlcoord 13, 9
+rept 2
+ add hl, bc
+endr
+ ld [hl], $36
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3d
+ ret
+; e0613
+
+Functione0613: ; e0613
+ ld hl, wc6e6
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e0629
+ hlcoord 13, 10
+rept 2
+ add hl, bc
+endr
+ ld [hl], $3c
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3a
+ ret
+
+.asm_e0629
+ hlcoord 13, 10
+rept 2
+ add hl, bc
+endr
+ ld [hl], $3d
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hl], $3a
+ ret
+; e0637
+
+Functione0637: ; e0637
+ call Functione0398
+ add hl, hl
+ ld de, Jumptable_e0643
+ add hl, de
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e0643
+
+Jumptable_e0643: ; e0643
+ dw Functione06a3
+ dw Functione06a3
+ dw Functione06a6
+ dw Functione06a6
+ dw Functione06b0
+ dw Functione06b0
+ dw Functione06a3
+ dw Functione06a3
+ dw Functione06ec
+ dw Functione06f6
+ dw Functione0702
+ dw Functione070e
+ dw Functione06c2
+ dw Functione0722
+ dw Functione0770
+ dw Functione0774
+ dw Functione0778
+ dw Functione077c
+ dw Functione06c2
+ dw Functione072c
+ dw Functione0780
+ dw Functione0784
+ dw Functione0788
+ dw Functione078c
+ dw Functione06cc
+ dw Functione0738
+ dw Functione0790
+ dw Functione0794
+ dw Functione0798
+ dw Functione079c
+ dw Functione06cc
+ dw Functione0744
+ dw Functione07a0
+ dw Functione07a4
+ dw Functione07a8
+ dw Functione07ac
+ dw Functione06d8
+ dw Functione0750
+ dw Functione07b0
+ dw Functione07b4
+ dw Functione07b8
+ dw Functione07bc
+ dw Functione06d8
+ dw Functione075c
+ dw Functione07c0
+ dw Functione07c4
+ dw Functione07c8
+ dw Functione07cc
+; e06a3
+
+Functione06a3: ; e06a3
+ jp Functione07db
+; e06a6
+
+Functione06a6: ; e06a6
+ ld a, [CurEnemyMoveNum]
+ and $2
+ jp nz, Functione07db
+ jr Functione06ba
+
+Functione06b0: ; e06b0
+ ld a, [CurEnemyMoveNum]
+ and $2
+ jr nz, Functione06ba
+ jp Functione07db
+
+Functione06ba: ; e06ba
+ ld c, $6
+ ld de, SFX_2ND_PLACE
+ jp Functione07eb
+; e06c2
+
+Functione06c2: ; e06c2
+ ld a, [CurEnemyMoveNum]
+ and $18
+ jr z, Functione06e4
+ jp Functione07db
+
+Functione06cc: ; e06cc
+ ld a, [CurEnemyMoveNum]
+ and $18
+ cp $8
+ jr z, Functione06e4
+ jp Functione07db
+
+Functione06d8: ; e06d8
+ ld a, [CurEnemyMoveNum]
+ and $18
+ cp $10
+ jr z, Functione06e4
+ jp Functione07db
+
+Functione06e4: ; e06e4
+ ld c, $9
+ ld de, SFX_2ND_PLACE
+ jp Functione07eb
+; e06ec
+
+Functione06ec: ; e06ec
+ ld a, [CurEnemyMoveNum]
+ and $3
+ jr z, Functione071a
+ jp Functione07db
+
+Functione06f6: ; e06f6
+ ld a, [CurEnemyMoveNum]
+ and $3
+ cp $1
+ jr z, Functione071a
+ jp Functione07db
+
+Functione0702: ; e0702
+ ld a, [CurEnemyMoveNum]
+ and $3
+ cp $2
+ jr z, Functione071a
+ jp Functione07db
+
+Functione070e: ; e070e
+ ld a, [CurEnemyMoveNum]
+ and $3
+ cp $3
+ jr z, Functione071a
+ jp Functione07db
+
+Functione071a: ; e071a
+ ld c, $c
+ ld de, SFX_2ND_PLACE
+ jp Functione07eb
+; e0722
+
+Functione0722: ; e0722
+ ld a, [CurEnemyMoveNum]
+ and $1c
+ jr z, Functione0768
+ jp Functione07db
+
+Functione072c: ; e072c
+ ld a, [CurEnemyMoveNum]
+ and $1c
+ cp $4
+ jr z, Functione0768
+ jp Functione07db
+
+Functione0738: ; e0738
+ ld a, [CurEnemyMoveNum]
+ and $1c
+ cp $8
+ jr z, Functione0768
+ jp Functione07db
+
+Functione0744: ; e0744
+ ld a, [CurEnemyMoveNum]
+ and $1c
+ cp $c
+ jr z, Functione0768
+ jp Functione07db
+
+Functione0750: ; e0750
+ ld a, [CurEnemyMoveNum]
+ and $1c
+ cp $10
+ jr z, Functione0768
+ jp Functione07db
+
+Functione075c: ; e075c
+ ld a, [CurEnemyMoveNum]
+ and $1c
+ cp $14
+ jr z, Functione0768
+ jp Functione07db
+
+Functione0768: ; e0768
+ ld c, $12
+ ld de, SFX_2ND_PLACE
+ jp Functione07eb
+; e0770
+
+
+Functione0770: ; e0770
+ ld e, $0
+ jr Functione07ce
+
+Functione0774: ; e0774
+ ld e, $1
+ jr Functione07ce
+
+Functione0778: ; e0778
+ ld e, $2
+ jr Functione07ce
+
+Functione077c: ; e077c
+ ld e, $3
+ jr Functione07ce
+
+Functione0780: ; e0780
+ ld e, $4
+ jr Functione07ce
+
+Functione0784: ; e0784
+ ld e, $5
+ jr Functione07ce
+
+Functione0788: ; e0788
+ ld e, $6
+ jr Functione07ce
+
+Functione078c: ; e078c
+ ld e, $7
+ jr Functione07ce
+
+Functione0790: ; e0790
+ ld e, $8
+ jr Functione07ce
+
+Functione0794: ; e0794
+ ld e, $9
+ jr Functione07ce
+
+Functione0798: ; e0798
+ ld e, $a
+ jr Functione07ce
+
+Functione079c: ; e079c
+ ld e, $b
+ jr Functione07ce
+
+Functione07a0: ; e07a0
+ ld e, $c
+ jr Functione07ce
+
+Functione07a4: ; e07a4
+ ld e, $d
+ jr Functione07ce
+
+Functione07a8: ; e07a8
+ ld e, $e
+ jr Functione07ce
+
+Functione07ac: ; e07ac
+ ld e, $f
+ jr Functione07ce
+
+Functione07b0: ; e07b0
+ ld e, $10
+ jr Functione07ce
+
+Functione07b4: ; e07b4
+ ld e, $11
+ jr Functione07ce
+
+Functione07b8: ; e07b8
+ ld e, $12
+ jr Functione07ce
+
+Functione07bc: ; e07bc
+ ld e, $13
+ jr Functione07ce
+
+Functione07c0: ; e07c0
+ ld e, $14
+ jr Functione07ce
+
+Functione07c4: ; e07c4
+ ld e, $15
+ jr Functione07ce
+
+Functione07c8: ; e07c8
+ ld e, $16
+ jr Functione07ce
+
+Functione07cc: ; e07cc
+ ld e, $17
+
+Functione07ce: ; e07ce
+ ld a, [CurEnemyMoveNum]
+ cp e
+ jr nz, Functione07db
+ ld c, $48
+ ld de, SFX_2ND_PLACE
+ jr Functione07eb
+
+Functione07db: ; e07db
+ ld de, SFX_WRONG
+ call PlaySFX
+ ld hl, UnknownText_0xe0816
+ call Functione0489
+ call WaitSFX
+ ret
+
+Functione07eb: ; e07eb
+ push bc
+ push de
+ ld hl, UnknownText_0xe0811
+ call Functione0489
+ pop de
+ call PlaySFX
+ call WaitSFX
+ pop bc
+.asm_e07fb
+ push bc
+ call Functione0833
+ jr c, .asm_e0804
+ call Functione081b
+
+.asm_e0804
+ call Functione049c
+ ld c, 2
+ call DelayFrames
+ pop bc
+ dec c
+ jr nz, .asm_e07fb
+ ret
+; e0811
+
+UnknownText_0xe0811: ; 0xe0811
+ ; Yeah!
+ text_jump UnknownText_0x1c5813
+ db "@"
+; 0xe0816
+
+UnknownText_0xe0816: ; 0xe0816
+ ; Darn…
+ text_jump UnknownText_0x1c581a
+ db "@"
+; 0xe081b
+
+Functione081b: ; e081b
+ ld a, [Coins]
+ ld h, a
+ ld a, [Coins + 1]
+ ld l, a
+ inc hl
+ ld a, h
+ ld [Coins], a
+ ld a, l
+ ld [Coins + 1], a
+ ld de, SFX_PAY_DAY
+ call PlaySFX
+ ret
+; e0833
+
+Functione0833: ; e0833
+ ld a, [Coins]
+ cp 9999 / $100
+ jr c, .asm_e0847
+ jr z, .asm_e083e
+ jr .asm_e0845
+
+.asm_e083e
+ ld a, [Coins + 1]
+ cp 9999 % $100
+ jr c, .asm_e0847
+
+.asm_e0845
+ scf
+ ret
+
+.asm_e0847
+ and a
+ ret
+; e0849
+
+Functione0849: ; e0849
+ call Functione03ac
+ ld hl, Unknown_e0853
+ call Functione0509
+ ret
+; e0853
+
+Unknown_e0853: ; e0853
+ db 18
+ db $00, $00, $04, $00
+ db $00, $08, $06, $00
+ db $00, $10, $06, $00
+ db $00, $18, $06, $00
+ db $00, $20, $04, $20
+ db $08, $00, $05, $00
+ db $08, $20, $05, $20
+ db $10, $00, $05, $00
+ db $10, $20, $05, $20
+ db $18, $00, $05, $00
+ db $18, $20, $05, $20
+ db $20, $00, $05, $00
+ db $20, $20, $05, $20
+ db $28, $00, $04, $40
+ db $28, $08, $06, $40
+ db $28, $10, $06, $40
+ db $28, $18, $06, $40
+ db $28, $20, $04, $60
+; e089c
+
+Functione089c: ; e089c
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_LEFT
+ jp nz, Functione08b8
+ ld a, [hl]
+ and D_RIGHT
+ jp nz, Functione08ef
+ ld a, [hl]
+ and D_UP
+ jp nz, Functione090a
+ ld a, [hl]
+ and D_DOWN
+ jp nz, Functione093d
+ ret
+; e08b8
+
+Functione08b8: ; e08b8
+ ld hl, wcf65
+ ld a, [wcf64]
+ and a
+ jr z, .asm_e08d5
+ cp $1
+ jr z, .asm_e08cc
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jp Functione0959
+
+.asm_e08cc
+ ld a, [hl]
+ cp $3
+ jr c, .asm_e08e2
+ dec [hl]
+ jp Functione0959
+
+.asm_e08d5
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $3
+ jr c, .asm_e08e2
+rept 2
+ dec [hl]
+endr
+ jp Functione0959
+
+.asm_e08e2
+ ld a, $2
+ ld [wcf64], a
+ ld a, $1
+ ld [wcf65], a
+ jp Functione0959
+; e08ef
+
+Functione08ef: ; e08ef
+ ld hl, wcf65
+ ld a, [wcf64]
+ and a
+ jr z, .asm_e08ff
+ ld a, [hl]
+ cp $5
+ ret nc
+ inc [hl]
+ jr Functione0959
+
+.asm_e08ff
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $4
+ ret nc
+rept 2
+ inc [hl]
+endr
+ jr Functione0959
+
+Functione090a: ; e090a
+ ld hl, wcf64
+ ld a, [wcf65]
+ and a
+ jr z, .asm_e0925
+ cp $1
+ jr z, .asm_e091d
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ jr Functione0959
+
+.asm_e091d
+ ld a, [hl]
+ cp $3
+ jr c, .asm_e0931
+ dec [hl]
+ jr Functione0959
+
+.asm_e0925
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $3
+ jr c, .asm_e0931
+rept 2
+ dec [hl]
+endr
+ jr Functione0959
+
+.asm_e0931
+ ld a, $1
+ ld [wcf64], a
+ ld a, $2
+ ld [wcf65], a
+ jr Functione0959
+
+Functione093d: ; e093d
+ ld hl, wcf64
+ ld a, [wcf65]
+ and a
+ jr z, .asm_e0950
+ ld hl, wcf64
+ ld a, [hl]
+ cp $7
+ ret nc
+ inc [hl]
+ jr Functione0959
+
+.asm_e0950
+ ld a, [hl]
+ and $e
+ ld [hl], a
+ cp $6
+ ret nc
+rept 2
+ inc [hl]
+endr
+
+Functione0959: ; e0959
+ ld de, SFX_POKEBALLS_PLACED_ON_TABLE
+ call PlaySFX
+ ret
+; e0960
+
+Functione0960: ; e0960
+ call ClearSprites
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_e096d
+ ld a, [hVBlankCounter]
+ and $4
+ ret nz
+
+.asm_e096d
+ call Functione0398
+rept 2
+ add hl, hl
+endr
+ ld de, Unknown_e0981
+ add hl, de
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Functione0509
+ ret
+; e0981
+
+Unknown_e0981: ; e0981
+ dbbw $58, $10, Unknown_e0c26
+ dbbw $60, $10, Unknown_e0c26
+ dbbw $68, $10, Unknown_e0b8d
+ dbbw $68, $10, Unknown_e0b8d
+ dbbw $88, $10, Unknown_e0b8d
+ dbbw $88, $10, Unknown_e0b8d
+
+ dbbw $58, $18, Unknown_e0c26
+ dbbw $60, $18, Unknown_e0c26
+ dbbw $68, $18, Unknown_e0a5a
+ dbbw $78, $18, Unknown_e0a5a
+ dbbw $88, $18, Unknown_e0a5a
+ dbbw $98, $18, Unknown_e0a5a
+
+ dbbw $58, $28, Unknown_e0b14
+ dbbw $60, $28, Unknown_e0ac3
+ dbbw $68, $28, Unknown_e0a41
+ dbbw $78, $28, Unknown_e0a41
+ dbbw $88, $28, Unknown_e0a41
+ dbbw $98, $28, Unknown_e0a41
+ dbbw $58, $28, Unknown_e0b14
+
+ dbbw $60, $34, Unknown_e0ac3
+ dbbw $68, $34, Unknown_e0a41
+ dbbw $78, $34, Unknown_e0a41
+ dbbw $88, $34, Unknown_e0a41
+ dbbw $98, $34, Unknown_e0a41
+
+ dbbw $58, $40, Unknown_e0b14
+ dbbw $60, $40, Unknown_e0ac3
+ dbbw $68, $40, Unknown_e0a41
+ dbbw $78, $40, Unknown_e0a41
+ dbbw $88, $40, Unknown_e0a41
+ dbbw $98, $40, Unknown_e0a41
+ dbbw $58, $40, Unknown_e0b14
+
+ dbbw $60, $4c, Unknown_e0ac3
+ dbbw $68, $4c, Unknown_e0a41
+ dbbw $78, $4c, Unknown_e0a41
+ dbbw $88, $4c, Unknown_e0a41
+ dbbw $98, $4c, Unknown_e0a41
+
+ dbbw $58, $58, Unknown_e0b14
+ dbbw $60, $58, Unknown_e0ac3
+ dbbw $68, $58, Unknown_e0a41
+ dbbw $78, $58, Unknown_e0a41
+ dbbw $88, $58, Unknown_e0a41
+ dbbw $98, $58, Unknown_e0a41
+ dbbw $58, $58, Unknown_e0b14
+
+ dbbw $60, $64, Unknown_e0ac3
+ dbbw $68, $64, Unknown_e0a41
+ dbbw $78, $64, Unknown_e0a41
+ dbbw $88, $64, Unknown_e0a41
+ dbbw $98, $64, Unknown_e0a41
+; e0a41
+
+Unknown_e0a41: ; e0a41
+ db 6
+ db $00, $ff, $00, $80
+ db $00, $00, $02, $80
+ db $00, $08, $03, $80
+ db $05, $ff, $00, $c0
+ db $05, $00, $02, $c0
+ db $05, $08, $03, $80
+
+Unknown_e0a5a: ; e0a5a
+ db 26
+ db $00, $ff, $00, $80
+ db $00, $00, $02, $80
+ db $00, $08, $00, $a0
+ db $08, $ff, $01, $80
+ db $08, $08, $01, $a0
+ db $10, $ff, $01, $80
+ db $10, $08, $03, $80
+ db $18, $ff, $01, $80
+ db $18, $08, $03, $80
+ db $20, $ff, $01, $80
+ db $20, $08, $03, $80
+ db $28, $ff, $01, $80
+ db $28, $08, $03, $80
+ db $30, $ff, $01, $80
+ db $30, $08, $03, $80
+ db $38, $ff, $01, $80
+ db $38, $08, $03, $80
+ db $40, $ff, $01, $80
+ db $40, $08, $03, $80
+ db $48, $ff, $01, $80
+ db $48, $08, $03, $80
+ db $50, $ff, $01, $80
+ db $50, $08, $03, $80
+ db $51, $ff, $00, $c0
+ db $51, $00, $02, $c0
+ db $51, $08, $03, $80
+
+Unknown_e0ac3: ; e0ac3
+ db 20
+ db $00, $ff, $00, $80
+ db $00, $00, $02, $80
+ db $00, $08, $02, $80
+ db $00, $10, $03, $80
+ db $00, $18, $02, $80
+ db $00, $20, $03, $80
+ db $00, $28, $02, $80
+ db $00, $30, $03, $80
+ db $00, $38, $02, $80
+ db $00, $40, $03, $80
+ db $05, $ff, $00, $c0
+ db $05, $00, $02, $c0
+ db $05, $08, $02, $c0
+ db $05, $10, $03, $80
+ db $05, $18, $02, $c0
+ db $05, $20, $03, $80
+ db $05, $28, $02, $c0
+ db $05, $30, $03, $80
+ db $05, $38, $02, $c0
+ db $05, $40, $03, $80
+
+Unknown_e0b14: ; e0b14
+ db 30
+ db $00, $00, $00, $80
+ db $00, $08, $02, $80
+ db $00, $10, $02, $80
+ db $00, $18, $03, $80
+ db $00, $20, $02, $80
+ db $00, $28, $03, $80
+ db $00, $30, $02, $80
+ db $00, $38, $03, $80
+ db $00, $40, $02, $80
+ db $00, $48, $03, $80
+ db $08, $00, $01, $80
+ db $08, $18, $03, $80
+ db $08, $28, $03, $80
+ db $08, $38, $03, $80
+ db $08, $48, $03, $80
+ db $10, $00, $01, $80
+ db $10, $18, $03, $80
+ db $10, $28, $03, $80
+ db $10, $38, $03, $80
+ db $10, $48, $03, $80
+ db $11, $00, $00, $c0
+ db $11, $08, $02, $c0
+ db $11, $10, $02, $c0
+ db $11, $18, $03, $80
+ db $11, $20, $03, $80
+ db $11, $28, $03, $80
+ db $11, $30, $03, $80
+ db $11, $38, $03, $80
+ db $11, $40, $03, $80
+ db $11, $48, $03, $80
+
+Unknown_e0b8d: ; e0b8d
+ db 38
+ db $00, $ff, $00, $80
+ db $00, $18, $00, $a0
+ db $08, $ff, $01, $80
+ db $08, $18, $01, $a0
+ db $10, $ff, $01, $80
+ db $10, $18, $01, $a0
+ db $18, $ff, $01, $80
+ db $18, $08, $03, $80
+ db $18, $18, $03, $80
+ db $20, $ff, $01, $80
+ db $20, $08, $03, $80
+ db $20, $18, $03, $80
+ db $28, $ff, $01, $80
+ db $28, $08, $03, $80
+ db $28, $18, $03, $80
+ db $30, $ff, $01, $80
+ db $30, $08, $03, $80
+ db $30, $18, $03, $80
+ db $38, $ff, $01, $80
+ db $38, $08, $03, $80
+ db $38, $18, $03, $80
+ db $40, $ff, $01, $80
+ db $40, $08, $03, $80
+ db $40, $18, $03, $80
+ db $48, $ff, $01, $80
+ db $48, $08, $03, $80
+ db $48, $18, $03, $80
+ db $50, $ff, $01, $80
+ db $50, $08, $03, $80
+ db $50, $18, $03, $80
+ db $58, $ff, $01, $80
+ db $58, $08, $03, $80
+ db $58, $18, $03, $80
+ db $59, $ff, $00, $c0
+ db $59, $00, $02, $c0
+ db $59, $08, $03, $c0
+ db $59, $10, $02, $c0
+ db $59, $18, $03, $e0
+
+Unknown_e0c26: ; e0c26
+ db 4
+ db $00, $00, $00, $80
+ db $00, $08, $00, $a0
+ db $08, $00, $00, $c0
+ db $08, $08, $00, $e0
+; e0c37
+
+Functione0c37: ; e0c37 (38:4c37)
+ ld a, [hCGB]
+ and a
+ ret z
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ xor a
+ call ByteFill
+ hlcoord 12, 1, AttrMap
+ lb bc, 2, 2
+ ld a, $1
+ call Functione04e7
+ hlcoord 14, 1, AttrMap
+ lb bc, 2, 2
+ ld a, $2
+ call Functione04e7
+ hlcoord 16, 1, AttrMap
+ lb bc, 2, 2
+ ld a, $3
+ call Functione04e7
+ hlcoord 18, 1, AttrMap
+ lb bc, 2, 2
+ ld a, $4
+ call Functione04e7
+ hlcoord 9, 0, AttrMap
+ lb bc, 12, 1
+ ld a, $1
+ call Functione04e7
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld hl, Palette_e0c93
+ ld de, wMapPals
+ ld bc, $48
+ call CopyBytes
+ pop af
+ ld [rSVBK], a
+ ret
+; e0c93 (38:4c93)
+
+Palette_e0c93: ; 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
+; e0cdb
+
+LZ_e0cdb: ; e0cdb
+INCBIN "gfx/unknown/0e0cdb.2bpp.lz"
+
+GFX_e0cf6: ; e0cf6
+INCBIN "gfx/unknown/0e0cf6.2bpp"
+
+GFX_e0d06: ; e0d06
+INCBIN "gfx/unknown/0e0d06.2bpp"
+
+LZ_e0d16: ; e0d16
+INCBIN "gfx/unknown/0e0d16.2bpp.lz"
+
+LZ_e0ea8: ; e0ea8
+INCBIN "gfx/unknown/0e0ea8.2bpp.lz"
+
+Unknown_e110c: ; 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
+; e1190
+
+Functione1190: ; e1190
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ call DisableLCD
+ ld hl, wc608
+ ld bc, $1e0
+ xor a
+ call ByteFill
+ ld hl, GFX_e17c5
+ ld de, VTiles1 tile $60
+ ld bc, $40
+ call CopyBytes
+ ld hl, LZ_e1805
+ ld de, VTiles1 tile $6d
+ call Decompress
+ call Functione17a3
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $ee
+ call ByteFill
+ hlcoord 4, 3
+ lb bc, 12, 12
+ ld a, $ef
+ call Functione13ee
+ call Functione124e
+ call Functione13fe
+ call Functione127d
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ ld [rWY], a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld a, $93
+ ld [rLCDC], a
+ call WaitBGMap
+ ld b, $18
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $24
+ call Functioncf8
+ xor a
+ ld [wd0ec], a
+ call DelayFrame
+.asm_e1217
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_e123d
+ call Functione12ca
+ ld a, [wcf64]
+ and a
+ jr nz, .asm_e1230
+ ld a, [hVBlankCounter]
+ and $10
+ jr z, .asm_e1235
+
+.asm_e1230
+ call Functione14d9
+ jr .asm_e1238
+
+.asm_e1235
+ call ClearSprites
+
+.asm_e1238
+ call DelayFrame
+ jr .asm_e1217
+
+.asm_e123d
+ pop af
+ ld [hInMenu], a
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ ld a, $e3
+ ld [rLCDC], a
+ ret
+; e124e
+
+Functione124e: ; e124e
+ ld c, $1
+ ld b, $10
+.asm_e1252
+ call Random
+ and $f
+ ld hl, Unknown_e126d
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld e, [hl]
+ ld hl, wc6d0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e1252
+ ld [hl], c
+ inc c
+ dec b
+ jr nz, .asm_e1252
+ ret
+; e126d
+
+Unknown_e126d: ; e126d
+ db $00, $01, $02, $03
+ db $04, $05, $06, $0b
+ db $0c, $11, $12, $17
+ db $18, $1d, $1e, $23
+; e127d
+
+Functione127d: ; e127d
+ call Functione128d
+ hlcoord 5, 16
+ ld a, $f6
+ ld c, $a
+.asm_e1287
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e1287
+ ret
+; e128d
+
+Functione128d: ; e128d
+ hlcoord 4, 15
+ ld a, $f0
+ ld [hli], a
+ ld bc, $a
+ ld a, $f1
+ call ByteFill
+ hlcoord 15, 15
+ ld a, $f2
+ ld [hli], a
+ hlcoord 4, 16
+ ld a, $f3
+ ld [hli], a
+ ld bc, $a
+ ld a, $ef
+ call ByteFill
+ hlcoord 15, 16
+ ld a, $f3
+ ld [hli], a
+ hlcoord 4, 17
+ ld a, $f4
+ ld [hli], a
+ ld bc, $a
+ ld a, $f1
+ call ByteFill
+ hlcoord 15, 17
+ ld a, $f5
+ ld [hl], a
+ ret
+; e12ca
+
+Functione12ca: ; e12ca
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_e12d9
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e12d9
+
+Jumptable_e12d9: ; e12d9
+ dw Functione12db
+; e12db
+
+Functione12db: ; e12db
+ ld a, [hJoyPressed]
+ and START
+ jp nz, Functione13de
+ ld a, [hJoyPressed]
+ and A_BUTTON
+ jp nz, Functione1376
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_e1301
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_e130d
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .asm_e1325
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .asm_e1345
+ ret
+
+.asm_e1301
+ ld hl, wcf65
+ ld a, [hl]
+ cp $6
+ ret c
+ sub $6
+ ld [hl], a
+ jr .asm_e1364
+
+.asm_e130d
+ ld hl, wcf65
+ ld a, [hl]
+ cp $19
+ ret z
+ cp $1a
+ ret z
+ cp $1b
+ ret z
+ cp $1c
+ ret z
+ cp $1e
+ ret nc
+ add $6
+ ld [hl], a
+ jr .asm_e1364
+
+.asm_e1325
+ ld hl, wcf65
+ ld a, [hl]
+ and a
+ ret z
+ cp $6
+ ret z
+ cp $c
+ ret z
+ cp $12
+ ret z
+ cp $18
+ ret z
+ cp $1e
+ ret z
+ cp $23
+ jr z, .asm_e1341
+ dec [hl]
+ jr .asm_e1364
+
+.asm_e1341
+ ld [hl], $1e
+ jr .asm_e1364
+
+.asm_e1345
+ ld hl, wcf65
+ ld a, [hl]
+ cp $5
+ ret z
+ cp $b
+ ret z
+ cp $11
+ ret z
+ cp $17
+ ret z
+ cp $1d
+ ret z
+ cp $23
+ ret z
+ cp $1e
+ jr z, .asm_e1362
+ inc [hl]
+ jr .asm_e1364
+
+.asm_e1362
+ ld [hl], $23
+
+.asm_e1364
+ ld a, [wcf64]
+ and a
+ jr nz, .asm_e136f
+ ld de, SFX_POUND
+ jr .asm_e1372
+
+.asm_e136f
+ ld de, SFX_MOVE_PUZZLE_PIECE
+
+.asm_e1372
+ call PlaySFX
+ ret
+; e1376
+
+Functione1376: ; e1376
+ ld a, [wcf64]
+ and a
+ jr nz, .asm_e139f
+ call Functione1475
+ and a
+ jr z, Functione13e4
+ ld de, SFX_MEGA_KICK
+ call PlaySFX
+ ld [hl], $0
+ ld [wcf66], a
+ call Functione14d9
+ call Functione1441
+ call WaitBGMap
+ call WaitSFX
+ ld a, $1
+ ld [wcf64], a
+ ret
+
+.asm_e139f
+ call Functione1475
+ and a
+ jr nz, Functione13e4
+ ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
+ call PlaySFX
+ ld a, [wcf66]
+ ld [hl], a
+ call Functione141f
+ call WaitBGMap
+ xor a
+ ld [wcf66], a
+ call Functione14d9
+ xor a
+ ld [wcf64], a
+ call WaitSFX
+ call Functione14a0
+ ret nc
+ call Functione128d
+ call ClearSprites
+ ld de, SFX_1ST_PLACE
+ call PlaySFX
+ call WaitSFX
+ call SimpleWaitPressAorB
+ ld a, $1
+ ld [wd0ec], a
+
+Functione13de: ; e13de
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Functione13e4: ; e13e4
+ ld de, SFX_WRONG
+ call PlaySFX
+ call WaitSFX
+ ret
+; e13ee
+
+Functione13ee: ; e13ee
+ ld de, SCREEN_WIDTH
+.asm_e13f1
+ push bc
+ push hl
+.asm_e13f3
+ ld [hli], a
+ dec c
+ jr nz, .asm_e13f3
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_e13f1
+ ret
+; e13fe
+
+Functione13fe: ; e13fe
+ xor a
+ ld [wcf65], a
+ ld c, $24
+.asm_e1404
+ push bc
+ call Functione1475
+ ld [wcf66], a
+ and a
+ jr z, .asm_e1413
+ call Functione141f
+ jr .asm_e1416
+
+.asm_e1413
+ call Functione1441
+
+.asm_e1416
+ ld hl, wcf65
+ inc [hl]
+ pop bc
+ dec c
+ jr nz, .asm_e1404
+ ret
+; e141f
+
+Functione141f: ; e141f
+ ld a, $2
+ call Functione1463
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ call Functione1481
+ pop hl
+ ld de, SCREEN_WIDTH
+ ld b, $3
+.asm_e1431
+ ld c, $3
+ push hl
+.asm_e1434
+ ld [hli], a
+ inc a
+ dec c
+ jr nz, .asm_e1434
+ add $9
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e1431
+ ret
+; e1441
+
+Functione1441: ; e1441
+ ld a, $2
+ call Functione1463
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+ ld a, $4
+ call Functione1463
+ ld a, [hl]
+ pop hl
+ ld de, SCREEN_WIDTH
+ ld b, $3
+.asm_e1456
+ ld c, $3
+ push hl
+.asm_e1459
+ ld [hli], a
+ dec c
+ jr nz, .asm_e1459
+ pop hl
+ add hl, de
+ dec b
+ jr nz, .asm_e1456
+ ret
+; e1463
+
+Functione1463: ; e1463
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_e1559
+ add hl, de
+ ld a, [wcf65]
+ ld e, a
+rept 4
+ add hl, de
+endr
+rept 2
+ add hl, de
+endr
+ ret
+; e1475
+
+Functione1475: ; e1475
+ ld hl, wc6d0
+ ld a, [wcf65]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ret
+; e1481
+
+Functione1481: ; e1481
+ ld a, [wcf66]
+ ld hl, Unknown_e148f
+ add l
+ ld l, a
+ ld a, $0
+ adc h
+ ld h, a
+ ld a, [hl]
+ ret
+; e148f
+
+Unknown_e148f: ; e148f
+ db $e0
+ db $00, $03, $06, $09
+ db $24, $27, $2a, $2d
+ db $48, $4b, $4e, $51
+ db $6c, $6f, $72, $75
+; e14a0
+
+Functione14a0: ; e14a0
+ ld hl, Unknown_e14b5
+ ld de, wc6d0
+ ld c, $24
+.asm_e14a8
+ ld a, [de]
+ cp [hl]
+ jr nz, .asm_e14b3
+ inc de
+ inc hl
+ dec c
+ jr nz, .asm_e14a8
+ scf
+ ret
+
+.asm_e14b3
+ and a
+ ret
+; e14b5
+
+Unknown_e14b5: ; e14b5
+ db $00, $00, $00, $00, $00, $00
+ db $00, $01, $02, $03, $04, $00
+ db $00, $05, $06, $07, $08, $00
+ db $00, $09, $0a, $0b, $0c, $00
+ db $00, $0d, $0e, $0f, $10, $00
+ db $00, $00, $00, $00, $00, $00
+; e14d9
+
+Functione14d9: ; e14d9
+ call Functione1481
+ ld [wd002], a
+ xor a
+ call Functione1463
+ ld a, [hli]
+ ld b, [hl]
+ ld c, a
+ ld a, [wd002]
+ cp $e0
+ jr z, .asm_e14f2
+ ld hl, Unknown_e150f
+ jr .asm_e14f5
+
+.asm_e14f2
+ ld hl, Unknown_e1534
+
+.asm_e14f5
+ ld de, Sprites
+.asm_e14f8
+ ld a, [hli]
+ cp $ff
+ ret z
+ add b
+ ld [de], a
+ inc de
+ ld a, [hli]
+ add c
+ ld [de], a
+ inc de
+ ld a, [wd002]
+ add [hl]
+ ld [de], a
+ inc hl
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ jr .asm_e14f8
+; e150f
+
+Unknown_e150f: ; e150f
+ db $f4, $f4, $00, $00
+ db $f4, $fc, $01, $00
+ db $f4, $04, $02, $00
+ db $fc, $f4, $0c, $00
+ db $fc, $fc, $0d, $00
+ db $fc, $04, $0e, $00
+ db $04, $f4, $18, $00
+ db $04, $fc, $19, $00
+ db $04, $04, $1a, $00
+ db $ff
+
+Unknown_e1534: ; e1534
+ db $f4, $f4, $00, $00
+ db $f4, $fc, $01, $00
+ db $f4, $04, $00, $20
+ db $fc, $f4, $02, $00
+ db $fc, $fc, $03, $00
+ db $fc, $04, $02, $20
+ db $04, $f4, $00, $40
+ db $04, $fc, $01, $40
+ db $04, $04, $00, $60
+ db $ff
+
+Unknown_e1559: ; e1559
+
+macro_e1559: macro
+ db \1, \2
+ dwcoord \3, \4
+ db \5, \6
+endm
+
+ macro_e1559 $1c, $1c, 1, 0, $ee, $00
+ macro_e1559 $34, $1c, 4, 0, $ee, $00
+ macro_e1559 $4c, $1c, 7, 0, $ee, $00
+ macro_e1559 $64, $1c, 10, 0, $ee, $00
+ macro_e1559 $7c, $1c, 13, 0, $ee, $00
+ macro_e1559 $94, $1c, 16, 0, $ee, $00
+ macro_e1559 $1c, $34, 1, 3, $ee, $00
+ macro_e1559 $34, $34, 4, 3, $ef, $00
+ macro_e1559 $4c, $34, 7, 3, $ef, $00
+ macro_e1559 $64, $34, 10, 3, $ef, $00
+ macro_e1559 $7c, $34, 13, 3, $ef, $00
+ macro_e1559 $94, $34, 16, 3, $ee, $00
+ macro_e1559 $1c, $4c, 1, 6, $ee, $00
+ macro_e1559 $34, $4c, 4, 6, $ef, $00
+ macro_e1559 $4c, $4c, 7, 6, $ef, $00
+ macro_e1559 $64, $4c, 10, 6, $ef, $00
+ macro_e1559 $7c, $4c, 13, 6, $ef, $00
+ macro_e1559 $94, $4c, 16, 6, $ee, $00
+ macro_e1559 $1c, $64, 1, 9, $ee, $00
+ macro_e1559 $34, $64, 4, 9, $ef, $00
+ macro_e1559 $4c, $64, 7, 9, $ef, $00
+ macro_e1559 $64, $64, 10, 9, $ef, $00
+ macro_e1559 $7c, $64, 13, 9, $ef, $00
+ macro_e1559 $94, $64, 16, 9, $ee, $00
+ macro_e1559 $1c, $7c, 1, 12, $ee, $00
+ macro_e1559 $34, $7c, 4, 12, $ef, $00
+ macro_e1559 $4c, $7c, 7, 12, $ef, $00
+ macro_e1559 $64, $7c, 10, 12, $ef, $00
+ macro_e1559 $7c, $7c, 13, 12, $ef, $00
+ macro_e1559 $94, $7c, 16, 12, $ee, $00
+ macro_e1559 $1c, $94, 1, 15, $ee, $00
+ macro_e1559 $34, $94, 4, 15, $ee, $00
+ macro_e1559 $4c, $94, 7, 15, $ee, $00
+ macro_e1559 $64, $94, 10, 15, $ee, $00
+ macro_e1559 $7c, $94, 13, 15, $ee, $00
+ macro_e1559 $94, $94, 16, 15, $ee, $00
+
+Functione1631: ; e1631
+ ld hl, VTiles2
+ ld de, VTiles0
+ ld b, $6
+.asm_e1639
+ push bc
+ push hl
+ push hl
+ call Functione1654
+ pop hl
+ ld bc, 8
+ add hl, bc
+ call Functione1654
+ pop hl
+ ld bc, $60
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_e1639
+ call Functione16c7
+ ret
+; e1654
+
+Functione1654: ; e1654
+ ld c, $6
+.asm_e1656
+ push bc
+ push hl
+ push hl
+ ld c, $4
+.asm_e165b
+ push bc
+ ld a, [hli]
+ and $f0
+ swap a
+ call Functione16aa
+ ld c, a
+ ld a, [hli]
+ and $f0
+ swap a
+ call Functione16aa
+ ld b, a
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_e165b
+ pop hl
+ ld c, $4
+.asm_e1681
+ push bc
+ ld a, [hli]
+ and $f
+ call Functione16aa
+ ld c, a
+ ld a, [hli]
+ and $f
+ call Functione16aa
+ ld b, a
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ dec c
+ jr nz, .asm_e1681
+ pop hl
+ ld bc, $10
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_e1656
+ ret
+; e16aa
+
+Functione16aa: ; e16aa
+ push hl
+ ld hl, Unknown_e16b7
+ add l
+ ld l, a
+ ld a, 0
+ adc h
+ ld h, a
+ ld a, [hl]
+ pop hl
+ ret
+; e16b7
+
+Unknown_e16b7: ; e16b7
+ db $00, $03, $0c, $0f
+ db $30, $33, $3c, $3f
+ db $c0, $c3, $cc, $cf
+ db $f0, $f3, $fc, $ff
+; e16c7
+
+Functione16c7: ; e16c7
+ ld hl, Unknown_e1703
+ ld a, $8
+.asm_e16cc
+ push af
+ push hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Functione16e2
+ pop hl
+rept 4
+ inc hl
+endr
+ pop af
+ dec a
+ jr nz, .asm_e16cc
+ ret
+; e16e2
+
+Functione16e2: ; e16e2
+ lb bc, 4, 4
+.asm_e16e5
+ push bc
+.asm_e16e6
+ push de
+ push hl
+ ld b, $10
+.asm_e16ea
+ ld a, [de]
+ or [hl]
+ ld [hli], a
+ inc de
+ dec b
+ jr nz, .asm_e16ea
+ pop hl
+ ld de, $30
+ add hl, de
+ pop de
+ dec c
+ jr nz, .asm_e16e6
+ ld bc, $180
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_e16e5
+ ret
+; e1703
+
+Unknown_e1703: ; e1703
+ dw GFX_e1723 + $00, $8000
+ dw GFX_e1723 + $10, $8010
+ dw GFX_e1723 + $20, $8020
+ dw GFX_e1723 + $30, $80c0
+ dw GFX_e1723 + $40, $80e0
+ dw GFX_e1723 + $50, $8180
+ dw GFX_e1723 + $60, $8190
+ dw GFX_e1723 + $70, $81a0
+; e1723
+
+GFX_e1723: ; e1723
+INCBIN "gfx/unknown/0e1723.2bpp"
+
+Functione17a3: ; e17a3
+ ld a, [ScriptVar]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_e17bd
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, VTiles2
+ call Decompress
+ call Functione1631
+ ret
+; e17bd
+
+Unknown_e17bd: ; e17bd
+ dw LZ_e1bab
+ dw LZ_e1c9b
+ dw LZ_e19fb
+ dw LZ_e18ab
+; e17c5
+
+GFX_e17c5: ; e17c5
+INCBIN "gfx/unknown/0e17c5.2bpp"
+
+LZ_e1805: ; e1805
+INCBIN "gfx/unknown/0e1805.2bpp.lz"
+
+LZ_e18ab: ; e18ab
+INCBIN "gfx/unknown/0e18ab.2bpp.lz"
+
+LZ_e19fb: ; e19fb
+INCBIN "gfx/unknown/0e19fb.2bpp.lz"
+
+LZ_e1bab: ; e1bab
+INCBIN "gfx/unknown/0e1bab.2bpp.lz"
+
+LZ_e1c9b: ; e1c9b
+INCBIN "gfx/unknown/0e1c9b.2bpp.lz"
diff --git a/engine/clock_reset.asm b/engine/clock_reset.asm
new file mode 100755
index 000000000..e51db6249
--- /dev/null
+++ b/engine/clock_reset.asm
@@ -0,0 +1,251 @@
+
+ResetClock_GetWraparoundTime: ; 20000 (8:4000)
+ push hl
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, .WrapAroundTimes
+rept 4
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ inc hl
+ ld b, [hl]
+ inc hl
+ ld c, [hl]
+ pop hl
+ ret
+; 20015 (8:4015)
+
+.WrapAroundTimes: ; 20015
+ dw Buffer4
+ db 7, 4
+
+ dw Buffer5
+ db 24, 12
+
+ dw Buffer6
+ db 60, 15
+; 20021
+
+RestartClock: ; 20021 (8:4021)
+; If we're here, we had an RTC overflow.
+ ld hl, .Text_ClockTimeMayBeWrong
+ call PrintText
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call LoadStandardMenuDataHeader
+ call ClearTileMap
+ ld hl, .Text_SetWithControlPad
+ call PrintText
+ call .SetClock
+ call ExitMenu
+ pop bc
+ ld hl, Options
+ ld [hl], b
+ ld c, a
+ ret
+; 20047 (8:4047)
+
+.Text_ClockTimeMayBeWrong: ; 0x20047
+ ; The clock's time may be wrong. Please reset the time.
+ text_jump UnknownText_0x1c40e6
+ db "@"
+; 0x2004c
+
+.Text_SetWithControlPad: ; 0x2004c
+ ; Set with the Control Pad. Confirm: A Button Cancel: B Button
+ text_jump UnknownText_0x1c411c
+ db "@"
+; 0x20051
+
+.SetClock: ; 20051 (8:4051)
+ ld a, 1
+ ld [Buffer1], a ; which digit
+ ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ld a, 8
+ ld [Buffer3], a
+ call UpdateTime
+ call GetWeekday
+ ld [Buffer4], a
+ ld a, [hHours]
+ ld [Buffer5], a
+ ld a, [hMinutes]
+ ld [Buffer6], a
+
+.loop
+ call .joy_loop
+ jr nc, .loop
+ and a
+ ret nz
+ call .PrintTime
+ ld hl, .Text_IsThisOK
+ call PrintText
+ call YesNoBox
+ jr c, .cancel
+ ld a, [Buffer4]
+ ld [StringBuffer2], a
+ ld a, [Buffer5]
+ ld [StringBuffer2 + 1], a
+ ld a, [Buffer6]
+ ld [StringBuffer2 + 2], a
+ xor a
+ ld [StringBuffer2 + 3], a
+ call Function677
+ call .PrintTime
+ ld hl, .Text_ClockReset
+ call PrintText
+ call WaitPressAorB_BlinkCursor
+ xor a
+ ret
+
+.cancel
+ ld a, $1
+ ret
+; 200b0 (8:40b0)
+
+.Text_IsThisOK: ; 0x200b0
+ ; Is this OK?
+ text_jump UnknownText_0x1c415b
+ db "@"
+; 0x200b5
+
+.Text_ClockReset: ; 0x200b5
+ ; The clock has been reset.
+ text_jump UnknownText_0x1c4168
+ db "@"
+; 0x200ba
+
+.joy_loop
+ call Function354b
+ ld c, a
+ push af
+ call .PrintTime
+ pop af
+ bit 0, a
+ jr nz, .press_A
+ bit 1, a
+ jr nz, .press_B
+ bit 6, a
+ jr nz, .pressed_up
+ bit 7, a
+ jr nz, .pressed_down
+ bit 5, a
+ jr nz, .pressed_left
+ bit 4, a
+ jr nz, .pressed_right
+ jr .joy_loop
+
+.press_A
+ ld a, $0
+ scf
+ ret
+
+.press_B
+ ld a, $1
+ scf
+ ret
+
+.pressed_up
+ ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
+ call ResetClock_GetWraparoundTime
+ ld a, [de]
+ inc a
+ ld [de], a
+ cp b
+ jr c, .done_scroll
+ ld a, $0
+ ld [de], a
+ jr .done_scroll
+
+.pressed_down
+ ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
+ call ResetClock_GetWraparoundTime
+ ld a, [de]
+ dec a
+ ld [de], a
+ cp -1
+ jr nz, .done_scroll
+ ld a, b
+ dec a
+ ld [de], a
+ jr .done_scroll
+
+.pressed_left
+ ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ dec [hl]
+ jr nz, .done_scroll
+ ld [hl], $3
+ jr .done_scroll
+
+.pressed_right
+ ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
+ inc [hl]
+ ld a, [hl]
+ cp $4
+ jr c, .done_scroll
+ ld [hl], $1
+
+.done_scroll
+ xor a
+ ret
+
+.PrintTime: ; 2011f (8:411f)
+ hlcoord 0, 5
+ ld b, 5
+ ld c, 18
+ call TextBox
+ decoord 1, 8
+ ld a, [Buffer4]
+ ld b, a
+ callba PrintDayOfWeek
+ ld a, [Buffer5]
+ ld b, a
+ ld a, [Buffer6]
+ ld c, a
+ decoord 11, 8
+ callba PrintHoursMins
+ ld a, [Buffer2] ; wd1eb (aliases: MovementType)
+ lb de, " ", " "
+ call .PlaceChars
+ ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
+ lb de, "▲", "▼"
+ call .PlaceChars
+ ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
+ ld [Buffer2], a ; wd1eb (aliases: MovementType)
+ ret
+; 20160 (8:4160)
+
+.unreferenced: ; 20160
+ ld a, [Buffer3]
+ ld b, a
+ call Coord2Tile
+ ret
+; 20168
+
+.PlaceChars: ; 20168 (8:4168)
+ push de
+ call ResetClock_GetWraparoundTime
+ ld a, [Buffer3]
+ dec a
+ ld b, a
+ call Coord2Tile
+ pop de
+ ld [hl], d
+ ld bc, 2 * SCREEN_WIDTH
+ add hl, bc
+ ld [hl], e
+ ret
+; 2017c (8:417c)
+
+String_2017c: ; 2017c
+ db "じ@" ; HR
+; 2017e
+
+String_2017e: ; 2017e
+ db "ふん@" ; MIN
+; 20181
diff --git a/engine/color.asm b/engine/color.asm
index 9fde4d77d..8530c2181 100644
--- a/engine/color.asm
+++ b/engine/color.asm
@@ -149,7 +149,7 @@ Function8b07: ; 8b07
call CheckCGB
ret z
ld hl, Palette8b2f
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -275,7 +275,7 @@ endr
asm_8bd7
push hl
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld de, $0008
.asm_8bde
and a
@@ -319,7 +319,7 @@ Function8bec: ; 8bec
ld a, [EnemySafeguardCount]
and $3
call Function9663
- call Function323d
+ call LoadDETile
ret
; 8c1d
@@ -338,7 +338,7 @@ Function8c1d: ; 8c1d
call Function976b
.asm_8c33
- ld de, Unkn1Pals
+ ld de, wMapPals
call Function9643
call Function9699
call Function96b3
@@ -412,11 +412,11 @@ endr
ld a, $5
ld [rSVBK], a
ld a, [hli]
- ld [Unkn1Pals], a
- ld [Unkn1Pals + 8 * 2], a
+ ld [wMapPals], a
+ ld [wMapPals + 8 * 2], a
ld a, [hl]
- ld [Unkn1Pals + 1], a
- ld [Unkn1Pals + 8 * 2 + 1], a
+ ld [wMapPals + 1], a
+ ld [wMapPals + 8 * 2 + 1], a
pop af
ld [rSVBK], a
call Function96a4
@@ -458,7 +458,7 @@ endr
ret
.asm_8cf0
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -525,7 +525,7 @@ INCLUDE "predef/cgb.asm"
Function95f0: ; 95f0
ld hl, Palette_9608
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, 8
ld a, $5
call FarCopyWRAM
@@ -544,7 +544,7 @@ Palette_9608: ; 9608
CopyFourPalettes: ; 9610
- ld de, Unkn1Pals
+ ld de, wMapPals
ld c, $4
CopyPalettes: ; 9615
@@ -644,7 +644,7 @@ Function9673: ; 9673
push af
ld a, $5
ld [rSVBK], a
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld c, $8
.asm_9683
ld a, $ff
@@ -676,7 +676,7 @@ Function9699: ; 9699
; 96a4
Function96a4: ; 96a4
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld de, BGPals
ld bc, $0080
ld a, $5
@@ -768,7 +768,7 @@ Function971a: ; 971a
Function9729: ; 9729
push de
- callba Function3da85
+ callba GetPartyMonDVs
ld c, l
ld b, h
ld a, [TempBattleMonSpecies]
@@ -779,7 +779,7 @@ Function9729: ; 9729
Function973a: ; 973a
push de
- callba Function3da97
+ callba GetEnemyMonDVs
ld c, l
ld b, h
ld a, [TempEnemyMonSpecies]
@@ -1047,7 +1047,7 @@ Function9890:: ; 9890
push af
ld a, $5
ld [rSVBK], a
- ld hl, Unkn1Pals
+ ld hl, wMapPals
call Function98df
ld hl, BGPals
call Function98df
@@ -1945,7 +1945,7 @@ INCLUDE "gfx/trainers/palette_pointers.asm"
; b1de
Functionb1de: ; b1de
- callba Function494ac
+ callba LoadSpecialMapPalette
jr c, .asm_b230
ld a, [wPermission]
@@ -1973,7 +1973,7 @@ endr
push af
ld a, $5
ld [rSVBK], a
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld b, $8
.asm_b210
ld a, [de]
@@ -2036,7 +2036,7 @@ rept 4
inc hl
endr
.asm_b26d
- ld de, Unkn1Pals + 8 * 6 + 2
+ ld de, wMapPals + 8 * 6 + 2
ld bc, 4
ld a, $5
call FarCopyWRAM
diff --git a/engine/credits.asm b/engine/credits.asm
index 793891dd2..6b35fbe6a 100644
--- a/engine/credits.asm
+++ b/engine/credits.asm
@@ -131,7 +131,7 @@ Function109847:: ; 109847
ld a, $5
ld [rSVBK], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
@@ -210,7 +210,7 @@ Function109847:: ; 109847
jr .asm_1098de
.asm_1098ee
- call WhiteBGMap
+ call ClearBGPalettes
xor a
ld [hLCDStatCustom], a
ld [hBGMapAddress], a
@@ -300,7 +300,7 @@ Function109956: ; 109956 (42:5956)
Function10995e: ; 10995e (42:595e)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
jp Function109951
Function109964: ; 109964 (42:5964)
@@ -317,13 +317,13 @@ Function109964: ; 109964 (42:5964)
Function10997b: ; 10997b (42:597b)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $8
ld [Requested2bpp], a
jp Function109951
Function109986: ; 109986 (42:5986)
- ld a, [rLY] ; $ff00+$44
+ ld a, [rLY]
cp $30
jr c, Function109986
ld a, [wcf66]
@@ -366,7 +366,7 @@ ParseCredits: ; 1099aa
; First, let's clear the current text display,
; starting from line 5.
xor a
- ld [$ffd4], a
+ ld [hBGMapMode], a
hlcoord 0, 5
ld bc, 20 * 12
ld a, " "
@@ -479,9 +479,9 @@ endr
ld [CreditsTimer], a
xor a
- ld [$ffd5], a
+ ld [hBGMapThird], a
ld a, 1
- ld [$ffd4], a
+ ld [hBGMapMode], a
.done
jp Function109951
@@ -523,9 +523,9 @@ endr
Function109a95: ; 109a95 (42:5a95)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $c
- ld [hBGMapAddress], a ; $ff00+$d6
+ ld [hBGMapAddress], a
ld a, $28
hlcoord 0, 0
ld bc, $168
@@ -558,8 +558,8 @@ Function109a95: ; 109a95 (42:5a95)
call ByteFill
call Function3200
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld [hBGMapAddress], a ; $ff00+$d6
+ ld [hBGMapMode], a
+ ld [hBGMapAddress], a
hlcoord 0, 0
call Function109aff
call Function3200
@@ -637,10 +637,10 @@ GetCreditsPalette: ; 109b2c
push af
push hl
- add Unkn1Pals % $100
+ add wMapPals % $100
ld e, a
ld a, 0
- adc Unkn1Pals / $100
+ adc wMapPals / $100
ld d, a
ld bc, 24
call CopyBytes
diff --git a/engine/diploma.asm b/engine/diploma.asm
index eff2ff5f1..7699cf930 100644
--- a/engine/diploma.asm
+++ b/engine/diploma.asm
@@ -1,12 +1,12 @@
Function1dd702: ; 1dd702
call Function1dd709
- call Functiona80
+ call WaitPressAorB_BlinkCursor
ret
; 1dd709
Function1dd709: ; 1dd709
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm
new file mode 100755
index 000000000..86d505e0e
--- /dev/null
+++ b/engine/dummy_game.asm
@@ -0,0 +1,615 @@
+_DummyGame: ; e1e5b (38:5e5b)
+ call Functione1e67
+ call DelayFrame
+.asm_e1e61
+ call Functione1ebb
+ jr nc, .asm_e1e61
+ ret
+
+Functione1e67: ; e1e67 (38:5e67)
+ call DisableLCD
+ ld b, $8
+ call GetSGBLayout
+ callab Function8cf53
+ ld hl, LZ_e2221
+ ld de, VTiles2 tile $00
+ call Decompress
+ ld hl, Unknown_e00ed
+ ld de, VTiles0 tile $00
+ ld bc, $40
+ ld a, BANK(Unknown_e00ed)
+ call FarCopyBytes
+ ld a, $8
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], $0
+ hlcoord 0, 0
+ ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
+ xor a
+ call ByteFill
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ ld [rWY], a
+ ld [wJumptableIndex], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ld a, $e3
+ ld [rLCDC], a
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $e0
+ call Functioncf8
+ ret
+
+Functione1ebb: ; e1ebb (38:5ebb)
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_e1ed0
+ call Functione1ed2
+ callab Function8cf69
+ call DelayFrame
+ and a
+ ret
+.asm_e1ed0
+ scf
+ ret
+
+Functione1ed2: ; e1ed2 (38:5ed2)
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_e1ee1
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; e1ee1 (38:5ee1)
+
+Jumptable_e1ee1: ; e1ee1
+ dw Functione1ef3
+ dw Functione1efb
+ dw Functione1f1c
+ dw Functione1f42
+ dw Functione1f61
+ dw Functione1f8b
+ dw Functione1fba
+ dw Functione1fcc
+ dw Functione2000
+; e1ef3
+
+Functione1ef3: ; e1ef3
+ call Functione2152
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; e1efb
+
+Functione1efb: ; e1efb
+ call Functione00ed
+ jr nc, .asm_e1f06
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.asm_e1f06
+ call Functione209d
+ ld hl, wJumptableIndex
+ inc [hl]
+ xor a
+ ld [wc708], a
+ ld hl, wc703
+rept 4
+ ld [hli], a
+endr
+ ld [hl], a
+ ld [wc709], a
+
+Functione1f1c: ; e1f1c
+ ld hl, wc708
+ ld a, [hl]
+ cp $2d
+ jr nc, .asm_e1f30
+ inc [hl]
+ call Functione2183
+ xor a
+ ld [wc6fd], a
+ call Functione2128
+ ret
+
+.asm_e1f30
+ ld de, $341c
+ ld a, $c
+ call Function3b2a
+ ld a, $5
+ ld [wc702], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; e1f42
+
+Functione1f42: ; e1f42
+ ld a, [wc702]
+ hlcoord 17, 0
+ add $f6
+ ld [hl], a
+ ld hl, wc702
+ ld a, [hl]
+ and a
+ jr nz, .asm_e1f58
+ ld a, $7
+ ld [wJumptableIndex], a
+ ret
+
+.asm_e1f58
+ dec [hl]
+ xor a
+ ld [wcf64], a
+ ld hl, wJumptableIndex
+ inc [hl]
+
+Functione1f61: ; e1f61
+ ld a, [wcf64]
+ and a
+ ret z
+ dec a
+ ld e, a
+ ld d, $0
+ ld hl, wc6d0
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [wc6fd], a
+ ld [wPlayerMinimized], a
+ ld a, e
+ ld [EnemyScreens], a
+ call Functione2183
+ call Functione2128
+ xor a
+ ld [wcf64], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; e1f8b
+
+Functione1f8b: ; e1f8b
+ ld a, [wcf64]
+ and a
+ ret z
+ dec a
+ ld hl, EnemyScreens
+ cp [hl]
+ ret z
+ ld e, a
+ ld d, $0
+ ld hl, wc6d0
+ add hl, de
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [wc6fd], a
+ ld [PlayerScreens], a
+ ld a, e
+ ld [wc701], a
+ call Functione2183
+ call Functione2128
+ ld a, $40
+ ld [wc708], a
+ ld hl, wJumptableIndex
+ inc [hl]
+
+Functione1fba: ; e1fba
+ ld hl, wc708
+ ld a, [hl]
+ and a
+ jr z, .asm_e1fc3
+ dec [hl]
+ ret
+
+.asm_e1fc3
+ call Functione2010
+ ld a, $3
+ ld [wJumptableIndex], a
+ ret
+; e1fcc
+
+Functione1fcc: ; e1fcc
+ ld a, [hJoypadPressed]
+ and A_BUTTON
+ ret z
+ xor a
+ ld [wc708], a
+.asm_e1fd5
+ ld hl, wc708
+ ld a, [hl]
+ cp $2d
+ jr nc, .asm_e1ff9
+ inc [hl]
+ push af
+ call Functione2183
+ pop af
+ push hl
+ ld e, a
+ ld d, $0
+ ld hl, wc6d0
+ add hl, de
+ ld a, [hl]
+ pop hl
+ cp $ff
+ jr z, .asm_e1fd5
+ ld [wc6fd], a
+ call Functione2128
+ jr .asm_e1fd5
+
+.asm_e1ff9
+ call WaitPressAorB_BlinkCursor
+ ld hl, wJumptableIndex
+ inc [hl]
+
+Functione2000: ; e2000
+ call Functione00ed
+ jr nc, .asm_e200b
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.asm_e200b
+ xor a
+ ld [wJumptableIndex], a
+ ret
+; e2010
+
+Functione2010: ; e2010
+ ld hl, wPlayerMinimized
+ ld a, [hli]
+ cp [hl]
+ jr nz, .asm_e2066
+ ld a, [EnemyScreens]
+ call Functione2183
+ call Functione2142
+ ld a, [wc701]
+ call Functione2183
+ call Functione2142
+ ld a, [EnemyScreens]
+ ld e, a
+ ld d, $0
+ ld hl, wc6d0
+ add hl, de
+ ld [hl], $ff
+ ld a, [wc701]
+ ld e, a
+ ld d, $0
+ ld hl, wc6d0
+ add hl, de
+ ld [hl], $ff
+ ld hl, wc703
+.asm_e2044
+ ld a, [hli]
+ and a
+ jr nz, .asm_e2044
+ dec hl
+ ld a, [wPlayerMinimized]
+ ld [hl], a
+ ld [wc6fd], a
+ ld hl, wc709
+ ld e, [hl]
+rept 2
+ inc [hl]
+endr
+ ld d, $0
+ hlcoord 5, 0
+ add hl, de
+ call Functione2128
+ ld hl, UnknownText_0xe2083
+ call PrintText
+ ret
+
+.asm_e2066
+ xor a
+ ld [wc6fd], a
+ ld a, [EnemyScreens]
+ call Functione2183
+ call Functione2128
+ ld a, [wc701]
+ call Functione2183
+ call Functione2128
+ ld hl, UnknownText_0xe2098
+ call PrintText
+ ret
+; e2083
+
+UnknownText_0xe2083: ; 0xe2083
+ start_asm
+; 0xe2084
+
+Functione2084: ; e2084
+ push bc
+ hlcoord 2, 13
+ call Functione2128
+ ld hl, UnknownText_0xe2093
+ pop bc
+rept 3
+ inc bc
+endr
+ ret
+; e2093
+
+UnknownText_0xe2093: ; 0xe2093
+ ; , yeah!
+ text_jump UnknownText_0x1c1a5b
+ db "@"
+; 0xe2098
+
+UnknownText_0xe2098: ; 0xe2098
+ ; Darn…
+ text_jump UnknownText_0x1c1a65
+ db "@"
+; 0xe209d
+
+Functione209d: ; e209d
+ ld hl, wc6d0
+ ld bc, $2d
+ xor a
+ call ByteFill
+ call Functione2101
+ ld c, $2
+ ld b, [hl]
+ call Functione20e5
+ ld c, $8
+ ld b, [hl]
+ call Functione20e5
+ ld c, $4
+ ld b, [hl]
+ call Functione20e5
+ ld c, $7
+ ld b, [hl]
+ call Functione20e5
+ ld c, $3
+ ld b, [hl]
+ call Functione20e5
+ ld c, $6
+ ld b, [hl]
+ call Functione20e5
+ ld c, $1
+ ld b, [hl]
+ call Functione20e5
+ ld c, $5
+ ld hl, wc6d0
+ ld b, $2d
+.asm_e20db
+ ld a, [hl]
+ and a
+ jr nz, .asm_e20e0
+ ld [hl], c
+
+.asm_e20e0
+ inc hl
+ dec b
+ jr nz, .asm_e20db
+ ret
+; e20e5
+
+Functione20e5: ; e20e5
+ push hl
+ ld de, wc6d0
+.asm_e20e9
+ call Random
+ and $3f
+ cp $2d
+ jr nc, .asm_e20e9
+ ld l, a
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ and a
+ jr nz, .asm_e20e9
+ ld [hl], c
+ dec b
+ jr nz, .asm_e20e9
+ pop hl
+ inc hl
+ ret
+; e2101
+
+Functione2101: ; e2101
+ ld a, [MenuSelection2]
+ dec a
+ ld l, a
+ ld h, 0
+rept 3
+ add hl, hl
+endr
+ ld de, Unknown_e2110
+ add hl, de
+ ret
+; e2110
+
+Unknown_e2110: ; e2110
+ db $02, $03, $06, $06, $06, $08, $08, $06
+ db $02, $02, $04, $06, $06, $08, $08, $09
+ db $02, $02, $02, $04, $07, $08, $08, $0c
+; e2128
+
+Functione2128: ; e2128
+ ld a, [wc6fd]
+ sla a
+ sla a
+ add $4
+ ld [hli], a
+ inc a
+ ld [hld], a
+ inc a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hli], a
+ inc a
+ ld [hl], a
+ ld c, 3
+ call DelayFrames
+ ret
+; e2142
+
+Functione2142: ; e2142
+ ld a, $1
+ ld [hli], a
+ ld [hld], a
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld [hli], a
+ ld [hl], a
+ ld c, 3
+ call DelayFrames
+ ret
+; e2152
+
+Functione2152: ; e2152
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $1
+ call ByteFill
+ hlcoord 0, 0
+ ld de, String_e2177
+ call PlaceString
+ hlcoord 15, 0
+ ld de, String_e217d
+ call PlaceString
+ ld hl, UnknownText_0xe2176
+ call PrintText
+ ret
+; e2176
+
+UnknownText_0xe2176: ; 0xe2176
+ db "@"
+; 0xe2177
+
+String_e2177: db "とったもの@"
+String_e217d: db "あと かい@"
+; e2183
+
+Functione2183: ; e2183
+ ld d, $0
+.asm_e2185
+ sub $9
+ jr c, .asm_e218c
+ inc d
+ jr .asm_e2185
+
+.asm_e218c
+ add $9
+ ld e, a
+ hlcoord 1, 2
+ ld bc, $28
+.asm_e2195
+ ld a, d
+ and a
+ jr z, .asm_e219d
+ add hl, bc
+ dec d
+ jr .asm_e2195
+
+.asm_e219d
+ sla e
+ add hl, de
+ ret
+; e21a1
+
+Functione21a1: ; e21a1 (38:61a1)
+ ld a, [wJumptableIndex]
+ cp $7
+ jr nc, .quit
+ call JoyTextDelay
+ ld hl, hJoypadPressed ; $ffa3
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressed_a
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .pressed_left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .pressed_right
+ ld a, [hl]
+ and D_UP
+ jr nz, .pressed_up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .pressed_down
+ ret
+
+.quit
+ ld hl, 0
+ add hl, bc
+ ld [hl], $0
+ ret
+
+.pressed_a
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ inc a
+ ld [wcf64], a
+ ret
+
+.pressed_left
+ ld hl, $6
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ sub $10
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ dec [hl]
+ ret
+
+.pressed_right
+ ld hl, $6
+ add hl, bc
+ ld a, [hl]
+ cp $80
+ ret z
+ add $10
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ inc [hl]
+ ret
+
+.pressed_up
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ sub $10
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ sub $9
+ ld [hl], a
+ ret
+
+.pressed_down
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ cp $40
+ ret z
+ add $10
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ add $9
+ ld [hl], a
+ ret
+; e2221 (38:6221)
+
+LZ_e2221: ; e2221
+INCBIN "gfx/unknown/0e2221.2bpp.lz"
diff --git a/engine/events.asm b/engine/events.asm
index 20e2bc0dd..bd26afffd 100644
--- a/engine/events.asm
+++ b/engine/events.asm
@@ -138,7 +138,7 @@ EnterMap: ; 9673e
call ClearAllScriptFlags3
ld a, [hMapEntryMethod]
- cp MAPSETUP_07
+ cp MAPSETUP_CONNECTION
jr nz, .dontset
call SetAll_ScriptFlags3
.dontset
@@ -247,7 +247,7 @@ Function967d1: ; 967d1
Function967e1: ; 967e1
callba RefreshMapAppearDisappear
callba Functiond4d2
- callba Functionb8098
+ callba PlaceMapNameSign
ret
; 967f4
@@ -322,13 +322,13 @@ PlayerEvents: ; 9681f
ld [ScriptRunning], a
call DoPlayerEvent
ld a, [ScriptRunning]
- cp 4
+ cp PLAYEREVENT_CONNECTION
jr z, .ok2
- cp 9
+ cp PLAYEREVENT_JOYCHANGEFACING
jr z, .ok2
xor a
- ld [wc2da], a
+ ld [wLandmarkSignTimer], a
.ok2
scf
@@ -342,7 +342,7 @@ CheckTrainerBattle3: ; 96867
call CheckTrainerBattle2
jr nc, .nope
- ld a, 1
+ ld a, PLAYEREVENT_SEENBYTRAINER
scf
ret
@@ -359,10 +359,10 @@ CheckTileEvent: ; 96874
jr z, .bit2
callba CheckMovingOffEdgeOfMap
- jr c, .return4
+ jr c, .map_connection
call CheckWarpTile
- jr c, .return6
+ jr c, .warp_tile
.bit2
call CheckBit1_ScriptFlags3
@@ -390,21 +390,21 @@ CheckTileEvent: ; 96874
xor a
ret
-.return4
- ld a, 4
+.map_connection
+ ld a, PLAYEREVENT_CONNECTION
scf
ret
-.return6
+.warp_tile
ld a, [PlayerStandingTile]
call CheckPitTile
- jr nz, .pittile
- ld a, 6
+ jr nz, .not_pit
+ ld a, PLAYEREVENT_FALL
scf
ret
-.pittile
- ld a, 5
+.not_pit
+ ld a, PLAYEREVENT_WARP
scf
ret
@@ -711,7 +711,7 @@ TryReadSign: ; 96a38
ret
.IsSign
- ld a, [wd040]
+ ld a, [EngineBuffer3]
ld hl, .signs
rst JumpTable
ret
@@ -749,7 +749,7 @@ TryReadSign: ; 96a38
.read
call PlayTalkObject
- ld hl, wd041
+ ld hl, EngineBuffer4
ld a, [hli]
ld h, [hl]
ld l, a
@@ -811,7 +811,7 @@ endr
CheckSignFlag: ; 96ad8
- ld hl, wd041
+ ld hl, EngineBuffer4
ld a, [hli]
ld h, [hl]
ld l, a
@@ -820,7 +820,7 @@ CheckSignFlag: ; 96ad8
call GetFarHalfword
ld e, l
ld d, h
- ld b, $2 ; check
+ ld b, CHECK_FLAG
call EventFlagAction
ld a, c
and a
@@ -899,7 +899,7 @@ PlayerMovement: ; 96af0
CheckMenuOW: ; 96b30
xor a
ld [hMenuReturn], a
- ld [$ffa1], a
+ ld [hMenuReturn + 1], a
ld a, [hJoyPressed]
bit 2, a ; SELECT
@@ -1050,14 +1050,16 @@ DoPlayerEvent: ; 96beb
ld a, [ScriptRunning]
and a
ret z
- cp -1 ; run script
+
+ cp PLAYEREVENT_MAPSCRIPT ; run script
ret z
- cp 10
+
+ cp NUM_PLAYER_EVENTS
ret nc
ld c, a
ld b, 0
- ld hl, ScriptPointers96c0c
+ ld hl, PlayerEventScriptPointers
rept 3
add hl,bc
endr
@@ -1070,25 +1072,25 @@ endr
ret
; 96c0c
-ScriptPointers96c0c: ; 96c0c
- dba Invalid_0x96c2d
- dba SeenByTrainerScript
- dba TalkToTrainerScript
- dba FindItemInBallScript
- dba UnknownScript_0x96c4d
- dba WarpToNewMapScript
- dba FallIntoMapScript
- dba UnknownScript_0x124c8
- dba HatchEggScript
- dba UnknownScript_0x96c4f
- dba Invalid_0x96c2d
+PlayerEventScriptPointers: ; 96c0c
+ dba Invalid_0x96c2d ; 0
+ dba SeenByTrainerScript ; 1
+ dba TalkToTrainerScript ; 2
+ dba FindItemInBallScript ; 3
+ dba UnknownScript_0x96c4d ; 4
+ dba WarpToNewMapScript ; 5
+ dba FallIntoMapScript ; 6
+ dba Script_OverworldWhiteout ; 7
+ dba HatchEggScript ; 8
+ dba UnknownScript_0x96c4f ; 9
+ dba Invalid_0x96c2d ; 10
; 96c2d
Invalid_0x96c2d: ; 96c2d
end
; 96c2e
-UnknownScript_0x96c2e: ; 96c2e
+; unreferenced
end
; 96c2f
@@ -1099,12 +1101,12 @@ HatchEggScript: ; 96c2f
WarpToNewMapScript: ; 96c34
warpsound
- newloadmap MAPSETUP_05
+ newloadmap MAPSETUP_DOOR
end
; 96c38
FallIntoMapScript: ; 96c38
- newloadmap MAPSETUP_06
+ newloadmap MAPSETUP_FALL
playsound SFX_KINESIS
applymovement PLAYER, MovementData_0x96c48
playsound SFX_STRENGTH
@@ -1122,11 +1124,11 @@ LandAfterPitfallScript: ; 96c4a
end
; 96c4d
-UnknownScript_0x96c4d: ; 96c4d
- reloadandreturn $f7
+UnknownScript_0x96c4d: ; 4
+ reloadandreturn MAPSETUP_CONNECTION
; 96c4f
-UnknownScript_0x96c4f: ; 96c4f
+UnknownScript_0x96c4f: ; 9
deactivatefacing $3
callasm SetBit4_ScriptFlags3
end
diff --git a/engine/events_3.asm b/engine/events_3.asm
new file mode 100755
index 000000000..f9f8ffedc
--- /dev/null
+++ b/engine/events_3.asm
@@ -0,0 +1,863 @@
+ReturnFromMapSetupScript:: ; b8000
+ xor a
+ ld [hBGMapMode], a
+ ; For some reson, GameFreak chose to use a callba here instead of just falling through.
+ ; No other function in the game references the function at 2E:400A, here labeled
+ ; ReturnFromMapSetupScript.inefficientcallba.
+ callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes
+ ret
+; b800a
+
+.inefficientcallba: ; b800a
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+ ld [wCurrentLandmark], a
+ call .CheckNationalParkGate
+ jr z, .nationalparkgate
+
+ call GetMapPermission
+ cp GATE
+ jr nz, .not_gate
+
+.nationalparkgate
+ ld a, -1
+ ld [wCurrentLandmark], a
+
+.not_gate
+ ld hl, wEnteredMapFromContinue
+ bit 1, [hl]
+ res 1, [hl]
+ jr nz, .dont_do_map_sign
+
+ call .CheckMovingWithinLandmark
+ jr z, .dont_do_map_sign
+ ld a, [wCurrentLandmark]
+ ld [wPreviousLandmark], a
+
+ call .CheckSpecialMap
+ jr z, .dont_do_map_sign
+
+; Display for 60 frames
+ ld a, 60
+ ld [wLandmarkSignTimer], a
+ call LoadMapNameSignGFX
+ call InitMapNameFrame
+ callba Function104303
+ ret
+
+.dont_do_map_sign
+ ld a, [wCurrentLandmark]
+ ld [wPreviousLandmark], a
+ ld a, $90
+ ld [rWY], a
+ ld [hWY], a
+ xor a
+ ld [hLCDStatCustom], a
+ ret
+; b8064
+
+.CheckMovingWithinLandmark: ; b8064
+ ld a, [wCurrentLandmark]
+ ld c, a
+ ld a, [wPreviousLandmark]
+ cp c
+ ret z
+ cp $0
+ ret
+; b8070
+
+.CheckSpecialMap: ; b8070
+ cp -1
+ ret z
+ cp SPECIAL_MAP
+ ret z
+ cp RADIO_TOWER
+ ret z
+ cp LAV_RADIO_TOWER
+ ret z
+ cp UNDERGROUND
+ ret z
+ cp INDIGO_PLATEAU
+ ret z
+ cp POWER_PLANT
+ ret z
+ ld a, $1
+ and a
+ ret
+; b8089
+
+.CheckNationalParkGate: ; b8089
+ ld a, [MapGroup]
+ cp GROUP_ROUTE_35_NATIONAL_PARK_GATE
+ ret nz
+ ld a, [MapNumber]
+ cp MAP_ROUTE_35_NATIONAL_PARK_GATE
+ ret z
+ cp MAP_ROUTE_36_NATIONAL_PARK_GATE
+ ret
+; b8098
+
+
+PlaceMapNameSign:: ; b8098 (2e:4098)
+ ld hl, wLandmarkSignTimer
+ ld a, [hl]
+ and a
+ jr z, .disappear
+ dec [hl]
+ cp 60
+ ret z
+ cp 59
+ jr nz, .skip2
+ call InitMapNameFrame
+ call PlaceMapNameCenterAlign
+ callba Function104303
+.skip2
+ ld a, $80
+ ld a, $70
+ ld [rWY], a
+ ld [hWY], a
+ ret
+
+.disappear
+ ld a, $90
+ ld [rWY], a
+ ld [hWY], a
+ xor a
+ ld [hLCDStatCustom], a
+ ret
+
+
+LoadMapNameSignGFX: ; b80c6
+ ld de, MapEntryFrameGFX
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(MapEntryFrameGFX), $e
+ call Get2bpp
+ ret
+; b80d3
+
+InitMapNameFrame: ; b80d3
+ hlcoord 0, 0
+ ld b, 2
+ ld c, 18
+ call InitMapSignAttrMap
+ call PlaceMapNameFrame
+ ret
+; b80e1
+
+
+PlaceMapNameCenterAlign: ; b80e1 (2e:40e1)
+ ld a, [wCurrentLandmark]
+ ld e, a
+ callba GetLandmarkName
+ call .GetNameLength
+ ld a, SCREEN_WIDTH
+ sub c
+ srl a
+ ld b, $0
+ ld c, a
+ hlcoord 0, 2
+ add hl, bc
+ ld de, StringBuffer1
+ call PlaceString
+ ret
+
+.GetNameLength: ; b8101 (2e:4101)
+ ld c, 0
+ push hl
+ ld hl, StringBuffer1
+.loop
+ ld a, [hli]
+ cp "@"
+ jr z, .stop
+ cp "%"
+ jr z, .loop
+ inc c
+ jr .loop
+.stop
+ pop hl
+ ret
+
+
+InitMapSignAttrMap: ; b8115
+ ld de, AttrMap - TileMap
+ add hl, de
+rept 2
+ inc b
+endr
+rept 2
+ inc c
+endr
+ ld a, $87
+.loop
+ push bc
+ push hl
+.inner_loop
+ ld [hli], a
+ dec c
+ jr nz, .inner_loop
+ pop hl
+ ld de, SCREEN_WIDTH
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .loop
+ ret
+; b812f
+
+PlaceMapNameFrame: ; b812f
+ hlcoord 0, 0
+ ; top left
+ ld a, $61
+ ld [hli], a
+ ; top row
+ ld a, $62
+ call .FillTopBottom
+ ; top right
+ ld a, $64
+ ld [hli], a
+ ; left, first line
+ ld a, $65
+ ld [hli], a
+ ; first line
+ call .FillMiddle
+ ; right, first line
+ ld a, $6b
+ ld [hli], a
+ ; left, second line
+ ld a, $66
+ ld [hli], a
+ ; second line
+ call .FillMiddle
+ ; right, second line
+ ld a, $6c
+ ld [hli], a
+ ; bottom left
+ ld a, $67
+ ld [hli], a
+ ; bottom
+ ld a, $68
+ call .FillTopBottom
+ ; bottom right
+ ld a, $6a
+ ld [hl], a
+ ret
+; b815b
+
+.FillMiddle: ; b815b
+ ld c, 18
+ ld a, $6d
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; b8164
+
+.FillTopBottom: ; b8164
+ ld c, 5
+ jr .enterloop
+
+.continueloop
+rept 2
+ ld [hli], a
+endr
+
+.enterloop
+ inc a
+rept 2
+ ld [hli], a
+endr
+ dec a
+ dec c
+ jr nz, .continueloop
+ ret
+; b8172
+
+CheckForSignpostItems: ; b8172
+; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry.
+ call GetMapScriptHeaderBank
+ ld [Buffer1], a
+; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed.
+ ld a, [XCoord]
+ add SCREEN_WIDTH / 4
+ ld [wd1ed], a
+ ld a, [YCoord]
+ add SCREEN_HEIGHT / 4
+ ld [wd1ec], a
+; Get the pointer for the first signpost header in the map...
+ ld hl, wdc02
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+; ... before even checking to see if there are any signposts on this map.
+ ld a, [wCurrentMapSignpostCount]
+ and a
+ jr z, .nosignpostitems
+; For i = 1:wCurrentMapSignpostCount...
+.loop
+; Store the counter in Buffer2, and store the signpost header pointer in the stack.
+ ld [Buffer2], a
+ push hl
+; Get the Y coordinate of the signpost.
+ call .GetFarByte
+ ld e, a
+; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost.
+ ld a, [wd1ec]
+ sub e
+ jr c, .next
+ cp SCREEN_HEIGHT / 2
+ jr nc, .next
+; Is the X coordinate of the signpost on the screen? If not, go to the next signpost.
+ call .GetFarByte
+ ld d, a
+ ld a, [wd1ed]
+ sub d
+ jr c, .next
+ cp SCREEN_WIDTH / 2
+ jr nc, .next
+; Is this signpost a hidden item? If not, go to the next signpost.
+ call .GetFarByte
+ cp SIGNPOST_ITEM
+ jr nz, .next
+; Has this item already been found? If not, set off the Itemfinder.
+ ld a, [Buffer1]
+ call GetFarHalfword
+ ld a, [Buffer1]
+ call GetFarHalfword
+ ld d, h
+ ld e, l
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ld a, c
+ and a
+ jr z, .itemnearby
+
+.next
+; Restore the signpost header pointer and increment it by the length of a signpost header.
+ pop hl
+ ld bc, 5
+ add hl, bc
+; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range.
+ ld a, [Buffer2]
+ dec a
+ jr nz, .loop
+
+.nosignpostitems
+ xor a
+ ret
+
+.itemnearby
+ pop hl
+ scf
+ ret
+; b81e2
+
+.GetFarByte: ; b81e2
+ ld a, [Buffer1]
+ call GetFarByte
+ inc hl
+ ret
+; b81ea
+
+
+TreeMonEncounter: ; b81ea
+ callba MobileFn_1060ef
+
+ xor a
+ ld [TempWildMonSpecies], a
+ ld [CurPartyLevel], a
+
+ ld hl, TreeMonMaps
+ call GetTreeMonSet
+ jr nc, .no_battle
+
+ call GetTreeMons
+ jr nc, .no_battle
+
+ call GetTreeMon
+ jr nc, .no_battle
+
+ ld a, BATTLETYPE_TREE
+ ld [BattleType], a
+ ld a, 1
+ ld [ScriptVar], a
+ ret
+
+.no_battle
+ xor a
+ ld [ScriptVar], a
+ ret
+; b8219
+
+RockMonEncounter: ; b8219
+
+ xor a
+ ld [TempWildMonSpecies], a
+ ld [CurPartyLevel], a
+
+ ld hl, RockMonMaps
+ call GetTreeMonSet
+ jr nc, .no_battle
+
+ call GetTreeMons
+ jr nc, .no_battle
+
+ ld a, 10
+ call RandomRange
+ cp 4
+ jr nc, .no_battle
+
+ call SelectTreeMon
+ jr nc, .no_battle
+
+ ret
+
+.no_battle
+ xor a
+ ret
+; b823e
+
+ db $05 ; ????
+
+GetTreeMonSet: ; b823f
+; Return carry and treemon set in a
+; if the current map is in table hl.
+ ld a, [MapNumber]
+ ld e, a
+ ld a, [MapGroup]
+ ld d, a
+.loop
+ ld a, [hli]
+ cp -1
+ jr z, .not_in_table
+
+ cp d
+ jr nz, .skip2
+
+ ld a, [hli]
+ cp e
+ jr nz, .skip1
+
+ jr .in_table
+
+.skip2
+ inc hl
+.skip1
+ inc hl
+ jr .loop
+
+.not_in_table
+ xor a
+ ret
+
+.in_table
+ ld a, [hl]
+ scf
+ ret
+; b825e
+
+TreeMonMaps: ; b825e
+treemon_map: macro
+ map \1
+ db \2 ; treemon set
+endm
+ treemon_map ROUTE_26, 4
+ treemon_map ROUTE_27, 4
+ treemon_map ROUTE_28, 0
+ treemon_map ROUTE_29, 3
+ treemon_map ROUTE_30, 3
+ treemon_map ROUTE_31, 3
+ treemon_map ROUTE_32, 4
+ treemon_map ROUTE_33, 2
+ treemon_map ROUTE_34, 3
+ treemon_map ROUTE_35, 3
+ treemon_map ROUTE_36, 3
+ treemon_map ROUTE_37, 3
+ treemon_map ROUTE_38, 3
+ treemon_map ROUTE_39, 3
+ treemon_map ROUTE_40, 0
+ treemon_map ROUTE_41, 0
+ treemon_map ROUTE_42, 2
+ treemon_map ROUTE_43, 5
+ treemon_map ROUTE_44, 1
+ treemon_map ROUTE_45, 1
+ treemon_map ROUTE_46, 1
+ treemon_map NEW_BARK_TOWN, 0
+ treemon_map CHERRYGROVE_CITY, 0
+ treemon_map VIOLET_CITY, 0
+ treemon_map AZALEA_TOWN, 2
+ treemon_map CIANWOOD_CITY, 0
+ treemon_map GOLDENROD_CITY, 0
+ treemon_map OLIVINE_CITY, 0
+ treemon_map ECRUTEAK_CITY, 0
+ treemon_map MAHOGANY_TOWN, 0
+ treemon_map LAKE_OF_RAGE, 5
+ treemon_map BLACKTHORN_CITY, 0
+ treemon_map SILVER_CAVE_OUTSIDE, 0
+ treemon_map ILEX_FOREST, 6
+ db -1
+; b82c5
+
+RockMonMaps: ; b82c5
+ treemon_map CIANWOOD_CITY, 7
+ treemon_map ROUTE_40, 7
+ treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7
+ treemon_map SLOWPOKE_WELL_B1F, 7
+ db -1
+; b82d2
+
+GetTreeMons: ; b82d2
+; Return the address of TreeMon table a in hl.
+; Return nc if table a doesn't exist.
+
+ cp 8
+ jr nc, .quit
+
+ and a
+ jr z, .quit
+
+ ld e, a
+ ld d, 0
+ ld hl, TreeMons
+rept 2
+ add hl, de
+endr
+
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+
+ scf
+ ret
+
+.quit
+ xor a
+ ret
+; b82e8
+
+TreeMons: ; b82e8
+ dw TreeMons1
+ dw TreeMons1
+ dw TreeMons2
+ dw TreeMons3
+ dw TreeMons4
+ dw TreeMons5
+ dw TreeMons6
+ dw RockMons
+ dw TreeMons1
+
+; Two tables each (normal, rare).
+; Structure:
+; db %, species, level
+
+TreeMons1: ; b82fa
+ db 50, SPEAROW, 10
+ db 15, SPEAROW, 10
+ db 15, SPEAROW, 10
+ db 10, AIPOM, 10
+ db 5, AIPOM, 10
+ db 5, AIPOM, 10
+ db -1
+
+ db 50, SPEAROW, 10
+ db 15, HERACROSS, 10
+ db 15, HERACROSS, 10
+ db 10, AIPOM, 10
+ db 5, AIPOM, 10
+ db 5, AIPOM, 10
+ db -1
+
+TreeMons2: ; b8320
+ db 50, SPEAROW, 10
+ db 15, EKANS, 10
+ db 15, SPEAROW, 10
+ db 10, AIPOM, 10
+ db 5, AIPOM, 10
+ db 5, AIPOM, 10
+ db -1
+
+ db 50, SPEAROW, 10
+ db 15, HERACROSS, 10
+ db 15, HERACROSS, 10
+ db 10, AIPOM, 10
+ db 5, AIPOM, 10
+ db 5, AIPOM, 10
+ db -1
+
+TreeMons3: ; b8346
+ db 50, HOOTHOOT, 10
+ db 15, SPINARAK, 10
+ db 15, LEDYBA, 10
+ db 10, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db -1
+
+ db 50, HOOTHOOT, 10
+ db 15, PINECO, 10
+ db 15, PINECO, 10
+ db 10, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db -1
+
+TreeMons4: ; b836c
+ db 50, HOOTHOOT, 10
+ db 15, EKANS, 10
+ db 15, HOOTHOOT, 10
+ db 10, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db -1
+
+ db 50, HOOTHOOT, 10
+ db 15, PINECO, 10
+ db 15, PINECO, 10
+ db 10, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db -1
+
+TreeMons5: ; b8392
+ db 50, HOOTHOOT, 10
+ db 15, VENONAT, 10
+ db 15, HOOTHOOT, 10
+ db 10, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db -1
+
+ db 50, HOOTHOOT, 10
+ db 15, PINECO, 10
+ db 15, PINECO, 10
+ db 10, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db 5, EXEGGCUTE, 10
+ db -1
+
+TreeMons6: ; b83b8
+ db 50, HOOTHOOT, 10
+ db 15, PINECO, 10
+ db 15, PINECO, 10
+ db 10, NOCTOWL, 10
+ db 5, BUTTERFREE, 10
+ db 5, BEEDRILL, 10
+ db -1
+
+ db 50, HOOTHOOT, 10
+ db 15, CATERPIE, 10
+ db 15, WEEDLE, 10
+ db 10, HOOTHOOT, 10
+ db 5, METAPOD, 10
+ db 5, KAKUNA, 10
+ db -1
+
+RockMons: ; b83de
+ db 90, KRABBY, 15
+ db 10, SHUCKLE, 15
+ db -1
+; b83e5
+
+GetTreeMon: ; b83e5
+ push hl
+ call GetTreeScore
+ pop hl
+ and a
+ jr z, .bad
+ cp 1
+ jr z, .good
+ cp 2
+ jr z, .rare
+ ret
+
+.bad
+ ld a, 10
+ call RandomRange
+ and a
+ jr nz, NoTreeMon
+ jr SelectTreeMon
+
+.good
+ ld a, 10
+ call RandomRange
+ cp 5
+ jr nc, NoTreeMon
+ jr SelectTreeMon
+
+.rare
+ ld a, 10
+ call RandomRange
+ cp 8
+ jr nc, NoTreeMon
+ jr .skip
+.skip
+ ld a, [hli]
+ cp -1
+ jr nz, .skip
+ call SelectTreeMon
+ ret
+; b841f
+
+SelectTreeMon: ; b841f
+; Read a TreeMons table and pick one monster at random.
+
+ ld a, 100
+ call RandomRange
+.loop
+ sub [hl]
+ jr c, .ok
+rept 3
+ inc hl
+endr
+ jr .loop
+
+.ok
+ ld a, [hli]
+ cp $ff
+ jr z, NoTreeMon
+
+ ld a, [hli]
+ ld [TempWildMonSpecies], a
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ scf
+ ret
+
+NoTreeMon: ; b843b
+ xor a
+ ld [TempWildMonSpecies], a
+ ld [CurPartyLevel], a
+ ret
+; b8443
+
+GetTreeScore: ; b8443
+ call .CoordScore
+ ld [Buffer1], a
+ call .OTIDScore
+ ld [Buffer2], a
+ ld c, a
+ ld a, [Buffer1]
+ sub c
+ jr z, .rare
+ jr nc, .ok
+ add 10
+.ok
+ cp 5
+ jr c, .good
+
+.bad
+ xor a
+ ret
+
+.good
+ ld a, 1
+ ret
+
+.rare
+ ld a, 2
+ ret
+; b8466
+
+.CoordScore: ; b8466
+ call GetFacingTileCoord
+ ld hl, 0
+ ld c, e
+ ld b, 0
+ ld a, d
+
+ and a
+ jr z, .next
+.loop
+ add hl, bc
+ dec a
+ jr nz, .loop
+.next
+
+ add hl, bc
+ ld c, d
+ add hl, bc
+
+ ld a, h
+ ld [hDividend], a
+ ld a, l
+ ld [hDividend + 1], a
+ ld a, 5
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+
+ ld a, [hQuotient + 1]
+ ld [hDividend], a
+ ld a, [hQuotient + 2]
+ ld [hDividend + 1], a
+ ld a, 10
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+
+ ld a, [hQuotient + 3]
+ ret
+; b849d
+
+.OTIDScore: ; b849d
+ ld a, [PlayerID]
+ ld [hDividend], a
+ ld a, [PlayerID + 1]
+ ld [hDividend + 1], a
+ ld a, 10
+ ld [hDivisor], a
+ ld b, 2
+ call Divide
+ ld a, [hQuotient + 3]
+ ret
+; b84b3
+
+LoadFishingGFX: ; b84b3
+ ld a, [rVBK]
+ push af
+ ld a, $1
+ ld [rVBK], a
+
+ ld de, FishingGFX
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .got_gender
+ ld de, KrisFishingGFX
+.got_gender
+
+ ld hl, VTiles0 tile $02
+ call .LoadGFX
+ ld hl, VTiles0 tile $06
+ call .LoadGFX
+ ld hl, VTiles0 tile $0a
+ call .LoadGFX
+ ld hl, VTiles1 tile $7c
+ call .LoadGFX
+
+ pop af
+ ld [rVBK], a
+ ret
+; b84e3
+
+.LoadGFX: ; b84e3
+ lb bc, BANK(FishingGFX), 2
+ push de
+ call Get2bpp
+ pop de
+ ld hl, 2 tiles
+ add hl, de
+ ld d, h
+ ld e, l
+ ret
+; b84f2
+
+FishingGFX: ; b84f2
+INCBIN "gfx/overworld/chris_fish.2bpp"
+; b8582
+
+KrisFishingGFX: ; b8582
+INCBIN "gfx/overworld/kris_fish.2bpp"
+; b8612
diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm
new file mode 100755
index 000000000..69e7aec4c
--- /dev/null
+++ b/engine/evolution_animation.asm
@@ -0,0 +1,457 @@
+EvolutionAnimation: ; 4e5e1
+ push hl
+ push de
+ push bc
+ ld a, [CurSpecies]
+ push af
+ ld a, [rOBP0]
+ push af
+ ld a, [BaseDexNo]
+ push af
+
+ call _EvolutionAnimation
+
+ pop af
+ ld [BaseDexNo], a
+ pop af
+ ld [rOBP0], a
+ pop af
+ ld [CurSpecies], a
+ pop bc
+ pop de
+ pop hl
+
+ ld a, [wd1ed]
+ and a
+ ret z
+
+ scf
+ ret
+; 4e607
+
+_EvolutionAnimation: ; 4e607
+ ld a, $e4
+ ld [rOBP0], a
+
+ ld de, MUSIC_NONE
+ call PlayMusic
+
+ callba Function8cf53
+
+ ld de, EvolutionGFX
+ ld hl, VTiles0
+ lb bc, BANK(EvolutionGFX), 8
+ call Request2bpp
+
+ xor a
+ ld [Danger], a
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ld a, [Buffer1]
+ ld [PlayerHPPal], a
+
+ ld c, $0
+ call Function4e703
+ ld a, [Buffer1]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call Function4e708
+
+ ld de, VTiles2
+ ld hl, VTiles2 tile $31
+ ld bc, $31
+ call Request2bpp
+
+ ld a, $31
+ ld [wd1ec], a
+ call Evolution_FlashFrontpics
+ ld a, [Buffer2]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call Function4e711
+ ld a, [Buffer1]
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+
+ ld a, $1
+ ld [hBGMapMode], a
+ call Function4e794
+ jr c, .skip_cry
+
+ ld a, [Buffer1]
+ call PlayCry
+
+.skip_cry
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic
+
+ ld c, 80
+ call DelayFrames
+
+ ld c, $1
+ call Function4e703
+ call Function4e726
+ jr c, .pressed_b
+
+ ld a, $cf
+ ld [wd1ec], a
+
+ call Evolution_FlashFrontpics
+ xor a
+ ld [wd1ed], a
+
+ ld a, [Buffer2]
+ ld [PlayerHPPal], a
+
+ ld c, $0
+ call Function4e703
+ call Function4e7a6
+ callba Function8cf53
+ call Function4e794
+ jr c, .asm_4e6de
+
+ ld a, [wc2c6]
+ push af
+ ld a, $1
+ ld [wc2c6], a
+ ld a, [CurPartySpecies]
+ push af
+
+ ld a, [PlayerHPPal]
+ ld [CurPartySpecies], a
+ hlcoord 7, 2
+ ld d, $0
+ ld e, ANIM_MON_EVOLVE
+ predef AnimateFrontpic
+
+ pop af
+ ld [CurPartySpecies], a
+ pop af
+ ld [wc2c6], a
+ ret
+
+.asm_4e6de
+ ret
+
+.pressed_b
+ ld a, $1
+ ld [wd1ed], a
+
+ ld a, [Buffer1]
+ ld [PlayerHPPal], a
+
+ ld c, $0
+ call Function4e703
+ call Function4e7a6
+ callba Function8cf53
+ call Function4e794
+ ret c
+
+ ld a, [PlayerHPPal]
+ call PlayCry
+ ret
+; 4e703
+
+Function4e703: ; 4e703
+ ld b, $b
+ jp GetSGBLayout
+; 4e708
+
+Function4e708: ; 4e708
+ call GetBaseData
+ hlcoord 7, 2
+ jp PrepMonFrontpic
+; 4e711
+
+Function4e711: ; 4e711
+ call GetBaseData
+ ld a, $1
+ ld [wc2c6], a
+ ld de, VTiles2
+ predef Function5108b
+ xor a
+ ld [wc2c6], a
+ ret
+; 4e726
+
+Function4e726: ; 4e726
+ call ClearJoypad
+ lb bc, 1, 14
+.loop
+ push bc
+ call Evolution_CheckPressedB
+ pop bc
+ jr c, .pressed_b
+ push bc
+ call Evolution_NextFrame
+ pop bc
+ inc b
+rept 2
+ dec c
+endr
+ jr nz, .loop
+ and a
+ ret
+
+.pressed_b
+ scf
+ ret
+; 4e741
+
+Evolution_NextFrame: ; 4e741
+.loop
+ ld a, -49
+ ld [wd1ec], a
+ call Evolution_FlashFrontpics
+ ld a, 49
+ ld [wd1ec], a
+ call Evolution_FlashFrontpics
+ dec b
+ jr nz, .loop
+ ret
+; 4e755
+
+Evolution_FlashFrontpics: ; 4e755
+ push bc
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 7, 2
+ lb bc, 7, 7
+ ld de, $d
+.loop1
+ push bc
+.loop2
+ ld a, [wd1ec]
+ add [hl]
+ ld [hli], a
+ dec c
+ jr nz, .loop2
+ pop bc
+ add hl, de
+ dec b
+ jr nz, .loop1
+ ld a, $1
+ ld [hBGMapMode], a
+ call WaitBGMap
+ pop bc
+ ret
+; 4e779
+
+Evolution_CheckPressedB: ; 4e779
+.loop
+ call DelayFrame
+ push bc
+ call JoyTextDelay
+ ld a, [hJoyDown]
+ pop bc
+ and B_BUTTON
+ jr nz, .pressed_b
+.loop2
+ dec c
+ jr nz, .loop
+ and a
+ ret
+
+.pressed_b
+ ld a, [wd1e9]
+ and a
+ jr nz, .loop2
+ scf
+ ret
+; 4e794
+
+Function4e794: ; 4e794
+ ld a, [CurPartyMon]
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba CheckFaintedFrzSlp
+ ret
+; 4e7a6
+
+Function4e7a6: ; 4e7a6
+ ld a, [wd1ed]
+ and a
+ ret nz
+ ld de, SFX_EVOLVED
+ call PlaySFX
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ push af
+ ld [hl], $0
+.asm_4e7b8
+ call Function4e7cf
+ jr nc, .asm_4e7c2
+ call Function4e80c
+ jr .asm_4e7b8
+
+.asm_4e7c2
+ ld c, $20
+.asm_4e7c4
+ call Function4e80c
+ dec c
+ jr nz, .asm_4e7c4
+ pop af
+ ld [wJumptableIndex], a
+ ret
+; 4e7cf
+
+Function4e7cf: ; 4e7cf
+ ld hl, wJumptableIndex
+ ld a, [hl]
+ cp $20
+ ret nc
+ ld d, a
+ inc [hl]
+ and $1
+ jr nz, .asm_4e7e6
+ ld e, $0
+ call Function4e7e8
+ ld e, $10
+ call Function4e7e8
+
+.asm_4e7e6
+ scf
+ ret
+; 4e7e8
+
+Function4e7e8: ; 4e7e8
+ push de
+ ld de, $4858
+ ld a, $13
+ call Function3b2a
+ ld hl, $b
+ add hl, bc
+ ld a, [wJumptableIndex]
+ and $e
+ sla a
+ pop de
+ add e
+ ld [hl], a
+ ld hl, $3
+ add hl, bc
+ ld [hl], $0
+ ld hl, $c
+ add hl, bc
+ ld [hl], $10
+ ret
+; 4e80c
+
+Function4e80c: ; 4e80c
+ push bc
+ callab Function8cf69
+ ld a, [hVBlankCounter]
+ and $e
+ srl a
+rept 2
+ inc a
+endr
+ and $7
+ ld b, a
+ ld hl, Sprites + 3
+ ld c, $28
+.asm_4e823
+ ld a, [hl]
+ or b
+ ld [hli], a
+rept 3
+ inc hl
+endr
+ dec c
+ jr nz, .asm_4e823
+ pop bc
+ call DelayFrame
+ ret
+; 4e831
+
+
+EvolutionGFX:
+INCBIN "gfx/evo/bubble_large.2bpp"
+INCBIN "gfx/evo/bubble.2bpp"
+
+Function4e881: ; 4e881
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ ld hl, VBGMap0
+ 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, UnknownText_0x4e8bd
+ call PrintText
+ call Function3200
+ call SetPalettes
+ ret
+; 4e8bd
+
+UnknownText_0x4e8bd: ; 0x4e8bd
+ ; SAVING RECORD… DON'T TURN OFF!
+ text_jump UnknownText_0x1bd39e
+ db "@"
+; 0x4e8c2
+
+
+Function4e8c2: ; 4e8c2
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ ld hl, VBGMap0
+ ld bc, VBGMap1 - VBGMap0
+ ld a, " "
+ call ByteFill
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ xor a
+ call ByteFill
+ ld hl, wd000
+ ld c, $40
+.asm_4e8ee
+ ld a, -1
+ ld [hli], a
+ ld a, " "
+ ld [hli], a
+ dec c
+ jr nz, .asm_4e8ee
+ xor a
+ ld [hSCY], a
+ ld [hSCX], a
+ call EnableLCD
+ call Function3200
+ call SetPalettes
+ ret
+; 4e906
+
+Function4e906: ; 4e906
+ ld a, [rSVBK]
+ push af
+ ld a, $6
+ ld [rSVBK], a
+ ld hl, w6_d000
+ ld bc, w6_d400 - w6_d000
+ ld a, " "
+ call ByteFill
+ ld hl, VBGMap0
+ ld de, w6_d000
+ ld b, $0
+ ld c, $40
+ call Request2bpp
+ pop af
+ ld [rSVBK], a
+ ret
+; 4e929
diff --git a/engine/flypoints.asm b/engine/flypoints.asm
new file mode 100755
index 000000000..7f6d384aa
--- /dev/null
+++ b/engine/flypoints.asm
@@ -0,0 +1,916 @@
+_FlyMap: ; 91af3
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ ld hl, hInMenu
+ ld a, [hl]
+ push af
+ ld [hl], $1
+ xor a
+ ld [hBGMapMode], a
+ callba Function8cf53
+ call Function91ff2
+ ld de, GFX_922e1
+ ld hl, VTiles2 tile $30
+ lb bc, BANK(GFX_922e1), 6
+ call Request1bpp
+ call FlyMap
+ call Function91c8f
+ ld b, $2
+ call GetSGBLayout
+ call SetPalettes
+.loop
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .pressedB
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .pressedA
+ call FlyMapScroll
+ call GetMapCursorCoordinates
+ callba Function8cf69
+ call DelayFrame
+ jr .loop
+
+.pressedB
+ ld a, -1
+ jr .exit
+
+.pressedA
+ ld a, [wd002]
+ ld l, a
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld a, [hl]
+
+.exit
+ ld [wd002], a
+ pop af
+ ld [hInMenu], a
+ call ClearBGPalettes
+ ld a, $90
+ ld [hWY], a
+ xor a
+ ld [hBGMapAddress], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ld a, [wd002]
+ ld e, a
+ ret
+; 91b73
+
+FlyMapScroll: ; 91b73
+ ld a, [StartFlypoint]
+ ld e, a
+ ld a, [EndFlypoint]
+ ld d, a
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .ScrollNext
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .ScrollPrev
+ ret
+
+.ScrollNext
+ ld hl, wd002
+ ld a, [hl]
+ cp d
+ jr nz, .NotAtEndYet
+ ld a, e
+ dec a
+ ld [hl], a
+
+.NotAtEndYet
+ inc [hl]
+ call CheckIfVisitedFlypoint
+ jr z, .ScrollNext
+ jr .Finally
+
+.ScrollPrev
+ ld hl, wd002
+ ld a, [hl]
+ cp e
+ jr nz, .NotAtStartYet
+ ld a, d
+ inc a
+ ld [hl], a
+
+.NotAtStartYet
+ dec [hl]
+ call CheckIfVisitedFlypoint
+ jr z, .ScrollPrev
+
+.Finally
+ call TownMapBubble
+ call WaitBGMap
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 91bb5
+
+TownMapBubble: ; 91bb5
+; Draw the bubble containing the location text in the town map HUD
+
+; Top-left corner
+ hlcoord 1, 0
+ ld a, $30
+ ld [hli], a
+
+; Top row
+ ld bc, 16
+ ld a, " "
+ call ByteFill
+
+; Top-right corner
+ ld a, $31
+ ld [hl], a
+ hlcoord 1, 1
+
+
+; Middle row
+ ld bc, 18
+ ld a, " "
+ call ByteFill
+
+
+; Bottom-left corner
+ hlcoord 1, 2
+ ld a, $32
+ ld [hli], a
+
+; Bottom row
+ ld bc, 16
+ ld a, " "
+ call ByteFill
+
+; Bottom-right corner
+ ld a, $33
+ ld [hl], a
+
+
+; Print "Where?"
+ hlcoord 2, 0
+ ld de, .Where
+ call PlaceString
+
+; Print the name of the default flypoint
+ call .Name
+
+; Up/down arrows
+ hlcoord 18, 1
+ ld [hl], $34
+ ret
+
+.Where
+ db "Where?@"
+
+.Name
+; We need the map location of the default flypoint
+ ld a, [wd002]
+ ld l, a
+ ld h, 0
+ add hl, hl ; two bytes per flypoint
+ ld de, Flypoints
+ add hl, de
+ ld e, [hl]
+
+ callba GetLandmarkName
+
+ hlcoord 2, 1
+ ld de, StringBuffer1
+ call PlaceString
+ ret
+; 91c17
+
+GetMapCursorCoordinates: ; 91c17
+ ld a, [wd002]
+ ld l, a
+ ld h, $0
+ add hl, hl
+ ld de, Flypoints
+ add hl, de
+ ld e, [hl]
+ callba GetLandmarkCoords
+ ld a, [wd003]
+ ld c, a
+ ld a, [wd004]
+ ld b, a
+ ld hl, $4
+ add hl, bc
+ ld [hl], e
+ ld hl, $5
+ add hl, bc
+ ld [hl], d
+ ret
+; 91c3c
+
+CheckIfVisitedFlypoint: ; 91c3c
+; Check if the flypoint loaded in [hl] has been visited yet.
+ push bc
+ push de
+ push hl
+ ld l, [hl]
+ ld h, 0
+ add hl, hl
+ ld de, Flypoints + 1
+ add hl, de
+ ld c, [hl]
+ call HasVisitedSpawn
+ pop hl
+ pop de
+ pop bc
+ and a
+ ret
+; 91c50
+
+HasVisitedSpawn: ; 91c50
+; Check if spawn point c has been visited.
+ ld hl, VisitedSpawns
+ ld b, CHECK_FLAG
+ ld d, 0
+ predef FlagPredef
+ ld a, c
+ ret
+; 91c5e
+
+Flypoints: ; 91c5e
+; landmark, spawn point
+
+ const_def
+
+flypoint: MACRO
+; \1\@FLY EQUS "FLY_\1"
+; \1\@SPAWN EQUS "SPAWN_\1"
+ ; const \1\@FLY
+ ; db \2, \1\@SPAWN
+ 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
+
+Function91c8f: ; 91c8f
+ ret
+; 91c90
+
+FlyMap: ; 91c90
+
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+; If we're not in a valid location, i.e. Pokecenter floor 2F,
+; the backup map information is used
+
+ cp SPECIAL_MAP
+ jr nz, .CheckRegion
+
+ ld a, [BackupMapGroup]
+ ld b, a
+ ld a, [BackupMapNumber]
+ ld c, a
+ call GetWorldMapLocation
+
+.CheckRegion
+; The first 46 locations are part of Johto. The rest are in Kanto
+ cp KANTO_LANDMARK
+ jr nc, .KantoFlyMap
+
+.JohtoFlyMap
+; Note that .NoKanto should be modified in tandem with this branch
+
+ push af
+
+; Start from New Bark Town
+ ld a, FLY_NEW_BARK
+ ld [wd002], a
+
+; Flypoints begin at New Bark Town...
+ ld [StartFlypoint], a
+; ..and end at Silver Cave
+ ld a, FLY_MT_SILVER
+ ld [EndFlypoint], a
+
+; Fill out the map
+ call FillJohtoMap
+ call .MapHud
+ pop af
+ call TownMapPlayerIcon
+ ret
+
+.KantoFlyMap
+
+; The event that there are no flypoints enabled in a map is not
+; accounted for. As a result, if you attempt to select a flypoint
+; when there are none enabled, the game will crash. Additionally,
+; the flypoint selection has a default starting point that
+; can be flown to even if none are enabled
+
+; To prevent both of these things from happening when the player
+; enters Kanto, fly access is restricted until Indigo Plateau is
+; visited and its flypoint enabled
+
+ push af
+ ld c, SPAWN_INDIGO
+ call HasVisitedSpawn
+ and a
+ jr z, .NoKanto
+
+; Kanto's map is only loaded if we've visited Indigo Plateau
+
+; Flypoints begin at Pallet Town...
+ ld a, FLY_PALLET
+ ld [StartFlypoint], a
+; ...and end at Indigo Plateau
+ ld a, FLY_INDIGO
+ ld [EndFlypoint], a
+
+; Because Indigo Plateau is the first flypoint the player
+; visits, it's made the default flypoint
+ ld [wd002], a
+
+; Fill out the map
+ call FillKantoMap
+ call .MapHud
+ pop af
+ call TownMapPlayerIcon
+ ret
+
+.NoKanto
+; If Indigo Plateau hasn't been visited, we use Johto's map instead
+
+; Start from New Bark Town
+ ld a, FLY_NEW_BARK
+ ld [wd002], a
+
+; Flypoints begin at New Bark Town...
+ ld [StartFlypoint], a
+; ..and end at Silver Cave
+ ld a, FLY_MT_SILVER
+ ld [EndFlypoint], a
+
+ call FillJohtoMap
+
+ pop af
+
+.MapHud
+ call TownMapBubble
+ call TownMapPals
+
+ ld hl, VBGMap0 ; BG Map 0
+ call TownMapBGUpdate
+
+ call TownMapMon
+ ld a, c
+ ld [wd003], a
+ ld a, b
+ ld [wd004], a
+ ret
+; 91d11
+
+Function91d11: ; 91d11
+ ld a, [wd002]
+ push af
+ ld a, [wd003]
+ push af
+ ld a, e
+ ld [wd002], a
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ ld a, $1
+ ld [hInMenu], a
+ ld de, GFX_922d1
+ ld hl, VTiles0 tile $7f
+ lb bc, BANK(GFX_922d1), 1
+ call Request2bpp ; actually 1bpp
+ call Function91ed0
+ ld hl, VTiles0 tile $78
+ ld c, $4
+ call Request2bpp
+ call Function91ff2
+ call FillKantoMap
+ call Function91de9
+ call TownMapPals
+ ld hl, VBGMap1
+ call TownMapBGUpdate
+ call FillJohtoMap
+ call Function91de9
+ call TownMapPals
+ ld hl, VBGMap0
+ call TownMapBGUpdate
+ ld b, $2
+ call GetSGBLayout
+ call SetPalettes
+ xor a
+ ld [hBGMapMode], a
+ xor a
+ call Function91e1e
+.asm_91d6e
+ call JoyTextDelay
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON | B_BUTTON
+ jr nz, .asm_91d8f
+ ld a, [hJoypadDown]
+ and SELECT
+ jr nz, .asm_91d87
+ call Function91d9b
+ call Function91dcd
+ jr .asm_91d8a
+
+.asm_91d87
+ call Function91e5a
+
+.asm_91d8a
+ call DelayFrame
+ jr .asm_91d6e
+
+.asm_91d8f
+ call ClearSprites
+ pop af
+ ld [wd003], a
+ pop af
+ ld [wd002], a
+ ret
+; 91d9b
+
+Function91d9b: ; 91d9b
+ ld a, [hl]
+ and $20
+ jr nz, .asm_91da6
+ ld a, [hl]
+ and $10
+ jr nz, .asm_91db7
+ ret
+
+.asm_91da6
+ ld a, [hWY]
+ cp $90
+ ret z
+ call ClearSprites
+ ld a, $90
+ ld [hWY], a
+ xor a
+ call Function91e1e
+ ret
+
+.asm_91db7
+ ld a, [StatusFlags]
+ bit 6, a
+ ret z
+ ld a, [hWY]
+ and a
+ ret z
+ call ClearSprites
+ xor a
+ ld [hWY], a
+ ld a, $1
+ call Function91e1e
+ ret
+; 91dcd
+
+Function91dcd: ; 91dcd
+ ld a, [hVBlankCounter]
+ ld e, a
+ and $f
+ ret nz
+ ld a, e
+ and $10
+ jr nz, .asm_91ddc
+ call ClearSprites
+ ret
+
+.asm_91ddc
+ hlcoord 0, 0
+ ld de, Sprites
+ ld bc, $a0
+ call CopyBytes
+ ret
+; 91de9
+
+Function91de9: ; 91de9
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, $7f
+ call ByteFill
+ hlcoord 0, 1
+ ld a, $6
+ ld [hli], a
+ ld bc, SCREEN_HEIGHT
+ ld a, $7
+ call ByteFill
+ ld [hl], $17
+ call GetPokemonName
+ hlcoord 2, 0
+ call PlaceString
+ ld h, b
+ ld l, c
+ ld de, String_91e16
+ call PlaceString
+ ret
+; 91e16
+
+String_91e16:
+ db "'S NEST@"
+; 91e1e
+
+Function91e1e: ; 91e1e
+ ld [wd003], a
+ ld e, a
+ callba Function2a01f
+ decoord 0, 0
+ ld hl, Sprites
+.asm_91e2e
+ ld a, [de]
+ and a
+ jr z, .asm_91e4d
+ push de
+ ld e, a
+ push hl
+ callba GetLandmarkCoords
+ pop hl
+ ld a, d
+ sub $4
+ ld [hli], a
+ ld a, e
+ sub $4
+ ld [hli], a
+ ld a, $7f
+ ld [hli], a
+ xor a
+ ld [hli], a
+ pop de
+ inc de
+ jr .asm_91e2e
+
+.asm_91e4d
+ ld hl, Sprites
+ decoord 0, 0
+ ld bc, $a0
+ call CopyBytes
+ ret
+; 91e5a
+
+Function91e5a: ; 91e5a
+ call Function91ea9
+ ret c
+
+ ld a, [wd002]
+ ld e, a
+ callba GetLandmarkCoords
+ ld c, e
+ ld b, d
+ ld de, Unknown_91e9c
+ ld hl, Sprites
+.asm_91e70
+ ld a, [de]
+ cp $80
+ jr z, .asm_91e91
+
+ add b
+ ld [hli], a
+ inc de
+
+ ld a, [de]
+ add c
+ ld [hli], a
+ inc de
+
+ ld a, [de]
+ add $78
+ ld [hli], a
+ inc de
+
+ push bc
+ ld c, 0
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91e8c
+ inc c
+.asm_91e8c
+ ld a, c
+ ld [hli], a
+ pop bc
+
+ jr .asm_91e70
+
+.asm_91e91
+ ld hl, Sprites + $10
+ ld bc, SpritesEnd - (Sprites + $10)
+ xor a
+ call ByteFill
+ ret
+; 91e9c
+
+Unknown_91e9c: ; 91e9c
+ db -8, -8, 0
+ db -8, 0, 1
+ db 0, -8, 2
+ db 0, 0, 3
+ db $80 ; terminator
+; 91ea9
+
+Function91ea9: ; 91ea9
+ ld a, [wd002]
+ cp FAST_SHIP
+ jr z, .johto
+ cp KANTO_LANDMARK
+ jr c, .johto
+
+.kanto
+ ld a, [wd003]
+ and a
+ jr z, .clear
+ jr .ok
+
+.johto
+ ld a, [wd003]
+ and a
+ jr nz, .clear
+
+.ok
+ and a
+ ret
+
+.clear
+ ld hl, Sprites
+ ld bc, SpritesEnd - Sprites
+ xor a
+ call ByteFill
+ scf
+ ret
+; 91ed0
+
+Function91ed0: ; 91ed0
+ ld a, [wd002]
+ cp FAST_SHIP
+ jr z, .asm_91ede
+ callba GetPlayerIcon
+ ret
+
+.asm_91ede
+ ld de, FastShipGFX
+ ld b, BANK(FastShipGFX)
+ ret
+; 91ee4
+
+TownMapBGUpdate: ; 91ee4
+; Update BG Map tiles and attributes
+
+; BG Map address
+ ld a, l
+ ld [hBGMapAddress], a
+ ld a, h
+ ld [hBGMapAddress + 1], a
+
+; Only update palettes on CGB
+ ld a, [hCGB]
+ and a
+ jr z, .tiles
+
+; BG Map mode 2 (palettes)
+ ld a, 2
+ ld [hBGMapMode], a
+
+; The BG Map is updated in thirds, so we wait
+; 3 frames to update the whole screen's palettes.
+ ld c, 3
+ call DelayFrames
+
+.tiles
+; Update BG Map tiles
+ call WaitBGMap
+
+; Turn off BG Map update
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 91eff
+
+FillJohtoMap: ; 91eff
+ ld de, JohtoMap
+ jr FillTownMap
+
+FillKantoMap: ; 91f04
+ ld de, KantoMap
+
+FillTownMap: ; 91f07
+ hlcoord 0, 0
+.loop
+ ld a, [de]
+ cp $ff
+ ret z
+ ld a, [de]
+ ld [hli], a
+ inc de
+ jr .loop
+; 91f13
+
+TownMapPals: ; 91f13
+; Assign palettes based on tile ids
+
+ hlcoord 0, 0
+ decoord 0, 0, AttrMap
+ ld bc, 360
+.loop
+; Current tile
+ ld a, [hli]
+ push hl
+
+; HP/borders use palette 0
+ cp $60
+ jr nc, .pal0
+
+; The palette data is condensed to nybbles,
+; least-significant first.
+ ld hl, TownMapPalMap
+ srl a
+ jr c, .odd
+
+; Even-numbered tile ids take the bottom nybble...
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ and %111
+ jr .update
+
+.odd
+; ...and odd ids take the top.
+ add l
+ ld l, a
+ ld a, h
+ adc 0
+ ld h, a
+ ld a, [hl]
+ swap a
+ and %111
+ jr .update
+
+.pal0
+ xor a
+
+.update
+ pop hl
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop
+ ret
+
+TownMapPalMap:
+ db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00
+ db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00
+ db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33
+ db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00
+; 91f7b
+
+TownMapMon: ; 91f7b
+; Draw the FlyMon icon at town map location in
+
+; Get FlyMon species
+ ld a, [CurPartyMon]
+ ld hl, PartySpecies
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+
+; Get FlyMon icon
+ ld e, 8 ; starting tile in VRAM
+ callba GetSpeciesIcon
+
+; Animation/palette
+ ld de, 0
+ ld a, $0
+ call Function3b2a
+
+ ld hl, 3
+ add hl, bc
+ ld [hl], 8
+ ld hl, 2
+ add hl, bc
+ ld [hl], 0
+ ret
+; 91fa6
+
+TownMapPlayerIcon: ; 91fa6
+; Draw the player icon at town map location in a
+ push af
+
+ callba GetPlayerIcon
+
+; Standing icon
+ ld hl, VTiles0 tile $10
+ ld c, 4 ; # tiles
+ call Request2bpp
+
+; Walking icon
+ ld hl, $c0
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, VTiles0 tile $14
+ ld c, 4 ; # tiles
+ ld a, BANK(ChrisSpriteGFX) ; does nothing
+ call Request2bpp
+
+; Animation/palette
+ ld de, 0
+ ld b, $0a ; Male
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .asm_91fd3
+ ld b, $1e ; Female
+.asm_91fd3
+ ld a, b
+ call Function3b2a
+
+ ld hl, $3
+ add hl, bc
+ ld [hl], $10
+
+ pop af
+ ld e, a
+ push bc
+ callba GetLandmarkCoords
+ pop bc
+
+ ld hl, 4
+ add hl, bc
+ ld [hl], e
+ ld hl, 5
+ add hl, bc
+ ld [hl], d
+ ret
+; 0x91ff2
+
+Function91ff2: ; 91ff2
+ ld hl, TownMapGFX
+ ld de, VTiles2
+ lb bc, BANK(TownMapGFX), $30
+ call DecompressRequest2bpp
+ ret
+; 91fff
+
+
+JohtoMap: ; 91fff
+INCBIN "gfx/misc/johto.bin"
+; 92168
+
+KantoMap: ; 92168
+INCBIN "gfx/misc/kanto.bin"
+; 922d1
+
+
+GFX_922d1: ; 922d1
+INCBIN "gfx/unknown/0922d1.2bpp"
+GFX_922e1: ; 922e1
+INCBIN "gfx/unknown/0922e1.2bpp"
+GFX_92301: ; 92301
+INCBIN "gfx/unknown/092301.2bpp"
diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm
index 9002404fd..28e6e8cec 100644
--- a/engine/fruit_trees.asm
+++ b/engine/fruit_trees.asm
@@ -15,7 +15,7 @@ FruitTreeScript:: ; 44000
.fruit
writetext HeyItsFruitText
copybytetovar CurFruit
- giveitem $ff, 1
+ giveitem ITEM_FROM_MEM
iffalse .packisfull
keeptextopen
writetext ObtainedFruitText
diff --git a/engine/healmachineanim.asm b/engine/healmachineanim.asm
new file mode 100755
index 000000000..174d1ae5a
--- /dev/null
+++ b/engine/healmachineanim.asm
@@ -0,0 +1,266 @@
+HealMachineAnim: ; 12324
+ ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
+ ld a, [PartyCount]
+ and a
+ ret z
+ ; The location of the healing machine relative to the player is stored in ScriptVar.
+ ; 0: Up and left (Pokemon Center)
+ ; 1: Left (Elm's Lab)
+ ; 2: Up (Hall of Fame)
+ ld a, [ScriptVar]
+ ld [Buffer1], a
+ ld a, [rOBP1]
+ ld [Buffer2], a
+ call .DoJumptableFunctions
+ ld a, [Buffer2]
+ call Functiond24
+ ret
+; 1233e
+
+.DoJumptableFunctions: ; 1233e
+ xor a
+ ld [wd1ec], a
+.jumpable_loop
+ ld a, [Buffer1]
+ ld e, a
+ ld d, 0
+ ld hl, .Pointers
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wd1ec]
+ ld e, a
+ inc a
+ ld [wd1ec], a
+ add hl, de
+ ld a, [hl]
+ cp 5
+ jr z, .finish
+ ld hl, .Jumptable
+ rst JumpTable
+ jr .jumpable_loop
+
+.finish
+ ret
+; 12365
+
+.Pointers: ; 12365
+ dw .Pokecenter
+ dw .ElmLab
+ dw .HallOfFame
+; 1236b
+
+.Pokecenter: ; 1236b
+ db 0, 1, 3, 5
+.ElmLab: ; 1236f
+ db 0, 1, 3, 5
+.HallOfFame: ; 12373
+ db 0, 2, 4, 5
+; 12377
+
+.Jumptable: ; 12377
+ dw .LoadGFX
+ dw .PC_LoadBallsOntoMachine
+ dw .HOF_LoadBallsOntoMachine
+ dw .PlayHealMusic
+ dw .HOF_PlaySFX
+ dw .dummy_5 ; never encountered
+; 12383
+
+.LoadGFX: ; 12383
+ call .LoadPalettes
+ ld de, .HealMachineGFX
+ ld hl, VTiles0 tile $7c
+ lb bc, BANK(.HealMachineGFX), $2
+ call Request2bpp
+ ret
+; 12393
+
+.PC_LoadBallsOntoMachine: ; 12393
+ ld hl, Sprites + $80
+ ld de, .PC_ElmsLab_TileMap
+ call .PlaceHealingMachineTile
+ call .PlaceHealingMachineTile
+ jr .LoadBallsOntoMachine
+
+.HOF_LoadBallsOntoMachine: ; 123a1
+ ld hl, Sprites + $80
+ ld de, .HOF_TileMap
+
+.LoadBallsOntoMachine: ; 123a7
+ ld a, [PartyCount]
+ ld b, a
+.party_loop
+ call .PlaceHealingMachineTile
+ push de
+ ld de, SFX_SECOND_PART_OF_ITEMFINDER
+ call PlaySFX
+ pop de
+ ld c, 30
+ call DelayFrames
+ dec b
+ jr nz, .party_loop
+ ret
+; 123bf
+
+.PlayHealMusic: ; 123bf
+ ld de, MUSIC_HEAL
+ call PlayMusic
+ jp .FlashPalettes8Times
+; 123c8
+
+.HOF_PlaySFX: ; 123c8
+ ld de, SFX_GAME_FREAK_LOGO_GS
+ call PlaySFX
+ call .FlashPalettes8Times
+ call WaitSFX
+ ld de, SFX_BOOT_PC
+ call PlaySFX
+ ret
+; 123db
+
+.dummy_5: ; 123db
+ ret
+; 123dc
+
+.PC_ElmsLab_TileMap: ; 123dc
+ db $20, $22, $7c, $16
+ db $20, $26, $7c, $16
+ db $26, $20, $7d, $16
+ db $26, $28, $7d, $36
+ db $2b, $20, $7d, $16
+ db $2b, $28, $7d, $36
+ db $30, $20, $7d, $16
+ db $30, $28, $7d, $36
+; 123fc
+
+.HealMachineGFX: ; 123fc
+INCBIN "gfx/unknown/0123fc.2bpp"
+; 1241c
+
+.HOF_TileMap: ; 1241c
+ db $3c, $51, $7d, $16
+ db $3c, $56, $7d, $16
+ db $3b, $4d, $7d, $16
+ db $3b, $5a, $7d, $16
+ db $39, $49, $7d, $16
+ db $39, $5d, $7d, $16
+; 12434
+
+.LoadPalettes: ; 12434
+ call IsCGB
+ jr nz, .cgb
+ ld a, %11100000
+ ld [rOBP1], a
+ ret
+
+.cgb
+ ld hl, .palettes
+ ld de, OBPals + 8 * 6
+ ld bc, 8
+ ld a, $5
+ call FarCopyWRAM
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 12451
+
+.palettes: ; 12451
+ RGB 31, 31, 31
+ RGB 31, 19, 10
+ RGB 31, 07, 01
+ RGB 00, 00, 00
+; 12459
+
+.FlashPalettes8Times: ; 12459
+ ld c, $8
+.palette_loop
+ push bc
+ call .FlashPalettes
+ ld c, 10
+ call DelayFrames
+ pop bc
+ dec c
+ jr nz, .palette_loop
+ ret
+; 12469
+
+.FlashPalettes: ; 12469
+ call IsCGB
+ jr nz, .go
+ ld a, [rOBP1]
+ xor %00101000
+ ld [rOBP1], a
+ ret
+
+.go
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+
+ ld hl, OBPals + 8 * 6
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push de
+ ld c, $3
+.palette_loop_2
+ ld a, [hli]
+ ld e, a
+ ld a, [hld]
+ ld d, a
+ dec hl
+ ld a, d
+ ld [hld], a
+ ld a, e
+ ld [hli], a
+rept 3
+ inc hl
+endr
+ dec c
+ jr nz, .palette_loop_2
+ pop de
+ dec hl
+ ld a, d
+ ld [hld], a
+ ld a, e
+ ld [hl], a
+
+ pop af
+ ld [rSVBK], a
+ ld a, $1
+ ld [hCGBPalUpdate], a
+ ret
+; 124a3
+
+.PlaceHealingMachineTile: ; 124a3
+ push bc
+ ld a, [Buffer1]
+ lb bc, $10, $20
+ cp $1 ; ElmsLab
+ jr z, .okay
+ lb bc, $00, $00
+
+.okay
+ ld a, [de]
+ add c
+ inc de
+ ld [hli], a
+ ld a, [de]
+ add b
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ pop bc
+ ret
+; 124c1
diff --git a/engine/landmarks.asm b/engine/landmarks.asm
index e9b1c3668..8fb7035f2 100644
--- a/engine/landmarks.asm
+++ b/engine/landmarks.asm
@@ -154,52 +154,52 @@ ENDM
landmark 148, 132, FastShipName
-NewBarkTownName: db "NEW BARK", $1f, "TOWN@"
-CherrygroveCityName: db "CHERRYGROVE", $1f, "CITY@"
+NewBarkTownName: db "NEW BARK¯TOWN@"
+CherrygroveCityName: db "CHERRYGROVE¯CITY@"
VioletCityName: db "VIOLET CITY@"
AzaleaTownName: db "AZALEA TOWN@"
-GoldenrodCityName: db "GOLDENROD", $1f, "CITY@"
-EcruteakCityName: db "ECRUTEAK", $1f, "CITY@"
-OlivineCityName: db "OLIVINE", $1f, "CITY@"
-CianwoodCityName: db "CIANWOOD", $1f, "CITY@"
-MahoganyTownName: db "MAHOGANY", $1f, "TOWN@"
-BlackthornCityName: db "BLACKTHORN", $1f, "CITY@"
-LakeOfRageName: db "LAKE OF", $1f, "RAGE@"
+GoldenrodCityName: db "GOLDENROD¯CITY@"
+EcruteakCityName: db "ECRUTEAK¯CITY@"
+OlivineCityName: db "OLIVINE¯CITY@"
+CianwoodCityName: db "CIANWOOD¯CITY@"
+MahoganyTownName: db "MAHOGANY¯TOWN@"
+BlackthornCityName: db "BLACKTHORN¯CITY@"
+LakeOfRageName: db "LAKE OF¯RAGE@"
SilverCaveName: db "SILVER CAVE@"
-SproutTowerName: db "SPROUT", $1f, "TOWER@"
-RuinsOfAlphName: db "RUINS", $1f, "OF ALPH@"
+SproutTowerName: db "SPROUT¯TOWER@"
+RuinsOfAlphName: db "RUINS¯OF ALPH@"
UnionCaveName: db "UNION CAVE@"
-SlowpokeWellName: db "SLOWPOKE", $1f, "WELL@"
+SlowpokeWellName: db "SLOWPOKE¯WELL@"
RadioTowerName: db "RADIO TOWER@"
PowerPlantName: db "POWER PLANT@"
-NationalParkName: db "NATIONAL", $1f, "PARK@"
+NationalParkName: db "NATIONAL¯PARK@"
TinTowerName: db "TIN TOWER@"
LighthouseName: db "LIGHTHOUSE@"
-WhirlIslandsName: db "WHIRL", $1f, "ISLANDS@"
+WhirlIslandsName: db "WHIRL¯ISLANDS@"
MtMortarName: db "MT.MORTAR@"
-DragonsDenName: db "DRAGON'S", $1f, "DEN@"
+DragonsDenName: db "DRAGON'S¯DEN@"
IcePathName: db "ICE PATH@"
NotApplicableName: db "N/A@"
PalletTownName: db "PALLET TOWN@"
-ViridianCityName: db "VIRIDIAN", $1f, "CITY@"
+ViridianCityName: db "VIRIDIAN¯CITY@"
PewterCityName: db "PEWTER CITY@"
-CeruleanCityName: db "CERULEAN", $1f, "CITY@"
-LavenderTownName: db "LAVENDER", $1f, "TOWN@"
-VermilionCityName: db "VERMILION", $1f, "CITY@"
-CeladonCityName: db "CELADON", $1f, "CITY@"
-SaffronCityName: db "SAFFRON", $1f, "CITY@"
-FuchsiaCityName: db "FUCHSIA", $1f, "CITY@"
-CinnabarIslandName: db "CINNABAR", $1f, "ISLAND@"
-IndigoPlateauName: db "INDIGO", $1f, "PLATEAU@"
-VictoryRoadName: db "VICTORY", $1f, "ROAD@"
+CeruleanCityName: db "CERULEAN¯CITY@"
+LavenderTownName: db "LAVENDER¯TOWN@"
+VermilionCityName: db "VERMILION¯CITY@"
+CeladonCityName: db "CELADON¯CITY@"
+SaffronCityName: db "SAFFRON¯CITY@"
+FuchsiaCityName: db "FUCHSIA¯CITY@"
+CinnabarIslandName: db "CINNABAR¯ISLAND@"
+IndigoPlateauName: db "INDIGO¯PLATEAU@"
+VictoryRoadName: db "VICTORY¯ROAD@"
MtMoonName: db "MT.MOON@"
RockTunnelName: db "ROCK TUNNEL@"
-LavRadioTowerName: db "LAV", $1f, "RADIO TOWER@"
+LavRadioTowerName: db "LAV¯RADIO TOWER@"
SilphCoName: db "SILPH CO.@"
SafariZoneName: db "SAFARI ZONE@"
-SeafoamIslandsName: db "SEAFOAM", $1f, "ISLANDS@"
-PokemonMansionName: db "#MON", $1f, "MANSION@"
-CeruleanCaveNane: db "CERULEAN", $1f, "CAVE@"
+SeafoamIslandsName: db "SEAFOAM¯ISLANDS@"
+PokemonMansionName: db "#MON¯MANSION@"
+CeruleanCaveNane: db "CERULEAN¯CAVE@"
Route1Name: db "ROUTE 1@"
Route2Name: db "ROUTE 2@"
Route3Name: db "ROUTE 3@"
@@ -247,14 +247,14 @@ Route44Name: db "ROUTE 44@"
Route45Name: db "ROUTE 45@"
Route46Name: db "ROUTE 46@"
DarkCaveName: db "DARK CAVE@"
-IlexForestName: db "ILEX", $1f, "FOREST@"
-BurnedTowerName: db "BURNED", $1f, "TOWER@"
+IlexForestName: db "ILEX¯FOREST@"
+BurnedTowerName: db "BURNED¯TOWER@"
FastShipName: db "FAST SHIP@"
-ViridianForestName: db "VIRIDIAN", $1f, "FOREST@"
-DiglettsCaveName: db "DIGLETT'S", $1f, "CAVE@"
+ViridianForestName: db "VIRIDIAN¯FOREST@"
+DiglettsCaveName: db "DIGLETT'S¯CAVE@"
TohjoFallsName: db "TOHJO FALLS@"
UndergroundName: db "UNDERGROUND@"
-BattleTowerName: db "BATTLE", $1f, "TOWER@"
+BattleTowerName: db "BATTLE¯TOWER@"
SpecialMapName: db "SPECIAL@"
diff --git a/engine/link.asm b/engine/link.asm
new file mode 100755
index 000000000..a1fa0661b
--- /dev/null
+++ b/engine/link.asm
@@ -0,0 +1,4117 @@
+LinkCommunications: ; 28000
+ call ClearBGPalettes
+ ld c, 80
+ call DelayFrames
+ call ClearScreen
+ call ClearSprites
+ call UpdateSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld c, 80
+ call DelayFrames
+ call ClearScreen
+ call UpdateSprites
+ call LoadStandardFont
+ call LoadFontsBattleExtra
+ callba Function16d69a
+ call Function3200
+ hlcoord 3, 8
+ ld b, $2
+ ld c, $c
+ ld d, h
+ ld e, l
+ callba Function4d35b
+ hlcoord 4, 10
+ ld de, String28419
+ call PlaceString
+ call Function28eff
+ call Function3200
+ ld hl, wcf5d
+ xor a
+ ld [hli], a
+ ld [hl], $50
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jp nz, Function28177
+
+Function2805d: ; 2805d
+ call Function28426
+ call Function28499
+ call Function28434
+ xor a
+ ld [wcf56], a
+ call Function87d
+ ld a, [hLinkPlayerNumber]
+ cp $2
+ jr nz, .asm_28091
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+
+.asm_28091
+ ld de, MUSIC_NONE
+ call PlayMusic
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rIF], a
+ ld a, $8
+ ld [rIE], a
+ ld hl, wd1f3
+ ld de, EnemyMonSpecies
+ ld bc, $11
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, OverworldMap
+ ld de, wd26b
+ ld bc, $1a8
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, wc608
+ ld de, wc6d0
+ ld bc, $c8
+ call Function75f
+ xor a
+ ld [rIF], a
+ ld a, $1d
+ ld [rIE], a
+ call Function287ab
+ ld hl, wd26b
+ call Function287ca
+ push hl
+ ld bc, NAME_LENGTH
+ add hl, bc
+ ld a, [hl]
+ pop hl
+ and a
+ jp z, Function28b22
+ cp $7
+ jp nc, Function28b22
+ ld de, OverworldMap
+ ld bc, $1a2
+ call Function2879e
+ ld de, wc6d0
+ ld hl, wc813
+ ld c, $2
+.asm_280fe
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_280fe
+ cp $fd
+ jr z, .asm_280fe
+ cp $fe
+ jr z, .asm_280fe
+ cp $ff
+ jr z, .asm_2811d
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_280fe
+
+.asm_2811d
+ ld hl, wc90f
+ dec c
+ jr nz, .asm_280fe
+ ld hl, OverworldMap
+ ld de, wd26b
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld de, OTPartyCount
+ ld a, [hli]
+ ld [de], a
+ inc de
+.asm_28135
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_2814e
+ ld [wd265], a
+ push hl
+ push de
+ callab ConvertMon_1to2
+ pop de
+ pop hl
+ ld a, [wd265]
+ ld [de], a
+ inc de
+ jr .asm_28135
+
+.asm_2814e
+ ld [de], a
+ ld hl, wc813
+ call Function2868a
+ ld a, OTPartyMonOT % $100
+ ld [wd102], a
+ ld a, OTPartyMonOT / $100
+ ld [wd103], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ ld a, [hLinkPlayerNumber]
+ cp $2
+ ld c, 66
+ call z, DelayFrames
+ ld de, MUSIC_ROUTE_30
+ call PlayMusic
+ jp Function287e3
+; 28177
+
+Function28177: ; 28177
+ call Function28426
+ call Function28595
+ call Function28434
+ call Function29dba
+ ld a, [ScriptVar]
+ and a
+ jp z, Function283b2
+ ld a, [hLinkPlayerNumber]
+ cp $2
+ jr nz, .asm_281ae
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ xor a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+
+.asm_281ae
+ ld de, MUSIC_NONE
+ call PlayMusic
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rIF], a
+ ld a, $8
+ ld [rIE], a
+ ld hl, wd1f3
+ ld de, EnemyMonSpecies
+ ld bc, $11
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, OverworldMap
+ ld de, wd26b
+ ld bc, $1c2
+ call Function75f
+ ld a, $fe
+ ld [de], a
+ ld hl, wc608
+ ld de, wc6d0
+ ld bc, $c8
+ call Function75f
+ ld a, [wLinkMode]
+ cp LINK_TRADECENTER
+ jr nz, .asm_281fd
+ ld hl, wc9f4
+ ld de, wcb84
+ ld bc, $186
+ call Function283f2
+
+.asm_281fd
+ xor a
+ ld [rIF], a
+ ld a, $1d
+ ld [rIE], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call Function287ab
+ ld hl, wd26b
+ call Function287ca
+ ld de, OverworldMap
+ ld bc, $1b9
+ call Function2879e
+ ld de, wc6d0
+ ld hl, wc813
+ ld c, $2
+.asm_28224
+ ld a, [de]
+ inc de
+ and a
+ jr z, .asm_28224
+ cp $fd
+ jr z, .asm_28224
+ cp $fe
+ jr z, .asm_28224
+ cp $ff
+ jr z, .asm_28243
+ push hl
+ push bc
+ ld b, $0
+ dec a
+ ld c, a
+ add hl, bc
+ ld a, $fe
+ ld [hl], a
+ pop bc
+ pop hl
+ jr .asm_28224
+
+.asm_28243
+ ld hl, wc90f
+ dec c
+ jr nz, .asm_28224
+ ld a, [wLinkMode]
+ cp LINK_TRADECENTER
+ jp nz, .asm_282fe
+ ld hl, wcb84
+.asm_28254
+ ld a, [hli]
+ cp $20
+ jr nz, .asm_28254
+.asm_28259
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_28259
+ cp $20
+ jr z, .asm_28259
+ dec hl
+ ld de, wcb84
+ ld bc, $190
+ call CopyBytes
+ ld hl, wcb84
+ ld bc, $c6
+.asm_28272
+ ld a, [hl]
+ cp $21
+ jr nz, .asm_28279
+ ld [hl], $fe
+
+.asm_28279
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_28272
+ ld de, wcc9e
+.asm_28282
+ ld a, [de]
+ inc de
+ cp $ff
+ jr z, .asm_28294
+ ld hl, wcc4a
+ dec a
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld [hl], $fe
+ jr .asm_28282
+
+.asm_28294
+ ld hl, wcb84
+ ld de, wc9f4
+ ld b, $6
+.asm_2829c
+ push bc
+ ld bc, $21
+ call CopyBytes
+ ld a, $e
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ pop bc
+ dec b
+ jr nz, .asm_2829c
+ ld de, wc9f4
+ ld b, $6
+.asm_282b4
+ push bc
+ ld a, $21
+ add e
+ ld e, a
+ ld a, $0
+ adc d
+ ld d, a
+ ld bc, $e
+ call CopyBytes
+ pop bc
+ dec b
+ jr nz, .asm_282b4
+ ld b, $6
+ ld de, wc9f4
+.asm_282cc
+ push bc
+ push de
+ callba Function1de5c8
+ ld a, c
+ or a
+ jr z, .asm_282ee
+ sub $3
+ jr nc, .asm_282e4
+ callba Function1df203
+ jr .asm_282ee
+
+.asm_282e4
+ cp $2
+ jr nc, .asm_282ee
+ callba Function1df220
+
+.asm_282ee
+ pop de
+ ld hl, $2f
+ add hl, de
+ ld d, h
+ ld e, l
+ pop bc
+ dec b
+ jr nz, .asm_282cc
+ ld de, wcb0e
+ xor a
+ ld [de], a
+
+.asm_282fe
+ ld hl, OverworldMap
+ ld de, wd26b
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld de, OTPartyCount
+ ld bc, 8
+ call CopyBytes
+ ld de, wd276
+ ld bc, 2
+ call CopyBytes
+ ld de, OTPartyMon1Species
+ ld bc, $1a4
+ call CopyBytes
+ ld a, OTPartyMonOT % $100
+ ld [wd102], a
+ ld a, OTPartyMonOT / $100
+ ld [wd103], a
+ ld de, MUSIC_NONE
+ call PlayMusic
+ ld a, [hLinkPlayerNumber]
+ cp $2
+ ld c, 66
+ call z, DelayFrames
+ ld a, [wLinkMode]
+ cp LINK_COLOSSEUM
+ jr nz, .asm_283a9
+ ld a, CAL
+ ld [OtherTrainerClass], a
+ call ClearScreen
+ callba Function4d354
+ ld hl, Options
+ ld a, [hl]
+ push af
+ and $20
+ or $3
+ ld [hl], a
+ ld hl, wd26b
+ ld de, OTName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ call ReturnToMapFromSubmenu
+ ld a, [wc2d7]
+ push af
+ ld a, $1
+ ld [wc2d7], a
+ ld a, [rIE]
+ push af
+ ld a, [rIF]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, [rIE]
+ set 1, a
+ ld [rIE], a
+ pop af
+ ld [rIF], a
+ predef StartBattle
+ ld a, [rIF]
+ ld h, a
+ xor a
+ ld [rIF], a
+ pop af
+ ld [rIE], a
+ ld a, h
+ ld [rIF], a
+ pop af
+ ld [wc2d7], a
+ pop af
+ ld [Options], a
+ callba LoadPokemonData
+ jp Function28b22
+
+.asm_283a9
+ ld de, MUSIC_ROUTE_30
+ call PlayMusic
+ jp Function287e3
+; 283b2
+
+Function283b2: ; 283b2
+ ld de, UnknownText_0x283ed
+ ld b, $a
+.asm_283b7
+ call DelayFrame
+ call Function908
+ dec b
+ jr nz, .asm_283b7
+ xor a
+ ld [hld], a
+ ld [hl], a
+ ld [hVBlank], a
+ push de
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ push de
+ ld d, h
+ ld e, l
+ callba Function4d35b
+ pop de
+ pop hl
+ bccoord 1, 14
+ call PlaceWholeStringInBoxAtOnce
+ call FadeToWhite
+ call ClearScreen
+ ld b, $8
+ call GetSGBLayout
+ call Function3200
+ ret
+; 283ed
+
+UnknownText_0x283ed: ; 0x283ed
+ ; Too much time has elapsed. Please try again.
+ text_jump UnknownText_0x1c4183
+ db "@"
+; 0x283f2
+
+Function283f2: ; 283f2
+ ld a, $1
+ ld [hFFCC], a
+.asm_283f6
+ ld a, [hl]
+ ld [hSerialSend], a
+ call Function78a
+ push bc
+ ld b, a
+ inc hl
+ ld a, $30
+.asm_28401
+ dec a
+ jr nz, .asm_28401
+ ld a, [hFFCC]
+ and a
+ ld a, b
+ pop bc
+ jr z, .asm_28411
+ dec hl
+ xor a
+ ld [hFFCC], a
+ jr .asm_283f6
+
+.asm_28411
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_283f6
+ ret
+; 28419
+
+String28419: ; 28419
+ db "PLEASE WAIT!@"
+; 28426
+
+Function28426: ; 28426
+ ld hl, OverworldMap
+ lb bc, 5, SCREEN_WIDTH
+.asm_2842c
+ xor a
+ ld [hli], a
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_2842c
+ ret
+; 28434
+
+Function28434: ; 28434
+ ld hl, wd1f3
+ ld a, $fd
+ ld b, $7
+.asm_2843b
+ ld [hli], a
+ dec b
+ jr nz, .asm_2843b
+ ld b, $a
+.asm_28441
+ call Random
+ cp $fd
+ jr nc, .asm_28441
+ ld [hli], a
+ dec b
+ jr nz, .asm_28441
+ ld hl, wc608
+ ld a, $fd
+rept 3
+ ld [hli], a
+endr
+ ld b, $c8
+ xor a
+.asm_28457
+ ld [hli], a
+ dec b
+ jr nz, .asm_28457
+ ld hl, wc818
+ ld de, wc608 + 10
+ ld bc, 0
+.asm_28464
+ inc c
+ ld a, c
+ cp $fd
+ jr z, .asm_2848c
+ ld a, b
+ dec a
+ jr nz, .asm_2847f
+ push bc
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ ld b, $d
+ jr z, .asm_2847a
+ ld b, $27
+
+.asm_2847a
+ ld a, c
+ cp b
+ pop bc
+ jr z, .asm_28495
+
+.asm_2847f
+ inc hl
+ ld a, [hl]
+ cp $fe
+ jr nz, .asm_28464
+ ld a, c
+ ld [de], a
+ inc de
+ ld [hl], $ff
+ jr .asm_28464
+
+.asm_2848c
+ ld a, $ff
+ ld [de], a
+ inc de
+ lb bc, 1, 0
+ jr .asm_28464
+
+.asm_28495
+ ld a, $ff
+ ld [de], a
+ ret
+; 28499
+
+Function28499: ; 28499
+ ld de, OverworldMap
+ ld a, $fd
+ ld b, $6
+.asm_284a0
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .asm_284a0
+ ld hl, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ push de
+ ld hl, PartyCount
+ ld a, [hli]
+ ld [de], a
+ inc de
+.asm_284b5
+ ld a, [hli]
+ cp $ff
+ jr z, .asm_284ce
+ ld [wd265], a
+ push hl
+ push de
+ callab ConvertMon_2to1
+ pop de
+ pop hl
+ ld a, [wd265]
+ ld [de], a
+ inc de
+ jr .asm_284b5
+
+.asm_284ce
+ ld [de], a
+ pop de
+ ld hl, $8
+ add hl, de
+ ld d, h
+ ld e, l
+ ld hl, PartyMon1Species
+ ld c, $6
+.asm_284db
+ push bc
+ call Function284f6
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_284db
+ ld hl, PartyMonOT
+ call .asm_284f0
+ ld hl, PartyMonNicknames
+.asm_284f0
+ ld bc, $42
+ jp CopyBytes
+; 284f6
+
+Function284f6: ; 284f6
+ ld b, h
+ ld c, l
+ push de
+ push bc
+ ld a, [hl]
+ ld [wd265], a
+ callab ConvertMon_2to1
+ pop bc
+ pop de
+ ld a, [wd265]
+ ld [de], a
+ inc de
+ ld hl, $22
+ add hl, bc
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ ld hl, $20
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ inc de
+ ld a, [bc]
+ cp $51
+ jr z, .asm_28528
+ cp $52
+ jr nz, .asm_28530
+
+.asm_28528
+ ld a, $17
+ ld [de], a
+ inc de
+ ld [de], a
+ inc de
+ jr .asm_28544
+
+.asm_28530
+ push bc
+ dec a
+ ld hl, BaseData + 7 ; type
+ ld bc, BaseData1 - BaseData0
+ call AddNTimes
+ ld bc, 2
+ ld a, BANK(BaseData)
+ call FarCopyBytes
+ pop bc
+
+.asm_28544
+ push bc
+ ld hl, $1
+ add hl, bc
+ ld bc, $1a
+ call CopyBytes
+ pop bc
+
+ ld hl, $1f
+ add hl, bc
+ ld a, [hl]
+ ld [de], a
+ ld [CurPartyLevel], a
+ inc de
+
+ push bc
+ ld hl, $24
+ add hl, bc
+ ld bc, 8
+ call CopyBytes
+ pop bc
+
+ push de
+ push bc
+
+ ld a, [bc]
+ dec a
+ push bc
+ ld b, 0
+ ld c, a
+ ld hl, KantoMonSpecials
+ add hl, bc
+ ld a, BANK(KantoMonSpecials)
+ call GetFarByte
+ ld [BaseSpecialAttack], a
+ pop bc
+
+ ld hl, $a
+ add hl, bc
+ ld c, $5
+ ld b, $1
+ predef CalcPkmnStatC
+
+ pop bc
+ pop de
+
+ ld a, [$ffb5]
+ ld [de], a
+ inc de
+ ld a, [$ffb6]
+ ld [de], a
+ inc de
+ ld h, b
+ ld l, c
+ ret
+; 28595
+
+Function28595: ; 28595
+ ld de, OverworldMap
+ ld a, $fd
+ ld b, $6
+.loop1
+ ld [de], a
+ inc de
+ dec b
+ jr nz, .loop1
+ ld hl, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, PartyCount
+ ld bc, 8
+ call CopyBytes
+ ld hl, PlayerID
+ ld bc, 2
+ call CopyBytes
+ ld hl, PartyMon1Species
+ ld bc, $120
+ call CopyBytes
+ ld hl, PartyMonOT
+ ld bc, $42
+ call CopyBytes
+ ld hl, PartyMonNicknames
+ ld bc, $42
+ call CopyBytes
+ ld a, [wLinkMode]
+ cp LINK_TRADECENTER
+ ret nz
+ ld de, wc9f4
+ ld a, $20
+ call Function28682
+ ld a, BANK(sPartyScratch1)
+ call GetSRAMBank
+ ld hl, sPartyScratch1
+ ld b, PARTY_LENGTH
+.loop2
+ push bc
+ ld bc, $21
+ call CopyBytes
+ ld bc, $e
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop2
+ ld hl, sPartyScratch1
+ ld b, PARTY_LENGTH
+.loop3
+ push bc
+ ld bc, $21
+ add hl, bc
+ ld bc, $e
+ call CopyBytes
+ pop bc
+ dec b
+ jr nz, .loop3
+ ld b, PARTY_LENGTH
+ ld de, sPartyScratch1
+ ld hl, wc9f9
+.loop4
+ push bc
+ push hl
+ push de
+ push hl
+ callba Function1de5c8
+ pop de
+ ld a, c
+ or a
+ jr z, .next
+ sub $3
+ jr nc, .skip
+ callba Function1df1e6
+ jr .next
+
+.skip
+ cp $2
+ jr nc, .next
+ callba Function1df220
+
+.next
+ pop de
+ ld hl, SCRATCHMON_STRUCT_LENGTH
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, $21
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .loop4
+ call CloseSRAM
+ ld hl, wc9f9
+ ld bc, $c6
+.loop5
+ ld a, [hl]
+ cp $fe
+ jr nz, .skip2
+ ld [hl], $21
+
+.skip2
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .loop5
+ ld hl, wcabf
+ ld de, wcb13
+ ld b, $54
+ ld c, $0
+.loop6
+ inc c
+ ld a, [hl]
+ cp $fe
+ jr nz, .skip3
+ ld [hl], $ff
+ ld a, c
+ ld [de], a
+ inc de
+
+.skip3
+ inc hl
+ dec b
+ jr nz, .loop6
+ ld a, $ff
+ ld [de], a
+ ret
+; 28682
+
+Function28682: ; 28682
+ ld c, $5
+.loop
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .loop
+ ret
+; 2868a
+
+Function2868a: ; 2868a
+ push hl
+ ld d, h
+ ld e, l
+ ld bc, wcbea
+ ld hl, wcbe8
+ ld a, c
+ ld [hli], a
+ ld [hl], b
+ ld hl, OTPartyMon1Species
+ ld c, $6
+.loop
+ push bc
+ call Function286ba
+ pop bc
+ dec c
+ jr nz, .loop
+ pop hl
+ lb bc, 1, 8
+ add hl, bc
+ ld de, OTPartyMonOT
+ ld bc, $42
+ call CopyBytes
+ ld de, OTPartyMonNicknames
+ ld bc, $42
+ jp CopyBytes
+; 286ba
+
+Function286ba: ; 286ba
+ ld b, h
+ ld c, l
+ ld a, [de]
+ inc de
+ push bc
+ push de
+ ld [wd265], a
+ callab ConvertMon_1to2
+ pop de
+ pop bc
+ ld a, [wd265]
+ ld [bc], a
+ ld [CurSpecies], a
+ ld hl, $22
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hl], a
+ inc de
+ ld hl, $20
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ld hl, wcbe8
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, l
+ ld [wcbe8], a
+ ld a, h
+ ld [wcbe9], a
+ push bc
+ ld hl, $1
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ push bc
+ ld a, [hli]
+ ld b, a
+ call Function28771
+ ld a, b
+ ld [de], a
+ inc de
+ pop bc
+ ld bc, $19
+ call CopyBytes
+ pop bc
+ ld d, h
+ ld e, l
+ ld hl, $1f
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ld [CurPartyLevel], a
+ push bc
+ ld hl, $24
+ add hl, bc
+ push hl
+ ld h, d
+ ld l, e
+ pop de
+ ld bc, 8
+ call CopyBytes
+ pop bc
+ call GetBaseData
+ push de
+ push bc
+ ld d, h
+ ld e, l
+ ld hl, $a
+ add hl, bc
+ ld c, $5
+ ld b, $1
+ predef CalcPkmnStatC
+ pop bc
+ pop hl
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hli], a
+ push hl
+ push bc
+ ld hl, $a
+ add hl, bc
+ ld c, $6
+ ld b, $1
+ predef CalcPkmnStatC
+ pop bc
+ pop hl
+ ld a, [$ffb5]
+ ld [hli], a
+ ld a, [$ffb6]
+ ld [hli], a
+ push hl
+ ld hl, $1b
+ add hl, bc
+ ld a, $46
+ ld [hli], a
+ xor a
+rept 2
+ ld [hli], a
+endr
+ ld [hl], a
+ pop hl
+rept 2
+ inc de
+endr
+ ret
+; 28771
+
+Function28771: ; 28771
+ ld a, b
+ and a
+ ret z
+ push hl
+ ld hl, .TimeCapsuleAlt
+.loop
+ ld a, [hli]
+ and a
+ jr z, .end
+ cp b
+ jr z, .found
+ inc hl
+ jr .loop
+
+.found
+ ld b, [hl]
+
+.end
+ pop hl
+ ret
+
+.TimeCapsuleAlt ; 28785
+; Pokémon traded from RBY do not have held items, so GSC usually interprets the
+; catch rate as an item. However, if the catch rate appears in this table, the
+; item associated with the table entry is used instead.
+ db ITEM_19, LEFTOVERS
+ db ITEM_2D, BITTER_BERRY
+ db ITEM_32, GOLD_BERRY
+ db ITEM_5A, BERRY
+ db ITEM_64, BERRY
+ db ITEM_78, BERRY
+ db ITEM_87, BERRY
+ db ITEM_BE, BERRY
+ db ITEM_C3, BERRY
+ db ITEM_DC, BERRY
+ db HM_08, BERRY
+ db $ff, BERRY
+ db $00
+; 2879e
+
+Function2879e: ; 2879e
+.asm_2879e
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_2879e
+ ld [de], a
+ inc de
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_2879e
+ ret
+; 287ab
+
+Function287ab: ; 287ab
+ ld a, [hLinkPlayerNumber]
+ cp $2
+ ret z
+ ld hl, EnemyMonSpecies
+ call Function287d8
+ ld de, LinkBattleRNs
+ ld c, $a
+.asm_287bb
+ ld a, [hli]
+ cp $fe
+ jr z, .asm_287bb
+ cp $fd
+ jr z, .asm_287bb
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_287bb
+ ret
+; 287ca
+
+Function287ca: ; 287ca
+.asm_287ca
+ ld a, [hli]
+ and a
+ jr z, .asm_287ca
+ cp $fd
+ jr z, .asm_287ca
+ cp $fe
+ jr z, .asm_287ca
+ dec hl
+ ret
+; 287d8
+
+Function287d8: ; 287d8
+.asm_287d8
+ ld a, [hli]
+ cp $fd
+ jr z, .asm_287d8
+ cp $fe
+ jr z, .asm_287d8
+ dec hl
+ ret
+; 287e3
+
+Function287e3: ; 287e3
+ call ClearScreen
+ call Function28ef8
+ callba Function16d673
+ xor a
+ ld hl, wcf51
+rept 3
+ ld [hli], a
+endr
+ ld [hl], a
+ ld a, $1
+ ld [MenuSelection2], a
+ inc a
+ ld [wcf56], a
+ jp Function2888b
+; 28803
+
+Function28803: ; 28803
+ ld a, $1
+ ld [MonType], a
+ ld a, $c1
+ ld [wcfa8], a
+ ld a, [OTPartyCount]
+ ld [wcfa3], a
+ ld a, $1
+ ld [wcfa4], a
+ ld a, $9
+ ld [wcfa1], a
+ ld a, $6
+ ld [wcfa2], a
+ ld a, $1
+ ld [wcfaa], a
+ ld a, $10
+ ld [wcfa7], a
+ ld a, $20
+ ld [wcfa5], a
+ xor a
+ ld [wcfa6], a
+
+Function28835: ; 28835
+ callba Function16d70c
+ ld a, d
+ and a
+ jp z, Function2891c
+ bit 0, a
+ jr z, .asm_2885b
+ ld a, $1
+ ld [wd263], a
+ callab Function50db9
+ ld hl, OTPartyMon1Species
+ callba Function4d319
+ jp Function2891c
+
+.asm_2885b
+ bit 6, a
+ jr z, .asm_28883
+ ld a, [MenuSelection2]
+ ld b, a
+ ld a, [OTPartyCount]
+ cp b
+ jp nz, Function2891c
+ xor a
+ ld [MonType], a
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, NAME_LENGTH
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ ld a, [PartyCount]
+ ld [MenuSelection2], a
+ jr Function2888b
+
+.asm_28883
+ bit 7, a
+ jp z, Function2891c
+ jp Function28ac9
+; 2888b
+
+Function2888b: ; 2888b
+ callba Function49856
+ xor a
+ ld [MonType], a
+ ld a, $c1
+ ld [wcfa8], a
+ ld a, [PartyCount]
+ ld [wcfa3], a
+ ld a, $1
+ ld [wcfa4], a
+ ld a, $1
+ ld [wcfa1], a
+ ld a, $6
+ ld [wcfa2], a
+ ld a, $1
+ ld [wcfaa], a
+ ld a, $10
+ ld [wcfa7], a
+ ld a, $20
+ ld [wcfa5], a
+ xor a
+ ld [wcfa6], a
+ call Function3200
+
+Function288c5: ; 288c5
+ callba Function16d70c
+ ld a, d
+ and a
+ jr nz, .asm_288d2
+ jp Function2891c
+
+.asm_288d2
+ bit 0, a
+ jr z, .asm_288d9
+ jp Function28926
+
+.asm_288d9
+ bit 7, a
+ jr z, .asm_288fe
+ ld a, [MenuSelection2]
+ dec a
+ jp nz, Function2891c
+ ld a, $1
+ ld [MonType], a
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, NAME_LENGTH
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ ld a, $1
+ ld [MenuSelection2], a
+ jp Function28803
+
+.asm_288fe
+ bit 6, a
+ jr z, Function2891c
+ ld a, [MenuSelection2]
+ ld b, a
+ ld a, [PartyCount]
+ cp b
+ jr nz, Function2891c
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, NAME_LENGTH
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+ jp Function28ade
+; 2891c
+
+Function2891c: ; 2891c
+ ld a, [MonType]
+ and a
+ jp z, Function288c5
+ jp Function28835
+; 28926
+
+Function28926: ; 28926
+ call LoadTileMapToTempTileMap
+ ld a, [MenuSelection2]
+ push af
+ hlcoord 0, 15
+ ld b, $1
+ ld c, $12
+ call Function28eef
+ hlcoord 2, 16
+ ld de, String28ab4
+ call PlaceString
+ callba Function4d354
+
+.asm_28946
+ ld a, $7f
+ ldcoord_a 11, 16
+ ld a, $13
+ ld [wcfa8], a
+ ld a, $1
+ ld [wcfa3], a
+ ld a, $1
+ ld [wcfa4], a
+ ld a, $10
+ ld [wcfa1], a
+ ld a, $1
+ ld [wcfa2], a
+ ld a, $1
+ ld [MenuSelection2], a
+ ld [wcfaa], a
+ ld a, $20
+ ld [wcfa7], a
+ xor a
+ ld [wcfa5], a
+ ld [wcfa6], a
+ call Function1bd3
+ bit 4, a
+ jr nz, .asm_2898d
+ bit 1, a
+ jr z, .asm_289cd
+.asm_28983
+ pop af
+ ld [MenuSelection2], a
+ call Call_LoadTempTileMapToTileMap
+ jp Function2888b
+
+.asm_2898d
+ ld a, $7f
+ ldcoord_a 1, 16
+ ld a, $23
+ ld [wcfa8], a
+ ld a, $1
+ ld [wcfa3], a
+ ld a, $1
+ ld [wcfa4], a
+ ld a, $10
+ ld [wcfa1], a
+ ld a, $b
+ ld [wcfa2], a
+ ld a, $1
+ ld [MenuSelection2], a
+ ld [wcfaa], a
+ ld a, $20
+ ld [wcfa7], a
+ xor a
+ ld [wcfa5], a
+ ld [wcfa6], a
+ call Function1bd3
+ bit 5, a
+ jp nz, .asm_28946
+ bit 1, a
+ jr nz, .asm_28983
+ jr .asm_289fe
+
+.asm_289cd
+ pop af
+ ld [MenuSelection2], a
+ ld a, $4
+ ld [wd263], a
+ callab Function50db9
+ callba Function4d319
+ call Call_LoadTempTileMapToTileMap
+ hlcoord 6, 1
+ lb bc, 6, 1
+ ld a, " "
+ call Function28b77
+ hlcoord 17, 1
+ lb bc, 6, 1
+ ld a, " "
+ call Function28b77
+ jp Function2888b
+
+.asm_289fe
+ call Function1bee
+ pop af
+ ld [MenuSelection2], a
+ dec a
+ ld [wd002], a
+ ld [wcf56], a
+ callba Function16d6ce
+ ld a, [wcf51]
+ cp $f
+ jp z, Function287e3
+ ld [wd003], a
+ call Function28b68
+ ld c, $64
+ call DelayFrames
+ callba Functionfb57e
+ jr c, .asm_28a58
+ callba Functionfb5dd
+ jp nc, Function28b87
+ xor a
+ ld [wcf57], a
+ ld [wcf52], a
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld hl, UnknownText_0x28aaf
+ bccoord 1, 14
+ call PlaceWholeStringInBoxAtOnce
+ jr .asm_28a89
+
+.asm_28a58
+ xor a
+ ld [wcf57], a
+ ld [wcf52], a
+ ld a, [wd003]
+ ld hl, OTPartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld hl, UnknownText_0x28ac4
+ bccoord 1, 14
+ call PlaceWholeStringInBoxAtOnce
+
+.asm_28a89
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ hlcoord 1, 14
+ ld de, String28ece
+ call PlaceString
+ ld a, $1
+ ld [wcf56], a
+ callba Function16d6ce
+ ld c, $64
+ call DelayFrames
+ jp Function287e3
+; 28aaf
+
+
+UnknownText_0x28aaf: ; 0x28aaf
+ ; If you trade that #MON, you won't be able to battle.
+ text_jump UnknownText_0x1c41b1
+ db "@"
+; 0x28ab4
+
+String28ab4: ; 28ab4
+ db "STATS TRADE@"
+
+UnknownText_0x28ac4: ; 0x28ac4
+ ; Your friend's @ appears to be abnormal!
+ text_jump UnknownText_0x1c41e6
+ db "@"
+; 0x28ac9
+
+
+Function28ac9: ; 28ac9
+ ld a, [MenuSelection2]
+ cp $1
+ jp nz, Function2891c
+ call Function1bf7
+ push hl
+ push bc
+ ld bc, NAME_LENGTH
+ add hl, bc
+ ld [hl], $7f
+ pop bc
+ pop hl
+
+Function28ade: ; 28ade
+.asm_28ade
+ ld a, $ed
+ ldcoord_a 9, 17
+.asm_28ae3
+ call JoyTextDelay
+ ld a, [hJoyLast]
+ and a
+ jr z, .asm_28ae3
+ bit 0, a
+ jr nz, .asm_28b0b
+ push af
+ ld a, " "
+ ldcoord_a 9, 17
+ pop af
+ bit 6, a
+ jr z, .asm_28b03
+ ld a, [OTPartyCount]
+ ld [MenuSelection2], a
+ jp Function28803
+
+.asm_28b03
+ ld a, $1
+ ld [MenuSelection2], a
+ jp Function2888b
+
+.asm_28b0b
+ ld a, $ec
+ ldcoord_a 9, 17
+ ld a, $f
+ ld [wcf56], a
+ callba Function16d6ce
+ ld a, [wcf51]
+ cp $f
+ jr nz, .asm_28ade
+
+Function28b22: ; 28b22
+ call FadeToWhite
+ call ClearScreen
+ ld b, $8
+ call GetSGBLayout
+ call Function3200
+ xor a
+ ld [wcfbb], a
+ xor a
+ ld [rSB], a
+ ld [hSerialSend], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ret
+; 28b42
+
+Function28b42: ; 28b42
+ hlcoord 0, 16
+ ld a, "┘"
+ ld bc, 2 * SCREEN_WIDTH
+ call ByteFill
+ hlcoord 1, 16
+ ld a, " "
+ ld bc, SCREEN_WIDTH - 2
+ call ByteFill
+ hlcoord 2, 16
+ ld de, String_28b61
+ jp PlaceString
+; 28b61
+
+String_28b61: ; 28b61
+ db "CANCEL@"
+; 28b68
+
+Function28b68: ; 28b68
+ ld a, [wcf51]
+ hlcoord 6, 9
+ ld bc, SCREEN_WIDTH
+ call AddNTimes
+ ld [hl], $ec
+ ret
+; 28b77
+
+Function28b77: ; 28b77
+.asm_28b77
+ push bc
+ push hl
+.asm_28b79
+ ld [hli], a
+ dec c
+ jr nz, .asm_28b79
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_28b77
+ ret
+; 28b87
+
+Function28b87: ; 28b87
+ xor a
+ ld [wcf57], a
+ ld [wcf52], a
+ hlcoord 0, 12
+ ld b, $4
+ ld c, $12
+ call Function28eef
+ callba Function4d354
+ ld a, [wd002]
+ ld hl, PartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld de, wd004
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ ld a, [wd003]
+ ld hl, OTPartySpecies
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, UnknownText_0x28eb8
+ bccoord 1, 14
+ call PlaceWholeStringInBoxAtOnce
+ call LoadStandardMenuDataHeader
+ hlcoord 10, 7
+ ld b, $3
+ ld c, $7
+ call Function28eef
+ ld de, String28eab
+ hlcoord 12, 8
+ call PlaceString
+ ld a, $8
+ ld [wcfa1], a
+ ld a, $b
+ ld [wcfa2], a
+ ld a, $1
+ ld [wcfa4], a
+ ld a, $2
+ ld [wcfa3], a
+ xor a
+ ld [wcfa5], a
+ ld [wcfa6], a
+ ld a, $20
+ ld [wcfa7], a
+ ld a, $3
+ ld [wcfa8], a
+ ld a, $1
+ ld [MenuSelection2], a
+ ld [wcfaa], a
+ callba Function4d354
+ call Function1bd3
+ push af
+ call Call_ExitMenu
+ call Function3200
+ pop af
+ bit 1, a
+ jr nz, .asm_28c33
+ ld a, [MenuSelection2]
+ dec a
+ jr z, .asm_28c54
+
+.asm_28c33
+ ld a, $1
+ ld [wcf56], a
+ hlcoord 0, 12
+ ld b, 4
+ ld c, 18
+ call Function28eef
+ hlcoord 1, 14
+ ld de, String28ece
+ call PlaceString
+ callba Function16d6ce
+ jp Function28ea3
+
+.asm_28c54
+ ld a, $2
+ ld [wcf56], a
+ callba Function16d6ce
+ ld a, [wcf51]
+ dec a
+ jr nz, .asm_28c7b
+ hlcoord 0, 12
+ ld b, 4
+ ld c, 18
+ call Function28eef
+ hlcoord 1, 14
+ ld de, String28ece
+ call PlaceString
+ jp Function28ea3
+
+.asm_28c7b
+ ld hl, sPartyScratch1
+ ld a, [wd002]
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ call AddNTimes
+ ld a, BANK(sPartyScratch1)
+ call GetSRAMBank
+ ld d, h
+ ld e, l
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ add hl, bc
+ ld a, [wd002]
+ ld c, a
+.asm_28c96
+ inc c
+ ld a, c
+ cp $6
+ jr z, .asm_28ca6
+ push bc
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ call CopyBytes
+ pop bc
+ jr .asm_28c96
+
+.asm_28ca6
+ ld hl, sPartyScratch1
+ ld a, [PartyCount]
+ dec a
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ call AddNTimes
+ push hl
+ ld hl, wc9f4
+ ld a, [wd003]
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ call AddNTimes
+ pop de
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ call CopyBytes
+ call CloseSRAM
+ ld hl, PlayerName
+ ld de, wc6e7
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wd002]
+ ld hl, PartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wc6d0], a
+ push af
+ ld a, [wd002]
+ ld hl, PartyMonOT
+ call SkipNames
+ ld de, wc6f2
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, PartyMon1ID
+ ld a, [wd002]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [PlayerScreens], a
+ ld a, [hl]
+ ld [EnemyScreens], a
+ ld hl, PartyMon1DVs
+ ld a, [wd002]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wc6fd], a
+ ld a, [hl]
+ ld [wPlayerMinimized], a
+ ld a, [wd002]
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba GetCaughtGender
+ ld a, c
+ ld [wc701], a
+ ld hl, wd26b
+ ld de, wc719
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld a, [wd003]
+ ld hl, OTPartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wc702], a
+ ld a, [wd003]
+ ld hl, OTPartyMonOT
+ call SkipNames
+ ld de, wc724
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ld hl, OTPartyMon1ID
+ ld a, [wd003]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wEnemyWrapCount], a
+ ld a, [hl]
+ ld [wPlayerCharging], a
+ ld hl, OTPartyMon1DVs
+ ld a, [wd003]
+ call GetPartyLocation
+ ld a, [hli]
+ ld [wEnemyTrappingMove], a
+ ld a, [hl]
+ ld [wPlayerWrapCount], a
+ ld a, [wd003]
+ ld hl, OTPartyMon1Species
+ call GetPartyLocation
+ ld b, h
+ ld c, l
+ callba GetCaughtGender
+ ld a, c
+ ld [wEnemyCharging], a
+ ld a, [wd002]
+ ld [CurPartyMon], a
+ ld hl, PartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd002], a
+ xor a
+ ld [wPokemonWithdrawDepositParameter], a
+ callab Functione039
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ ld a, $1
+ ld [wd1e9], a
+ ld a, [wd003]
+ push af
+ ld hl, OTPartySpecies
+ ld b, $0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd003], a
+ ld c, 100
+ call DelayFrames
+ call ClearTileMap
+ call LoadFontsBattleExtra
+ ld b, $8
+ call GetSGBLayout
+ ld a, [hLinkPlayerNumber]
+ cp $1
+ jr z, .asm_28de4
+ predef Function28f24
+ jr .asm_28de9
+
+.asm_28de4
+ predef Function28f63
+
+.asm_28de9
+ pop af
+ ld c, a
+ ld [CurPartyMon], a
+ ld hl, OTPartySpecies
+ ld d, $0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ ld hl, OTPartyMon1Species
+ ld a, c
+ call GetPartyLocation
+ ld de, TempMonSpecies
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ predef Functionda96
+ ld a, [PartyCount]
+ dec a
+ ld [CurPartyMon], a
+ callab Function421d8
+ call ClearScreen
+ call Function28ef8
+ call Function28eff
+ callba Function4d354
+ ld b, $1
+ pop af
+ ld c, a
+ cp MEW
+ jr z, .asm_28e49
+ ld a, [CurPartySpecies]
+ cp MEW
+ jr z, .asm_28e49
+ ld b, $2
+ ld a, c
+ cp CELEBI
+ jr z, .asm_28e49
+ ld a, [CurPartySpecies]
+ cp CELEBI
+ jr z, .asm_28e49
+ ld b, $0
+
+.asm_28e49
+ ld a, b
+ ld [wcf56], a
+ push bc
+ call Function862
+ pop bc
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr z, .asm_28e63
+ ld a, b
+ and a
+ jr z, .asm_28e63
+ ld a, [wcf52]
+ cp b
+ jr nz, .asm_28e49
+
+.asm_28e63
+ callba Function14a58
+ callba MobileFn_1060af
+ callba BackupMobileEventIndex
+ ld c, 40
+ call DelayFrames
+ hlcoord 0, 12
+ ld b, 4
+ ld c, 18
+ call Function28eef
+ hlcoord 1, 14
+ ld de, String28ebd
+ call PlaceString
+ callba Function4d354
+ ld c, 50
+ call DelayFrames
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jp z, Function2805d
+ jp Function28177
+; 28ea3
+
+Function28ea3: ; 28ea3
+ ld c, 100
+ call DelayFrames
+ jp Function287e3
+; 28eab
+
+String28eab: ; 28eab
+ db "TRADE"
+ next "CANCEL@"
+
+UnknownText_0x28eb8: ; 0x28eb8
+ ; Trade @ for @ ?
+ text_jump UnknownText_0x1c4212
+ db "@"
+; 0x28ebd
+
+String28ebd: ; 28ebd
+ db "Trade completed!@"
+
+String28ece: ; 28ece
+ db "Too bad! The trade"
+ next "was canceled!@"
+
+
+Function28eef: ; 28eef
+ ld d, h
+ ld e, l
+ callba Function16d6ca
+ ret
+; 28ef8
+
+Function28ef8: ; 28ef8
+ callba Function16d696
+ ret
+; 28eff
+
+Function28eff: ; 28eff
+ callba Function16d6a7
+ call SetPalettes
+ ret
+; 28f09
+
+Function28f09: ; 28f09
+ hlcoord 0, 0
+ ld b, 6
+ ld c, 18
+ call Function28eef
+ hlcoord 0, 8
+ ld b, 6
+ ld c, 18
+ call Function28eef
+ callba Functionfb60d
+ ret
+; 28f24
+
+Function28f24: ; 28f24
+ xor a
+ ld [wcf66], a
+ ld hl, wc6e7
+ ld de, wc719
+ call Function297ff
+ ld hl, wc6d0
+ ld de, wc702
+ call Function29814
+ ld de, .data_28f3f
+ jr Function28fa1
+
+.data_28f3f
+ db $1b
+ db $1
+ db $1c
+ db $21
+ db $2d
+ db $27
+ db $23
+ db $3
+ db $25
+ db $28
+ db $25
+ db $1e
+ db $29
+ db $6
+ db $16
+ db $1f
+ db $19
+ db $17
+ db $22
+ db $1f
+ db $2a
+ db $e
+ db $3
+ db $24
+ db $5
+ db $25
+ db $2
+ db $27
+ db $25
+ db $1d
+ db $2c
+ db $2e
+ db $1e
+ db $18
+ db $1f
+ db $2b
+
+Function28f63: ; 28f63
+ xor a
+ ld [wcf66], a
+ ld hl, wc719
+ ld de, wc6e7
+ call Function297ff
+ ld hl, wc702
+ ld de, wc6d0
+ call Function29814
+ ld de, .data_28f7e
+ jr Function28fa1
+
+.data_28f7e
+ db $1a
+ db $17
+ db $22
+ db $1f
+ db $2a
+ db $6
+ db $3
+ db $24
+ db $5
+ db $25
+ db $2
+ db $27
+ db $25
+ db $1d
+ db $2c
+ db $2f
+ db $1e
+ db $18
+ db $1f
+ db $1b
+ db $1
+ db $1c
+ db $22
+ db $27
+ db $23
+ db $3
+ db $25
+ db $28
+ db $25
+ db $1e
+ db $29
+ db $e
+ db $16
+ db $1f
+ db $2b
+
+Function28fa1: ; 28fa1
+ ld hl, BattleEnded
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld hl, VramState
+ ld a, [hl]
+ push af
+ res 0, [hl]
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ call Function28fdb
+ ld a, [wcf66]
+ and a
+ jr nz, .asm_28fca
+ ld de, MUSIC_EVOLUTION
+ call PlayMusic2
+.asm_28fca
+ call Function29082
+ jr nc, .asm_28fca
+ pop af
+ ld [Options], a
+ pop af
+ ld [VramState], a
+ pop af
+ ld [hMapAnims], a
+ ret
+; 28fdb
+
+Function28fdb: ; 28fdb
+ xor a
+ ld [wJumptableIndex], a
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearTileMap
+ call DisableLCD
+ call LoadFontsBattleExtra
+ callab Function8cf53
+ ld a, [hCGB]
+ and a
+ jr z, .asm_2900b
+ ld a, $1
+ ld [rVBK], a
+ ld hl, VTiles0
+ ld bc, sScratch - VTiles0
+ xor a
+ call ByteFill
+ ld a, $0
+ ld [rVBK], a
+
+.asm_2900b
+ ld hl, VBGMap0
+ ld bc, sScratch - VBGMap0
+ ld a, " "
+ call ByteFill
+ ld hl, TradeGameBoyLZ
+ ld de, VTiles2 tile $31
+ call Decompress
+ ld hl, TradeArrowGFX
+ ld de, VTiles1 tile $6d
+ ld bc, $10
+ ld a, BANK(TradeArrowGFX)
+ call FarCopyBytes
+ ld hl, TradeArrowGFX + $10
+ ld de, VTiles1 tile $6e
+ ld bc, $10
+ ld a, BANK(TradeArrowGFX)
+ call FarCopyBytes
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ callba Function4d7fd
+ call EnableLCD
+ call Function2982b
+ ld a, [wc6d0]
+ ld hl, wc6fd
+ ld de, VTiles0
+ call Function29491
+ ld a, [wc702]
+ ld hl, wEnemyTrappingMove
+ ld de, VTiles0 tile $31
+ call Function29491
+ ld a, [wc6d0]
+ ld de, wc6d1
+ call Function294a9
+ ld a, [wc702]
+ ld de, wc703
+ call Function294a9
+ call Function297ed
+ ret
+; 29082
+
+Function29082: ; 29082
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_2909b
+ call Function290a0
+ callab Function8cf69
+ ld hl, wcf65
+ inc [hl]
+ call DelayFrame
+ and a
+ ret
+
+.asm_2909b
+ call LoadStandardFont
+ scf
+ ret
+; 290a0
+
+Function290a0: ; 290a0
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, JumpTable290af
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 290af
+
+JumpTable290af: ; 290af
+ dw Function29114
+ dw Function2942e
+ dw Function29461
+ dw Function29348
+ dw Function2937e
+ dw Function29391
+ dw Function29129
+ dw Function291af
+ dw Function291c4
+ dw Function291d9
+ dw Function2925d
+ dw Function29220
+ dw Function2925d
+ dw Function29229
+ dw Function2913c
+ dw Function2925d
+ dw Function291e8
+ dw Function291fd
+ dw Function29211
+ dw Function29220
+ dw Function2925d
+ dw Function29229
+ dw Function29701
+ dw Function2973c
+ dw Function2975c
+ dw Function2977f
+ dw Function297a4
+ dw Function293a6
+ dw Function293b6
+ dw Function293d2
+ dw Function293de
+ dw Function293ea
+ dw Function2940c
+ dw Function294e7
+ dw Function294f0
+ dw Function2961b
+ dw Function2962c
+ dw Function29879
+ dw Function29886
+ dw Function29649
+ dw Function29660
+ dw Function2926d
+ dw Function29277
+ dw Function29123
+ dw Function29487
+ dw Function294f9
+ dw Function29502
+ dw Function2950c
+; 2910f
+
+Function2910f: ; 2910f
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 29114
+
+Function29114: ; 29114
+ ld hl, BattleEnded
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld a, [de]
+ ld [wJumptableIndex], a
+ inc de
+ ld [hl], d
+ dec hl
+ ld [hl], e
+ ret
+; 29123
+
+Function29123: ; 29123
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+; 29129
+
+Function29129: ; 29129
+ ld a, $ed
+ call Function292f6
+ ld a, [wc74c]
+ ld [wd265], a
+ xor a
+ ld de, $2c58
+ ld b, $0
+ jr Function2914e
+
+Function2913c: ; 2913c
+ ld a, $ee
+ call Function292f6
+ ld a, [wc74d]
+ ld [wd265], a
+ ld a, $2
+ lb de, $4c, $94
+ ld b, $4
+
+Function2914e: ; 2914e
+ push bc
+ push de
+ push bc
+ push de
+ push af
+ call DisableLCD
+ callab Function8cf53
+ ld hl, $9874
+ ld bc, $c
+ ld a, $60
+ call ByteFill
+ pop af
+ call Function29281
+ xor a
+ ld [hSCX], a
+ ld a, $7
+ ld [hWX], a
+ ld a, $70
+ ld [hWY], a
+ call EnableLCD
+ call Function2985a
+ pop de
+ ld a, $11
+ call Function3b2a
+ ld hl, $b
+ add hl, bc
+ pop bc
+ ld [hl], b
+ pop de
+ ld a, $12
+ call Function3b2a
+ ld hl, $b
+ add hl, bc
+ pop bc
+ ld [hl], b
+ call WaitBGMap
+ ld b, $1b
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld a, $d0
+ call Functioncf8
+ call Function2910f
+ ld a, $5c
+ ld [wcf64], a
+ ret
+; 291af
+
+Function291af: ; 291af
+ call Function2981d
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ cp $50
+ ret nz
+ ld a, $1
+ call Function29281
+ call Function2910f
+ ret
+; 291c4
+
+Function291c4: ; 291c4
+ call Function2981d
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ cp $a0
+ ret nz
+ ld a, $2
+ call Function29281
+ call Function2910f
+ ret
+; 291d9
+
+Function291d9: ; 291d9
+ call Function2981d
+ ld a, [hSCX]
+ add $2
+ ld [hSCX], a
+ and a
+ ret nz
+ call Function2910f
+ ret
+; 291e8
+
+Function291e8: ; 291e8
+ call Function2981d
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ cp $b0
+ ret nz
+ ld a, $1
+ call Function29281
+ call Function2910f
+ ret
+; 291fd
+
+Function291fd: ; 291fd
+ call Function2981d
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ cp $60
+ ret nz
+ xor a
+ call Function29281
+ call Function2910f
+ ret
+; 29211
+
+Function29211: ; 29211
+ call Function2981d
+ ld a, [hSCX]
+ sub $2
+ ld [hSCX], a
+ and a
+ ret nz
+ call Function2910f
+ ret
+; 29220
+
+Function29220: ; 29220
+ ld a, $80
+ ld [wcf64], a
+ call Function2910f
+ ret
+; 29229
+
+Function29229: ; 29229
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ call DisableLCD
+ callab Function8cf53
+ ld hl, VBGMap0
+ ld bc, sScratch - VBGMap0
+ ld a, " "
+ call ByteFill
+ xor a
+ ld [hSCX], a
+ ld a, $90
+ ld [hWY], a
+ call EnableLCD
+ call Function2982b
+ call WaitBGMap
+ call Function297ed
+ call Function29114
+ ret
+; 2925d
+
+Function2925d: ; 2925d
+ call Function2981d
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .asm_29269
+ dec [hl]
+ ret
+
+.asm_29269
+ call Function2910f
+ ret
+; 2926d
+
+Function2926d: ; 2926d
+ call Function29114
+ ld de, SFX_GIVE_TRADEMON
+ call PlaySFX
+ ret
+; 29277
+
+Function29277: ; 29277
+ call Function29114
+ ld de, SFX_GET_TRADEMON
+ call PlaySFX
+ ret
+; 29281
+
+Function29281: ; 29281
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_2928f
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 2928f
+
+Jumptable_2928f: ; 2928f
+ dw Function29297
+ dw Function292af
+ dw Function292be
+ dw Function29297
+; 29297
+
+Function29297: ; 29297
+ call Function297cf
+ hlcoord 9, 3
+ ld [hl], $5b
+ inc hl
+ ld bc, $a
+ ld a, $60
+ call ByteFill
+ hlcoord 3, 2
+ call Function292ec
+ ret
+; 292af
+
+Function292af: ; 292af
+ call Function297cf
+ hlcoord 0, 3
+ ld bc, SCREEN_WIDTH
+ ld a, $60
+ call ByteFill
+ ret
+; 292be
+
+Function292be: ; 292be
+ call Function297cf
+ hlcoord 0, 3
+ ld bc, $11
+ ld a, $60
+ call ByteFill
+ hlcoord 17, 3
+ ld a, $5d
+ ld [hl], a
+ ld a, $61
+ ld de, SCREEN_WIDTH
+ ld c, $3
+.asm_292d9
+ add hl, de
+ ld [hl], a
+ dec c
+ jr nz, .asm_292d9
+ add hl, de
+ ld a, $5f
+ ld [hld], a
+ ld a, $5b
+ ld [hl], a
+ hlcoord 10, 6
+ call Function292ec
+ ret
+; 292ec
+
+Function292ec: ; 292ec
+ ld de, TradeGameBoyTilemap
+ lb bc, 8, 6
+ call Function297db
+ ret
+; 292f6
+
+Function292f6: ; 292f6
+ push af
+ call ClearBGPalettes
+ call WaitTop
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH
+ ld a, "─"
+ call ByteFill
+ hlcoord 0, 1
+ ld de, wc736
+ call PlaceString
+ ld hl, wc741
+ ld de, 0
+.asm_2931e
+ ld a, [hli]
+ cp "@"
+ jr z, .asm_29326
+ dec de
+ jr .asm_2931e
+
+.asm_29326
+ hlcoord 0, 4
+ add hl, de
+ ld de, wc741
+ call PlaceString
+ hlcoord 7, 2
+ ld bc, 6
+ pop af
+ call ByteFill
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ ret
+; 29348
+
+Function29348: ; 29348
+ call ClearTileMap
+ call WaitTop
+ ld a, $a0
+ ld [hSCX], a
+ call DelayFrame
+ hlcoord 8, 2
+ ld de, Tilemap_298f7
+ lb bc, 3, 12
+ call Function297db
+ call WaitBGMap
+ ld b, $1b
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ ld de, $e4e4
+ call DmgToCgbObjPals
+ ld de, SFX_POTION
+ call PlaySFX
+ call Function2910f
+ ret
+; 2937e
+
+Function2937e: ; 2937e
+ ld a, [hSCX]
+ and a
+ jr z, .asm_29388
+ add $4
+ ld [hSCX], a
+ ret
+
+.asm_29388
+ ld c, $50
+ call DelayFrames
+ call Function29114
+ ret
+; 29391
+
+Function29391: ; 29391
+ ld a, [hSCX]
+ cp $a0
+ jr z, .asm_2939c
+ sub $4
+ ld [hSCX], a
+ ret
+
+.asm_2939c
+ call ClearTileMap
+ xor a
+ ld [hSCX], a
+ call Function29114
+ ret
+; 293a6
+
+Function293a6: ; 293a6
+ ld a, $8f
+ ld [hWX], a
+ ld a, $88
+ ld [hSCX], a
+ ld a, $50
+ ld [hWY], a
+ call Function29114
+ ret
+; 293b6
+
+Function293b6: ; 293b6
+ ld a, [hWX]
+ cp $7
+ jr z, .asm_293c7
+ sub $4
+ ld [hWX], a
+ ld a, [hSCX]
+ sub $4
+ ld [hSCX], a
+ ret
+
+.asm_293c7
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hSCX], a
+ call Function29114
+ ret
+; 293d2
+
+Function293d2: ; 293d2
+ ld a, $7
+ ld [hWX], a
+ ld a, $50
+ ld [hWY], a
+ call Function29114
+ ret
+; 293de
+
+Function293de: ; 293de
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ call Function29114
+ ret
+; 293ea
+
+Function293ea: ; 293ea
+ call WaitTop
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call WaitBGMap
+ ld a, $7
+ ld [hWX], a
+ xor a
+ ld [hWY], a
+ call DelayFrame
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call ClearTileMap
+ call Function2910f
+ ret
+; 2940c
+
+Function2940c: ; 2940c
+ ld a, [hWX]
+ cp $a1
+ jr nc, .asm_29417
+ add $4
+ ld [hWX], a
+ ret
+
+.asm_29417
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ call WaitBGMap
+ ld a, $7
+ ld [hWX], a
+ ld a, $90
+ ld [hWY], a
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ call Function29114
+ ret
+; 2942e
+
+Function2942e: ; 2942e
+ call Function2951f
+ ld a, [wc6d0]
+ ld [CurPartySpecies], a
+ ld a, [wc6fd]
+ ld [TempMonDVs], a
+ ld a, [wPlayerMinimized]
+ ld [TempMonDVs + 1], a
+ ld b, $1a
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ call Function294bb
+
+ ld a, [wc6d0]
+ call GetCryIndex
+ jr c, .asm_2945d
+ ld e, c
+ ld d, b
+ call PlayCryHeader
+.asm_2945d
+
+ call Function29114
+ ret
+; 29461
+
+Function29461: ; 29461
+ call Function29549
+ ld a, [wc702]
+ ld [CurPartySpecies], a
+ ld a, [wEnemyTrappingMove]
+ ld [TempMonDVs], a
+ ld a, [wPlayerWrapCount]
+ ld [TempMonDVs + 1], a
+ ld b, $1a
+ call GetSGBLayout
+ ld a, $e4
+ call DmgToCgbBGPals
+ call Function294c0
+ call Function29114
+ ret
+; 29487
+
+Function29487: ; 29487
+ callba Function4d81e
+ call Function29114
+ ret
+; 29491
+
+Function29491: ; 29491
+ push de
+ push af
+ predef GetUnownLetter
+ pop af
+ ld [CurPartySpecies], a
+ ld [CurSpecies], a
+ call GetBaseData
+ pop de
+ predef GetFrontpic
+ ret
+; 294a9
+
+Function294a9: ; 294a9
+ push de
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ pop de
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+; 294bb
+
+Function294bb: ; 294bb
+ ld de, VTiles0
+ jr Function294c3
+
+Function294c0: ; 294c0
+ ld de, VTiles0 tile $31
+
+Function294c3: ; 294c3
+ call DelayFrame
+ ld hl, VTiles2
+ ld bc, $a31
+ call Request2bpp
+ call WaitTop
+ call Function297cf
+ hlcoord 7, 2
+ xor a
+ ld [hFillBox], a
+ lb bc, 7, 7
+ predef FillBox
+ call WaitBGMap
+ ret
+; 294e7
+
+Function294e7: ; 294e7
+ ld c, $50
+ call DelayFrames
+ call Function29114
+ ret
+; 294f0
+
+Function294f0: ; 294f0
+ ld c, $28
+ call DelayFrames
+ call Function29114
+ ret
+; 294f9
+
+Function294f9: ; 294f9
+ ld c, $60
+ call DelayFrames
+ call Function29114
+ ret
+; 29502
+
+Function29502: ; 29502
+ call Function29516
+ ret nz
+ ld c, $50
+ call DelayFrames
+ ret
+; 2950c
+
+Function2950c: ; 2950c
+ call Function29516
+ ret nz
+ ld c, $b4
+ call DelayFrames
+ ret
+; 29516
+
+Function29516: ; 29516
+ call Function29114
+ ld a, [wc702]
+ cp $fd
+ ret
+; 2951f
+
+Function2951f: ; 2951f
+ ld de, wc6d0
+ ld a, [de]
+ cp $fd
+ jr z, Function295a1
+ call Function29573
+ ld de, wc6d0
+ call Function295e3
+ ld de, wc6d1
+ call Function295ef
+ ld a, [wc701]
+ ld de, wc6f2
+ call Function295f6
+ ld de, PlayerScreens
+ call Function29611
+ call Function295d8
+ ret
+; 29549
+
+Function29549: ; 29549
+ ld de, wc702
+ ld a, [de]
+ cp $fd
+ jr z, Function295a1
+ call Function29573
+ ld de, wc702
+ call Function295e3
+ ld de, wc703
+ call Function295ef
+ ld a, [wEnemyCharging]
+ ld de, wc724
+ call Function295f6
+ ld de, wEnemyWrapCount
+ call Function29611
+ call Function295d8
+ ret
+; 29573
+
+Function29573: ; 29573
+ call WaitTop
+ call Function297cf
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 3, 0
+ ld b, $6
+ ld c, $d
+ call TextBox
+ hlcoord 4, 0
+ ld de, String29591
+ call PlaceString
+ ret
+; 29591
+
+String29591: ; 29591
+ db "─── №."
+ next ""
+ next "OT/"
+ next $73, "№.@"
+; 295a1
+
+Function295a1: ; 295a1
+ call WaitTop
+ call Function297cf
+ ld a, VBGMap1 / $100
+ ld [hBGMapAddress + 1], a
+ hlcoord 3, 0
+ ld b, $6
+ ld c, $d
+ call TextBox
+ hlcoord 4, 2
+ ld de, String295c2
+ call PlaceString
+ call Function295d8
+ ret
+; 295c2
+
+String295c2: ; 295c2
+ db "EGG"
+ next "OT/?????"
+ next $73, "№.?????@"
+; 295d8
+
+Function295d8: ; 295d8
+ call WaitBGMap
+ call WaitTop
+ ld a, VBGMap0 / $100
+ ld [hBGMapAddress + 1], a
+ ret
+; 295e3
+
+Function295e3: ; 295e3
+ hlcoord 10, 0
+ lb bc, PRINTNUM_LEADINGZEROS | 1, 3
+ call PrintNum
+ ld [hl], $7f
+ ret
+; 295ef
+
+Function295ef: ; 295ef
+ hlcoord 4, 2
+ call PlaceString
+ ret
+; 295f6
+
+Function295f6: ; 295f6
+ cp 3
+ jr c, .asm_295fb
+ xor a
+
+.asm_295fb
+ push af
+ hlcoord 7, 4
+ call PlaceString
+ inc bc
+ pop af
+ ld hl, Unknown_2960e
+ ld d, 0
+ ld e, a
+ add hl, de
+ ld a, [hl]
+ ld [bc], a
+ ret
+; 2960e
+
+Unknown_2960e: ; 2960e
+ db " ", "♂", "♀"
+; 29611
+
+Function29611: ; 29611
+ hlcoord 7, 6
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 5
+ call PrintNum
+ ret
+; 2961b
+
+Function2961b: ; 2961b
+ lb de, $54, $58
+ ld a, $e
+ call Function3b2a
+ call Function29114
+ ld a, $20
+ ld [wcf64], a
+ ret
+; 2962c
+
+Function2962c: ; 2962c
+ lb de, $54, $58
+ ld a, $e
+ call Function3b2a
+ ld hl, $b
+ add hl, bc
+ ld [hl], $1
+ ld hl, $7
+ add hl, bc
+ ld [hl], $dc
+ call Function29114
+ ld a, $38
+ ld [wcf64], a
+ ret
+; 29649
+
+Function29649: ; 29649
+ lb de, $54, $58
+ ld a, $f
+ call Function3b2a
+ call Function29114
+ ld a, $10
+ ld [wcf64], a
+ ld de, SFX_BALL_POOF
+ call PlaySFX
+ ret
+; 29660
+
+Function29660: ; 29660
+ ld a, $e4
+ call Functioncf8
+ lb de, $28, $58
+ ld a, $10
+ call Function3b2a
+ call Function29114
+ ld a, $40
+ ld [wcf64], a
+ ret
+; 29676
+
+Function29676: ; 29676 (a:5676)
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Jumptable_29686
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 29686
+
+Jumptable_29686: ; 29686 (a:5686)
+ dw Function2969a
+ dw Function296a4
+ dw Function296af
+ dw Function296bd
+ dw Function296cf
+ dw Function296dd
+ dw Function296f2
+; 2969a
+
+Function29694: ; 29694 (a:5694)
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ret
+
+Function2969a: ; 2969a (a:569a)
+ call Function29694
+ ld hl, $c
+ add hl, bc
+ ld [hl], $80
+ ret
+
+Function296a4: ; 296a4 (a:56a4)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ call Function29694
+
+Function296af: ; 296af (a:56af)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ cp $94
+ jr nc, .asm_296ba
+ inc [hl]
+ ret
+.asm_296ba
+ call Function29694
+
+Function296bd: ; 296bd (a:56bd)
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ cp $4c
+ jr nc, .asm_296c8
+ inc [hl]
+ ret
+.asm_296c8
+ ld hl, $
+ add hl, bc
+ ld [hl], $0
+ ret
+
+Function296cf: ; 296cf (a:56cf)
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ cp $2c
+ jr z, .asm_296da
+ dec [hl]
+ ret
+.asm_296da
+ call Function29694
+
+Function296dd: ; 296dd (a:56dd)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ cp $58
+ jr z, .asm_296e8
+ dec [hl]
+ ret
+.asm_296e8
+ call Function29694
+ ld hl, $c
+ add hl, bc
+ ld [hl], $80
+ ret
+
+Function296f2: ; 296f2 (a:56f2)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ dec [hl]
+ and a
+ ret nz
+ ld hl, $
+ add hl, bc
+ ld [hl], $0
+ ret
+; 29701 (a:5701)
+
+Function29701: ; 29701
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr z, .asm_29725
+ ld hl, UnknownText_0x29737
+ call PrintText
+ ld c, $bd
+ call DelayFrames
+ ld hl, UnknownText_0x29732
+ call PrintText
+ call Function297c9
+ ld c, $80
+ call DelayFrames
+ call Function29114
+ ret
+
+.asm_29725
+ ld hl, UnknownText_0x29732
+ call PrintText
+ call Function297c9
+ call Function29114
+ ret
+; 29732
+
+UnknownText_0x29732: ; 0x29732
+ ; was sent to @ .
+ text_jump UnknownText_0x1bc6e9
+ db "@"
+; 0x29737
+
+UnknownText_0x29737: ; 0x29737
+ ;
+ text_jump UnknownText_0x1bc701
+ db "@"
+; 0x2973c
+
+Function2973c: ; 2973c
+ ld hl, UnknownText_0x29752
+ call PrintText
+ call Function297c9
+ ld hl, UnknownText_0x29757
+ call PrintText
+ call Function297c9
+ call Function29114
+ ret
+; 29752
+
+UnknownText_0x29752: ; 0x29752
+ ; bids farewell to
+ text_jump UnknownText_0x1bc703
+ db "@"
+; 0x29757
+
+UnknownText_0x29757: ; 0x29757
+ ; .
+ text_jump UnknownText_0x1bc719
+ db "@"
+; 0x2975c
+
+Function2975c: ; 2975c
+ call WaitTop
+ hlcoord 0, 10
+ ld bc, 8 * SCREEN_WIDTH
+ ld a, " "
+ call ByteFill
+ call WaitBGMap
+ ld hl, UnknownText_0x2977a
+ call PrintText
+ call Function297c9
+ call Function29114
+ ret
+; 2977a
+
+UnknownText_0x2977a: ; 0x2977a
+ ; Take good care of @ .
+ text_jump UnknownText_0x1bc71f
+ db "@"
+; 0x2977f
+
+Function2977f: ; 2977f
+ ld hl, UnknownText_0x2979a
+ call PrintText
+ call Function297c9
+ ld hl, UnknownText_0x2979f
+ call PrintText
+ call Function297c9
+ ld c, $e
+ call DelayFrames
+ call Function29114
+ ret
+; 2979a
+
+UnknownText_0x2979a: ; 0x2979a
+ ; For @ 's @ ,
+ text_jump UnknownText_0x1bc739
+ db "@"
+; 0x2979f
+
+UnknownText_0x2979f: ; 0x2979f
+ ; sends @ .
+ text_jump UnknownText_0x1bc74c
+ db "@"
+; 0x297a4
+
+Function297a4: ; 297a4
+ ld hl, UnknownText_0x297bf
+ call PrintText
+ call Function297c9
+ ld hl, UnknownText_0x297c4
+ call PrintText
+ call Function297c9
+ ld c, $e
+ call DelayFrames
+ call Function29114
+ ret
+; 297bf
+
+UnknownText_0x297bf: ; 0x297bf
+ ; will trade @ @
+ text_jump UnknownText_0x1bc75e
+ db "@"
+; 0x297c4
+
+UnknownText_0x297c4: ; 0x297c4
+ ; for @ 's @ .
+ text_jump UnknownText_0x1bc774
+ db "@"
+; 0x297c9
+
+Function297c9: ; 297c9
+ ld c, $50
+ call DelayFrames
+ ret
+; 297cf
+
+Function297cf: ; 297cf
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill
+ ret
+; 297db
+
+Function297db: ; 297db
+.asm_297db
+ push bc
+ push hl
+.asm_297dd
+ ld a, [de]
+ inc de
+ ld [hli], a
+ dec c
+ jr nz, .asm_297dd
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_297db
+ ret
+; 297ed
+
+Function297ed: ; 297ed
+ ld a, [hSGB]
+ and a
+ ld a, $e4
+ jr z, .asm_297f6
+ ld a, $f0
+
+.asm_297f6
+ call Functioncf8
+ ld a, $e4
+ call DmgToCgbBGPals
+ ret
+; 297ff
+
+Function297ff: ; 297ff
+ push de
+ ld de, wc736
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ pop hl
+ ld de, wc741
+ ld bc, NAME_LENGTH
+ call CopyBytes
+ ret
+; 29814
+
+Function29814: ; 29814
+ ld a, [hl]
+ ld [wc74c], a
+ ld a, [de]
+ ld [wc74d], a
+ ret
+; 2981d
+
+Function2981d: ; 2981d
+ ld a, [wcf65]
+ and $7
+ ret nz
+ ld a, [rBGP]
+ xor $3c
+ call DmgToCgbBGPals
+ ret
+; 2982b
+
+Function2982b: ; 2982b
+ call DelayFrame
+ ld de, TradeBallGFX
+ ld hl, VTiles0 tile $62
+ lb bc, BANK(TradeBallGFX), $6
+ call Request2bpp
+ ld de, TradePoofGFX
+ ld hl, VTiles0 tile $68
+ lb bc, BANK(TradePoofGFX), $c
+ call Request2bpp
+ ld de, TradeCableGFX
+ ld hl, VTiles0 tile $74
+ lb bc, BANK(TradeCableGFX), $4
+ call Request2bpp
+ xor a
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], $62
+ ret
+; 2985a
+
+Function2985a: ; 2985a
+ call DelayFrame
+ ld e, $3
+ callab Function8e83f
+ ld de, TradeBubbleGFX
+ ld hl, VTiles0 tile $72
+ lb bc, BANK(TradeBubbleGFX), $4
+ call Request2bpp
+ xor a
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], $62
+ ret
+; 29879
+
+Function29879: ; 29879
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .asm_29882
+ dec [hl]
+ ret
+
+.asm_29882
+ call Function29114
+ ret
+; 29886
+
+Function29886: ; 29886
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .asm_2988f
+ dec [hl]
+ ret
+
+.asm_2988f
+ call Function29114
+ ret
+; 29893
+
+
+Function29893: ; 29893
+; This function is unreferenced.
+; It was meant for use in Japanese versions, so the
+; constant used for copy length was changed by accident.
+
+ ld hl, Unknown_298b5
+
+ ld a, [hli]
+ ld [wc6d0], a
+ ld de, wc6e7
+ ld c, 13 ; jp: 8
+.asm_2989f
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_2989f
+
+ ld a, [hli]
+ ld [wc702], a
+ ld de, wc719
+ ld c, 13 ; jp: 8
+.asm_298ae
+ ld a, [hli]
+ ld [de], a
+ inc de
+ dec c
+ jr nz, .asm_298ae
+ ret
+; 298b5
+
+Unknown_298b5: ; 298b5
+ db $03, "ゲーフり@@", $23, $01 ; GAME FREAK
+ db $06, "クりーチャ@", $56, $04 ; Creatures Inc.
+; 298c7
+
+
+TradeGameBoyTilemap: ; 298c7
+; 6x8
+ db $31, $32, $32, $32, $32, $33
+ db $34, $35, $36, $36, $37, $38
+ db $34, $39, $3a, $3a, $3b, $38
+ db $3c, $3d, $3e, $3e, $3f, $40
+ db $41, $42, $43, $43, $44, $45
+ db $46, $47, $43, $48, $49, $4a
+ db $41, $43, $4b, $4c, $4d, $4e
+ db $4f, $50, $50, $50, $51, $52
+; 297f7
+
+Tilemap_298f7: ; 297f7
+; 12x3
+ db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
+ db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
+ db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43
+; 2991b
+
+TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp"
+TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
+TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
+TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
+TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
+TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
+
+Special_CheckTimeCapsuleCompatibility: ; 29bfb
+; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar:
+; 0: Party is okay
+; 1: At least one Pokemon was introduced in GS
+; 2: At least one Pokemon has a move that was introduced in GS
+; 3: At least one Pokemon is holding mail
+
+; If any party Pokemon was introduced in the generation 2 games, don't let it in.
+ ld hl, PartySpecies
+ ld b, PARTY_LENGTH ; 6
+.loop
+ ld a, [hli]
+ cp $ff
+ jr z, .checkitem
+ cp CHIKORITA ; MEW + 1 ; 151 + 1
+ jr nc, .mon_too_new
+ dec b
+ jr nz, .loop
+
+; If any party Pokemon is holding mail, don't let it in.
+.checkitem
+ ld a, [PartyCount]
+ ld b, a
+ ld hl, PartyMon1Item
+.itemloop
+ push hl
+ push bc
+ ld d, [hl]
+ callba ItemIsMail
+ pop bc
+ pop hl
+ jr c, .mon_has_mail
+ ld de, PARTYMON_STRUCT_LENGTH
+ add hl, de
+ dec b
+ jr nz, .itemloop
+
+; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in.
+ ld hl, PartyMon1Moves
+ ld a, [PartyCount]
+ ld b, a
+.move_loop
+ ld c, NUM_MOVES
+.move_next
+ ld a, [hli]
+ cp STRUGGLE + 1
+ jr nc, .move_too_new
+ dec c
+ jr nz, .move_next
+ ld de, PartyMon2 - (PartyMon1 + NUM_MOVES)
+ add hl, de
+ dec b
+ jr nz, .move_loop
+ xor a
+ jr .done
+
+.mon_too_new
+ ld [wd265], a
+ call GetPokemonName
+ ld a, $1
+ jr .done
+
+.move_too_new
+ push bc
+ ld [wd265], a
+ call GetMoveName
+ call CopyName1
+ pop bc
+ call Function29c67
+ ld a, $2
+ jr .done
+
+.mon_has_mail
+ call Function29c67
+ ld a, $3
+
+.done
+ ld [ScriptVar], a
+ ret
+; 29c67
+
+Function29c67: ; 29c67
+ ld a, [PartyCount]
+ sub b
+ ld c, a
+ inc c
+ ld b, $0
+ ld hl, PartyCount
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ call GetPokemonName
+ ret
+; 29c7b
+
+Special_EnterTimeCapsule: ; 29c7b
+ ld c, $a
+ call DelayFrames
+ ld a, $4
+ call Function29f17
+ ld c, $28
+ call DelayFrames
+ xor a
+ ld [hVBlank], a
+ inc a
+ ld [wLinkMode], a
+ ret
+; 29c92
+
+Special_AbortLink: ; 29c92
+ ld c, $3
+ call DelayFrames
+ ld a, -1
+ ld [hLinkPlayerNumber], a
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ xor a
+ ld [rSB], a
+ ld [hSerialReceive], a
+ ld [rSC], a
+ ld c, $3
+ call DelayFrames
+ ld a, -1
+ ld [hLinkPlayerNumber], a
+ ld a, [rIF]
+ push af
+ xor a
+ ld [rIF], a
+ ld a, $f
+ ld [rIE], a
+ pop af
+ ld [rIF], a
+ ld hl, wcf5b
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ld [hVBlank], a
+ ld [wLinkMode], a
+ ret
+; 29ce8
+
+Special_SetBitsForLinkTradeRequest: ; 29ce8
+ ld a, $1
+ ld [wcf56], a
+ ld [wd265], a
+ ret
+; 29cf1
+
+Special_SetBitsForBattleRequest: ; 29cf1
+ ld a, $2
+ ld [wcf56], a
+ ld [wd265], a
+ ret
+; 29cfa
+
+Special_SetBitsForTimeCapsuleRequest: ; 29cfa
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ xor a
+ ld [wcf56], a
+ ld [wd265], a
+ ret
+; 29d11
+
+Special_WaitForLinkedFriend: ; 29d11
+ ld a, [wcf56]
+ and a
+ jr z, .asm_29d2f
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ call DelayFrame
+ call DelayFrame
+ call DelayFrame
+
+.asm_29d2f
+ ld a, $2
+ ld [wcf5c], a
+ ld a, $ff
+ ld [wcf5b], a
+.asm_29d39
+ ld a, [hLinkPlayerNumber]
+ cp $2
+ jr z, .asm_29d79
+ cp $1
+ jr z, .asm_29d79
+ ld a, -1
+ ld [hLinkPlayerNumber], a
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld a, $0
+ ld [rSC], a
+ ld a, $80
+ ld [rSC], a
+ ld a, [wcf5b]
+ dec a
+ ld [wcf5b], a
+ jr nz, .asm_29d68
+ ld a, [wcf5c]
+ dec a
+ ld [wcf5c], a
+ jr z, .asm_29d8d
+
+.asm_29d68
+ ld a, $1
+ ld [rSB], a
+ ld a, $1
+ ld [rSC], a
+ ld a, $81
+ ld [rSC], a
+ call DelayFrame
+ jr .asm_29d39
+
+.asm_29d79
+ call Function908
+ call DelayFrame
+ call Function908
+ ld c, $32
+ call DelayFrames
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_29d8d
+ xor a
+ ld [ScriptVar], a
+ ret
+; 29d92
+
+Special_CheckLinkTimeout: ; 29d92
+ ld a, $1
+ ld [wcf56], a
+ ld hl, wcf5b
+ ld a, $3
+ ld [hli], a
+ xor a
+ ld [hl], a
+ call WaitBGMap
+ ld a, $2
+ ld [hVBlank], a
+ call DelayFrame
+ call DelayFrame
+ call Function29e0c
+ xor a
+ ld [hVBlank], a
+ ld a, [ScriptVar]
+ and a
+ ret nz
+ jp Function29f04
+; 29dba
+
+Function29dba: ; 29dba
+ ld a, $5
+ ld [wcf56], a
+ ld hl, wcf5b
+ ld a, $3
+ ld [hli], a
+ xor a
+ ld [hl], a
+ call WaitBGMap
+ ld a, $2
+ ld [hVBlank], a
+ call DelayFrame
+ call DelayFrame
+ call Function29e0c
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_29e08
+ ld bc, rIE
+.asm_29de0
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_29de0
+ ld a, [wcf51]
+ cp $5
+ jr nz, .asm_29e03
+ ld a, $6
+ ld [wcf56], a
+ ld hl, wcf5b
+ ld a, $1
+ ld [hli], a
+ ld [hl], $32
+ call Function29e0c
+ ld a, [wcf51]
+ cp $6
+ jr z, .asm_29e08
+
+.asm_29e03
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.asm_29e08
+ xor a
+ ld [hVBlank], a
+ ret
+; 29e0c
+
+Function29e0c: ; 29e0c
+ xor a
+ ld [hFFCA], a
+ ld a, [wcf5b]
+ ld h, a
+ ld a, [wcf5c]
+ ld l, a
+ push hl
+ call Function29e3b
+ pop hl
+ jr nz, .asm_29e2f
+ call Function29e47
+ call Function29e53
+ call Function29e3b
+ jr nz, .asm_29e2f
+ call Function29e47
+ xor a
+ jr .asm_29e31
+
+.asm_29e2f
+ ld a, $1
+
+.asm_29e31
+ ld [ScriptVar], a
+ ld hl, wcf5b
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+; 29e3b
+
+Function29e3b: ; 29e3b
+ call Function87d
+ ld hl, wcf5b
+ ld a, [hli]
+ inc a
+ ret nz
+ ld a, [hl]
+ inc a
+ ret
+; 29e47
+
+Function29e47: ; 29e47
+ ld b, $a
+.asm_29e49
+ call DelayFrame
+ call Function908
+ dec b
+ jr nz, .asm_29e49
+ ret
+; 29e53
+
+Function29e53: ; 29e53
+ dec h
+ srl h
+ rr l
+ srl h
+ rr l
+ inc h
+ ld a, h
+ ld [wcf5b], a
+ ld a, l
+ ld [wcf5c], a
+ ret
+; 29e66
+
+Special_TryQuickSave: ; 29e66
+ ld a, [wd265]
+ push af
+ callba Function14ab2
+ ld a, $1
+ jr nc, .asm_29e75
+ xor a
+
+.asm_29e75
+ ld [ScriptVar], a
+ ld c, $1e
+ call DelayFrames
+ pop af
+ ld [wd265], a
+ ret
+; 29e82
+
+Special_CheckBothSelectedSameRoom: ; 29e82
+ ld a, [wd265]
+ call Function29f17
+ push af
+ call Function908
+ call DelayFrame
+ call Function908
+ pop af
+ ld b, a
+ ld a, [wd265]
+ cp b
+ jr nz, .asm_29eaa
+ ld a, [wd265]
+ inc a
+ ld [wLinkMode], a
+ xor a
+ ld [hVBlank], a
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_29eaa
+ xor a
+ ld [ScriptVar], a
+ ret
+; 29eaf
+
+Special_TimeCapsule: ; 29eaf
+ ld a, LINK_TIMECAPSULE
+ ld [wLinkMode], a
+ call DisableSpriteUpdates
+ callab LinkCommunications
+ call EnableSpriteUpdates
+ xor a
+ ld [hVBlank], a
+ ret
+; 29ec4
+
+Special_TradeCenter: ; 29ec4
+ ld a, LINK_TRADECENTER
+ ld [wLinkMode], a
+ call DisableSpriteUpdates
+ callab LinkCommunications
+ call EnableSpriteUpdates
+ xor a
+ ld [hVBlank], a
+ ret
+; 29ed9
+
+Special_Colosseum: ; 29ed9
+ ld a, LINK_COLOSSEUM
+ ld [wLinkMode], a
+ call DisableSpriteUpdates
+ callab LinkCommunications
+ call EnableSpriteUpdates
+ xor a
+ ld [hVBlank], a
+ ret
+; 29eee
+
+Special_CloseLink: ; 29eee
+ xor a
+ ld [wLinkMode], a
+ ld c, $3
+ call DelayFrames
+ jp Function29f04
+; 29efa
+
+Special_FailedLinkToPast: ; 29efa
+ ld c, $28
+ call DelayFrames
+ ld a, $e
+ jp Function29f17
+; 29f04
+
+Function29f04: ; 29f04
+ ld c, $3
+ call DelayFrames
+ ld a, -1
+ ld [hLinkPlayerNumber], a
+ ld a, $2
+ ld [rSB], a
+ xor a
+ ld [hSerialReceive], a
+ ld [rSC], a
+ ret
+; 29f17
+
+Function29f17: ; 29f17
+ add $d0
+ ld [wcf56], a
+ ld [wcf57], a
+ ld a, $2
+ ld [hVBlank], a
+ call DelayFrame
+ call DelayFrame
+.asm_29f29
+ call Function83b
+ ld a, [wcf51]
+ ld b, a
+ and $f0
+ cp $d0
+ jr z, .asm_29f40
+ ld a, [wcf52]
+ ld b, a
+ and $f0
+ cp $d0
+ jr nz, .asm_29f29
+
+.asm_29f40
+ xor a
+ ld [hVBlank], a
+ ld a, b
+ and $f
+ ret
+; 29f47
+
+Special_CableClubCheckWhichChris: ; 29f47
+ ld a, [hLinkPlayerNumber]
+ cp $1
+ ld a, $1
+ jr z, .yes
+ dec a
+
+.yes
+ ld [ScriptVar], a
+ ret
+; 29f54
+
+GFX_29f54: ; 29f54
+INCBIN "gfx/unknown/029f54.2bpp"
+; 29fe4
diff --git a/engine/map_objects.asm b/engine/map_objects.asm
index a5d792204..4c2adc9aa 100644
--- a/engine/map_objects.asm
+++ b/engine/map_objects.asm
@@ -1,20 +1,20 @@
INCLUDE "engine/facings.asm"
-ObjectStruct3_Data:: ; 4273
+SpriteMovementData:: ; 4273
; function, facing, ?, ?, ?, ?
db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00
- db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 01
- db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $00 ; 02
- db SPRITEMOVEFN_04, DOWN, $01, $00, $00, $00 ; 03
- db SPRITEMOVEFN_01, DOWN, $01, $00, $00, $00 ; 04
- db SPRITEMOVEFN_02, DOWN, $01, $00, $00, $00 ; 05
- db SPRITEMOVEFN_06, DOWN, $01, $00, $00, $00 ; 06
- db SPRITEMOVEFN_06, UP, $01, $00, $00, $00 ; 07
- db SPRITEMOVEFN_06, LEFT, $01, $00, $00, $00 ; 08
- db SPRITEMOVEFN_06, RIGHT, $01, $00, $00, $00 ; 09
- db SPRITEMOVEFN_05, DOWN, $01, $00, $00, $00 ; 0a
- db SPRITEMOVEFN_07, DOWN, $01, $02, $00, $00 ; 0b
+ db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 01
+ db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $00 ; 02
+ db SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 03
+ db SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, $01, $00, $00, $00 ; 04
+ db SPRITEMOVEFN_RANDOM_WALK_X, DOWN, $01, $00, $00, $00 ; 05
+ db SPRITEMOVEFN_STANDING, DOWN, $01, $00, $00, $00 ; 06
+ db SPRITEMOVEFN_STANDING, UP, $01, $00, $00, $00 ; 07
+ db SPRITEMOVEFN_STANDING, LEFT, $01, $00, $00, $00 ; 08
+ db SPRITEMOVEFN_STANDING, RIGHT, $01, $00, $00, $00 ; 09
+ db SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 0a
+ db SPRITEMOVEFN_OBEY_DPAD, DOWN, $01, $02, $00, $00 ; 0b
db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c
db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d
db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e
@@ -22,24 +22,24 @@ ObjectStruct3_Data:: ; 4273
db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10
db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11
db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12
- db SPRITEMOVEFN_0F, DOWN, $01, $02, $00, $00 ; 13
- db SPRITEMOVEFN_10, DOWN, $01, $02, $00, $00 ; 14
- db SPRITEMOVEFN_15, DOWN, $09, $2e, $01, $c0 ; 15
- db SPRITEMOVEFN_16, DOWN, $0a, $2e, $00, $00 ; 16
- db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 17
- db SPRITEMOVEFN_06, DOWN, $01, $2e, $10, $00 ; 18
- db SPRITEMOVEFN_11, DOWN, $01, $2e, $00, $40 ; 19
- db SPRITEMOVEFN_12, DOWN, $01, $02, $00, $00 ; 1a
+ db SPRITEMOVEFN_FOLLOW, DOWN, $01, $02, $00, $00 ; 13
+ db SPRITEMOVEFN_SCRIPTED, DOWN, $01, $02, $00, $00 ; 14
+ db SPRITEMOVEFN_BIG_SNORLAX, DOWN, $09, $2e, $01, $c0 ; 15
+ db SPRITEMOVEFN_BOUNCE, DOWN, $0a, $2e, $00, $00 ; 16
+ db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17
+ db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18
+ db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19
+ db SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, $01, $02, $00, $00 ; 1a
db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b
db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c
db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d
- db SPRITEMOVEFN_19, LEFT, $01, $00, $00, $00 ; 1e
- db SPRITEMOVEFN_18, RIGHT, $01, $00, $00, $00 ; 1f
- db SPRITEMOVEFN_11, DOWN, $0c, $2e, $01, $c0 ; 20
- db SPRITEMOVEFN_11, DOWN, $0d, $2e, $01, $c0 ; 21
+ db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e
+ db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f
+ db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20
+ db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21
db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22
db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23
- db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $20 ; 24
+ db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24
db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25
; 4357
@@ -655,7 +655,7 @@ Function467b: ; 467b
ld hl, OBJECT_12
add hl, bc
ld [hl], a
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
rept 3
ld [hli], a
@@ -848,28 +848,28 @@ RestoreDefaultMovement: ; 4769
; 4780
ClearObjectStructField27: ; 4780
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], 0
ret
; 4787
IncrementObjectStructField27: ; 4787
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
inc [hl]
ret
; 478d
DecrementObjectStructField27: ; 478d
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
dec [hl]
ret
; 4793
JumptoObjectStructField27: ; 4793
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld a, [hl]
pop hl
@@ -937,7 +937,7 @@ Function47bc: ; 47bc
Function47dd: ; 47dd
call ClearObjectStructField28
- call Function1a2f
+ call GetSpriteMovementFunction
ld a, [hl]
ld hl, .Pointers
rst JumpTable
@@ -945,63 +945,63 @@ Function47dd: ; 47dd
; 47e9
.Pointers ; 47e9
- dw Function4821 ; 00
- dw Function4822 ; 01
- dw Function482c ; 02
- dw Function4838 ; 03
- dw Function4842 ; 04
- dw Function4851 ; 05
- dw Function4869 ; 06
- dw Function487c ; 07
- dw Function4882 ; 08
- dw Function4888 ; 09
- dw Function488e ; 0a
- dw Function4891 ; 0b
- dw Function4894 ; 0c
- dw Function4897 ; 0d
- dw Function489d ; 0e
- dw Function48a0 ; 0f
- dw Function48a6 ; 10
- dw Function48ac ; 11
- dw Function48ff ; 12
- dw Function49e5 ; 13
- dw Function4a21 ; 14
- dw Function4958 ; 15
- dw Function496e ; 16
- dw Function4abc ; 17
- dw Function498d ; 18
- dw Function4984 ; 19
- dw Function4a46 ; 1a
- dw Function4a89 ; 1b
+ dw .Null_00 ; 00
+ dw .RandomWalkY ; 01
+ dw .RandomWalkX ; 02
+ dw .RandomWalkXY ; 03
+ dw .RandomSpin1 ; 04
+ dw .RandomSpin2 ; 05
+ dw .Standing ; 06
+ dw .ObeyDPad ; 07
+ dw .Movement08 ; 08
+ dw .Movement09 ; 09
+ dw .Movement0a ; 0a
+ dw .Movement0b ; 0b
+ dw .Movement0c ; 0c
+ dw .Movement0d ; 0d
+ dw .Movement0e ; 0e
+ dw .Follow ; 0f
+ dw .Script ; 10
+ dw .Strength ; 11
+ dw .FollowNotExact ; 12
+ dw .Movement13 ; 13
+ dw .Movement14 ; 14
+ dw .MovementBigStanding ; 15
+ dw .MovementBouncing ; 16
+ dw .Movement17 ; 17
+ dw .MovementSpinClockwise ; 18
+ dw .MovementSpinCounterclockwise ; 19
+ dw .Movement1a ; 1a
+ dw .Movement1b ; 1b
; 4821
-Function4821: ; 4821
+.Null_00: ; 4821
ret
; 4822
-Function4822: ; 4822
+.RandomWalkY: ; 4822
call Random
ld a, [hRandomAdd]
and %00000001
- jp Function4af0
+ jp .RandomWalkContinue
; 482c
-Function482c: ; 482c
+.RandomWalkX: ; 482c
call Random
ld a, [hRandomAdd]
and %00000001
or %00000010
- jp Function4af0
+ jp .RandomWalkContinue
; 4838
-Function4838: ; 4838
+.RandomWalkXY: ; 4838
call Random
ld a, [hRandomAdd]
and %00000011
- jp Function4af0
+ jp .RandomWalkContinue
; 4842
-Function4842: ; 4842
+.RandomSpin1: ; 4842
call Random
ld a, [hRandomAdd]
and %00001100
@@ -1011,7 +1011,7 @@ Function4842: ; 4842
jp Function4b1d
; 4851
-Function4851: ; 4851
+.RandomSpin2: ; 4851
ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
@@ -1029,7 +1029,7 @@ Function4851: ; 4851
jp Function4b26
; 4869
-Function4869: ; standing?
+.Standing: ; 4869
call Function462a
call Function467b
ld hl, OBJECT_11
@@ -1041,69 +1041,71 @@ Function4869: ; standing?
ret
; 487c
-Function487c: ; 487c
+.ObeyDPad: ; 487c
ld hl, Function5000
- jp Function5041
+ jp HandleMovementData
; 4882
-Function4882: ; 4882
+.Movement08: ; 4882
ld hl, Function5015
- jp Function5041
+ jp HandleMovementData
; 4888
-Function4888: ; 4888
+.Movement09: ; 4888
ld hl, Function5026
- jp Function5041
+ jp HandleMovementData
; 488e
-Function488e: ; 488e
+.Movement0a: ; 488e
jp Function5037
; 4891
-Function4891: ; 4891
+.Movement0b: ; 4891
jp Function5037
; 4894
-Function4894: ; 4894
+.Movement0c: ; 4894
jp Function5037
; 4897
-Function4897: ; 4897
+.Movement0d: ; 4897
ld hl, Function5000
- jp Function5041
+ jp HandleMovementData
; 489d
-Function489d: ; 489d
+.Movement0e: ; 489d
jp Function5037
; 48a0
-Function48a0: ; 48a0
+.Follow: ; 48a0
ld hl, Function54e6
- jp Function5041
+ jp HandleMovementData
; 48a6
-Function48a6: ; 48a6
- ld hl, Function500e ; scripted
- jp Function5041
+.Script: ; 48a6
+ ld hl, Function500e
+ jp HandleMovementData
; 48ac
-Function48ac: ; 48ac
+.Strength: ; 48ac
call JumptoObjectStructField27
- dw Function48b3
- dw Function48f8
+ dw .Strength_Start
+ dw .Strength_Stop
; 48b3
-Function48b3: ; 48b3
+.Strength_Start: ; 48b3
ld hl, OBJECT_STANDING_TILE
add hl, bc
ld a, [hl]
call CheckPitTile
jr z, .on_pit
+
ld hl, OBJECT_FLAGS2
add hl, bc
bit 2, [hl]
res 2, [hl]
jr z, .ok
+
ld hl, OBJECT_32
add hl, bc
ld a, [hl]
@@ -1112,6 +1114,7 @@ Function48b3: ; 48b3
call Function4690
call Function6ec1
jr c, .ok2
+
ld de, SFX_STRENGTH
call PlaySFX
call Function5538
@@ -1135,23 +1138,26 @@ Function48b3: ; 48b3
; fallthrough
; 48f8
-Function48f8: ; 48f8
+.Strength_Stop: ; 48f8
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
ld [hl], STANDING
ret
; 48ff
-Function48ff: ; 48ff
+.FollowNotExact: ; 48ff
ld hl, OBJECT_MAP_X
add hl, bc
ld d, [hl]
+
ld hl, OBJECT_MAP_Y
add hl, bc
ld e, [hl]
+
ld hl, OBJECT_32
add hl, bc
ld a, [hl]
+
push bc
call GetObjectStruct
ld hl, OBJECT_DIRECTION_WALKING
@@ -1159,6 +1165,7 @@ Function48ff: ; 48ff
ld a, [hl]
cp STANDING
jr z, .standing
+
ld hl, OBJECT_NEXT_MAP_X
add hl, bc
ld a, [hl]
@@ -1206,7 +1213,7 @@ Function48ff: ; 48ff
ret
; 4958
-Function4958: ; 4958
+.MovementBigStanding: ; 4958
call Function467b
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
@@ -1220,7 +1227,7 @@ Function4958: ; 4958
ret
; 496e
-Function496e: ; 496e
+.MovementBouncing: ; 496e
call Function467b
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
@@ -1234,27 +1241,27 @@ Function496e: ; 496e
ret
; 4984
-Function4984: ; 4984
+.MovementSpinCounterclockwise: ; 4984
call JumptoObjectStructField27
- dw Function4996
- dw Function499c
- dw Function49b8
+ dw .MovementSpinInit
+ dw .MovementSpinRepeat
+ dw .MovementSpinTurnLeft
; 498d
-Function498d: ; 498d
+.MovementSpinClockwise: ; 498d
call JumptoObjectStructField27
- dw Function4996
- dw Function499c
- dw Function49c4
+ dw .MovementSpinInit
+ dw .MovementSpinRepeat
+ dw .MovementSpinTurnRight
; 4996
-Function4996: ; 4996
+.MovementSpinInit: ; 4996
call Function467b
call IncrementObjectStructField27
; fallthrough
; 499c
-Function499c: ; 499c
+.MovementSpinRepeat: ; 499c
ld hl, OBJECT_11
add hl, bc
ld [hl], 1
@@ -1272,27 +1279,27 @@ Function499c: ; 499c
ret
; 49b8
-Function49b8: ; 49b8
- ld de, .DirectionData_49c0
- call Function49d0
- jr Function4984
+.MovementSpinTurnLeft: ; 49b8
+ ld de, .DirectionData_Counterclockwise
+ call .MovementSpinNextFacing
+ jr .MovementSpinCounterclockwise
; 49c0
-.DirectionData_49c0 ; 49c0
+.DirectionData_Counterclockwise ; 49c0
db RIGHT << 2, LEFT << 2, DOWN << 2, UP << 2
; 49c4
-Function49c4: ; 49c4
- ld de, .DirectionData_49cc
- call Function49d0
- jr Function498d
+.MovementSpinTurnRight: ; 49c4
+ ld de, .DirectionData_Clockwise
+ call .MovementSpinNextFacing
+ jr .MovementSpinClockwise
; 49cc
-.DirectionData_49cc ; 49cc
+.DirectionData_Clockwise ; 49cc
db LEFT << 2, RIGHT << 2, UP << 2, DOWN << 2
; 49d0
-Function49d0: ; 49d0
+.MovementSpinNextFacing: ; 49d0
ld hl, OBJECT_FACING
add hl, bc
ld a, [hl]
@@ -1310,8 +1317,8 @@ Function49d0: ; 49d0
ret
; 49e5
-Function49e5: ; 49e5
- call Function4aa8
+.Movement13: ; 49e5
+ call ._Movement13_14_1a_1b
ld hl, OBJECT_11
add hl, bc
ld [hl], $7
@@ -1330,12 +1337,12 @@ Function49e5: ; 49e5
and 3
ld d, $e
cp DOWN
- jr z, .ok
+ jr z, .ok_13
cp UP
- jr z, .ok
+ jr z, .ok_13
ld d, $c
-.ok
+.ok_13
ld hl, OBJECT_SPRITE_Y_OFFSET
add hl, bc
ld [hl], d
@@ -1348,9 +1355,9 @@ Function49e5: ; 49e5
ret
; 4a21
-Function4a21: ; 4a21
+.Movement14: ; 4a21
call Function467b
- call Function4aa8
+ call ._Movement13_14_1a_1b
ld hl, OBJECT_11
add hl, bc
ld [hl], 8
@@ -1369,9 +1376,9 @@ Function4a21: ; 4a21
ret
; 4a46
-Function4a46: ; 4a46
+.Movement1a: ; 4a46
call Function467b
- call Function4aa8
+ call ._Movement13_14_1a_1b
ld hl, OBJECT_11
add hl, bc
ld [hl], $e
@@ -1416,9 +1423,9 @@ endr
db -6, 2
; 4a89
-Function4a89: ; 4a89
+.Movement1b: ; 4a89
call Function467b
- call Function4aa8
+ call ._Movement13_14_1a_1b
ld hl, OBJECT_11
add hl, bc
ld [hl], $f
@@ -1435,7 +1442,7 @@ Function4a89: ; 4a89
ret
; 4aa8
-Function4aa8: ; 4aa8
+._Movement13_14_1a_1b: ; 4aa8
ld hl, OBJECT_32
add hl, bc
ld a, [hl]
@@ -1452,7 +1459,7 @@ Function4aa8: ; 4aa8
ret
; 4abc
-Function4abc: ; 4abc
+.Movement17: ; 4abc
call Function467b
ld hl, OBJECT_11
add hl, bc
@@ -1460,7 +1467,7 @@ Function4abc: ; 4abc
ld hl, OBJECT_32
add hl, bc
ld a, [hl]
- call Function4ade
+ call ._Movement17
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], e
@@ -1473,7 +1480,7 @@ Function4abc: ; 4abc
ret
; 4ade
-Function4ade: ; 4ade
+._Movement17: ; 4ade
ld d, a
and %00111111
ld e, a
@@ -1491,7 +1498,7 @@ Function4ade: ; 4ade
jr .loop
; 4af0
-Function4af0: ; 4af0
+.RandomWalkContinue: ; 4af0
call Function4690
call Function6ec1
jr c, Function4b17
@@ -1502,13 +1509,13 @@ Function4af0: ; 4af0
ld hl, wd4cf
ld a, [hMapObjectIndexBuffer]
cp [hl]
- jr z, .ok
+ jr z, .load_6
ld hl, OBJECT_09
add hl, bc
- ld [hl], $7
+ ld [hl], 7
ret
-.ok
+.load_6
ld hl, OBJECT_09
add hl, bc
ld [hl], 6
@@ -2397,11 +2404,14 @@ UpdateJumpPosition: ; 4fd5
; 5000
Function5000: ; unscripted?
+; copy [wc3de] to [wc2df]
ld a, [wc2de]
ld hl, wc2df
ld [hl], a
- ld a, $3e
+; load [wc2de] with movement_step_sleep_1
+ ld a, movement_step_sleep_1
ld [wc2de], a
+; recover the previous value of [wc2de]
ld a, [hl]
ret
; 500e
@@ -2413,7 +2423,7 @@ Function500e: ; scripted
; 5015
Function5015: ; 5015
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld e, [hl]
inc [hl]
@@ -2428,7 +2438,7 @@ Function5015: ; 5015
; 5026
Function5026: ; 5026
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld e, [hl]
inc [hl]
@@ -2443,16 +2453,16 @@ Function5026: ; 5026
; 5037
Function5037: ; 5037
- ld hl, Function503d
- jp Function5041
+ ld hl, GetMovementPerson
+ jp HandleMovementData
; 503d
-Function503d: ; 503d
+GetMovementPerson: ; 503d
ld a, [wMovementPerson]
ret
; 5041
-Function5041: ; 5041
+HandleMovementData: ; 5041
call CopyMovementPointer
.loop
xor a
@@ -2481,7 +2491,7 @@ GetMovementByte: ; 505e
jp [hl]
; 5065
-Function5065: ; 5065
+ContinueReadingMovement: ; 5065
ld a, 1
ld [wc2ea], a
ret
@@ -2560,7 +2570,8 @@ Function54e6: ; 54e6
.done
call Function550a
ret c
- ld a, $3e
+
+ ld a, movement_step_sleep_1
ret
; 550a
@@ -2582,7 +2593,7 @@ Function550a: ; 550a
.nope
ld a, $ff
ld [wObjectFollow_Follower], a
- ld a, $47
+ ld a, movement_step_end
scf
ret
; 5529
@@ -2693,6 +2704,7 @@ Function5582: ; 5582
Function55ac: ; 55ac
call FindFirstEmptyObjectStruct
ret nc
+
ld d, h
ld e, l
callba Function8286
@@ -2700,11 +2712,14 @@ Function55ac: ; 55ac
; 55b9
Function55b9: ; 55b9
+; load into wc2f0:
+; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1
ld hl, wc2f0
ld [hl], -1
inc hl
ld [hl], -1
inc hl
+
ld a, [de]
inc de
ld [hli], a
@@ -2713,8 +2728,10 @@ Function55b9: ; 55b9
ld [hli], a
ld a, [de]
ld [hli], a
+
ld a, [hMapObjectIndexBuffer]
ld [hli], a
+
push hl
ld hl, OBJECT_MAP_X
add hl, bc
@@ -2723,6 +2740,7 @@ Function55b9: ; 55b9
add hl, bc
ld e, [hl]
pop hl
+
ld [hl], d
inc hl
ld [hl], e
@@ -2783,17 +2801,21 @@ Function561d: ; 561d
Function5629: ; 5629
cp NUM_OBJECTS
ret nc
+
call GetMapObject
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
add hl, bc
ld a, [hl]
cp -1
ret z
+
cp NUM_OBJECT_STRUCTS
ret nc
+
call GetObjectStruct
call GetObjectSprite
ret z
+
call Function5673
ret
; 5645
@@ -2923,7 +2945,7 @@ Function56cd: ; 56cd
srl a
srl a
srl a
- cp $14
+ cp SCREEN_WIDTH
jr c, .ok3
sub $20
@@ -2974,9 +2996,9 @@ Function56cd: ; 56cd
.ok7
ld a, d
- ld [$ffbf], a
+ ld [hFFBF], a
.loop
- ld a, [$ffbf]
+ ld a, [hFFBF]
ld d, a
ld a, [hUsedSpriteTile]
add e
@@ -2992,7 +3014,7 @@ Function56cd: ; 56cd
jr nc, .ok8
ld c, a
push bc
- call GetTileCoord
+ call Coord2Tile
pop bc
ld a, [hl]
cp $60
@@ -3163,7 +3185,7 @@ SetFollowerIfVisible: ; 582c
ret c
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
- ld [hl], SPRITEMOVEDATA_13
+ ld [hl], SPRITEMOVEDATA_FOLLOWING
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
@@ -3177,7 +3199,7 @@ ResetFollower: ; 5847
cp -1
ret z
call GetObjectStruct
- callba Function58e3
+ callba Function58e3 ; no need to bankswitch
ld a, -1
ld [wObjectFollow_Follower], a
ret
@@ -3291,16 +3313,19 @@ Function58e3: ; 58e3
add hl, bc
ld a, [hl]
cp -1
- jp z, Function5903
+ jp z, Function5903 ; a jr would have been appropriate here
+
push bc
call GetMapObject
ld hl, MAPOBJECT_MOVEMENT
add hl, bc
ld a, [hl]
pop bc
+
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
+
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
@@ -3319,6 +3344,7 @@ Function5903: ; 5903
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
+
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
@@ -3492,7 +3518,7 @@ Function59f3: ; 59f3
.next
ld a, [hli]
ld d, a
- and %11110000
+ and $f0
ret z
cp c
jr nz, .next
@@ -3500,20 +3526,20 @@ Function59f3: ; 59f3
push bc
push hl
ld a, d
- and %00001111
- call Function5ac2
- call Function5a0d
+ and $f
+ call .GetObjectStructPointer
+ call .asm_5a0d
pop hl
pop bc
jr .next
; 5a0d
-Function5a0d: ; 5a0d
+.asm_5a0d: ; 5a0d
ld hl, OBJECT_SPRITE_TILE
add hl, bc
ld a, [hl]
and %01111111
- ld [$ffc1], a
+ ld [hFFC1], a
xor a
bit 7, [hl]
@@ -3547,7 +3573,7 @@ Function5a0d: ; 5a0d
jr z, .skip4
or %10000000
.skip4
- ld [$ffc2], a
+ ld [hFFC2], a
ld hl, OBJECT_SPRITE_X
add hl, bc
@@ -3562,7 +3588,7 @@ Function5a0d: ; 5a0d
ld e, a
ld a, [wd14c]
add e
- ld [$ffbf], a
+ ld [hFFBF], a
ld hl, OBJECT_SPRITE_Y
add hl, bc
@@ -3577,7 +3603,7 @@ Function5a0d: ; 5a0d
ld e, a
ld a, [wd14d]
add e
- ld [$ffc0], a
+ ld [hFFC0], a
ld hl, OBJECT_FACING_STEP
add hl, bc
@@ -3606,14 +3632,14 @@ Function5a0d: ; 5a0d
jr nc, .full
.addsprite
- ld a, [$ffc0]
+ ld a, [hFFC0]
add [hl]
inc hl
ld [bc], a
inc c
- ld a, [$ffbf]
+ ld a, [hFFBF]
add [hl]
inc hl
@@ -3623,7 +3649,7 @@ Function5a0d: ; 5a0d
ld e, [hl]
inc hl
- ld a, [$ffc1]
+ ld a, [hFFC1]
bit 2, e
jr z, .nope1
xor a
@@ -3637,7 +3663,7 @@ Function5a0d: ; 5a0d
ld a, e
bit 1, a
jr z, .nope2
- ld a, [$ffc2]
+ ld a, [hFFC2]
or e
.nope2
and %11110000
@@ -3662,7 +3688,7 @@ Function5a0d: ; 5a0d
ret
; 5ac2
-Function5ac2: ; 5ac2
+.GetObjectStructPointer: ; 5ac2
ld c, a
ld b, 0
ld hl, .Addresses
diff --git a/engine/map_setup.asm b/engine/map_setup.asm
index 0e391b31c..9c99df2f6 100644
--- a/engine/map_setup.asm
+++ b/engine/map_setup.asm
@@ -17,28 +17,28 @@ endr
; 15377
MapSetupScripts: ; 15377
- dw MapSetupScript1
- dw MapSetupScript2
- dw MapSetupScript3
- dw MapSetupScript4
- dw MapSetupScript5
- dw MapSetupScript6
- dw MapSetupScript7
- dw MapSetupScript8
- dw MapSetupScript9
- dw MapSetupScript10
- dw MapSetupScript11
- dw MapSetupScript12
+ dw MapSetupScript_Warp
+ dw MapSetupScript_Continue
+ dw MapSetupScript_ReloadMap
+ dw MapSetupScript_Teleport
+ dw MapSetupScript_Door
+ dw MapSetupScript_Fall
+ dw MapSetupScript_Connection
+ dw MapSetupScript_LinkReturn
+ dw MapSetupScript_Train
+ dw MapSetupScript_Submenu
+ dw MapSetupScript_BadWarp
+ dw MapSetupScript_Fly
; 1538f
-MapSetupScript4: ; 1538f
+MapSetupScript_Teleport: ; 1538f
db map_prolong_sprites
-MapSetupScript12: ; 15390
+MapSetupScript_Fly: ; 15390
db map_fade_out_palettes
db map_keep_roam
-MapSetupScript1: ; 15392
+MapSetupScript_Warp: ; 15392
db map_lcd_off
db map_sound_off
db map_load_spawn
@@ -63,7 +63,7 @@ MapSetupScript1: ; 15392
db map_wildmons
db map_end_setup_script
-MapSetupScript11: ; 153a9
+MapSetupScript_BadWarp: ; 153a9
db map_load_spawn
db map_attributes
db map_change_callback
@@ -87,7 +87,7 @@ MapSetupScript11: ; 153a9
db map_wildmons
db map_end_setup_script
-MapSetupScript7: ; 153bf
+MapSetupScript_Connection: ; 153bf
db map_animations_off
db map_load_connection
db map_attributes
@@ -106,13 +106,13 @@ MapSetupScript7: ; 153bf
db map_animations_on
db map_end_setup_script
-MapSetupScript6: ; 153d0
+MapSetupScript_Fall: ; 153d0
db map_prolong_sprites
-MapSetupScript5: ; 153d1
+MapSetupScript_Door: ; 153d1
db map_fade_out_palettes
-MapSetupScript9: ; 153d2
+MapSetupScript_Train: ; 153d2
db map_load_warp
db map_attributes
db map_warp_face
@@ -135,7 +135,7 @@ MapSetupScript9: ; 153d2
db map_update_roam
db map_end_setup_script
-MapSetupScript3: ; 153e7
+MapSetupScript_ReloadMap: ; 153e7
db map_fade
db map_clear_bg_palettes
db map_lcd_off
@@ -153,7 +153,7 @@ MapSetupScript3: ; 153e7
db map_wildmons
db map_end_setup_script
-MapSetupScript8: ; 153f7
+MapSetupScript_LinkReturn: ; 153f7
db map_fade
db map_lcd_off
db map_sound_off
@@ -172,7 +172,7 @@ MapSetupScript8: ; 153f7
db map_text_scroll_off
db map_end_setup_script
-MapSetupScript2: ; 15408
+MapSetupScript_Continue: ; 15408
db map_lcd_off
db map_sound_off
db map_attributes_2
@@ -192,7 +192,7 @@ MapSetupScript2: ; 15408
db map_wildmons
db map_end_setup_script
-MapSetupScript10: ; 1541a
+MapSetupScript_Submenu: ; 1541a
db map_load_blocks
db map_connection_blocks
db map_end_setup_script
@@ -243,52 +243,52 @@ endr
; 15440
MapSetupCommands: ; 15440
- dbw BANK(EnableLCD), EnableLCD ; 00
- dbw BANK(DisableLCD), DisableLCD ; 01
- dbw BANK(SoundRestart), SoundRestart ; 02
- dbw BANK(PlayMapMusic), PlayMapMusic ; 03
- dbw BANK(RestartMapMusic), RestartMapMusic ; 04
- dbw BANK(FadeToMapMusic), FadeToMapMusic ; 05
- dbw BANK(FadeOutMapAndMusic), FadeOutMapAndMusic ; 06
- dbw BANK(EnterMapMusic), EnterMapMusic ; 07
- dbw BANK(ForceMapMusic), ForceMapMusic ; 08
- dbw BANK(CrankUpTheVolume), CrankUpTheVolume ; 09
- dbw BANK(LoadBlockData), LoadBlockData ; 0a
- dbw BANK(LoadNeighboringBlockData), LoadNeighboringBlockData ; 0b
- dbw BANK(SaveScreen), SaveScreen ; 0c
- dbw BANK(BufferScreen), BufferScreen ; 0d
- dbw BANK(LoadGraphics), LoadGraphics ; 0e
- dbw BANK(LoadTilesetHeader), LoadTilesetHeader ; 0f
- dbw BANK(LoadMapTimeOfDay), LoadMapTimeOfDay ; 10
- dbw BANK(LoadMapPalettes), LoadMapPalettes ; 11
- dbw BANK(LoadWildMonData), LoadWildMonData ; 12
- dbw BANK(RefreshMapSprites), RefreshMapSprites ; 13
- dbw BANK(RunCallback_05_03), RunCallback_05_03 ; 14
- dbw BANK(RunCallback_03), RunCallback_03 ; 15
- dbw BANK(LoadObjectsRunCallback_02), LoadObjectsRunCallback_02 ; 16
- dbw BANK(LoadSpawnPoint), LoadSpawnPoint ; 17
- dbw BANK(EnterMapConnection), EnterMapConnection ; 18
- dbw BANK(LoadWarpData), LoadWarpData ; 19
- dbw BANK(LoadMapAttributes), LoadMapAttributes ; 1a
- dbw BANK(LoadMapAttributes_IgnoreHidden), LoadMapAttributes_IgnoreHidden ; 1b
- dbw BANK(WhiteBGMap), WhiteBGMap ; 1c
- dbw BANK(FadeBlackBGMap), FadeBlackBGMap ; 1d
- dbw BANK(FadeInBGMap), FadeInBGMap ; 1e
- dbw BANK(GetCoordOfUpperLeftCorner), GetCoordOfUpperLeftCorner ; 1f
- dbw BANK(RestoreFacingAfterWarp), RestoreFacingAfterWarp ; 20
- dbw BANK(SpawnInFacingDown), SpawnInFacingDown ; 21
- dbw BANK(GetSpawnCoord), GetSpawnCoord ; 22
- dbw BANK(RefreshPlayerCoords), RefreshPlayerCoords ; 23
- dbw BANK(DelayClearingOldSprites), DelayClearingOldSprites ; 24
- dbw BANK(DelayLoadingNewSprites), DelayLoadingNewSprites ; 25
- dbw BANK(UpdateRoamMons), UpdateRoamMons ; 26
- dbw BANK(JumpRoamMons), JumpRoamMons ; 27
- dbw BANK(FadeOldMapMusic), FadeOldMapMusic ; 28
- dbw BANK(ActivateMapAnims), ActivateMapAnims ; 29
- dbw BANK(SuspendMapAnims), SuspendMapAnims ; 2a
- dbw BANK(RetainOldPalettes), RetainOldPalettes ; 2b
- dbw BANK(DontScrollText), DontScrollText ; 2c
- dbw BANK(ReturnFromMapSetupScript), ReturnFromMapSetupScript ; 2d
+ dba EnableLCD ; 00
+ dba DisableLCD ; 01
+ dba MapSetup_Sound_Off ; 02
+ dba PlayMapMusic ; 03
+ dba RestartMapMusic ; 04
+ dba FadeToMapMusic ; 05
+ dba FadeOutMapAndMusic ; 06
+ dba EnterMapMusic ; 07
+ dba ForceMapMusic ; 08
+ dba FadeInMusic ; 09
+ dba LoadBlockData ; 0a
+ dba LoadNeighboringBlockData ; 0b
+ dba SaveScreen ; 0c
+ dba BufferScreen ; 0d
+ dba LoadGraphics ; 0e
+ dba LoadTilesetHeader ; 0f
+ dba LoadMapTimeOfDay ; 10
+ dba LoadMapPalettes ; 11
+ dba LoadWildMonData ; 12
+ dba RefreshMapSprites ; 13
+ dba RunCallback_05_03 ; 14
+ dba RunCallback_03 ; 15
+ dba LoadObjectsRunCallback_02 ; 16
+ dba LoadSpawnPoint ; 17
+ dba EnterMapConnection ; 18
+ dba LoadWarpData ; 19
+ dba LoadMapAttributes ; 1a
+ dba LoadMapAttributes_SkipPeople ; 1b
+ dba ClearBGPalettes ; 1c
+ dba FadeOutPalettes ; 1d
+ dba FadeInPalettes ; 1e
+ dba GetCoordOfUpperLeftCorner ; 1f
+ dba RestoreFacingAfterWarp ; 20
+ dba SpawnInFacingDown ; 21
+ dba GetSpawnCoord ; 22
+ dba RefreshPlayerCoords ; 23
+ dba DelayClearingOldSprites ; 24
+ dba DelayLoadingNewSprites ; 25
+ dba UpdateRoamMons ; 26
+ dba JumpRoamMons ; 27
+ dba FadeOldMapMusic ; 28
+ dba ActivateMapAnims ; 29
+ dba SuspendMapAnims ; 2a
+ dba RetainOldPalettes ; 2b
+ dba DontScrollText ; 2c
+ dba ReturnFromMapSetupScript ; 2d
; 154ca
@@ -300,13 +300,13 @@ DontScrollText: ; 154ca
ActivateMapAnims: ; 154cf
ld a, $1
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; 154d3
SuspendMapAnims: ; 154d3
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; 154d7
@@ -318,7 +318,7 @@ LoadObjectsRunCallback_02: ; 154d7
ret
; 154ea (5:54ea)
-Function154ea: ; 154ea
+; unreferenced
ret
; 154eb
@@ -333,20 +333,21 @@ DelayLoadingNewSprites: ; 154f1
set 6, [hl]
ret
-Function154f7: ; 154f7
+CheckReplaceKrisSprite: ; 154f7
nop
- call Function1550c
+ call .CheckBiking
jr c, .ok
- call Function1554e
+ call .CheckSurfing
jr c, .ok
- call Function1551a
+ call .CheckSurfing2
jr c, .ok
ret
+
.ok
- call Special_ReplaceKrisSprite
+ call ReplaceKrisSprite
ret
-Function1550c: ; 1550c (5:550c)
+.CheckBiking: ; 1550c (5:550c)
and a
ld hl, BikeFlags
bit 1, [hl]
@@ -356,7 +357,7 @@ Function1550c: ; 1550c (5:550c)
scf
ret
-Function1551a: ; 1551a (5:551a)
+.CheckSurfing2: ; 1551a (5:551a)
ld a, [PlayerState]
cp PLAYER_NORMAL
jr z, .nope
@@ -367,11 +368,11 @@ Function1551a: ; 1551a (5:551a)
cp PLAYER_SURF_PIKA
jr z, .surfing
call GetMapPermission
- cp $3
+ cp INDOOR
jr z, .checkbiking
- cp $5
+ cp PERM_5
jr z, .checkbiking
- cp $7
+ cp DUNGEON
jr z, .checkbiking
jr .nope
.checkbiking
@@ -383,21 +384,22 @@ Function1551a: ; 1551a (5:551a)
ld [PlayerState], a
scf
ret
+
.nope
and a
ret
-Function1554e: ; 1554e (5:554e)
+.CheckSurfing: ; 1554e (5:554e)
call CheckOnWater
jr nz, .ret_nc
ld a, [PlayerState]
cp PLAYER_SURF
- jr z, .surfing
+ jr z, ._surfing
cp PLAYER_SURF_PIKA
- jr z, .surfing
+ jr z, ._surfing
ld a, PLAYER_SURF
ld [PlayerState], a
-.surfing
+._surfing
scf
ret
.ret_nc
diff --git a/engine/mart.asm b/engine/mart.asm
new file mode 100755
index 000000000..2c3dac0e7
--- /dev/null
+++ b/engine/mart.asm
@@ -0,0 +1,1000 @@
+ const_def
+ const MARTTEXT_HOW_MANY
+ const MARTTEXT_COSTS_THIS_MUCH
+ const MARTTEXT_NOT_ENOUGH_MONEY
+ const MARTTEXT_BAG_FULL
+ const MARTTEXT_HERE_YOU_GO
+ const MARTTEXT_SOLD_OUT
+
+OpenMartDialog:: ; 15a45
+ call GetMart
+ ld a, c
+ ld [EngineBuffer1], a
+ call LoadMartPointer
+ ld a, [EngineBuffer1]
+ ld hl, .dialogs
+ rst JumpTable
+ ret
+; 15a57
+
+.dialogs
+ dw MartDialog
+ dw HerbShop
+ dw BargainShop
+ dw Pharmacist
+ dw RooftopSale
+; 15a61
+
+MartDialog: ; 15a61
+ ld a, 0
+ ld [EngineBuffer1], a
+ xor a
+ ld [MovementAnimation], a
+ call StandardMart
+ ret
+; 15a6e
+
+HerbShop: ; 15a6e
+ call FarReadMart
+ call LoadStandardMenuDataHeader
+ ld hl, Text_HerbShop_Intro
+ call MartTextBox
+ call BuyMenu
+ ld hl, Text_HerbShop_ComeAgain
+ call MartTextBox
+ ret
+; 15a84
+
+BargainShop: ; 15a84
+ ld b, BANK(BargainShopData)
+ ld de, BargainShopData
+ call LoadMartPointer
+ call ReadMart
+ call LoadStandardMenuDataHeader
+ ld hl, Text_BargainShop_Intro
+ call MartTextBox
+ call BuyMenu
+ ld hl, wBargainShopFlags
+ ld a, [hli]
+ or [hl]
+ jr z, .skip_set
+ ld hl, DailyFlags
+ set 6, [hl]
+
+.skip_set
+ ld hl, Text_BargainShop_ComeAgain
+ call MartTextBox
+ ret
+; 15aae
+
+Pharmacist: ; 15aae
+ call FarReadMart
+ call LoadStandardMenuDataHeader
+ ld hl, UnknownText_0x15e90
+ call MartTextBox
+ call BuyMenu
+ ld hl, UnknownText_0x15eae
+ call MartTextBox
+ ret
+; 15ac4
+
+RooftopSale: ; 15ac4
+ ld b, BANK(RooftopSaleData1)
+ ld de, RooftopSaleData1
+ ld hl, StatusFlags
+ bit 6, [hl] ; hall of fame
+ jr z, .ok
+ ld b, BANK(RooftopSaleData2)
+ ld de, RooftopSaleData2
+
+.ok
+ call LoadMartPointer
+ call ReadMart
+ call LoadStandardMenuDataHeader
+ ld hl, Text_Mart_HowMayIHelpYou
+ call MartTextBox
+ call BuyMenu
+ ld hl, Text_Mart_ComeAgain
+ call MartTextBox
+ 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
+
+LoadMartPointer: ; 15b10
+ ld a, b
+ ld [MartPointerBank], a
+ ld a, e
+ ld [MartPointer], a
+ ld a, d
+ ld [MartPointer + 1], a
+ ld hl, CurMart
+ xor a
+ ld bc, 16
+ call ByteFill
+ xor a
+ ld [MovementAnimation], a
+ ld [wBargainShopFlags], a
+ ld [FacingDirection], a
+ ret
+; 15b31
+
+GetMart: ; 15b31
+ ld a, e
+ cp (MartsEnd - Marts) / 2
+ jr c, .IsAMart
+ ld b, $5
+ ld de, DefaultMart
+ ret
+
+.IsAMart
+ ld hl, Marts
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, $5
+ ret
+; 15b47
+
+StandardMart: ; 15b47
+.loop
+ ld a, [MovementAnimation]
+ ld hl, .MartFunctions
+ rst JumpTable
+ ld [MovementAnimation], a
+ cp $ff
+ jr nz, .loop
+ ret
+
+.MartFunctions
+ dw .HowMayIHelpYou
+ dw .TopMenu
+ dw .Buy
+ dw .Sell
+ dw .Quit
+ dw .AnythingElse
+; 15b62
+
+.HowMayIHelpYou: ; 15b62
+ call LoadStandardMenuDataHeader
+ ld hl, Text_Mart_HowMayIHelpYou
+ call PrintText
+ ld a, $1 ; top menu
+ ret
+; 15b6e
+
+.TopMenu: ; 15b6e
+ ld hl, MenuDataHeader_BuySell
+ call CopyMenuDataHeader
+ call InterpretMenu2
+ jr c, .quit
+ ld a, [MenuSelection2]
+ cp $1
+ jr z, .buy
+ cp $2
+ jr z, .sell
+.quit
+ ld a, $4 ; Come again!
+ ret
+.buy
+ ld a, $2 ; buy
+ ret
+.sell
+ ld a, $3 ; sell
+ ret
+; 15b8d
+
+.Buy: ; 15b8d
+ call ExitMenu
+ call FarReadMart
+ call BuyMenu
+ and a
+ ld a, $5 ; Anything else?
+ ret
+; 15b9a
+
+.Sell: ; 15b9a
+ call ExitMenu
+ call SellMenu
+ ld a, $5 ; Anything else?
+ ret
+; 15ba3
+
+.Quit: ; 15ba3
+ call ExitMenu
+ ld hl, Text_Mart_ComeAgain
+ call MartTextBox
+ ld a, $ff ; exit
+ ret
+; 15baf
+
+.AnythingElse: ; 15baf
+ call LoadStandardMenuDataHeader
+ ld hl, Text_Mart_AnythingElse
+ call PrintText
+ ld a, $1 ; top menu
+ ret
+; 15bbb
+
+FarReadMart: ; 15bbb
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, CurMart
+.CopyMart
+ ld a, [MartPointerBank]
+ call GetFarByte
+ ld [de], a
+ inc hl
+ inc de
+ cp -1
+ jr nz, .CopyMart
+ ld hl, wMartItem1BCD
+ ld de, CurMart + 1
+.ReadMartItem
+ ld a, [de]
+ inc de
+ cp -1
+ jr z, .done
+ push de
+ call GetMartItemPrice
+ pop de
+ jr .ReadMartItem
+
+.done
+ ret
+; 15be5
+
+GetMartItemPrice: ; 15be5
+; Return the price of item a in BCD at hl and in tiles at StringBuffer1.
+ push hl
+ ld [CurItem], a
+ callba GetItemPrice
+ pop hl
+
+GetMartPrice: ; 15bf0
+; Return price de in BCD at hl and in tiles at StringBuffer1.
+ push hl
+ ld a, d
+ ld [StringBuffer2], a
+ ld a, e
+ ld [StringBuffer2 + 1], a
+ ld hl, StringBuffer1
+ ld de, StringBuffer2
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 6 ; 6 digits
+ call PrintNum
+ pop hl
+
+ ld de, StringBuffer1
+ ld c, 6 / 2 ; 6 digits
+.loop
+ call .CharToNybble
+ swap a
+ ld b, a
+ call .CharToNybble
+ or b
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ret
+; 15c1a
+
+.CharToNybble ; 15c1a
+ ld a, [de]
+ inc de
+ cp " "
+ jr nz, .not_space
+ ld a, "0"
+
+.not_space
+ sub "0"
+ ret
+; 15c25
+
+ReadMart: ; 15c25
+; Load the mart pointer. Mart data is local (no need for bank).
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ push hl
+; set hl to the first item
+ inc hl
+ ld bc, wMartItem1BCD
+ ld de, CurMart + 1
+.loop
+; copy the item to CurMart + (ItemIndex)
+ ld a, [hli]
+ ld [de], a
+ inc de
+; -1 is the terminator
+ cp -1
+ jr z, .done
+
+ push de
+; copy the price to de
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+; convert the price to 3-byte BCD at [bc]
+ push hl
+ ld h, b
+ ld l, c
+ call GetMartPrice
+ ld b, h
+ ld c, l
+ pop hl
+
+ pop de
+ jr .loop
+
+.done
+ pop hl
+ ld a, [hl]
+ ld [CurMart], a
+ 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
+
+
+BuyMenu: ; 15c62
+ call FadeToMenu
+ callba Function8000
+ xor a
+ ld [wd045 + 1], a
+ ld a, 1
+ ld [wd045], a
+.loop
+ call BuyMenuLoop ; menu loop
+ jr nc, .loop
+ call Function2b3c
+ ret
+; 15c7d
+
+LoadBuyMenuText: ; 15c7d
+; load text from a nested table
+; which table is in EngineBuffer1
+; which entry is in register a
+ push af
+ call GetMartDialogGroup ; gets a pointer from GetMartDialogGroup.MartTextFunctionPointers
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop af
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PrintText
+ ret
+; 15c91
+
+MartAskPurchaseQuantity: ; 15c91
+ call GetMartDialogGroup ; gets a pointer from GetMartDialogGroup.MartTextFunctionPointers
+rept 2
+ inc hl
+endr
+ ld a, [hl]
+ and a
+ jp z, StandardMartAskPurchaseQuantity
+ cp 1
+ jp z, BargainShopAskPurchaseQuantity
+ jp RooftopSaleAskPurchaseQuantity
+; 15ca3
+
+GetMartDialogGroup: ; 15ca3
+ ld a, [EngineBuffer1]
+ ld e, a
+ ld d, 0
+ ld hl, .MartTextFunctionPointers
+rept 3
+ add hl, de
+endr
+ ret
+; 15cb0
+
+.MartTextFunctionPointers ; 15cb0
+ dwb .StandardMartPointers, 0
+ dwb .HerbShopPointers, 0
+ dwb .BargainShopPointers, 1
+ dwb .PharmacyPointers, 0
+ dwb .StandardMartPointers, 2
+; 15cbf
+
+.StandardMartPointers: ; 15cbf
+ dw Text_Mart_HowMany
+ dw Text_Mart_CostsThisMuch
+ dw Text_Mart_InsufficientFunds
+ dw Text_Mart_BagFull
+ dw Text_Mart_HereYouGo
+ dw BuyMenuLoop
+
+.HerbShopPointers: ; 15ccb
+ dw Text_HerbShop_HowMany
+ dw Text_HerbShop_CostsThisMuch
+ dw Text_HerbShop_InsufficientFunds
+ dw Text_HerbShop_BagFull
+ dw Text_HerbShop_HereYouGo
+ dw BuyMenuLoop
+
+.BargainShopPointers: ; 15cd7
+ dw BuyMenuLoop
+ dw Text_BargainShop_CostsThisMuch
+ dw Text_BargainShop_InsufficientFunds
+ dw Text_BargainShop_BagFull
+ dw Text_BargainShop_HereYouGo
+ dw Text_BargainShop_SoldOut
+
+.PharmacyPointers: ; 15ce3
+ dw Text_Pharmacy_HowMany
+ dw Text_Pharmacy_CostsThisMuch
+ dw Text_Pharmacy_InsufficientFunds
+ dw Text_Pharmacy_BagFull
+ dw Text_Pharmacy_HereYouGo
+ dw BuyMenuLoop
+; 15cef
+
+
+BuyMenuLoop: ; 15cef
+ callba Function24ae8
+ call UpdateSprites
+ ld hl, MenuDataHeader_Buy
+ call CopyMenuDataHeader
+ ld a, [wd045]
+ ld [wMenuCursorBuffer], a
+ ld a, [wd045 + 1]
+ ld [wd0e4], a
+ call HandleScrollingMenu
+ ld a, [wd0e4]
+ ld [wd045 + 1], a
+ ld a, [MenuSelection2]
+ ld [wd045], a
+ call SpeechTextBox
+ ld a, [wcf73]
+ cp B_BUTTON
+ jr z, .set_carry
+ cp A_BUTTON
+ jr z, .useless_pointer
+
+.useless_pointer
+ call MartAskPurchaseQuantity
+ jr c, .cancel
+ call Function15d97
+ jr c, .cancel
+ ld de, Money
+ ld bc, hMoneyTemp
+ ld a, $3 ; useless load
+ call CompareMoney
+ jr c, .insufficient_funds
+ ld hl, NumItems
+ call ReceiveItem
+ jr nc, .insufficient_bag_space
+ ld a, [wMartItemID]
+ ld e, a
+ ld d, $0
+ ld b, SET_FLAG
+ ld hl, wBargainShopFlags
+ call FlagAction
+ call PlayTransactionSound
+ ld de, Money
+ ld bc, hMoneyTemp
+ call TakeMoney
+ ld a, MARTTEXT_HERE_YOU_GO
+ call LoadBuyMenuText
+ call JoyWaitAorB
+
+.cancel
+ call SpeechTextBox
+ and a
+ ret
+
+.set_carry
+ scf
+ ret
+
+.insufficient_bag_space
+ ld a, MARTTEXT_BAG_FULL
+ call LoadBuyMenuText
+ call JoyWaitAorB
+ and a
+ ret
+
+.insufficient_funds
+ ld a, MARTTEXT_NOT_ENOUGH_MONEY
+ call LoadBuyMenuText
+ call JoyWaitAorB
+ and a
+ ret
+; 15d83
+
+StandardMartAskPurchaseQuantity:
+ ld a, 99
+ ld [wItemQuantityBuffer], a
+ ld a, MARTTEXT_HOW_MANY
+ call LoadBuyMenuText
+ callba Function24fc9
+ call ExitMenu
+ ret
+; 15d97
+
+Function15d97: ; 15d97
+ predef PartyMonItemName
+ ld a, MARTTEXT_COSTS_THIS_MUCH
+ call LoadBuyMenuText
+ call YesNoBox
+ ret
+; 15da5
+
+BargainShopAskPurchaseQuantity:
+ ld a, 1
+ ld [wItemQuantityChangeBuffer], a
+ ld a, [wMartItemID]
+ ld e, a
+ ld d, $0
+ ld b, CHECK_FLAG
+ ld hl, wBargainShopFlags
+ call FlagAction
+ ld a, c
+ and a
+ jr nz, .SoldOut
+ ld a, [wMartItemID]
+ ld e, a
+ ld d, $0
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+rept 3
+ add hl, de
+endr
+ inc hl
+ ld a, [hli]
+ ld [hMoneyTemp + 2], a
+ ld a, [hl]
+ ld [hMoneyTemp + 1], a
+ xor a
+ ld [hMoneyTemp], a
+ and a
+ ret
+
+.SoldOut
+ ld a, MARTTEXT_SOLD_OUT
+ call LoadBuyMenuText
+ call JoyWaitAorB
+ scf
+ ret
+; 15de2
+
+RooftopSaleAskPurchaseQuantity:
+ ld a, MARTTEXT_HOW_MANY
+ call LoadBuyMenuText
+ call .GetSalePrice
+ ld a, 99
+ ld [wItemQuantityBuffer], a
+ callba Function24fcf
+ call ExitMenu
+ ret
+; 15df9
+
+.GetSalePrice: ; 15df9
+ ld a, [wMartItemID]
+ ld e, a
+ ld d, 0
+ ld hl, MartPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+rept 3
+ add hl, de
+endr
+ inc hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ret
+; 15e0e
+
+
+Text_Mart_HowMany: ; 0x15e0e
+ ; How many?
+ text_jump UnknownText_0x1c4bfd
+ db "@"
+; 0x15e13
+
+Text_Mart_CostsThisMuch: ; 0x15e13
+ ; @ (S) will be ¥@ .
+ text_jump UnknownText_0x1c4c08
+ db "@"
+; 0x15e18
+
+MenuDataHeader_Buy: ; 0x15e18
+ db $40 ; flags
+ db 03, 01 ; start coords
+ db 11, 19 ; end coords
+ dw .menudata2
+ db 1 ; default option
+; 0x15e20
+
+.menudata2: ; 0x15e20
+ db $30 ; pointers
+ db 4, 8 ; rows, columns
+ db 1 ; horizontal spacing
+ dbw 0, CurMart
+ dba PlaceMenuItemName
+ dba .PrintBCDPrices
+ dba Function244c3
+; 15e30
+
+.PrintBCDPrices: ; 15e30
+ ld a, [wcf77]
+ ld c, a
+ ld b, 0
+ ld hl, wMartItem1BCD
+rept 3
+ add hl, bc
+endr
+ push de
+ ld d, h
+ ld e, l
+ pop hl
+ ld bc, SCREEN_WIDTH
+ add hl, bc
+ ld c, PRINTNUM_LEADINGZEROS | PRINTNUM_MONEY | 3
+ call PrintBCDNumber
+ ret
+; 15e4a (5:5e4a)
+
+Text_HerbShop_Intro: ; 0x15e4a
+ ; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe…
+ text_jump UnknownText_0x1c4c28
+ db "@"
+; 0x15e4f
+
+Text_HerbShop_HowMany: ; 0x15e4f
+ ; How many?
+ text_jump UnknownText_0x1c4ca3
+ db "@"
+; 0x15e54
+
+Text_HerbShop_CostsThisMuch: ; 0x15e54
+ ; @ (S) will be ¥@ .
+ text_jump UnknownText_0x1c4cae
+ db "@"
+; 0x15e59
+
+Text_HerbShop_HereYouGo: ; 0x15e59
+ ; Thank you, dear. Hehehehe…
+ text_jump UnknownText_0x1c4cce
+ db "@"
+; 0x15e5e
+
+Text_HerbShop_BagFull: ; 0x15e5e
+ ; Oh? Your PACK is full, dear.
+ text_jump UnknownText_0x1c4cea
+ db "@"
+; 0x15e63
+
+Text_HerbShop_InsufficientFunds: ; 0x15e63
+ ; Hehehe… You don't have the money.
+ text_jump UnknownText_0x1c4d08
+ db "@"
+; 0x15e68
+
+Text_HerbShop_ComeAgain: ; 0x15e68
+ ; Come again, dear. Hehehehe…
+ text_jump UnknownText_0x1c4d2a
+ db "@"
+; 0x15e6d
+
+Text_BargainShop_Intro: ; 0x15e6d
+ ; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item.
+ text_jump UnknownText_0x1c4d47
+ db "@"
+; 0x15e72
+
+Text_BargainShop_CostsThisMuch: ; 0x15e72
+ ; costs ¥@ . Want it?
+ text_jump UnknownText_0x1c4db0
+ db "@"
+; 0x15e77
+
+Text_BargainShop_HereYouGo: ; 0x15e77
+ ; Thanks.
+ text_jump UnknownText_0x1c4dcd
+ db "@"
+; 0x15e7c
+
+Text_BargainShop_BagFull: ; 0x15e7c
+ ; Uh-oh, your PACK is chock-full.
+ text_jump UnknownText_0x1c4dd6
+ db "@"
+; 0x15e81
+
+Text_BargainShop_SoldOut: ; 0x15e81
+ ; You bought that already. I'm all sold out of it.
+ text_jump UnknownText_0x1c4df7
+ db "@"
+; 0x15e86
+
+Text_BargainShop_InsufficientFunds: ; 0x15e86
+ ; Uh-oh, you're short on funds.
+ text_jump UnknownText_0x1c4e28
+ db "@"
+; 0x15e8b
+
+Text_BargainShop_ComeAgain: ; 0x15e8b
+ ; Come by again sometime.
+ text_jump UnknownText_0x1c4e46
+ db "@"
+; 0x15e90
+
+UnknownText_0x15e90: ; 0x15e90
+ ; What's up? Need some medicine?
+ text_jump UnknownText_0x1c4e5f
+ db "@"
+; 0x15e95
+
+Text_Pharmacy_HowMany: ; 0x15e95
+ ; How many?
+ text_jump UnknownText_0x1c4e7e
+ db "@"
+; 0x15e9a
+
+Text_Pharmacy_CostsThisMuch: ; 0x15e9a
+ ; @ (S) will cost ¥@ .
+ text_jump UnknownText_0x1c4e89
+ db "@"
+; 0x15e9f
+
+Text_Pharmacy_HereYouGo: ; 0x15e9f
+ ; Thanks much!
+ text_jump UnknownText_0x1c4eab
+ db "@"
+; 0x15ea4
+
+Text_Pharmacy_BagFull: ; 0x15ea4
+ ; You don't have any more space.
+ text_jump UnknownText_0x1c4eb9
+ db "@"
+; 0x15ea9
+
+Text_Pharmacy_InsufficientFunds: ; 0x15ea9
+ ; Huh? That's not enough money.
+ text_jump UnknownText_0x1c4ed8
+ db "@"
+; 0x15eae
+
+UnknownText_0x15eae: ; 0x15eae
+ ; All right. See you around.
+ text_jump UnknownText_0x1c4ef6
+ db "@"
+; 0x15eb3
+
+
+SellMenu: ; 15eb3
+ call DisableSpriteUpdates
+ callba Function106a5
+.asm_15ebc
+ callba Function106be
+ ld a, [wcf66]
+ and a
+ jp z, Function15ece
+ call Function15ee0
+ jr .asm_15ebc
+; 15ece
+
+Function15ece: ; 15ece
+ call Function2b74
+ and a
+ ret
+; 15ed3
+
+Function15ed3: ; unreferenced
+ ld hl, UnknownText_0x15edb
+ call MenuTextBoxBackup
+ and a
+ ret
+; 15edb
+
+UnknownText_0x15edb: ; 0x15edb
+ ; You don't have anything to sell.
+ text_jump UnknownText_0x1c4f12
+ db "@"
+; 0x15ee0
+
+
+Function15ee0: ; 15ee0
+ callba CheckItemMenu
+ ld a, [wItemAttributeParamBuffer]
+ ld hl, .jumptable
+ rst JumpTable
+ ret
+; 15eee
+
+.jumptable: ; 15eee
+ dw .try_sell
+ dw .cant_buy
+ dw .cant_buy
+ dw .cant_buy
+ dw .try_sell
+ dw .try_sell
+ dw .try_sell
+; 15efc
+
+.cant_buy: ; 15efc
+ ret
+; 15efd
+
+
+.try_sell: ; 15efd
+ callba _CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ and a
+ jr z, .okay_to_sell
+ ld hl, TextMart_CantBuyFromYou
+ call PrintText
+ and a
+ ret
+
+.okay_to_sell
+ ld hl, Text_Mart_SellHowMany
+ call PrintText
+ callba Function24af8
+ callba Function24fe1
+ call ExitMenu
+ jr c, .declined
+ hlcoord 1, 14
+ lb bc, 3, 18
+ call ClearBox
+ ld hl, Text_Mart_ICanPayThisMuch
+ call PrintTextBoxText
+ call YesNoBox
+ jr c, .declined
+ ld de, Money
+ ld bc, hMoneyTemp
+ call GiveMoney
+ ld a, [wMartItemID]
+ ld hl, NumItems
+ call TossItem
+ predef PartyMonItemName
+ hlcoord 1, 14
+ lb bc, 3, 18
+ call ClearBox
+ ld hl, Text_Mart_SoldForAmount
+ call PrintTextBoxText
+ call PlayTransactionSound
+ callba Function24af0
+ call JoyWaitAorB
+
+.declined
+ call ExitMenu
+ and a
+ ret
+; 15f73
+
+Text_Mart_SellHowMany: ; 0x15f73
+ ; How many?
+ text_jump UnknownText_0x1c4f33
+ db "@"
+; 0x15f78
+
+Text_Mart_ICanPayThisMuch: ; 0x15f78
+ ; I can pay you ¥@ . Is that OK?
+ text_jump UnknownText_0x1c4f3e
+ db "@"
+; 0x15f7d
+
+DummyString ; 15f7d
+ db "!ダミー!@"
+
+Text_Mart_HowMayIHelpYou: ; 0x15f83
+ ; Welcome! How may I help you?
+ text_jump UnknownText_0x1c4f62
+ db "@"
+; 0x15f88
+
+MenuDataHeader_BuySell: ; 0x15f88
+ db $40 ; flags
+ db 00, 00 ; start coords
+ db 08, 07 ; end coords
+ dw .menudata2
+ db 1 ; default option
+; 0x15f90
+
+.menudata2: ; 0x15f90
+ db $80 ; strings
+ db 3 ; items
+ db "BUY@"
+ db "SELL@"
+ db "QUIT@"
+; 0x15f96
+
+Text_Mart_HereYouGo: ; 0x15fa0
+ ; Here you are. Thank you!
+ text_jump UnknownText_0x1c4f80
+ db "@"
+; 0x15fa5
+
+Text_Mart_InsufficientFunds: ; 0x15fa5
+ ; You don't have enough money.
+ text_jump UnknownText_0x1c4f9a
+ db "@"
+; 0x15faa
+
+Text_Mart_BagFull: ; 0x15faa
+ ; You can't carry any more items.
+ text_jump UnknownText_0x1c4fb7
+ db "@"
+; 0x15faf
+
+TextMart_CantBuyFromYou: ; 0x15faf
+ ; Sorry, I can't buy that from you.
+ text_jump UnknownText_0x1c4fd7
+ db "@"
+; 0x15fb4
+
+Text_Mart_ComeAgain: ; 0x15fb4
+ ; Please come again!
+ text_jump UnknownText_0x1c4ff9
+ db "@"
+; 0x15fb9
+
+Text_Mart_AnythingElse: ; 0x15fb9
+ text_jump UnknownText_0x1c500d
+ db "@"
+; 0x15fbe
+
+Text_Mart_SoldForAmount: ; 0x15fbe
+ text_jump UnknownText_0x1c502e
+ db "@"
+; 0x15fc3
+
+PlayTransactionSound: ; 15fc3
+ call WaitSFX
+ ld de, SFX_TRANSACTION
+ call PlaySFX
+ ret
+; 15fcd
+
+MartTextBox: ; 15fcd
+ call MenuTextBox
+ call JoyWaitAorB
+ call ExitMenu
+ ret
+; 15fd7
diff --git a/engine/menu.asm b/engine/menu.asm
new file mode 100755
index 000000000..a1ec30b7a
--- /dev/null
+++ b/engine/menu.asm
@@ -0,0 +1,587 @@
+Function2400e:: ; 2400e
+ ld hl, CopyMenuData2
+ ld a, [wcf94]
+ rst FarCall
+ call Function24085
+ call UpdateSprites
+ call Function321c
+ call Function2408f
+ ret
+; 24022
+
+Function24022:: ; 24022
+ ld hl, CopyMenuData2
+ ld a, [wcf94]
+ rst FarCall
+ call Function24085
+ callba MobileTextBorder
+ call UpdateSprites
+ call Function321c
+ call Function2408f
+ ret
+; 2403c
+
+Function2403c:: ; 2403c
+ ld hl, CopyMenuData2
+ ld a, [wcf94]
+ rst FarCall
+ call Function24085
+ callba MobileTextBorder
+ call UpdateSprites
+ call Function321c
+ call Function2411a
+ ld hl, wcfa5
+ set 7, [hl]
+.asm_2405a
+ call DelayFrame
+ callba Function10032e
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_24076
+ call Function241ba
+ ld a, [wcfa8]
+ and c
+ jr z, .asm_2405a
+ call Function24098
+ ret
+
+.asm_24076
+ ld a, [wcfa4]
+ ld c, a
+ ld a, [wcfa3]
+ call SimpleMultiply
+ ld [wMenuCursorBuffer], a
+ and a
+ ret
+; 24085
+
+
+
+Function24085: ; 24085
+ xor a
+ ld [hBGMapMode], a
+ call MenuBox
+ call Function240db
+ ret
+; 2408f
+
+Function2408f: ; 2408f
+ call Function2411a
+ call Function1bc9
+ call Function1ff8
+
+Function24098: ; 24098
+ ld a, [wMenuData2Flags]
+ bit 1, a
+ jr z, .asm_240a6
+ call Function1bdd
+ bit 2, a
+ jr nz, .asm_240c9
+
+.asm_240a6
+ ld a, [wMenuData2Flags]
+ bit 0, a
+ jr nz, .asm_240b4
+ call Function1bdd
+ bit 1, a
+ jr nz, .asm_240cb
+
+.asm_240b4
+ ld a, [wcfa4]
+ ld c, a
+ ld a, [MenuSelection2]
+ dec a
+ call SimpleMultiply
+ ld c, a
+ ld a, [wcfaa]
+ add c
+ ld [wMenuCursorBuffer], a
+ and a
+ ret
+
+.asm_240c9
+ scf
+ ret
+
+.asm_240cb
+ scf
+ ret
+; 240cd
+
+Function240cd: ; 240cd
+ ld a, [wMenuData2Items]
+ and $f
+ ret
+; 240d3
+
+Function240d3: ; 240d3
+ ld a, [wMenuData2Items]
+ swap a
+ and $f
+ ret
+; 240db
+
+Function240db: ; 240db
+ ld hl, wcf95
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ call GetMenuTextStartCoord
+ call Coord2Tile
+ call Function240d3
+ ld b, a
+.asm_240eb
+ push bc
+ push hl
+ call Function240cd
+ ld c, a
+.asm_240f1
+ push bc
+ ld a, [wcf94]
+ call Function201c
+ inc de
+ ld a, [wcf93]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ pop bc
+ dec c
+ jr nz, .asm_240f1
+ pop hl
+ ld bc, $28
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_240eb
+ ld hl, wcf98
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ or h
+ ret z
+ ld a, [wcf97]
+ rst FarCall
+ ret
+; 2411a
+
+
+Function2411a: ; 2411a (9:411a)
+ call GetMenuTextStartCoord
+ ld a, b
+ ld [wcfa1], a
+ dec c
+ ld a, c
+ ld [wcfa2], a
+ call Function240d3
+ ld [wcfa3], a
+ call Function240cd
+ ld [wcfa4], a
+ call Function24179
+ call Function2418a
+ call Function24193
+ ld a, [wcfa4]
+ ld e, a
+ ld a, [wMenuCursorBuffer]
+ ld b, a
+ xor a
+ ld d, $0
+.asm_24146
+ inc d
+ add e
+ cp b
+ jr c, .asm_24146
+ sub e
+ ld c, a
+ ld a, b
+ sub c
+ and a
+ jr z, .asm_24157
+ cp e
+ jr z, .asm_24159
+ jr c, .asm_24159
+.asm_24157
+ ld a, $1
+.asm_24159
+ ld [wcfaa], a
+ ld a, [wcfa3]
+ ld e, a
+ ld a, d
+ and a
+ jr z, .asm_24169
+ cp e
+ jr z, .asm_2416b
+ jr c, .asm_2416b
+.asm_24169
+ ld a, $1
+.asm_2416b
+ ld [MenuSelection2], a
+ xor a
+ ld [wcfab], a
+ ld [wcfac], a
+ ld [wcfad], a
+ ret
+; 24179
+
+Function24179: ; 24179
+ xor a
+ ld hl, wcfa5
+ ld [hli], a
+ ld [hld], a
+ ld a, [wMenuData2Flags]
+ bit 5, a
+ ret z
+ set 5, [hl]
+ set 4, [hl]
+ ret
+; 2418a
+
+Function2418a: ; 2418a
+ ld a, [wcf93]
+ or $20
+ ld [wcfa7], a
+ ret
+; 24193
+
+Function24193: ; 24193
+ ld hl, wMenuData2Flags
+ ld a, $1
+ bit 0, [hl]
+ jr nz, .asm_2419e
+ or $2
+
+.asm_2419e
+ bit 1, [hl]
+ jr z, .asm_241a4
+ or $4
+
+.asm_241a4
+ ld [wcfa8], a
+ ret
+; 241a8
+
+
+Function241a8:: ; 241a8
+ call Function24329
+Function241ab:: ; 241ab
+ ld hl, wcfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function24216
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 241ba
+
+Function241ba: ; 241ba
+ ld hl, wcfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function2431a
+ call Function24249
+ jr nc, .asm_241cd
+ call Function24270
+
+.asm_241cd
+ pop af
+ ld [hBGMapMode], a
+ call Function1bdd
+ ld c, a
+ ret
+; 241d5
+
+
+Function241d5: ; 241d5
+ call Function24329
+.loop
+ call Function2431a
+ call Function10402d ; BUG: This function is in another bank.
+ ; Pointer in current bank (9) is bogus.
+ call Function241fa
+ jr nc, .done
+ call Function24270
+ jr c, .done
+ ld a, [wcfa5]
+ bit 7, a
+ jr nz, .done
+ call Function1bdd
+ ld c, a
+ ld a, [wcfa8]
+ and c
+ jr z, .loop
+
+.done
+ ret
+; 241fa
+
+Function241fa: ; 241fa
+.loop
+ call Function24259
+ ret c
+ ld c, 1
+ ld b, 3
+ call Function10062d ; BUG: This function is in another bank.
+ ; Pointer in current bank (9) is bogus.
+ ret c
+ callba Function100337
+ ret c
+ ld a, [wcfa5]
+ bit 7, a
+ jr z, .loop
+ and a
+ ret
+; 24216
+
+
+Function24216: ; 24216
+.asm_24216
+ call Function2431a
+ call Function24238
+ call Function24249
+ jr nc, .asm_24237
+ call Function24270
+ jr c, .asm_24237
+ ld a, [wcfa5]
+ bit 7, a
+ jr nz, .asm_24237
+ call Function1bdd
+ ld b, a
+ ld a, [wcfa8]
+ and b
+ jr z, .asm_24216
+
+.asm_24237
+ ret
+; 24238
+
+Function24238: ; 24238
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ pop af
+ ld [hOAMUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 24249
+
+Function24249: ; 24249
+.asm_24249
+ call RTC
+ call Function24259
+ ret c
+ ld a, [wcfa5]
+ bit 7, a
+ jr z, .asm_24249
+ and a
+ ret
+; 24259
+
+Function24259: ; 24259
+ ld a, [wcfa5]
+ bit 6, a
+ jr z, .asm_24266
+ callab Function8cf62
+
+.asm_24266
+ call JoyTextDelay
+ call Function1bdd
+ and a
+ ret z
+ scf
+ ret
+; 24270
+
+Function24270: ; 24270
+ call Function1bdd
+ bit 0, a
+ jp nz, Function24318
+ bit 1, a
+ jp nz, Function24318
+ bit 2, a
+ jp nz, Function24318
+ bit 3, a
+ jp nz, Function24318
+ bit 4, a
+ jr nz, .asm_242fa
+ bit 5, a
+ jr nz, .asm_242dc
+ bit 6, a
+ jr nz, .asm_242be
+ bit 7, a
+ jr nz, .asm_242a0
+ and a
+ ret
+
+.asm_24299: ; 24299
+ ld hl, wcfa6
+ set 7, [hl]
+ scf
+ ret
+
+.asm_242a0
+ ld hl, MenuSelection2
+ ld a, [wcfa3]
+ cp [hl]
+ jr z, .asm_242ac
+ inc [hl]
+ xor a
+ ret
+
+.asm_242ac
+ ld a, [wcfa5]
+ bit 5, a
+ jr nz, .asm_242ba
+ bit 3, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_242ba
+ ld [hl], $1
+ xor a
+ ret
+
+.asm_242be
+ ld hl, MenuSelection2
+ ld a, [hl]
+ dec a
+ jr z, .asm_242c8
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242c8
+ ld a, [wcfa5]
+ bit 5, a
+ jr nz, .asm_242d6
+ bit 2, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_242d6
+ ld a, [wcfa3]
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242dc
+ ld hl, wcfaa
+ ld a, [hl]
+ dec a
+ jr z, .asm_242e6
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242e6
+ ld a, [wcfa5]
+ bit 4, a
+ jr nz, .asm_242f4
+ bit 1, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_242f4
+ ld a, [wcfa4]
+ ld [hl], a
+ xor a
+ ret
+
+.asm_242fa
+ ld hl, wcfaa
+ ld a, [wcfa4]
+ cp [hl]
+ jr z, .asm_24306
+ inc [hl]
+ xor a
+ ret
+
+.asm_24306
+ ld a, [wcfa5]
+ bit 4, a
+ jr nz, .asm_24314
+ bit 0, a
+ jp nz, .asm_24299
+ xor a
+ ret
+
+.asm_24314
+ ld [hl], $1
+ xor a
+ ret
+; 24318
+
+Function24318: ; 24318
+ xor a
+ ret
+; 2431a
+
+Function2431a: ; 2431a
+ ld hl, wcfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ cp $ed
+ jr nz, Function24329
+ ld a, [wcfab]
+ ld [hl], a
+
+Function24329: ; 24329
+ ld a, [wcfa1]
+ ld b, a
+ ld a, [wcfa2]
+ ld c, a
+ call Coord2Tile
+ ld a, [wcfa7]
+ swap a
+ and $f
+ ld c, a
+ ld a, [MenuSelection2]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_24348
+.asm_24344
+ add c
+ dec b
+ jr nz, .asm_24344
+
+.asm_24348
+ ld c, $14
+ call AddNTimes
+ ld a, [wcfa7]
+ and $f
+ ld c, a
+ ld a, [wcfaa]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_2435f
+.asm_2435b
+ add c
+ dec b
+ jr nz, .asm_2435b
+
+.asm_2435f
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ cp $ed
+ jr z, .asm_2436b
+ ld [wcfab], a
+ ld [hl], $ed
+
+.asm_2436b
+ ld a, l
+ ld [wcfac], a
+ ld a, h
+ ld [wcfad], a
+ ret
+; 24374
diff --git a/engine/movement.asm b/engine/movement.asm
index 0a6851ed4..21dd89e9f 100644
--- a/engine/movement.asm
+++ b/engine/movement.asm
@@ -61,32 +61,32 @@ MovementPointers: ; 5075
dw Movement_fix_facing ; 3b
dw Movement_3c ; 3c
dw Movement_hide_person ; 3d
- dw Movement_show_person ; 3e
- dw Movement_3f ; 3f
- dw Movement_40 ; 40
- dw Movement_41 ; 41
- dw Movement_42 ; 42
- dw Movement_43 ; 43
- dw Movement_44 ; 44
- dw Movement_accelerate_last ; 45
+ dw Movement_step_sleep_1 ; 3e
+ dw Movement_step_sleep_2 ; 3f
+ dw Movement_step_sleep_3 ; 40
+ dw Movement_step_sleep_4 ; 41
+ dw Movement_step_sleep_5 ; 42
+ dw Movement_step_sleep_6 ; 43
+ dw Movement_step_sleep_7 ; 44
+ dw Movement_step_sleep_8 ; 45
dw Movement_step_sleep ; 46
dw Movement_step_end ; 47
dw Movement_48 ; 48
dw Movement_remove_person ; 49
- dw Movement_4a ; 4a
+ dw Movement_step_loop ; 4a
dw Movement_4b ; 4b
dw Movement_teleport_from ; 4c
dw Movement_teleport_to ; 4d
dw Movement_skyfall ; 4e
dw Movement_step_wait5 ; 4f
dw Movement_50 ; 50
- dw Movement_51 ; 51
- dw Movement_52 ; 52
+ dw Movement_fish_got_bite ; 51
+ dw Movement_fish_cast_rod ; 52
dw Movement_hide_emote ; 53
dw Movement_show_emote ; 54
dw Movement_step_shake ; 55
dw Movement_56 ; 56
- dw Movement_57 ; 57
+ dw Movement_rock_smash ; 57
dw Movement_58 ; 58
dw Movement_59 ; 59
; 5129
@@ -139,7 +139,7 @@ Movement_step_wait5: ; 5145
ld [hl], $3
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
- ld [hl], $ff
+ ld [hl], STANDING
ret
; 516a
@@ -156,14 +156,14 @@ Movement_58: ; 516a
ld [hl], a
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
- ld [hl], $ff
+ ld [hl], STANDING
ld hl, OBJECT_09
add hl, bc
ld [hl], $12
ret
; 5189
-Movement_51: ; 5189
+Movement_fish_got_bite: ; 5189
ld hl, OBJECT_11
add hl, bc
ld [hl], $6
@@ -173,7 +173,7 @@ Movement_51: ; 5189
ret
; 5196
-Movement_57: ; 5196
+Movement_rock_smash: ; 5196
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
add hl, bc
@@ -187,7 +187,7 @@ Movement_57: ; 5196
ret
; 51ab
-Movement_52: ; 51ab
+Movement_fish_cast_rod: ; 51ab
ld hl, OBJECT_11
add hl, bc
ld [hl], $6
@@ -197,11 +197,11 @@ Movement_52: ; 51ab
ret
; 51b8
-Movement_4a: ; 51b8
- ld hl, OBJECT_27
+Movement_step_loop: ; 51b8
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], $0
- jp Function5065
+ jp ContinueReadingMovement
; 51c1
Movement_step_end: ; 51c1
@@ -209,11 +209,14 @@ Movement_step_end: ; 51c1
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
- ld hl, OBJECT_27
+
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], $0
+
ld hl, VramState
res 7, [hl]
+
ld hl, OBJECT_09
add hl, bc
ld [hl], $1
@@ -225,16 +228,20 @@ Movement_48: ; 51db
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld [hl], a
- ld hl, OBJECT_27
+
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
ld [hl], $0
+
call GetMovementByte
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
+
ld hl, OBJECT_09
add hl, bc
ld [hl], $3
+
ld hl, VramState
res 7, [hl]
ret
@@ -245,10 +252,10 @@ Movement_remove_person: ; 51fd
ld hl, wObjectFollow_Leader
ld a, [hMapObjectIndexBuffer]
cp [hl]
- jr nz, .asm_520a
- ld [hl], $ff
+ jr nz, .not_leading
+ ld [hl], -1
-.asm_520a
+.not_leading
ld hl, VramState
res 7, [hl]
ret
@@ -258,43 +265,45 @@ Movement_4b: ; 5210
ld hl, OBJECT_11
add hl, bc
ld [hl], $1
+
ld hl, OBJECT_09
add hl, bc
ld [hl], $4
+
ld hl, VramState
res 7, [hl]
ret
; 5222
-Movement_show_person: ; 5222
+Movement_step_sleep_1: ; 5222
ld a, $1
jr Function5247
-Movement_3f: ; 5226
+Movement_step_sleep_2: ; 5226
ld a, $2
jr Function5247
-Movement_40: ; 522a
+Movement_step_sleep_3: ; 522a
ld a, $3
jr Function5247
-Movement_41: ; 522e
+Movement_step_sleep_4: ; 522e
ld a, $4
jr Function5247
-Movement_42: ; 5232
+Movement_step_sleep_5: ; 5232
ld a, $5
jr Function5247
-Movement_43: ; 5236
+Movement_step_sleep_6: ; 5236
ld a, $6
jr Function5247
-Movement_44: ; 523a
+Movement_step_sleep_7: ; 523a
ld a, $7
jr Function5247
-Movement_accelerate_last: ; 523e
+Movement_step_sleep_8: ; 523e
ld a, $8
jr Function5247
@@ -309,15 +318,18 @@ Function5247: ; 5247
ld hl, OBJECT_STEP_DURATION
add hl, bc
ld [hl], a
+
ld hl, OBJECT_09
add hl, bc
ld [hl], $3
+
ld hl, OBJECT_11
add hl, bc
ld [hl], $1
+
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
- ld [hl], $ff
+ ld [hl], STANDING
ret
; 525f
@@ -334,7 +346,7 @@ Movement_50: ; 525f
ld [hl], $3
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
- ld [hl], $ff
+ ld [hl], STANDING
ret
; 5279
@@ -351,7 +363,7 @@ Movement_56: ; 5279
ld [hl], $b
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
- ld [hl], $ff
+ ld [hl], STANDING
ret
; 5293
@@ -359,52 +371,52 @@ Movement_38: ; 5293
ld hl, OBJECT_FLAGS1
add hl, bc
res 3, [hl]
- jp Function5065
+ jp ContinueReadingMovement
; 529c
Movement_39: ; 529c
ld hl, OBJECT_FLAGS1
add hl, bc
set 3, [hl]
- jp Function5065
+ jp ContinueReadingMovement
; 52a5
Movement_remove_fixed_facing: ; 52a5
ld hl, OBJECT_FLAGS1
add hl, bc
res 2, [hl]
- jp Function5065
+ jp ContinueReadingMovement
; 52ae
Movement_fix_facing: ; 52ae
ld hl, OBJECT_FLAGS1
add hl, bc
set 2, [hl]
- jp Function5065
+ jp ContinueReadingMovement
; 52b7
Movement_3c: ; 52b7
ld hl, OBJECT_FLAGS1
add hl, bc
res 0, [hl]
- jp Function5065
+ jp ContinueReadingMovement
; 52c0
Movement_hide_person: ; 52c0
ld hl, OBJECT_FLAGS1
add hl, bc
set 0, [hl]
- jp Function5065
+ jp ContinueReadingMovement
; 52c9
Movement_hide_emote: ; 52c9
call Function5579
- jp Function5065
+ jp ContinueReadingMovement
; 52cf
Movement_show_emote: ; 52cf
call Function5547
- jp Function5065
+ jp ContinueReadingMovement
; 52d5
Movement_step_shake: ; 52d5
@@ -413,7 +425,7 @@ Movement_step_shake: ; 52d5
call GetMovementByte
call Function5565
- jp Function5065
+ jp ContinueReadingMovement
; 52de
Movement_turn_head_down: ; 52de
@@ -441,7 +453,7 @@ TurnHead: ; 52ee
ld [hl], $1
ld hl, OBJECT_DIRECTION_WALKING
add hl, bc
- ld [hl], $ff
+ ld [hl], STANDING
ret
; 5300
diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm
new file mode 100755
index 000000000..21ec969b4
--- /dev/null
+++ b/engine/namingscreen.asm
@@ -0,0 +1,959 @@
+_NamingScreen: ; 0x116b7
+ call DisableSpriteUpdates
+ call NamingScreen
+ call Function2b74
+ ret
+; 0x116c1
+
+NamingScreen: ; 116c1
+ ld hl, wc6d0
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, wc6d4
+ ld [hl], b
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ ld a, [hMapAnims]
+ push af
+ xor a
+ ld [hMapAnims], a
+ ld a, [hInMenu]
+ push af
+ ld a, $1
+ ld [hInMenu], a
+ call Function116f8
+ call DelayFrame
+.asm_116e5
+ call Function11915
+ jr nc, .asm_116e5
+ pop af
+ ld [hInMenu], a
+ pop af
+ ld [hMapAnims], a
+ pop af
+ ld [Options], a
+ call ClearJoypad
+ ret
+; 116f8
+
+Function116f8: ; 116f8
+ call ClearBGPalettes
+ ld b, $8
+ call GetSGBLayout
+ call DisableLCD
+ call Function11c51
+ call Function118a8
+ ld a, $e3
+ ld [rLCDC], a
+ call Function1171d
+ call WaitBGMap
+ call WaitTop
+ call SetPalettes
+ call Function11be0
+ ret
+; 1171d
+
+Function1171d: ; 1171d
+ ld a, [wc6d4]
+ and 7
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1172e
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1172e
+
+
+Jumptable_1172e: ; 1172e (4:572e)
+ dw Function1173e
+ dw Function1178d
+ dw Function117ae
+ dw Function117d1
+ dw Function117f5
+ dw Function1182c
+ dw Function1173e
+ dw Function1173e
+
+
+Function1173e: ; 1173e (4:573e)
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ ld hl, Function8e83f
+ ld a, BANK(Function8e83f)
+ ld e, $1
+ rst FarCall ; ; indirect jump to Function8e83f (8e83f (23:683f))
+ ld a, [CurPartySpecies]
+ ld [wd265], a
+ call GetPokemonName
+ hlcoord 5, 2
+ call PlaceString
+ ld l, c
+ ld h, b
+ ld de, Strings_11780
+ call PlaceString
+ inc de
+ hlcoord 5, 4
+ call PlaceString
+ callba GetGender
+ jr c, .asm_1177c
+ ld a, $ef
+ jr nz, .asm_11778
+ ld a, $f5
+.asm_11778
+ hlcoord 1, 2
+ ld [hl], a
+.asm_1177c
+ call Function1187b
+ ret
+; 11780 (4:5780)
+
+Strings_11780: ; 11780
+ db "'S@"
+ db "NICKNAME?@"
+; 1178d
+
+Function1178d: ; 1178d (4:578d)
+ callba GetPlayerIcon
+ call Function11847
+ hlcoord 5, 2
+ ld de, String_117a3
+ call PlaceString
+ call Function11882
+ ret
+; 117a3 (4:57a3)
+
+String_117a3: ; 117a3
+ db "YOUR NAME?@"
+; 117ae
+
+Function117ae: ; 117ae (4:57ae)
+ ld de, SilverSpriteGFX
+ ld b, BANK(SilverSpriteGFX)
+ call Function11847
+ hlcoord 5, 2
+ ld de, String_117c3
+ call PlaceString
+ call Function11882
+ ret
+; 117c3 (4:57c3)
+
+String_117c3: ; 117c3
+ db "RIVAL'S NAME?@"
+; 117d1
+
+Function117d1: ; 117d1 (4:57d1)
+ ld de, MomSpriteGFX
+ ld b, BANK(MomSpriteGFX)
+ call Function11847
+ hlcoord 5, 2
+ ld de, String_117e6
+ call PlaceString
+ call Function11882
+ ret
+; 117e6 (4:57e6)
+
+String_117e6: ; 117e6
+ db "MOTHER'S NAME?@"
+; 117f5
+
+Function117f5: ; 117f5 (4:57f5)
+ ld de, PokeBallSpriteGFX
+ ld hl, VTiles0 tile $00
+ lb bc, BANK(PokeBallSpriteGFX), $4
+ call Request2bpp
+ xor a
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], a
+ ld de, $2420
+ ld a, $a
+ call Function3b2a
+ ld hl, $1
+ add hl, bc
+ ld [hl], $0
+ hlcoord 5, 2
+ ld de, String_11822
+ call PlaceString
+ call Function11889
+ ret
+; 11822 (4:5822)
+
+String_11822: ; 11822
+ db "BOX NAME?@"
+; 1182c
+
+Function1182c: ; 1182c (4:582c)
+ hlcoord 3, 2
+ ld de, String_11839
+ call PlaceString
+ call Function11882
+ ret
+; 11839 (4:5839)
+
+String_11839: ; 11839
+ db "おともだち の なまえは?@"
+; 11847
+
+Function11847: ; 11847 (4:5847)
+ push de
+ ld hl, VTiles0 tile $00
+ ld c, $4
+ push bc
+ call Request2bpp
+ pop bc
+ ld hl, $c0
+ add hl, de
+ ld e, l
+ ld d, h
+ ld hl, VTiles0 tile $04
+ call Request2bpp
+ xor a
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], a
+ pop de
+ ld b, $a
+ ld a, d
+ cp $7a
+ jr nz, .asm_11873
+ ld a, e
+ cp $40
+ jr nz, .asm_11873
+ ld b, $1e
+.asm_11873
+ ld a, b
+ ld de, $2420
+ call Function3b2a
+ ret
+
+Function1187b: ; 1187b (4:587b)
+ ld a, $a
+ hlcoord 5, 6
+ jr Function11890
+
+Function11882: ; 11882 (4:5882)
+ ld a, $7
+ hlcoord 5, 6
+ jr Function11890
+
+Function11889: ; 11889 (4:5889)
+ ld a, $8
+ hlcoord 5, 4
+ jr Function11890
+
+Function11890: ; 11890 (4:5890)
+ ld [wc6d3], a
+ ld a, l
+ ld [wc6d8], a
+ ld a, h
+ ld [wc6d9], a
+ ret
+
+
+Function1189c: ; 1189c
+ push bc
+ push af
+ ld a, [wc6d4]
+ sub $3
+ ld b, a
+ pop af
+ dec b
+ pop bc
+ ret
+; 118a8
+
+Function118a8: ; 118a8
+ call WaitTop
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, $60
+ call ByteFill
+ hlcoord 1, 1
+ lb bc, 6, 18
+ call Function1189c
+ jr nz, .asm_118c4
+ lb bc, 4, 18
+
+.asm_118c4
+ call ClearBox
+ ld de, NameInputUpper
+Function118ca: ; 118ca
+ call Function1189c
+ jr nz, .asm_118d5
+ ld hl, BoxNameInputLower - NameInputLower
+ add hl, de
+ ld d, h
+ ld e, l
+
+.asm_118d5
+ push de
+ hlcoord 1, 8
+ lb bc, 7, 18
+ call Function1189c
+ jr nz, .asm_118e7
+ hlcoord 1, 6
+ lb bc, 9, 18
+
+.asm_118e7
+ call ClearBox
+ hlcoord 1, 16
+ lb bc, 1, 18
+ call ClearBox
+ pop de
+ hlcoord 2, 8
+ ld b, $5
+ call Function1189c
+ jr nz, .asm_11903
+ hlcoord 2, 6
+ ld b, $6
+
+.asm_11903
+ ld c, $11
+.asm_11905
+ ld a, [de]
+ ld [hli], a
+ inc de
+ dec c
+ jr nz, .asm_11905
+ push de
+ ld de, $17
+ add hl, de
+ pop de
+ dec b
+ jr nz, .asm_11903
+ ret
+; 11915
+
+Function11915: ; 11915
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_11930
+ call Function11968
+ callba Function8cf62
+ call Function11940
+ call DelayFrame
+ and a
+ ret
+
+.asm_11930
+ callab Function8cf53
+ call ClearSprites
+ xor a
+ ld [hSCX], a
+ ld [hSCY], a
+ scf
+ ret
+; 11940
+
+Function11940: ; 11940
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 1, 5
+ call Function1189c
+ jr nz, .asm_1194e
+ hlcoord 1, 3
+
+.asm_1194e
+ lb bc, 1, 18
+ call ClearBox
+ ld hl, wc6d0
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld hl, wc6d8
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call PlaceString
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 11968
+
+Function11968: ; 11968
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, $0
+ ld hl, Jumptable_11977
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11977
+
+
+Jumptable_11977: ; 11977 (4:5977)
+ dw Function1197b
+ dw Function119a1
+
+
+Function1197b: ; 1197b (4:597b)
+ lb de, $50, $18
+ call Function1189c
+ jr nz, .asm_11985
+ ld d, $40
+.asm_11985
+ ld a, $2
+ call Function3b2a
+ ld a, c
+ ld [wc6d5], a
+ ld a, b
+ ld [wc6d6], a
+ ld hl, $1
+ add hl, bc
+ ld a, [hl]
+ ld hl, $e
+ add hl, bc
+ ld [hl], a
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function119a1: ; 119a1 (4:59a1)
+ ld hl, hJoyPressed ; $ffa7
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .a
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .b
+ ld a, [hl]
+ and START
+ jr nz, .start
+ ld a, [hl]
+ and SELECT
+ jr nz, .select
+ ret
+
+.a
+ call Function11a0b
+ cp $1
+ jr z, .select
+ cp $2
+ jr z, .b
+ cp $3
+ jr z, .asm_119eb
+ call Function11c11
+ call Function11b14
+ ret nc
+
+.start
+ ld hl, wc6d5
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld hl, $c
+ add hl, bc
+ ld [hl], $8
+ ld hl, $d
+ add hl, bc
+ ld [hl], $4
+ call Function1189c
+ ret nz
+ inc [hl]
+ ret
+
+.b
+ call Function11bbc
+ ret
+
+.asm_119eb
+ call Function11bf7
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+.select
+ ld hl, wcf64
+ ld a, [hl]
+ xor 1
+ ld [hl], a
+ jr z, .asm_11a04
+ ld de, NameInputLower
+ call Function118ca
+ ret
+
+.asm_11a04
+ ld de, NameInputUpper
+ call Function118ca
+ ret
+
+Function11a0b: ; 11a0b (4:5a0b)
+ ld hl, wc6d5
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+
+Function11a11: ; 11a11 (4:5a11)
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ push bc
+ ld b, $4
+ call Function1189c
+ jr nz, .asm_11a1f
+ inc b
+.asm_11a1f
+ cp b
+ pop bc
+ jr nz, .asm_11a39
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ cp $3
+ jr c, .asm_11a33
+ cp $6
+ jr c, .asm_11a36
+ ld a, $3
+ ret
+.asm_11a33
+ ld a, $1
+ ret
+.asm_11a36
+ ld a, $2
+ ret
+.asm_11a39
+ xor a
+ ret
+
+Function11a3b: ; 11a3b (4:5a3b)
+ call Function11a8b
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ swap e
+ ld hl, $7
+ add hl, bc
+ ld [hl], e
+ ld d, $4
+ call Function1189c
+ jr nz, .asm_11a53
+ inc d
+.asm_11a53
+ cp d
+ ld de, Unknown_11a79
+ ld a, $0
+ jr nz, .asm_11a60
+ ld de, Unknown_11a82
+ ld a, $1
+.asm_11a60
+ ld hl, $e
+ add hl, bc
+ add [hl]
+ ld hl, $1
+ add hl, bc
+ ld [hl], a
+ ld hl, $c
+ add hl, bc
+ ld l, [hl]
+ ld h, $0
+ add hl, de
+ ld a, [hl]
+ ld hl, $6
+ add hl, bc
+ ld [hl], a
+ ret
+; 11a79 (4:5a79)
+
+Unknown_11a79: ; 11a79
+ db $00, $10, $20, $30, $40, $50, $60, $70, $80
+Unknown_11a82: ; 11a82
+ db $00, $00, $00, $30, $30, $30, $60, $60, $60
+; 11a8b
+
+Function11a8b: ; 11a8b (4:5a8b)
+ ld hl, hJoyLast
+ ld a, [hl]
+ and D_UP
+ jr nz, .up
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .down
+ ld a, [hl]
+ and D_LEFT
+ jr nz, .left
+ ld a, [hl]
+ and D_RIGHT
+ jr nz, .right
+ ret
+.right
+ call Function11a11
+ and a
+ jr nz, .asm_11ab7
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ cp $8
+ jr nc, .asm_11ab4
+ inc [hl]
+ ret
+.asm_11ab4
+ ld [hl], $0
+ ret
+.asm_11ab7
+ cp $3
+ jr nz, .asm_11abc
+ xor a
+.asm_11abc
+ ld e, a
+ add a
+ add e
+ ld hl, $c
+ add hl, bc
+ ld [hl], a
+ ret
+.left
+ call Function11a11
+ and a
+ jr nz, .asm_11ad8
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_11ad5
+ dec [hl]
+ ret
+.asm_11ad5
+ ld [hl], $8
+ ret
+.asm_11ad8
+ cp $1
+ jr nz, .asm_11ade
+ ld a, $4
+.asm_11ade
+rept 2
+ dec a
+endr
+ ld e, a
+ add a
+ add e
+ ld hl, $c
+ add hl, bc
+ ld [hl], a
+ ret
+.down
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ call Function1189c
+ jr nz, .asm_11af9
+ cp $5
+ jr nc, .asm_11aff
+ inc [hl]
+ ret
+.asm_11af9
+ cp $4
+ jr nc, .asm_11aff
+ inc [hl]
+ ret
+.asm_11aff
+ ld [hl], $0
+ ret
+.up
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_11b0c
+ dec [hl]
+ ret
+.asm_11b0c
+ ld [hl], $4
+ call Function1189c
+ ret nz
+ inc [hl]
+ ret
+
+Function11b14: ; 11b14 (4:5b14)
+ ld a, [wc6d7]
+
+Function11b17: ; 11b17 (4:5b17)
+ ld a, [wc6d3]
+ ld c, a
+ ld a, [wc6d2]
+ cp c
+ ret nc
+
+ ld a, [wc6d7]
+
+Function11b23: ; 11b23
+ call Function11bd0
+ ld [hl], a
+
+Function11b27: ; 11b27
+ ld hl, wc6d2
+ inc [hl]
+ call Function11bd0
+ ld a, [hl]
+ cp $50
+ jr z, .asm_11b37
+ ld [hl], $f2
+ and a
+ ret
+.asm_11b37
+ scf
+ ret
+; 11b39 (4:5b39)
+
+Function11b39: ; 11b39
+ ld a, [wc6d2]
+ and a
+ ret z
+ push hl
+ ld hl, wc6d2
+ dec [hl]
+ call Function11bd0
+ ld c, [hl]
+ pop hl
+
+.asm_11b48
+ ld a, [hli]
+ cp $ff
+ jr z, Function11b27
+ cp c
+ jr z, .asm_11b53
+ inc hl
+ jr .asm_11b48
+
+.asm_11b53
+ ld a, [hl]
+ jr Function11b23
+; 11b56
+
+Dakutens: ; Dummied out
+ db "かが", "きぎ", "くぐ", "けげ", "こご"
+ db "さざ", "しじ", "すず", "せぜ", "そぞ"
+ db "ただ", "ちぢ", "つづ", "てで", "とど"
+ db "はば", "ひび", "ふぶ", "へべ", "ほぼ"
+ db "カガ", "キギ", "クグ", "ケゲ", "コゴ"
+ db "サザ", "シジ", "スズ", "セゼ", "ソゾ"
+ db "タダ", "チヂ", "ツヅ", "テデ", "トド"
+ db "ハバ", "ヒビ", "フブ", "へべ", "ホボ"
+ db $ff
+
+Handakutens: ; Dummied out
+ db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ"
+ db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
+ db $ff
+; 11bbc
+
+Function11bbc: ; 11bbc (4:5bbc)
+ ld hl, wc6d2
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ call Function11bd0
+ ld [hl], $f2
+ inc hl
+ ld a, [hl]
+ cp $f2
+ ret nz
+ ld [hl], $eb
+ ret
+
+Function11bd0: ; 11bd0 (4:5bd0)
+ push af
+ ld hl, wc6d0
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wc6d2]
+ ld e, a
+ ld d, 0
+ add hl, de
+ pop af
+ ret
+; 11be0
+
+Function11be0: ; 11be0
+; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0
+ ld hl, wc6d0
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld [hl], "·"
+ inc hl
+ ld a, [wc6d3]
+ dec a
+ ld c, a
+ ld a, "→"
+.loop
+ ld [hli], a
+ dec c
+ jr nz, .loop
+ ld [hl], "@"
+ ret
+; 11bf7
+
+
+Function11bf7: ; 11bf7 (4:5bf7)
+ ld hl, wc6d0
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wc6d3]
+ ld c, a
+.asm_11c01
+ ld a, [hl]
+ cp $eb
+ jr z, .asm_11c0a
+ cp $f2
+ jr nz, .asm_11c0c
+.asm_11c0a
+ ld [hl], $50
+.asm_11c0c
+ inc hl
+ dec c
+ jr nz, .asm_11c01
+ ret
+
+Function11c11: ; 11c11 (4:5c11)
+ ld hl, wc6d5
+ ld c, [hl]
+ inc hl
+ ld b, [hl]
+ ld hl, $6
+ add hl, bc
+ ld a, [hl]
+ ld hl, $4
+ add hl, bc
+ add [hl]
+ sub $8
+ srl a
+ srl a
+ srl a
+ ld e, a
+ ld hl, $7
+ add hl, bc
+ ld a, [hl]
+ ld hl, $5
+ add hl, bc
+ add [hl]
+ sub $10
+ srl a
+ srl a
+ srl a
+ ld d, a
+ hlcoord 0, 0
+ ld bc, $14
+.asm_11c43
+ ld a, d
+ and a
+ jr z, .asm_11c4b
+ add hl, bc
+ dec d
+ jr .asm_11c43
+.asm_11c4b
+ add hl, de
+ ld a, [hl]
+ ld [wc6d7], a
+ ret
+
+
+Function11c51: ; 11c51
+ call ClearSprites
+ callab Function8cf53
+ call LoadStandardFont
+ call LoadFontsExtra
+
+ ld de, GFX_11e65
+ ld hl, VTiles1 tile $6b
+ lb bc, BANK(GFX_11e65), 1
+ call Get1bpp
+
+ ld de, GFX_11e6d
+ ld hl, VTiles1 tile $72
+ lb bc, BANK(GFX_11e6d), 1
+ call Get1bpp
+
+ ld de, VTiles2 tile $60
+ ld hl, GFX_11cb7
+ ld bc, $10
+ ld a, BANK(GFX_11cb7)
+ call FarCopyBytes
+
+ ld de, VTiles0 tile $7e
+ ld hl, GFX_11cc7
+ ld bc, $20
+ ld a, BANK(GFX_11cc7)
+ call FarCopyBytes
+
+ ld a, $5
+ ld hl, wc312
+ ld [hli], a
+ ld [hl], $7e
+ xor a
+ ld [hSCY], a
+ ld [wc3bf], a
+ ld [hSCX], a
+ ld [wc3c0], a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [hBGMapMode], a
+ ld [wc6d2], a
+ ld a, $7
+ ld [hWX], a
+ ret
+; 11cb7
+
+GFX_11cb7: ; 11cb7
+INCBIN "gfx/unknown/011cb7.2bpp"
+; 11cc7
+
+GFX_11cc7: ; 11cc7
+INCBIN "gfx/unknown/011cc7.2bpp"
+; 11ce7
+
+NameInputLower:
+ db "a b c d e f g h i"
+ db "j k l m n o p q r"
+ db "s t u v w x y z "
+ db "× ( ) : ; [ ] <PK> <MN>"
+ db "UPPER DEL END "
+BoxNameInputLower:
+ db "a b c d e f g h i"
+ db "j k l m n o p q r"
+ db "s t u v w x y z "
+ db "é 'd 'l 'm 'r 's 't 'v 0"
+ db "1 2 3 4 5 6 7 8 9"
+ db "UPPER DEL END "
+NameInputUpper: ; Unreferenced?
+ db "A B C D E F G H I"
+ db "J K L M N O P Q R"
+ db "S T U V W X Y Z "
+ db "- ? ! / . , "
+ db "lower DEL END "
+BoxNameInputUpper:
+ db "A B C D E F G H I"
+ db "J K L M N O P Q R"
+ db "S T U V W X Y Z "
+ db "× ( ) : ; [ ] <PK> <MN>"
+ db "- ? ! ♂ ♀ / . , &"
+ db "lower DEL END "
+; 11e5d
+
+GFX_11e5d: ; ????
+INCBIN "gfx/unknown/011e5d.2bpp"
+; 11e6d
+
+GFX_11e65:
+INCBIN "gfx/unknown/011e65.2bpp"
+; 11e6d
+
+GFX_11e6d: ; 11e6d
+INCBIN "gfx/unknown/011e6d.2bpp"
+; 11e75
diff --git a/engine/pack.asm b/engine/pack.asm
index b753d6ade..2ba9c9d3a 100644
--- a/engine/pack.asm
+++ b/engine/pack.asm
@@ -44,7 +44,7 @@ Jumptable_10030: ; 10030 (4:4030)
Function10046: ; 10046 (4:4046)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function10955
ld a, [wcf64]
ld [wJumptableIndex], a
@@ -67,10 +67,10 @@ Function10067: ; 10067 (4:4067)
ld [wMenuCursorBuffer], a
ld a, [wd0df]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0df], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ld b, $7
ld c, $3
@@ -95,10 +95,10 @@ Function100a6: ; 100a6 (4:40a6)
ld [wMenuCursorBuffer], a
ld a, [wd0e0]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0e0], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ld b, $3
ld c, $7
@@ -113,7 +113,7 @@ Function100d3: ; 100d3 (4:40d3)
call ClearPocketList
call DrawPocketName
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call WaitBGMap_DrawPackGFX
call Function10866
ret
@@ -141,7 +141,7 @@ Function100e8: ; 100e8 (4:40e8)
call ExitMenu
pop hl
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function1086b
jp [hl]
@@ -203,7 +203,7 @@ Function10159: ; 10159
ld [Options], a
.asm_10179
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function10955
call WaitBGMap_DrawPackGFX
call Function10a40
@@ -225,10 +225,10 @@ Function10198: ; 10198 (4:4198)
ld [wMenuCursorBuffer], a
ld a, [wd0e1]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0e1], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ld b, $1
ld c, $5
@@ -301,7 +301,7 @@ Function101c5: ; 101c5 (4:41c5)
call ExitMenu
pop hl
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function1086b
jp [hl]
@@ -478,7 +478,7 @@ Function10311: ; 10311
jr z, .NoPokemon
call DoItemEffect
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function10955
call WaitBGMap_DrawPackGFX
call Function10a40
@@ -594,7 +594,7 @@ Function103fd: ; 103fd
ld [Options], a
ld a, $8
ld [PartyMenuActionText], a
- call WhiteBGMap
+ call ClearBGPalettes
callba Function5004f
callba Function50405
callba Function503e0
@@ -634,7 +634,7 @@ Function103fd: ; 103fd
pop af
ld [Options], a
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function10955
call WaitBGMap_DrawPackGFX
call Function10a40
@@ -702,7 +702,7 @@ Jumptable_104c3: ; 104c3 (4:44c3)
Function104d9: ; 104d9 (4:44d9)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function10955
ld a, [wcf64]
ld [wJumptableIndex], a
@@ -725,10 +725,10 @@ Function104fa: ; 104fa (4:44fa)
ld [wMenuCursorBuffer], a
ld a, [wd0df]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0df], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ld b, $7
ld c, $3
@@ -753,10 +753,10 @@ Function10539: ; 10539 (4:4539)
ld [wMenuCursorBuffer], a
ld a, [wd0e0]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0e0], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ld b, $3
ld c, $7
@@ -771,7 +771,7 @@ Function10566: ; 10566 (4:4566)
call ClearPocketList
call DrawPocketName
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call WaitBGMap_DrawPackGFX
ld hl, UnknownText_0x10b0c
call Function10889
@@ -804,10 +804,10 @@ Function105a6: ; 105a6 (4:45a6)
ld [wMenuCursorBuffer], a
ld a, [wd0e1]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0e1], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ld b, $1
ld c, $5
@@ -836,7 +836,7 @@ Function105dc: ; 105dc (4:45dc)
call ExitMenu
pop hl
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function1086b
jp [hl]
@@ -915,14 +915,14 @@ Function105dc: ; 105dc (4:45dc)
and a
jr nz, .asm_1067e
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function10955
call WaitBGMap_DrawPackGFX
call Function10a40
ret
.asm_1066c: ; 1066c (4:466c)
- call WhiteBGMap
+ call ClearBGPalettes
jr .asm_1067e
.BattleOnly: ; 10671 (4:4671)
@@ -1010,10 +1010,10 @@ Jumptable_106d1: ; 106d1 (4:46d1)
ld [wMenuCursorBuffer], a
ld a, [wd0df]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0df], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wItemsPocketCursor], a
ret
@@ -1026,10 +1026,10 @@ Jumptable_106d1: ; 106d1 (4:46d1)
ld [wMenuCursorBuffer], a
ld a, [wd0e0]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0e0], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wKeyItemsPocketCursor], a
ret
@@ -1051,10 +1051,10 @@ Jumptable_106d1: ; 106d1 (4:46d1)
ld [wMenuCursorBuffer], a
ld a, [wd0e1]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0e1], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wBallsPocketCursor], a
ret
@@ -1170,9 +1170,9 @@ MenuData2_0x107f7: ; 0x107f7
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, OTPartyMons
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10807
Function10807: ; 10807 (4:4807)
@@ -1194,9 +1194,9 @@ MenuData2_0x10816: ; 0x10816
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, OTPartyMon1Exp + 2
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10826
Function10826: ; 10826 (4:4826)
@@ -1227,9 +1227,9 @@ MenuData2_0x1084a: ; 0x1084a
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, OTPartyMon1CaughtGender
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 1085a
Function1085a: ; 1085a (4:485a)
@@ -1237,7 +1237,7 @@ Function1085a: ; 1085a (4:485a)
call InitPocket
pop hl
call CopyMenuDataHeader
- call Function350c
+ call HandleScrollingMenu
ret
Function10866: ; 10866 (4:4866)
@@ -1401,17 +1401,17 @@ Function108d4: ; 108d4 (4:48d4)
Function10955: ; 10955
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
ld hl, PackMenuGFX
ld de, VTiles2
- ld bc, $0600
+ ld bc, $60 tiles
ld a, BANK(PackMenuGFX)
call FarCopyBytes
hlcoord 0, 1
- ld bc, 220
+ ld bc, 11 * SCREEN_WIDTH
ld a, $24
call ByteFill
hlcoord 5, 1
@@ -1419,12 +1419,12 @@ Function10955: ; 10955
call ClearBox
hlcoord 0, 0
ld a, $28
- ld c, $14
-.asm_1098a
+ ld c, SCREEN_WIDTH
+.loop
ld [hli], a
inc a
dec c
- jr nz, .asm_1098a
+ jr nz, .loop
call DrawPocketName
call Function109a5
hlcoord 0, 12
@@ -1538,9 +1538,9 @@ MenuData2_0x10a57: ; 0x10a57
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumItems
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10a67
MenuDataHeader_0x10a67: ; 0x10a67
@@ -1556,9 +1556,9 @@ MenuData2_0x10a6f: ; 0x10a6f
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumItems
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10a7f
MenuDataHeader_0x10a7f: ; 0x10a7f
@@ -1574,9 +1574,9 @@ MenuData2_0x10a87: ; 0x10a87
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, NumKeyItems
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10a97
MenuDataHeader_0x10a97: ; 0x10a97
@@ -1592,9 +1592,9 @@ MenuData2_0x10a9f: ; 0x10a9f
db 5, 8 ; rows, columns
db 1 ; horizontal spacing
dbw 0, NumKeyItems
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10aaf
MenuDataHeader_0x10aaf: ; 0x10aaf
@@ -1610,9 +1610,9 @@ MenuData2_0x10ab7: ; 0x10ab7
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumBalls
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10ac7
MenuDataHeader_0x10ac7: ; 0x10ac7
@@ -1628,9 +1628,9 @@ MenuData2_0x10acf: ; 0x10acf
db 5, 8 ; rows, columns
db 2 ; horizontal spacing
dbw 0, NumBalls
- dbw BANK(PlaceMenuItemName), PlaceMenuItemName
- dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity
- dbw BANK(Function244c3), Function244c3
+ dba PlaceMenuItemName
+ dba PlaceMenuItemQuantity
+ dba Function244c3
; 10adf
UnknownText_0x10adf: ; 0x10adf
diff --git a/engine/party_menu.asm b/engine/party_menu.asm
new file mode 100644
index 000000000..4d50ee8e4
--- /dev/null
+++ b/engine/party_menu.asm
@@ -0,0 +1,944 @@
+SelectMonFromParty: ; 50000
+ call DisableSpriteUpdates
+ xor a
+ ld [PartyMenuActionText], a
+ call ClearBGPalettes
+ call Function5003f
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+ call PartyMenuSelect
+ call Function2b74
+ ret
+; 5001d
+
+
+Function5001d: ; 5001d
+ ld a, b
+ ld [PartyMenuActionText], a
+ call DisableSpriteUpdates
+ call ClearBGPalettes
+ call Function5003f
+ call WaitBGMap
+ ld b, $a
+ call GetSGBLayout
+ call SetPalettes
+ call DelayFrame
+ call PartyMenuSelect
+ call Function2b74
+ ret
+; 5003f
+
+Function5003f: ; 5003f
+ call Function5004f
+ call Function50405
+ call Function503e0
+ call WritePartyMenuTilemap
+ call PrintPartyMenuText
+ ret
+; 5004f
+
+Function5004f: ; 5004f
+ call LoadFontsBattleExtra
+ callab Function8ad1 ; engine/color.asm
+ callab InefficientlyClear121BytesAtwc300
+ ret
+; 5005f
+
+
+WritePartyMenuTilemap: ; 0x5005f
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl] ; Disable text delay
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ ld a, " "
+ call ByteFill ; blank the tilemap
+ call GetPartyMenuTilemapPointers ; This reads from a pointer table???
+.loop
+ ld a, [hli]
+ cp $ff
+ jr z, .end ; 0x5007a $8
+ push hl
+ ld hl, .Jumptable
+ rst JumpTable
+ pop hl
+ jr .loop ; 0x50082 $f3
+.end
+ pop af
+ ld [Options], a
+ ret
+; 0x50089
+
+.Jumptable: ; 50089
+ dw PlacePartyNicknames
+ dw PlacePartyHPBar
+ dw PlacePartyMenuHPDigits
+ dw PlacePartyMonLevel
+ dw PlacePartyMonStatus
+ dw PlacePartyMonTMHMCompatibility
+ dw PlacePartyMonEvoStoneCompatibility
+ dw PlacePartyMonGender
+ dw PlacePartyMonMobileBattleSelection
+; 5009b
+
+PlacePartyNicknames: ; 5009b
+ hlcoord 3, 1
+ ld a, [PartyCount]
+ and a
+ jr z, .end
+ ld c, a
+ ld b, $0
+.loop
+ push bc
+ push hl
+ push hl
+ ld hl, PartyMonNicknames
+ ld a, b
+ call GetNick
+ pop hl
+ call PlaceString
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+
+.end
+rept 2
+ dec hl
+endr
+ ld de, .CANCEL
+ call PlaceString
+ ret
+; 500c8
+
+.CANCEL: ; 500c8
+ db "CANCEL@"
+; 500cf
+
+
+PlacePartyHPBar: ; 500cf
+ xor a
+ ld [wcda9], a
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ hlcoord 11, 2
+.loop
+ push bc
+ push hl
+ call PartyMenuCheckEgg
+ jr z, .skip
+ push hl
+ call PlacePartymonHPBar
+ pop hl
+ ld d, $6
+ ld b, $0
+ call DrawBattleHPBar
+ ld hl, wcd9b
+ ld a, [wcda9]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ call SetHPPal
+ ld b, $fc
+ call GetSGBLayout
+
+.skip
+ ld hl, wcda9
+ inc [hl]
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ld b, $a
+ call GetSGBLayout
+ ret
+; 50117
+
+PlacePartymonHPBar: ; 50117
+ ld a, b
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1HP
+ call AddNTimes
+ ld a, [hli]
+ or [hl]
+ jr nz, .not_fainted
+ xor a
+ ld e, a
+ ld c, a
+ ret
+
+.not_fainted
+ dec hl
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld e, a
+ predef DrawPartyMenuHPBar
+ ret
+; 50138
+
+PlacePartyMenuHPDigits: ; 50138
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, $0
+ hlcoord 13, 1
+.loop
+ push bc
+ push hl
+ call PartyMenuCheckEgg
+ jr z, .next
+ push hl
+ ld a, b
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1HP
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ push de
+ lb bc, 2, 3
+ call PrintNum
+ pop de
+ ld a, "/"
+ ld [hli], a
+rept 2
+ inc de
+endr
+ lb bc, 2, 3
+ call PrintNum
+
+.next
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 50176
+
+PlacePartyMonLevel: ; 50176
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, 0
+ hlcoord 8, 2
+.loop
+ push bc
+ push hl
+ call PartyMenuCheckEgg
+ jr z, .next
+ push hl
+ ld a, b
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1Level
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ ld a, [de]
+ cp 100 ; This is distinct from MAX_LEVEL.
+ jr nc, .ThreeDigits
+ ld a, "<LV>"
+ ld [hli], a
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 2
+ ; jr .okay
+.ThreeDigits
+ lb bc, PRINTNUM_RIGHTALIGN | 1, 3
+; .okay
+ call PrintNum
+
+.next
+ pop hl
+ ld de, SCREEN_WIDTH * 2
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 501b2
+
+PlacePartyMonStatus: ; 501b2
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, 0
+ hlcoord 5, 2
+.loop
+ push bc
+ push hl
+ call PartyMenuCheckEgg
+ jr z, .next
+ push hl
+ ld a, b
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1Status
+ call AddNTimes
+ ld e, l
+ ld d, h
+ pop hl
+ call PlaceStatusString
+
+.next
+ pop hl
+ ld de, SCREEN_WIDTH * 2
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 501e0
+
+PlacePartyMonTMHMCompatibility: ; 501e0
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, 0
+ hlcoord 12, 2
+.loop
+ push bc
+ push hl
+ call PartyMenuCheckEgg
+ jr z, .next
+ push hl
+ ld hl, PartySpecies
+ ld e, b
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ ld [CurPartySpecies], a
+ predef CanLearnTMHMMove
+ pop hl
+ call .PlaceAbleNotAble
+ call PlaceString
+
+.next
+ pop hl
+ ld de, SCREEN_WIDTH * 2
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 50215
+
+.PlaceAbleNotAble: ; 50215
+ ld a, c
+ and a
+ jr nz, .able
+ ld de, .string_not_able
+ ret
+
+.able
+ ld de, .string_able
+ ret
+; 50221
+
+.string_able: ; 50221
+ db "ABLE@"
+; 50226
+
+.string_not_able: ; 50226
+ db "NOT ABLE@"
+; 5022f
+
+
+PlacePartyMonEvoStoneCompatibility: ; 5022f
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, 0
+ hlcoord 12, 2
+.loop
+ push bc
+ push hl
+ call PartyMenuCheckEgg
+ jr z, .next
+ push hl
+ ld a, b
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld hl, PartyMon1Species
+ call AddNTimes
+ ld a, [hl]
+ dec a
+ ld e, a
+ ld d, 0
+ ld hl, EvosAttacksPointers
+rept 2
+ add hl, de
+endr
+ call .DetermineCompatibility
+ pop hl
+ call PlaceString
+
+.next
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 50268
+
+.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
+ ld hl, StringBuffer1
+.loop2
+ ld a, [hli]
+ and a
+ jr z, .nope
+rept 2
+ inc hl
+endr
+ cp EVOLVE_ITEM
+ jr nz, .loop2
+rept 2
+ dec hl
+endr
+ ld a, [CurItem]
+ cp [hl]
+rept 2
+ inc hl
+endr
+ jr nz, .loop2
+ ld de, .string_able
+ ret
+
+.nope
+ ld de, .string_not_able
+ ret
+; 502a3
+
+.string_able: ; 502a3
+ db "ABLE@"
+; 502a8
+.string_not_able: ; 502a8
+ db "NOT ABLE@"
+; 502b1
+
+
+PlacePartyMonGender: ; 502b1
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, 0
+ hlcoord 12, 2
+.loop
+ push bc
+ push hl
+ call PartyMenuCheckEgg
+ jr z, .next
+ ld [CurPartySpecies], a
+ push hl
+ ld a, b
+ ld [CurPartyMon], a
+ xor a
+ ld [MonType], a
+ call GetGender
+ ld de, .unknown
+ jr c, .got_gender
+ ld de, .male
+ jr nz, .got_gender
+ ld de, .female
+
+.got_gender
+ pop hl
+ call PlaceString
+
+.next
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ret
+; 502ee
+
+.male: ; 502ee
+ db "♂…MALE@"
+; 502f5
+
+.female: ; 502f5
+ db "♀…FEMALE@"
+; 502fe
+
+.unknown: ; 502fe
+ db "…UNKNOWN@"
+; 50307
+
+
+PlacePartyMonMobileBattleSelection: ; 50307
+ ld a, [PartyCount]
+ and a
+ ret z
+ ld c, a
+ ld b, 0
+ hlcoord 12, 1
+.loop
+ push bc
+ push hl
+ ld de, .String_Sanka_Shinai
+ call PlaceString
+ pop hl
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ pop bc
+ inc b
+ dec c
+ jr nz, .loop
+ ld a, l
+ ld e, PKMN_NAME_LENGTH
+ sub e
+ ld l, a
+ ld a, h
+ sbc $0
+ ld h, a
+ ld de, .String_Kettei_Yameru
+ call PlaceString
+ ld b, $3
+ ld c, $0
+ ld hl, wd002
+ ld a, [hl]
+.loop2
+ push hl
+ push bc
+ hlcoord 12, 1
+.loop3
+ and a
+ jr z, .done
+ ld de, 2 * SCREEN_WIDTH
+ add hl, de
+ dec a
+ jr .loop3
+
+.done
+ ld de, .String_Banme
+ push hl
+ call PlaceString
+ pop hl
+ pop bc
+ push bc
+ push hl
+ ld a, c
+ ld hl, .Strings_1_2_3
+ call GetNthString
+ ld d, h
+ ld e, l
+ pop hl
+ call PlaceString
+ pop bc
+ pop hl
+ inc hl
+ ld a, [hl]
+ inc c
+ dec b
+ ret z
+ jr .loop2
+; 5036b
+
+.String_Banme: ; 5036b
+ db " ばんめ @" ; Place
+; 50372
+.String_Sanka_Shinai: ; 50372
+ db "さんかしない@" ; Cancel
+; 50379
+.String_Kettei_Yameru: ; 50379
+ db "けってい やめる@" ; Quit
+; 50383
+.Strings_1_2_3: ; 50383
+ db "1@", "2@", "3@" ; 1st, 2nd, 3rd
+; 50389
+
+
+PartyMenuCheckEgg: ; 50389
+ ld a, PartySpecies % $100
+ add b
+ ld e, a
+ ld a, PartySpecies / $100
+ adc 0
+ ld d, a
+ ld a, [de]
+ cp EGG
+ ret
+; 50396
+
+GetPartyMenuTilemapPointers: ; 50396
+ ld a, [PartyMenuActionText]
+ and $f0
+ jr nz, .skip
+ ld a, [PartyMenuActionText]
+ and $f
+ ld e, a
+ ld d, 0
+ ld hl, .Pointers
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ret
+
+.skip
+ ld hl, .Default
+ ret
+; 503b2
+
+.Pointers: ; 503b2
+ dw .Default
+ dw .Default
+ dw .Default
+ dw .TMHM
+ dw .Default
+ dw .EvoStone
+ dw .Gender
+ dw .Gender
+ dw .Default
+ dw .Mobile
+; 503c6
+
+.Default: db 0, 1, 2, 3, 4, $ff
+.TMHM: db 0, 5, 3, 4, $ff
+.EvoStone: db 0, 6, 3, 4, $ff
+.Gender: db 0, 7, 3, 4, $ff
+.Mobile: db 0, 8, 3, 4, $ff
+; 503e0
+
+
+Function503e0: ; 503e0
+ ld hl, PartyCount
+ ld a, [hli]
+ and a
+ ret z
+ ld c, a
+ xor a
+ ld [hObjectStructIndexBuffer], a
+.asm_503ea
+ push bc
+ push hl
+ ld hl, Function8e83f
+ ld a, BANK(Function8e83f)
+ ld e, $0
+ rst FarCall
+ ld a, [hObjectStructIndexBuffer]
+ inc a
+ ld [hObjectStructIndexBuffer], a
+ pop hl
+ pop bc
+ dec c
+ jr nz, .asm_503ea
+ callab Function8cf69
+ ret
+; 50405
+
+Function50405: ; 50405
+ xor a
+ ld [wd0e3], a
+ ld de, Unknown_5044f
+ call Function1bb1
+ ld a, [PartyCount]
+ inc a
+ ld [wcfa3], a
+ dec a
+ ld b, a
+ ld a, [wd0d8]
+ and a
+ jr z, .asm_50422
+ inc b
+ cp b
+ jr c, .asm_50424
+
+.asm_50422
+ ld a, $1
+
+.asm_50424
+ ld [MenuSelection2], a
+ ld a, $3
+ ld [wcfa8], a
+ ret
+; 5042d
+
+Function5042d: ; 0x5042d
+ ld de, Unknown_5044f
+ call Function1bb1
+ ld a, [PartyCount]
+ ld [wcfa3], a
+ ld b, a
+ ld a, [wd0d8]
+ and a
+ jr z, .asm_50444
+ inc b
+ cp b
+ jr c, .asm_50446
+.asm_50444
+ ld a, $1
+.asm_50446
+ ld [MenuSelection2], a
+ ld a, $3
+ ld [wcfa8], a
+ ret
+; 5044f (14:444f)
+
+Unknown_5044f: ; 5044f
+; cursor y
+; cursor x
+; list length
+; ?
+; bit 6: animate sprites bit 5: wrap around
+; ?
+; distance between items (hi: y, lo: x)
+; allowed buttons (mask)
+ db $01, $00, $00, $01, $60, $00, $20, $00
+; 50457
+
+PartyMenuSelect: ; 0x50457
+; sets carry if exitted menu.
+ call Function1bc9
+ call Function1bee
+ ld a, [PartyCount]
+ inc a
+ ld b, a
+ ld a, [MenuSelection2] ; menu selection?
+ cp b
+ jr z, .exitmenu ; CANCEL
+ ld [wd0d8], a
+ ld a, [hJoyLast]
+ ld b, a
+ bit 1, b
+ jr nz, .exitmenu ; B button?
+ ld a, [MenuSelection2]
+ 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
+
+.exitmenu
+ ld de, SFX_READ_TEXT_2
+ call PlaySFX
+ call WaitSFX
+ scf
+ ret
+; 0x5049a
+
+
+PrintPartyMenuText: ; 5049a
+ hlcoord 0, 14
+ lb bc, 2, 18
+ call TextBox
+ ld a, [PartyCount]
+ and a
+ jr nz, .haspokemon
+ ld de, YouHaveNoPKMNString
+ jr .gotstring
+.haspokemon ; 504ae
+ ld a, [PartyMenuActionText]
+ and $f ; drop high nibble
+ ld hl, PartyMenuStrings
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+.gotstring ; 504be
+ ld a, [Options]
+ push af
+ set 4, a ; disable text delay
+ ld [Options], a
+ hlcoord 1, 16 ; Coord
+ call PlaceString
+ pop af
+ ld [Options], a
+ ret
+; 0x504d2
+
+PartyMenuStrings: ; 0x504d2
+ dw ChooseAMonString
+ dw UseOnWhichPKMNString
+ dw WhichPKMNString
+ dw TeachWhichPKMNString
+ dw MoveToWhereString
+ dw UseOnWhichPKMNString
+ dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
+ dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
+ dw ToWhichPKMNString
+
+ChooseAMonString: ; 0x504e4
+ db "Choose a #MON.@"
+UseOnWhichPKMNString: ; 0x504f3
+ db "Use on which <PK><MN>?@"
+WhichPKMNString: ; 0x50504
+ db "Which <PK><MN>?@"
+TeachWhichPKMNString: ; 0x5050e
+ db "Teach which <PK><MN>?@"
+MoveToWhereString: ; 0x5051e
+ db "Move to where?@"
+ChooseAFemalePKMNString: ; 0x5052d ; UNUSED
+ db "Choose a ♀<PK><MN>.@"
+ChooseAMalePKMNString: ; 0x5053b ; UNUSED
+ db "Choose a ♂<PK><MN>.@"
+ToWhichPKMNString: ; 0x50549
+ db "To which <PK><MN>?@"
+
+YouHaveNoPKMNString: ; 0x50556
+ db "You have no <PK><MN>!@"
+
+
+Function50566: ; 50566
+ ld a, [CurPartyMon]
+ ld hl, PartyMonNicknames
+ call GetNick
+ ld a, [PartyMenuActionText]
+ and $f
+ ld hl, Unknown_5057b
+ call Function505c1
+ ret
+; 5057b
+
+Unknown_5057b: ; 5057b
+ dw UnknownText_0x50594
+ dw UnknownText_0x5059e
+ dw UnknownText_0x505a3
+ dw UnknownText_0x505a8
+ dw UnknownText_0x50599
+ dw UnknownText_0x5058f
+ dw UnknownText_0x505ad
+ dw UnknownText_0x505b2
+ dw UnknownText_0x505b7
+ dw UnknownText_0x505bc
+; 5058f
+
+UnknownText_0x5058f: ; 0x5058f
+ ; recovered @ HP!
+ text_jump UnknownText_0x1bc0a2
+ db "@"
+; 0x50594
+
+UnknownText_0x50594: ; 0x50594
+ ; 's cured of poison.
+ text_jump UnknownText_0x1bc0bb
+ db "@"
+; 0x50599
+
+UnknownText_0x50599: ; 0x50599
+ ; 's rid of paralysis.
+ text_jump UnknownText_0x1bc0d2
+ db "@"
+; 0x5059e
+
+UnknownText_0x5059e: ; 0x5059e
+ ; 's burn was healed.
+ text_jump UnknownText_0x1bc0ea
+ db "@"
+; 0x505a3
+
+UnknownText_0x505a3: ; 0x505a3
+ ; was defrosted.
+ text_jump UnknownText_0x1bc101
+ db "@"
+; 0x505a8
+
+UnknownText_0x505a8: ; 0x505a8
+ ; woke up.
+ text_jump UnknownText_0x1bc115
+ db "@"
+; 0x505ad
+
+UnknownText_0x505ad: ; 0x505ad
+ ; 's health returned.
+ text_jump UnknownText_0x1bc123
+ db "@"
+; 0x505b2
+
+UnknownText_0x505b2: ; 0x505b2
+ ; is revitalized.
+ text_jump UnknownText_0x1bc13a
+ db "@"
+; 0x505b7
+
+UnknownText_0x505b7: ; 0x505b7
+ ; grew to level @ !@ @
+ text_jump UnknownText_0x1bc14f
+ db "@"
+; 0x505bc
+
+UnknownText_0x505bc: ; 0x505bc
+ ; came to its senses.
+ text_jump UnknownText_0x1bc16e
+ db "@"
+; 0x505c1
+
+
+Function505c1: ; 505c1
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [Options]
+ push af
+ set 4, a
+ ld [Options], a
+ call PrintText
+ pop af
+ ld [Options], a
+ ret
+; 505da
diff --git a/engine/phone.asm b/engine/phone.asm
index 0ba5cf6e1..32481deaa 100644
--- a/engine/phone.asm
+++ b/engine/phone.asm
@@ -182,7 +182,7 @@ ChooseRandomCaller: ; 900bf (24:40bf)
; Sample a random number between 0 and 31.
ld c, a
call Random
- ld a, [hRandomAdd] ; $ff00+$e1
+ ld a, [hRandomAdd]
swap a
and $1f
; Compute that number modulo the number of available callers.
diff --git a/engine/phone_scripts.asm b/engine/phone_scripts.asm
index 5d8afd028..33541e224 100644
--- a/engine/phone_scripts.asm
+++ b/engine/phone_scripts.asm
@@ -3154,38 +3154,3 @@ String_be657: db "Dad@"
String_be65b: db "Sister@"
String_be662: db "Brother@"
-
-TalkToTrainerScript:: ; 0xbe66a
- faceplayer
- trainerstatus $2
- iftrue AlreadyBeatenTrainerScript
- loadtrainerdata
- playrammusic
- jump StartBattleWithMapTrainerScript
-; 0xbe675
-
-SeenByTrainerScript:: ; 0xbe675
- loadtrainerdata
- playrammusic
- showemote EMOTE_SHOCK, LAST_TALKED, 30
- callasm Function831e
- applymovement2 MovementBuffer
- writepersonxy LAST_TALKED
- faceperson PLAYER, LAST_TALKED
- jump StartBattleWithMapTrainerScript
-; 0xbe68a
-
-StartBattleWithMapTrainerScript: ; 0xbe68a
- loadfont
- trainertext $0
- closetext
- loadmovesprites
- loadtrainerdata
- startbattle
- returnafterbattle
- trainerstatus 1
- loadvar wd04d, -1
-
-AlreadyBeatenTrainerScript:
- scripttalkafter
-; 0xbe699
diff --git a/engine/pokedex.asm b/engine/pokedex.asm
index dd58e940d..8d5680ded 100644
--- a/engine/pokedex.asm
+++ b/engine/pokedex.asm
@@ -22,7 +22,7 @@ Pokedex: ; 40000
ld [hInMenu], a
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
call InitPokedex
call DelayFrame
@@ -60,7 +60,7 @@ Pokedex: ; 40000
; 40063
InitPokedex: ; 40063
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call Function414b7
@@ -209,7 +209,7 @@ Function40136: ; 40136 (10:4136)
Function4013c: ; 4013c (10:413c)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call ClearSprites
xor a
hlcoord 0, 0, AttrMap
@@ -226,7 +226,7 @@ Function4013c: ; 4013c (10:413c)
call Function41af7
call Function4074c
ld a, $5
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld a, [wc7d4]
cp $1
ld a, $4a
@@ -234,9 +234,9 @@ Function4013c: ; 4013c (10:413c)
ld a, $47
.asm_4017b
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
xor a
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
call WaitBGMap
call Function41af7
ld a, $ff
@@ -272,7 +272,7 @@ Function401ae: ; 401ae (10:41ae)
ret nc
call Function41148
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function40b0f
call Function41ad7
call Function41af7
@@ -293,9 +293,9 @@ Function401ae: ; 401ae (10:41ae)
ld a, $7
ld [wJumptableIndex], a
xor a
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld a, $a7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
call DelayFrame
ret
@@ -304,9 +304,9 @@ Function401ae: ; 401ae (10:41ae)
ld a, $5
ld [wJumptableIndex], a
xor a
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld a, $a7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
call DelayFrame
ret
@@ -320,7 +320,7 @@ Function40217: ; 40217 (10:4217)
xor a
ld [wPokedexStatus], a
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call ClearSprites
call Function41478
call Function407fd
@@ -331,7 +331,7 @@ Function40217: ; 40217 (10:4217)
call Function40ba0
call WaitBGMap
ld a, $a7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
call Function40bb1
ld [CurPartySpecies], a
ld a, $4
@@ -392,7 +392,7 @@ Function402aa: ; 402aa (10:42aa)
xor a
ld [wPokedexStatus], a
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function407fd
call Function4134f
call Function41478
@@ -487,7 +487,7 @@ Function4034f: ; 4034f
ld [wcf64], a
pop af
ld [wcf65], a
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
call Function414fb
call Function4038d
@@ -509,7 +509,7 @@ Function4038d: ; 4038d
Function4039d: ; 4039d (10:439d)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call ClearSprites
call Function4087c
call Function4134f
@@ -615,7 +615,7 @@ Function4043a: ; 4043a (10:443a)
Function40443: ; 40443 (10:4443)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call ClearSprites
call Function408f0
call Function4134f
@@ -723,7 +723,7 @@ Function40501: ; 40501
Function4050a: ; 4050a (10:450a)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
xor a
hlcoord 0, 0, AttrMap
ld bc, $168
@@ -739,11 +739,11 @@ Function4050a: ; 4050a (10:450a)
call Function41af7
call Function40962
ld a, $5
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld a, $4a
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
xor a
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
call WaitBGMap
call Function41af7
callba Function1de1d1
@@ -768,7 +768,7 @@ Function40562: ; 40562 (10:4562)
ret nc
call Function41281
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function40b0f
call Function41ad7
call Function41af7
@@ -797,9 +797,9 @@ Function40562: ; 40562 (10:4562)
ld a, $5
ld [wJumptableIndex], a
xor a
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld a, $a7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ret
Function405bd: ; 405bd (10:45bd)
@@ -838,7 +838,7 @@ Function405df: ; 405df (10:45df)
ld hl, PokedexLZ
ld de, VTiles2 tile $31
lb bc, BANK(PokedexLZ), $3a
- call Functione73
+ call DecompressRequest2bpp
.asm_4060f
ret
@@ -876,14 +876,14 @@ Function40610: ; 40610 (10:4610)
.asm_40635
push af
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
pop af
call Function40654
call Function41a58
call Function40658
callba Functionfba2e
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call DelayFrame
call DelayFrame
ret
@@ -1773,7 +1773,7 @@ String_40ee4: ; 40ee4
Function40f08: ; 40f08 (10:4f08)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
hlcoord 0, 12
ld bc, $412
call Function40ad5
@@ -1781,7 +1781,7 @@ Function40f08: ; 40f08 (10:4f08)
hlcoord 1, 14
call PlaceString
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld c, $40
call DelayFrames
ld de, SFX_CHANGE_DEX_MODE
@@ -1861,7 +1861,7 @@ Function40f84: ; 40f84
Function40fa8: ; 40fa8 (10:4fa8)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
hlcoord 9, 3
ld bc, $408
ld a, $7f
@@ -1873,7 +1873,7 @@ Function40fa8: ; 40fa8 (10:4fa8)
hlcoord 9, 6
call Function40fcd
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
Function40fcd: ; 40fcd (10:4fcd)
@@ -2363,16 +2363,16 @@ Function413fe: ; 413fe (10:53fe)
jp FillBoxWithByte
Function41401: ; 41401 (10:5401)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, Unkn1Pals
+ ld [rSVBK], a
+ ld hl, wMapPals
ld bc, $40
xor a
call ByteFill
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
Function41415: ; 41415
ld a, $ff
@@ -2487,7 +2487,7 @@ Function414b7: ; 414b7
xor a
call ByteFill
call Function414fb
- call Functione5f
+ call LoadFontsExtra
ld hl, VTiles2 tile $60
ld bc, $0200
call Function41504
@@ -2511,7 +2511,7 @@ Function414b7: ; 414b7
ret
Function414fb: ; 414fb
- call Functione51
+ call LoadStandardFont
ld hl, VTiles1
ld bc, $0800
diff --git a/engine/predef.asm b/engine/predef.asm
index 9fa26875a..6079b48a4 100644
--- a/engine/predef.asm
+++ b/engine/predef.asm
@@ -34,16 +34,16 @@ PredefPointers:: ; 856b
add_predef Predef1
add_predef HealParty
add_predef FlagPredef
- add_predef Functionc699
+ add_predef DrawPartyMenuHPBar
add_predef FillPP
add_predef TryAddMonToParty
add_predef Functionda96
add_predef SentGetPkmnIntoFromBox
add_predef SentPkmnIntoBox
add_predef GiveEgg
- add_predef Functionc6e0
+ add_predef AnimateHPBar
add_predef CalcPkmnStats
- add_predef Functione17b
+ add_predef CalcPkmnStatC
add_predef CanLearnTMHMMove
add_predef GetTMHMMove
add_predef Function28eef ; $ 10
@@ -54,8 +54,8 @@ PredefPointers:: ; 856b
add_predef UpdateEnemyHUD
add_predef StartBattle
add_predef FillInExpBar
- add_predef Function3f43d ; $18
- add_predef Function3f47c
+ add_predef GetMonBackpic ; $18
+ add_predef GetMonFrontpic
add_predef LearnLevelMoves
add_predef FillMoves
add_predef Function421e6
@@ -63,7 +63,7 @@ PredefPointers:: ; 856b
add_predef Function28f24
add_predef CopyPkmnToTempMon
add_predef ListMoves ; $20
- add_predef Function50d2e
+ add_predef PlaceNonFaintStatus
add_predef Function50cdb
add_predef Function50c50
add_predef GetGender
@@ -95,13 +95,13 @@ PredefPointers:: ; 856b
add_predef Function5108b
add_predef GetTrainerPic
add_predef DecompressPredef ; $40
- add_predef Function347d3
+ add_predef CheckTypeMatchup
add_predef ConvertMon_1to2
add_predef Functionfb877
- add_predef Functiond0000
- add_predef Function50d0a
- add_predef Functiond00a3
- add_predef Functiond008e
+ add_predef AnimateMon_Slow_Normal
+ add_predef PlaceStatusString
+ add_predef LoadMonAnimation
+ add_predef AnimateFrontpic
add_predef Functiond0669 ; $48
add_predef Functiond066e
dbw $ff, Function2d43 ; ????
diff --git a/engine/radio.asm b/engine/radio.asm
index d833b66f5..2ee550197 100644
--- a/engine/radio.asm
+++ b/engine/radio.asm
@@ -1,7 +1,7 @@
PlayRadioShow: ; b8612
; If we're already in the radio program proper, we don't need to be here.
- ld a, [wd002]
- cp 8
+ ld a, [wCurrentRadioLine]
+ cp POKE_FLUTE_RADIO
jr nc, .ok
; If Team Rocket is not occupying the radio tower, we don't need to be here.
ld a, [StatusFlags2]
@@ -12,11 +12,11 @@ PlayRadioShow: ; b8612
and a
jr nz, .ok
; Team Rocket broadcasts on all stations.
- ld a, 7
- ld [wd002], a
+ ld a, ROCKET_RADIO
+ ld [wCurrentRadioLine], a
.ok
-; Jump to the currently loaded station. The index to which we need to jump is in wd002.
- ld a, [wd002]
+; Jump to the currently loaded station. The index to which we need to jump is in wCurrentRadioLine.
+ ld a, [wCurrentRadioLine]
ld e, a
ld d, 0
ld hl, RadioJumptable
@@ -128,16 +128,16 @@ RadioJumptable: ; b863a (2e:463a)
PrintRadioLine: ; b86ea (2e:46ea)
- ld [wd003], a
- ld hl, wd00c
- ld a, [wd005]
- cp $2
+ ld [wNextRadioLine], a
+ ld hl, wRadioText
+ ld a, [wNumRadioLinesPrinted]
+ cp 2
jr nc, .print
inc hl
- ld [hl], $0
+ ld [hl], "<START>"
inc a
- ld [wd005], a
- cp $2
+ ld [wNumRadioLinesPrinted], a
+ cp 2
jr nz, .print
bccoord 1, 16
call PlaceWholeStringInBoxAtOnce
@@ -146,9 +146,9 @@ PrintRadioLine: ; b86ea (2e:46ea)
call PrintTextBoxText
.skip
ld a, RADIO_SCROLL
- ld [wd002], a
+ ld [wCurrentRadioLine], a
ld a, 100
- ld [wd004], a
+ ld [wRadioTextDelay], a
ret
; b8718 (2e:4718)
@@ -170,23 +170,23 @@ ReplacePeriodsWithSpaces: ; b8718
; b8728
RadioScroll: ; b8728 (2e:4728)
- ld hl, wd004
+ ld hl, wRadioTextDelay
ld a, [hl]
and a
jr z, .proceed
dec [hl]
ret
.proceed
- ld a, [wd003]
- ld [wd002], a
- ld a, [wd005]
+ ld a, [wNextRadioLine]
+ ld [wCurrentRadioLine], a
+ ld a, [wNumRadioLinesPrinted]
cp 1
call nz, CopyBottomLineToTopLine
jp ClearBottomLine
OaksPkmnTalk1: ; b8742 (2e:4742)
- ld a, $5
- ld [wd006], a
+ ld a, 5
+ ld [wOaksPkmnTalkSegmentCounter], a
call StartRadioStation
ld hl, UnknownText_0xb8820
ld a, OAKS_POKEMON_TALK_2
@@ -274,7 +274,7 @@ endr
ld [CurPartySpecies], a
call GetPokemonName
ld hl, StringBuffer1
- ld de, wd050
+ ld de, wOaksPkmnTalkPkmnNameBuffer
ld bc, PKMN_NAME_LENGTH
call CopyBytes
; Now that we've chosen our wild Pokemon,
@@ -290,7 +290,7 @@ endr
.overflow
pop bc
- ld a, $0
+ ld a, OAKS_POKEMON_TALK
jp PrintRadioLine
; b87f2 (2e:47f2)
@@ -361,7 +361,7 @@ UnknownText_0xb8839: ; 0xb8839
OaksPkmnTalk7: ; b883e (2e:483e)
ld a, [CurPartySpecies]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
ld hl, UnknownText_0xb884f
ld a, OAKS_POKEMON_TALK_8
@@ -517,13 +517,13 @@ endr
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [wd006]
+ ld a, [wOaksPkmnTalkSegmentCounter]
dec a
- ld [wd006], a
+ ld [wOaksPkmnTalkSegmentCounter], a
ld a, OAKS_POKEMON_TALK_4
jr nz, .ok
- ld a, $5
- ld [wd006], a
+ ld a, 5
+ ld [wOaksPkmnTalkSegmentCounter], a
ld a, OAKS_POKEMON_TALK_10
.ok
jp NextRadioLine
@@ -652,9 +652,9 @@ OaksPkmnTalk10: ; b896e (2e:496e)
ld hl, UnknownText_0xb898e
call PrintText
ld a, OAKS_POKEMON_TALK_11
- ld [wd002], a
+ ld [wCurrentRadioLine], a
ld a, 100
- ld [wd004], a
+ ld [wRadioTextDelay], a
ret
; b898e (2e:498e)
@@ -669,7 +669,7 @@ UnknownText_0xb8993: ; 0xb8993
; 0xb8994
OaksPkmnTalk11: ; b8994 (2e:4994)
- ld hl, wd004
+ ld hl, wRadioTextDelay
dec [hl]
ret nz
hlcoord 9, 14
@@ -683,7 +683,7 @@ OaksPkmnTalk11: ; b8994 (2e:4994)
; b89a9
OaksPkmnTalk12: ; b89a9 (2e:49a9)
- ld hl, wd004
+ ld hl, wRadioTextDelay
dec [hl]
ret nz
hlcoord 1, 16
@@ -697,7 +697,7 @@ OaksPkmnTalk12: ; b89a9 (2e:49a9)
; b89c6
OaksPkmnTalk13: ; b89c6 (2e:49c6)
- ld hl, wd004
+ ld hl, wRadioTextDelay
dec [hl]
ret nz
hlcoord 12, 16
@@ -711,7 +711,7 @@ OaksPkmnTalk13: ; b89c6 (2e:49c6)
; b89d7
OaksPkmnTalk14: ; b89d7 (2e:49d7)
- ld hl, wd004
+ ld hl, wRadioTextDelay
dec [hl]
ret nz
ld de, $1d
@@ -719,13 +719,13 @@ OaksPkmnTalk14: ; b89d7 (2e:49d7)
ld hl, .terminator
call PrintText
ld a, OAKS_POKEMON_TALK_4
- ld [wd003], a
+ ld [wNextRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld a, RADIO_SCROLL
- ld [wd002], a
+ ld [wCurrentRadioLine], a
ld a, 10
- ld [wd004], a
+ ld [wRadioTextDelay], a
ret
; b89ff (2e:49ff)
@@ -734,9 +734,9 @@ OaksPkmnTalk14: ; b89d7 (2e:49d7)
; 0xb8a00
PlaceRadioString: ; b8a00 (2e:4a00)
- ld [wd002], a
+ ld [wCurrentRadioLine], a
ld a, 100
- ld [wd004], a
+ ld [wRadioTextDelay], a
jp PlaceString
CopyBottomLineToTopLine: ; b8a0b (2e:4a0b)
@@ -747,11 +747,11 @@ CopyBottomLineToTopLine: ; b8a0b (2e:4a0b)
ClearBottomLine: ; b8a17 (2e:4a17)
hlcoord 1, 15
- ld bc, $12
+ ld bc, SCREEN_WIDTH - 2
ld a, " "
call ByteFill
hlcoord 1, 16
- ld bc, $12
+ ld bc, SCREEN_WIDTH - 2
ld a, " "
jp ByteFill
@@ -784,7 +784,7 @@ PokedexShow1: ; b8a46 (2e:4a46)
call StartRadioStation
.loop
call Random
- cp CELEBI
+ cp NUM_POKEMON
jr nc, .loop
ld c, a
push bc
@@ -795,7 +795,7 @@ PokedexShow1: ; b8a46 (2e:4a46)
inc c
ld a, c
ld [CurPartySpecies], a
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
call GetPokemonName
ld hl, UnknownText_0xb8b30
ld a, POKEDEX_SHOW_2
@@ -817,8 +817,8 @@ endr
push hl
call CopyDexEntryPart1
dec hl
- ld [hl], $57
- ld hl, wd26b
+ ld [hl], "<DONE>"
+ ld hl, wPokedexShowPointerAddr
call CopyRadioTextToRAM
pop hl
pop af
@@ -827,9 +827,9 @@ rept 4
inc hl
endr
ld a, l
- ld [wd26b], a
+ ld [wPokedexShowPointerAddr], a
ld a, h
- ld [wd26c], a
+ ld [wPokedexShowPointerAddr + 1], a
ld a, POKEDEX_SHOW_3
jp PrintRadioLine
@@ -864,17 +864,17 @@ PokedexShow8: ; b8acc (2e:4acc)
jp PrintRadioLine
CopyDexEntry: ; b8ad4 (2e:4ad4)
- ld a, [wd26b]
+ ld a, [wPokedexShowPointerAddr]
ld l, a
- ld a, [wd26c]
+ ld a, [wPokedexShowPointerAddr + 1]
ld h, a
- ld a, [wd26d]
+ ld a, [wPokedexShowPointerBank]
push af
push hl
call CopyDexEntryPart1
dec hl
ld [hl], "<DONE>"
- ld hl, wd26b
+ ld hl, wPokedexShowPointerAddr
call CopyRadioTextToRAM
pop hl
pop af
@@ -882,10 +882,10 @@ CopyDexEntry: ; b8ad4 (2e:4ad4)
ret
CopyDexEntryPart1: ; b8af3 (2e:4af3)
- ld de, wd26d
+ ld de, wPokedexShowPointerBank
ld bc, SCREEN_WIDTH - 1
call FarCopyBytes
- ld hl, wd26b
+ ld hl, wPokedexShowPointerAddr
ld [hl], "<START>"
inc hl
ld [hl], "<LINE>"
@@ -914,11 +914,11 @@ CopyDexEntryPart2: ; b8b11 (2e:4b11)
jr nz, .loop
.okay
ld a, l
- ld [wd26b], a
+ ld [wPokedexShowPointerAddr], a
ld a, h
- ld [wd26c], a
+ ld [wPokedexShowPointerAddr + 1], a
ld a, d
- ld [wd26d], a
+ ld [wPokedexShowPointerBank], a
ret
; b8b30 (2e:4b30)
@@ -1302,9 +1302,9 @@ PeoplePlaces4: ; People
jp NextRadioLine
; b8d3e (2e:4d3e)
-.E4Names: db WILL, BRUNO, KAREN, KOGA, CHAMPION ; $0b, $0d, $0e, $0f, $10
-.KantoLeaderNames: db BROCK, MISTY, LT_SURGE, ERIKA, JANINE, SABRINA, BLAINE, BLUE ; $11, $12, $13, $15, $1a, $23, $2e, $40
-.MiscNames: db RIVAL1, POKEMON_PROF, CAL, RIVAL2, RED ; $09, $0a, $0c, $2a, $3f
+.E4Names: db WILL, BRUNO, KAREN, KOGA, CHAMPION
+.KantoLeaderNames: db BROCK, MISTY, LT_SURGE, ERIKA, JANINE, SABRINA, BLAINE, BLUE
+.MiscNames: db RIVAL1, POKEMON_PROF, CAL, RIVAL2, RED
db -1
; b8d51
@@ -1507,11 +1507,11 @@ endr
ld l, a
call CopyRadioTextToRAM
call Random
- cp $a ; 6.25 percent
+ cp 4 percent
ld a, PLACES_AND_PEOPLE
jr c, .ok
call Random
- cp $7b ; 48 percent
+ cp 1 + 48 percent
ld a, PLACES_AND_PEOPLE_4 ; People
jr c, .ok
ld a, PLACES_AND_PEOPLE_6 ; Places
@@ -1653,41 +1653,41 @@ UnknownText_0xb8ef2: ; 0xb8ef2
PokeFluteRadio: ; b8ef7 (2e:4ef7)
call StartRadioStation
ld a, 1
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ret
UnownRadio: ; b8f00 (2e:4f00)
call StartRadioStation
ld a, 1
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ret
EvolutionRadio: ; b8f09 (2e:4f09)
call StartRadioStation
ld a, 1
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ret
BuenasPassword1: ; b8f12 (2e:4f12)
; Determine if we need to be here
- call BuenasPasswordCheckMidnight
+ call BuenasPasswordCheckTime
jp nc, .PlayPassword
- ld a, [wd005]
+ ld a, [wNumRadioLinesPrinted]
and a
jp z, BuenasPassword20
jp BuenasPassword8
.PlayPassword: ; b8f22 (2e:4f22)
call StartRadioStation
- ld a, [hBGMapMode] ; $ff00+$d4
+ ld a, [hBGMapMode]
push af
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld de, String_b9171
hlcoord 2, 9
call PlaceString
pop af
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld hl, UnknownText_0xb9182
ld a, BUENAS_PASSWORD_2
jp NextRadioLine
@@ -1698,14 +1698,14 @@ BuenasPassword2: ; b8f3f (2e:4f3f)
jp NextRadioLine
BuenasPassword3: ; b8f47 (2e:4f47)
- call BuenasPasswordCheckMidnight
+ call BuenasPasswordCheckTime
ld hl, UnknownText_0xb918c
jp c, BuenasPasswordAfterMidnight
ld a, BUENAS_PASSWORD_4
jp NextRadioLine
BuenasPassword4: ; b8f55 (2e:4f55)
- call BuenasPasswordCheckMidnight
+ call BuenasPasswordCheckTime
jp c, BuenasPassword8
ld a, [wBuenasPassword]
; If we already generated the password today, we don't need to generate a new one.
@@ -1716,7 +1716,7 @@ BuenasPassword4: ; b8f55 (2e:4f55)
.greater_than_11
call Random
and $f
- cp $b
+ cp NUM_PASSWORD_CATEGORIES
jr nc, .greater_than_11
; Store it in the high nybble of e.
swap a
@@ -1725,7 +1725,7 @@ BuenasPassword4: ; b8f55 (2e:4f55)
.greater_than_three
call Random
and $3
- cp $3
+ cp NUM_PASSWORDS_PER_CATEGORY
jr nc, .greater_than_three
; The high nybble of wBuenasPassword will now contain the password group index, and the low nybble contains the actual password.
add e
@@ -1808,7 +1808,7 @@ endr
ld l, c
add hl, de
ld a, [hl]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
ret
.RawString: ; b8fde (2e:4fde)
@@ -1874,7 +1874,7 @@ BuenasPassword6: ; b90a4 (2e:50a4)
jp NextRadioLine
BuenasPassword7: ; b90ac (2e:50ac)
- call BuenasPasswordCheckMidnight
+ call BuenasPasswordCheckTime
ld hl, UnknownText_0xb91a0
jr c, BuenasPasswordAfterMidnight
ld a, BUENAS_PASSWORD
@@ -1951,37 +1951,37 @@ BuenasPassword19: ; b9122 (2e:5122)
jp NextRadioLine
BuenasPassword20: ; b912a (2e:512a)
- ld a, [hBGMapMode] ; $ff00+$d4
+ ld a, [hBGMapMode]
push af
callba NoRadioMusic
callba NoRadioName
pop af
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld hl, WeeklyFlags
res 7, [hl]
- ld a, $4
- ld [wd002], a
+ ld a, BUENAS_PASSWORD
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
+ ld [wNumRadioLinesPrinted], a
ld hl, UnknownText_0xb91d7
ld a, BUENAS_PASSWORD_21
jp NextRadioLine
BuenasPassword21: ; b9152 (2e:5152)
- ld a, $4
- ld [wd002], a
+ ld a, BUENAS_PASSWORD
+ ld [wCurrentRadioLine], a
xor a
- ld [wd005], a
- call BuenasPasswordCheckMidnight
+ ld [wNumRadioLinesPrinted], a
+ call BuenasPasswordCheckTime
jp nc, BuenasPassword1
ld hl, UnknownText_0xb91d7
ld a, BUENAS_PASSWORD_21
jp NextRadioLine
-BuenasPasswordCheckMidnight: ; b9169 (2e:5169)
+BuenasPasswordCheckTime: ; b9169 (2e:5169)
call UpdateTime
- ld a, [hHours] ; $ff00+$94
- cp $12
+ ld a, [hHours]
+ cp 18 ; 6 PM
ret
; b9171 (2e:5171)
@@ -2100,19 +2100,19 @@ UnknownText_0xb91d7: ; 0xb91d7
CopyRadioTextToRAM: ; b91dc (2e:51dc)
ld a, [hl]
cp TX_FAR
- jp z, FarJumpText
- ld de, wd00c
+ jp z, FarCopyRadioText
+ ld de, wRadioText
ld bc, SCREEN_WIDTH * 2
jp CopyBytes
StartRadioStation: ; b91eb (2e:51eb)
- ld a, [wd005]
+ ld a, [wNumRadioLinesPrinted]
and a
ret nz
call RadioTerminator
call PrintText
ld hl, RadioChannelSongs
- ld a, [wd002]
+ ld a, [wCurrentRadioLine]
ld c, a
ld b, 0
rept 2
diff --git a/engine/radio2.asm b/engine/radio2.asm
index 039631130..1d07c904c 100644
--- a/engine/radio2.asm
+++ b/engine/radio2.asm
@@ -371,7 +371,7 @@ NoRadioStation: ; 91888 (24:5888)
ld [wc6da], a
ld [wc6db], a
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
NoRadioMusic: ; 9189d (24:589d)
@@ -383,7 +383,7 @@ NoRadioMusic: ; 9189d (24:589d)
NoRadioName: ; 918a9 (24:58a9)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
hlcoord 1, 8
lb bc, 3, 18
call ClearBox
diff --git a/engine/save.asm b/engine/save.asm
index fa9aeda12..de11a8133 100644
--- a/engine/save.asm
+++ b/engine/save.asm
@@ -1,5 +1,5 @@
Function14a1a: ; 14a1a
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
callba Function5e9a
call SpeechTextBox
call UpdateSprites
@@ -30,7 +30,7 @@ Function14a58: ; 14a58
call Function14e13
call SaveBackupPokemonData
call SaveBackupChecksum
- callba Function44725
+ callba BackupScratchmons
callba Function1406a
call ClearWRAMStateAfterSave
ret
@@ -106,8 +106,8 @@ Function14ad5: ; 14ad5
call SaveBackupPlayerData
call SaveBackupPokemonData
call SaveBackupChecksum
- callba Function44725
- callba Function106187
+ callba BackupScratchmons
+ callba BackupMobileEventIndex
callba Function1406a
call LoadBox
call ClearWRAMStateAfterSave
@@ -212,7 +212,7 @@ SaveTheGame_yesorno: ; 14baf
call LoadMenuTextBox
lb bc, 0, 7
call PlaceYesNoBox
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call WriteBackup
push af
@@ -284,8 +284,8 @@ SaveGameData_: ; 14c10
call SaveBackupPokemonData
call SaveBackupChecksum
call UpdateStackTop
- callba Function44725
- callba Function106187
+ callba BackupScratchmons
+ callba BackupMobileEventIndex
callba Function1406a
ld a, BANK(s1_be45)
call GetSRAMBank
@@ -630,8 +630,8 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5)
call LoadPlayerData
call LoadPokemonData
call LoadBox
- callba Function44745
- callba Function10619d
+ callba RestoreScratchmons
+ callba RestoreMobileEventIndex
callba Function1050ea
call ValidateBackupSave
call SaveBackupOptions
@@ -647,8 +647,8 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5)
call LoadBackupPlayerData
call LoadBackupPokemonData
call LoadBox
- callba Function44745
- callba Function10619d
+ callba RestoreScratchmons
+ callba RestoreMobileEventIndex
callba Function1050ea
call ValidateSave
call SaveOptions
diff --git a/engine/scripting.asm b/engine/scripting.asm
index 5a3895038..ae5041bc2 100644
--- a/engine/scripting.asm
+++ b/engine/scripting.asm
@@ -236,7 +236,7 @@ ENDC
dw Script_halloffame
dw Script_credits
dw Script_warpfacing
- dw Script_storetext
+ dw Script_battletowertext
dw Script_displaylocation
dw Script_trainerclassname
dw Script_name
@@ -440,14 +440,14 @@ Script_closetext: ; 0x96ed9
Script_keeptextopen: ; 0x96edc
; script command 0x55
- ld a, [$ffd8]
+ ld a, [hOAMUpdate]
push af
ld a, $1
- ld [$ffd8], a
+ ld [hOAMUpdate], a
call WaitBGMap
call KeepTextOpen
pop af
- ld [$ffd8], a
+ ld [hOAMUpdate], a
ret
; 0x96eed
@@ -515,7 +515,7 @@ Script_interpretmenu2: ; 0x96f30
ld a, [ScriptBank]
ld hl, InterpretMenu2
rst FarCall
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
jr nc, .ok
xor a
.ok
@@ -537,7 +537,7 @@ Script_interpretmenu: ; 0x96f41
ret
; 0x96f52
-Script_storetext: ; 0x96f52
+Script_battletowertext: ; 0x96f52
; script command 0xa4
; parameters:
; pointer (PointerLabelBeforeBank)
@@ -546,7 +546,7 @@ Script_storetext: ; 0x96f52
call SetUpTextBox
call GetScriptByte
ld c, a
- callba StoreText
+ callba BattleTowerText
ret
; 0x96f60
@@ -1079,9 +1079,11 @@ ApplyMovement: ; 971fa
ld a, c
callba SetFlagsForMovement_1
pop bc
+
push bc
call SetFlagsForMovement_2
pop bc
+
call GetScriptByte
ld l, a
call GetScriptByte
@@ -1090,6 +1092,7 @@ ApplyMovement: ; 971fa
ld b, a
call GetMovementData
ret c
+
ld a, SCRIPT_WAIT_MOVEMENT
ld [ScriptMode], a
call StopScript
@@ -1102,6 +1105,7 @@ SetFlagsForMovement_2: ; 0x97221
; 0x97228
Script_applymovement2: ; 0x97228
+; apply movement to last talked
; script command 0x6a
; parameters:
; data (MovementPointerLabelParam)
@@ -1197,9 +1201,9 @@ ApplyPersonFacing: ; 0x9728b
add hl, bc
ld a, [hl]
push bc
- call Function1836
+ call DoesSpriteHaveFacings
pop bc
- jr c, .not_visible ; 0x9729c $1b
+ jr c, .not_visible ; STILL_SPRITE
ld hl, OBJECT_FLAGS1
add hl, bc
bit 2, [hl]
@@ -1222,7 +1226,7 @@ ApplyPersonFacing: ; 0x9728b
; 0x972bc
.DisableTextTiles: ; 0x972bc
- call Function217a
+ call LoadMapPart
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
.loop
@@ -1360,7 +1364,7 @@ Script_writepersonxy: ; 0x9735b
ld a, [hLastTalked]
.ok
ld b, a
- callba Function80a1
+ callba WritePersonXY
ret
; 0x9736f
@@ -1376,7 +1380,7 @@ Script_follownotexact: ; 0x9736f
call GetScriptByte
call GetScriptPerson
ld c, a
- callba Function839e
+ callba FollowNotExact
ret
; 0x97384
@@ -1426,12 +1430,12 @@ ShowEmoteScript: ; 973b6
.Show
show_emote
- show_person
+ step_sleep_1
step_end
.Hide
hide_emote
- show_person
+ step_sleep_1
step_end
; 973c7
@@ -1460,8 +1464,8 @@ Script_earthquake: ; 0x973c7
; 973eb
EarthquakeMovement: ; 973eb
- step_shake 16
- step_sleep 16
+ step_shake 16 ; the 16 gets overwritten with the script byte
+ step_sleep 16 ; the 16 gets overwritten with the lower 6 bits of the script byte
step_end
EarthquakeMovementEnd
; 973f0
@@ -1546,7 +1550,7 @@ Script_catchtutorial: ; 0x97447
call GetScriptByte
ld [BattleType], a
call BufferScreen
- callba Function4e554
+ callba CatchTutorial
jp Script_reloadmap
; 0x97459
@@ -1560,8 +1564,8 @@ Script_returnafterbattle: ; 0x97459
and $3f
cp $1
jr nz, .notblackedout ; 0x97466 $8
- ld b, BANK(UnknownScript_0x124c1)
- ld hl, UnknownScript_0x124c1
+ ld b, BANK(Script_BattleWhiteout)
+ ld hl, Script_BattleWhiteout
jp ScriptJump
.notblackedout
@@ -1664,7 +1668,7 @@ endr
ret
; 0x974f3
-Function974f3:: ; 0x974f3
+CallCallback:: ; 0x974f3
ld a, [ScriptBank]
or $80
ld [ScriptBank], a
@@ -2339,7 +2343,7 @@ Script_giveitem: ; 0x977ca
; quantity (SingleByteParam)
call GetScriptByte
- cp -1
+ cp ITEM_FROM_MEM
jr nz, .ok ; 0x977cf $3
ld a, [ScriptVar]
.ok
@@ -2370,8 +2374,8 @@ Script_takeitem: ; 0x977f0
ld [CurItem], a
call GetScriptByte
ld [wItemQuantityChangeBuffer], a
- ld a, $ff
- ld [wd107], a
+ ld a, -1
+ ld [ItemCountBuffer], a
ld hl, NumItems
call TossItem
ret nc
@@ -2847,6 +2851,7 @@ Script_warp: ; 0x97a1d
call LoadMapStatus
call StopScript
ret
+
.not_ok
call GetScriptByte
call GetScriptByte
@@ -2869,7 +2874,7 @@ Script_warpmod: ; 0x97a65
; map_id (MapIdParam)
call GetScriptByte
- ld [wdcac], a
+ ld [BackupWarpNumber], a
call GetScriptByte
ld [BackupMapGroup], a
call GetScriptByte
@@ -2884,9 +2889,9 @@ Script_blackoutmod: ; 0x97a78
; map_id (MapIdParam)
call GetScriptByte
- ld [wdcb2], a
+ ld [wLastSpawnMapGroup], a
call GetScriptByte
- ld [wdcb3], a
+ ld [wLastSpawnMapNumber], a
ret
; 0x97a85
@@ -2970,7 +2975,7 @@ Script_reloadmappart:: ; 0x97ae3
xor a
ld [hBGMapMode], a
- call Function2173
+ call OverworldTextModeSwitch
call Function2914
callba Function104061
call UpdateSprites
@@ -2980,7 +2985,7 @@ Script_reloadmappart:: ; 0x97ae3
Script_warpcheck: ; 0x97af6
; script command 0x8e
- call Function224a
+ call WarpCheck
ret nc
callba SetAll_ScriptFlags3
ret
@@ -3117,6 +3122,7 @@ Script_end: ; 0x97b74
call ExitScriptSubroutine
jr c, .resume
ret
+
.resume
xor a
ld [ScriptRunning], a
diff --git a/engine/selectmenu.asm b/engine/selectmenu.asm
new file mode 100755
index 000000000..e73f397a5
--- /dev/null
+++ b/engine/selectmenu.asm
@@ -0,0 +1,191 @@
+SelectMenu:: ; 13327
+
+ call CheckRegisteredItem
+ jr c, .NotRegistered
+ jp UseRegisteredItem
+
+.NotRegistered
+ call LoadFont
+ ld b, BANK(ItemMayBeRegisteredText)
+ ld hl, ItemMayBeRegisteredText
+ call MapTextbox
+ call CloseText
+ jp LoadMoveSprites
+; 13340
+
+
+ItemMayBeRegisteredText: ; 13340
+ text_jump UnknownText_0x1c1cf3
+ db "@"
+; 13345
+
+
+CheckRegisteredItem: ; 13345
+
+ ld a, [WhichRegisteredItem]
+ and a
+ jr z, .NoRegisteredItem
+ and REGISTERED_POCKET
+ rlca
+ rlca
+ ld hl, .Pockets
+ rst JumpTable
+ ret
+
+.Pockets
+ dw .CheckItem
+ dw .CheckBall
+ dw .CheckKeyItem
+ dw .CheckTMHM
+
+.CheckItem
+ ld hl, NumItems
+ call .CheckRegisteredNo
+ jr c, .NoRegisteredItem
+ inc hl
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ call .IsSameItem
+ jr c, .NoRegisteredItem
+ and a
+ ret
+
+.CheckKeyItem
+ ld a, [RegisteredItem]
+ ld hl, KeyItems
+ ld de, 1
+ call IsInArray
+ jr nc, .NoRegisteredItem
+ ld a, [RegisteredItem]
+ ld [CurItem], a
+ and a
+ ret
+
+.CheckBall
+ ld hl, NumBalls
+ call .CheckRegisteredNo
+ jr nc, .NoRegisteredItem
+ inc hl
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ call .IsSameItem
+ jr c, .NoRegisteredItem
+ ret
+
+.CheckTMHM
+ jr .NoRegisteredItem
+
+.NoRegisteredItem
+ xor a
+ ld [WhichRegisteredItem], a
+ ld [RegisteredItem], a
+ scf
+ ret
+; 133a6
+
+
+.CheckRegisteredNo ; 133a6
+ ld a, [WhichRegisteredItem]
+ and REGISTERED_NUMBER
+ dec a
+ cp [hl]
+ jr nc, .NotEnoughItems
+ ld [wd107], a
+ and a
+ ret
+
+.NotEnoughItems
+ scf
+ ret
+; 133b6
+
+
+.IsSameItem ; 133b6
+ ld a, [RegisteredItem]
+ cp [hl]
+ jr nz, .NotSameItem
+ ld [CurItem], a
+ and a
+ ret
+
+.NotSameItem
+ scf
+ ret
+; 133c3
+
+
+UseRegisteredItem: ; 133c3
+
+ callba CheckItemMenu
+ ld a, [wItemAttributeParamBuffer]
+ ld hl, .SwitchTo
+ rst JumpTable
+ ret
+
+.SwitchTo
+ dw .CantUse
+ dw .NoFunction
+ dw .NoFunction
+ dw .NoFunction
+ dw .Current
+ dw .Party
+ dw .Overworld
+; 133df
+
+.NoFunction ; 133df
+ call LoadFont
+ call CantUseItem
+ call LoadMoveSprites
+ and a
+ ret
+; 133ea
+
+.Current ; 133ea
+ call LoadFont
+ call DoItemEffect
+ call LoadMoveSprites
+ and a
+ ret
+; 133f5
+
+.Party ; 133f5
+ call ResetWindow
+ call FadeToMenu
+ call DoItemEffect
+ call Function2b3c
+ call LoadMoveSprites
+ and a
+ ret
+; 13406
+
+.Overworld ; 13406
+ call ResetWindow
+ ld a, 1
+ ld [wd0ef], a
+ call DoItemEffect
+ xor a
+ ld [wd0ef], a
+ ld a, [wd0ec]
+ cp 1
+ jr nz, ._cantuse
+ scf
+ ld a, HMENURETURN_SCRIPT
+ ld [hMenuReturn], a
+ ret
+; 13422
+
+.CantUse ; 13422
+ call ResetWindow
+
+._cantuse
+ call CantUseItem
+ call LoadMoveSprites
+ and a
+ ret
+; 1342d
diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm
new file mode 100755
index 000000000..075b1ba78
--- /dev/null
+++ b/engine/slot_machine.asm
@@ -0,0 +1,2112 @@
+_SlotMachine:
+ ld hl, Options
+ set 4, [hl]
+ call Function926f7
+ call DelayFrame
+.asm_926d2
+ call Function927af
+ jr nc, .asm_926d2
+ call WaitSFX
+ ld de, SFX_QUIT_SLOTS
+ call PlaySFX
+ call WaitSFX
+ call ClearBGPalettes
+ callba MobileFn_105fd0
+ ld hl, Options
+ res 4, [hl]
+ ld hl, rLCDC ; $ff40
+ res 2, [hl]
+ ret
+
+Function926f7: ; 926f7 (24:66f7)
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ ld de, MUSIC_NONE
+ call PlayMusic
+ call DelayFrame
+ call DisableLCD
+ ld hl, VBGMap0 tile $00
+ lb bc, 4, 0
+ ld a, $7f
+ call ByteFill
+ ld b, $5
+ call GetSGBLayout
+ callab Function8cf53
+ ld hl, wc6d0
+ ld bc, $48
+ xor a
+ call ByteFill
+ ld hl, Slots2LZ
+ ld de, VTiles0 tile $00
+ call Decompress
+ ld hl, Slots3LZ
+ ld de, VTiles0 tile $40
+ call Decompress
+ ld hl, Slots1LZ
+ ld de, VTiles2 tile $00
+ call Decompress
+ ld hl, Slots2LZ
+ ld de, VTiles2 tile $25
+ call Decompress
+ ld hl, SlotsTilemap
+ decoord 0, 0
+ ld bc, 20 * 12
+ call CopyBytes
+ ld hl, rLCDC ; $ff40
+ set 2, [hl]
+ call EnableLCD
+ ld hl, wc6d0
+ ld bc, $64
+ xor a
+ call ByteFill
+ call Function92a98
+ call Function9279b
+ ld a, $7
+ ld hl, wc300
+ ld [hli], a
+ ld [hl], $40
+ xor a
+ ld [wJumptableIndex], a
+ ld a, $ff
+ ld [wc709], a
+ ld de, MUSIC_GAME_CORNER
+ call PlayMusic
+ xor a
+ ld [wd002], a
+ call Random
+ and $2a
+ ret nz
+ ld a, $1
+ ld [wd002], a
+ ret
+
+Function9279b: ; 9279b (24:679b)
+ ld a, $e4
+ call DmgToCgbBGPals
+ lb de, $e4, $e4
+ ld a, [hCGB]
+ and a
+ jr nz, .asm_927ab
+ lb de, $c0, $e4
+.asm_927ab
+ call DmgToCgbObjPals
+ ret
+
+Function927af: ; 927af (24:67af)
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_927d1
+ call Function92844
+ call Function92b0f
+ xor a
+ ld [wc3b5], a
+ callab Function8cfa8
+ call Function927f8
+ call Function927d3
+ call DelayFrame
+ and a
+ ret
+.asm_927d1
+ scf
+ ret
+
+Function927d3: ; 927d3 (24:67d3)
+ ret
+; 927d4 (24:67d4)
+
+Function927d4: ; 927d4
+ ld a, [wc6d0]
+ and a
+ ret nz
+ ld a, [wc6e0]
+ and a
+ ret nz
+ ld a, [wc70c]
+ and a
+ jr nz, .asm_927ea
+ ld a, $e4
+ call DmgToCgbBGPals
+ ret
+
+.asm_927ea
+ ld a, [TextDelayFrames]
+ and $7
+ ret nz
+ ld a, [rBGP]
+ xor %1100
+ call DmgToCgbBGPals
+ ret
+; 927f8
+
+Function927f8: ; 927f8 (24:67f8)
+ hlcoord 5, 1
+ ld de, Coins
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 4
+ call PrintNum
+ hlcoord 11, 1
+ ld de, wc711
+ lb bc, PRINTNUM_LEADINGZEROS | 2, 4
+ call PrintNum
+ ret
+; 92811 (24:6811)
+
+Function92811: ; 92811
+ ld a, [wc709]
+ add 0
+ daa
+ ld e, a
+ and $f
+ add "0"
+ hlcoord 1, 0
+ ld [hl], a
+ ld a, e
+ swap a
+ and $f
+ add "0"
+ hlcoord 0, 0
+ ld [hl], a
+ ret
+; 9282c
+
+Function9282c: ; 9282c
+ ld hl, wcf66
+ ld a, [hl]
+ inc [hl]
+ and $7
+ ret nz
+ ld hl, Sprites + $42
+ ld c, $18
+.asm_92839
+ ld a, [hl]
+ xor $20
+ ld [hli], a
+rept 3
+ inc hl
+endr
+ dec c
+ jr nz, .asm_92839
+ ret
+; 92844
+
+Function92844: ; 92844 (24:6844)
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_92853
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 92853 (24:6853)
+
+
+Jumptable_92853: ; 92853 (24:6853)
+ dw Function9287e
+ dw Function9288e
+ dw Function928c6
+ dw Function928d6
+ dw Function928e6
+ dw Function92900
+ dw Function92910
+ dw Function9292a
+ dw Function9293a
+ dw Function92879
+ dw Function92879
+ dw Function92879
+ dw Function92955
+ dw Function9296b
+ dw Function92987
+ dw Function9299e
+ dw Function929a4
+ dw Function929d9
+ dw Function929f0
+
+
+Function92879: ; 92879 (24:6879)
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+
+Function9287e: ; 9287e (24:687e)
+ call Function92879
+ xor a
+ ld [wc70b], a
+ ld [wc70c], a
+ ld a, $ff
+ ld [wc70d], a
+ ret
+
+Function9288e: ; 9288e (24:688e)
+ call Function9307c
+ jr nc, .asm_92899
+ ld a, $12
+ ld [wJumptableIndex], a
+ ret
+.asm_92899
+ call Function92879
+ call Function9303f
+ call Function93002
+ ld a, $20
+ ld [wcf64], a
+ ld a, $4
+ ld [wc6d0], a
+ ld [wc6e0], a
+ ld [wc6f0], a
+ ld a, $4
+ ld [wc6d9], a
+ ld [wc6e9], a
+ ld [wc6f9], a
+ call WaitSFX
+ ld a, SFX_SLOT_MACHINE_START
+ call Function9331e
+ ret
+
+Function928c6: ; 928c6 (24:68c6)
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .asm_928cf
+ dec [hl]
+ ret
+.asm_928cf
+ call Function92879
+ xor a
+ ld [hJoypadSum], a
+ ret
+
+Function928d6: ; 928d6 (24:68d6)
+ ld hl, hJoypadSum ; $ffa5
+ ld a, [hl]
+ and A_BUTTON
+ ret z
+ call Function92879
+ call Function92a2b
+ ld [wc6d0], a
+
+Function928e6: ; 928e6 (24:68e6)
+ ld a, [wc6d0]
+ cp $0
+ ret nz
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ ld bc, wc6d0
+ ld de, wc700
+ call Function929f6
+ call Function92879
+ xor a
+ ld [hJoypadSum], a
+
+Function92900: ; 92900 (24:6900)
+ ld hl, hJoypadSum ; $ffa5
+ ld a, [hl]
+ and A_BUTTON
+ ret z
+ call Function92879
+ call Function92a2e
+ ld [wc6e0], a
+
+Function92910: ; 92910 (24:6910)
+ ld a, [wc6e0]
+ cp $0
+ ret nz
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ ld bc, wc6e0
+ ld de, wc703
+ call Function929f6
+ call Function92879
+ xor a
+ ld [hJoypadSum], a
+
+Function9292a: ; 9292a (24:692a)
+ ld hl, hJoypadSum ; $ffa5
+ ld a, [hl]
+ and A_BUTTON
+ ret z
+ call Function92879
+ call Function92a60
+ ld [wc6f0], a
+
+Function9293a: ; 9293a (24:693a)
+ ld a, [wc6f0]
+ cp $0
+ ret nz
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ ld bc, wc6f0
+ ld de, wc706
+ call Function929f6
+ call Function92879
+ xor a
+ ld [hJoypadSum], a
+ ret
+
+Function92955: ; 92955 (24:6955)
+ ld a, [wc70d]
+ cp $ff
+ jr nz, .asm_92963
+ call Function92879
+ call Function92879
+ ret
+.asm_92963
+ call Function92879
+ ld a, $10
+ ld [wcf64], a
+
+Function9296b: ; 9296b (24:696b)
+ ld hl, wcf64
+ ld a, [hl]
+ and a
+ jr z, .asm_92980
+ dec [hl]
+ srl a
+ ret z
+ ld a, [rOBP0]
+ xor $ff
+ ld e, a
+ ld d, a
+ call DmgToCgbObjPals
+ ret
+.asm_92980
+ call Function9279b
+ call Function92879
+ ret
+
+Function92987: ; 92987 (24:6987)
+ xor a
+ ld [wc70b], a
+ ld [wc70c], a
+ ld a, $e4
+ call DmgToCgbBGPals
+ call Function93124
+ xor a
+ ld [wcf64], a
+ call Function92879
+ ret
+
+Function9299e: ; 9299e (24:699e)
+ call Function93158
+ call Function92879
+
+Function929a4: ; 929a4 (24:69a4)
+ ld hl, wcf64
+ ld a, [hl]
+ inc [hl]
+ and $1
+ ret z
+ ld hl, wc711
+ ld a, [hli]
+ ld d, a
+ or [hl]
+ jr z, .asm_929d5
+ ld e, [hl]
+ dec de
+ ld [hl], e
+ dec hl
+ ld [hl], d
+ ld hl, Coins
+ ld d, [hl]
+ inc hl
+ ld e, [hl]
+ call Function92a04
+ jr c, .asm_929c5
+ inc de
+.asm_929c5
+ ld [hl], e
+ dec hl
+ ld [hl], d
+ ld a, [wcf64]
+ and $7
+ ret z
+ ld de, SFX_GET_COIN_FROM_SLOTS
+ call PlaySFX
+ ret
+.asm_929d5
+ call Function92879
+ ret
+
+Function929d9: ; 929d9 (24:69d9)
+ call Function9304c
+ call WaitPressAorB_BlinkCursor
+ call Function930e9
+ jr c, .asm_929ea
+ ld a, $0
+ ld [wJumptableIndex], a
+ ret
+.asm_929ea
+ ld a, $12
+ ld [wJumptableIndex], a
+ ret
+
+Function929f0: ; 929f0 (24:69f0)
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function929f6: ; 929f6 (24:69f6)
+ push de
+ call Function92a12
+ pop de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ ret
+
+Function92a04: ; 92a04 (24:6a04)
+ ld a, d
+ cp 9999 / $100
+ jr c, .asm_92a10
+ ld a, e
+ cp 9999 % $100
+ jr c, .asm_92a10
+ scf
+ ret
+.asm_92a10
+ and a
+ ret
+
+Function92a12: ; 92a12 (24:6a12)
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_92a1c
+ ld a, $f
+.asm_92a1c
+ dec a
+ and $f
+ ld e, a
+ ld d, $0
+ ld hl, $1
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ret
+
+Function92a2b: ; 92a2b (24:6a2b)
+ ld a, $7
+ ret
+
+Function92a2e: ; 92a2e (24:6a2e)
+ ld a, [wc70a]
+ cp $2
+ jr c, .asm_92a4e
+ ld a, [wc709]
+ and a
+ jr z, .asm_92a3f
+ cp $ff
+ jr nz, .asm_92a4e
+.asm_92a3f
+ call Function92a51
+ jr nz, .asm_92a4e
+ call Random
+ cp $50
+ jr nc, .asm_92a4e
+ ld a, $a
+ ret
+.asm_92a4e
+ ld a, $8
+ ret
+
+Function92a51: ; 92a51 (24:6a51)
+ ld a, [wc700]
+ and a
+ ret z
+ ld a, [wc701]
+ and a
+ ret z
+ ld a, [wc702]
+ and a
+ ret
+
+Function92a60: ; 92a60 (24:6a60)
+ ld a, [wc70b]
+ and a
+ jr z, .asm_92a95
+ ld a, [wc70c]
+ and a
+ jr z, .asm_92a95
+ ld a, [wc709]
+ and a
+ jr nz, .asm_92a84
+ call Random
+ cp 180
+ jr nc, .asm_92a95
+ cp 120
+ jr nc, .asm_92a92
+ cp 60
+ jr nc, .asm_92a8f
+ ld a, $15
+ ret
+.asm_92a84
+ call Random
+ cp $a0
+ jr nc, .asm_92a95
+ cp $50
+ jr nc, .asm_92a92
+.asm_92a8f
+ ld a, $12
+ ret
+.asm_92a92
+ ld a, $10
+ ret
+.asm_92a95
+ ld a, $9
+ ret
+
+Function92a98: ; 92a98 (24:6a98)
+ ld bc, wc6d0
+ ld hl, $6
+ add hl, bc
+ ld de, Sprites + $40
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $1
+ add hl, bc
+ ld de, Unknown_93327
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $8
+ add hl, bc
+ ld [hl], $30
+ call Function92af9
+ ld bc, wc6e0
+ ld hl, $6
+ add hl, bc
+ ld de, Sprites + $60
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $1
+ add hl, bc
+ ld de, Unknown_93339
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $8
+ add hl, bc
+ ld [hl], $50
+ call Function92af9
+ ld bc, wc6f0
+ ld hl, $6
+ add hl, bc
+ ld de, Sprites + $80
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $1
+ add hl, bc
+ ld de, Unknown_9334b
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ld hl, $8
+ add hl, bc
+ ld [hl], $70
+ call Function92af9
+ ret
+
+Function92af9: ; 92af9 (24:6af9)
+ ld hl, 0
+ add hl, bc
+ ld [hl], $0
+ ld hl, $3
+ add hl, bc
+ ld [hl], $e
+ ld hl, $4
+ add hl, bc
+ ld [hl], $0
+ call Function92b53
+ ret
+
+Function92b0f: ; 92b0f (24:6b0f)
+ ld bc, wc6d0
+ call Function92b22
+ ld bc, wc6e0
+ call Function92b22
+ ld bc, wc6f0
+ call Function92b22
+ ret
+
+Function92b22: ; 92b22 (24:6b22)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ and $f
+ jr nz, .asm_92b2e
+ call Function92bd4
+.asm_92b2e
+ ld hl, $5
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ ld d, a
+ ld hl, $4
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ and $f
+ jr z, Function92b53
+ ld hl, $6
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld e, $8
+.asm_92b49
+ ld a, [hl]
+ add d
+ ld [hli], a
+rept 3
+ inc hl
+endr
+ dec e
+ jr nz, .asm_92b49
+ ret
+
+Function92b53: ; 92b53 (24:6b53)
+ ld hl, $8
+ add hl, bc
+ ld a, [hl]
+ ld [wc712 + 1], a
+ ld a, $50
+ ld [wc712 + 2], a
+ ld hl, $3
+ add hl, bc
+ ld e, [hl]
+ ld d, $0
+ ld hl, $1
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ add hl, de
+ ld e, l
+ ld d, h
+ call Function92b83
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ inc a
+ and $f
+ cp $f
+ jr nz, .asm_92b81
+ xor a
+.asm_92b81
+ ld [hl], a
+ ret
+
+Function92b83: ; 92b83 (24:6b83)
+ ld hl, $6
+ add hl, bc
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+.asm_92b8a
+ ld a, [wc712 + 2]
+ ld [hli], a
+ ld a, [wc712 + 1]
+ ld [hli], a
+ ld a, [de]
+ ld [hli], a
+ srl a
+ srl a
+ set 7, a
+ ld [hli], a
+ ld a, [wc712 + 2]
+ ld [hli], a
+ ld a, [wc712 + 1]
+ add $8
+ ld [hli], a
+ ld a, [de]
+rept 2
+ inc a
+endr
+ ld [hli], a
+ srl a
+ srl a
+ set 7, a
+ ld [hli], a
+ inc de
+ ld a, [wc712 + 2]
+ sub $10
+ ld [wc712 + 2], a
+ cp $10
+ jr nz, .asm_92b8a
+ ret
+; 92bbe (24:6bbe)
+
+Function92bbe: ; 92bbe
+ push hl
+ srl a
+ srl a
+ add Unknown_92bce % $100
+ ld l, a
+ ld a, 0
+ adc Unknown_92bce / $100
+ ld h, a
+ ld a, [hl]
+ pop hl
+ ret
+; 92bce
+
+Unknown_92bce: ; 92bce
+ db 0, 1, 2, 3, 4, 5
+; 92bd4
+
+Function92bd4: ; 92bd4 (24:6bd4)
+ ld hl, 0
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Jumptable_92be4
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 92be4 (24:6be4)
+
+Jumptable_92be4: ; 92be4
+ dw Function92c16
+ dw Function92c4c
+ dw Function92c17
+ dw Function92c1e
+ dw Function92c25
+ dw Function92c2c
+ dw Function92c33
+ dw Function92c5e
+ dw Function92c86
+ dw Function92ca9
+ dw Function92cd2
+ dw Function92cf8
+ dw Function92d13
+ dw Function92df7
+ dw Function92e10
+ dw Function92e31
+ dw Function92e47
+ dw Function92e64
+ dw Function92d20
+ dw Function92d4f
+ dw Function92d6e
+ dw Function92d7e
+ dw Function92da4
+ dw Function92db3
+ dw Function92dca
+; 92c16
+
+Function92c16: ; 92c16
+ ret
+; 92c17
+
+Function92c17: ; 92c17
+ ld hl, $5
+ add hl, bc
+ ld [hl], $10
+ ret
+; 92c1e
+
+Function92c1e: ; 92c1e
+ ld hl, $5
+ add hl, bc
+ ld [hl], $8
+ ret
+; 92c25
+
+Function92c25: ; 92c25
+ ld hl, $5
+ add hl, bc
+ ld [hl], $4
+ ret
+; 92c2c
+
+Function92c2c: ; 92c2c
+ ld hl, $5
+ add hl, bc
+ ld [hl], $2
+ ret
+; 92c33
+
+Function92c33: ; 92c33
+ ld hl, $5
+ add hl, bc
+ ld [hl], $1
+ ret
+; 92c3a
+
+Function92c3a: ; 92c3a
+ ld hl, $5
+ add hl, bc
+ ld [hl], $0
+ ld hl, 0
+ add hl, bc
+ ld [hl], $1
+ ld hl, $f
+ add hl, bc
+ ld [hl], $3
+
+Function92c4c: ; 92c4c
+ ld hl, $f
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92c56
+ dec [hl]
+ ret
+
+.asm_92c56
+ ld hl, 0
+ add hl, bc
+ ld a, $0
+ ld [hl], a
+ ret
+; 92c5e
+
+Function92c5e: ; 92c5e
+ ld a, [wc709]
+ cp $ff
+ jr z, .asm_92c72
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92c72
+ dec [hl]
+ call Function92c76
+ ret nz
+
+.asm_92c72
+ call Function92c3a
+ ret
+; 92c76
+
+Function92c76: ; 92c76
+ call Function92a12
+ ld a, [wc709]
+ ld e, a
+ ld a, [hli]
+ cp e
+ ret z
+ ld a, [hli]
+ cp e
+ ret z
+ ld a, [hl]
+ cp e
+ ret
+; 92c86
+
+Function92c86: ; 92c86
+ call Function92e94
+ jr nc, .asm_92c94
+ ld a, [wc717]
+ ld hl, wc709
+ cp [hl]
+ jr z, .asm_92ca5
+
+.asm_92c94
+ ld a, [wc709]
+ cp $ff
+ jr z, .asm_92ca5
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92ca5
+ dec [hl]
+ ret
+
+.asm_92ca5
+ call Function92c3a
+ ret
+; 92ca9
+
+Function92ca9: ; 92ca9
+ call Function92f1d
+ jr nc, .asm_92cbd
+ ld hl, wc709
+ cp [hl]
+ jr z, .asm_92cce
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ and a
+ ret z
+ dec [hl]
+ ret
+
+.asm_92cbd
+ ld a, [wc709]
+ cp $ff
+ jr z, .asm_92cce
+ ld hl, $9
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92cce
+ dec [hl]
+ ret
+
+.asm_92cce
+ call Function92c3a
+ ret
+; 92cd2
+
+Function92cd2: ; 92cd2
+ call Function92e94
+ jr nc, .asm_92ce1
+ ld a, [wc70c]
+ and a
+ jr z, .asm_92ce1
+ call Function92c3a
+ ret
+
+.asm_92ce1
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], $20
+ ld hl, $5
+ add hl, bc
+ ld [hl], $0
+ ret
+; 92cf8
+
+Function92cf8: ; 92cf8
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92d02
+ dec [hl]
+ ret
+
+.asm_92d02
+ ld a, SFX_THROW_BALL
+ call Function9331e
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], $8
+ ret
+; 92d13
+
+Function92d13: ; 92d13
+ call Function92e94
+ ret nc
+ ld a, [wc70c]
+ and a
+ ret z
+ call Function92c3a
+ ret
+; 92d20
+
+Function92d20: ; 92d20
+ call Function92f1d
+ ret c
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ call Function93316
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], $0
+ call Function92fc0
+ push bc
+ push af
+ ld de, $6068
+ ld a, $6
+ call Function3b2a
+ ld hl, $e
+ add hl, bc
+ pop af
+ ld [hl], a
+ pop bc
+ xor a
+ ld [wcf64], a
+
+Function92d4f: ; 92d4f
+ ld a, [wcf64]
+ cp $2
+ jr z, .asm_92d5b
+ cp $1
+ jr z, .asm_92d62
+ ret
+
+.asm_92d5b
+ call Function92f1d
+ call Function92c3a
+ ret
+
+.asm_92d62
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], $8
+ ret
+; 92d6e
+
+Function92d6e: ; 92d6e
+ xor a
+ ld [wcf64], a
+ ld hl, 0
+ add hl, bc
+ dec [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], $0
+ ret
+; 92d7e
+
+Function92d7e: ; 92d7e
+ call Function92f1d
+ ret c
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ call Function93316
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], $0
+ push bc
+ ld de, $6000
+ ld a, $7
+ call Function3b2a
+ pop bc
+ xor a
+ ld [wcf64], a
+ ret
+; 92da4
+
+Function92da4: ; 92da4
+ ld a, [wcf64]
+ and a
+ ret z
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld a, $2
+ ld [wcf64], a
+
+Function92db3: ; 92db3
+ ld a, [wcf64]
+ cp $4
+ ret c
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], $10
+ ld hl, $a
+ add hl, bc
+ ld [hl], $11
+
+Function92dca: ; 92dca
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92dd4
+ dec [hl]
+ ret
+
+.asm_92dd4
+ call Function92f1d
+ jr nc, .asm_92de5
+ and a
+ jr nz, .asm_92de5
+ ld a, $5
+ ld [wcf64], a
+ call Function92c3a
+ ret
+
+.asm_92de5
+ ld hl, $5
+ add hl, bc
+ ld [hl], $0
+ ld hl, 0
+ add hl, bc
+rept 2
+ dec [hl]
+endr
+ ld a, $1
+ ld [wcf64], a
+ ret
+; 92df7
+
+Function92df7: ; 92df7
+ call Function92f1d
+ ret c
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ call Function93316
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ call Function92fc0
+ ld hl, $a
+ add hl, bc
+ ld [hl], a
+
+Function92e10: ; 92e10
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_92e1f
+ call Function92f1d
+ call Function92c3a
+ ret
+
+.asm_92e1f
+ dec [hl]
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $b
+ add hl, bc
+ ld [hl], $20
+ ld hl, $5
+ add hl, bc
+ ld [hl], $0
+
+Function92e31: ; 92e31
+ ld hl, $b
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92e3b
+ dec [hl]
+ ret
+
+.asm_92e3b
+ ld hl, 0
+ add hl, bc
+ dec [hl]
+ ld hl, $5
+ add hl, bc
+ ld [hl], $8
+ ret
+; 92e47
+
+Function92e47: ; 92e47
+ call Function92f1d
+ ret c
+ ld a, SFX_STOP_SLOT
+ call Function9331e
+ call Function93316
+ ld hl, $5
+ add hl, bc
+ ld [hl], $1
+ ld hl, 0
+ add hl, bc
+ inc [hl]
+ ld hl, $a
+ add hl, bc
+ ld [hl], $10
+
+Function92e64: ; 92e64
+ ld hl, $a
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_92e73
+ dec [hl]
+.asm_92e6d
+ ld a, SFX_GOT_SAFARI_BALLS
+ call Function9331e
+ ret
+
+.asm_92e73
+ ld a, [wc709]
+ and a
+ jr nz, .asm_92e88
+ call Function92f1d
+ jr nc, .asm_92e6d
+ and a
+ jr nz, .asm_92e6d
+ call Function92c3a
+ call WaitSFX
+ ret
+
+.asm_92e88
+ call Function92f1d
+ jr c, .asm_92e6d
+ call Function92c3a
+ call WaitSFX
+ ret
+; 92e94
+
+Function92e94: ; 92e94
+ xor a
+ ld [wc70b], a
+ ld [wc70c], a
+ call Function92a12
+ call Function92fb4
+ ld a, [wc70a]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_92ebd
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .asm_92eb6
+ push de
+ jp [hl]
+
+.asm_92eb6
+ ld a, [wc70b]
+ and a
+ ret z
+ scf
+ ret
+; 92ebd
+
+Jumptable_92ebd: ; 92ebd
+ dw Function92ed4
+ dw Function92ed1
+ dw Function92ecb
+ dw Function92ec5
+; 92ec5
+
+Function92ec5: ; 92ec5
+ call Function92ee0
+ call Function92ef6
+
+Function92ecb: ; 92ecb
+ call Function92ed5
+ call Function92f01
+
+Function92ed1: ; 92ed1
+ call Function92eeb
+
+Function92ed4: ; 92ed4
+ ret
+; 92ed5
+
+Function92ed5: ; 92ed5
+ ld hl, wc70e
+ ld a, [EnemyScreens]
+ cp [hl]
+ call z, Function92f0c
+ ret
+; 92ee0
+
+Function92ee0: ; 92ee0
+ ld hl, wEnemyGoesFirst
+ ld a, [wc700]
+ cp [hl]
+ call z, Function92f0c
+ ret
+; 92eeb
+
+Function92eeb: ; 92eeb
+ ld hl, wEnemyGoesFirst
+ ld a, [wc701]
+ cp [hl]
+ call z, Function92f0c
+ ret
+; 92ef6
+
+Function92ef6: ; 92ef6
+ ld hl, wEnemyGoesFirst
+ ld a, [wc702]
+ cp [hl]
+ call z, Function92f0c
+ ret
+; 92f01
+
+Function92f01: ; 92f01
+ ld hl, wc710
+ ld a, [wc702]
+ cp [hl]
+ call z, Function92f0c
+ ret
+; 92f0c
+
+Function92f0c: ; 92f0c
+ ld [wc717], a
+ and a
+ jr nz, .asm_92f17
+ ld a, $1
+ ld [wc70c], a
+
+.asm_92f17
+ ld a, $1
+ ld [wc70b], a
+ ret
+; 92f1d
+
+Function92f1d: ; 92f1d
+ ld a, $ff
+ ld [EffectFailed], a
+ call Function92a12
+ call Function92fb4
+ ld a, [wc70a]
+ and 3
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_92f48
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .asm_92f3d
+ push de
+ jp [hl]
+
+.asm_92f3d
+ ld a, [wc70d]
+ cp $ff
+ jr nz, .asm_92f46
+ and a
+ ret
+
+.asm_92f46
+ scf
+ ret
+; 92f48
+
+Jumptable_92f48: ; 92f48
+ dw Function92f5f
+ dw Function92f5c
+ dw Function92f56
+ dw Function92f50
+; 92f50
+
+Function92f50: ; 92f50
+ call Function92f70
+ call Function92f90
+
+Function92f56: ; 92f56
+ call Function92f60
+ call Function92fa0
+
+Function92f5c: ; 92f5c
+ call Function92f80
+
+Function92f5f: ; 92f5f
+ ret
+; 92f60
+
+Function92f60: ; 92f60
+ ld hl, wc70e
+ ld a, [wc700]
+ cp [hl]
+ ret nz
+ ld hl, wc703
+ cp [hl]
+ call z, Function92fb0
+ ret
+; 92f70
+
+Function92f70: ; 92f70
+ ld hl, wc710
+ ld a, [wc700]
+ cp [hl]
+ ret nz
+ ld hl, wc704
+ cp [hl]
+ call z, Function92fb0
+ ret
+; 92f80
+
+Function92f80: ; 92f80
+ ld hl, wEnemyGoesFirst
+ ld a, [wc701]
+ cp [hl]
+ ret nz
+ ld hl, wc704
+ cp [hl]
+ call z, Function92fb0
+ ret
+; 92f90
+
+Function92f90: ; 92f90
+ ld hl, wc70e
+ ld a, [wc702]
+ cp [hl]
+ ret nz
+ ld hl, wc704
+ cp [hl]
+ call z, Function92fb0
+ ret
+; 92fa0
+
+Function92fa0: ; 92fa0
+ ld hl, wc710
+ ld a, [wc702]
+ cp [hl]
+ ret nz
+ ld hl, wc705
+ cp [hl]
+ call z, Function92fb0
+ ret
+; 92fb0
+
+Function92fb0: ; 92fb0
+ ld [wc70d], a
+ ret
+; 92fb4
+
+Function92fb4: ; 92fb4
+ ld de, wc70e
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [hl]
+ ld [de], a
+ ret
+; 92fc0
+
+Function92fc0: ; 92fc0
+ ld hl, $3
+ add hl, bc
+ ld a, [hl]
+ push af
+ push hl
+ call Function92fcf
+ pop hl
+ pop af
+ ld [hl], a
+ ld a, e
+ ret
+; 92fcf
+
+Function92fcf: ; 92fcf
+ ld a, [wc709]
+ and a
+ jr nz, .asm_92fe8
+ ld e, $0
+.asm_92fd7
+ ld hl, $3
+ add hl, bc
+ inc [hl]
+ inc e
+ push de
+ call Function92f1d
+ pop de
+ jr nc, .asm_92fd7
+ and a
+ jr nz, .asm_92fd7
+ ret
+
+.asm_92fe8
+ call Random
+ and $7
+ cp $4
+ jr c, .asm_92fe8
+ ld e, a
+.asm_92ff2
+ ld a, e
+ inc e
+ ld hl, $3
+ add hl, bc
+ add [hl]
+ ld [hl], a
+ push de
+ call Function92f1d
+ pop de
+ jr c, .asm_92ff2
+ ret
+; 93002
+
+Function93002: ; 93002 (24:7002)
+ ld a, [wc709]
+ and a
+ ret z
+ ld hl, Unknown_93023
+ ld a, [ScriptVar]
+ and a
+ jr z, .asm_93013
+ ld hl, Unknown_93031
+.asm_93013
+ call Random
+ ld c, a
+.asm_93017
+ ld a, [hli]
+ cp c
+ jr nc, .asm_9301e
+ inc hl
+ jr .asm_93017
+.asm_9301e
+ ld a, [hl]
+ ld [wc709], a
+ ret
+; 93023 (24:7023)
+
+Unknown_93023: ; 93023
+ db $01, $00
+ db $03, $04
+ db $0a, $14
+ db $14, $10
+ db $28, $0c
+ db $30, $08
+ db $ff, $ff
+; 93031
+
+Unknown_93031: ; 93031
+ db $02, $00
+ db $03, $04
+ db $08, $14
+ db $10, $10
+ db $1e, $0c
+ db $50, $08
+ db $ff, $ff
+; 9303f
+
+Function9303f: ; 9303f (24:703f)
+ ld b, $14
+ ld a, [wc70a]
+ dec a
+ jr z, asm_93066
+ dec a
+ jr z, asm_9305a
+ jr asm_9304e
+
+Function9304c: ; 9304c (24:704c)
+ ld b, $23
+asm_9304e: ; 9304e (24:704e)
+ hlcoord 3, 2
+ call Function93069
+ hlcoord 3, 10
+ call Function93069
+asm_9305a: ; 9305a (24:705a)
+ hlcoord 3, 4
+ call Function93069
+ hlcoord 3, 8
+ call Function93069
+asm_93066: ; 93066 (24:7066)
+ hlcoord 3, 6
+
+Function93069: ; 93069 (24:7069)
+ ld a, b
+ ld [hl], a
+ ld de, $d
+ add hl, de
+ ld [hl], a
+ ld de, $7
+ add hl, de
+ inc a
+ ld [hl], a
+ ld de, $d
+ add hl, de
+ ld [hl], a
+ ret
+
+Function9307c: ; 9307c (24:707c)
+ ld hl, UnknownText_0x930c7
+ call PrintText
+ ld hl, MenuDataHeader_0x930d6
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ call WriteBackup
+ ret c
+ ld a, [MenuSelection2]
+ ld b, a
+ ld a, $4
+ sub b
+ ld [wc70a], a
+ ld hl, Coins
+ ld c, a
+ ld a, [hli]
+ and a
+ jr nz, .asm_930ad
+ ld a, [hl]
+ cp c
+ jr nc, .asm_930ad
+ ld hl, UnknownText_0x930d1
+ call PrintText
+ jr Function9307c
+.asm_930ad
+ ld hl, Coins + 1
+ ld a, [hl]
+ sub c
+ ld [hld], a
+ jr nc, .asm_930b6
+ dec [hl]
+.asm_930b6
+ call WaitSFX
+ ld de, SFX_PAY_DAY
+ call PlaySFX
+ ld hl, UnknownText_0x930cc
+ call PrintText
+ and a
+ ret
+; 930c7 (24:70c7)
+
+UnknownText_0x930c7: ; 0x930c7
+ ; Bet how many coins?
+ text_jump UnknownText_0x1c5049
+ db "@"
+; 0x930cc
+
+UnknownText_0x930cc: ; 0x930cc
+ ; Start!
+ text_jump UnknownText_0x1c505e
+ db "@"
+; 0x930d1
+
+UnknownText_0x930d1: ; 0x930d1
+ ; Not enough coins.
+ text_jump UnknownText_0x1c5066
+ db "@"
+; 0x930d6
+
+MenuDataHeader_0x930d6: ; 0x930d6
+ db $40 ; flags
+ db 10, 14 ; start coords
+ db 17, 19 ; end coords
+ dw MenuData2_0x930de
+ db 1 ; default option
+; 0x930de
+
+MenuData2_0x930de: ; 0x930de
+ db $80 ; flags
+ db 3 ; items
+ db " 3@"
+ db " 2@"
+ db " 1@"
+; 0x930e9
+
+Function930e9: ; 930e9 (24:70e9)
+ ld hl, Coins
+ ld a, [hli]
+ or [hl]
+ jr nz, .asm_930fd
+ ld hl, UnknownText_9311a
+ call PrintText
+ ld c, 60
+ call DelayFrames
+ jr .asm_93118
+.asm_930fd
+ ld hl, UnknownText_9311f
+ call PrintText
+ call LoadMenuTextBox
+ lb bc, 14, 12
+ call PlaceYesNoBox
+ ld a, [MenuSelection2]
+ dec a
+ call WriteBackup
+ and a
+ jr nz, .asm_93118
+ and a
+ ret
+.asm_93118
+ scf
+ ret
+; 9311a (24:711a)
+
+UnknownText_9311a: ; 9311a
+ text_jump UnknownText_0x1c5079
+ db "@"
+
+UnknownText_9311f: ; 9311f
+ text_jump UnknownText_0x1c5092
+ db "@"
+
+Function93124: ; 93124 (24:7124)
+ ld a, [EffectFailed]
+ cp $ff
+ jr z, .asm_93151
+ srl a
+ ld e, a
+ ld d, 0
+ ld hl, .data_93145
+ add hl, de
+ ld a, [hli]
+ ld [PlayerUsedMoves], a
+ ld e, a
+ ld a, [hl]
+ ld [wc711], a
+ ld d, a
+ callba MobileFn_105fe3
+ ret
+
+.data_93145
+ db $2c, $01
+ db $32, $00
+ db $06, $00
+ db $08, $00
+ db $0a, $00
+ db $0f, $00
+
+.asm_93151
+ ld hl, wc711
+ xor a
+ ld [hli], a
+ ld [hl], a
+ ret
+
+Function93158: ; 93158 (24:7158)
+ ld a, [EffectFailed]
+ cp $ff
+ jr nz, .asm_9316c
+ ld hl, UnknownText_0x931e0
+ call PrintText
+ callba MobileFn_105fd0
+ ret
+.asm_9316c
+ srl a
+ ld e, a
+ ld d, 0
+ ld hl, Unknown_93195
+rept 3
+ add hl, de
+endr
+ ld de, StringBuffer2
+ ld bc, $4
+ call CopyBytes
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld de, .asm_93188
+ push de
+ jp [hl]
+.asm_93188
+ ld hl, UnknownText_0x931b9
+ call PrintText
+ callba MobileFn_105f9f
+ ret
+; 93195 (24:7195)
+
+Unknown_93195: ; 93195
+ db "300@"
+ dw Function931e5
+ db "50@@"
+ dw Function9320b
+ db "6@@@"
+ dw Function93214
+ db "8@@@"
+ dw Function93214
+ db "10@@"
+ dw Function93214
+ db "15@@"
+ dw Function93214
+; 931b9
+
+UnknownText_0x931b9: ; 0x931b9
+ start_asm
+; 0x931ba
+
+Function931ba: ; 931ba
+ ld a, [EffectFailed]
+ add $25
+ ldcoord_a 2, 13
+ inc a
+ ldcoord_a 2, 14
+ inc a
+ ldcoord_a 3, 13
+ inc a
+ ldcoord_a 3, 14
+ hlcoord 18, 17
+ ld [hl], $ee
+ ld hl, UnknownText_0x931db
+rept 4
+ inc bc
+endr
+ ret
+; 931db
+
+UnknownText_0x931db: ; 0x931db
+ ; lined up! Won @ coins!
+ text_jump UnknownText_0x1c509f
+ db "@"
+; 0x931e0
+
+UnknownText_0x931e0: ; 0x931e0
+ ; Darn!
+ text_jump UnknownText_0x1c50bb
+ db "@"
+; 0x931e5
+
+Function931e5: ; 931e5
+ ld a, SFX_2ND_PLACE
+ call Function9331e
+ call WaitSFX
+ ld a, [wd002]
+ and a
+ jr nz, .asm_931ff
+ call Random
+ and $14
+ ret z
+ ld a, $ff
+ ld [wc709], a
+ ret
+
+.asm_931ff
+ call Random
+ and $1c
+ ret z
+ ld a, $ff
+ ld [wc709], a
+ ret
+; 9320b
+
+Function9320b: ; 9320b
+ ld a, SFX_3RD_PLACE
+ call Function9331e
+ call WaitSFX
+ ret
+; 93214
+
+Function93214: ; 93214
+ ld a, SFX_PRESENT
+ call Function9331e
+ call WaitSFX
+ ret
+; 9321d
+
+Function9321d: ; 9321d (24:721d)
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Jumptable_9322d
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_9322d: ; 9322d (24:722d)
+ dw Function93233
+ dw Function93259
+ dw Function93289
+
+
+Function93233: ; 93233 (24:7233)
+ ld hl, $e
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr nz, .asm_93247
+ ld a, $2
+ ld [wcf64], a
+ ld hl, 0
+ add hl, bc
+ ld [hl], $0
+ ret
+.asm_93247
+ dec [hl]
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ld hl, $c
+ add hl, bc
+ ld [hl], $30
+ ld hl, $6
+ add hl, bc
+ ld [hl], $0
+
+Function93259: ; 93259 (24:7259)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ cp $20
+ jr c, .asm_93273
+ dec [hl]
+ ld e, a
+ ld d, $70
+ callba Functionce765
+ ld a, e
+ ld hl, $7
+ add hl, bc
+ ld [hl], a
+ ret
+.asm_93273
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ld hl, $d
+ add hl, bc
+ ld [hl], $2
+ ld a, $1
+ ld [wcf64], a
+ ld a, SFX_PLACE_PUZZLE_PIECE_DOWN
+ call Function9331e
+ ret
+
+Function93289: ; 93289 (24:7289)
+ ld hl, $6
+ add hl, bc
+ ld a, [hl]
+rept 2
+ inc [hl]
+endr
+ cp $48
+ jr nc, .asm_932a3
+ and $3
+ ret nz
+ ld hl, $d
+ add hl, bc
+ ld a, [hl]
+ xor $ff
+ inc a
+ ld [hl], a
+ ld [hSCY], a
+ ret
+.asm_932a3
+ ld hl, $b
+ add hl, bc
+ xor a
+ ld [hl], a
+ ld [hSCY], a
+ ret
+
+Function932ac: ; 932ac (24:72ac)
+ ld hl, $b
+ add hl, bc
+ ld e, [hl]
+ ld d, 0
+ ld hl, Jumptable_932bc
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_932bc: ; 932bc (24:72bc)
+ dw Function932c2
+ dw Function932e0
+ dw Function932fc
+
+
+Function932c2: ; 932c2 (24:72c2)
+ ld hl, $4
+ add hl, bc
+ ld a, [hl]
+ inc [hl]
+ cp $68
+ jr z, .asm_932d6
+ and $f
+ ret nz
+ ld de, SFX_JUMP_OVER_LEDGE
+ call PlaySFX
+ ret
+.asm_932d6
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ld a, $1
+ ld [wcf64], a
+
+Function932e0: ; 932e0 (24:72e0)
+ ld a, [wcf64]
+ cp $2
+ jr z, .asm_932f1
+ cp $5
+ ret nz
+ ld hl, 0
+ add hl, bc
+ ld [hl], $0
+ ret
+.asm_932f1
+ ld hl, $b
+ add hl, bc
+ inc [hl]
+ ld hl, $c
+ add hl, bc
+ ld [hl], $8
+
+Function932fc: ; 932fc (24:72fc)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_93306
+ dec [hl]
+ ret
+.asm_93306
+ ld hl, $b
+ add hl, bc
+ dec [hl]
+ push bc
+ ld de, $606c
+ ld a, $8
+ call Function3b2a
+ pop bc
+ ret
+; 93316 (24:7316)
+
+Function93316: ; 93316
+ push bc
+ ld c, 16
+ call DelayFrames
+ pop bc
+ ret
+; 9331e
+
+Function9331e: ; 9331e (24:731e)
+ push de
+ ld e, a
+ ld d, 0
+ call PlaySFX
+ pop de
+ ret
+; 93327 (24:7327)
+
+Unknown_93327: ; 93327
+ db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14
+Unknown_93339: ; 93339
+ db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08
+Unknown_9334b: ; 9334b
+ db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08
+; 9335d
+
+SlotsTilemap: ; 9335d
+INCBIN "gfx/slots.tilemap"
+; 9344d
+
+Slots1LZ: ; 9344d
+INCBIN "gfx/slots_1.2bpp.lz"
+; 935cd
+
+Slots2LZ: ; 935cd
+INCBIN "gfx/slots_2.2bpp.lz"
+; 9382d
+
+Slots3LZ: ; 9382d
+INCBIN "gfx/slots_3.2bpp.lz"
+; 93a3d
diff --git a/engine/specials.asm b/engine/specials.asm
index ef53daedc..21d391faa 100644
--- a/engine/specials.asm
+++ b/engine/specials.asm
@@ -42,7 +42,7 @@ SpecialsPointers:: ; c029
; Map Events
add_special BugContestJudging
add_special CheckPartyFullAfterContest
- add_special CheckFirstMonFainted
+ add_special ContestDropOffMons
add_special ContestReturnMons
add_special Special_GiveParkBalls
add_special Special_CheckMagikarpLength
@@ -65,18 +65,18 @@ SpecialsPointers:: ; c029
add_special Special_SlotMachine
add_special Special_CardFlip
add_special Special_DummyNonfunctionalGameCornerGame
- add_special Special_WhiteBGMapBufferScreen
- add_special FadeBlackBGMap
+ add_special Special_ClearBGPalettesBufferScreen
+ add_special FadeOutPalettes
add_special Special_BattleTowerFade
add_special Special_FadeBlackQuickly
- add_special FadeInBGMap
+ add_special FadeInPalettes
add_special Special_FadeInQuickly
add_special Special_ReloadSpritesNoPalettes
- add_special WhiteBGMap
+ add_special ClearBGPalettes
add_special UpdateTimePals
add_special ClearTileMap
add_special UpdateSprites
- add_special Special_ReplaceKrisSprite
+ add_special ReplaceKrisSprite
add_special Special_GameCornerPrizeMonCheckDex
add_special SpecialSeenMon
add_special WaitSFX
@@ -124,7 +124,7 @@ SpecialsPointers:: ; c029
add_special ProfOaksPCBoot
add_special SpecialGameboyCheck
add_special SpecialTrainerHouse
- add_special Function16dc7
+ add_special PhotoStudio
add_special InitRoamMons
add_special Functionc48f
add_special Functionc49f
@@ -139,9 +139,9 @@ SpecialsPointers:: ; c029
add_special Function1700b0
add_special Function1700ba
add_special Function170114
- add_special Function170215
+ add_special BattleTowerBattle
add_special Function1704e1
- add_special Function17021d
+ add_special EmptySpecial_17021d
add_special Function_LoadOpponentTrainerAndPokemonsWithOTSprite
add_special Function11ba38
add_special SpecialCheckForBattleTowerRules
@@ -154,7 +154,7 @@ SpecialsPointers:: ; c029
add_special Function4925b
add_special SpecialOmanyteChamber
add_special Function11c1ab
- add_special Function170687
+ add_special BattleTowerAction
add_special Special_DisplayUnownWords
add_special Special_Menu_ChallengeExplanationCancel
add_special Function17d2b6
@@ -178,7 +178,7 @@ SpecialsPointers:: ; c029
add_special Function1037eb
add_special Function10383c
add_special Mobile_HealParty
- add_special Function14168
+ add_special RefreshSprites
add_special Function1037c2
add_special Function10630f
add_special Function103780
@@ -465,8 +465,8 @@ UnknownText_0xc3d6: ; 0xc3d6
db "@"
; 0xc3db
-Special_WhiteBGMapBufferScreen: ; c3db
- call WhiteBGMap
+Special_ClearBGPalettesBufferScreen: ; c3db
+ call ClearBGPalettes
call BufferScreen
ret
; c3e2
diff --git a/engine/sprites.asm b/engine/sprites.asm
new file mode 100755
index 000000000..517428007
--- /dev/null
+++ b/engine/sprites.asm
@@ -0,0 +1,1480 @@
+GetEmote2bpp: ; 1412a
+ ld a, $1
+ ld [rVBK], a
+ call Get2bpp
+ xor a
+ ld [rVBK], a
+ ret
+; 14135
+
+_ReplaceKrisSprite:: ; 14135
+ call GetPlayerSprite
+ ld a, [UsedSprites]
+ ld [hUsedSpriteIndex], a
+ ld a, [UsedSprites + 1]
+ ld [hUsedSpriteTile], a
+ call Function143c8
+ ret
+; 14146
+
+Function14146: ; 14146
+ ld hl, wSpriteFlags
+ ld a, [hl]
+ push af
+ res 7, [hl]
+ set 6, [hl]
+ call RunCallback_04
+ pop af
+ ld [wSpriteFlags], a
+ ret
+; 14157
+
+Function14157: ; 14157
+ ld hl, wSpriteFlags
+ ld a, [hl]
+ push af
+ set 7, [hl]
+ res 6, [hl]
+ call RunCallback_04
+ pop af
+ ld [wSpriteFlags], a
+ ret
+; 14168
+
+RefreshSprites:: ; 14168
+ call .Refresh
+ call RunCallback_04
+ ret
+; 1416f
+
+.Refresh: ; 1416f
+ xor a
+ ld bc, UsedSpritesEnd - UsedSprites
+ ld hl, UsedSprites
+ call ByteFill
+ call GetPlayerSprite
+ call AddMapSprites
+ call LoadAndSortSprites
+ ret
+; 14183
+
+GetPlayerSprite: ; 14183
+; Get Chris or Kris's sprite.
+ ld hl, .Chris
+ ld a, [wPlayerSpriteSetupFlags]
+ bit 2, a
+ jr nz, .go
+ ld a, [PlayerGender]
+ bit 0, a
+ jr z, .go
+ ld hl, .Kris
+
+.go
+ ld a, [PlayerState]
+ ld c, a
+.loop
+ ld a, [hli]
+ cp c
+ jr z, .good
+ inc hl
+ cp $ff
+ jr nz, .loop
+
+; Any player state not in the array defaults to Chris's sprite.
+ xor a ; ld a, PLAYER_NORMAL
+ ld [PlayerState], a
+ ld a, SPRITE_CHRIS
+ jr .finish
+
+.good
+ ld a, [hl]
+
+.finish
+ ld [UsedSprites + 0], a
+ ld [PlayerSprite], a
+ ld [PlayerObjectSprite], a
+ ret
+
+.Chris
+ db PLAYER_NORMAL, SPRITE_CHRIS
+ db PLAYER_BIKE, SPRITE_CHRIS_BIKE
+ db PLAYER_SURF, SPRITE_SURF
+ db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+ db $ff
+
+.Kris
+ db PLAYER_NORMAL, SPRITE_KRIS
+ db PLAYER_BIKE, SPRITE_KRIS_BIKE
+ db PLAYER_SURF, SPRITE_SURF
+ db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
+ db $ff
+; 141c9
+
+
+AddMapSprites: ; 141c9
+ call GetMapPermission
+ call CheckOutdoorMap
+ jr z, .outdoor
+ call AddIndoorSprites
+ ret
+
+.outdoor
+ call AddOutdoorSprites
+ ret
+; 141d9
+
+
+AddIndoorSprites: ; 141d9
+ ld hl, Map1ObjectSprite
+ ld a, 1
+.loop
+ push af
+ ld a, [hl]
+ call AddSpriteGFX
+ ld de, OBJECT_LENGTH
+ add hl, de
+ pop af
+ inc a
+ cp NUM_OBJECTS
+ jr nz, .loop
+ ret
+; 141ee
+
+
+AddOutdoorSprites: ; 141ee
+ ld a, [MapGroup]
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, OutdoorSprites
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld c, MAX_OUTDOOR_SPRITES
+.loop
+ push bc
+ ld a, [hli]
+ call AddSpriteGFX
+ pop bc
+ dec c
+ jr nz, .loop
+ ret
+; 14209
+
+
+RunCallback_04: ; 14209
+ ld a, $4
+ call RunMapCallback
+ call Function1439b
+ call Function14215
+ ret
+; 14215
+
+Function14215: ; 14215
+ ld a, [wSpriteFlags]
+ bit 6, a
+ ret nz
+ ld c, EMOTE_08
+ callba LoadEmote
+ call GetMapPermission
+ call CheckOutdoorMap
+ ld c, EMOTE_0B
+ jr z, .outdoor
+ ld c, EMOTE_0A
+
+.outdoor
+ callba LoadEmote
+ ret
+; 14236
+
+
+
+SafeGetSprite: ; 14236
+ push hl
+ call GetSprite
+ pop hl
+ ret
+; 1423c
+
+GetSprite: ; 1423c
+ call GetMonSprite
+ ret c
+
+ ld hl, SpriteHeaders ; address
+ dec a
+ ld c, a
+ ld b, 0
+ ld a, 6
+ call AddNTimes
+ ; load the address into de
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ; load the length into c
+ ld a, [hli]
+ swap a
+ ld c, a
+ ; load the sprite bank into both b and h
+ ld b, [hl]
+ ld a, [hli]
+ ; load the sprite type into l
+ ld l, [hl]
+ ld h, a
+ ret
+; 14259
+
+
+GetMonSprite: ; 14259
+; Return carry if a monster sprite was loaded.
+
+ cp SPRITE_POKEMON
+ jr c, .Normal
+ cp SPRITE_DAYCARE_MON_1
+ jr z, .wBreedMon1
+ cp SPRITE_DAYCARE_MON_2
+ jr z, .wBreedMon2
+ cp SPRITE_VARS
+ jr nc, .Variable
+ jr .Icon
+
+.Normal
+ and a
+ ret
+
+.Icon
+ sub SPRITE_POKEMON
+ ld e, a
+ ld d, 0
+ ld hl, SpriteMons
+ add hl, de
+ ld a, [hl]
+ jr .Mon
+
+.wBreedMon1
+ ld a, [wBreedMon1Species]
+ jr .Mon
+
+.wBreedMon2
+ ld a, [wBreedMon2Species]
+
+.Mon
+ ld e, a
+ and a
+ jr z, .NoBreedmon
+
+ callba Function8e82b
+
+ ld l, 1
+ ld h, 0
+ scf
+ ret
+
+.Variable
+ sub SPRITE_VARS
+ ld e, a
+ ld d, 0
+ ld hl, VariableSprites
+ add hl, de
+ ld a, [hl]
+ and a
+ jp nz, GetMonSprite
+
+.NoBreedmon
+ ld a, 1
+ ld l, 1
+ ld h, 0
+ and a
+ ret
+; 142a7
+
+
+_DoesSpriteHaveFacings:: ; 142a7
+; Checks to see whether we can apply a facing to a sprite.
+; Returns carry unless the sprite is a Pokemon or a Still Sprite.
+ cp SPRITE_POKEMON
+ jr nc, .only_down
+
+ push hl
+ push bc
+ ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type
+ dec a
+ ld c, a
+ ld b, 0
+ ld a, NUM_SPRITEHEADER_FIELDS
+ call AddNTimes
+ ld a, [hl]
+ pop bc
+ pop hl
+ cp STILL_SPRITE
+ jr nz, .only_down
+ scf
+ ret
+
+.only_down
+ and a
+ ret
+; 142c4
+
+
+_GetSpritePalette:: ; 142c4
+ ld a, c
+ call GetMonSprite
+ jr c, .is_pokemon
+
+ ld hl, SpriteHeaders + 5 ; palette
+ dec a
+ ld c, a
+ ld b, 0
+ ld a, 6
+ call AddNTimes
+ ld c, [hl]
+ ret
+
+.is_pokemon
+ xor a
+ ld c, a
+ ret
+; 142db
+
+
+LoadAndSortSprites: ; 142db
+ call LoadSpriteGFX
+ call SortUsedSprites
+ call ArrangeUsedSprites
+ ret
+; 142e5
+
+
+AddSpriteGFX: ; 142e5
+; Add any new sprite ids to a list of graphics to be loaded.
+; Return carry if the list is full.
+
+ push hl
+ push bc
+ ld b, a
+ ld hl, UsedSprites + 2
+ ld c, SPRITE_GFX_LIST_CAPACITY - 1
+.loop
+ ld a, [hl]
+ cp b
+ jr z, .exists
+ and a
+ jr z, .new
+rept 2
+ inc hl
+endr
+ dec c
+ jr nz, .loop
+
+ pop bc
+ pop hl
+ scf
+ ret
+
+.exists
+ pop bc
+ pop hl
+ and a
+ ret
+
+.new
+ ld [hl], b
+ pop bc
+ pop hl
+ and a
+ ret
+; 14306
+
+
+LoadSpriteGFX: ; 14306
+; Bug: b is not preserved, so
+; it's useless as a next count.
+
+ ld hl, UsedSprites
+ ld b, SPRITE_GFX_LIST_CAPACITY
+.loop
+ ld a, [hli]
+ and a
+ jr z, .done
+ push hl
+ call .LoadSprite
+ pop hl
+ ld [hli], a
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+
+.LoadSprite
+ call GetSprite
+ ld a, l
+ ret
+; 1431e
+
+
+SortUsedSprites: ; 1431e
+; Bubble-sort sprites by type.
+
+; Run backwards through UsedSprites to find the last one.
+
+ ld c, SPRITE_GFX_LIST_CAPACITY
+ ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
+.FindLastSprite
+ ld a, [de]
+ and a
+ jr nz, .FoundLastSprite
+rept 2
+ dec de
+endr
+ dec c
+ jr nz, .FindLastSprite
+.FoundLastSprite
+ dec c
+ jr z, .quit
+
+; If the length of the current sprite is
+; higher than a later one, swap them.
+
+ inc de
+ ld hl, UsedSprites + 1
+
+.CheckSprite
+ push bc
+ push de
+ push hl
+
+.CheckFollowing
+ ld a, [de]
+ cp [hl]
+ jr nc, .loop
+
+; Swap the two sprites.
+
+ ld b, a
+ ld a, [hl]
+ ld [hl], b
+ ld [de], a
+ dec de
+ dec hl
+ ld a, [de]
+ ld b, a
+ ld a, [hl]
+ ld [hl], b
+ ld [de], a
+ inc de
+ inc hl
+
+; Keep doing this until everything's in order.
+
+.loop
+rept 2
+ dec de
+endr
+ dec c
+ jr nz, .CheckFollowing
+
+ pop hl
+rept 2
+ inc hl
+endr
+ pop de
+ pop bc
+ dec c
+ jr nz, .CheckSprite
+
+.quit
+ ret
+; 14355
+
+
+ArrangeUsedSprites: ; 14355
+; Get the length of each sprite and space them out in VRAM.
+; Crystal introduces a second table in VRAM bank 0.
+
+ ld hl, UsedSprites
+ ld c, SPRITE_GFX_LIST_CAPACITY
+ ld b, 0
+.FirstTableLength
+; Keep going until the end of the list.
+ ld a, [hli]
+ and a
+ jr z, .quit
+
+ ld a, [hl]
+ call GetSpriteLength
+
+; Spill over into the second table after $80 tiles.
+ add b
+ cp $80
+ jr z, .loop
+ jr nc, .SecondTable
+
+.loop
+ ld [hl], b
+ inc hl
+ ld b, a
+
+; Assumes the next table will be reached before c hits 0.
+ dec c
+ jr nz, .FirstTableLength
+
+.SecondTable
+; The second tile table starts at tile $80.
+ ld b, $80
+ dec hl
+.SecondTableLength
+; Keep going until the end of the list.
+ ld a, [hli]
+ and a
+ jr z, .quit
+
+ ld a, [hl]
+ call GetSpriteLength
+
+; There are only two tables, so don't go any further than that.
+ add b
+ jr c, .quit
+
+ ld [hl], b
+ ld b, a
+ inc hl
+
+ dec c
+ jr nz, .SecondTableLength
+
+.quit
+ ret
+; 14386
+
+
+GetSpriteLength: ; 14386
+; Return the length of sprite type a in tiles.
+
+ cp WALKING_SPRITE
+ jr z, .AnyDirection
+ cp STANDING_SPRITE
+ jr z, .AnyDirection
+ cp STILL_SPRITE
+ jr z, .OneDirection
+
+ ld a, 12
+ ret
+
+.AnyDirection
+ ld a, 12
+ ret
+
+.OneDirection
+ ld a, 4
+ ret
+; 1439b
+
+
+Function1439b: ; 1439b
+ ld hl, UsedSprites
+ ld c, SPRITE_GFX_LIST_CAPACITY
+.loop
+ ld a, [wSpriteFlags]
+ res 5, a
+ ld [wSpriteFlags], a
+ ld a, [hli]
+ and a
+ jr z, .done
+ ld [hUsedSpriteIndex], a
+ ld a, [hli]
+ ld [hUsedSpriteTile], a
+ bit 7, a
+ jr z, .dont_set
+ ld a, [wSpriteFlags]
+ set 5, a
+ ld [wSpriteFlags], a
+
+.dont_set
+ push bc
+ push hl
+ call Function143c8
+ pop hl
+ pop bc
+ dec c
+ jr nz, .loop
+
+.done
+ ret
+; 143c8
+
+Function143c8: ; 143c8
+ ld a, [hUsedSpriteIndex]
+ call SafeGetSprite
+ ld a, [hUsedSpriteTile]
+ call .GetTileAddr
+ push hl
+ push de
+ push bc
+ ld a, [wSpriteFlags]
+ bit 7, a
+ jr nz, .skip
+ call .CopyToVram
+
+.skip
+ pop bc
+ ld l, c
+ ld h, $0
+rept 4
+ add hl, hl
+endr
+ pop de
+ add hl, de
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [wSpriteFlags]
+ bit 5, a
+ jr nz, .done
+ bit 6, a
+ jr nz, .done
+ ld a, [hUsedSpriteIndex]
+ call _DoesSpriteHaveFacings
+ jr c, .done
+ ld a, h
+ add $8
+ ld h, a
+ call .CopyToVram
+
+.done
+ ret
+; 14406
+
+.GetTileAddr: ; 14406
+; Return the address of tile (a) in (hl).
+ and $7f
+ ld l, a
+ ld h, 0
+rept 4
+ add hl, hl
+endr
+ ld a, l
+ add VTiles0 % $100
+ ld l, a
+ ld a, h
+ adc VTiles0 / $100
+ ld h, a
+ ret
+; 14418
+
+.CopyToVram: ; 14418
+ ld a, [rVBK]
+ push af
+ ld a, [wSpriteFlags]
+ bit 5, a
+ ld a, $1
+ jr z, .bankswitch
+ ld a, $0
+
+.bankswitch
+ ld [rVBK], a
+ call Get2bpp
+ pop af
+ ld [rVBK], a
+ ret
+; 1442f
+
+LoadEmote:: ; 1442f
+; Get the address of the pointer to emote c.
+ ld a, c
+ ld bc, 6
+ ld hl, EmotesPointers
+ call AddNTimes
+; Load the emote address into de
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+; load the length of the emote (in tiles) into c
+ inc hl
+ ld c, [hl]
+ swap c
+; load the emote pointer bank into b
+ inc hl
+ ld b, [hl]
+; load the VRAM destination into hl
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+; if the emote has a length of 0, do not proceed (error handling)
+ ld a, c
+ and a
+ ret z
+ call GetEmote2bpp
+ ret
+; 1444d
+
+emote_header: MACRO
+ dw \1
+ db \2 tiles, BANK(\1)
+ dw \3
+ENDM
+
+EmotesPointers: ; 144d
+; dw source address
+; db length, bank
+; dw dest address
+
+ emote_header ShockEmote, 4, VTiles1 tile $78
+ emote_header QuestionEmote, 4, VTiles1 tile $78
+ emote_header HappyEmote, 4, VTiles1 tile $78
+ emote_header SadEmote, 4, VTiles1 tile $78
+ emote_header HeartEmote, 4, VTiles1 tile $78
+ emote_header BoltEmote, 4, VTiles1 tile $78
+ emote_header SleepEmote, 4, VTiles1 tile $78
+ emote_header FishEmote, 4, VTiles1 tile $78
+ emote_header FishingRodGFX1, 1, VTiles1 tile $7c
+ emote_header FishingRodGFX2, 2, VTiles1 tile $7c
+ emote_header FishingRodGFX3, 2, VTiles1 tile $7e
+ emote_header FishingRodGFX4, 1, VTiles1 tile $7e
+; 14495
+
+
+SpriteMons: ; 14495
+ db UNOWN
+ db GEODUDE
+ db GROWLITHE
+ db WEEDLE
+ db SHELLDER
+ db ODDISH
+ db GENGAR
+ db ZUBAT
+ db MAGIKARP
+ db SQUIRTLE
+ db TOGEPI
+ db BUTTERFREE
+ db DIGLETT
+ db POLIWAG
+ db PIKACHU
+ db CLEFAIRY
+ db CHARMANDER
+ db JYNX
+ db STARMIE
+ db BULBASAUR
+ db JIGGLYPUFF
+ db GRIMER
+ db EKANS
+ db PARAS
+ db TENTACOOL
+ db TAUROS
+ db MACHOP
+ db VOLTORB
+ db LAPRAS
+ db RHYDON
+ db MOLTRES
+ db SNORLAX
+ db GYARADOS
+ db LUGIA
+ db HO_OH
+; 144b8
+
+
+OutdoorSprites: ; 144b8
+; Valid sprite IDs for each map group.
+
+ dw Group1Sprites
+ dw Group2Sprites
+ dw Group3Sprites
+ dw Group4Sprites
+ dw Group5Sprites
+ dw Group6Sprites
+ dw Group7Sprites
+ dw Group8Sprites
+ dw Group9Sprites
+ dw Group10Sprites
+ dw Group11Sprites
+ dw Group12Sprites
+ dw Group13Sprites
+ dw Group14Sprites
+ dw Group15Sprites
+ dw Group16Sprites
+ dw Group17Sprites
+ dw Group18Sprites
+ dw Group19Sprites
+ dw Group20Sprites
+ dw Group21Sprites
+ dw Group22Sprites
+ dw Group23Sprites
+ dw Group24Sprites
+ dw Group25Sprites
+ dw Group26Sprites
+; 144ec
+
+
+Group13Sprites: ; 144ec
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14503
+
+Group23Sprites: ; 14503
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1451a
+
+Group14Sprites: ; 1451a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14531
+
+Group6Sprites: ; 14531
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_BLUE
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SWIMMER_GUY
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14548
+
+Group7Sprites: ; 14548
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 1455f
+
+Group25Sprites: ; 1455f
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKET
+ db SPRITE_MISTY
+ db SPRITE_POKE_BALL
+ db SPRITE_SLOWPOKE
+; 14576
+
+Group21Sprites: ; 14576
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_POLIWAG
+ db SPRITE_TEACHER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_BIKER
+ db SPRITE_SILVER
+ db SPRITE_BLUE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1458d
+
+Group18Sprites: ; 1458d
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145a4
+
+Group12Sprites: ; 145a4
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145bb
+
+Group17Sprites: ; 145bb
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_MACHOP
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 145d2
+
+Group16Sprites: ; 145d2
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_POKEFAN_M
+ db SPRITE_BUENA
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_MACHOP
+ db SPRITE_BIKER
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 145e9
+
+Group24Sprites: ; 145e9
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14600
+
+Group26Sprites: ; 14600
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14617
+
+Group19Sprites: ; 14617
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SILVER
+ db SPRITE_TEACHER
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_YOUNGSTER
+ db SPRITE_MONSTER
+ db SPRITE_GRAMPS
+ db SPRITE_BUG_CATCHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1462e
+
+Group10Sprites: ; 1462e
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 14645
+
+Group4Sprites: ; 14645
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_FISHER
+ db SPRITE_LASS
+ db SPRITE_OFFICER
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_BUG_CATCHER
+ db SPRITE_SUPER_NERD
+ db SPRITE_WEIRD_TREE
+ db SPRITE_POKE_BALL
+ db SPRITE_FRUIT_TREE
+; 1465c
+
+Group8Sprites: ; 1465c
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_KURT_OUTSIDE
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_TEACHER
+ db SPRITE_AZALEA_ROCKET
+ db SPRITE_LASS
+ db SPRITE_SILVER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 14673
+
+Group11Sprites: ; 14673
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_OFFICER
+ db SPRITE_POKEFAN_M
+ db SPRITE_DAYCARE_MON_1
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_ROCKET
+ db SPRITE_LASS
+ db SPRITE_DAYCARE_MON_2
+ db SPRITE_FRUIT_TREE
+ db SPRITE_SLOWPOKE
+; 1468a
+
+Group22Sprites: ; 1468a
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146a1
+
+Group1Sprites: ; 146a1
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_STANDING_YOUNGSTER
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_OLIVINE_RIVAL
+ db SPRITE_POKEFAN_M
+ db SPRITE_LASS
+ db SPRITE_BUENA
+ db SPRITE_SWIMMER_GIRL
+ db SPRITE_SAILOR
+ db SPRITE_POKEFAN_F
+ db SPRITE_SUPER_NERD
+ db SPRITE_TAUROS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_ROCK
+; 146b8
+
+Group9Sprites: ; 146b8
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LANCE
+ db SPRITE_GRAMPS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_LASS
+ db SPRITE_YOUNGSTER
+ db SPRITE_GYARADOS
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146cf
+
+Group2Sprites: ; 146cf
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146e6
+
+Group5Sprites: ; 146e6
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_GRAMPS
+ db SPRITE_YOUNGSTER
+ db SPRITE_LASS
+ db SPRITE_SUPER_NERD
+ db SPRITE_COOLTRAINER_M
+ db SPRITE_POKEFAN_M
+ db SPRITE_BLACK_BELT
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_FISHER
+ db SPRITE_FRUIT_TREE
+ db SPRITE_POKE_BALL
+; 146fd
+
+Group3Sprites: ; 146fd
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_GAMEBOY_KID
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_LASS
+ db SPRITE_POKEFAN_F
+ db SPRITE_TEACHER
+ db SPRITE_YOUNGSTER
+ db SPRITE_GROWLITHE
+ db SPRITE_POKEFAN_M
+ db SPRITE_ROCKER
+ db SPRITE_FISHER
+ db SPRITE_SCIENTIST
+ db SPRITE_POKE_BALL
+ db SPRITE_BOULDER
+; 14714
+
+Group15Sprites: ; 14714
+ db SPRITE_SUICUNE
+ db SPRITE_SILVER_TROPHY
+ db SPRITE_FAMICOM
+ db SPRITE_POKEDEX
+ db SPRITE_WILL
+ db SPRITE_KAREN
+ db SPRITE_NURSE
+ db SPRITE_OLD_LINK_RECEPTIONIST
+ db SPRITE_BIG_LAPRAS
+ db SPRITE_BIG_ONIX
+ db SPRITE_SUDOWOODO
+ db SPRITE_BIG_SNORLAX
+ db SPRITE_SAILOR
+ db SPRITE_FISHING_GURU
+ db SPRITE_GENTLEMAN
+ db SPRITE_SUPER_NERD
+ db SPRITE_HO_OH
+ db SPRITE_TEACHER
+ db SPRITE_COOLTRAINER_F
+ db SPRITE_YOUNGSTER
+ db SPRITE_FAIRY
+ db SPRITE_POKE_BALL
+ db SPRITE_ROCK
+; 1472b
+
+Group20Sprites: ; 1472b
+ db SPRITE_OAK
+ db SPRITE_FISHER
+ db SPRITE_TEACHER
+ db SPRITE_TWIN
+ db SPRITE_POKEFAN_M
+ db SPRITE_GRAMPS
+ db SPRITE_FAIRY
+ db SPRITE_SILVER
+ db SPRITE_FISHING_GURU
+ db SPRITE_POKE_BALL
+ db SPRITE_POKEDEX
+; 14736
+
+
+SpriteHeaders: ; 14736
+INCLUDE "gfx/overworld/sprite_headers.asm"
+; 1499a
diff --git a/engine/startmenu.asm b/engine/startmenu.asm
new file mode 100755
index 000000000..1c7768850
--- /dev/null
+++ b/engine/startmenu.asm
@@ -0,0 +1,1970 @@
+StartMenu:: ; 125cd
+
+ call ResetTextRelatedRAM
+
+ ld de, SFX_MENU
+ call PlaySFX
+
+ callba Function6454
+
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ ld hl, .MenuDataHeader
+ jr z, .GotMenuData
+ ld hl, .ContestMenuDataHeader
+.GotMenuData
+
+ call LoadMenuDataHeader
+ call .SetUpMenuItems
+ ld a, [wd0d2]
+ ld [wMenuCursorBuffer], a
+ call .DrawMenuAccount_
+ call MenuFunc_1e7f
+ call .DrawBugContestStatusBox
+ call Function2e31
+ call Function2e20
+ callba Function64bf
+ call .DrawBugContestStatus
+ call UpdateTimePals
+ jr .Select
+
+.Reopen
+ call UpdateSprites
+ call UpdateTimePals
+ call .SetUpMenuItems
+ ld a, [wd0d2]
+ ld [wMenuCursorBuffer], a
+
+.Select
+ call .GetInput
+ jr c, .Exit
+ call .DrawMenuAccount
+ ld a, [wMenuCursorBuffer]
+ ld [wd0d2], a
+ call PlayClickSFX
+ call Function1bee
+ call .OpenMenu
+
+; Menu items have different return functions.
+; For example, saving exits the menu.
+ ld hl, .MenuReturns
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.MenuReturns
+ dw .Reopen
+ dw .Exit
+ dw .ExitMenuCallFuncLoadMoveSprites
+ dw .ExitMenuRunScriptLoadMoveSprites
+ dw .ExitMenuRunScript
+ dw .ReturnEnd
+ dw .ReturnRedraw
+
+.Exit
+ ld a, [hOAMUpdate]
+ push af
+ ld a, 1
+ ld [hOAMUpdate], a
+ call LoadFontsExtra
+ pop af
+ ld [hOAMUpdate], a
+.ReturnEnd
+ call ExitMenu
+.ReturnEnd2
+ call LoadMoveSprites
+ call UpdateTimePals
+ ret
+
+.GetInput
+; Return carry on exit, and no-carry on selection.
+ xor a
+ ld [hBGMapMode], a
+ call .DrawMenuAccount
+ call SetUpMenu
+ ld a, $ff
+ ld [MenuSelection], a
+.loop
+ call .PrintMenuAccount
+ call Function1f1a
+ ld a, [wcf73]
+ cp B_BUTTON
+ jr z, .b
+ cp A_BUTTON
+ jr z, .a
+ jr .loop
+.a
+ call PlayClickSFX
+ and a
+ ret
+.b
+ scf
+ ret
+; 12691
+
+.ExitMenuRunScript ; 12691
+ call ExitMenu
+ ld a, HMENURETURN_SCRIPT
+ ld [hMenuReturn], a
+ ret
+; 12699
+
+.ExitMenuRunScriptLoadMoveSprites ; 12699
+ call ExitMenu
+ ld a, HMENURETURN_SCRIPT
+ ld [hMenuReturn], a
+ jr .ReturnEnd2
+; 126a2
+
+.ExitMenuCallFuncLoadMoveSprites ; 126a2
+ call ExitMenu
+ ld hl, wQueuedScriptAddr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [wQueuedScriptBank]
+ rst FarCall
+ jr .ReturnEnd2
+; 126b1
+
+.ReturnRedraw ; 126b1
+ call .Clear
+ jp .Reopen
+; 126b7
+
+.Clear ; 126b7
+ call ClearBGPalettes
+ call Call_ExitMenu
+ call Function2bae
+ call .DrawMenuAccount_
+ call MenuFunc_1e7f
+ call .DrawBugContestStatus
+ call UpdateSprites
+ call Functiond90
+ call Function2b5c
+ ret
+; 126d3
+
+
+.MenuDataHeader
+ db $40 ; tile backup
+ db 0, 10 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData
+ db 1 ; default selection
+
+.ContestMenuDataHeader
+ db $40 ; tile backup
+ db 2, 10 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData
+ db 1 ; default selection
+
+.MenuData
+ db %10101000 ; x padding, wrap around, start can close
+ dn 0, 0 ; rows, columns
+ dw MenuItemsList
+ dw .MenuString
+ dw .Items
+
+.Items
+ dw StartMenu_Pokedex, .PokedexString, .PokedexDesc
+ dw StartMenu_Pokemon, .PartyString, .PartyDesc
+ dw StartMenu_Pack, .PackString, .PackDesc
+ dw StartMenu_Status, .StatusString, .StatusDesc
+ dw StartMenu_Save, .SaveString, .SaveDesc
+ dw StartMenu_Option, .OptionString, .OptionDesc
+ dw StartMenu_Exit, .ExitString, .ExitDesc
+ dw StartMenu_Pokegear, .PokegearString, .PokegearDesc
+ dw StartMenu_Quit, .QuitString, .QuitDesc
+
+.PokedexString db "#DEX@"
+.PartyString db "#MON@"
+.PackString db "PACK@"
+.StatusString db "<PLAYER>@"
+.SaveString db "SAVE@"
+.OptionString db "OPTION@"
+.ExitString db "EXIT@"
+.PokegearString db $24, "GEAR@"
+.QuitString db "QUIT@"
+
+.PokedexDesc db "#MON"
+ next "database@"
+
+.PartyDesc db "Party ", $4a
+ next "status@"
+
+.PackDesc db "Contains"
+ next "items@"
+
+.PokegearDesc db "Trainer's"
+ next "key device@"
+
+.StatusDesc db "Your own"
+ next "status@"
+
+.SaveDesc db "Save your"
+ next "progress@"
+
+.OptionDesc db "Change"
+ next "settings@"
+
+.ExitDesc db "Close this"
+ next "menu@"
+
+.QuitDesc db "Quit and"
+ next "be judged.@"
+
+
+.OpenMenu ; 127e5
+ ld a, [MenuSelection]
+ call .GetMenuAccountTextPointer
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 127ef
+
+.MenuString ; 127ef
+ push de
+ ld a, [MenuSelection]
+ call .GetMenuAccountTextPointer
+rept 2
+ inc hl
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+; 12800
+
+.MenuDesc ; 12800
+ push de
+ ld a, [MenuSelection]
+ cp $ff
+ jr z, .none
+ call .GetMenuAccountTextPointer
+rept 4
+ inc hl
+endr
+ ld a, [hli]
+ ld d, [hl]
+ ld e, a
+ pop hl
+ call PlaceString
+ ret
+.none
+ pop de
+ ret
+; 12819
+
+
+.GetMenuAccountTextPointer ; 12819
+ ld e, a
+ ld d, 0
+ ld hl, wcf97
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+rept 6
+ add hl, de
+endr
+ ret
+; 12829
+
+
+.SetUpMenuItems ; 12829
+ xor a
+ ld [wcf76], a
+ call .FillMenuList
+
+ ld hl, StatusFlags
+ bit 0, [hl]
+ jr z, .no_pokedex
+ ld a, 0 ; pokedex
+ call .AppendMenuList
+.no_pokedex
+
+ ld a, [PartyCount]
+ and a
+ jr z, .no_pokemon
+ ld a, 1 ; pokemon
+ call .AppendMenuList
+.no_pokemon
+
+ ld a, [wLinkMode]
+ and a
+ jr nz, .no_pack
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ jr nz, .no_pack
+ ld a, 2 ; pack
+ call .AppendMenuList
+.no_pack
+
+ ld hl, wPokegearFlags
+ bit 7, [hl]
+ jr z, .no_pokegear
+ ld a, 7 ; pokegear
+ call .AppendMenuList
+.no_pokegear
+
+ ld a, 3 ; status
+ call .AppendMenuList
+
+ ld a, [wLinkMode]
+ and a
+ jr nz, .no_save
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ ld a, 8 ; quit
+ jr nz, .write
+ ld a, 4 ; save
+.write
+ call .AppendMenuList
+.no_save
+
+ ld a, 5 ; option
+ call .AppendMenuList
+ ld a, 6 ; exit
+ call .AppendMenuList
+ ld a, c
+ ld [MenuItemsList], a
+ ret
+; 1288d
+
+
+.FillMenuList ; 1288d
+ xor a
+ ld hl, MenuItemsList
+ ld [hli], a
+ ld a, -1
+ ld bc, MenuItemsListEnd - (MenuItemsList + 1)
+ call ByteFill
+ ld de, MenuItemsList + 1
+ ld c, 0
+ ret
+; 128a0
+
+.AppendMenuList ; 128a0
+ ld [de], a
+ inc de
+ inc c
+ ret
+; 128a4
+
+.DrawMenuAccount_ ; 128a4
+ jp .DrawMenuAccount
+; 128a7
+
+.PrintMenuAccount ; 128a7
+ call .IsMenuAccountOn
+ ret z
+ call .DrawMenuAccount
+ decoord 0, 14
+ jp .MenuDesc
+; 128b4
+
+.DrawMenuAccount ; 128b4
+ call .IsMenuAccountOn
+ ret z
+ hlcoord 0, 13
+ lb bc, 5, 10
+ call ClearBox
+ hlcoord 0, 13
+ ld b, 3
+ ld c, 8
+ jp TextBoxPalette
+; 128cb
+
+.IsMenuAccountOn ; 128cb
+ ld a, [Options2]
+ and 1
+ ret
+; 128d1
+
+.DrawBugContestStatusBox ; 128d1
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ ret z
+ callba Function24bdc
+ ret
+; 128de
+
+.DrawBugContestStatus ; 128de
+ ld hl, StatusFlags2
+ bit 2, [hl] ; bug catching contest
+ jr nz, .contest
+ ret
+.contest
+ callba Function24be7
+ ret
+; 128ed
+
+
+StartMenu_Exit: ; 128ed
+; Exit the menu.
+
+ ld a, 1
+ ret
+; 128f0
+
+
+StartMenu_Quit: ; 128f0
+; Retire from the bug catching contest.
+
+ ld hl, .EndTheContestText
+ call Function12cf5
+ jr c, .DontEndContest
+ ld a, BANK(BugCatchingContestReturnToGateScript)
+ ld hl, BugCatchingContestReturnToGateScript
+ call FarQueueScript
+ ld a, 4
+ ret
+
+.DontEndContest
+ ld a, 0
+ ret
+
+.EndTheContestText
+ text_jump UnknownText_0x1c1a6c
+ db "@"
+; 1290b
+
+
+StartMenu_Save: ; 1290b
+; Save the game.
+
+ call BufferScreen
+ callba Function14a1a
+ jr nc, .asm_12919
+ ld a, 0
+ ret
+.asm_12919
+ ld a, 1
+ ret
+; 1291c
+
+
+StartMenu_Option: ; 1291c
+; Game options.
+
+ call FadeToMenu
+ callba OptionsMenu
+ ld a, 6
+ ret
+; 12928
+
+
+StartMenu_Status: ; 12928
+; Player status.
+
+ call FadeToMenu
+ callba Function25105
+ call Function2b3c
+ ld a, 0
+ ret
+; 12937
+
+
+StartMenu_Pokedex: ; 12937
+
+ ld a, [PartyCount]
+ and a
+ jr z, .asm_12949
+
+ call FadeToMenu
+ callba Pokedex
+ call Function2b3c
+
+.asm_12949
+ ld a, 0
+ ret
+; 1294c
+
+
+StartMenu_Pokegear: ; 1294c
+
+ call FadeToMenu
+ callba Function90b8d
+ call Function2b3c
+ ld a, 0
+ ret
+; 1295b
+
+
+StartMenu_Pack: ; 1295b
+
+ call FadeToMenu
+ callba Pack
+ ld a, [wcf66]
+ and a
+ jr nz, .asm_12970
+ call Function2b3c
+ ld a, 0
+ ret
+.asm_12970
+ call Function2b4d
+ ld a, 4
+ ret
+; 12976
+
+
+StartMenu_Pokemon: ; 12976
+
+ ld a, [PartyCount]
+ and a
+ jr z, .return
+
+ call FadeToMenu
+
+.choosemenu
+ xor a
+ ld [PartyMenuActionText], a ; Choose a POKéMON.
+ call ClearBGPalettes
+
+.menu
+ callba Function5004f
+ callba Function50405
+ callba Function503e0
+
+.menunoreload
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+ call WaitBGMap
+ call SetPalettes ; load regular palettes?
+ call DelayFrame
+ callba PartyMenuSelect
+ jr c, .return ; if cancelled or pressed B
+
+ call PokemonActionSubmenu
+ cp 3
+ jr z, .menu
+ cp 0
+ jr z, .choosemenu
+ cp 1
+ jr z, .menunoreload
+ cp 2
+ jr z, .quit
+
+.return
+ call Function2b3c
+ ld a, 0
+ ret
+
+.quit
+ ld a, b
+ push af
+ call Function2b4d
+ pop af
+ ret
+; 129d5
+
+Function129d5: ; 129d5
+ ld a, [NumItems]
+ and a
+ ret nz
+ ld a, [NumKeyItems]
+ and a
+ ret nz
+ ld a, [NumBalls]
+ and a
+ ret nz
+ ld hl, TMsHMs
+ ld b, NUM_TMS + NUM_HMS
+.asm_129e9
+ ld a, [hli]
+ and a
+ jr nz, .asm_129f2
+ dec b
+ jr nz, .asm_129e9
+ scf
+ ret
+.asm_129f2
+ and a
+ ret
+
+Function129f4: ; 129f4
+ push de
+ call PartyMonItemName
+ callba _CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ and a
+ jr nz, .asm_12a3f
+ ld hl, UnknownText_0x12a45
+ call MenuTextBox
+ callba Function24fbf
+ push af
+ call WriteBackup
+ call ExitMenu
+ pop af
+ jr c, .asm_12a42
+ ld hl, UnknownText_0x12a4a
+ call MenuTextBox
+ call YesNoBox
+ push af
+ call ExitMenu
+ pop af
+ jr c, .asm_12a42
+ pop hl
+ ld a, [wd107]
+ call TossItem
+ call PartyMonItemName
+ ld hl, UnknownText_0x12a4f
+ call MenuTextBox
+ call ExitMenu
+ and a
+ ret
+.asm_12a3f
+ call Function12a54
+.asm_12a42
+ pop hl
+ scf
+ ret
+; 12a45 (4:6a45)
+
+UnknownText_0x12a45: ; 0x12a45
+ ; Toss out how many @ (S)?
+ text_jump UnknownText_0x1c1a90
+ db "@"
+; 0x12a4a
+
+UnknownText_0x12a4a: ; 0x12a4a
+ ; Throw away @ @ (S)?
+ text_jump UnknownText_0x1c1aad
+ db "@"
+; 0x12a4f
+
+UnknownText_0x12a4f: ; 0x12a4f
+ ; Discarded @ (S).
+ text_jump UnknownText_0x1c1aca
+ db "@"
+; 0x12a54
+
+Function12a54: ; 12a54 (4:6a54)
+ ld hl, UnknownText_0x12a5b
+ call MenuTextBoxBackup
+ ret
+; 12a5b (4:6a5b)
+
+UnknownText_0x12a5b: ; 0x12a5b
+ ; That's too impor- tant to toss out!
+ text_jump UnknownText_0x1c1adf
+ db "@"
+; 0x12a60
+
+CantUseItem: ; 12a60
+ ld hl, CantUseItemText
+ call Function2012
+ ret
+; 12a67
+
+CantUseItemText: ; 12a67
+ text_jump UnknownText_0x1c1b03
+ db "@"
+; 12a6c
+
+
+PartyMonItemName: ; 12a6c
+ ld a, [CurItem]
+ ld [wd265], a
+ call GetItemName
+ call CopyName1
+ ret
+; 12a79
+
+
+CancelPokemonAction: ; 12a79
+ callba Function50405
+ callba Function8ea71
+ ld a, 1
+ ret
+; 12a88
+
+
+PokemonActionSubmenu: ; 12a88
+ hlcoord 1, 15
+ lb bc, 2, 18
+ call ClearBox
+ callba MonSubmenu
+ call GetCurNick
+ ld a, [MenuSelection]
+ ld hl, .Actions
+ ld de, 3
+ call IsInArray
+ jr nc, .nothing
+
+ inc hl
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+.nothing
+ ld a, 0
+ ret
+
+.Actions
+ dbw MONMENU_CUT, MonMenu_Cut ; Cut
+ dbw MONMENU_FLY, MonMenu_Fly ; Fly
+ dbw MONMENU_SURF, MonMenu_Surf ; Surf
+ dbw MONMENU_STRENGTH, MonMenu_Strength ; Strength
+ dbw MONMENU_FLASH, MonMenu_Flash ; Flash
+ dbw MONMENU_WHIRLPOOL, MonMenu_Whirlpool ; Whirlpool
+ dbw MONMENU_DIG, MonMenu_Dig ; Dig
+ dbw MONMENU_TELEPORT, MonMenu_Teleport ; Teleport
+ dbw MONMENU_SOFTBOILED, MonMenu_Softboiled_MilkDrink ; Softboiled
+ dbw MONMENU_MILKDRINK, MonMenu_Softboiled_MilkDrink ; MilkDrink
+ dbw MONMENU_HEADBUTT, MonMenu_Headbutt ; Headbutt
+ dbw MONMENU_WATERFALL, MonMenu_Waterfall ; Waterfall
+ dbw MONMENU_ROCKSMASH, MonMenu_RockSmash ; RockSmash
+ dbw MONMENU_SWEETSCENT, MonMenu_SweetScent ; SweetScent
+ dbw MONMENU_STATS, OpenPartyStats
+ dbw MONMENU_SWITCH, SwitchPartyMons
+ dbw MONMENU_ITEM, GiveTakePartyMonItem
+ dbw MONMENU_CANCEL, CancelPokemonAction
+ dbw MONMENU_MOVE, ManagePokemonMoves ; move
+ dbw MONMENU_MAIL, MonMailAction ; mail
+; 12aec
+
+
+SwitchPartyMons: ; 12aec
+
+; Don't try if there's nothing to switch!
+ ld a, [PartyCount]
+ cp 2
+ jr c, .DontSwitch
+
+ ld a, [CurPartyMon]
+ inc a
+ ld [wd0e3], a
+
+ callba Function8ea8c
+ callba Function5042d
+
+ ld a, 4
+ ld [PartyMenuActionText], a
+ callba WritePartyMenuTilemap
+ callba PrintPartyMenuText
+
+ hlcoord 0, 1
+ ld bc, 20 * 2
+ ld a, [wd0e3]
+ dec a
+ call AddNTimes
+ ld [hl], "▷"
+ call WaitBGMap
+ call SetPalettes
+ call DelayFrame
+
+ callba PartyMenuSelect
+ bit 1, b
+ jr c, .DontSwitch
+
+ callba _SwitchPartyMons
+
+ xor a
+ ld [PartyMenuActionText], a
+
+ callba Function5004f
+ callba Function50405
+ callba Function503e0
+
+ ld a, 1
+ ret
+
+.DontSwitch
+ xor a
+ ld [PartyMenuActionText], a
+ call CancelPokemonAction
+ ret
+; 12b60
+
+
+GiveTakePartyMonItem: ; 12b60
+
+; Eggs can't hold items!
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .asm_12ba6
+
+ ld hl, GiveTakeItemMenuData
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ call ExitMenu
+ jr c, .asm_12ba6
+
+ call GetCurNick
+ ld hl, StringBuffer1
+ ld de, wd050
+ ld bc, $b
+ call CopyBytes
+ ld a, [MenuSelection2]
+ cp 1
+ jr nz, .asm_12ba0
+
+ call LoadStandardMenuDataHeader
+ call ClearPalettes
+ call Function12ba9
+ call ClearPalettes
+ call LoadFontsBattleExtra
+ call ExitMenu
+ ld a, 0
+ ret
+
+.asm_12ba0
+ call TakePartyItem
+ ld a, 3
+ ret
+
+.asm_12ba6
+ ld a, 3
+ ret
+; 12ba9
+
+
+Function12ba9: ; 12ba9
+
+ callba Function106a5
+
+.loop
+ callba Function106be
+
+ ld a, [wcf66]
+ and a
+ jr z, .quit
+
+ ld a, [wcf65]
+ cp 2
+ jr z, .next
+
+ call CheckTossableItem
+ ld a, [wItemAttributeParamBuffer]
+ and a
+ jr nz, .next
+
+ call Function12bd9
+ jr .quit
+
+.next
+ ld hl, CantBeHeldText
+ call MenuTextBoxBackup
+ jr .loop
+
+.quit
+ ret
+; 12bd9
+
+
+Function12bd9: ; 12bd9
+
+ call SpeechTextBox
+ call PartyMonItemName
+ call GetPartyItemLocation
+ ld a, [hl]
+ and a
+ jr z, .asm_12bf4
+
+ push hl
+ ld d, a
+ callba ItemIsMail
+ pop hl
+ jr c, .asm_12c01
+ ld a, [hl]
+ jr .asm_12c08
+
+.asm_12bf4
+ call Function12cea
+ ld hl, MadeHoldText
+ call MenuTextBoxBackup
+ call GivePartyItem
+ ret
+
+.asm_12c01
+ ld hl, PleaseRemoveMailText
+ call MenuTextBoxBackup
+ ret
+
+.asm_12c08
+ ld [wd265], a
+ call GetItemName
+ ld hl, SwitchAlreadyHoldingText
+ call Function12cf5
+ jr c, .asm_12c4b
+
+ call Function12cea
+ ld a, [wd265]
+ push af
+ ld a, [CurItem]
+ ld [wd265], a
+ pop af
+ ld [CurItem], a
+ call Function12cdf
+ jr nc, .asm_12c3c
+
+ ld hl, TookAndMadeHoldText
+ call MenuTextBoxBackup
+ ld a, [wd265]
+ ld [CurItem], a
+ call GivePartyItem
+ ret
+
+.asm_12c3c
+ ld a, [wd265]
+ ld [CurItem], a
+ call Function12cdf
+ ld hl, ItemStorageIsFullText
+ call MenuTextBoxBackup
+
+.asm_12c4b
+ ret
+; 12c4c
+
+
+GivePartyItem: ; 12c4c
+
+ call GetPartyItemLocation
+ ld a, [CurItem]
+ ld [hl], a
+ ld d, a
+ callba ItemIsMail
+ jr nc, .asm_12c5f
+ call Function12cfe
+
+.asm_12c5f
+ ret
+; 12c60
+
+
+TakePartyItem: ; 12c60
+
+ call SpeechTextBox
+ call GetPartyItemLocation
+ ld a, [hl]
+ and a
+ jr z, .asm_12c8c
+
+ ld [CurItem], a
+ call Function12cdf
+ jr nc, .asm_12c94
+
+ callba ItemIsMail
+ call GetPartyItemLocation
+ ld a, [hl]
+ ld [wd265], a
+ ld [hl], NO_ITEM
+ call GetItemName
+ ld hl, TookFromText
+ call MenuTextBoxBackup
+ jr .asm_12c9a
+
+.asm_12c8c
+ ld hl, IsntHoldingAnythingText
+ call MenuTextBoxBackup
+ jr .asm_12c9a
+
+.asm_12c94
+ ld hl, ItemStorageIsFullText
+ call MenuTextBoxBackup
+
+.asm_12c9a
+ ret
+; 12c9b
+
+
+GiveTakeItemMenuData: ; 12c9b
+ db %01010000
+ db 12, 12 ; start coords
+ db 17, 19 ; end coords
+ dw .Items
+ db 1 ; default option
+
+.Items
+ db %10000000 ; x padding
+ db 2 ; # items
+ db "GIVE@"
+ db "TAKE@"
+; 12caf
+
+
+TookAndMadeHoldText: ; 12caf
+ text_jump UnknownText_0x1c1b2c
+ db "@"
+; 12cb4
+
+MadeHoldText: ; 12cb4
+ text_jump UnknownText_0x1c1b57
+ db "@"
+; 12cb9
+
+PleaseRemoveMailText: ; 12cb9
+ text_jump UnknownText_0x1c1b6f
+ db "@"
+; 12cbe
+
+IsntHoldingAnythingText: ; 12cbe
+ text_jump UnknownText_0x1c1b8e
+ db "@"
+; 12cc3
+
+ItemStorageIsFullText: ; 12cc3
+ text_jump UnknownText_0x1c1baa
+ db "@"
+; 12cc8
+
+TookFromText: ; 12cc8
+ text_jump UnknownText_0x1c1bc4
+ db "@"
+; 12ccd
+
+SwitchAlreadyHoldingText: ; 12ccd
+ text_jump UnknownText_0x1c1bdc
+ db "@"
+; 12cd2
+
+CantBeHeldText: ; 12cd2
+ text_jump UnknownText_0x1c1c09
+ db "@"
+; 12cd7
+
+
+GetPartyItemLocation: ; 12cd7
+ push af
+ ld a, MON_ITEM
+ call GetPartyParamLocation
+ pop af
+ ret
+; 12cdf
+
+
+Function12cdf: ; 12cdf
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, NumItems
+ jp ReceiveItem
+; 12cea
+
+
+Function12cea: ; 12cea (4:6cea)
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld hl, NumItems
+ jp TossItem
+
+Function12cf5: ; 12cf5
+ call MenuTextBox
+ call YesNoBox
+ jp ExitMenu
+; 12cfe
+
+
+Function12cfe: ; 12cfe (4:6cfe)
+ ld de, wd002
+ callba Function11e75
+ ld hl, PlayerName
+ ld de, wd023
+ ld bc, $a
+ call CopyBytes
+ ld hl, PlayerID
+ ld bc, $2
+ call CopyBytes
+ ld a, [CurPartySpecies]
+ ld [de], a
+ inc de
+ ld a, [CurItem]
+ ld [de], a
+ ld a, [CurPartyMon]
+ ld hl, sPartyScratch1
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ call AddNTimes
+ ld d, h
+ ld e, l
+ ld hl, wd002
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld a, BANK(sPartyScratch1)
+ call GetSRAMBank
+ call CopyBytes
+ call CloseSRAM
+ ret
+
+MonMailAction: ; 12d45
+; If in the time capsule or trade center,
+; selecting the mail only allows you to
+; read the mail.
+ ld a, [wLinkMode]
+ cp LINK_TIMECAPSULE
+ jr z, .read
+ cp LINK_TRADECENTER
+ jr z, .read
+
+; Show the READ/TAKE/QUIT menu.
+ ld hl, .MenuDataHeader
+ call LoadMenuDataHeader
+ call InterpretMenu2
+ call ExitMenu
+
+; Interpret the menu.
+ jp c, .done
+ ld a, [MenuSelection2]
+ cp $1
+ jr z, .read
+ cp $2
+ jr z, .take
+ jp .done
+
+.read
+ callba ReadPartyMonMail
+ ld a, $0
+ ret
+
+.take
+ ld hl, .sendmailtopctext
+ call Function12cf5
+ jr c, .RemoveMailToBag
+ ld a, [CurPartyMon]
+ ld b, a
+ callba Function4456e
+ jr c, .MailboxFull
+ ld hl, .sentmailtopctext
+ call MenuTextBoxBackup
+ jr .done
+
+.MailboxFull
+ ld hl, .mailboxfulltext
+ call MenuTextBoxBackup
+ jr .done
+
+.RemoveMailToBag
+ ld hl, .mailwilllosemessagetext
+ call Function12cf5
+ jr c, .done
+ call GetPartyItemLocation
+ ld a, [hl]
+ ld [CurItem], a
+ call Function12cdf
+ jr nc, .BagIsFull
+ call GetPartyItemLocation
+ ld [hl], $0
+ call GetCurNick
+ ld hl, .tookmailfrommontext
+ call MenuTextBoxBackup
+ jr .done
+
+.BagIsFull
+ ld hl, .bagfulltext
+ call MenuTextBoxBackup
+ jr .done
+
+.done
+ ld a, $3
+ ret
+; 12dc9
+
+
+.MenuDataHeader: ; 0x12dc9
+ db $40 ; flags
+ db 10, 12 ; start coords
+ db 17, 19 ; end coords
+ dw .MenuData2
+ db 1 ; default option
+; 0x12dd1
+
+.MenuData2: ; 0x12dd1
+ db $80 ; flags
+ db 3 ; items
+ db "READ@"
+ db "TAKE@"
+ db "QUIT@"
+; 0x12de2
+
+
+.mailwilllosemessagetext: ; 0x12de2
+; The MAIL will lose its message. OK?
+ text_jump UnknownText_0x1c1c22
+ db "@"
+; 0x12de7
+
+.tookmailfrommontext: ; 0x12de7
+; MAIL detached from <POKEMON>.
+ text_jump UnknownText_0x1c1c47
+ db "@"
+; 0x12dec
+
+.bagfulltext: ; 0x12dec
+; There's no space for removing MAIL.
+ text_jump UnknownText_0x1c1c62
+ db "@"
+; 0x12df1
+
+.sendmailtopctext: ; 0x12df1
+; Send the removed MAIL to your PC?
+ text_jump UnknownText_0x1c1c86
+ db "@"
+; 0x12df6
+
+.mailboxfulltext: ; 0x12df6
+; Your PC's MAILBOX is full.
+ text_jump UnknownText_0x1c1ca9
+ db "@"
+; 0x12dfb
+
+.sentmailtopctext: ; 0x12dfb
+; The MAIL was sent to your PC.
+ text_jump UnknownText_0x1c1cc4
+ db "@"
+; 0x12e00
+
+
+OpenPartyStats: ; 12e00
+ call LoadStandardMenuDataHeader
+ call ClearSprites
+; PartyMon
+ xor a
+ ld [MonType], a
+ call LowVolume
+ predef StatsScreenInit
+ call MaxVolume
+ call Call_ExitMenu
+ ld a, 0
+ ret
+; 12e1b
+
+
+MonMenu_Cut: ; 12e1b
+ callba CutFunction
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12e2d
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e2d
+ ld a, $3
+ ret
+; 12e30
+
+
+MonMenu_Fly: ; 12e30
+ callba FlyFunction
+ ld a, [wd0ec]
+ cp $2
+ jr z, .asm_12e4c
+ cp $0
+ jr z, .asm_12e4f
+ callba MobileFn_1060b5
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e4c
+ ld a, $3
+ ret
+
+.asm_12e4f
+ ld a, $0
+ ret
+
+.asm_12e52
+ ld a, $1
+ ret
+; 12e55
+
+MonMenu_Flash: ; 12e55
+ callba Functionc8ac
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12e67
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e67
+ ld a, $3
+ ret
+; 12e6a
+
+MonMenu_Strength: ; 12e6a
+ callba StrengthFunction
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12e7c
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e7c
+ ld a, $3
+ ret
+; 12e7f
+
+MonMenu_Whirlpool: ; 12e7f
+ callba WhirlpoolFunction
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12e91
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12e91
+ ld a, $3
+ ret
+; 12e94
+
+MonMenu_Waterfall: ; 12e94
+ callba Functioncade
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12ea6
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12ea6
+ ld a, $3
+ ret
+; 12ea9
+
+MonMenu_Teleport: ; 12ea9
+ callba TeleportFunction
+ ld a, [wd0ec]
+ and a
+ jr z, .asm_12eba
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12eba
+ ld a, $3
+ ret
+; 12ebd
+
+MonMenu_Surf: ; 12ebd
+ callba SurfFunction
+ ld a, [wd0ec]
+ and a
+ jr z, .asm_12ece
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12ece
+ ld a, $3
+ ret
+; 12ed1
+
+MonMenu_Dig: ; 12ed1
+ callba DigFunction
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12ee3
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12ee3
+ ld a, $3
+ ret
+; 12ee6
+
+MonMenu_Softboiled_MilkDrink: ; 12ee6
+ call Function12f05
+ jr nc, .asm_12ef3
+ callba Functionf3df
+ jr .asm_12ef9
+
+.asm_12ef3
+ ld hl, UnknownText_0x12f00
+ call PrintText
+
+.asm_12ef9
+ xor a
+ ld [PartyMenuActionText], a
+ ld a, $3
+ ret
+; 12f00
+
+UnknownText_0x12f00: ; 0x12f00
+ ; Not enough HP!
+ text_jump UnknownText_0x1c1ce3
+ db "@"
+; 0x12f05
+
+Function12f05: ; 12f05
+ ld a, MON_MAXHP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld [hDividend + 0], a
+ ld a, [hl]
+ ld [hDividend + 1], a
+ ld a, $5
+ ld [hDivisor], a
+ ld b, $2
+ call Divide
+ ld a, MON_HP + 1
+ call GetPartyParamLocation
+ ld a, [hQuotient + 2]
+ sub [hl]
+ dec hl
+ ld a, [hQuotient + 1]
+ sbc [hl]
+ ret
+; 12f26
+
+MonMenu_Headbutt: ; 12f26
+ callba HeadbuttFunction
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12f38
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12f38
+ ld a, $3
+ ret
+; 12f3b
+
+MonMenu_RockSmash: ; 12f3b
+ callba RockSmashFunction
+ ld a, [wd0ec]
+ cp $1
+ jr nz, .asm_12f4d
+ ld b, $4
+ ld a, $2
+ ret
+
+.asm_12f4d
+ ld a, $3
+ ret
+; 12f50
+
+MonMenu_SweetScent: ; 12f50
+ callba SweetScentFromMenu
+ ld b, $4
+ ld a, $2
+ ret
+; 12f5b
+
+Function12f5b: ; 12f5b
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call LoadFontsBattleExtra
+ call Function12f73
+ pop bc
+ ld a, b
+ ld [Options], a
+ push af
+ call ClearBGPalettes
+ pop af
+ ret
+; 12f73
+
+Function12f73: ; 12f73
+ call SetUpMoveScreenBG
+ ld de, Unknown_12fb2
+ call Function1bb1
+ call Function131ef
+ ld hl, wcfa5
+ set 6, [hl]
+ jr Function12f93
+
+Function12f86: ; 12f86
+ call Function1bd3
+ bit 1, a
+ jp nz, Function12f9f
+ bit 0, a
+ jp nz, Function12f9c
+
+Function12f93: ; 12f93
+ call PrepareToPlaceMoveData
+ call PlaceMoveData
+ jp Function12f86
+; 12f9c
+
+Function12f9c: ; 12f9c
+ and a
+ jr Function12fa0
+
+Function12f9f: ; 12f9f
+ scf
+
+Function12fa0: ; 12fa0
+ push af
+ xor a
+ ld [wd0e3], a
+ ld hl, wcfa5
+ res 6, [hl]
+ call ClearSprites
+ call ClearTileMap
+ pop af
+ ret
+; 12fb2
+
+Unknown_12fb2: ; 12fb2
+ db $03, $01, $03, $01, $40, $00, $20, $c3
+; 12fba
+
+ManagePokemonMoves: ; 12fba
+ ld a, [CurPartySpecies]
+ cp EGG
+ jr z, .egg
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ call MoveScreenLoop
+ pop af
+ ld [Options], a
+ call ClearBGPalettes
+
+.egg
+ ld a, $0
+ ret
+; 12fd5
+
+MoveScreenLoop: ; 12fd5
+ ld a, [CurPartyMon]
+ inc a
+ ld [wd0d8], a
+ call SetUpMoveScreenBG
+ call Function132d3
+ ld de, Unknown_13163
+ call Function1bb1
+.loop
+ call Function131ef
+ ld hl, wcfa5
+ set 6, [hl]
+ jr .skip_joy
+
+.joy_loop
+ call Function1bd3
+ bit 1, a
+ jp nz, .b_button
+ bit 0, a
+ jp nz, .a_button
+ bit 4, a
+ jp nz, .d_right
+ bit 5, a
+ jp nz, .d_left
+
+.skip_joy
+ call PrepareToPlaceMoveData
+ ld a, [wMoveSwapBuffer]
+ and a
+ jr nz, .moving_move
+ call PlaceMoveData
+ jp .joy_loop
+
+.moving_move
+ ld a, " "
+ hlcoord 1, 11
+ ld bc, 5
+ call ByteFill
+ hlcoord 1, 12
+ lb bc, 5, SCREEN_WIDTH - 2
+ call ClearBox
+ hlcoord 1, 12
+ ld de, String_1316b
+ call PlaceString
+ jp .joy_loop
+.b_button: ; 13038
+ call PlayClickSFX
+ call WaitSFX
+ ld a, [wMoveSwapBuffer]
+ and a
+ jp z, .exit
+
+ ld a, [wMoveSwapBuffer]
+ ld [MenuSelection2], a
+ xor a
+ ld [wMoveSwapBuffer], a
+ hlcoord 1, 2
+ lb bc, 8, SCREEN_WIDTH - 2
+ call ClearBox
+ jp .loop
+; 1305b
+
+.d_right: ; 1305b
+ ld a, [wMoveSwapBuffer]
+ and a
+ jp nz, .joy_loop
+
+ ld a, [CurPartyMon]
+ ld b, a
+ push bc
+ call .cycle_right
+ pop bc
+ ld a, [CurPartyMon]
+ cp b
+ jp z, .joy_loop
+ jp MoveScreenLoop
+
+.d_left: ; 13075
+ ld a, [wMoveSwapBuffer]
+ and a
+ jp nz, .joy_loop
+ ld a, [CurPartyMon]
+ ld b, a
+ push bc
+ call .cycle_left
+ pop bc
+ ld a, [CurPartyMon]
+ cp b
+ jp z, .joy_loop
+ jp MoveScreenLoop
+
+.cycle_right
+ ld a, [CurPartyMon]
+ inc a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ cp -1
+ jr z, .cycle_left
+ cp EGG
+ ret nz
+ jr .cycle_right
+
+.cycle_left
+ ld a, [CurPartyMon]
+ and a
+ ret z
+.cycle_left_loop
+ ld a, [CurPartyMon]
+ dec a
+ ld [CurPartyMon], a
+ ld c, a
+ ld b, 0
+ ld hl, PartySpecies
+ add hl, bc
+ ld a, [hl]
+ cp EGG
+ ret nz
+ ld a, [CurPartyMon]
+ and a
+ jr z, .cycle_right
+ jr .cycle_left_loop
+; 130c6
+
+.a_button: ; 130c6
+ call PlayClickSFX
+ call WaitSFX
+ ld a, [wMoveSwapBuffer]
+ and a
+ jr nz, .place_move
+ ld a, [MenuSelection2]
+ ld [wMoveSwapBuffer], a
+ call Function1bee
+ jp .moving_move
+
+.place_move
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call .copy_move
+ pop hl
+ ld bc, $15
+ add hl, bc
+ call .copy_move
+ ld a, [wBattleMode]
+ jr z, .swap_moves
+ ld hl, BattleMonMoves
+ ld bc, $20
+ ld a, [CurPartyMon]
+ call AddNTimes
+ push hl
+ call .copy_move
+ pop hl
+ ld bc, 6
+ add hl, bc
+ call .copy_move
+
+.swap_moves
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ call WaitSFX
+ ld de, SFX_SWITCH_POKEMON
+ call PlaySFX
+ call WaitSFX
+ hlcoord 1, 2
+ lb bc, 8, 18
+ call ClearBox
+ hlcoord 10, 10
+ lb bc, 1, 9
+ call ClearBox
+ jp .loop
+; 1313a
+
+.copy_move: ; 1313a
+ push hl
+ ld a, [MenuSelection2]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld d, h
+ ld e, l
+ pop hl
+ ld a, [wMoveSwapBuffer]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [de]
+ ld b, [hl]
+ ld [hl], a
+ ld a, b
+ ld [de], a
+ ret
+; 13154
+
+.exit: ; 13154
+ xor a
+ ld [wMoveSwapBuffer], a
+ ld hl, wcfa5
+ res 6, [hl]
+ call ClearSprites
+ jp ClearTileMap
+; 13163
+
+Unknown_13163: ; 13163
+ db $03, $01, $03, $01, $40, $00, $20, $f3
+; 1316b
+
+String_1316b: ; 1316b
+ db "Where?@"
+; 13172
+
+SetUpMoveScreenBG: ; 13172
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ xor a
+ ld [hBGMapMode], a
+ callba Functionfb571
+ callba InefficientlyClear121BytesAtwc300
+ ld a, [CurPartyMon]
+ ld e, a
+ ld d, $0
+ ld hl, PartySpecies
+ add hl, de
+ ld a, [hl]
+ ld [wd265], a
+ ld e, $2
+ callba Function8e83f
+ hlcoord 0, 1
+ ld b, 9
+ ld c, 18
+ call TextBox
+ hlcoord 0, 11
+ ld b, 5
+ ld c, 18
+ call TextBox
+ hlcoord 2, 0
+ lb bc, 2, 3
+ call ClearBox
+ xor a
+ ld [MonType], a
+ ld hl, PartyMonNicknames
+ ld a, [CurPartyMon]
+ call GetNick
+ hlcoord 5, 1
+ call PlaceString
+ push bc
+ callba CopyPkmnToTempMon
+ pop hl
+ call PrintLevel
+ ld hl, PlayerHPPal
+ call SetHPPal
+ ld b, $e
+ call GetSGBLayout
+ hlcoord 16, 0
+ lb bc, 1, 3
+ jp ClearBox
+; 131ef
+
+Function131ef: ; 131ef
+ xor a
+ ld [hBGMapMode], a
+ ld [wMoveSwapBuffer], a
+ ld [MonType], a
+ predef CopyPkmnToTempMon
+ ld hl, TempMonMoves
+ ld de, wListMoves_MoveIndicesBuffer
+ ld bc, NUM_MOVES
+ call CopyBytes
+ ld a, SCREEN_WIDTH * 2
+ ld [Buffer1], a
+ hlcoord 2, 3
+ predef ListMoves
+ hlcoord 10, 4
+ predef Function50c50
+ call WaitBGMap
+ call SetPalettes
+ ld a, [wd0eb]
+ inc a
+ ld [wcfa3], a
+ hlcoord 0, 11
+ ld b, 5
+ ld c, 18
+ jp TextBox
+; 13235
+
+PrepareToPlaceMoveData: ; 13235
+ ld hl, PartyMon1Moves
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [CurPartyMon]
+ call AddNTimes
+ ld a, [MenuSelection2]
+ dec a
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld a, [hl]
+ ld [CurMove], a
+ hlcoord 1, 12
+ lb bc, 5, 18
+ jp ClearBox
+; 13256
+
+PlaceMoveData: ; 13256
+ xor a
+ ld [hBGMapMode], a
+ hlcoord 0, 10
+ ld de, String_132ba
+ call PlaceString
+ hlcoord 0, 11
+ ld de, String_132c2
+ call PlaceString
+ hlcoord 12, 12
+ ld de, String_132ca
+ call PlaceString
+ ld a, [CurMove]
+ ld b, a
+ hlcoord 2, 12
+ predef PrintMoveType
+ ld a, [CurMove]
+ dec a
+ ld hl, Moves + MOVE_POWER
+ ld bc, MOVE_LENGTH
+ call AddNTimes
+ ld a, BANK(Moves)
+ call GetFarByte
+ hlcoord 16, 12
+ cp 2
+ jr c, .no_power
+ ld [wd265], a
+ ld de, wd265
+ lb bc, 1, 3
+ call PrintNum
+ jr .description
+
+.no_power
+ ld de, String_132cf
+ call PlaceString
+
+.description
+ hlcoord 1, 14
+ predef PrintMoveDesc
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+; 132ba
+
+String_132ba: ; 132ba
+ db "┌─────┐@"
+; 132c2
+String_132c2: ; 132c2
+ db "│TYPE/└@"
+; 132ca
+String_132ca: ; 132ca
+ db "ATK/@"
+; 132cf
+String_132cf: ; 132cf
+ db "---@"
+; 132d3
+
+Function132d3: ; 132d3
+ call Function132da
+ call Function132fe
+ ret
+; 132da
+
+Function132da: ; 132da
+ ld a, [CurPartyMon]
+ and a
+ ret z
+ ld c, a
+ ld e, a
+ ld d, 0
+ ld hl, PartyCount
+ add hl, de
+.loop
+ ld a, [hl]
+ and a
+ jr z, .prev
+ cp EGG
+ jr z, .prev
+ cp NUM_POKEMON + 1
+ jr c, .legal
+
+.prev
+ dec hl
+ dec c
+ jr nz, .loop
+ ret
+
+.legal
+ hlcoord 16, 0
+ ld [hl], "◀"
+ ret
+; 132fe
+
+Function132fe: ; 132fe
+ ld a, [CurPartyMon]
+ inc a
+ ld c, a
+ ld a, [PartyCount]
+ cp c
+ ret z
+ ld e, c
+ ld d, 0
+ ld hl, PartySpecies
+ add hl, de
+.loop
+ ld a, [hl]
+ cp -1
+ ret z
+ and a
+ jr z, .next
+ cp EGG
+ jr z, .next
+ cp NUM_POKEMON + 1
+ jr c, .legal
+
+.next
+ inc hl
+ jr .loop
+
+.legal
+ hlcoord 18, 0
+ ld [hl], "▶"
+ ret
+; 13327
diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm
index 5c0df0355..a886dbbf3 100644
--- a/engine/std_scripts.asm
+++ b/engine/std_scripts.asm
@@ -1,56 +1,56 @@
StdScripts::
- dbw BANK(PokeCenterNurseScript), PokeCenterNurseScript
- dbw BANK(DifficultBookshelfScript), DifficultBookshelfScript
- dbw BANK(PictureBookshelfScript), PictureBookshelfScript
- dbw BANK(MagazineBookshelfScript), MagazineBookshelfScript
- dbw BANK(TeamRocketOathScript), TeamRocketOathScript
- dbw BANK(IncenseBurnerScript), IncenseBurnerScript
- dbw BANK(MerchandiseShelfScript), MerchandiseShelfScript
- dbw BANK(TownMapScript), TownMapScript
- dbw BANK(WindowScript), WindowScript
- dbw BANK(TVScript), TVScript
- dbw BANK(HomepageScript), HomepageScript
- dbw BANK(Radio1Script), Radio1Script
- dbw BANK(Radio2Script), Radio2Script
- dbw BANK(TrashCanScript), TrashCanScript
- dbw BANK(StrengthBoulderScript), StrengthBoulderScript
- dbw BANK(SmashRockScript), SmashRockScript
- dbw BANK(PokeCenterSignScript), PokeCenterSignScript
- dbw BANK(MartSignScript), MartSignScript
- dbw BANK(GoldenrodRocketsScript), GoldenrodRocketsScript
- dbw BANK(RadioTowerRocketsScript), RadioTowerRocketsScript
- dbw BANK(ElevatorButtonScript), ElevatorButtonScript
- dbw BANK(DayToTextScript), DayToTextScript
- dbw BANK(BugContestResultsWarpScript), BugContestResultsWarpScript
- dbw BANK(BugContestResultsScript), BugContestResultsScript
- dbw BANK(InitializeEventsScript), InitializeEventsScript
- dbw BANK(AskNumber1MScript), AskNumber1MScript
- dbw BANK(AskNumber2MScript), AskNumber2MScript
- dbw BANK(RegisteredNumberMScript), RegisteredNumberMScript
- dbw BANK(NumberAcceptedMScript), NumberAcceptedMScript
- dbw BANK(NumberDeclinedMScript), NumberDeclinedMScript
- dbw BANK(PhoneFullMScript), PhoneFullMScript
- dbw BANK(RematchMScript), RematchMScript
- dbw BANK(GiftMScript), GiftMScript
- dbw BANK(PackFullMScript), PackFullMScript
- dbw BANK(RematchGiftMScript), RematchGiftMScript
- dbw BANK(AskNumber1FScript), AskNumber1FScript
- dbw BANK(AskNumber2FScript), AskNumber2FScript
- dbw BANK(RegisteredNumberFScript), RegisteredNumberFScript
- dbw BANK(NumberAcceptedFScript), NumberAcceptedFScript
- dbw BANK(NumberDeclinedFScript), NumberDeclinedFScript
- dbw BANK(PhoneFullFScript), PhoneFullFScript
- dbw BANK(RematchFScript), RematchFScript
- dbw BANK(GiftFScript), GiftFScript
- dbw BANK(PackFullFScript), PackFullFScript
- dbw BANK(RematchGiftFScript), RematchGiftFScript
- dbw BANK(GymStatue1Script), GymStatue1Script
- dbw BANK(GymStatue2Script), GymStatue2Script
- dbw BANK(ReceiveItemScript), ReceiveItemScript
- dbw BANK(ReceiveTogepiEggScript), ReceiveTogepiEggScript
- dbw BANK(PCScript), PCScript
- dbw BANK(GameCornerCoinVendorScript), GameCornerCoinVendorScript
- dbw BANK(HappinessCheckScript), HappinessCheckScript
+ dba PokeCenterNurseScript
+ dba DifficultBookshelfScript
+ dba PictureBookshelfScript
+ dba MagazineBookshelfScript
+ dba TeamRocketOathScript
+ dba IncenseBurnerScript
+ dba MerchandiseShelfScript
+ dba TownMapScript
+ dba WindowScript
+ dba TVScript
+ dba HomepageScript
+ dba Radio1Script
+ dba Radio2Script
+ dba TrashCanScript
+ dba StrengthBoulderScript
+ dba SmashRockScript
+ dba PokeCenterSignScript
+ dba MartSignScript
+ dba GoldenrodRocketsScript
+ dba RadioTowerRocketsScript
+ dba ElevatorButtonScript
+ dba DayToTextScript
+ dba BugContestResultsWarpScript
+ dba BugContestResultsScript
+ dba InitializeEventsScript
+ dba AskNumber1MScript
+ dba AskNumber2MScript
+ dba RegisteredNumberMScript
+ dba NumberAcceptedMScript
+ dba NumberDeclinedMScript
+ dba PhoneFullMScript
+ dba RematchMScript
+ dba GiftMScript
+ dba PackFullMScript
+ dba RematchGiftMScript
+ dba AskNumber1FScript
+ dba AskNumber2FScript
+ dba RegisteredNumberFScript
+ dba NumberAcceptedFScript
+ dba NumberDeclinedFScript
+ dba PhoneFullFScript
+ dba RematchFScript
+ dba GiftFScript
+ dba PackFullFScript
+ dba RematchGiftFScript
+ dba GymStatue1Script
+ dba GymStatue2Script
+ dba ReceiveItemScript
+ dba ReceiveTogepiEggScript
+ dba PCScript
+ dba GameCornerCoinVendorScript
+ dba HappinessCheckScript
PokeCenterNurseScript:
; EVENT_WELCOMED_TO_POKECOM_CENTER is never set
@@ -302,7 +302,7 @@ RadioTowerRocketsScript:
end
BugContestResultsWarpScript:
- special WhiteBGMap
+ special ClearBGPalettes
scall BugContestResults_CopyContestantsToResults
setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
@@ -328,7 +328,7 @@ BugContestResultsScript:
farwritetext ContestResults_ConsolationPrizeText
keeptextopen
waitbutton
- verbosegiveitem BERRY, 1
+ verbosegiveitem BERRY
iffalse BugContestResults_NoRoomForBerry
BugContestResults_DidNotWin
@@ -387,7 +387,7 @@ BugContestResults_FirstPlace ; 0xbc31e
itemtotext SUN_STONE, $1
farwritetext ContestResults_PlayerWonAPrizeText
closetext
- verbosegiveitem SUN_STONE, 1
+ verbosegiveitem SUN_STONE
iffalse BugContestResults_NoRoomForSunStone
jump BugContestResults_ReturnAfterWinnersPrize
; 0xbc332
@@ -396,7 +396,7 @@ BugContestResults_SecondPlace ; 0xbc332
itemtotext EVERSTONE, $1
farwritetext ContestResults_PlayerWonAPrizeText
closetext
- verbosegiveitem EVERSTONE, 1
+ verbosegiveitem EVERSTONE
iffalse BugContestResults_NoRoomForEverstone
jump BugContestResults_ReturnAfterWinnersPrize
; 0xbc343
@@ -405,7 +405,7 @@ BugContestResults_ThirdPlace ; 0xbc343
itemtotext GOLD_BERRY, $1
farwritetext ContestResults_PlayerWonAPrizeText
closetext
- verbosegiveitem GOLD_BERRY, 1
+ verbosegiveitem GOLD_BERRY
iffalse BugContestResults_NoRoomForGoldBerry
jump BugContestResults_ReturnAfterWinnersPrize
; 0xbc354
diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm
index bdfcc8b05..6ebb2a421 100644
--- a/engine/timeofdaypals.asm
+++ b/engine/timeofdaypals.asm
@@ -39,7 +39,7 @@ _TimeOfDayPals:: ; 8c011
; save bg palette 8
- ld hl, Unkn1Pals + 8 * 7 ; Unkn1Pals + 7 pals
+ ld hl, wMapPals + 8 * 7 ; wMapPals + 7 pals
; save wram bank
ld a, [rSVBK]
@@ -70,7 +70,7 @@ _TimeOfDayPals:: ; 8c011
; restore bg palette 8
- ld hl, Unkn2Pals - 1 ; last byte in Unkn1Pals
+ ld hl, Unkn2Pals - 1 ; last byte in wMapPals
; save wram bank
ld a, [rSVBK]
@@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070
ret
; 8c079
-FadeInBGMap:: ; 8c079
+FadeInPalettes:: ; 8c079
ld c, $12
call GetTimePalFade
ld b, $4
@@ -124,7 +124,7 @@ FadeInBGMap:: ; 8c079
ret
; 8c084
-FadeBlackBGMap:: ; 8c084
+FadeOutPalettes:: ; 8c084
call Function8c0c1
ld c, $9
call GetTimePalFade
@@ -172,12 +172,12 @@ Function8c0c1: ; 8c0c1
push af
ld a, $5
ld [rSVBK], a
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld a, [hli]
ld e, a
ld a, [hli]
ld d, a
- ld hl, Unkn1Pals + 8
+ ld hl, wMapPals + 8
ld c, $6
.asm_8c0d4
ld a, e
diff --git a/engine/title.asm b/engine/title.asm
index d29c90a23..0fbf8b42d 100644
--- a/engine/title.asm
+++ b/engine/title.asm
@@ -1,6 +1,6 @@
_TitleScreen: ; 10ed67
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
@@ -144,7 +144,7 @@ _TitleScreen: ; 10ed67
; Update palette colors
ld hl, TitleScreenPalettes
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, 4 * 32
call CopyBytes
@@ -220,7 +220,7 @@ _TitleScreen: ; 10ed67
ld [hBGMapMode], a
xor a
- ld [Unkn1Pals + 2], a
+ ld [wMapPals + 2], a
; Play starting sound effect
call SFXChannelsOff
@@ -231,7 +231,7 @@ _TitleScreen: ; 10ed67
; 10eea7
SuicuneFrameIterator: ; 10eea7
- ld hl, Unkn1Pals + 2
+ ld hl, wMapPals + 2
ld a, [hl]
ld c, a
inc [hl]
diff --git a/engine/tmhm.asm b/engine/tmhm.asm
new file mode 100755
index 000000000..b66131ac9
--- /dev/null
+++ b/engine/tmhm.asm
@@ -0,0 +1,113 @@
+CanLearnTMHMMove: ; 11639
+ ld a, [CurPartySpecies]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, BaseTMHM
+ push hl
+
+ ld a, [wd262]
+ ld b, a
+ ld c, 0
+ ld hl, TMHMMoves
+.loop
+ ld a, [hli]
+ and a
+ jr z, .end
+ cp b
+ jr z, .asm_11659
+ inc c
+ jr .loop
+
+.asm_11659
+ pop hl
+ ld b, CHECK_FLAG
+ push de
+ ld d, 0
+ predef FlagPredef
+ pop de
+ ret
+
+.end
+ pop hl
+ ld c, 0
+ ret
+; 1166a
+
+GetTMHMMove: ; 1166a
+ ld a, [wd265]
+ dec a
+ ld hl, TMHMMoves
+ ld b, 0
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ ld [wd265], a
+ ret
+; 1167a
+
+TMHMMoves: ; 1167a
+ db DYNAMICPUNCH
+ db HEADBUTT
+ db CURSE
+ db ROLLOUT
+ db ROAR
+ db TOXIC
+ db ZAP_CANNON
+ db ROCK_SMASH
+ db PSYCH_UP
+ db HIDDEN_POWER
+ db SUNNY_DAY
+ db SWEET_SCENT
+ db SNORE
+ db BLIZZARD
+ db HYPER_BEAM
+ db ICY_WIND
+ db PROTECT
+ db RAIN_DANCE
+ db GIGA_DRAIN
+ db ENDURE
+ db FRUSTRATION
+ db SOLARBEAM
+ db IRON_TAIL
+ db DRAGONBREATH
+ db THUNDER
+ db EARTHQUAKE
+ db RETURN
+ db DIG
+ db PSYCHIC_M
+ db SHADOW_BALL
+ db MUD_SLAP
+ db DOUBLE_TEAM
+ db ICE_PUNCH
+ db SWAGGER
+ db SLEEP_TALK
+ db SLUDGE_BOMB
+ db SANDSTORM
+ db FIRE_BLAST
+ db SWIFT
+ db DEFENSE_CURL
+ db THUNDERPUNCH
+ db DREAM_EATER
+ db DETECT
+ db REST
+ db ATTRACT
+ db THIEF
+ db STEEL_WING
+ db FIRE_PUNCH
+ db FURY_CUTTER
+ db NIGHTMARE
+ db CUT
+ db FLY
+ db SURF
+ db STRENGTH
+ db FLASH
+ db WHIRLPOOL
+ db WATERFALL
+
+; Move tutor
+ db FLAMETHROWER
+ db THUNDERBOLT
+ db ICE_BEAM
+
+ db 0 ; end
+; 116b7
diff --git a/event/basement_key.asm b/event/basement_key.asm
new file mode 100755
index 000000000..605b2af88
--- /dev/null
+++ b/event/basement_key.asm
@@ -0,0 +1,34 @@
+_BasementKey: ; 507b4
+; Are we even in the right map to use this?
+ ld a, [MapGroup]
+ cp GROUP_WAREHOUSE_ENTRANCE
+ jr nz, .nope
+
+ ld a, [MapNumber]
+ cp MAP_WAREHOUSE_ENTRANCE
+ jr nz, .nope
+; Are we on the tile in front of the door?
+ call GetFacingTileCoord
+ ld a, d
+ cp 22
+ jr nz, .nope
+ ld a, e
+ cp 10
+ jr nz, .nope
+; Let's use the Basement Key
+ ld hl, .BasementKeyScript
+ call QueueScript
+ ld a, 1
+ ld [wd0ec], a
+ ret
+
+.nope
+ ld a, $0
+ ld [wd0ec], a
+ ret
+; 507e1
+
+.BasementKeyScript: ; 0x507e1
+ loadmovesprites
+ farjump BasementDoorScript
+; 0x507e6
diff --git a/event/battle_tower.asm b/event/battle_tower.asm
index 03d24a972..9c494b168 100644
--- a/event/battle_tower.asm
+++ b/event/battle_tower.asm
@@ -302,7 +302,7 @@ VerifyUniqueness: ; 8b2e9
.nextmon: ; 8b31a
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
inc de
pop bc
diff --git a/event/buena.asm b/event/buena.asm
index 8ae1094c8..3662f110d 100644
--- a/event/buena.asm
+++ b/event/buena.asm
@@ -201,9 +201,9 @@ Function8b09e: ; 8b09e
ld [hBGMapMode], a
ld hl, MenuDataHeader_0x8b0d1
call CopyMenuDataHeader
- call Function1cbb
+ call MenuBox
call UpdateSprites
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
ld bc, $0015
add hl, bc
ld de, .Points_string
@@ -252,10 +252,10 @@ Function8b0e2: ; 8b0e2
ld [hBGMapMode], a
call Function352f
call UpdateSprites
- call Function350c
+ call HandleScrollingMenu
ld a, [MenuSelection]
ld c, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [MenuSelection], a
ld a, [wcf73]
cp $2
diff --git a/event/bug_contest_2.asm b/event/bug_contest_2.asm
new file mode 100755
index 000000000..4aa4390eb
--- /dev/null
+++ b/event/bug_contest_2.asm
@@ -0,0 +1,136 @@
+Special_SelectRandomBugContestContestants: ; 139a8
+; Select five random people to participate in the current contest.
+
+; First we have to make sure that any old data is cleared away.
+ ld c, 10 ; Number of people to choose from.
+ ld hl, BugCatchingContestantEventFlagTable
+.loop1
+ push bc
+ push hl
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, RESET_FLAG
+ call EventFlagAction
+ pop hl
+rept 2
+ inc hl
+endr
+ pop bc
+ dec c
+ jr nz, .loop1
+
+; Now that that's out of the way, we can get on to the good stuff.
+ ld c, 5
+.loop2
+ push bc
+.next
+; Choose a flag at uniform random to be set.
+ call Random
+ cp $fa ; 250
+ jr nc, .next
+ ld c, $19 ; 25
+ call SimpleDivide
+ ld e, b
+ ld d, 0
+ ld hl, BugCatchingContestantEventFlagTable
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ push de
+; If we've already set it, it doesn't count.
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ pop de
+ ld a, c
+ and a
+ jr nz, .next
+; Set the flag. This will cause that sprite to not be visible in the contest.
+ ld b, SET_FLAG
+ call EventFlagAction
+ pop bc
+; Check if we're done. If so, return. Otherwise, choose the next victim.
+ dec c
+ jr nz, .loop2
+ ret
+; 139ed
+
+Special_CheckBugContestContestantFlag: ; 139ed
+; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
+
+; Bug: If a >= 10 when this is called, it will read beyond the table.
+
+ ld hl, BugCatchingContestantEventFlagTable
+ ld e, a
+ ld d, 0
+rept 2
+ add hl, de
+endr
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+ ld b, CHECK_FLAG
+ call EventFlagAction
+ ret
+; 139fe
+
+BugCatchingContestantEventFlagTable: ; 139fe
+ dw EVENT_BUG_CATCHING_CONTESTANT_1A
+ dw EVENT_BUG_CATCHING_CONTESTANT_2A
+ dw EVENT_BUG_CATCHING_CONTESTANT_3A
+ dw EVENT_BUG_CATCHING_CONTESTANT_4A
+ dw EVENT_BUG_CATCHING_CONTESTANT_5A
+ dw EVENT_BUG_CATCHING_CONTESTANT_6A
+ dw EVENT_BUG_CATCHING_CONTESTANT_7A
+ dw EVENT_BUG_CATCHING_CONTESTANT_8A
+ dw EVENT_BUG_CATCHING_CONTESTANT_9A
+ dw EVENT_BUG_CATCHING_CONTESTANT_10A
+; 13a12
+
+ContestDropOffMons: ; 13a12
+ ld hl, PartyMon1HP
+ ld a, [hli]
+ or [hl]
+ jr z, .fainted
+; Mask the rest of your party by setting the count to 1...
+ ld hl, PartyCount
+ ld a, 1
+ ld [hli], a
+ inc hl
+; ... backing up the second mon index somewhere...
+ ld a, [hl]
+ ld [wBugContestSecondPartySpecies], a
+; ... and replacing it with the terminator byte
+ ld [hl], $ff
+ xor a
+ ld [ScriptVar], a
+ ret
+
+.fainted
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+; 13a31
+
+ContestReturnMons: ; 13a31
+; Restore the species of the second mon.
+ ld hl, PartySpecies + 1
+ ld a, [wBugContestSecondPartySpecies]
+ ld [hl], a
+; Restore the party count, which must be recomputed.
+ ld b, $1
+.loop
+ ld a, [hli]
+ cp $ff
+ jr z, .done
+ inc b
+ jr .loop
+
+.done
+ ld a, b
+ ld [PartyCount], a
+ ret
+; 13a47
diff --git a/event/bug_contest_judging.asm b/event/bug_contest_judging.asm
new file mode 100755
index 000000000..25b3805ee
--- /dev/null
+++ b/event/bug_contest_judging.asm
@@ -0,0 +1,480 @@
+_BugContestJudging: ; 1369d
+ call ContestScore
+ callba MobileFn_105f79
+ call Function13819
+ ld a, [wd00a]
+ call LoadContestantName
+ ld a, [wd00b]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, BugContest_ThirdPlaceText
+ call PrintText
+ ld a, [EndFlypoint]
+ call LoadContestantName
+ ld a, [MovementBuffer]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, BugContest_SecondPlaceText
+ call PrintText
+ ld a, [wd002]
+ call LoadContestantName
+ ld a, [wd003]
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, BugContest_FirstPlaceText
+ call PrintText
+ jp Function13807
+; 136eb
+
+BugContest_FirstPlaceText: ; 0x136eb
+ text_jump ContestJudging_FirstPlaceText
+ start_asm
+BugContest_FirstPlace: ; 136f0
+ ld de, SFX_1ST_PLACE
+ call PlaySFX
+ call WaitSFX
+ ld hl, BugContest_FirstPlaceScoreText
+ ret
+; 136fd
+
+BugContest_FirstPlaceScoreText: ; 0x136fd
+ ; The winning score was @ points!
+ text_jump ContestJudging_FirstPlaceScoreText
+ db "@"
+; 0x13702
+
+BugContest_SecondPlaceText: ; 0x13702
+ ; Placing second was @ , who caught a @ !@ @
+ text_jump ContestJudging_SecondPlaceText
+ start_asm
+BugContest_SecondPlace: ; 13707
+ ld de, SFX_2ND_PLACE
+ call PlaySFX
+ call WaitSFX
+ ld hl, BugContest_SecondPlaceScoreText
+ ret
+; 13714
+
+BugContest_SecondPlaceScoreText: ; 0x13714
+ ; The score was @ points!
+ text_jump ContestJudging_SecondPlaceScoreText
+ db "@"
+; 0x13719
+
+BugContest_ThirdPlaceText: ; 0x13719
+ ; Placing third was @ , who caught a @ !@ @
+ text_jump ContestJudging_ThirdPlaceText
+ start_asm
+; 0x1371e
+
+BugContest_ThirdPlace: ; 1371e
+ ld de, SFX_3RD_PLACE
+ call PlaySFX
+ call WaitSFX
+ ld hl, BugContest_ThirdPlaceScoreText
+ ret
+; 1372b
+
+BugContest_ThirdPlaceScoreText: ; 0x1372b
+ ; The score was @ points!
+ text_jump ContestJudging_ThirdPlaceScoreText
+ db "@"
+; 0x13730
+
+LoadContestantName: ; 13730
+
+; If a = 0, get your name.
+ dec a
+ jr z, .done
+; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
+ ld c, a
+ ld b, 0
+ ld hl, BugContestantPointers
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+; Copy the Trainer Class to c.
+ ld a, [hli]
+ ld c, a
+; Save hl and bc for later.
+ push hl
+ push bc
+; Get the Trainer Class name and copy it into wd016.
+ callab GetTrainerClassName
+ ld hl, StringBuffer1
+ ld de, wd016
+ ld bc, TRAINER_CLASS_NAME_LENGTH
+ call CopyBytes
+ ld hl, wd016
+; Delete the trailing terminator and replace it with a space.
+.next
+ ld a, [hli]
+ cp "@"
+ jr nz, .next
+ dec hl
+ ld [hl], " "
+ inc hl
+ ld d, h
+ ld e, l
+; Restore the Trainer Class ID and Trainer ID pointer. Save de for later.
+ pop bc
+ pop hl
+ push de
+; Get the name of the trainer with class c and ID b.
+ ld a, [hl]
+ ld b, a
+ callab GetTrainerName
+; Append the name to wd016.
+ ld hl, StringBuffer1
+ pop de
+ ld bc, NAME_LENGTH - 1
+ jp CopyBytes
+
+.done
+ ld hl, PlayerName
+ ld de, wd016
+ ld bc, NAME_LENGTH
+ jp CopyBytes
+; 13783
+
+BugContestantPointers: ; 13783
+ dw BugContestant_BugCatcherDon ; This reverts back to the player
+ dw BugContestant_BugCatcherDon
+ dw BugContestant_BugCatcherEd
+ dw BugContestant_CooltrainerMNick
+ dw BugContestant_PokefanMWilliam
+ dw BugContestant_BugCatcherBenny
+ dw BugContestant_CamperBarry
+ dw BugContestant_PicnickerCindy
+ dw BugContestant_BugCatcherJosh
+ dw BugContestant_YoungsterSamuel
+ dw BugContestant_SchoolboyKipp
+; 13799
+
+BugContestant_BugCatcherDon:
+ db BUG_CATCHER, DON
+ dbw KAKUNA, 300
+ dbw METAPOD, 285
+ dbw CATERPIE, 226
+
+BugContestant_BugCatcherEd:
+ db BUG_CATCHER, ED
+ dbw BUTTERFREE, 286
+ dbw BUTTERFREE, 251
+ dbw CATERPIE, 237
+
+BugContestant_CooltrainerMNick:
+ db COOLTRAINERM, NICK
+ dbw SCYTHER, 357
+ dbw BUTTERFREE, 349
+ dbw PINSIR, 368
+
+BugContestant_PokefanMWilliam:
+ db POKEFANM, WILLIAM
+ dbw PINSIR, 332
+ dbw BUTTERFREE, 324
+ dbw VENONAT, 321
+
+BugContestant_BugCatcherBenny:
+ db BUG_CATCHER, BUG_CATCHER_BENNY
+ dbw BUTTERFREE, 318
+ dbw WEEDLE, 295
+ dbw CATERPIE, 285
+
+BugContestant_CamperBarry:
+ db CAMPER, BARRY
+ dbw PINSIR, 366
+ dbw VENONAT, 329
+ dbw KAKUNA, 314
+
+BugContestant_PicnickerCindy:
+ db PICNICKER, CINDY
+ dbw BUTTERFREE, 341
+ dbw METAPOD, 301
+ dbw CATERPIE, 264
+
+BugContestant_BugCatcherJosh:
+ db BUG_CATCHER, JOSH
+ dbw SCYTHER, 326
+ dbw BUTTERFREE, 292
+ dbw METAPOD, 282
+
+BugContestant_YoungsterSamuel:
+ db YOUNGSTER, SAMUEL
+ dbw WEEDLE, 270
+ dbw PINSIR, 282
+ dbw CATERPIE, 251
+
+BugContestant_SchoolboyKipp:
+ db SCHOOLBOY, KIPP
+ dbw VENONAT, 267
+ dbw PARAS, 254
+ dbw KAKUNA, 259
+; 13807
+
+Function13807: ; 13807
+ ld hl, wd00a
+ ld de, -4
+ ld b, 3
+.loop
+ ld a, [hl]
+ cp 1
+ jr z, .done
+ add hl, de
+ dec b
+ jr nz, .loop
+
+.done
+ ret
+; 13819
+
+Function13819: ; 13819
+ call Function13833
+ call Function138b0
+ ld hl, wd00e
+ ld a, 1
+ ld [hli], a
+ ld a, [wContestMon]
+ ld [hli], a
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hMultiplicand]
+ ld [hl], a
+ call Function1383e
+ ret
+; 13833
+
+Function13833: ; 13833
+ ld hl, wd002
+ ld b, 12
+ xor a
+.loop
+ ld [hli], a
+ dec b
+ jr nz, .loop
+ ret
+; 1383e
+
+Function1383e: ; 1383e
+ ld de, wd010
+ ld hl, wd004
+ ld c, 2
+ call StringCmp
+ jr c, .next
+ ld hl, EndFlypoint
+ ld de, wd00a
+ ld bc, 4
+ call CopyBytes
+ ld hl, wd002
+ ld de, EndFlypoint
+ ld bc, 4
+ call CopyBytes
+ ld hl, wd002
+ call Function138a0
+ jr .done
+
+.next
+ ld de, wd010
+ ld hl, wd008
+ ld c, 2
+ call StringCmp
+ jr c, .next2
+ ld hl, EndFlypoint
+ ld de, wd00a
+ ld bc, 4
+ call CopyBytes
+ ld hl, EndFlypoint
+ call Function138a0
+ jr .done
+
+.next2
+ ld de, wd010
+ ld hl, wd00c
+ ld c, 2
+ call StringCmp
+ jr c, .done
+ ld hl, wd00a
+ call Function138a0
+
+.done
+ ret
+; 138a0
+
+Function138a0: ; 138a0
+ ld de, wd00e
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ inc de
+ ld [hl], a
+ ret
+; 138b0
+
+Function138b0: ; 138b0
+ ld e, 0
+.loop
+ push de
+ call Special_CheckBugContestContestantFlag
+ pop de
+ jr nz, .done
+ ld a, e
+rept 2
+ inc a
+endr
+ ld [wd00e], a
+ dec a
+ ld c, a
+ ld b, 0
+ ld hl, BugContestantPointers
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+rept 2
+ inc hl
+endr
+.loop2
+ call Random
+ and 3
+ cp 3
+ jr z, .loop2
+ ld c, a
+ ld b, 0
+rept 3
+ add hl, bc
+endr
+ ld a, [hli]
+ ld [wd00f], a
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ call Random
+ and 7
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, h
+ ld [wd010], a
+ ld a, l
+ ld [wd011], a
+ push de
+ call Function1383e
+ pop de
+
+.done
+ inc e
+ ld a, e
+ cp 10
+ jr nz, .loop
+ ret
+; 13900
+
+ContestScore: ; 13900
+; Determine the player's score in the Bug Catching Contest.
+
+ xor a
+ ld [hProduct], a
+ ld [hMultiplicand], a
+
+ ld a, [wContestMonSpecies] ; Species
+ and a
+ jr z, .done
+
+ ; Tally the following:
+
+ ; Max HP * 4
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+ ld a, [wContestMonMaxHP + 1]
+ call .AddContestStat
+
+ ; Stats
+ ld a, [wContestMonAttack + 1]
+ call .AddContestStat
+ ld a, [wContestMonDefense + 1]
+ call .AddContestStat
+ ld a, [wContestMonSpeed + 1]
+ call .AddContestStat
+ ld a, [wContestMonSpclAtk + 1]
+ call .AddContestStat
+ ld a, [wContestMonSpclDef + 1]
+ call .AddContestStat
+
+ ; DVs
+ ld a, [wContestMonDVs + 0]
+ ld b, a
+ and 2
+rept 2
+ add a
+endr
+ ld c, a
+
+ swap b
+ ld a, b
+ and 2
+ add a
+ add c
+ ld d, a
+
+ ld a, [wContestMonDVs + 1]
+ ld b, a
+ and 2
+ ld c, a
+
+ swap b
+ ld a, b
+ and 2
+ srl a
+rept 2
+ add c
+endr
+rept 2
+ add d
+endr
+
+ call .AddContestStat
+
+ ; Remaining HP / 8
+ ld a, [wContestMonHP + 1]
+ srl a
+ srl a
+ srl a
+ call .AddContestStat
+
+ ; Whether it's holding an item
+ ld a, [wContestMonItem]
+ and a
+ jr z, .done
+
+ ld a, 1
+ call .AddContestStat
+
+.done
+ ret
+; 1397f
+
+.AddContestStat: ; 1397f
+ ld hl, hMultiplicand
+ add [hl]
+ ld [hl], a
+ ret nc
+ dec hl
+ inc [hl]
+ ret
+; 13988
diff --git a/event/card_key.asm b/event/card_key.asm
new file mode 100755
index 000000000..b442ba184
--- /dev/null
+++ b/event/card_key.asm
@@ -0,0 +1,39 @@
+_CardKey: ; 50779
+; Are we even in the right map to use this?
+ ld a, [MapGroup]
+ cp GROUP_RADIO_TOWER_3F
+ jr nz, .nope
+
+ ld a, [MapNumber]
+ cp MAP_RADIO_TOWER_3F
+ jr nz, .nope
+; Are we facing the slot?
+ ld a, [PlayerDirection]
+ and $c
+ cp OW_UP
+ jr nz, .nope
+
+ call GetFacingTileCoord
+ ld a, d
+ cp 18
+ jr nz, .nope
+ ld a, e
+ cp 6
+ jr nz, .nope
+; Let's use the Card Key.
+ ld hl, .CardKeyScript
+ call QueueScript
+ ld a, $1
+ ld [wd0ec], a
+ ret
+
+.nope
+ ld a, $0
+ ld [wd0ec], a
+ ret
+; 507af
+
+.CardKeyScript: ; 0x507af
+ loadmovesprites
+ farjump MapRadioTower3FSignpost2Script
+; 0x507b4
diff --git a/event/dratini.asm b/event/dratini.asm
index 7e82dc1b8..24876f9f4 100644
--- a/event/dratini.asm
+++ b/event/dratini.asm
@@ -12,7 +12,7 @@ SpecialDratini: ; 0x8b170
call GetNthPartyMon
ld a, [bc]
ld c, a
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
.CheckForDratini
; start at the end of the party and search backwards for a Dratini
ld a, [hl]
@@ -59,7 +59,7 @@ endr
call GetFarByte
; get the address of the move's PP and update the PP
- ld hl, PartyMon1PP - PartyMon1Moves
+ ld hl, MON_PP - MON_MOVES
add hl, de
ld [hl], a
@@ -100,7 +100,7 @@ GetNthPartyMon: ; 0x8b1ce
jr z, .EmptyParty
dec a
ret z
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
.loop
add hl, de
dec a
diff --git a/event/elevator.asm b/event/elevator.asm
new file mode 100755
index 000000000..d43bc9d54
--- /dev/null
+++ b/event/elevator.asm
@@ -0,0 +1,287 @@
+Elevator:: ; 1342d
+ call Function1344a
+ call Function1347d
+ jr c, .asm_13448
+ ld [wd041], a
+ call Function134dd
+ jr c, .asm_13448
+ ld hl, wd041
+ cp [hl]
+ jr z, .asm_13448
+ call Function134c0
+ and a
+ ret
+
+.asm_13448
+ scf
+ ret
+; 1344a
+
+Function1344a: ; 1344a
+ ld a, b
+ ld [EngineBuffer1], a
+ ld a, e
+ ld [wd03f], a
+ ld a, d
+ ld [wd040], a
+ call Function1345a
+ ret
+; 1345a
+
+Function1345a: ; 1345a
+ ld de, OBPals + 8 * 6
+ ld bc, 4
+ ld hl, wd03f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ inc hl
+ ld [de], a
+ inc de
+.asm_1346f
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ ld [de], a
+ inc de
+ add hl, bc
+ cp $ff
+ jr nz, .asm_1346f
+ ret
+; 1347d
+
+Function1347d: ; 1347d
+ ld hl, wd03f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ ld c, a
+ inc hl
+ ld a, [BackupMapGroup]
+ ld d, a
+ ld a, [BackupMapNumber]
+ ld e, a
+ ld b, $0
+.asm_13495
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ cp $ff
+ jr z, .asm_134be
+rept 2
+ inc hl
+endr
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ inc hl
+ cp d
+ jr nz, .asm_134b7
+ ld a, [EngineBuffer1]
+ call GetFarByte
+ inc hl
+ cp e
+ jr nz, .asm_134b8
+ jr .asm_134bb
+
+.asm_134b7
+ inc hl
+
+.asm_134b8
+ inc b
+ jr .asm_13495
+
+.asm_134bb
+ xor a
+ ld a, b
+ ret
+
+.asm_134be
+ scf
+ ret
+; 134c0
+
+Function134c0: ; 134c0
+ push af
+ ld hl, wd03f
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ inc hl
+ pop af
+ ld bc, 4
+ call AddNTimes
+ inc hl
+ ld de, BackupWarpNumber
+ ld a, [EngineBuffer1]
+ ld bc, 3
+ call FarCopyBytes
+ ret
+; 134dd
+
+Function134dd: ; 134dd
+ call LoadStandardMenuDataHeader
+ ld hl, Elevator_WhichFloorText
+ call PrintText
+ call Elevator_GetCurrentFloorText
+ ld hl, Elevator_MenuDataHeader
+ call CopyMenuDataHeader
+ call Function352f
+ call UpdateSprites
+ xor a
+ ld [wd0e4], a
+ call HandleScrollingMenu
+ call WriteBackup
+ ld a, [wcf73]
+ cp $2
+ jr z, .asm_1350b
+ xor a
+ ld a, [wcf77]
+ ret
+
+.asm_1350b
+ scf
+ ret
+; 1350d
+
+Elevator_WhichFloorText: ; 0x1350d
+ ; Which floor?
+ text_jump UnknownText_0x1bd2bc
+ db "@"
+; 0x13512
+
+
+Elevator_GetCurrentFloorText: ; 13512
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set NO_TEXT_SCROLL, [hl]
+ hlcoord 0, 0
+ ld b, 4
+ ld c, 8
+ call TextBox
+ hlcoord 1, 2
+ ld de, Elevator_CurrentFloorText
+ call PlaceString
+ hlcoord 4, 4
+ call Elevator_GetCurrentFloorString
+ pop af
+ ld [Options], a
+ ret
+; 13537
+
+Elevator_CurrentFloorText: ; 13537
+ db "Now on:@"
+; 1353f
+
+
+Elevator_GetCurrentFloorString: ; 1353f
+ push hl
+ ld a, [wd041]
+ ld e, a
+ ld d, 0
+ ld hl, wd0f1
+ add hl, de
+ ld a, [hl]
+ pop de
+ call GetFloorString
+ ret
+; 13550
+
+Elevator_MenuDataHeader: ; 0x13550
+ db $40 ; flags
+ db 01, 12 ; start coords
+ db 09, 18 ; end coords
+ dw Elevator_MenuData2
+ db 1 ; default option
+; 0x13558
+
+Elevator_MenuData2: ; 0x13558
+ db $10 ; flags
+ db 4, 0 ; rows, columns
+ db 1 ; horizontal spacing
+ dbw 0, OBPals + 8 * 6
+ dba GetElevatorFlorStrings
+ dba NULL
+ dba NULL
+; 13568
+
+GetElevatorFlorStrings: ; 13568
+ ld a, [MenuSelection]
+
+GetFloorString: ; 1356b
+ push de
+ call FloorToString
+ ld d, h
+ ld e, l
+ pop hl
+ jp PlaceString
+; 13575
+
+FloorToString: ; 13575
+ push de
+ ld e, a
+ ld d, 0
+ ld hl, .floors
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ pop de
+ ret
+; 13583
+
+.floors
+ dw .b4f
+ dw .b3f
+ dw .b2f
+ dw .b1f
+ dw ._1f
+ dw ._2f
+ dw ._3f
+ dw ._4f
+ dw ._5f
+ dw ._6f
+ dw ._7f
+ dw ._8f
+ dw ._9f
+ dw ._10f
+ dw ._11f
+ dw .roof
+
+.b4f
+ db "B4F@"
+.b3f
+ db "B3F@"
+.b2f
+ db "B2F@"
+.b1f
+ db "B1F@"
+._1f
+ db "1F@"
+._2f
+ db "2F@"
+._3f
+ db "3F@"
+._4f
+ db "4F@"
+._5f
+ db "5F@"
+._6f
+ db "6F@"
+._7f
+ db "7F@"
+._8f
+ db "8F@"
+._9f
+ db "9F@"
+._10f
+ db "10F@"
+._11f
+ db "11F@"
+.roof
+ db "ROOF@"
+; 135db
diff --git a/event/forced_movement.asm b/event/forced_movement.asm
new file mode 100755
index 000000000..89a776d60
--- /dev/null
+++ b/event/forced_movement.asm
@@ -0,0 +1,68 @@
+Script_ForcedMovement:: ; 0x1253d
+ checkcode VAR_FACING
+ if_equal DOWN, .down
+ if_equal UP, .up
+ if_equal LEFT, .left
+ if_equal RIGHT, .right
+ end
+; 0x12550
+
+.up: ; 0x12550
+ applymovement PLAYER, .MovementData_up
+ end
+; 0x12555
+
+.down: ; 0x12555
+ applymovement PLAYER, .MovementData_down
+ end
+; 0x1255a
+
+.right: ; 0x1255a
+ applymovement PLAYER, .MovementData_right
+ end
+; 0x1255f
+
+.left: ; 0x1255f
+ applymovement PLAYER, .MovementData_left
+ end
+; 0x12564
+
+.MovementData_up: ; 0x12564
+ step_wait5
+ big_step_down
+ turn_in_down
+ step_wait5
+ big_step_down
+ turn_head_down
+ step_end
+; 0x1256b
+
+.MovementData_down: ; 0x1256b
+ step_wait5
+ big_step_down
+ turn_in_up
+ step_wait5
+ big_step_down
+ turn_head_up
+ step_end
+; 0x12572
+
+.MovementData_right: ; 0x12572
+ step_wait5
+ big_step_down
+ turn_in_left
+ step_wait5
+ big_step_down
+ turn_head_left
+ step_end
+; 0x12579
+
+.MovementData_left: ; 0x12579
+ step_wait5
+ big_step_down
+ turn_in_right
+ step_wait5
+ big_step_down
+ turn_head_right
+ step_end
+; 0x12580
diff --git a/event/itemball.asm b/event/itemball.asm
new file mode 100755
index 000000000..0e74cbd27
--- /dev/null
+++ b/event/itemball.asm
@@ -0,0 +1,54 @@
+FindItemInBallScript:: ; 0x122ce
+ callasm .TryReceiveItem
+ iffalse .no_room
+ disappear LAST_TALKED
+ loadfont
+ writetext .text_found
+ playsound SFX_ITEM
+ pause 60
+ itemnotify
+ loadmovesprites
+ end
+; 0x122e3
+
+.no_room: ; 0x122e3
+ loadfont
+ writetext .text_found
+ closetext
+ writetext .text_bag_full
+ closetext
+ loadmovesprites
+ 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 [wd265], 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/itemfinder.asm b/event/itemfinder.asm
new file mode 100755
index 000000000..23de57058
--- /dev/null
+++ b/event/itemfinder.asm
@@ -0,0 +1,58 @@
+ItemFinder: ; 12580
+ callba CheckForSignpostItems
+ jr c, .found_something
+ ld hl, .Script_FoundNothing
+ jr .resume
+
+.found_something
+ ld hl, .Script_FoundSomething
+
+.resume
+ call QueueScript
+ ld a, $1
+ ld [wd0ec], a
+ ret
+; 12599
+
+.ItemfinderSound: ; 12599
+ ld c, $4
+.sfx_loop
+ push bc
+ ld de, SFX_SECOND_PART_OF_ITEMFINDER
+ call WaitPlaySFX
+ ld de, SFX_TRANSACTION
+ call WaitPlaySFX
+ pop bc
+ dec c
+ jr nz, .sfx_loop
+ ret
+; 125ad
+
+.Script_FoundSomething: ; 0x125ad
+ reloadmappart
+ special UpdateTimePals
+ callasm .ItemfinderSound
+ writetext .Text_FoundSomething
+ loadmovesprites
+ end
+; 0x125ba
+
+.Script_FoundNothing: ; 0x125ba
+ reloadmappart
+ special UpdateTimePals
+ writetext .Text_FoundNothing
+ loadmovesprites
+ end
+; 0x125c3
+
+.Text_FoundSomething: ; 0x125c3
+ ; Yes! ITEMFINDER indicates there's an item nearby.
+ text_jump UnknownText_0x1c0a77
+ db "@"
+; 0x125c8
+
+.Text_FoundNothing: ; 0x125c8
+ ; Nope! ITEMFINDER isn't responding.
+ text_jump UnknownText_0x1c0aa9
+ db "@"
+; 0x125cd
diff --git a/event/kurt.asm b/event/kurt.asm
index 78dbd5aef..8f9dd4fd6 100644
--- a/event/kurt.asm
+++ b/event/kurt.asm
@@ -23,7 +23,7 @@ UnknownText_0x88013: ; 0x88013
; 0x88018
Special_SelectApricornForKurt: ; 88018
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld c, $1
xor a
ld [wd0e4], a
@@ -40,7 +40,7 @@ Special_SelectApricornForKurt: ; 88018
and a
jr z, .done
ld [CurItem], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld c, a
push bc
call Kurt_PrintTextHowMany
@@ -67,7 +67,7 @@ Kurt_SelectApricorn: ; 88055
ld [hBGMapMode], a
call Function352f
call UpdateSprites
- call Function350c
+ call HandleScrollingMenu
ld a, [wcf73]
cp $2
jr z, .nope
@@ -98,9 +98,9 @@ Kurt_SelectApricorn: ; 88055
db 4, 7
db 1
dbw 0, Buffer1
- dbw BANK(.Name), .Name
- dbw BANK(.Quantity), .Quantity
- dbw BANK(NULL), NULL
+ dba .Name
+ dba .Quantity
+ dba NULL
.Name: ; 8809f
ld a, [MenuSelection]
@@ -135,7 +135,7 @@ Kurt_SelectQuantity: ; 880c2
.loop
xor a
ld [hBGMapMode], a
- call Function1cbb
+ call MenuBox
call UpdateSprites
call .PlaceApricornName
call PlaceApricornQuantity
@@ -166,7 +166,7 @@ Kurt_SelectQuantity: ; 880c2
db 0, 0, -1, 0 ; XXX
.PlaceApricornName: ; 88116
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
ld de, $0015
add hl, de
ld d, h
@@ -176,7 +176,7 @@ Kurt_SelectQuantity: ; 880c2
; 88126
PlaceApricornQuantity: ; 88126
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
ld de, $0032
add hl, de
ld [hl], "×"
@@ -233,7 +233,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161
xor a
ld [ItemCountBuffer], a
ld a, -1
- ld [MiscBuffer2], a
+ ld [wd002], a
; Search for [CurItem] in the bag.
.loop1
@@ -253,7 +253,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161
; Increment the result counter and store the bag index of the match.
ld d, $0
push hl
- ld hl, MiscBuffer2
+ ld hl, wd002
add hl, de
inc e
ld a, [ItemCountBuffer]
@@ -271,7 +271,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161
jr z, .done
dec a
jr z, .OnlyOne
- ld hl, MiscBuffer2
+ ld hl, wd002
.loop2
ld a, [hl]
@@ -316,7 +316,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161
jr nz, .loop2
.OnlyOne
- ld hl, MiscBuffer2
+ ld hl, wd002
.loop4
ld a, [hl]
cp -1
diff --git a/event/magikarp.asm b/event/magikarp.asm
index 46939ee97..a60d90336 100644
--- a/event/magikarp.asm
+++ b/event/magikarp.asm
@@ -16,7 +16,7 @@ Special_CheckMagikarpLength: ; fbb32
; Now let's compute its length based on its DVs and ID.
ld a, [CurPartyMon]
ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
push hl
ld bc, MON_DVS
diff --git a/event/mom.asm b/event/mom.asm
index c6bf0da52..987f4bf0c 100644
--- a/event/mom.asm
+++ b/event/mom.asm
@@ -103,13 +103,13 @@ endr
.AccessBankOfMom: ; 162a8
ld hl, UnknownText_0x1665d
call PrintText
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld hl, MenuDataHeader_0x166b5
call CopyMenuDataHeader
call InterpretMenu2
call WriteBackup
jr c, .cancel
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr z, .withdraw
cp $2
@@ -148,7 +148,7 @@ endr
ld [hl], a
ld a, $5
ld [wcf64], a
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function16517
call Function1656b
call Function16571
@@ -216,7 +216,7 @@ endr
ld [hl], a
ld a, $5
ld [wcf64], a
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function16512
call Function1656b
call Function16571
@@ -510,7 +510,7 @@ Function16571: ; 16571
ld de, StringBuffer2
lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6
call PrintNum
- ld a, [$ff9b]
+ ld a, [hVBlankCounter]
and $10
jr nz, .skip
hlcoord 13, 6
diff --git a/event/move_deleter.asm b/event/move_deleter.asm
index 88dd234af..617e3b86d 100644
--- a/event/move_deleter.asm
+++ b/event/move_deleter.asm
@@ -12,20 +12,20 @@ MoveDeletion:
jr z, .asm_2c5bc
ld a, [CurPartyMon]
ld hl, PartyMon1Moves + 1
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [hl]
and a
jr z, .asm_2c5ca
ld hl, UnknownText_0x2c5ea
call PrintText
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
callba Function12f5b
push af
call Function2b74
pop af
jr c, .asm_2c5c3
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
push af
ld a, [CurSpecies]
ld [wd265], a
@@ -116,7 +116,7 @@ Function2c5f9: ; 2c5f9
ld hl, PartyMon1Moves
add hl, bc
ld a, [CurPartyMon]
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop bc
push bc
@@ -145,7 +145,7 @@ Function2c5f9: ; 2c5f9
ld hl, PartyMon1PP
add hl, bc
ld a, [CurPartyMon]
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop bc
inc b
diff --git a/event/name_rater.asm b/event/name_rater.asm
index 957d64efd..96d0ee363 100644
--- a/event/name_rater.asm
+++ b/event/name_rater.asm
@@ -91,7 +91,7 @@ CheckIfMonIsYourOT: ; fb78a
jr c, .nope
ld hl, PartyMon1ID
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld de, PlayerID
diff --git a/event/poisonstep.asm b/event/poisonstep.asm
new file mode 100755
index 000000000..1fafd63a5
--- /dev/null
+++ b/event/poisonstep.asm
@@ -0,0 +1,162 @@
+DoPoisonStep:: ; 505da
+ ld a, [PartyCount]
+ and a
+ jr z, .no_faint
+
+ xor a
+ ld c, 7
+ ld hl, EngineBuffer1
+.loop_clearEngineBuffer1
+ ld [hli], a
+ dec c
+ jr nz, .loop_clearEngineBuffer1
+
+ xor a
+ ld [CurPartyMon], a
+.loop_check_poison
+ call .DamageMonIfPoisoned
+ jr nc, .not_poisoned
+; the output flag is stored in c, copy it to the ([CurPartyMon] + 2)nd EngineBuffer
+; and set the corresponding flag in EngineBuffer1
+ ld a, [CurPartyMon]
+ ld e, a
+ ld d, 0
+ ld hl, EngineBuffer2
+ add hl, de
+ ld [hl], c
+ ld a, [EngineBuffer1]
+ or c
+ ld [EngineBuffer1], a
+
+.not_poisoned
+ ld a, [PartyCount]
+ ld hl, CurPartyMon
+ inc [hl]
+ cp [hl]
+ jr nz, .loop_check_poison
+
+ ld a, [EngineBuffer1]
+ and %10
+ jr nz, .someone_has_fainted
+ ld a, [EngineBuffer1]
+ and %01
+ jr z, .no_faint
+ call .PlayPoisonSFX
+ xor a
+ ret
+
+.someone_has_fainted
+ ld a, BANK(.Script_MonFaintedToPoison)
+ ld hl, .Script_MonFaintedToPoison
+ call CallScript
+ scf
+ ret
+
+.no_faint
+ xor a
+ ret
+; 5062e
+
+.DamageMonIfPoisoned: ; 5062e
+; check if mon is poisoned, return if not
+ ld a, MON_STATUS
+ call GetPartyParamLocation
+ ld a, [hl]
+ and 1 << PSN
+ ret z
+
+; check if mon is already fainted, return if so
+ ld a, MON_HP
+ call GetPartyParamLocation
+ ld a, [hli]
+ ld b, a
+ ld c, [hl]
+ or c
+ ret z
+
+; do 1 HP damage
+ dec bc
+ ld [hl], c
+ dec hl
+ ld [hl], b
+
+; check if mon has fainted as a result of poison damage
+ ld a, b
+ or c
+ jr nz, .not_fainted
+
+; the mon has fainted, reset its status, set carry, and return %10
+ ld a, MON_STATUS
+ call GetPartyParamLocation
+ ld [hl], 0
+ ld c, %10
+ scf
+ ret
+
+.not_fainted
+; set carry and return %01
+ ld c, %01
+ scf
+ ret
+; 50658
+
+.PlayPoisonSFX: ; 50658
+ ld de, SFX_POISON
+ call PlaySFX
+ ld b, $2
+ predef Functioncbcdd
+ call DelayFrame
+ ret
+; 50669
+
+.Script_MonFaintedToPoison: ; 50669
+ callasm .PlayPoisonSFX
+ loadfont
+ callasm .CheckWhitedOut
+ iffalse .whiteout
+ loadmovesprites
+ end
+; 50677
+
+.whiteout: ; 50677
+ farjump Script_OverworldWhiteout
+; 5067b
+
+.CheckWhitedOut: ; 5067b
+ xor a
+ ld [CurPartyMon], a
+ ld de, EngineBuffer2
+.party_loop
+ push de
+ ld a, [de]
+ and %10
+ jr z, .mon_not_fainted
+ ld c, HAPPINESS_POISONFAINT
+ callba ChangeHappiness
+ callba GetPartyNick
+ ld hl, .PoisonFaintText
+ call PrintText
+
+.mon_not_fainted
+ pop de
+ inc de
+ ld hl, CurPartyMon
+ inc [hl]
+ ld a, [PartyCount]
+ cp [hl]
+ jr nz, .party_loop
+ predef CheckPlayerPartyForFitPkmn
+ ld a, d
+ ld [ScriptVar], a
+ ret
+; 506b2
+
+.PoisonFaintText: ; 506b2
+ text_jump UnknownText_0x1c0acc
+ db "@"
+; 506b7
+
+.PoisonWhiteOutText: ; 506b7
+ text_jump UnknownText_0x1c0ada
+ db "@"
+; 506bc
diff --git a/event/poke_seer.asm b/event/poke_seer.asm
index f785e378c..b5364e67f 100644
--- a/event/poke_seer.asm
+++ b/event/poke_seer.asm
@@ -97,7 +97,7 @@ SeerAction4: ; 4f12b
; 4f134
ReadCaughtData: ; 4f134
- ld a, PartyMon1CaughtData - PartyMon1
+ ld a, MON_CAUGHTDATA
call GetPartyParamLocation
ld a, [hli]
ld [wd03b], a
@@ -109,7 +109,7 @@ ReadCaughtData: ; 4f134
ld a, 1
ld [wd002], a
- ld a, PartyMon1ID - PartyMon1
+ ld a, MON_ID
call GetPartyParamLocation
ld a, [PlayerID]
cp [hl]
@@ -358,7 +358,7 @@ SeerCancelText: ; 0x4f2af
SeerAdvice: ; 4f2b4
- ld a, PartyMon1Level - PartyMon1
+ ld a, MON_LEVEL
call GetPartyParamLocation
ld a, [wd038 + 2]
ld c, a
@@ -426,7 +426,7 @@ SeerAdvice5: ; 0x4f2fc
GetCaughtGender: ; 4f301
- ld hl, PartyMon1CaughtGender - PartyMon1
+ ld hl, MON_CAUGHTGENDER
add hl, bc
ld a, [hl]
diff --git a/event/sacred_ash.asm b/event/sacred_ash.asm
new file mode 100755
index 000000000..00b80bb46
--- /dev/null
+++ b/event/sacred_ash.asm
@@ -0,0 +1,74 @@
+
+_SacredAsh: ; 507e6
+ ld a, $0
+ ld [wd0ec], a
+ call CheckAnyFaintedMon
+ ret nc
+
+ ld hl, SacredAshScript
+ call QueueScript
+ ld a, $1
+ ld [wd0ec], a
+ ret
+; 507fb
+
+CheckAnyFaintedMon: ; 507fb
+ ld de, PARTYMON_STRUCT_LENGTH
+ ld bc, PartySpecies
+ ld hl, PartyMon1HP
+ ld a, [PartyCount]
+ and a
+ ret z
+
+.loop
+ push af
+ push hl
+ ld a, [bc]
+ inc bc
+ cp EGG
+ jr z, .next
+
+ ld a, [hli]
+ or [hl]
+ jr z, .done
+
+.next
+ pop hl
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop
+ xor a
+ ret
+
+.done
+ pop hl
+ pop af
+ scf
+ ret
+; 50821
+
+SacredAshScript: ; 0x50821
+ special HealParty
+ reloadmappart
+ playsound SFX_WARP_TO
+ special FadeOutPalettes
+ special FadeInPalettes
+ special FadeOutPalettes
+ special FadeInPalettes
+ special FadeOutPalettes
+ special FadeInPalettes
+ waitbutton
+ writetext UnknownText_0x50845
+ playsound SFX_CAUGHT_MON
+ waitbutton
+ closetext
+ loadmovesprites
+ end
+; 0x50845
+
+UnknownText_0x50845: ; 0x50845
+ ; 's #MON were all healed!
+ text_jump UnknownText_0x1c0b65
+ db "@"
+; 0x5084a
diff --git a/event/squirtbottle.asm b/event/squirtbottle.asm
new file mode 100755
index 000000000..b59cdc3f1
--- /dev/null
+++ b/event/squirtbottle.asm
@@ -0,0 +1,51 @@
+_Squirtbottle: ; 50730
+ ld hl, UnknownScript_0x5073c
+ call QueueScript
+ ld a, $1
+ ld [wd0ec], a
+ ret
+; 5073c
+
+UnknownScript_0x5073c: ; 0x5073c
+ reloadmappart
+ special UpdateTimePals
+ callasm Function50753
+ iffalse UnknownScript_0x5074b
+ farjump WateredWeirdTreeScript
+; 0x5074b
+
+UnknownScript_0x5074b: ; 0x5074b
+ jumptext UnknownText_0x5074e
+; 0x5074e
+
+UnknownText_0x5074e: ; 0x5074e
+ ; sprinkled water. But nothing happened…
+ text_jump UnknownText_0x1c0b3b
+ db "@"
+; 0x50753
+
+Function50753: ; 50753
+ ld a, [MapGroup]
+ cp GROUP_ROUTE_36
+ jr nz, .asm_50774
+
+ ld a, [MapNumber]
+ cp MAP_ROUTE_36
+ jr nz, .asm_50774
+
+ callba GetFacingObject
+ jr c, .asm_50774
+
+ ld a, d
+ cp $17
+ jr nz, .asm_50774
+
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_50774
+ xor a
+ ld [ScriptVar], a
+ ret
+; 50779
diff --git a/event/sweet_scent.asm b/event/sweet_scent.asm
new file mode 100755
index 000000000..ebe0d4266
--- /dev/null
+++ b/event/sweet_scent.asm
@@ -0,0 +1,75 @@
+SweetScentFromMenu: ; 506bc
+ ld hl, UnknownScript_0x506c8
+ call QueueScript
+ ld a, $1
+ ld [wd0ec], a
+ ret
+; 506c8
+
+UnknownScript_0x506c8: ; 0x506c8
+ reloadmappart
+ special UpdateTimePals
+ callasm GetPartyNick
+ writetext UnknownText_0x50726
+ closetext
+ callasm SweetScentEncounter
+ iffalse UnknownScript_0x506e9
+ checkflag ENGINE_BUG_CONTEST_TIMER
+ iftrue UnknownScript_0x506e5
+ battlecheck
+ startbattle
+ returnafterbattle
+ end
+; 0x506e5
+
+UnknownScript_0x506e5: ; 0x506e5
+ farjump BugCatchingContestBattleScript
+; 0x506e9
+
+UnknownScript_0x506e9: ; 0x506e9
+ writetext UnknownText_0x5072b
+ closetext
+ loadmovesprites
+ end
+; 0x506ef
+
+SweetScentEncounter: ; 506ef
+ callba CanUseSweetScent
+ jr nc, .no_battle
+ ld hl, StatusFlags2
+ bit 2, [hl]
+ jr nz, .not_in_bug_contest
+ callba GetMapEncounterRate
+ ld a, b
+ and a
+ jr z, .no_battle
+ callba ChooseWildEncounter
+ jr nz, .no_battle
+ jr .start_battle
+
+.not_in_bug_contest
+ callba ChooseWildEncounter_BugContest
+
+.start_battle
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.no_battle
+ xor a
+ ld [ScriptVar], a
+ ld [BattleType], a
+ ret
+; 50726
+
+UnknownText_0x50726: ; 0x50726
+ ; used SWEET SCENT!
+ text_jump UnknownText_0x1c0b03
+ db "@"
+; 0x5072b
+
+UnknownText_0x5072b: ; 0x5072b
+ ; Looks like there's nothing here…
+ text_jump UnknownText_0x1c0b1a
+ db "@"
+; 0x50730
diff --git a/event/unown.asm b/event/unown.asm
index d0456f896..2d48dc695 100644
--- a/event/unown.asm
+++ b/event/unown.asm
@@ -38,7 +38,7 @@ SpecialOmanyteChamber: ; 8adef
dec a
ld [CurPartyMon], a
push bc
- ld a, PartyMon1Item - PartyMon1
+ ld a, MON_ITEM
call GetPartyParamLocation
pop bc
ld a, [hl]
@@ -122,10 +122,10 @@ Special_DisplayUnownWords: ; 8ae68
call LoadMenuDataHeader
xor a
ld [hBGMapMode], a
- call Function1cbb
+ call MenuBox
call UpdateSprites
call Function321c
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
inc hl
ld d, $0
ld e, $14
diff --git a/event/whiteout.asm b/event/whiteout.asm
new file mode 100755
index 000000000..5cc0a07f9
--- /dev/null
+++ b/event/whiteout.asm
@@ -0,0 +1,84 @@
+Script_BattleWhiteout:: ; 0x124c1
+ callasm BattleBGMap
+ jump Script_Whiteout
+; 0x124c8
+
+Script_OverworldWhiteout:: ; 0x124c8
+ refreshscreen $0
+ callasm OverworldBGMap
+
+Script_Whiteout: ; 0x124ce
+ writetext .WhitedOutText
+ closetext
+ special FadeOutPalettes
+ pause 40
+ special HealParty
+ checkflag ENGINE_BUG_CONTEST_TIMER
+ iftrue .bug_contest
+ callasm HalveMoney
+ callasm GetWhiteoutSpawn
+ farscall Script_AbortBugContest
+ special WarpToSpawnPoint
+ newloadmap MAPSETUP_WARP
+ resetfuncs
+
+.bug_contest
+ jumpstd bugcontestresultswarp
+; 0x124f5
+
+.WhitedOutText: ; 0x124f5
+ ; is out of useable #MON! whited out!
+ text_jump UnknownText_0x1c0a4e
+ db "@"
+; 0x124fa
+
+OverworldBGMap: ; 124fa
+ call ClearPalettes
+ call ClearScreen
+ call Function3200
+ call HideSprites
+ call Function4f0
+ ret
+; 1250a
+
+BattleBGMap: ; 1250a
+ ld b, $0
+ call GetSGBLayout
+ call SetPalettes
+ ret
+; 12513
+
+HalveMoney: ; 12513
+
+; Empty function...
+ callba MobileFn_1060c7
+
+; Halve the player's money.
+ ld hl, Money
+ ld a, [hl]
+ srl a
+ ld [hli], a
+ ld a, [hl]
+ rra
+ ld [hli], a
+ ld a, [hl]
+ rra
+ ld [hl], a
+ ret
+; 12527
+
+
+GetWhiteoutSpawn: ; 12527
+ ld a, [wLastSpawnMapGroup]
+ ld d, a
+ ld a, [wLastSpawnMapNumber]
+ ld e, a
+ callba IsSpawnPoint
+ ld a, c
+ jr c, .yes
+ xor a ; SPAWN_HOME
+
+.yes
+ ld [wd001], a
+ ret
+; 1253d
diff --git a/gbhw.asm b/gbhw.asm
index 8c33239f2..fac373647 100644
--- a/gbhw.asm
+++ b/gbhw.asm
@@ -59,6 +59,7 @@ rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W)
rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W)
rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only)
rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W)
+rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W)
rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W)
rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W)
rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W)
@@ -68,6 +69,7 @@ rNR31 EQU $ff1b ; Channel 3 Sound Length
rNR32 EQU $ff1c ; Channel 3 Select output level (R/W)
rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W)
rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W)
+rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W)
rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W)
rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W)
rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W)
@@ -75,6 +77,22 @@ rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W)
rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W)
rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W)
rNR52 EQU $ff26 ; Sound on/off
+rWave_0 EQU $ff30
+rWave_1 EQU $ff31
+rWave_2 EQU $ff32
+rWave_3 EQU $ff33
+rWave_4 EQU $ff34
+rWave_5 EQU $ff35
+rWave_6 EQU $ff36
+rWave_7 EQU $ff37
+rWave_8 EQU $ff38
+rWave_9 EQU $ff39
+rWave_a EQU $ff3a
+rWave_b EQU $ff3b
+rWave_c EQU $ff3c
+rWave_d EQU $ff3d
+rWave_e EQU $ff3e
+rWave_f EQU $ff3f
rLCDC EQU $ff40 ; LCD Control (R/W)
rSTAT EQU $ff41 ; LCDC Status (R/W)
rSCY EQU $ff42 ; Scroll Y (R/W)
diff --git a/gfx/unknown/0f8ac0.2bpp b/gfx/battle/enemy_hp_bar_border.1bpp
index 629b4770a..629b4770a 100644
--- a/gfx/unknown/0f8ac0.2bpp
+++ b/gfx/battle/enemy_hp_bar_border.1bpp
Binary files differ
diff --git a/gfx/unknown/0f8b10.2bpp b/gfx/battle/expbar.2bpp
index cf869d98b..cf869d98b 100644
--- a/gfx/unknown/0f8b10.2bpp
+++ b/gfx/battle/expbar.2bpp
Binary files differ
diff --git a/gfx/unknown/0f8ae0.2bpp b/gfx/battle/hp_exp_bar_border.1bpp
index 1e5dd7af6..1e5dd7af6 100644
--- a/gfx/unknown/0f8ae0.2bpp
+++ b/gfx/battle/hp_exp_bar_border.1bpp
Binary files differ
diff --git a/gfx/unknown/0f9344.2bpp b/gfx/frames/map_entry_sign.2bpp
index a0143875a..a0143875a 100644
--- a/gfx/unknown/0f9344.2bpp
+++ b/gfx/frames/map_entry_sign.2bpp
Binary files differ
diff --git a/gfx/unknown/0f9204.2bpp b/gfx/frames/space.2bpp
index 01d633b27..01d633b27 100644
--- a/gfx/unknown/0f9204.2bpp
+++ b/gfx/frames/space.2bpp
Binary files differ
diff --git a/gfx/unknown/08c9cc.2bpp b/gfx/misc/cut_grass.2bpp
index 1c8a3f9a8..1c8a3f9a8 100644
--- a/gfx/unknown/08c9cc.2bpp
+++ b/gfx/misc/cut_grass.2bpp
Binary files differ
diff --git a/gfx/unknown/08c98c.2bpp b/gfx/misc/cut_tree.2bpp
index aa8078f31..aa8078f31 100644
--- a/gfx/unknown/08c98c.2bpp
+++ b/gfx/misc/cut_tree.2bpp
Binary files differ
diff --git a/gfx/misc/fishing.2bpp b/gfx/misc/fishing.2bpp
deleted file mode 100644
index 0f7fd175d..000000000
--- a/gfx/misc/fishing.2bpp
+++ /dev/null
Binary files differ
diff --git a/gfx/misc/fishing1.2bpp b/gfx/misc/fishing1.2bpp
new file mode 100644
index 000000000..b62b99ffc
--- /dev/null
+++ b/gfx/misc/fishing1.2bpp
@@ -0,0 +1 @@
+???? \ No newline at end of file
diff --git a/gfx/misc/fishing2.2bpp b/gfx/misc/fishing2.2bpp
new file mode 100644
index 000000000..bb3ed2bbf
--- /dev/null
+++ b/gfx/misc/fishing2.2bpp
Binary files differ
diff --git a/gfx/misc/fishing3.2bpp b/gfx/misc/fishing3.2bpp
new file mode 100644
index 000000000..f8b9f0180
--- /dev/null
+++ b/gfx/misc/fishing3.2bpp
Binary files differ
diff --git a/gfx/misc/fishing4.2bpp b/gfx/misc/fishing4.2bpp
new file mode 100644
index 000000000..987a4ad34
--- /dev/null
+++ b/gfx/misc/fishing4.2bpp
@@ -0,0 +1 @@
+@ 2 d 6  \ No newline at end of file
diff --git a/gfx/unknown/0f8f24.2bpp b/gfx/mobile/overworld_phone_icon.2bpp
index d19ae7f12..d19ae7f12 100644
--- a/gfx/unknown/0f8f24.2bpp
+++ b/gfx/mobile/overworld_phone_icon.2bpp
diff --git a/gfx/unknown/0f9214.2bpp b/gfx/mobile/phone_tiles.2bpp
index 93b085ee4..93b085ee4 100644
--- a/gfx/unknown/0f9214.2bpp
+++ b/gfx/mobile/phone_tiles.2bpp
Binary files differ
diff --git a/gfx/unknown/0b84f2.2bpp b/gfx/overworld/chris_fish.2bpp
index c3609ab54..c3609ab54 100644
--- a/gfx/unknown/0b84f2.2bpp
+++ b/gfx/overworld/chris_fish.2bpp
Binary files differ
diff --git a/gfx/unknown/0b8582.2bpp b/gfx/overworld/kris_fish.2bpp
index 9d47dc140..9d47dc140 100644
--- a/gfx/unknown/0b8582.2bpp
+++ b/gfx/overworld/kris_fish.2bpp
Binary files differ
diff --git a/gfx/overworld/sprite_headers.asm b/gfx/overworld/sprite_headers.asm
index 42822224a..095d7594b 100644
--- a/gfx/overworld/sprite_headers.asm
+++ b/gfx/overworld/sprite_headers.asm
@@ -3,614 +3,417 @@
; Length, Bank
; Type, Palette
+sprite_header: MACRO
+; pointer, length, type, palette
+ dw \1
+ db \2 * 4 tiles, BANK(\1)
+ db \3, \4
+ENDM
+
ChrisSprite: ; 14736
- dw ChrisSpriteGFX
- db $3 * $40, BANK(ChrisSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header ChrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1473c
ChrisBikeSprite: ; 1473c
- dw ChrisBikeSpriteGFX
- db $3 * $40, BANK(ChrisBikeSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header ChrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14742
GameboyKidSprite: ; 14742
- dw GameboyKidSpriteGFX
- db $3 * $40, BANK(GameboyKidSpriteGFX)
- db STANDING_SPRITE, PAL_OW_GREEN
+ sprite_header GameboyKidSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN
; 14748
SilverSprite: ; 14748
- dw SilverSpriteGFX
- db $3 * $40, BANK(SilverSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header SilverSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1474e
OakSprite: ; 1474e
- dw OakSpriteGFX
- db $3 * $40, BANK(OakSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header OakSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14754
RedSprite: ; 14754
- dw RedSpriteGFX
- db $3 * $40, BANK(RedSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header RedSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1475a
BlueSprite: ; 1475a
- dw BlueSpriteGFX
- db $3 * $40, BANK(BlueSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header BlueSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14760
BillSprite: ; 14760
- dw BillSpriteGFX
- db $3 * $40, BANK(BillSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header BillSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14766
ElderSprite: ; 14766
- dw ElderSpriteGFX
- db $3 * $40, BANK(ElderSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header ElderSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 1476c
JanineSprite: ; 1476c
- dw JanineSpriteGFX
- db $3 * $40, BANK(JanineSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header JanineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14772
KurtSprite: ; 14772
- dw KurtSpriteGFX
- db $3 * $40, BANK(KurtSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header KurtSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14778
MomSprite: ; 14778
- dw MomSpriteGFX
- db $3 * $40, BANK(MomSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header MomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1477e
BlaineSprite: ; 1477e
- dw BlaineSpriteGFX
- db $3 * $40, BANK(BlaineSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header BlaineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14784
RedsMomSprite: ; 14784
- dw RedsMomSpriteGFX
- db $3 * $40, BANK(RedsMomSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header RedsMomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1478a
DaisySprite: ; 1478a
- dw DaisySpriteGFX
- db $3 * $40, BANK(DaisySpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header DaisySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14790
ElmSprite: ; 14790
- dw ElmSpriteGFX
- db $3 * $40, BANK(ElmSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header ElmSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14796
WillSprite: ; 14796
- dw WillSpriteGFX
- db $3 * $40, BANK(WillSpriteGFX)
- db STANDING_SPRITE, PAL_OW_RED
+ sprite_header WillSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
; 1479c
FalknerSprite: ; 1479c
- dw FalknerSpriteGFX
- db $3 * $40, BANK(FalknerSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header FalknerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 147a2
WhitneySprite: ; 147a2
- dw WhitneySpriteGFX
- db $3 * $40, BANK(WhitneySpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header WhitneySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 147a8
BugsySprite: ; 147a8
- dw BugsySpriteGFX
- db $3 * $40, BANK(BugsySpriteGFX)
- db WALKING_SPRITE, PAL_OW_GREEN
+ sprite_header BugsySpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
; 147ae
MortySprite: ; 147ae
- dw MortySpriteGFX
- db $3 * $40, BANK(MortySpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header MortySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 147b4
ChuckSprite: ; 147b4
- dw ChuckSpriteGFX
- db $3 * $40, BANK(ChuckSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header ChuckSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 147ba
JasmineSprite: ; 147ba
- dw JasmineSpriteGFX
- db $3 * $40, BANK(JasmineSpriteGFX)
- db WALKING_SPRITE, PAL_OW_GREEN
+ sprite_header JasmineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
; 147c0
PryceSprite: ; 147c0
- dw PryceSpriteGFX
- db $3 * $40, BANK(PryceSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header PryceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 147c6
ClairSprite: ; 147c6
- dw ClairSpriteGFX
- db $3 * $40, BANK(ClairSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header ClairSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 147cc
BrockSprite: ; 147cc
- dw BrockSpriteGFX
- db $3 * $40, BANK(BrockSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header BrockSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 147d2
KarenSprite: ; 147d2
- dw KarenSpriteGFX
- db $3 * $40, BANK(KarenSpriteGFX)
- db STANDING_SPRITE, PAL_OW_BLUE
+ sprite_header KarenSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
; 147d8
BrunoSprite: ; 147d8
- dw BrunoSpriteGFX
- db $3 * $40, BANK(BrunoSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header BrunoSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 147de
MistySprite: ; 147de
- dw MistySpriteGFX
- db $3 * $40, BANK(MistySpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header MistySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 147e4
LanceSprite: ; 147e4
- dw LanceSpriteGFX
- db $3 * $40, BANK(LanceSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header LanceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 147ea
SurgeSprite: ; 147ea
- dw SurgeSpriteGFX
- db $3 * $40, BANK(SurgeSpriteGFX)
- db WALKING_SPRITE, PAL_OW_GREEN
+ sprite_header SurgeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
; 147f0
ErikaSprite: ; 147f0
- dw ErikaSpriteGFX
- db $3 * $40, BANK(ErikaSpriteGFX)
- db WALKING_SPRITE, PAL_OW_GREEN
+ sprite_header ErikaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
; 147f6
KogaSprite: ; 147f6
- dw KogaSpriteGFX
- db $3 * $40, BANK(KogaSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header KogaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 147fc
SabrinaSprite: ; 147fc
- dw SabrinaSpriteGFX
- db $3 * $40, BANK(SabrinaSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header SabrinaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14802
CooltrainerMSprite: ; 14802
- dw CooltrainerMSpriteGFX
- db $3 * $40, BANK(CooltrainerMSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header CooltrainerMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14808
CooltrainerFSprite: ; 14808
- dw CooltrainerFSpriteGFX
- db $3 * $40, BANK(CooltrainerFSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header CooltrainerFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 1480e
BugCatcherSprite: ; 1480e
- dw BugCatcherSpriteGFX
- db $3 * $40, BANK(BugCatcherSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header BugCatcherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14814
TwinSprite: ; 14814
- dw TwinSpriteGFX
- db $3 * $40, BANK(TwinSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header TwinSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1481a
YoungsterSprite: ; 1481a
- dw YoungsterSpriteGFX
- db $3 * $40, BANK(YoungsterSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header YoungsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14820
LassSprite: ; 14820
- dw LassSpriteGFX
- db $3 * $40, BANK(LassSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header LassSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14826
TeacherSprite: ; 14826
- dw TeacherSpriteGFX
- db $3 * $40, BANK(TeacherSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header TeacherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1482c
BuenaSprite: ; 1482c
- dw BuenaSpriteGFX
- db $3 * $40, BANK(BuenaSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header BuenaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14832
SuperNerdSprite: ; 14832
- dw SuperNerdSpriteGFX
- db $3 * $40, BANK(SuperNerdSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header SuperNerdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14838
RockerSprite: ; 14838
- dw RockerSpriteGFX
- db $3 * $40, BANK(RockerSpriteGFX)
- db WALKING_SPRITE, PAL_OW_GREEN
+ sprite_header RockerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
; 1483e
PokefanMSprite: ; 1483e
- dw PokefanMSpriteGFX
- db $3 * $40, BANK(PokefanMSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header PokefanMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14844
PokefanFSprite: ; 14844
- dw PokefanFSpriteGFX
- db $3 * $40, BANK(PokefanFSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header PokefanFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 1484a
GrampsSprite: ; 1484a
- dw GrampsSpriteGFX
- db $3 * $40, BANK(GrampsSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header GrampsSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14850
GrannySprite: ; 14850
- dw GrannySpriteGFX
- db $3 * $40, BANK(GrannySpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header GrannySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14856
SwimmerGuySprite: ; 14856
- dw SwimmerGuySpriteGFX
- db $3 * $40, BANK(SwimmerGuySpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header SwimmerGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 1485c
SwimmerGirlSprite: ; 1485c
- dw SwimmerGirlSpriteGFX
- db $3 * $40, BANK(SwimmerGirlSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header SwimmerGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14862
BigSnorlaxSprite: ; 14862
- dw BigSnorlaxSpriteGFX
- db $3 * $40, BANK(BigSnorlaxSpriteGFX)
- db STANDING_SPRITE, PAL_OW_BLUE
+ sprite_header BigSnorlaxSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
; 14868
SurfingPikachuSprite: ; 14868
- dw SurfingPikachuSpriteGFX
- db $3 * $40, BANK(SurfingPikachuSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header SurfingPikachuSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1486e
RocketSprite: ; 1486e
- dw RocketSpriteGFX
- db $3 * $40, BANK(RocketSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header RocketSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 14874
RocketGirlSprite: ; 14874
- dw RocketGirlSpriteGFX
- db $3 * $40, BANK(RocketGirlSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header RocketGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 1487a
NurseSprite: ; 1487a
- dw NurseSpriteGFX
- db $3 * $40, BANK(NurseSpriteGFX)
- db STANDING_SPRITE, PAL_OW_RED
+ sprite_header NurseSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
; 14880
LinkReceptionistSprite: ; 14880
- dw LinkReceptionistSpriteGFX
- db $3 * $40, BANK(LinkReceptionistSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header LinkReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14886
ClerkSprite: ; 14886
- dw ClerkSpriteGFX
- db $3 * $40, BANK(ClerkSpriteGFX)
- db WALKING_SPRITE, PAL_OW_GREEN
+ sprite_header ClerkSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN
; 1488c
FisherSprite: ; 1488c
- dw FisherSpriteGFX
- db $3 * $40, BANK(FisherSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header FisherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14892
FishingGuruSprite: ; 14892
- dw FishingGuruSpriteGFX
- db $3 * $40, BANK(FishingGuruSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header FishingGuruSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14898
ScientistSprite: ; 14898
- dw ScientistSpriteGFX
- db $3 * $40, BANK(ScientistSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header ScientistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 1489e
KimonoGirlSprite: ; 1489e
- dw KimonoGirlSpriteGFX
- db $3 * $40, BANK(KimonoGirlSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header KimonoGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 148a4
SageSprite: ; 148a4
- dw SageSpriteGFX
- db $3 * $40, BANK(SageSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header SageSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 148aa
UnusedGuySprite: ; 148aa
- dw UnusedGuySpriteGFX
- db $3 * $40, BANK(UnusedGuySpriteGFX)
- db STANDING_SPRITE, PAL_OW_RED
+ sprite_header UnusedGuySpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
; 148b0
GentlemanSprite: ; 148b0
- dw GentlemanSpriteGFX
- db $3 * $40, BANK(GentlemanSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header GentlemanSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 148b6
BlackBeltSprite: ; 148b6
- dw BlackBeltSpriteGFX
- db $3 * $40, BANK(BlackBeltSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header BlackBeltSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 148bc
ReceptionistSprite: ; 148bc
- dw ReceptionistSpriteGFX
- db $3 * $40, BANK(ReceptionistSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header ReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 148c2
OfficerSprite: ; 148c2
- dw OfficerSpriteGFX
- db $3 * $40, BANK(OfficerSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header OfficerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 148c8
CalSprite: ; 148c8
- dw CalSpriteGFX
- db $3 * $40, BANK(CalSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header CalSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 148ce
SlowpokeSprite: ; 148ce
- dw SlowpokeSpriteGFX
- db $1 * $40, BANK(SlowpokeSpriteGFX)
- db STILL_SPRITE, PAL_OW_RED
+ sprite_header SlowpokeSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
; 148d4
CaptainSprite: ; 148d4
- dw CaptainSpriteGFX
- db $3 * $40, BANK(CaptainSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header CaptainSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 148da
BigLaprasSprite: ; 148da
- dw BigLaprasSpriteGFX
- db $3 * $40, BANK(BigLaprasSpriteGFX)
- db STANDING_SPRITE, PAL_OW_BLUE
+ sprite_header BigLaprasSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
; 148e0
GymGuySprite: ; 148e0
- dw GymGuySpriteGFX
- db $3 * $40, BANK(GymGuySpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header GymGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 148e6
SailorSprite: ; 148e6
- dw SailorSpriteGFX
- db $3 * $40, BANK(SailorSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header SailorSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 148ec
BikerSprite: ; 148ec
- dw BikerSpriteGFX
- db $3 * $40, BANK(BikerSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BROWN
+ sprite_header BikerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN
; 148f2
PharmacistSprite: ; 148f2
- dw PharmacistSpriteGFX
- db $3 * $40, BANK(PharmacistSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header PharmacistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 148f8
MonsterSprite: ; 148f8
- dw MonsterSpriteGFX
- db $3 * $40, BANK(MonsterSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header MonsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 148fe
FairySprite: ; 148fe
- dw FairySpriteGFX
- db $3 * $40, BANK(FairySpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header FairySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14904
BirdSprite: ; 14904
- dw BirdSpriteGFX
- db $3 * $40, BANK(BirdSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header BirdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 1490a
DragonSprite: ; 1490a
- dw DragonSpriteGFX
- db $3 * $40, BANK(DragonSpriteGFX)
- db WALKING_SPRITE, PAL_OW_RED
+ sprite_header DragonSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED
; 14910
BigOnixSprite: ; 14910
- dw BigOnixSpriteGFX
- db $3 * $40, BANK(BigOnixSpriteGFX)
- db STANDING_SPRITE, PAL_OW_BROWN
+ sprite_header BigOnixSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN
; 14916
N64Sprite: ; 14916
- dw N64SpriteGFX
- db $1 * $40, BANK(N64SpriteGFX)
- db STILL_SPRITE, PAL_OW_BROWN
+ sprite_header N64SpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
; 1491c
SudowoodoSprite: ; 1491c
- dw SudowoodoSpriteGFX
- db $3 * $40, BANK(SudowoodoSpriteGFX)
- db STANDING_SPRITE, PAL_OW_GREEN
+ sprite_header SudowoodoSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN
; 14922
SurfSprite: ; 14922
- dw SurfSpriteGFX
- db $3 * $40, BANK(SurfSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header SurfSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14928
PokeBallSprite: ; 14928
- dw PokeBallSpriteGFX
- db $1 * $40, BANK(PokeBallSpriteGFX)
- db STILL_SPRITE, PAL_OW_RED
+ sprite_header PokeBallSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
; 1492e
PokedexSprite: ; 1492e
- dw PokedexSpriteGFX
- db $1 * $40, BANK(PokedexSpriteGFX)
- db STILL_SPRITE, PAL_OW_BROWN
+ sprite_header PokedexSpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
; 14934
PaperSprite: ; 14934
- dw PaperSpriteGFX
- db $1 * $40, BANK(PaperSpriteGFX)
- db STILL_SPRITE, PAL_OW_BLUE
+ sprite_header PaperSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
; 1493a
VirtualBoySprite: ; 1493a
- dw VirtualBoySpriteGFX
- db $1 * $40, BANK(VirtualBoySpriteGFX)
- db STILL_SPRITE, PAL_OW_RED
+ sprite_header VirtualBoySpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
; 14940
OldLinkReceptionistSprite: ; 14940
- dw OldLinkReceptionistSpriteGFX
- db $3 * $40, BANK(OldLinkReceptionistSpriteGFX)
- db STANDING_SPRITE, PAL_OW_RED
+ sprite_header OldLinkReceptionistSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED
; 14946
RockSprite: ; 14946
- dw RockSpriteGFX
- db $1 * $40, BANK(RockSpriteGFX)
- db STILL_SPRITE, PAL_OW_ROCK
+ sprite_header RockSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK
; 1494c
BoulderSprite: ; 1494c
- dw BoulderSpriteGFX
- db $1 * $40, BANK(BoulderSpriteGFX)
- db STILL_SPRITE, PAL_OW_ROCK
+ sprite_header BoulderSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK
; 14952
SnesSprite: ; 14952
- dw SnesSpriteGFX
- db $1 * $40, BANK(SnesSpriteGFX)
- db STILL_SPRITE, PAL_OW_BLUE
+ sprite_header SnesSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
; 14958
FamicomSprite: ; 14958
- dw FamicomSpriteGFX
- db $1 * $40, BANK(FamicomSpriteGFX)
- db STILL_SPRITE, PAL_OW_RED
+ sprite_header FamicomSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
; 1495e
FruitTreeSprite: ; 1495e
- dw FruitTreeSpriteGFX
- db $1 * $40, BANK(FruitTreeSpriteGFX)
- db STILL_SPRITE, PAL_OW_TREE
+ sprite_header FruitTreeSpriteGFX, 1, STILL_SPRITE, PAL_OW_TREE
; 14964
GoldTrophySprite: ; 14964
- dw GoldTrophySpriteGFX
- db $1 * $40, BANK(GoldTrophySpriteGFX)
- db STILL_SPRITE, PAL_OW_BROWN
+ sprite_header GoldTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN
; 1496a
SilverTrophySprite: ; 1496a
- dw SilverTrophySpriteGFX
- db $1 * $40, BANK(SilverTrophySpriteGFX)
- db STILL_SPRITE, PAL_OW_SILVER
+ sprite_header SilverTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_SILVER
; 14970
KrisSprite: ; 14970
- dw KrisSpriteGFX
- db $3 * $40, BANK(KrisSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header KrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 14976
KrisBikeSprite: ; 14976
- dw KrisBikeSpriteGFX
- db $3 * $40, BANK(KrisBikeSpriteGFX)
- db WALKING_SPRITE, PAL_OW_BLUE
+ sprite_header KrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE
; 1497c
KurtOutsideSprite: ; 1497c
- dw KurtOutsideSpriteGFX
- db $3 * $40, BANK(KurtOutsideSpriteGFX)
- db STANDING_SPRITE, PAL_OW_BROWN
+ sprite_header KurtOutsideSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN
; 14982
SuicuneSprite: ; 14982
- dw SuicuneSpriteGFX
- db $1 * $40, BANK(SuicuneSpriteGFX)
- db STILL_SPRITE, PAL_OW_BLUE
+ sprite_header SuicuneSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE
; 14988
EnteiSprite: ; 14988
- dw EnteiSpriteGFX
- db $1 * $40, BANK(EnteiSpriteGFX)
- db STILL_SPRITE, PAL_OW_RED
+ sprite_header EnteiSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
; 1498e
RaikouSprite: ; 1498e
- dw RaikouSpriteGFX
- db $1 * $40, BANK(RaikouSpriteGFX)
- db STILL_SPRITE, PAL_OW_RED
+ sprite_header RaikouSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED
; 14994
StandingYoungsterSprite: ; 14994
- dw StandingYoungsterSpriteGFX
- db $3 * $40, BANK(StandingYoungsterSpriteGFX)
- db STANDING_SPRITE, PAL_OW_BLUE
+ sprite_header StandingYoungsterSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE
; 1499a
diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm
index 695999e82..fd37b0497 100644
--- a/gfx/pics/animation.asm
+++ b/gfx/pics/animation.asm
@@ -1,55 +1,55 @@
; Pic animation arrangement.
-Functiond0000: ; d0000
+AnimateMon_Slow_Normal: ; d0000
hlcoord 12, 0
ld a, [wBattleMode]
- cp $1
- jr z, .asm_d0012
- ld e, $0
+ cp WILD_BATTLE
+ jr z, .wild
+ ld e, ANIM_MON_SLOW
ld d, $0
- call Functiond008e
+ call AnimateFrontpic
ret
-.asm_d0012
- ld e, $1
+.wild
+ ld e, ANIM_MON_NORMAL
ld d, $0
- call Functiond008e
+ call AnimateFrontpic
ret
; d001a
-Functiond001a: ; d001a
- ld e, $2
+AnimateMon_Menu: ; d001a
+ ld e, ANIM_MON_MENU
ld d, $0
- call Functiond008e
+ call AnimateFrontpic
ret
; d0022
-Functiond0022: ; d0022
- ld e, $3
+AnimateMon_Trade: ; d0022
+ ld e, ANIM_MON_TRADE
ld d, $0
- call Functiond008e
+ call AnimateFrontpic
ret
; d002a
-Functiond002a: ; d002a
- ld e, $4
+AnimateMon_Evolve: ; d002a
+ ld e, ANIM_MON_EVOLVE
ld d, $0
- call Functiond008e
+ call AnimateFrontpic
ret
; d0032
-Functiond0032: ; d0032
- ld e, $5
+AnimateMon_Hatch: ; d0032
+ ld e, ANIM_MON_HATCH
ld d, $0
- call Functiond008e
+ call AnimateFrontpic
ret
; d003a
-Functiond003a: ; d003a
- ld e, $6
+AnimateMon_Unused: ; d003a
+ ld e, ANIM_MON_UNUSED
ld d, $0
- call Functiond008e
+ call AnimateFrontpic
ret
; d0042
@@ -81,31 +81,31 @@ PokeAnims: ; d0042
dw .Egg1
dw .Egg2
-.Slow: POKEANIM Cry3, Setup2, Play
-.Normal: POKEANIM Cry3, Setup, Play
-.Menu: POKEANIM Cry2, Setup, Play, SetWait, Wait, 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, Cry2, Setup, Play
-.Hatch: POKEANIM Extra, Play, Cry2, Setup, Play, SetWait, Wait, Extra, Play
-.Unused: POKEANIM Cry2, Setup, Play, SetWait, Wait, Extra, 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
-Functiond008e: ; d008e
- call Functiond01c6
+AnimateFrontpic: ; d008e
+ call AnimateMon_CheckIfPokemon
ret c
- call Functiond00a3
-.asm_d0095
+ call LoadMonAnimation
+.loop
call Functiond00b4
push af
callba Function10402d
pop af
- jr nc, .asm_d0095
+ jr nc, .loop
ret
; d00a3
-Functiond00a3: ; d00a3
+LoadMonAnimation: ; d00a3
push hl
ld c, e
ld b, 0
@@ -126,10 +126,10 @@ Functiond00b4: ; d00b4
push af
ld a, $2
ld [rSVBK], a
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
ld c, a
ld b, 0
- ld hl, w2_d169
+ ld hl, wPokeAnimPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -137,7 +137,7 @@ Functiond00b4: ; d00b4
ld a, [hl]
ld hl, PokeAnim_SetupCommands
rst JumpTable
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
ld c, a
pop af
ld [rSVBK], a
@@ -162,24 +162,24 @@ endm
setup_command PokeAnim_Play
setup_command PokeAnim_Play2
setup_command PokeAnim_Cry
- setup_command PokeAnim_Cry2
- setup_command PokeAnim_Cry3
+ setup_command PokeAnim_CryNoWait
+ setup_command PokeAnim_StereoCry
; d00f2
PokeAnim_SetWait: ; d00f2
- ld a, $12
- ld [w2_d181], a
- ld a, [w2_d168]
+ ld a, 18
+ ld [wPokeAnimWaitCounter], a
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
PokeAnim_Wait: ; d00fe
- ld hl, w2_d181
+ ld hl, wPokeAnimWaitCounter
dec [hl]
ret nz
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d010b
@@ -188,9 +188,9 @@ PokeAnim_Setup: ; d010b
ld b, $0
call Functiond0228
call Functiond0504
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d011d
@@ -199,9 +199,9 @@ PokeAnim_Setup2: ; d011d
ld b, $4
call Functiond0228
call Functiond0504
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d012f
@@ -210,9 +210,9 @@ PokeAnim_Extra: ; d012f
ld b, $0
call Functiond0228
call Functiond0504
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d0141
@@ -222,9 +222,9 @@ PokeAnim_Play: ; d0141
bit 7, a
ret z
call Functiond04bd
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d0155
@@ -233,53 +233,53 @@ PokeAnim_Play2: ; d0155
ld a, [w2_d17e]
bit 7, a
ret z
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d0166
PokeAnim_Nop: ; d0166
call Functiond01a9
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d0171
PokeAnim_Finish: ; d0171
call Functiond01a9
- ld hl, w2_d168
+ ld hl, wPokeAnimSceneIndex
set 7, [hl]
ret
; d017a
PokeAnim_Cry: ; d017a
- ld a, [w2_d16b]
+ ld a, [wPokeAnimSpecies]
call _PlayCry
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d0188
-PokeAnim_Cry2: ; d0188
- ld a, [w2_d16b]
+PokeAnim_CryNoWait: ; d0188
+ ld a, [wPokeAnimSpecies]
call PlayCry2
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d0196
-PokeAnim_Cry3: ; d0196
+PokeAnim_StereoCry: ; d0196
ld a, $f
ld [CryTracks], a
- ld a, [w2_d16b]
+ ld a, [wPokeAnimSpecies]
call PlayStereoCry2
- ld a, [w2_d168]
+ ld a, [wPokeAnimSceneIndex]
inc a
- ld [w2_d168], a
+ ld [wPokeAnimSceneIndex], a
ret
; d01a9
@@ -297,16 +297,16 @@ Functiond01a9: ; d01a9
ret
; d01c6
-Functiond01c6: ; d01c6
+AnimateMon_CheckIfPokemon: ; d01c6
ld a, [CurPartySpecies]
cp EGG
- jr z, .asm_d01d4
+ jr z, .fail
call IsAPokemon
- jr c, .asm_d01d4
+ jr c, .fail
and a
ret
-.asm_d01d4
+.fail
scf
ret
; d01d6
@@ -316,39 +316,44 @@ Functiond01d6: ; d01d6
push af
ld a, $2
ld [rSVBK], a
+
push bc
push de
push hl
- ld hl, w2_d168
- ld bc, $0029
+ ld hl, wPokeAnimSceneIndex
+ ld bc, wPokeAnimStructEnd - wPokeAnimSceneIndex
xor a
call ByteFill
pop hl
pop de
pop bc
+
+; bc contains anim pointer
ld a, c
- ld [w2_d169], a
+ ld [wPokeAnimPointer], a
ld a, b
- ld [w2_d16a], a
+ ld [wPokeAnimPointer + 1], a
+; hl contains TileMap coords
ld a, l
- ld [w2_d16f], a
+ ld [wPokeAnimCoord], a
ld a, h
- ld [w2_d170], a
+ ld [wPokeAnimCoord + 1], a
+; d = ?????
ld a, d
ld [w2_d16e], a
ld a, $1
ld hl, CurPartySpecies
call GetFarWRAMByte
- ld [w2_d16b], a
+ ld [wPokeAnimSpecies], a
ld a, $1
ld hl, UnownLetter
call GetFarWRAMByte
- ld [w2_d16c], a
- call Functiond065c
- ld [w2_d16d], a
- call Functiond05b4
+ ld [wPokeAnimUnownLetter], a
+ call PokeAnim_GetSpeciesOrUnown
+ ld [wPokeAnimSpeciesOrUnown], a
+ call PokeAnim_GetFrontpicDims
ld a, c
- ld [w2_d171], a
+ ld [wPokeAnimFrontpicHeight], a
pop af
ld [rSVBK], a
ret
@@ -361,7 +366,7 @@ Functiond0228: ; d0228
ld [rSVBK], a
push bc
ld hl, w2_d172
- ld bc, $001f
+ ld bc, wPokeAnimStructEnd - w2_d172
xor a
call ByteFill
pop bc
@@ -406,13 +411,13 @@ Functiond0261: ; d0261
call Functiond02c8
ld a, [w2_d183]
call Functiond02ae
- ld [w2_d181], a
+ ld [wPokeAnimWaitCounter], a
call Functiond02dc
Functiond0282: ; d0282
- ld a, [w2_d181]
+ ld a, [wPokeAnimWaitCounter]
dec a
- ld [w2_d181], a
+ ld [wPokeAnimWaitCounter], a
ret nz
call Functiond02e4
ret
@@ -487,14 +492,14 @@ Functiond02e4: ; d02e4
ret
; d02ec
-Functiond02ec: ; d02ec
- ld a, [w2_d16b]
+PokeAnim_IsUnown: ; d02ec
+ ld a, [wPokeAnimSpecies]
cp UNOWN
ret
; d02f2
-Functiond02f2: ; d02f2
- ld a, [w2_d16b]
+PokeAnim_IsEgg: ; d02f2
+ ld a, [wPokeAnimSpecies]
cp EGG
ret
; d02f8
@@ -562,7 +567,7 @@ Functiond033b: ; d033b
Functiond0356: ; d0356
push hl
- ld a, [w2_d171]
+ ld a, [wPokeAnimFrontpicHeight]
sub 5
ld c, a
ld b, 0
@@ -581,13 +586,13 @@ Functiond036b: ; d036b
ld [w2_d187], a
ld [w2_d186], a
ld [w2_d185], a
-.asm_d0375
+.loop
push hl
call Functiond0392
pop hl
ld a, b
and a
- jr z, .asm_d038a
+ jr z, .next
ld a, [w2_d177]
call GetFarByte
@@ -596,11 +601,11 @@ Functiond036b: ; d036b
call Functiond03bd
pop hl
-.asm_d038a
+.next
push hl
call Functiond0499
pop hl
- jr nc, .asm_d0375
+ jr nc, .loop
ret
; d0392
@@ -617,23 +622,23 @@ Functiond0392: ; d0392
ld b, [hl]
ld a, [w2_d187]
and 7
- jr z, .asm_d03b0
+ jr z, .skip
ld c, a
ld a, b
-.asm_d03ab
+.loop
rrca
dec c
- jr nz, .asm_d03ab
+ jr nz, .loop
ld b, a
-.asm_d03b0
+.skip
xor a
bit 0, b
- jr z, .asm_d03b7
+ jr z, .finish
ld a, 1
-.asm_d03b7
+.finish
ld b, a
ld hl, w2_d187
inc [hl]
@@ -656,18 +661,18 @@ Functiond03bd: ; d03bd
Functiond03cd: ; d03cd
call Functiond046c
ld a, [w2_d186]
- ld bc, $0014
+ ld bc, SCREEN_WIDTH
call AddNTimes
ld a, [wc2c6]
and a
- jr nz, .asm_d03e8
+ jr nz, .go
ld a, [w2_d185]
ld e, a
ld d, 0
add hl, de
- jr .asm_d03f3
+ jr .skip
-.asm_d03e8
+.go
ld a, [w2_d185]
ld e, a
ld a, l
@@ -677,7 +682,7 @@ Functiond03cd: ; d03cd
sbc 0
ld h, a
-.asm_d03f3
+.skip
ret
; d03f4
@@ -685,18 +690,18 @@ Unknown_d03f4: db 6, 5, 4
Functiond03f7: ; d03f7
push af
- ld a, [w2_d171]
+ ld a, [wPokeAnimFrontpicHeight]
cp 5
- jr z, .asm_d0405
+ jr z, .check_add_24
cp 6
- jr z, .asm_d041a
+ jr z, .check_add_13
pop af
ret
-.asm_d0405
+.check_add_24
pop af
cp 5 * 5
- jr nc, .asm_d0417
+ jr nc, .add_24
push hl
push de
ld hl, Unknown_d042f
@@ -708,14 +713,14 @@ Functiond03f7: ; d03f7
pop hl
ret
-.asm_d0417
+.add_24
add 24
ret
-.asm_d041a
+.check_add_13
pop af
cp 6 * 6
- jr nc, .asm_d042c
+ jr nc, .add_13
push hl
push de
ld hl, Unknown_d0448
@@ -727,7 +732,7 @@ Functiond03f7: ; d03f7
pop hl
ret
-.asm_d042c
+.add_13
add 13
ret
; d042f
@@ -749,31 +754,31 @@ Unknown_d0448:
Functiond046c: ; d046c
- ld hl, w2_d16f
+ ld hl, wPokeAnimCoord
ld a, [hli]
ld h, [hl]
ld l, a
- ld a, [w2_d171]
+ ld a, [wPokeAnimFrontpicHeight]
ld de, 0
ld bc, 6
cp 7
- jr z, .asm_d048f
+ jr z, .okay
ld de, 21
ld bc, 25
cp 6
- jr z, .asm_d048f
+ jr z, .okay
ld de, 41
ld bc, 45
-.asm_d048f
+.okay
ld a, [wc2c6]
and a
- jr nz, .asm_d0497
+ jr nz, .add_bc
add hl, de
ret
-.asm_d0497
+.add_bc
add hl, bc
ret
; d0499
@@ -783,22 +788,22 @@ Functiond0499: ; d0499
inc a
ld [w2_d186], a
ld c, a
- ld a, [w2_d171]
+ ld a, [wPokeAnimFrontpicHeight]
cp c
- jr nz, .asm_d04bb
+ jr nz, .no_carry
xor a
ld [w2_d186], a
ld a, [w2_d185]
inc a
ld [w2_d185], a
ld c, a
- ld a, [w2_d171]
+ ld a, [wPokeAnimFrontpicHeight]
cp c
- jr nz, .asm_d04bb
+ jr nz, .no_carry
scf
ret
-.asm_d04bb
+.no_carry
xor a
ret
; d04bd
@@ -807,17 +812,17 @@ Functiond04bd: ; d04bd
call Functiond04f6
ld a, [wc2c6]
and a
- jr nz, .asm_d04ce
+ jr nz, .minus_one_and_six
ld de, 1
ld bc, 0
- jr .asm_d04d4
+ jr .okay
-.asm_d04ce
+.minus_one_and_six
ld de, -1
ld bc, 6
-.asm_d04d4
- ld hl, w2_d16f
+.okay
+ ld hl, wPokeAnimCoord
ld a, [hli]
ld h, [hl]
ld l, a
@@ -825,28 +830,28 @@ Functiond04bd: ; d04bd
ld c, 7
ld b, 7
ld a, [w2_d16e]
-.asm_d04e2
+.loop
push bc
push hl
push de
- ld de, $0014
-.asm_d04e8
+ ld de, SCREEN_WIDTH
+.loop2
ld [hl], a
inc a
add hl, de
dec b
- jr nz, .asm_d04e8
+ jr nz, .loop2
pop de
pop hl
add hl, de
pop bc
dec c
- jr nz, .asm_d04e2
+ jr nz, .loop
ret
; d04f6
Functiond04f6: ; d04f6
- ld hl, w2_d16f
+ ld hl, wPokeAnimCoord
ld a, [hli]
ld h, [hl]
ld l, a
@@ -917,7 +922,7 @@ Functiond0536: ; d0536
; d0551
Functiond0551: ; d0551
- ld hl, w2_d16f
+ ld hl, wPokeAnimCoord
ld a, [hli]
ld h, [hl]
ld l, a
@@ -927,18 +932,18 @@ Functiond0551: ; d0551
; d055c
Functiond055c: ; d055c
- call Functiond02f2
+ call PokeAnim_IsEgg
jr z, .egg
ld c, BANK(UnownAnimations)
ld hl, UnownAnimationPointers
ld de, UnownAnimationExtraPointers
- call Functiond02ec
- jr z, .asm_d0576
+ call PokeAnim_IsUnown
+ jr z, .unown
ld c, BANK(PicAnimations)
ld hl, AnimationPointers
ld de, AnimationExtraPointers
-.asm_d0576
+.unown
ld a, [w2_d172]
and a
@@ -947,7 +952,7 @@ Functiond055c: ; d055c
ld l, e
.asm_d057e
- ld a, [w2_d16d]
+ ld a, [wPokeAnimSpeciesOrUnown]
dec a
ld e, a
ld d, 0
@@ -982,7 +987,7 @@ endr
ret
; d05b4
-Functiond05b4: ; d05b4
+PokeAnim_GetFrontpicDims: ; d05b4
ld a, [rSVBK]
push af
ld a, $1
@@ -999,26 +1004,26 @@ Functiond05b4: ; d05b4
; d05ce
Functiond05ce: ; d05ce
- call Functiond02f2
+ call PokeAnim_IsEgg
jr z, .egg
- call Functiond02ec
+ call PokeAnim_IsUnown
ld b, BANK(UnownFramesPointers)
ld c, BANK(UnownsFrames)
ld hl, UnownFramesPointers
- jr z, .asm_d05ef
- ld a, [w2_d16b]
+ jr z, .got_frames
+ ld a, [wPokeAnimSpecies]
cp 151 + 1
ld b, BANK(FramesPointers)
ld c, BANK(KantoFrames)
ld hl, FramesPointers
- jr c, .asm_d05ef
+ jr c, .got_frames
ld c, BANK(JohtoFrames)
-.asm_d05ef
+.got_frames
ld a, c
ld [w2_d177], a
- ld a, [w2_d16d]
+ ld a, [wPokeAnimSpeciesOrUnown]
dec a
ld e, a
ld d, 0
@@ -1046,19 +1051,19 @@ endr
; d061b
Functiond061b: ; d061b
- call Functiond02f2
+ call PokeAnim_IsEgg
jr z, .egg
- call Functiond02ec
+ call PokeAnim_IsUnown
ld a, BANK(UnownBitmasksPointers)
ld hl, UnownBitmasksPointers
- jr z, .asm_d062f
+ jr z, .unown
ld a, BANK(BitmasksPointers)
ld hl, BitmasksPointers
-.asm_d062f
+.unown
ld [w2_d17a], a
- ld a, [w2_d16d]
+ ld a, [wPokeAnimSpeciesOrUnown]
dec a
ld e, a
ld d, 0
@@ -1085,14 +1090,14 @@ endr
ret
; d065c
-Functiond065c: ; d065c
- call Functiond02ec
- jr z, .asm_d0665
- ld a, [w2_d16b]
+PokeAnim_GetSpeciesOrUnown: ; d065c
+ call PokeAnim_IsUnown
+ jr z, .unown
+ ld a, [wPokeAnimSpecies]
ret
-.asm_d0665
- ld a, [w2_d16c]
+.unown
+ ld a, [wPokeAnimUnownLetter]
ret
; d0669
@@ -1101,7 +1106,7 @@ Functiond0669: ; d0669
ld [wc2c6], a
Functiond066e: ; d066e
- call Functiond01c6
+ call AnimateMon_CheckIfPokemon
jr c, .asm_d068c
ld h, d
ld l, e
@@ -1113,7 +1118,7 @@ Functiond066e: ; d066e
pop bc
ld d, 0
ld e, c
- call Functiond008e
+ call AnimateFrontpic
xor a
ld [wc2c6], a
ret
diff --git a/home.asm b/home.asm
index 2a5fe0da0..d4ec46de4 100644
--- a/home.asm
+++ b/home.asm
@@ -99,7 +99,7 @@ Function2ecb:: ; 2ecb
DisableSpriteUpdates:: ; 0x2ed3
; disables overworld sprite updating?
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld a, [VramState]
res 0, a
ld [VramState], a
@@ -115,7 +115,7 @@ EnableSpriteUpdates:: ; 2ee4
set 0, a
ld [VramState], a
ld a, $1
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; 2ef6
@@ -217,10 +217,10 @@ LoadTileMapToTempTileMap:: ; 309d
; Load TileMap into TempTileMap
ld a, [rSVBK]
push af
- ld a, BANK(w2_d000)
+ ld a, BANK(TempTileMap)
ld [rSVBK], a
hlcoord 0, 0
- ld de, w2_d000
+ decoord 0, 0, TempTileMap
ld bc, TileMapEnd - TileMap
call CopyBytes
pop af
@@ -241,9 +241,9 @@ LoadTempTileMapToTileMap:: ; 30bf
; Load TempTileMap into TileMap
ld a, [rSVBK]
push af
- ld a, BANK(w2_d000)
+ ld a, BANK(TempTileMap)
ld [rSVBK], a
- ld hl, w2_d000
+ hlcoord 0, 0, TempTileMap
decoord 0, 0
ld bc, TileMapEnd - TileMap
call CopyBytes
@@ -427,13 +427,13 @@ PrintNum:: ; 3198
; 31a4
-Function31a4:: ; 31a4
+MobilePrintNum:: ; 31a4
ld a, [hROMBank]
push af
- ld a, BANK(Function1061ef)
+ ld a, BANK(_MobilePrintNum)
rst Bankswitch
- call Function1061ef
+ call _MobilePrintNum
pop af
rst Bankswitch
@@ -530,7 +530,7 @@ CompareLong:: ; 31e4
; 31f3
-WhiteBGMap:: ; 31f3
+ClearBGPalettes:: ; 31f3
call ClearPalettes
WaitBGMap:: ; 31f6
; Tell VBlank to update BG Map
@@ -561,7 +561,7 @@ Function3200:: ; 0x3200
; 0x3218
-Function3218:: ; 3218
+IsCGB:: ; 3218
ld a, [hCGB]
and a
ret
@@ -579,9 +579,10 @@ Function321c:: ; 321c
ld a, 1
ld [hBGMapMode], a
- jr Function323d
+ jr LoadDETile
.dmg
+; WaitBGMap
ld a, 1
ld [hBGMapMode], a
ld c, 4
@@ -594,25 +595,25 @@ Function3238:: ; 3238
and a
jr z, WaitBGMap
-Function323d:: ; 323d
- jr Function3246
+LoadDETile:: ; 323d
+ jr .LoadDETile
; 323f
-Function323f:: ; 323f
+.unreferenced_323f ; 323f
callba Function104000
ret
; 3246
-Function3246:: ; 3246
+.LoadDETile ; 3246
ld a, [hBGMapMode]
push af
xor a
ld [hBGMapMode], a
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
.wait
ld a, [rLY]
@@ -623,11 +624,11 @@ Function3246:: ; 3246
ld a, 1 ; BANK(VTiles3)
ld [rVBK], a
hlcoord 0, 0, AttrMap
- call Function327b
+ call .StackPointerMagic
ld a, 0 ; BANK(VTiles0)
ld [rVBK], a
hlcoord 0, 0
- call Function327b
+ call .StackPointerMagic
.wait2
ld a, [rLY]
@@ -636,13 +637,13 @@ Function3246:: ; 3246
ei
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
pop af
ld [hBGMapMode], a
ret
; 327b
-Function327b:: ; 327b
+.StackPointerMagic ; 327b
; Copy all tiles to VBGMap
ld [hSPBuffer], sp
ld sp, hl
@@ -650,7 +651,7 @@ Function327b:: ; 327b
ld h, a
ld l, 0
ld a, SCREEN_HEIGHT
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
ld b, 1 << 1 ; not in v/hblank
ld c, rSTAT % $100
@@ -671,9 +672,9 @@ endr
ld de, $20 - SCREEN_WIDTH
add hl, de
- ld a, [$ffd3]
+ ld a, [hTilesPerCycle]
dec a
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
jr nz, .loop
ld a, [hSPBuffer]
@@ -830,13 +831,13 @@ INCLUDE "home/pokedex_flags.asm"
NamesPointers:: ; 33ab
- dbw BANK(PokemonNames), PokemonNames
- dbw BANK(MoveNames), MoveNames
+ dba PokemonNames
+ dba MoveNames
dbw 0, 0
- dbw BANK(ItemNames), ItemNames
+ dba ItemNames
dbw 0, PartyMonOT
dbw 0, OTPartyMonOT
- dbw BANK(TrainerClassNames), TrainerClassNames
+ dba TrainerClassNames
; 33c0
Function33c0:
@@ -1146,8 +1147,8 @@ GetMoveName:: ; 34f8
; 350c
-Function350c:: ; 350c
- call Function1c66
+HandleScrollingMenu:: ; 350c
+ call CopyMenuData2
ld a, [hROMBank]
push af
@@ -1186,7 +1187,7 @@ Function352f:: ; 352f
sub c
ld e, a
push de
- call GetTileCoord
+ call Coord2Tile
pop bc
jp TextBox
; 354b
@@ -1242,7 +1243,7 @@ Function3574:: ; 3574
ld e, l
call Function35de
jr nc, .asm_3597
- call Function2631
+ call CallMapScript
callba EnableScriptMode
scf
ret
@@ -1460,17 +1461,17 @@ CheckTrainerBattle:: ; 360d
pop af
ld [hLastTalked], a
ld a, b
- ld [CurFruit], a
+ ld [EngineBuffer2], a
ld a, c
- ld [wd040], a
+ ld [EngineBuffer3], a
jr Function367e
; 3674
Function3674:: ; 3674
ld a, 1
- ld [CurFruit], a
+ ld [EngineBuffer2], a
ld a, -1
- ld [wd040], a
+ ld [EngineBuffer3], a
Function367e:: ; 367e
call GetMapScriptHeaderBank
@@ -1600,20 +1601,21 @@ CheckTrainerFlag:: ; 36f5
; 3718
-Function3718:: ; 3718
+PrintWinLossText:: ; 3718
ld a, [BattleType]
cp BATTLETYPE_CANLOSE
- jr .canlose
+ jr .canlose ; ??????????
- ld hl, WalkingTile
+; unreferenced
+ ld hl, wWinTextPointer
jr .ok
.canlose
ld a, [wBattleResult]
- ld hl, WalkingTile
+ ld hl, wWinTextPointer
and $f
jr z, .ok
- ld hl, wd048 + 1
+ ld hl, wLossTextPointer
.ok
ld a, [hli]
@@ -1622,7 +1624,7 @@ Function3718:: ; 3718
call GetMapScriptHeaderBank
call FarPrintText
call WaitBGMap
- call Functiona80
+ call WaitPressAorB_BlinkCursor
ret
; 3741
@@ -1647,7 +1649,7 @@ IsAPokemon:: ; 3741
; 3750
-DrawHPBar:: ; 3750
+DrawBattleHPBar:: ; 3750
; Draw an HP bar d tiles long at hl
; Fill it up to e pixels
@@ -1709,11 +1711,11 @@ DrawHPBar:: ; 3750
; 3786
-Function3786:: ; 3786
+PrepMonFrontpic:: ; 3786
ld a, $1
ld [wc2c6], a
-Function378b:: ; 378b
+_PrepMonFrontpic:: ; 378b
ld a, [CurPartySpecies]
call IsAPokemon
jr c, .not_pokemon
@@ -1723,7 +1725,7 @@ Function378b:: ; 378b
predef GetFrontpic
pop hl
xor a
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
xor a
@@ -1890,7 +1892,7 @@ PrintBCDNumber:: ; 38bb
bit 5, b
jr z, .loop
bit 7, b
- jr nz, .loop
+ jr nz, .loop ; skip currency symbol
ld [hl], "¥"
inc hl
.loop
@@ -1940,6 +1942,7 @@ PrintBCDDigit:: ; 38f2
add a, "0"
ld [hli], a
jp PrintLetterDelay
+
.zeroDigit
bit 7, b ; either printing leading zeroes or already reached a nonzero digit?
jr z, .outputDigit ; if so, print a zero digit
@@ -1965,7 +1968,7 @@ GetPartyParamLocation:: ; 3917
GetPartyLocation:: ; 3927
; Add the length of a PartyMon struct to hl a times.
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
jp AddNTimes
; 392d
@@ -1990,57 +1993,6 @@ Function392d:: ; 392d
INCLUDE "home/battle.asm"
-
-Function3ae1:: ; 3ae1
-
-GLOBAL BattleAnimations
-GLOBAL BattleAnimCommands
-
- ld a, BANK(BattleAnimations)
- rst Bankswitch
-
- ld a, [hli]
- ld [BattleAnimAddress], a
- ld a, [hl]
- ld [BattleAnimAddress + 1], a
-
- ld a, BANK(BattleAnimCommands)
- rst Bankswitch
-
- ret
-; 3af0
-
-GetBattleAnimByte:: ; 3af0
-
- push hl
- push de
-
- ld hl, BattleAnimAddress
- ld e, [hl]
- inc hl
- ld d, [hl]
-
- ld a, BANK(BattleAnimations)
- rst Bankswitch
-
- ld a, [de]
- ld [BattleAnimByte], a
- inc de
-
- ld a, BANK(BattleAnimCommands)
- rst Bankswitch
-
- ld [hl], d
- dec hl
- ld [hl], e
-
- pop de
- pop hl
-
- ld a, [BattleAnimByte]
- ret
-; 3b0c
-
Function3b0c:: ; 3b0c
ld a, [hLCDStatCustom]
@@ -2230,7 +2182,7 @@ Function3f6e:: ; 3f6e
; 3f7c
Function3f7c:: ; 3f7c
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
call GetMenuBoxDims
dec b
dec c
diff --git a/home/audio.asm b/home/audio.asm
index 3e22a1540..9756d0460 100644
--- a/home/audio.asm
+++ b/home/audio.asm
@@ -1,6 +1,6 @@
; Audio interfaces.
-SoundRestart:: ; 3b4e
+MapSetup_Sound_Off:: ; 3b4e
push hl
push de
@@ -9,11 +9,11 @@ SoundRestart:: ; 3b4e
ld a, [hROMBank]
push af
- ld a, BANK(_SoundRestart)
+ ld a, BANK(_MapSetup_Sound_Off)
ld [hROMBank], a
ld [MBC3RomBank], a
- call _SoundRestart
+ call _MapSetup_Sound_Off
pop af
ld [hROMBank], a
@@ -81,7 +81,7 @@ PlayMusic:: ; 3b97
ld a, [hROMBank]
push af
- ld a, BANK(_PlayMusic) ; and BANK(_SoundRestart)
+ ld a, BANK(_PlayMusic) ; and BANK(_MapSetup_Sound_Off)
ld [hROMBank], a
ld [MBC3RomBank], a
@@ -93,7 +93,7 @@ PlayMusic:: ; 3b97
jr .end
.nomusic
- call _SoundRestart
+ call _MapSetup_Sound_Off
.end
pop af
@@ -312,13 +312,13 @@ VolumeOff:: ; 3ca3
ret
; 3ca8
-Function3ca8:: ; 3ca8
+FadeOutMusic:: ; 3ca8
ld a, 4
ld [MusicFade], a
ret
; 3cae
-CrankUpTheVolume:: ; 3cae
+FadeInMusic:: ; 3cae
ld a, 4 | 1 << 7
ld [MusicFade], a
ret
@@ -326,11 +326,12 @@ CrankUpTheVolume:: ; 3cae
SkipMusic:: ; 3cb4
; Skip a frames of music.
+.loop
and a
ret z
dec a
call UpdateSound
- jr SkipMusic
+ jr .loop
; 3cbc
FadeToMapMusic:: ; 3cbc
diff --git a/home/battle.asm b/home/battle.asm
index 37f39572a..57bab4083 100644
--- a/home/battle.asm
+++ b/home/battle.asm
@@ -234,7 +234,7 @@ endr
; 3a90
-FarJumpText:: ; 3a90
+FarCopyRadioText:: ; 3a90
inc hl
ld a, [hROMBank]
push af
@@ -249,8 +249,8 @@ FarJumpText:: ; 3a90
ld l, a
ld a, d
ld h, a
- ld de, wd00c
- ld bc, $0028
+ ld de, wRadioText
+ ld bc, 2 * SCREEN_WIDTH
call CopyBytes
pop af
ld [hROMBank], a
@@ -309,3 +309,53 @@ GLOBAL BattleText
rst Bankswitch
ret
; 3ae1
+
+GetBattleAnimPointer:: ; 3ae1
+
+GLOBAL BattleAnimations
+GLOBAL BattleAnimCommands
+
+ ld a, BANK(BattleAnimations)
+ rst Bankswitch
+
+ ld a, [hli]
+ ld [BattleAnimAddress], a
+ ld a, [hl]
+ ld [BattleAnimAddress + 1], a
+
+ ld a, BANK(BattleAnimCommands)
+ rst Bankswitch
+
+ ret
+; 3af0
+
+GetBattleAnimByte:: ; 3af0
+
+ push hl
+ push de
+
+ ld hl, BattleAnimAddress
+ ld e, [hl]
+ inc hl
+ ld d, [hl]
+
+ ld a, BANK(BattleAnimations)
+ rst Bankswitch
+
+ ld a, [de]
+ ld [BattleAnimByte], a
+ inc de
+
+ ld a, BANK(BattleAnimCommands)
+ rst Bankswitch
+
+ ld [hl], d
+ dec hl
+ ld [hl], e
+
+ pop de
+ pop hl
+
+ ld a, [BattleAnimByte]
+ ret
+; 3b0c
diff --git a/home/copy.asm b/home/copy.asm
index d17e459ca..08eb5c10d 100644
--- a/home/copy.asm
+++ b/home/copy.asm
@@ -1,51 +1,53 @@
; Functions to copy data from ROM.
-Functiondc9:: ; dc9
+Get2bpp_2:: ; dc9
ld a, [rLCDC]
bit 7, a
jp z, Copy2bpp
ld a, [hROMBank]
push af
- ld a, BANK(Function104284)
+ ld a, BANK(_Get2bpp)
rst Bankswitch
- call Function104284
+ call _Get2bpp
pop af
rst Bankswitch
ret
; ddc
-Functionddc:: ; ddc
+Get1bpp_2:: ; ddc
ld a, [rLCDC]
bit 7, a
jp z, Copy1bpp
ld a, [hROMBank]
push af
- ld a, BANK(Function1042b2)
+ ld a, BANK(_Get1bpp)
rst Bankswitch
- call Function1042b2
+ call _Get1bpp
pop af
rst Bankswitch
ret
; def
-Functiondef:: ; def
+FarCopyBytesDouble_DoubleBankSwitch:: ; def
ld [hBuffer], a
ld a, [hROMBank]
push af
ld a, [hBuffer]
rst Bankswitch
+
call FarCopyBytesDouble
+
pop af
rst Bankswitch
ret
; dfd
-Functiondfd:: ; dfd
+OldDMATransfer:: ; dfd
dec c
ld a, [hBGMapMode]
push af
@@ -57,42 +59,47 @@ Functiondfd:: ; dfd
rst Bankswitch
.loop
+; load the source and target MSB and LSB
ld a, d
- ld [rHDMA1], a
+ ld [rHDMA1], a ; source MSB
ld a, e
and $f0
- ld [rHDMA2], a
+ ld [rHDMA2], a ; source LSB
ld a, h
and $1f
- ld [rHDMA3], a
+ ld [rHDMA3], a ; target MSB
ld a, l
and $f0
- ld [rHDMA4], a
+ ld [rHDMA4], a ; target LSB
+; stop when c < 8
ld a, c
cp $8
jr c, .done
+; decrease c by 8
sub $8
ld c, a
+; DMA transfer state
ld a, $f
ld [hDMATransfer], a
call DelayFrame
+; add $100 to hl and de
ld a, l
- add 0
+ add $100 % $100
ld l, a
ld a, h
- adc 1
+ adc $100 / $100
ld h, a
ld a, e
- add 0
+ add $100 % $100
ld e, a
ld a, d
- adc 1
+ adc $100 / $100
ld d, a
jr .loop
.done
ld a, c
- and $7f
+ and $7f ; pretty silly, considering at most bits 0-2 would be set
ld [hDMATransfer], a
call DelayFrame
pop af
@@ -105,15 +112,15 @@ Functiondfd:: ; dfd
-Special_ReplaceKrisSprite:: ; e4a
- callba Function14135
+ReplaceKrisSprite:: ; e4a
+ callba _ReplaceKrisSprite
ret
; e51
-Functione51:: ; e51
- callba Functionfb449
+LoadStandardFont:: ; e51
+ callba _LoadStandardFont
ret
; e58
@@ -124,27 +131,30 @@ LoadFontsBattleExtra:: ; e58
-Functione5f:: ; e5f
- callba Functionfb48a
- callba Functionfb4b0
+LoadFontsExtra:: ; e5f
+ callba _LoadFontsExtra1
+ callba _LoadFontsExtra2
ret
; e6c
-Functione6c:: ; e6c
- callba Functionfb4b0
+LoadFontsExtra2:: ; e6c
+ callba _LoadFontsExtra2
ret
; e73
-Functione73:: ; e73
+DecompressRequest2bpp:: ; e73
push de
ld a, BANK(sScratch)
call GetSRAMBank
push bc
+
ld de, sScratch
ld a, b
call FarDecompress
+
pop bc
pop hl
+
ld de, sScratch
call Request2bpp
call CloseSRAM
@@ -222,10 +232,10 @@ Request2bpp:: ; eba
ld a, b
rst Bankswitch
- ld a, [$ffd3]
+ ld a, [hTilesPerCycle]
push af
ld a, $8
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
ld a, [wLinkMode]
cp LINK_MOBILE
@@ -234,7 +244,7 @@ Request2bpp:: ; eba
and a
jr nz, .NotMobile
ld a, $6
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
.NotMobile
ld a, e
@@ -247,7 +257,7 @@ Request2bpp:: ; eba
ld [Requested2bppDest + 1], a
.loop
ld a, c
- ld hl, $ffd3
+ ld hl, hTilesPerCycle
cp [hl]
jr nc, .iterate
@@ -259,7 +269,7 @@ Request2bpp:: ; eba
jr nz, .wait
pop af
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
pop af
rst Bankswitch
@@ -269,7 +279,7 @@ Request2bpp:: ; eba
ret
.iterate
- ld a, [$ffd3]
+ ld a, [hTilesPerCycle]
ld [Requested2bpp], a
.wait2
@@ -279,7 +289,7 @@ Request2bpp:: ; eba
jr nz, .wait2
ld a, c
- ld hl, $ffd3
+ ld hl, hTilesPerCycle
sub [hl]
ld c, a
jr .loop
@@ -287,6 +297,7 @@ Request2bpp:: ; eba
Request1bpp:: ; f1e
+; Load 1bpp at b:de to occupy c tiles of hl.
ld a, [hBGMapMode]
push af
xor a
@@ -297,11 +308,11 @@ Request1bpp:: ; f1e
ld a, b
rst Bankswitch
- ld a, [$ffd3]
+ ld a, [hTilesPerCycle]
push af
ld a, $8
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
ld a, [wLinkMode]
cp LINK_MOBILE
jr nz, .NotMobile
@@ -309,7 +320,7 @@ Request1bpp:: ; f1e
and a
jr nz, .NotMobile
ld a, $6
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
.NotMobile
ld a, e
@@ -322,7 +333,7 @@ Request1bpp:: ; f1e
ld [Requested1bppDest + 1], a
.loop
ld a, c
- ld hl, $ffd3
+ ld hl, hTilesPerCycle
cp [hl]
jr nc, .iterate
@@ -334,7 +345,7 @@ Request1bpp:: ; f1e
jr nz, .wait
pop af
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
pop af
rst Bankswitch
@@ -344,7 +355,7 @@ Request1bpp:: ; f1e
ret
.iterate
- ld a, [$ffd3]
+ ld a, [hTilesPerCycle]
ld [Requested1bpp], a
.wait2
@@ -354,7 +365,7 @@ Request1bpp:: ; f1e
jr nz, .wait2
ld a, c
- ld hl, $ffd3
+ ld hl, hTilesPerCycle
sub [hl]
ld c, a
jr .loop
diff --git a/home/copy2.asm b/home/copy2.asm
index ca83ff44b..538be572f 100644
--- a/home/copy2.asm
+++ b/home/copy2.asm
@@ -98,7 +98,9 @@ FarCopyWRAM:: ; 306b
push af
ld a, [hBuffer]
ld [rSVBK], a
+
call CopyBytes
+
pop af
ld [rSVBK], a
ret
diff --git a/home/farcall.asm b/home/farcall.asm
index a74bcc3ae..7c9fe1050 100644
--- a/home/farcall.asm
+++ b/home/farcall.asm
@@ -25,7 +25,7 @@ FarCall_hl:: ; 2d63
push af
ld a, [hBuffer]
rst Bankswitch
- call Function2d82
+ call FarJump_hl
; 2d6e
ReturnFarCall:: ; 2d6e
@@ -33,22 +33,22 @@ ReturnFarCall:: ; 2d6e
; To do this, we can pop to bc instead of af.
ld a, b
- ld [PredefAddress + 2], a
+ ld [wFarCallBCBuffer], a
ld a, c
- ld [PredefAddress + 3], a
+ ld [wFarCallBCBuffer + 1], a
; Restore the working bank.
pop bc
ld a, b
rst Bankswitch
- ld a, [PredefAddress + 2]
+ ld a, [wFarCallBCBuffer]
ld b, a
- ld a, [PredefAddress + 3]
+ ld a, [wFarCallBCBuffer + 1]
ld c, a
ret
; 2d82
-Function2d82:: ; 2d82
+FarJump_hl:: ; 2d82
jp [hl]
; 2d83
diff --git a/home/flag.asm b/home/flag.asm
index b4dff4531..099f4bf00 100644
--- a/home/flag.asm
+++ b/home/flag.asm
@@ -102,7 +102,7 @@ FlagAction:: ; 0x2e76
; 0x2ead
-Function2ead:: ; 2ead
+CheckReceivedDex:: ; 2ead
ld de, ENGINE_POKEDEX
ld b, CHECK_FLAG
callba EngineFlagAction
diff --git a/home/init.asm b/home/init.asm
index 8325f6294..753138748 100644
--- a/home/init.asm
+++ b/home/init.asm
@@ -1,8 +1,8 @@
Reset:: ; 150
di
- call SoundRestart
+ call MapSetup_Sound_Off
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
call ClearPalettes
xor a
ld [rIF], a
@@ -109,7 +109,7 @@ Init:: ; 17d
call LoadPushOAM
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld [hSCX], a
ld [hSCY], a
ld [rJOYP], a
@@ -137,7 +137,7 @@ Init:: ; 17d
ld [rLCDC], a
ld a, -1
- ld [$ffcb], a
+ ld [hLinkPlayerNumber], a
callba Function9890
@@ -168,7 +168,7 @@ Init:: ; 17d
predef Function9853
- call SoundRestart
+ call MapSetup_Sound_Off
xor a
ld [wMapMusic], a
jp GameInit
diff --git a/home/joypad.asm b/home/joypad.asm
index 00179fc7f..8dccedf6c 100644
--- a/home/joypad.asm
+++ b/home/joypad.asm
@@ -355,7 +355,7 @@ JoyTextDelay:: ; a57
ret
; a80
-Functiona80:: ; a80
+WaitPressAorB_BlinkCursor:: ; a80
ld a, [hMapObjectIndexBuffer]
push af
ld a, [hObjectStructIndexBuffer]
@@ -368,7 +368,7 @@ Functiona80:: ; a80
.loop
push hl
hlcoord 18, 17
- call Functionb06
+ call BlinkCursor
pop hl
call JoyTextDelay
@@ -383,7 +383,7 @@ Functiona80:: ; a80
ret
; aa5
-Functionaa5:: ; aa5
+SimpleWaitPressAorB:: ; aa5
.loop
call JoyTextDelay
ld a, [hJoyLast]
@@ -437,7 +437,7 @@ KeepTextOpen:: ; aaf
; af5
.blink_cursor: ; af5
- ld a, [$ff9b]
+ ld a, [hVBlankCounter]
and %00010000 ; bit 4, a
jr z, .cursor_off
ld a, "▼"
@@ -451,14 +451,14 @@ KeepTextOpen:: ; aaf
ret
; b06
-Functionb06:: ; b06
+BlinkCursor:: ; b06
push bc
ld a, [hl]
ld b, a
ld a, "▼"
cp b
pop bc
- jr nz, .asm_b27
+ jr nz, .place_arrow
ld a, [hMapObjectIndexBuffer]
dec a
ld [hMapObjectIndexBuffer], a
@@ -475,7 +475,7 @@ Functionb06:: ; b06
ld [hObjectStructIndexBuffer], a
ret
-.asm_b27
+.place_arrow
ld a, [hMapObjectIndexBuffer]
and a
ret z
@@ -488,9 +488,9 @@ Functionb06:: ; b06
dec a
ld [hObjectStructIndexBuffer], a
ret nz
- ld a, $6
+ ld a, 6
ld [hObjectStructIndexBuffer], a
- ld a, $ee
+ ld a, "▼"
ld [hl], a
ret
; b40
diff --git a/home/map.asm b/home/map.asm
index d2a5b1771..81c7988d8 100644
--- a/home/map.asm
+++ b/home/map.asm
@@ -95,20 +95,20 @@ GetMapTrigger:: ; 2147
ret
; 2173
-Function2173:: ; 2173
- call Function217a
+OverworldTextModeSwitch:: ; 2173
+ call LoadMapPart
call FarCallSwapTextboxPalettes
ret
; 217a
-Function217a:: ; 217a
+LoadMapPart:: ; 217a
ld a, [hROMBank]
push af
ld a, [TilesetBlocksBank]
rst Bankswitch
- call Function2198
+ call LoadMetatiles
ld a, $60
hlcoord 0, 0
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
@@ -123,36 +123,39 @@ Function217a:: ; 217a
ret
; 2198
-Function2198:: ; 2198
+LoadMetatiles:: ; 2198
+; de <- wd194
ld a, [wd194]
ld e, a
- ld a, [wd195]
+ ld a, [wd194 + 1]
ld d, a
- ld hl, wEnemyMoveStruct
- ld b, $5
+ ld hl, wMisc
+ ld b, 5 ; SCREEN_WIDTH / 4
.loop
push de
push hl
- ld c, $6
+ ld c, 6 ; SCREEN_HEIGHT / 3
.loop2
push de
push hl
ld a, [de]
and a
- jr nz, .asm_21b2
+ jr nz, .ok
ld a, [MapBorderBlock]
-.asm_21b2
+.ok
ld e, l
ld d, h
+; double a, load hl <- a, multiply hl by 8
add a
ld l, a
ld h, 0
rept 3
add hl,hl
endr
+; hl <- hl + [TilesetBlocksAddress]
ld a, [TilesetBlocksAddress]
add l
ld l, a
@@ -161,20 +164,21 @@ endr
ld h, a
rept 3
+; copy 4 bytes from hl to de
rept 4
ld a, [hli]
ld [de], a
inc de
endr
-
+; next row
ld a, e
- add 20
+ add SCREEN_WIDTH
ld e, a
jr nc, .next\@
inc d
.next\@
endr
-
+; copy 4 more bytes from hl to de
rept 4
ld a, [hli]
ld [de], a
@@ -182,31 +186,31 @@ rept 4
endr
pop hl
- ld de, $0004
+ ld de, 4
add hl, de
pop de
inc de
dec c
jp nz, .loop2
pop hl
- ld de, $0060
+ ld de, $60
add hl, de
pop de
ld a, [MapWidth]
- add $6
+ add 6
add e
ld e, a
- jr nc, .asm_2225
+ jr nc, .ok2
inc d
-.asm_2225
+.ok2
dec b
jp nz, .loop
ret
; 222a
-Function222a:: ; 222a
- ld a, $fa
+ReturnToMapFromSubmenu:: ; 222a
+ ld a, MAPSETUP_SUBMENU
ld [hMapEntryMethod], a
callba RunMapSetupScript
xor a
@@ -215,27 +219,29 @@ Function222a:: ; 222a
; 2238
CheckWarpTile:: ; 2238
- call Function2252
+ call GetDestinationWarpNumber
ret nc
+
push bc
callba Function149af
pop bc
ret nc
- call Function22a7
+
+ call CopyWarpData
scf
ret
; 224a
-Function224a:: ; 224a
- call Function2252
+WarpCheck:: ; 224a
+ call GetDestinationWarpNumber
ret nc
- call Function22a7
+ call CopyWarpData
ret
; 2252
-Function2252:: ; 2252
+GetDestinationWarpNumber:: ; 2252
callba Function1499a
ret nc
@@ -243,7 +249,7 @@ Function2252:: ; 2252
push af
call SwitchToMapScriptHeaderBank
- call Function2266
+ call .GetDestinationWarpNumber
pop de
ld a, d
@@ -251,7 +257,7 @@ Function2252:: ; 2252
ret
; 2266
-Function2266:: ; 2266
+.GetDestinationWarpNumber ; 2266
ld a, [PlayerMapY]
sub $4
ld e, a
@@ -261,48 +267,49 @@ Function2266:: ; 2266
ld a, [wCurrMapWarpCount]
and a
ret z
+
ld c, a
ld hl, wCurrMapWarpHeaderPointer
ld a, [hli]
ld h, [hl]
ld l, a
-.asm_227e
+.loop
push hl
ld a, [hli]
cp e
- jr nz, .asm_2289
+ jr nz, .next
ld a, [hli]
cp d
- jr nz, .asm_2289
- jr .asm_2296
+ jr nz, .next
+ jr .found_warp
-.asm_2289
+.next
pop hl
- ld a, $5
+ ld a, 5
add l
ld l, a
- jr nc, .asm_2291
+ jr nc, .okay
inc h
-.asm_2291
+.okay
dec c
- jr nz, .asm_227e
+ jr nz, .loop
xor a
ret
-.asm_2296
+.found_warp
pop hl
- call Function22a3
- ret nc
+ call .IncreaseHLTwice
+ ret nc ; never encountered
+
ld a, [wCurrMapWarpCount]
inc a
sub c
ld c, a
scf
ret
-; 22a3
-Function22a3:: ; 22a3
+.IncreaseHLTwice
rept 2
inc hl
endr
@@ -310,12 +317,12 @@ endr
ret
; 22a7
-Function22a7:: ; 22a7
+CopyWarpData:: ; 22a7
ld a, [hROMBank]
push af
call SwitchToMapScriptHeaderBank
- call Function22b4
+ call .CopyWarpData
pop af
rst Bankswitch
@@ -323,7 +330,7 @@ Function22a7:: ; 22a7
ret
; 22b4
-Function22b4:: ; 22b4
+.CopyWarpData ; 22b4
push bc
ld hl, wCurrMapWarpHeaderPointer
ld a, [hli]
@@ -331,29 +338,30 @@ Function22b4:: ; 22b4
ld l, a
ld a, c
dec a
- ld bc, $0005
+ ld bc, 5 ; warp size
call AddNTimes
- ld bc, $0002
+ ld bc, 2 ; warp number
add hl, bc
ld a, [hli]
cp $ff
- jr nz, .asm_22d0
- ld hl, wdcac
+ jr nz, .skip
+ ld hl, BackupWarpNumber
ld a, [hli]
-.asm_22d0
+.skip
pop bc
- ld [wd146], a
+ ld [wNextWarp], a
ld a, [hli]
- ld [wd147], a
+ ld [wNextMapGroup], a
ld a, [hli]
- ld [wd148], a
+ ld [wNextMapNumber], a
+
ld a, c
- ld [wd149], a
+ ld [wPrevWarp], a
ld a, [MapGroup]
- ld [wd14a], a
+ ld [wPrevMapGroup], a
ld a, [MapNumber]
- ld [wd14b], a
+ ld [wPrevMapNumber], a
scf
ret
; 22ee
@@ -378,40 +386,40 @@ CheckIndoorMap:: ; 22f4
ret
; 2300
-Function2300:: ; 2300
+Function2300:: ; unreferenced
cp INDOOR
ret z
cp GATE
ret z
- cp $5
+ cp PERM_5
ret
; 2309
LoadMapAttributes:: ; 2309
- call Function2326
+ call CopyMapHeaders
call SwitchToMapScriptHeaderBank
- call Function234f
+ call ReadMapScripts
xor a
call ReadMapEventHeader
ret
; 2317
-LoadMapAttributes_IgnoreHidden:: ; 2317
- call Function2326
+LoadMapAttributes_SkipPeople:: ; 2317
+ call CopyMapHeaders
call SwitchToMapScriptHeaderBank
- call Function234f
+ call ReadMapScripts
ld a, $1
call ReadMapEventHeader
ret
; 2326
-Function2326:: ; 2326
- call Function2c3d
+CopyMapHeaders:: ; 2326
+ call PartiallyCopyMapHeader
call SwitchToMapBank
call GetSecondaryMapHeaderPointer
- call Function235c
- call Function2368
+ call CopySecondMapHeader
+ call GetMapConnections
ret
; 2336
@@ -427,14 +435,16 @@ endr
call ReadWarps
call ReadCoordEvents
call ReadSignposts
+
pop af
and a
ret nz
+
call ReadObjectEvents
ret
; 234f
-Function234f:: ; 234f
+ReadMapScripts:: ; 234f
ld hl, MapScriptHeaderPointer
ld a, [hli]
ld h, [hl]
@@ -444,19 +454,19 @@ Function234f:: ; 234f
ret
; 235c
-Function235c:: ; 235c
+CopySecondMapHeader:: ; 235c
ld de, MapHeader
- ld c, $c
-.asm_2361
+ ld c, 12 ; size of the second map header
+.loop
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_2361
+ jr nz, .loop
ret
; 2368
-Function2368:: ; 2368
+GetMapConnections:: ; 2368
ld a, $ff
ld [NorthConnectedMapGroup], a
ld [SouthConnectedMapGroup], a
@@ -466,29 +476,29 @@ Function2368:: ; 2368
ld a, [MapConnections]
ld b, a
- bit 3, b
- jr z, .asm_2384
+ bit NORTH_F, b
+ jr z, .no_north
ld de, NorthMapConnection
call GetMapConnection
-.asm_2384
+.no_north
- bit 2, b
- jr z, .asm_238e
+ bit SOUTH_F, b
+ jr z, .no_south
ld de, SouthMapConnection
call GetMapConnection
-.asm_238e
+.no_south
- bit 1, b
- jr z, .asm_2398
+ bit WEST_F, b
+ jr z, .no_west
ld de, WestMapConnection
call GetMapConnection
-.asm_2398
+.no_west
- bit 0, b
- jr z, .asm_23a2
+ bit EAST_F, b
+ jr z, .no_east
ld de, EastMapConnection
call GetMapConnection
-.asm_23a2
+.no_east
ret
; 23a3
@@ -564,11 +574,13 @@ ReadCoordEvents:: ; 23f1
ld a, l
ld [wCurrentMapXYTriggerHeaderPointer], a
ld a, h
- ld [wdc00], a
+ ld [wCurrentMapXYTriggerHeaderPointer + 1], a
+
ld a, c
and a
ret z
- ld bc, $0008
+
+ ld bc, 8
call AddNTimes
ret
; 2408
@@ -578,93 +590,108 @@ ReadSignposts:: ; 2408
ld c, a
ld [wCurrentMapSignpostCount], a
ld a, l
- ld [wdc02], a
+ ld [wCurrentMapSignpostHeaderPointer], a
ld a, h
- ld [wdc03], a
+ ld [wCurrentMapSignpostHeaderPointer + 1], a
+
ld a, c
and a
ret z
- ld bc, $0005
+
+ ld bc, 5
call AddNTimes
ret
; 241f
ReadObjectEvents:: ; 241f
push hl
- call Function2471
+ call ClearObjectStructs
pop de
- ld hl, MapObjects + OBJECT_LENGTH
+ ld hl, Map1Object
ld a, [de]
inc de
- ld [wdc04], a
+ ld [wCurrentMapPersonEventCount], a
ld a, e
- ld [wdc05], a
+ ld [wCurrentMapPersonEventHeaderPointer], a
ld a, d
- ld [wdc06], a
- ld a, [wdc04]
- call Function2457
- ld a, [wdc04]
+ ld [wCurrentMapPersonEventHeaderPointer + 1], a
+
+ ld a, [wCurrentMapPersonEventCount]
+ call CopyMapObjectHeaders
+
+; get NUM_OBJECTS - [wCurrentMapPersonEventCount]
+ ld a, [wCurrentMapPersonEventCount]
ld c, a
- ld a, $10
+ ld a, NUM_OBJECTS ; - 1
sub c
- jr z, .asm_2454
- ld bc, $0001
+ jr z, .skip
+ ; jr c, .skip
+
+; stupid waste of time and space
+ ld bc, 1
add hl, bc
- ld bc, $0010
-.asm_244a
- ld [hl], $0
+; Fill the remaining sprite IDs and y coords with 0 and -1, respectively.
+; Bleeds into wObjectMasks due to a bug. Uncomment the above subtraction
+; to fix.
+ ld bc, OBJECT_LENGTH
+.loop
+ ld [hl], 0
inc hl
- ld [hl], $ff
+ ld [hl], -1
dec hl
add hl, bc
dec a
- jr nz, .asm_244a
+ jr nz, .loop
-.asm_2454
+.skip
ld h, d
ld l, e
ret
; 2457
-Function2457:: ; 2457
+CopyMapObjectHeaders:: ; 2457
and a
ret z
+
ld c, a
-.asm_245a
+.loop
push bc
push hl
ld a, $ff
ld [hli], a
- ld b, $d
-.asm_2461
+ ld b, MAPOBJECT_E - MAPOBJECT_SPRITE
+.loop2
ld a, [de]
inc de
ld [hli], a
dec b
- jr nz, .asm_2461
+ jr nz, .loop2
+
pop hl
- ld bc, $0010
+ ld bc, OBJECT_LENGTH
add hl, bc
pop bc
dec c
- jr nz, .asm_245a
+ jr nz, .loop
ret
; 2471
-Function2471:: ; 2471
+ClearObjectStructs:: ; 2471
ld hl, Object1Struct
ld bc, OBJECT_STRUCT_LENGTH * (NUM_OBJECT_STRUCTS - 1)
xor a
call ByteFill
+
+; Just to make sure (this is rather pointless)
ld hl, Object1Struct
ld de, OBJECT_STRUCT_LENGTH
ld c, NUM_OBJECT_STRUCTS - 1
xor a
-.asm_2484
+.loop
ld [hl], a
add hl, de
dec c
- jr nz, .asm_2484
+ jr nz, .loop
ret
; 248a
@@ -677,34 +704,35 @@ RestoreFacingAfterWarp:: ; 248a
ld h, [hl]
ld l, a
rept 3
- inc hl
+ inc hl ; get to the warp coords
endr
ld a, [WarpNumber]
dec a
ld c, a
- ld b, $0
- ld a, $5
+ ld b, 0
+ ld a, 5
call AddNTimes
ld a, [hli]
ld [YCoord], a
ld a, [hli]
ld [XCoord], a
+ ; destination warp number
ld a, [hli]
cp $ff
- jr nz, .asm_24b3
- call Function24ba
+ jr nz, .skip
+ call .backup
-.asm_24b3
+.skip
callba GetCoordOfUpperLeftCorner
ret
; 24ba
-Function24ba:: ; 24ba
- ld a, [wd149]
- ld [wdcac], a
- ld a, [wd14a]
+.backup
+ ld a, [wPrevWarp]
+ ld [BackupWarpNumber], a
+ ld a, [wPrevMapGroup]
ld [BackupMapGroup], a
- ld a, [wd14b]
+ ld a, [wPrevMapNumber]
ld [BackupMapNumber], a
ret
; 24cd
@@ -965,14 +993,15 @@ CallScript:: ; 261f
ld a, h
ld [ScriptPos + 1], a
- ld a, $ff
+ ld a, PLAYEREVENT_MAPSCRIPT
ld [ScriptRunning], a
scf
ret
; 2631
-Function2631:: ; 2631
+CallMapScript:: ; 2631
+; Call a script at hl in the current bank if there isn't already a script running
ld a, [ScriptRunning]
and a
ret nz
@@ -986,7 +1015,7 @@ RunMapCallback:: ; 263b
ld a, [hROMBank]
push af
call SwitchToMapScriptHeaderBank
- call Function2653
+ call .FindCallback
jr nc, .done
call GetMapScriptHeaderBank
@@ -1001,7 +1030,7 @@ RunMapCallback:: ; 263b
ret
; 2653
-Function2653:: ; 2653
+.FindCallback: ; 2653
ld a, [wCurrMapCallbackCount]
ld c, a
and a
@@ -1016,14 +1045,14 @@ Function2653:: ; 2653
.loop
ld a, [hl]
cp b
- jr z, .done
+ jr z, .found
add hl, de
dec c
jr nz, .loop
xor a
ret
-.done
+.found
inc hl
ld a, [hli]
ld h, [hl]
@@ -1033,7 +1062,8 @@ Function2653:: ; 2653
; 2674
ExecuteCallbackScript:: ; 2674
- callba Function974f3
+; Do map callback de and return to script bank b.
+ callba CallCallback
ld a, [ScriptMode]
push af
ld hl, ScriptFlags
@@ -1093,13 +1123,14 @@ Call_a_de:: ; 26b7
; 26c7
GetMovementData:: ; 26c7
+; Initialize the movement data for person c at b:hl
ld a, [hROMBank]
push af
ld a, b
rst Bankswitch
ld a, c
- call Function19e9
+ call LoadMovementDataPointer
pop hl
ld a, h
@@ -1394,7 +1425,7 @@ Function2821:: ; 2821
call FarDecompress
ld hl, w6_d000
ld de, VTiles2
- ld bc, $0600
+ ld bc, $60 tiles
call CopyBytes
ld a, [rVBK]
push af
@@ -1402,13 +1433,13 @@ Function2821:: ; 2821
ld [rVBK], a
ld hl, w6_d600
ld de, VTiles2
- ld bc, $0600
+ ld bc, $60 tiles
call CopyBytes
pop af
ld [rVBK], a
pop af
ld [rSVBK], a
- ld a, [wd199]
+ ld a, [wTileset]
cp $1
jr z, .asm_286f
cp $2
@@ -1829,6 +1860,7 @@ CheckFacingSign:: ; 2a8b
ld a, [wCurrentMapSignpostCount]
and a
ret z
+
ld c, a
ld a, [hROMBank]
push af
@@ -1842,7 +1874,7 @@ CheckFacingSign:: ; 2a8b
CheckIfFacingTileCoordIsSign:: ; 2aaa
; Checks to see if you are facing a signpost. If so, copies it into EngineBuffer1 and sets carry.
- ld hl, wdc02
+ ld hl, wCurrentMapSignpostHeaderPointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -1947,7 +1979,7 @@ CheckStandingOnXYTrigger:: ; 2ae7
.copytrigger
pop hl
ld de, EngineBuffer1
- ld bc, $0008 ; xy-trigger size
+ ld bc, 8 ; xy-trigger size
call CopyBytes
scf
ret
@@ -1957,8 +1989,8 @@ CheckStandingOnXYTrigger:: ; 2ae7
FadeToMenu:: ; 2b29
xor a
ld [hBGMapMode], a
- call LoadMenuDataHeader_0x1d75
- callba FadeBlackBGMap
+ call LoadStandardMenuDataHeader
+ callba FadeOutPalettes
call ClearSprites
call DisableSpriteUpdates
ret
@@ -1966,7 +1998,7 @@ FadeToMenu:: ; 2b29
Function2b3c:: ; 2b3c
- call WhiteBGMap
+ call ClearBGPalettes
call Function2bae
call UpdateSprites
call Call_ExitMenu
@@ -1975,7 +2007,7 @@ Function2b3c:: ; 2b3c
; 2b4d
Function2b4d:: ; 2b4d
- call WhiteBGMap
+ call ClearBGPalettes
call Call_ExitMenu
call Function2bae
call UpdateSprites
@@ -1987,7 +2019,7 @@ Function2b5c:: ; 2b5c
call GetSGBLayout
callba Function49409
call Function3200
- callba FadeInBGMap
+ callba FadeInPalettes
call EnableSpriteUpdates
ret
; 2b74
@@ -1997,11 +2029,11 @@ Function2b74:: ; 0x2b74
push af
ld a, $1
ld [wc2ce], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call Function2bae
hlcoord 0, 12
- ld bc, $0412
+ lb bc, 4, 18
call TextBox
ld hl, VramState
set 0, [hl]
@@ -2013,7 +2045,7 @@ Function2b74:: ; 0x2b74
call UpdateTimePals
call DelayFrame
ld a, $1
- ld [$ffde], a
+ ld [hMapAnims], a
pop af
ret
; 0x2bae
@@ -2021,9 +2053,9 @@ Function2b74:: ; 0x2b74
Function2bae:: ; 2bae
call DisableLCD
call ClearSprites
- callba Function14168
- call Functione51
- call Functione5f
+ callba RefreshSprites
+ call LoadStandardFont
+ call LoadFontsExtra
ld a, [hROMBank]
push af
ld a, [MapGroup]
@@ -2032,7 +2064,7 @@ Function2bae:: ; 2bae
ld c, a
call SwitchToAnyMapBank
callba Function8c001
- call Function2173
+ call OverworldTextModeSwitch
call Function2821
ld a, 9
call SkipMusic
@@ -2153,15 +2185,19 @@ GetAnyMapBank:: ; 2c31
ret
; 2c3d
-Function2c3d:: ; 2c3d
+PartiallyCopyMapHeader:: ; 2c3d
+; Copy second map header bank, tileset, permission, and second map header address
+; from the current map's map header.
ld a, [hROMBank]
push af
ld a, BANK(MapGroupPointers)
rst Bankswitch
+
call GetMapHeaderPointer
- ld de, wd197 + 1
- ld bc, $0005
+ ld de, wSecondMapHeaderBank
+ ld bc, MapHeader - wSecondMapHeaderBank
call CopyBytes
+
pop af
rst Bankswitch
ret
@@ -2213,7 +2249,7 @@ GetSecondaryMapHeaderPointer:: ; 0x2c7d
; returns the current map's secondary map header pointer in hl.
push bc
push de
- ld de, $0003 ; secondary map header pointer (offset within header)
+ ld de, 3 ; secondary map header pointer (offset within header)
call GetMapHeaderMember
ld l, c
ld h, b
@@ -2226,7 +2262,7 @@ GetMapPermission:: ; 2c8a
push hl
push de
push bc
- ld de, 2
+ ld de, 2 ; permission
call GetMapHeaderMember
ld a, c
pop bc
@@ -2243,7 +2279,7 @@ GetAnyMapPermission:: ; 2c99
push hl
push de
push bc
- ld de, $0002
+ ld de, 2 ; permission
call GetAnyMapHeaderMember
ld a, c
pop bc
@@ -2253,7 +2289,7 @@ GetAnyMapPermission:: ; 2c99
; 2ca7
GetAnyMapTileset:: ; 2ca7
- ld de, $0001
+ ld de, 1 ; tileset
call GetAnyMapHeaderMember
ld a, c
ret
@@ -2264,9 +2300,11 @@ GetWorldMapLocation:: ; 0x2caf
push hl
push de
push bc
- ld de, 5
+
+ ld de, 5 ; landmark
call GetAnyMapHeaderMember
ld a, c
+
pop bc
pop de
pop hl
@@ -2336,21 +2374,25 @@ GetMapHeaderPhoneServiceNybble:: ; 2d05
GetPhoneServiceTimeOfDayByte:: ; 2d0d
push hl
push bc
+
ld de, 7 ; phone service and time of day
call GetMapHeaderMember
ld a, c
+
pop bc
pop hl
ret
; 2d19
-Function2d19:: ; 2d19
+GetFishingGroup:: ; 2d19
push de
push hl
push bc
+
ld de, 8 ; fishing group
call GetMapHeaderMember
ld a, c
+
pop bc
pop hl
pop de
@@ -2363,7 +2405,7 @@ LoadTilesetHeader:: ; 2d27
ld hl, Tilesets
ld bc, Tileset01 - Tileset00
- ld a, [wd199]
+ ld a, [wTileset]
call AddNTimes
ld de, TilesetBank
diff --git a/home/map_objects.asm b/home/map_objects.asm
index 36750b1eb..e5d6dab01 100644
--- a/home/map_objects.asm
+++ b/home/map_objects.asm
@@ -52,18 +52,18 @@ endr
ret
; 1836
-Function1836:: ; 1836
+DoesSpriteHaveFacings:: ; 1836
push de
push hl
ld b, a
ld a, [hROMBank]
push af
- ld a, BANK(Function142a7)
+ ld a, BANK(_DoesSpriteHaveFacings)
rst Bankswitch
ld a, b
- call Function142a7
+ call _DoesSpriteHaveFacings
ld c, a
pop de
@@ -428,7 +428,8 @@ Function19b8:: ; 19b8
-Function19e9:: ; 19e9
+LoadMovementDataPointer:: ; 19e9
+; Load the movement data pointer for person a.
ld [wMovementPerson], a
ld a, [hROMBank]
ld [wMovementDataPointer], a
@@ -439,12 +440,15 @@ Function19e9:: ; 19e9
ld a, [wMovementPerson]
call CheckObjectVisibility
ret c
+
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
- ld [hl], SPRITEMOVEDATA_14
+ ld [hl], SPRITEMOVEDATA_SCRIPTED
+
ld hl, OBJECT_09
add hl, bc
ld [hl], 0
+
ld hl, VramState
set 7, [hl]
and a
@@ -485,19 +489,19 @@ FindFirstEmptyObjectStruct:: ; 1a13
-Function1a2f:: ; 1a2f
+GetSpriteMovementFunction:: ; 1a2f
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld a, [hl]
- cp OBJECT_STRUCT_3_DATA_HEIGHT
+ cp NUM_SPRITEMOVEDATA
jr c, .ok
xor a
.ok
- ld hl, ObjectStruct3_Data
+ ld hl, SpriteMovementData
ld e, a
ld d, 0
-rept OBJECT_STRUCT_3_DATA_WIDTH
+rept SPRITEMOVEDATA_FIELDS
add hl,de
endr
ld a, [hl]
@@ -509,11 +513,11 @@ Function1a47:: ; 1a47
push de
ld e, a
ld d, 0
- ld hl, ObjectStruct3_Data + 1
-rept OBJECT_STRUCT_3_DATA_WIDTH
+ ld hl, SpriteMovementData + 1 ; init facing
+rept SPRITEMOVEDATA_FIELDS
add hl,de
endr
- ld a, BANK(ObjectStruct3_Data)
+ ld a, BANK(SpriteMovementData)
call GetFarByte
rept 2
add a
@@ -529,7 +533,7 @@ Function1a61:: ; 1a61
ld l, a
ld a, [hROMBank]
push af
- ld a, BANK(ObjectStruct3_Data)
+ ld a, BANK(SpriteMovementData)
rst Bankswitch
ld a, l
push bc
@@ -550,8 +554,8 @@ Function1a71:: ; 1a71
push de
ld e, a
ld d, 0
- ld hl, ObjectStruct3_Data + 1 ; facing?
-rept OBJECT_STRUCT_3_DATA_WIDTH
+ ld hl, SpriteMovementData + 1 ; init facing
+rept SPRITEMOVEDATA_FIELDS
add hl, de
endr
ld b, h
@@ -589,14 +593,15 @@ endr
; 1aae
Function1aae:: ; 1aae
+; Switch to the movement data bank
ld a, [hROMBank]
push af
ld a, [hli]
rst Bankswitch
-
+; Load the current script byte as given by OBJECT_MOVEMENT_BYTE_INDEX, and increment OBJECT_MOVEMENT_BYTE_INDEX
ld a, [hli]
ld d, [hl]
- ld hl, OBJECT_27
+ ld hl, OBJECT_MOVEMENT_BYTE_INDEX
add hl, bc
add [hl]
ld e, a
diff --git a/home/menu.asm b/home/menu.asm
index a42b29cd1..30497a44c 100644
--- a/home/menu.asm
+++ b/home/menu.asm
@@ -7,11 +7,11 @@ LoadMenuDataHeader::
ret
CopyMenuDataHeader::
- ld de, wcf81
- ld bc, 16
+ ld de, wMenuDataHeader
+ ld bc, wMenuDataHeaderEnd - wMenuDataHeader
call CopyBytes
ld a, [hROMBank]
- ld [wcf8a], a
+ ld [wMenuDataBank], a
ret
; 0x1d4b
@@ -52,7 +52,7 @@ MenuTextBoxBackup:: ; 1d67
ret
; 1d6e
-LoadMenuDataHeader_0x1d75:: ; 1d6e
+LoadStandardMenuDataHeader:: ; 1d6e
ld hl, MenuDataHeader_0x1d75
call LoadMenuDataHeader
ret
@@ -74,12 +74,12 @@ Call_ExitMenu:: ; 1d7d
InterpretMenu2::
xor a
ld [hBGMapMode], a
- call Function1cbb
+ call MenuBox
call UpdateSprites
call Function1c89
call Function321c
- call Function1c66
- ld a, [wcf91]
+ call CopyMenuData2
+ ld a, [wMenuData2Flags]
bit 7, a
jr z, .cancel
call Function1c10
@@ -99,15 +99,15 @@ GetMenu2:: ; 1dab
call LoadMenuDataHeader
call InterpretMenu2
call WriteBackup
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ret
; 1db8
-Function1db8::
+CopyNameFromMenu::
push hl
push bc
push af
- ld hl, wcf86
+ ld hl, wMenuData2Pointer
ld a, [hli]
ld h, [hl]
ld l, a
@@ -126,7 +126,7 @@ endr
YesNoBox:: ; 1dcf
- lb bc, 14, 7
+ lb bc, SCREEN_WIDTH - 6, 7
PlaceYesNoBox:: ; 1dd2
jr _YesNoBox
@@ -152,11 +152,11 @@ _YesNoBox:: ; 1dd9
.okay
ld a, b
ld [wMenuBorderLeftCoord], a
- add $5
+ add 5
ld [wMenuBorderRightCoord], a
ld a, c
ld [wMenuBorderTopCoord], a
- add $4
+ add 4
ld [wMenuBorderBottomCoord], a
call BackUpTiles
@@ -168,7 +168,7 @@ InterpretTwoOptionMenu:: ; 1dfe
call WriteBackup
pop af
jr c, .no
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp 2 ; no
jr z, .no
and a
@@ -176,7 +176,7 @@ InterpretTwoOptionMenu:: ; 1dfe
.no
ld a, 2
- ld [wcfa9], a
+ ld [MenuSelection2], a
scf
ret
; 1e1d
@@ -246,10 +246,10 @@ SetUpMenu:: ; 1e70
ret
MenuFunc_1e7f::
- call Function1c66
+ call CopyMenuData2
call Function1ebd
call Function1ea6
- call Function1cbb
+ call MenuBox
ret
MenuWriteText::
@@ -274,7 +274,7 @@ Function1ea6:: ; 1ea6
ld a, [wMenuBorderRightCoord]
sub c
ld c, a
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
add a
inc a
ld b, a
@@ -305,12 +305,12 @@ Function1ebd:: ; 1ebd
ld d, h
ld e, l
ld a, [hl]
- ld [wcf92], a
+ ld [wMenuData2Items], a
ret
; 1eda
Function1eda:: ; 1eda
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
ld bc, $002a
add hl, bc
.asm_1ee1
@@ -342,13 +342,13 @@ Function1efb:: ; 1efb
Function1eff:: ; 1eff
call Function1c10
ld hl, wcfa8
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 3, a
jr z, .asm_1f0e
set 3, [hl]
.asm_1f0e
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 2, a
jr z, .asm_1f19
set 5, [hl]
@@ -403,13 +403,13 @@ Function1f2a:: ; 1f2a
.asm_1f57
call Function1ebd
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld l, a
ld h, $0
add hl, de
ld a, [hl]
ld [MenuSelection], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wMenuCursorBuffer], a
and a
ret
@@ -489,9 +489,9 @@ endr
ResetTextRelatedRAM:: ; 1fbf
ld hl, wcf71
call .bytefill
- ld hl, wcf81
+ ld hl, wMenuDataHeader
call .bytefill
- ld hl, wcf91
+ ld hl, wMenuData2Flags
call .bytefill
ld hl, wcfa1
call .bytefill
@@ -527,7 +527,7 @@ Function1ff8:: ; 1ff8
push af
and $3
jr z, .nosound
- ld hl, wcf81
+ ld hl, wMenuFlags
bit 3, [hl]
jr nz, .nosound
call PlayClickSFX
diff --git a/home/movement.asm b/home/movement.asm
index 82486b5c1..fdb606bd5 100644
--- a/home/movement.asm
+++ b/home/movement.asm
@@ -1,29 +1,29 @@
-Function1b1e:: ; 1b1e
- ld [wd003], a
+InitMovementBuffer:: ; 1b1e
+ ld [wMovementBufferPerson], a
xor a
- ld [DefaultFlypoint], a
- ld a, $0
+ ld [wMovementBufferCount], a
+ ld a, $0 ; useless
ld [wd004], a
ld a, $7
- ld [StartFlypoint], a
+ ld [wd005], a
ld a, $d0
- ld [EndFlypoint], a
+ ld [wd006], a
ret
; 1b35
-Function1b35:: ; 1b35
- ld a, [DefaultFlypoint]
+DecrementMovementBufferCount:: ; 1b35
+ ld a, [wMovementBufferCount]
and a
ret z
dec a
- ld [DefaultFlypoint], a
+ ld [wMovementBufferCount], a
ret
; 1b3f
-Function1b3f:: ; 1b3f
+AppendToMovementBuffer:: ; 1b3f
push hl
push de
- ld hl, DefaultFlypoint
+ ld hl, wMovementBufferCount
ld e, [hl]
inc [hl]
ld d, 0
@@ -35,47 +35,50 @@ Function1b3f:: ; 1b3f
ret
; 1b50
-Function1b50:: ; 1b50
+AppendToMovementBufferNTimes:: ; 1b50
push af
ld a, c
and a
- jr nz, .asm_1b57
+ jr nz, .okay
pop af
ret
-.asm_1b57
+.okay
pop af
-.asm_1b58
- call Function1b3f
+.loop
+ call AppendToMovementBuffer
dec c
- jr nz, .asm_1b58
+ jr nz, .loop
ret
; 1b5f
-Function1b5f:: ; 1b5f
+ComputePathToWalkToPlayer:: ; 1b5f
push af
+; compare x coords, load left/right into h, and x distance into d
ld a, b
sub d
- ld h, $2
- jr nc, .asm_1b6a
+ ld h, LEFT
+ jr nc, .got_x_distance
dec a
cpl
- ld h, $3
+ ld h, RIGHT
-.asm_1b6a
+.got_x_distance
ld d, a
+; compare y coords, load up/down into l, and y distance into e
ld a, c
sub e
- ld l, $1
- jr nc, .asm_1b75
+ ld l, UP
+ jr nc, .got_y_distance
dec a
cpl
- ld l, $0
+ ld l, DOWN
-.asm_1b75
+.got_y_distance
ld e, a
+; if the x distance is less than the y distance, swap h and l, and swap d and e
cp d
- jr nc, .asm_1b7f
+ jr nc, .done
ld a, h
ld h, l
ld l, a
@@ -83,21 +86,23 @@ Function1b5f:: ; 1b5f
ld d, e
ld e, a
-.asm_1b7f
+.done
pop af
ld b, a
+; Add movement in the longer direction first...
ld a, h
- call Function1b92
+ call .GetMovementData
ld c, d
- call Function1b50
+ call AppendToMovementBufferNTimes
+; ... then add the shorter direction.
ld a, l
- call Function1b92
+ call .GetMovementData
ld c, e
- call Function1b50
+ call AppendToMovementBufferNTimes
ret
; 1b92
-Function1b92:: ; 1b92
+.GetMovementData: ; 1b92
push de
push hl
ld l, b
@@ -108,7 +113,7 @@ endr
ld e, a
ld d, 0
add hl, de
- ld de, .data_1ba5
+ ld de, .MovementData
add hl, de
ld a, [hl]
pop hl
@@ -116,8 +121,19 @@ endr
ret
; 1ba5
-.data_1ba5
- db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19
+.MovementData
+ slow_step_down
+ slow_step_up
+ slow_step_left
+ slow_step_right
+ step_down
+ step_up
+ step_left
+ step_right
+ big_step_down
+ big_step_up
+ big_step_left
+ big_step_right
; 1bb1
Function1bb1:: ; 1bb1
diff --git a/home/palettes.asm b/home/palettes.asm
index 93498aedd..1a2e0b037 100644
--- a/home/palettes.asm
+++ b/home/palettes.asm
@@ -79,7 +79,7 @@ DmgToCgbBGPals:: ; c9f
ld [rBGP], a
push af
-; Don't need to be here if CGB
+; Don't need to be here if DMG
ld a, [hCGB]
and a
jr z, .end
@@ -95,7 +95,7 @@ DmgToCgbBGPals:: ; c9f
; copy & reorder bg pal buffer
ld hl, BGPals ; to
- ld de, Unkn1Pals ; from
+ ld de, wMapPals ; from
; order
ld a, [rBGP]
ld b, a
diff --git a/home/serial.asm b/home/serial.asm
index 1ebf00389..fdaba6cc5 100644
--- a/home/serial.asm
+++ b/home/serial.asm
@@ -6,7 +6,7 @@ Serial:: ; 6ef
push de
push hl
- ld a, [$ffc9]
+ ld a, [hFFC9]
and a
jr nz, .asm_71c
@@ -14,7 +14,7 @@ Serial:: ; 6ef
bit 0, a
jr nz, .asm_721
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
inc a ; is it equal to -1?
jr z, .asm_726
@@ -24,7 +24,7 @@ Serial:: ; 6ef
ld a, [hSerialSend]
ld [rSB], a
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $2
jr z, .asm_752
@@ -51,7 +51,7 @@ Serial:: ; 6ef
.asm_730
ld [hSerialReceive], a
- ld [$ffcb], a
+ ld [hLinkPlayerNumber], a
cp $2
jr z, .asm_74f
@@ -77,7 +77,7 @@ Serial:: ; 6ef
.asm_752
ld a, $1
- ld [$ffca], a
+ ld [hFFCA], a
ld a, $fe
ld [hSerialSend], a
@@ -91,7 +91,7 @@ Serial:: ; 6ef
Function75f:: ; 75f
ld a, $1
- ld [$ffcc], a
+ ld [hFFCC], a
.asm_763
ld a, [hl]
ld [hSerialSend], a
@@ -103,7 +103,7 @@ Function75f:: ; 75f
.asm_76e
dec a
jr nz, .asm_76e
- ld a, [$ffcc]
+ ld a, [hFFCC]
and a
ld a, b
pop bc
@@ -112,7 +112,7 @@ Function75f:: ; 75f
cp $fd
jr nz, .asm_763
xor a
- ld [$ffcc], a
+ ld [hFFCC], a
jr .asm_763
.asm_782
@@ -127,8 +127,8 @@ Function75f:: ; 75f
Function78a:: ; 78a
xor a
- ld [$ffca], a
- ld a, [$ffcb]
+ ld [hFFCA], a
+ ld a, [hLinkPlayerNumber]
cp $2
jr nz, .asm_79b
ld a, $1
@@ -137,10 +137,10 @@ Function78a:: ; 78a
ld [rSC], a
.asm_79b
- ld a, [$ffca]
+ ld a, [hFFCA]
and a
jr nz, .asm_7e5
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $1
jr nz, .asm_7c0
call Function82b
@@ -172,7 +172,7 @@ Function78a:: ; 78a
dec a
ld [wcf5d + 1], a
jr nz, .asm_79b
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $1
jr z, .asm_7e5
ld a, $ff
@@ -182,7 +182,7 @@ Function78a:: ; 78a
.asm_7e5
xor a
- ld [$ffca], a
+ ld [hFFCA], a
ld a, [rIE]
and $f
sub $8
@@ -251,7 +251,7 @@ Function83b:: ; 83b
ld de, wcf51
ld c, $2
ld a, $1
- ld [$ffcc], a
+ ld [hFFCC], a
.asm_847
call DelayFrame
ld a, [hl]
@@ -259,10 +259,10 @@ Function83b:: ; 83b
call Function78a
ld b, a
inc hl
- ld a, [$ffcc]
+ ld a, [hFFCC]
and a
ld a, $0
- ld [$ffcc], a
+ ld [hFFCC], a
jr nz, .asm_847
ld a, b
ld [de], a
@@ -349,7 +349,7 @@ Function8c1:: ; 8c1
ld a, [wcf56]
add b
ld [hSerialSend], a
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $2
jr nz, .asm_8ee
ld a, $1
@@ -380,7 +380,7 @@ Function8f3:: ; 8f3
Function908:: ; 908
xor a
ld [hSerialSend], a
- ld a, [$ffcb]
+ ld a, [hLinkPlayerNumber]
cp $2
ret nz
ld a, $1
diff --git a/home/tilemap.asm b/home/tilemap.asm
index 928c6a983..3153cea2c 100644
--- a/home/tilemap.asm
+++ b/home/tilemap.asm
@@ -22,9 +22,9 @@ WriteBackup:: ; 0x1c17
ret
RestoreTileBackup:: ; 0x1c23
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
call .copy
- call GetMemAttrCoord
+ call MenuBoxCoord2Attr
call .copy
ret
; 0x1c30
@@ -56,7 +56,7 @@ RestoreTileBackup:: ; 0x1c23
Function1c47:: ; 0x1c47
ld b, $10
- ld de, wcf81
+ ld de, wMenuFlags
.loop
ld a, [hld]
ld [de], a
@@ -79,17 +79,17 @@ GetMenuBoxDims:: ; 0x1c53
ret
; 0x1c66
-Function1c66:: ; 1c66
+CopyMenuData2:: ; 1c66
push hl
push de
push bc
push af
- ld hl, wcf86
+ ld hl, wMenuData2Pointer
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, wcf91
- ld bc, $0010
+ ld de, wMenuData2Flags
+ ld bc, wMenuData2End - wMenuData2Flags
call CopyBytes
pop af
pop bc
@@ -111,30 +111,31 @@ Function1c7e:: ; 1c7e
; 1c89
Function1c89:: ; 1c89
- call Function1c66
- ld hl, wcf86
+ call CopyMenuData2
+ ld hl, wMenuData2Pointer
ld e, [hl]
inc hl
ld d, [hl]
- call Function1cc6
- call GetTileCoord
+ call GetMenuTextStartCoord
+ call Coord2Tile ; hl now contains the TileMap address where we will start printing text.
inc de
- ld a, [de]
+ ld a, [de] ; Number of items
inc de
ld b, a
-.asm_1c9c
+.loop
push bc
call PlaceString
inc de
- ld bc, $0028
+ ld bc, 2 * SCREEN_WIDTH
add hl, bc
pop bc
dec b
- jr nz, .asm_1c9c
- ld a, [wcf91]
+ jr nz, .loop
+ ld a, [wMenuData2Flags]
bit 4, a
ret z
- call GetMemTileCoord
+
+ call MenuBoxCoord2Tile
ld a, [de]
ld c, a
inc de
@@ -143,39 +144,41 @@ Function1c89:: ; 1c89
jp PlaceString
; 1cbb
-Function1cbb:: ; 1cbb
- call GetMemTileCoord
+MenuBox:: ; 1cbb
+ call MenuBoxCoord2Tile
call GetMenuBoxDims
dec b
dec c
jp TextBox
; 1cc6
-Function1cc6:: ; 1cc6
+GetMenuTextStartCoord:: ; 1cc6
ld a, [wMenuBorderTopCoord]
ld b, a
inc b
ld a, [wMenuBorderLeftCoord]
ld c, a
inc c
- ld a, [wcf91]
+; bit 6: if not set, leave extra room on top
+ ld a, [wMenuData2Flags]
bit 6, a
- jr nz, .asm_1cd8
+ jr nz, .bit_6_set
inc b
-.asm_1cd8
- ld a, [wcf91]
+.bit_6_set
+; bit 7: if set, leave extra room on the left
+ ld a, [wMenuData2Flags]
bit 7, a
- jr z, .asm_1ce0
+ jr z, .bit_7_clear
inc c
-.asm_1ce0
+.bit_7_clear
ret
; 1ce1
-Function1ce1:: ; 1ce1
- call GetMemTileCoord
- lb bc, 0, 21
+ClearMenuBoxInterior:: ; 1ce1
+ call MenuBoxCoord2Tile
+ ld bc, SCREEN_WIDTH + 1
add hl, bc
call GetMenuBoxDims
dec b
@@ -184,8 +187,8 @@ Function1ce1:: ; 1ce1
ret
; 1cf1
-Function1cf1:: ; 1cf1
- call GetMemTileCoord
+ClearWholeMenuBox:: ; 1cf1
+ call MenuBoxCoord2Tile
call GetMenuBoxDims
inc c
inc b
@@ -194,7 +197,7 @@ Function1cf1:: ; 1cf1
; 1cfd
-GetMemTileCoord:: ; 1cfd
+MenuBoxCoord2Tile:: ; 1cfd
ld a, [wMenuBorderLeftCoord]
ld c, a
ld a, [wMenuBorderTopCoord]
@@ -202,7 +205,7 @@ GetMemTileCoord:: ; 1cfd
; 1d05
-GetTileCoord:: ; 1d05
+Coord2Tile:: ; 1d05
; Return the address of TileMap(c, b) in hl.
xor a
ld h, a
@@ -226,13 +229,13 @@ endr
ret
; 1d19
-GetMemAttrCoord:: ; 1d19
+MenuBoxCoord2Attr:: ; 1d19
ld a, [wMenuBorderLeftCoord]
ld c, a
ld a, [wMenuBorderTopCoord]
ld b, a
-GetAttrCoord:: ; 1d21
+Coord2Attr:: ; 1d21
; Return the address of AttrMap(c, b) in hl.
xor a
ld h, a
diff --git a/home/time.asm b/home/time.asm
index 173ea573c..be7020bda 100644
--- a/home/time.asm
+++ b/home/time.asm
@@ -101,8 +101,8 @@ FixDays:: ; 5e8
; update dl
ld [hRTCDayLo], a ; DL
-; unknown output
- ld a, $40 ; %1000000
+; flag for s0_ac60
+ ld a, %01000000
jr .set
.daylo
@@ -120,8 +120,8 @@ FixDays:: ; 5e8
; update dl
ld [hRTCDayLo], a ; DL
-; unknown output
- ld a, $20 ; %100000
+; flag for s0_ac60
+ ld a, %00100000
.set
; update clock with modded day value
@@ -278,6 +278,7 @@ SetClock:: ; 691
Function6c4:: ; 6c4
+; clear s0_ac60
xor a
push af
ld a, BANK(s0_ac60)
@@ -289,6 +290,7 @@ Function6c4:: ; 6c4
; 6d3
Function6d3:: ; 6d3
+; append flags to s0_ac60
ld hl, s0_ac60
push af
ld a, BANK(s0_ac60)
@@ -301,6 +303,7 @@ Function6d3:: ; 6d3
; 6e3
Function6e3:: ; 6e3
+; check s0_ac60
ld a, BANK(s0_ac60)
call GetSRAMBank
ld a, [s0_ac60]
diff --git a/home/vblank.asm b/home/vblank.asm
index 870ef4808..69d86504d 100644
--- a/home/vblank.asm
+++ b/home/vblank.asm
@@ -64,7 +64,7 @@ VBlank0:: ; 2b1
; sound
; inc frame counter
- ld hl, $ff9b
+ ld hl, hVBlankCounter
inc [hl]
; advance random variables
@@ -418,7 +418,7 @@ VBlank6:: ; 436
ld [hROMBankBackup], a
; inc frame counter
- ld hl, $ff9b
+ ld hl, hVBlankCounter
inc [hl]
call UpdateCGBPals
diff --git a/home/video.asm b/home/video.asm
index b7e9f4db5..15ea9b72b 100644
--- a/home/video.asm
+++ b/home/video.asm
@@ -449,7 +449,7 @@ endr
AnimateTileset:: ; 17d3
; Only call during the first fifth of VBlank
- ld a, [$ffde]
+ ld a, [hMapAnims]
and a
ret z
diff --git a/home/window.asm b/home/window.asm
index 1198cfbe1..bc03e6ce4 100644
--- a/home/window.asm
+++ b/home/window.asm
@@ -35,14 +35,14 @@ Function2de2:: ; 2de2
call ResetTextRelatedRAM
xor a
ld [hBGMapMode], a
- call Function2173
+ call OverworldTextModeSwitch
call Function2e20
xor a
ld [hBGMapMode], a
call Function2e31
ld a, $90
ld [hWY], a
- call Special_ReplaceKrisSprite
+ call ReplaceKrisSprite
callba ReturnFromMapSetupScript
callba Function106594
ret
diff --git a/hram.asm b/hram.asm
index d0bd382e2..99db5d3f9 100644
--- a/hram.asm
+++ b/hram.asm
@@ -32,6 +32,8 @@ hJoyDown EQU $ffa8
hJoyLast EQU $ffa9
hInMenu EQU $ffaa
+hFillBox EQU $ffad
+
hMapObjectIndexBuffer EQU $ffaf
hObjectStructIndexBuffer EQU $ffb0
@@ -60,13 +62,24 @@ hPrintNum4 EQU $ffb6
hPrintNum5 EQU $ffb7
hPrintNum6 EQU $ffb8
hPrintNum7 EQU $ffb9
+hPrintNum8 EQU $ffba
+hPrintNum9 EQU $ffbb
+hPrintNum10 EQU $ffbc
hUsedSpriteIndex EQU $ffbd
hUsedSpriteTile EQU $ffbe
+hFFBF EQU $ffbf
+hFFC0 EQU $ffc0
+hFFC1 EQU $ffc1
+hFFC2 EQU $ffc2
hMoneyTemp EQU $ffc3
hLCDStatCustom EQU $ffc6
+hFFC9 EQU $ffc9
+hFFCA EQU $ffca
+hLinkPlayerNumber EQU $ffcb
+hFFCC EQU $ffcc
hSerialSend EQU $ffcd
hSerialReceive EQU $ffce
@@ -74,7 +87,7 @@ hSCX EQU $ffcf
hSCY EQU $ffd0
hWX EQU $ffd1
hWY EQU $ffd2
-
+hTilesPerCycle EQU $ffd3
hBGMapMode EQU $ffd4
hBGMapThird EQU $ffd5
hBGMapAddress EQU $ffd6
@@ -84,6 +97,7 @@ hSPBuffer EQU $ffd9
hBGMapUpdate EQU $ffdb
+hMapAnims EQU $ffde
hTileAnimFrame EQU $ffdf
hLastTalked EQU $ffe0
diff --git a/items/item_effects.asm b/items/item_effects.asm
index f7eeffce5..2b12b587e 100644
--- a/items/item_effects.asm
+++ b/items/item_effects.asm
@@ -210,11 +210,11 @@ LoveBall:
ParkBall: ; e8a2
ld a, [wBattleMode]
dec a
- jp nz, Functionf7a0
+ jp nz, UseBallInTrainerBattle
ld a, [PartyCount]
cp PARTY_LENGTH
- jr nz, .asm_e8c0
+ jr nz, .room_in_party
ld a, BANK(sBoxCount)
call GetSRAMBank
@@ -223,9 +223,9 @@ ParkBall: ; e8a2
call CloseSRAM
jp z, Ball_BoxIsFullMessage
-.asm_e8c0
+.room_in_party
xor a
- ld [wc64e], a
+ ld [wWildMon], a
ld a, [CurItem]
cp PARK_BALL
call nz, Functionedfa
@@ -239,38 +239,38 @@ ParkBall: ; e8a2
ld b, a
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
- jp z, .asm_e99c
+ jp z, .catch_without_fail
ld a, [CurItem]
cp MASTER_BALL
- jp z, .asm_e99c
+ jp z, .catch_without_fail
ld a, [CurItem]
ld c, a
ld hl, BallMultiplierFunctionTable
-.asm_e8f2
+.get_multiplier_loop
ld a, [hli]
cp $ff
- jr z, .asm_e906
+ jr z, .skip_or_return_from_ball_fn
cp c
- jr z, .asm_e8fe
+ jr z, .call_ball_function
rept 2
inc hl
endr
- jr .asm_e8f2
+ jr .get_multiplier_loop
-.asm_e8fe
+.call_ball_function
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, .asm_e906
+ ld de, .skip_or_return_from_ball_fn
push de
jp [hl]
-.asm_e906
+.skip_or_return_from_ball_fn
ld a, [CurItem]
cp LEVEL_BALL
ld a, b
- jp z, .asm_e98e
+ jp z, .skip_hp_calc
ld a, b
ld [hMultiplicand + 2], a
@@ -295,7 +295,7 @@ endr
ld e, l
ld a, d
and a
- jr z, .asm_e940
+ jr z, .okay_1
srl d
rr e
@@ -308,9 +308,9 @@ endr
ld a, c
and a
- jr nz, .asm_e940
+ jr nz, .okay_1
ld c, $1
-.asm_e940
+.okay_1
ld b, e
push bc
@@ -350,15 +350,15 @@ endr
.addstatus
ld a, b
add c
- jr nc, .asm_e977
+ jr nc, .max_1
ld a, $ff
-.asm_e977
+.max_1
ld d, a
push de
; BUG: callba overwrites a,
- ; and GetItem takes b anyway.
+ ; and GetItemHeldEffect takes b anyway.
; This is probably the reason
; the HELD_CATCH_CHANCE effect
@@ -368,18 +368,18 @@ endr
ld a, [BattleMonItem]
; ld b, a
- callba GetItem
+ callba GetItemHeldEffect
ld a, b
cp HELD_CATCH_CHANCE
pop de
ld a, d
- jr nz, .asm_e98e
+ jr nz, .skip_hp_calc
add c
- jr nc, .asm_e98e
+ jr nc, .skip_hp_calc
ld a, $ff
-.asm_e98e
+.skip_hp_calc
ld b, a
ld [Buffer1], a
@@ -387,23 +387,23 @@ endr
cp b
ld a, 0
- jr z, .asm_e99c
- jr nc, .asm_e99f
+ jr z, .catch_without_fail
+ jr nc, .fail_to_catch
-.asm_e99c
+.catch_without_fail
ld a, [EnemyMonSpecies]
-.asm_e99f
- ld [wc64e], a
+.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, .asm_e9b0
+ jr c, .not_kurt_ball
ld a, POKE_BALL
-.asm_e9b0
- ld [wc689], a
+.not_kurt_ball
+ ld [wKickCounter], a
ld de, ANIM_THROW_POKE_BALL
ld a, e
@@ -416,23 +416,23 @@ endr
ld [wcfca], a
predef PlayBattleAnim
- ld a, [wc64e]
+ ld a, [wWildMon]
and a
- jr nz, .asm_e9f5
+ jr nz, .caught
ld a, [Buffer2]
cp $1
ld hl, UnknownText_0xedb5
- jp z, .asm_ebdc
+ jp z, .shake_and_break_free
cp $2
ld hl, UnknownText_0xedba
- jp z, .asm_ebdc
+ jp z, .shake_and_break_free
cp $3
ld hl, UnknownText_0xedbf
- jp z, .asm_ebdc
+ jp z, .shake_and_break_free
cp $4
ld hl, UnknownText_0xedc4
- jp z, .asm_ebdc
-.asm_e9f5
+ jp z, .shake_and_break_free
+.caught
ld hl, EnemyMonStatus
ld a, [hli]
@@ -492,29 +492,29 @@ endr
ld hl, EnemySubStatus5
bit SUBSTATUS_TRANSFORMED, [hl]
- jr nz, .asm_ea67
- ld hl, wc735
+ jr nz, .Transformed
+ ld hl, wWildMonMoves
ld de, EnemyMonMoves
ld bc, NUM_MOVES
call CopyBytes
- ld hl, wc739
+ ld hl, wWildMonPP
ld de, EnemyMonPP
ld bc, NUM_MOVES
call CopyBytes
-.asm_ea67
+.Transformed
ld a, [EnemyMonSpecies]
- ld [wc64e], a
+ ld [wWildMon], a
ld [CurPartySpecies], a
ld [wd265], a
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
- jp z, .asm_ebd9
+ jp z, .FinishTutorial
callba MobileFn_10607f
- ld hl, UnknownText_0xedc9
+ ld hl, Text_GotchaMonWasCaught
call PrintText
call ClearSprites
@@ -530,10 +530,10 @@ endr
call SetSeenAndCaughtMon
pop af
and a
- jr nz, .asm_eab7
+ jr nz, .skip_pokedex
- call Function2ead
- jr z, .asm_eab7
+ call CheckReceivedDex
+ jr z, .skip_pokedex
ld hl, UnknownText_0xedf0
call PrintText
@@ -544,19 +544,19 @@ endr
ld [wd265], a
predef Functionfb877
-.asm_eab7
+.skip_pokedex
ld a, [BattleType]
cp BATTLETYPE_CONTEST
- jp z, .asm_ebd1
+ jp z, .catch_bug_contest_mon
cp BATTLETYPE_CELEBI
- jr nz, .asm_eac8
+ jr nz, .not_celebi
ld hl, wBattleResult
set 6, [hl]
-.asm_eac8
+.not_celebi
ld a, [PartyCount]
cp PARTY_LENGTH
- jr z, .asm_eb3c
+ jr z, .SendToPC
xor a ; PARTYMON
ld [MonType], a
@@ -568,17 +568,17 @@ endr
ld a, [CurItem]
cp FRIEND_BALL
- jr nz, .asm_eaf8
+ jr nz, .SkipPartyMonFriendBall
ld a, [PartyCount]
dec a
ld hl, PartyMon1Happiness
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, FRIEND_BALL_HAPPINESS
ld [hl], a
-.asm_eaf8
+.SkipPartyMonFriendBall
ld hl, UnknownText_0xedf5
call PrintText
@@ -588,7 +588,7 @@ endr
call GetPokemonName
call YesNoBox
- jp c, .asm_ebe2
+ jp c, .return_from_capture
ld a, [PartyCount]
dec a
@@ -603,19 +603,19 @@ endr
xor a ; PARTYMON
ld [MonType], a
ld b, 0
- callba Function116c1
+ callba NamingScreen
call FadeToWhite
- call Functione51
+ call LoadStandardFont
pop hl
ld de, StringBuffer1
call InitName
- jp .asm_ebe2
+ jp .return_from_capture
-.asm_eb3c
+.SendToPC
call ClearSprites
predef SentPkmnIntoBox
@@ -627,17 +627,17 @@ endr
ld a, [sBoxCount]
cp MONS_PER_BOX
- jr nz, .asm_eb5b
+ jr nz, .BoxNotFullYet
ld hl, wBattleResult
set 7, [hl]
-.asm_eb5b
+.BoxNotFullYet
ld a, [CurItem]
cp FRIEND_BALL
- jr nz, .asm_eb67
+ jr nz, .SkipBoxMonFriendBall
; Bug: overwrites the happiness of the first mon in the box!
ld a, FRIEND_BALL_HAPPINESS
ld [sBoxMon1Happiness], a
-.asm_eb67
+.SkipBoxMonFriendBall
call CloseSRAM
ld hl, UnknownText_0xedf5
@@ -648,7 +648,7 @@ endr
call GetPokemonName
call YesNoBox
- jr c, .asm_ebaf
+ jr c, .SkipBoxMonNickname
xor a
ld [CurPartyMon], a
@@ -656,7 +656,7 @@ endr
ld [MonType], a
ld de, wd050
ld b, $0
- callba Function116c1
+ callba NamingScreen
ld a, BANK(sBoxMonNicknames)
call GetSRAMBank
@@ -672,7 +672,7 @@ endr
call CloseSRAM
-.asm_ebaf
+.SkipBoxMonNickname
ld a, BANK(sBoxMonNicknames)
call GetSRAMBank
@@ -687,21 +687,21 @@ endr
call PrintText
call FadeToWhite
- call Functione51
- jr .asm_ebe2
+ call LoadStandardFont
+ jr .return_from_capture
-.asm_ebd1
+.catch_bug_contest_mon
callba BugContest_SetCaughtContestMon
- jr .asm_ebe2
+ jr .return_from_capture
-.asm_ebd9
- ld hl, UnknownText_0xedc9
+.FinishTutorial
+ ld hl, Text_GotchaMonWasCaught
-.asm_ebdc
+.shake_and_break_free
call PrintText
call ClearSprites
-.asm_ebe2
+.return_from_capture
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
ret z
@@ -710,11 +710,11 @@ endr
cp BATTLETYPE_CONTEST
jr z, .used_park_ball
- ld a, [wc64e]
+ ld a, [wWildMon]
and a
jr z, .toss
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
.toss
@@ -724,7 +724,7 @@ endr
jp TossItem
.used_park_ball
- ld hl, wdc79
+ ld hl, wParkBallsRemaining
dec [hl]
ret
; ec0a
@@ -733,16 +733,16 @@ endr
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 8, 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
+ 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:
@@ -1128,7 +1128,7 @@ UnknownText_0xedc4: ; 0xedc4
db "@"
; 0xedc9
-UnknownText_0xedc9: ; 0xedc9
+Text_GotchaMonWasCaught: ; 0xedc9
; Gotcha! @ was caught!@ @
text_jump UnknownText_0x1c5b17
start_asm
@@ -1193,12 +1193,12 @@ Thunderstone:
WaterStone:
LeafStone:
SunStone: ; ee0f
- ld b, $5
- call Functionf1f9
+ ld b, PARTYMENUACTION_EVO_STONE
+ call UseItem_SelectMon
jp c, .asm_ee38
- ld a, PartyMon1Item - PartyMon1
+ ld a, MON_ITEM
call GetPartyParamLocation
ld a, [hl]
@@ -1213,7 +1213,7 @@ SunStone: ; ee0f
and a
jr z, .asm_ee35
- jp Functionf795
+ jp UseDisposableItem
.asm_ee35
call WontHaveAnyEffectMessage
@@ -1230,8 +1230,8 @@ Protein:
Iron:
Carbos:
Calcium: ; ee3d
- ld b, $1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionee9f
@@ -1239,7 +1239,7 @@ Calcium: ; ee3d
call Functioneed9
- ld a, PartyMon1StatExp - PartyMon1
+ ld a, MON_STAT_EXP
call GetPartyParamLocation
add hl, bc
@@ -1270,7 +1270,7 @@ Calcium: ; ee3d
ld c, HAPPINESS_USEDITEM
callba ChangeHappiness
- jp Functionf795
+ jp UseDisposableItem
Functionee83: ; ee83
@@ -1281,11 +1281,11 @@ Functionee83: ; ee83
Functionee8c: ; ee8c
- ld a, PartyMon1MaxHP - PartyMon1
+ ld a, MON_MAXHP
call GetPartyParamLocation
ld d, h
ld e, l
- ld a, PartyMon1HPExp - 1 - PartyMon1
+ ld a, MON_EXP + 2
call GetPartyParamLocation
ld b, $1
predef_jump CalcPkmnStats
@@ -1338,11 +1338,11 @@ Functioneed9: ; eed9
; eeeb
Table_eeeb: ; eeeb
- db HP_UP, PartyMon1HPExp - PartyMon1StatExp
- db PROTEIN, PartyMon1AtkExp - PartyMon1StatExp
- db IRON, PartyMon1DefExp - PartyMon1StatExp
- db CARBOS, PartyMon1SpdExp - PartyMon1StatExp
- db CALCIUM, PartyMon1SpcExp - PartyMon1StatExp
+ 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
@@ -1350,7 +1350,7 @@ Functioneef5: ; eef5
ld a, [CurPartySpecies]
ld [CurSpecies], a
ld [wd265], a
- ld a, PartyMon1Level - PartyMon1
+ ld a, MON_LEVEL
call GetPartyParamLocation
ld a, [hl]
ld [CurPartyLevel], a
@@ -1363,14 +1363,14 @@ Functioneef5: ; eef5
RareCandy: ; ef14
- ld b, $1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionee9f
call Functioneef5
- ld a, PartyMon1Level - PartyMon1
+ ld a, MON_LEVEL
call GetPartyParamLocation
ld a, [hl]
@@ -1382,10 +1382,10 @@ RareCandy: ; ef14
ld [CurPartyLevel], a
push de
ld d, a
- callba Function50e47
+ callba CalcExpAtLevel
pop de
- ld a, PartyMon1Exp - PartyMon1
+ ld a, MON_EXP
call GetPartyParamLocation
ld a, [hMultiplicand]
@@ -1395,7 +1395,7 @@ RareCandy: ; ef14
ld a, [$ffb6]
ld [hl], a
- ld a, PartyMon1MaxHP - PartyMon1
+ ld a, MON_MAXHP
call GetPartyParamLocation
ld a, [hli]
ld b, a
@@ -1403,7 +1403,7 @@ RareCandy: ; ef14
push bc
call Functionee8c
- ld a, PartyMon1MaxHP + 1 - PartyMon1
+ ld a, MON_MAXHP + 1
call GetPartyParamLocation
pop bc
@@ -1422,7 +1422,7 @@ RareCandy: ; ef14
ld [hl], a
callba LevelUpHappinessMod
- ld a, $f8
+ ld a, PARTYMENUTEXT_LEVEL_UP
call Functionf24a
xor a ; PARTYMON
@@ -1438,7 +1438,7 @@ RareCandy: ; ef14
ld bc, $0004
predef PrintTempMonStats
- call Functiona80
+ call WaitPressAorB_BlinkCursor
xor a ; PARTYMON
ld [MonType], a
@@ -1450,13 +1450,13 @@ RareCandy: ; ef14
ld [wd1e9], a
callba Function421d8
- jp Functionf795
+ jp UseDisposableItem
; efad
HealPowder: ; efad
- ld b, $1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionf29e
@@ -1488,8 +1488,8 @@ BurntBerry:
IceBerry:
MintBerry:
Miracleberry: ; efcc
- ld b, $1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionf29e
Functionefd4: ; efd4
@@ -1502,47 +1502,47 @@ Functionefda: ; efda (3:6fda)
call Functionf30d
ld a, $1
ret z
- call Functionf058
- ld a, PartyMon1Status - PartyMon1
+ call GetItemHealingAction
+ ld a, MON_STATUS
call GetPartyParamLocation
ld a, [hl]
and c
- jr nz, .asm_eff4
+ jr nz, .good
call Functionf009
ld a, $1
ret nc
- ld b, $f9
-.asm_eff4
+ ld b, PARTYMENUTEXT_HEAL_CONFUSION
+.good
xor a
ld [hl], a
ld a, b
ld [PartyMenuActionText], a
- call Functionf030
+ call HealStatus
call Play_SFX_FULL_HEAL
call Functionf279
- call Functionf795
+ call UseDisposableItem
ld a, $0
ret
Functionf009: ; f009 (3:7009)
call Functionf2a6
- jr nc, .asm_f01c
+ jr nc, .nope
ld a, [PlayerSubStatus3]
- bit 7, a
- jr z, .asm_f01c
+ bit SUBSTATUS_CONFUSED, a
+ jr z, .nope
ld a, c
cp $ff
- jr nz, .asm_f01c
+ jr nz, .nope
scf
ret
-.asm_f01c
+.nope
and a
ret
Functionf01e: ; f01e (3:701e)
call Functionf2a6
ret nc
- ld a, PartyMon1HP - PartyMon1
+ ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
ld [BattleMonHP], a
@@ -1550,39 +1550,39 @@ Functionf01e: ; f01e (3:701e)
ld [BattleMonHP + 1], a
ret
-Functionf030: ; f030 (3:7030)
+HealStatus: ; f030 (3:7030)
call Functionf2a6
ret nc
xor a
ld [BattleMonStatus], a
ld hl, PlayerSubStatus5
- res 0, [hl]
+ res SUBSTATUS_TOXIC, [hl]
ld hl, PlayerSubStatus1
- res 0, [hl]
- call Functionf058
+ res SUBSTATUS_NIGHTMARE, [hl]
+ call GetItemHealingAction
ld a, c
- cp $ff
- jr nz, .asm_f04f
+ cp %11111111
+ jr nz, .not_full_heal
ld hl, PlayerSubStatus3
- res 7, [hl]
-.asm_f04f
+ res SUBSTATUS_CONFUSED, [hl]
+.not_full_heal
push bc
- callba Function365d7
+ callba CalcPlayerStats
pop bc
ret
-Functionf058: ; f058 (3:7058)
+GetItemHealingAction: ; f058 (3:7058)
push hl
ld a, [CurItem]
- ld hl, Table_f071
+ ld hl, .healingactions
ld bc, 3
.next
cp [hl]
- jr z, .asm_f068
+ jr z, .found_it
add hl, bc
jr .next
-.asm_f068
+.found_it
inc hl
ld b, [hl]
inc hl
@@ -1593,39 +1593,39 @@ Functionf058: ; f058 (3:7058)
ret
; f071 (3:7071)
-Table_f071: ; f071
+.healingactions: ; f071
; item, party menu action text, status
- db ANTIDOTE, $f0, 1 << PSN
- db BURN_HEAL, $f1, 1 << BRN
- db ICE_HEAL, $f2, 1 << FRZ
- db AWAKENING, $f3, SLP
- db PARLYZ_HEAL, $f4, 1 << PAR
- db FULL_HEAL, $f6, %11111111
- db FULL_RESTORE, $f6, %11111111
- db HEAL_POWDER, $f6, %11111111
- db PSNCUREBERRY, $f0, 1 << PSN
- db PRZCUREBERRY, $f4, 1 << PAR
- db BURNT_BERRY, $f2, 1 << FRZ
- db ICE_BERRY, $f1, 1 << BRN
- db MINT_BERRY, $f3, SLP
- db MIRACLEBERRY, $f6, %11111111
+ 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
Functionf09e: ; f09e (3:709e)
- ld hl, Jumptable_f0a3
+ ld hl, .jumptable
rst JumpTable
ret
-Jumptable_f0a3: ; f0a3 (3:70a3)
+.jumptable: ; f0a3 (3:70a3)
dw Functionf2a2
dw Functionf299
dw Functionf29e
RevivalHerb: ; f0a9
- ld b, $1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionf29e
call Functionf0d6
@@ -1644,8 +1644,8 @@ RevivalHerb: ; f0a9
Revive:
MaxRevive: ; f0c8
- ld b, $1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionf29e
call Functionf0d6
@@ -1673,7 +1673,7 @@ Functionf0d6: ; f0d6
ld a, [CurPartyMon]
ld c, a
- ld hl, wc664
+ ld hl, wBattleParticipantsNotFainted
ld b, SET_FLAG
predef FlagPredef
@@ -1692,18 +1692,18 @@ Functionf0d6: ; f0d6
.asm_f117
call Functionf1db
- ld a, $f7
+ ld a, PARTYMENUTEXT_REVIVE
ld [PartyMenuActionText], a
call Functionf279
- call Functionf795
+ call UseDisposableItem
ld a, 0
ret
; f128
FullRestore: ; f128
- ld b, 1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionf29e
call Functionf30d
@@ -1724,18 +1724,18 @@ Functionf144: ; f144
xor a
ld [Danger], a
call Functionf2c3
- ld a, PartyMon1Status - PartyMon1
+ ld a, MON_STATUS
call GetPartyParamLocation
xor a
ld [hli], a
ld [hl], a
- call Functionf030
+ call HealStatus
call Functionf01e
call Functionf1db
- ld a, $f5
+ ld a, PARTYMENUTEXT_HEAL_HP
ld [PartyMenuActionText], a
call Functionf279
- call Functionf795
+ call UseDisposableItem
ld a, 0
ret
; f16a
@@ -1805,8 +1805,8 @@ Functionf192: ; f192
Functionf1a9: ; f1a9 (3:71a9)
- ld b, 1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
ld a, 2
ret c
@@ -1824,10 +1824,10 @@ Functionf1a9: ; f1a9 (3:71a9)
call Functionf2d1
call Functionf01e
call Functionf1db
- ld a, $f5
+ ld a, PARTYMENUTEXT_HEAL_HP
ld [PartyMenuActionText], a
call Functionf279
- call Functionf795
+ call UseDisposableItem
ld a, 0
ret
@@ -1842,31 +1842,31 @@ Functionf1db: ; f1db (3:71db)
call AddNTimes
ld a, $2
ld [wd10a], a
- predef_jump Functionc6e0
+ predef_jump AnimateHPBar
-Functionf1f9: ; f1f9 (3:71f9)
- call Functionf20b
+UseItem_SelectMon: ; f1f9 (3:71f9)
+ call .SelectMon
ret c
ld a, [CurPartySpecies]
cp EGG
- jr nz, .asm_f209
+ jr nz, .not_egg
call CantUseOnEggMessage
scf
ret
-.asm_f209
+.not_egg
and a
ret
-Functionf20b: ; f20b (3:720b)
+.SelectMon: ; f20b (3:720b)
ld a, b
ld [PartyMenuActionText], a
push hl
push de
push bc
- call WhiteBGMap
+ call ClearBGPalettes
call Functionf21c
pop bc
pop de
@@ -1921,7 +1921,7 @@ Functionf279: ; f279 (3:7279)
ld [hBGMapMode], a
ld c, $32
call DelayFrames
- jp Functiona80
+ jp WaitPressAorB_BlinkCursor
Functionf299: ; f299 (3:7299)
call WontHaveAnyEffectMessage
@@ -1960,7 +1960,7 @@ Functionf2ba: ; f2ba (3:72ba)
Functionf2c3: ; f2c3 (3:72c3)
call Functionf36f
asm_f2c6: ; f2c6 (3:72c6)
- ld a, PartyMon1HP - PartyMon1
+ ld a, MON_HP
call GetPartyParamLocation
ld [hl], d
inc hl
@@ -1968,7 +1968,7 @@ asm_f2c6: ; f2c6 (3:72c6)
jp Functionf328
Functionf2d1: ; f2d1 (3:72d1)
- ld a, PartyMon1HP + 1 - PartyMon1
+ ld a, MON_HP + 1
call GetPartyParamLocation
ld a, [hl]
add e
@@ -1978,11 +1978,11 @@ Functionf2d1: ; f2d1 (3:72d1)
ld [hl], a
jr c, .asm_f2f5
call Functionf328
- ld a, PartyMon1HP + 1 - PartyMon1
+ ld a, MON_HP + 1
call GetPartyParamLocation
ld d, h
ld e, l
- ld a, PartyMon1MaxHP + 1 - PartyMon1
+ ld a, MON_MAXHP + 1
call GetPartyParamLocation
ld a, [de]
sub [hl]
@@ -1997,7 +1997,7 @@ Functionf2d1: ; f2d1 (3:72d1)
ret
Functionf2f9: ; f2f9 (3:72f9)
- ld a, PartyMon1HP + 1 - PartyMon1
+ ld a, MON_HP + 1
call GetPartyParamLocation
ld a, [hl]
sub e
@@ -2035,7 +2035,7 @@ Functionf31b: ; f31b (3:731b)
ret
Functionf328: ; f328 (3:7328)
- ld a, PartyMon1HP - PartyMon1
+ ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
ld [wd1ef], a
@@ -2061,7 +2061,7 @@ Functionf33f: ; f33f
; f348
Functionf348: ; f348 (3:7348)
- ld a, PartyMon1HP - PartyMon1
+ ld a, MON_HP
call GetPartyParamLocation
ld a, [hli]
ld [wd1ed], a
@@ -2078,7 +2078,7 @@ Functionf356: ; f356 (3:7356)
Functionf35f: ; f35f (3:735f)
push hl
- ld a, PartyMon1MaxHP - PartyMon1
+ ld a, MON_MAXHP
call GetPartyParamLocation
ld a, [hli]
ld [Buffer2], a
@@ -2096,7 +2096,7 @@ Functionf36f: ; f36f (3:736f)
Functionf378: ; f378 (3:7378)
push bc
- ld a, PartyMon1MaxHP - PartyMon1
+ ld a, MON_MAXHP
call GetPartyParamLocation
ld a, [hli]
ld [hDividend + 0], a
@@ -2179,7 +2179,7 @@ Functionf3df: ; f3df (3:73df)
call Functionf30d
call Functionf2d1
call Functionf1db
- ld a, $f5
+ ld a, PARTYMENUTEXT_HEAL_HP
call Functionf24a
call JoyWaitAorB
.asm_f413
@@ -2189,35 +2189,38 @@ Functionf3df: ; f3df (3:73df)
ret
Functionf419: ; f419 (3:7419)
+.loop
push bc
- ld a, $1
+ ld a, PARTYMENUACTION_HEALING_ITEM
ld [PartyMenuActionText], a
call Functionf21c
pop bc
- jr c, .asm_f43e
+ jr c, .set_carry
ld a, [wd0d8]
dec a
ld c, a
ld a, b
cp c
- jr z, .asm_f440
+ jr z, .loopback
ld a, c
ld [CurPartyMon], a
call Functionf30d
- jr z, .asm_f440
+ jr z, .loopback
call Functionf31b
- jr nc, .asm_f440
+ jr nc, .loopback
xor a
ret
-.asm_f43e
+
+.set_carry
scf
ret
-.asm_f440
+
+.loopback
push bc
ld hl, UnknownText_0xf44a
call MenuTextBoxBackup
pop bc
- jr Functionf419
+ jr .loop
; f44a (3:744a)
UnknownText_0xf44a: ; 0xf44a
@@ -2234,7 +2237,7 @@ EscapeRope: ; f44f
ld a, [wd0ec]
cp 1
- call z, Functionf795
+ call z, UseDisposableItem
ret
; f462
@@ -2285,7 +2288,7 @@ PokeDoll: ; f48f
dec a
jr nz, .asm_f4a6
inc a
- ld [wd232], a
+ ld [wForcedSwitch], a
ld a, [wBattleResult]
and 3 << 6
or $2
@@ -2301,18 +2304,18 @@ PokeDoll: ; f48f
GuardSpec: ; f4ab
ld hl, PlayerSubStatus4
- bit 1, [hl]
+ bit SUBSTATUS_MIST, [hl]
jp nz, WontHaveAnyEffect_NotUsedMessage
- set 1, [hl]
+ set SUBSTATUS_MIST, [hl]
jp Functionf789
; f4b8
DireHit: ; f4b8
ld hl, PlayerSubStatus4
- bit 2, [hl]
+ bit SUBSTATUS_FOCUS_ENERGY, [hl]
jp nz, WontHaveAnyEffect_NotUsedMessage
- set 2, [hl]
+ set SUBSTATUS_FOCUS_ENERGY, [hl]
jp Functionf789
; f4c5
@@ -2324,17 +2327,17 @@ XSpecial: ; f4c5
call Functionf789
ld a, [CurItem]
- ld hl, Tablef504
+ ld hl, .x_item_table
-.asm_f4ce
+.loop
cp [hl]
- jr z, .asm_f4d5
+ jr z, .got_it
rept 2
inc hl
endr
- jr .asm_f4ce
+ jr .loop
-.asm_f4d5
+.got_it
inc hl
ld b, [hl]
xor a
@@ -2344,8 +2347,8 @@ endr
callba CheckIfStatCanBeRaised
call WaitSFX
- callba BattleCommand8c
- callba BattleCommand8e
+ callba BattleCommand_StatUpMessage
+ callba BattleCommand_StatUpFailText
ld a, [CurBattleMon]
ld [CurPartyMon], a
@@ -2354,7 +2357,7 @@ endr
ret
; f504
-Tablef504: ; f504
+.x_item_table: ; f504
db X_ATTACK, ATTACK
db X_DEFEND, DEFENSE
db X_SPEED, SPEED
@@ -2369,7 +2372,7 @@ PokeFlute: ; f50c
.asm_f512
xor a
- ld [MiscBuffer2], a
+ ld [wd002], a
ld b, $ff ^ SLP
@@ -2392,7 +2395,7 @@ PokeFlute: ; f50c
and b
ld [hl], a
- ld a, [MiscBuffer2]
+ ld a, [wd002]
and a
ld hl, UnknownText_0xf56c
jp z, PrintText
@@ -2408,7 +2411,7 @@ PokeFlute: ; f50c
.Functionf554
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
ld c, PARTY_LENGTH
.loop
@@ -2417,7 +2420,7 @@ PokeFlute: ; f50c
and SLP
jr z, .asm_f564
ld a, 1
- ld [MiscBuffer2], a
+ ld [wd002], a
.asm_f564
pop af
and b
@@ -2518,23 +2521,23 @@ MaxEther:
Elixer:
Mysteryberry: ; f5bf
ld a, [CurItem]
- ld [MiscBuffer2], a
+ ld [wd002], a
.loop
; Party Screen opens to choose on which Pkmn to use the Item
- ld b, $1
- call Functionf1f9
+ ld b, PARTYMENUACTION_HEALING_ITEM
+ call UseItem_SelectMon
jp c, Functionf6e0
.loop2
- ld a, [MiscBuffer2]
+ ld a, [wd002]
cp MAX_ELIXER
jp z, Elixer_RestorePPofAllMoves
cp ELIXER
jp z, Elixer_RestorePPofAllMoves
ld hl, TextJump_RaiseThePPOfWhichMove
- ld a, [MiscBuffer2]
+ ld a, [wd002]
cp PP_UP
jr z, .ppup
ld hl, TextJump_RestoreThePPOfWhichMove
@@ -2555,7 +2558,7 @@ Mysteryberry: ; f5bf
ld [CurMoveNum], a
jr nz, .loop
ld hl, PartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call GetMthMoveOfNthPartymon
push hl
@@ -2565,7 +2568,7 @@ Mysteryberry: ; f5bf
call CopyName1
pop hl
- ld a, [MiscBuffer2]
+ ld a, [wd002]
cp PP_UP
jp nz, Functionf6a7
@@ -2599,7 +2602,7 @@ Mysteryberry: ; f5bf
Functionf64c: ; f64c
call ClearPalettes
- jp Functionf795
+ jp UseDisposableItem
; f652
Functionf652: ; f652
@@ -2612,7 +2615,7 @@ Functionf652: ; f652
cp b
jr nz, .asm_f66c
ld a, [PlayerSubStatus5]
- bit 3, a
+ bit SUBSTATUS_TRANSFORMED, a
jr nz, .asm_f66c
call .asm_f677
@@ -2625,7 +2628,7 @@ Functionf652: ; f652
.asm_f677
ld a, [CurPartyMon]
ld hl, PartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld de, BattleMonMoves
ld b, NUM_MOVES
@@ -2641,7 +2644,7 @@ Functionf652: ; f652
rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves
inc de
endr
- ld bc, PartyMon1PP - PartyMon1Moves
+ ld bc, MON_PP - MON_MOVES
add hl, bc
ld a, [hl]
ld [de], a
@@ -2667,14 +2670,14 @@ Functionf6a7: ; f6a7
Elixer_RestorePPofAllMoves: ; f6af
xor a
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld [hli], a
ld [hl], a
ld b, NUM_MOVES
.moveLoop
push bc
ld hl, PartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call GetMthMoveOfNthPartymon
ld a, [hl]
and a
@@ -2686,7 +2689,7 @@ Elixer_RestorePPofAllMoves: ; f6af
inc [hl]
.cant_restore_pp
- ld hl, wcfa9
+ ld hl, MenuSelection2
inc [hl]
pop bc
dec b
@@ -2708,9 +2711,9 @@ Functionf6e0: ; f6e0
RestorePP: ; f6e8
xor a ; PARTYMON
ld [MonType], a
- call Functionf8ec
+ call GetMaxPPOfMove
ld hl, PartyMon1PP
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call GetMthMoveOfNthPartymon
ld a, [wd265]
ld b, a
@@ -2719,7 +2722,7 @@ RestorePP: ; f6e8
cp b
jr nc, .dont_restore
- ld a, [MiscBuffer2]
+ ld a, [wd002]
cp MAX_ELIXER
jr z, .restore_all
cp MAX_ETHER
@@ -2805,7 +2808,7 @@ SacredAsh: ; f753
ld a, [wd0ec]
cp $1
ret nz
- call Functionf795
+ call UseDisposableItem
ret
; f763
@@ -2825,7 +2828,7 @@ Function_0xf769: ; f769
ld hl, UnknownText_0xf778
call PrintText
- jp Functionf795
+ jp UseDisposableItem
; f778
UnknownText_0xf778: ; 0xf778
@@ -2940,18 +2943,18 @@ Functionf789: ; f789
ld hl, UsedItemText
call PrintText
call Play_SFX_FULL_HEAL
- call Functiona80
+ call WaitPressAorB_BlinkCursor
; fallthrough
; f795
-Functionf795: ; f795
+UseDisposableItem: ; f795
ld hl, NumItems
ld a, 1
ld [wItemQuantityChangeBuffer], a
jp TossItem
; f7a0
-Functionf7a0: ; f7a0
+UseBallInTrainerBattle: ; f7a0
call Functionedfa
ld de, ANIM_THROW_POKE_BALL
ld a, e
@@ -2959,7 +2962,7 @@ Functionf7a0: ; f7a0
ld a, d
ld [FXAnimIDHi], a
xor a
- ld [wc689], a
+ ld [wKickCounter], a
ld [hBattleTurn], a
ld [wcfca], a
predef PlayBattleAnim
@@ -2967,7 +2970,7 @@ Functionf7a0: ; f7a0
call PrintText
ld hl, DontBeAThiefText
call PrintText
- jr Functionf795
+ jr UseDisposableItem
; f7ca
WontHaveAnyEffect_NotUsedMessage: ; f7ca
@@ -3105,13 +3108,13 @@ GotOffTheItemText: ; 0xf847
Functionf84c: ; f84c
- ld a, PartyMon1Moves - PartyMon1
+ ld a, MON_MOVES
call GetPartyParamLocation
push hl
ld de, Buffer1
predef FillPP
pop hl
- ld bc, PartyMon1PP - PartyMon1Moves
+ ld bc, MON_PP - MON_MOVES
add hl, bc
ld de, Buffer1
ld b, 0
@@ -3123,7 +3126,7 @@ Functionf84c: ; f84c
ld a, [wd265]
dec a
jr nz, .asm_f876
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
inc a
cp b
jr nz, .asm_f87d
@@ -3193,14 +3196,14 @@ ComputeMaxPP: ; f881
; f8b9
Functionf8b9: ; f8b9
- ld a, PartyMon1PP - PartyMon1
+ ld a, MON_PP
call GetPartyParamLocation
push hl
- ld a, PartyMon1Moves - PartyMon1
+ ld a, MON_MOVES
call GetPartyParamLocation
pop de
xor a ; PARTYMON
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld [MonType], a
ld c, NUM_MOVES
.loop
@@ -3210,7 +3213,7 @@ Functionf8b9: ; f8b9
push hl
push de
push bc
- call Functionf8ec
+ call GetMaxPPOfMove
pop bc
pop de
ld a, [de]
@@ -3220,7 +3223,7 @@ Functionf8b9: ; f8b9
add b
ld [de], a
inc de
- ld hl, wcfa9
+ ld hl, MenuSelection2
inc [hl]
pop hl
dec c
@@ -3229,7 +3232,7 @@ Functionf8b9: ; f8b9
; f8ec
-Functionf8ec: ; f8ec
+GetMaxPPOfMove: ; f8ec
ld a, [StringBuffer1 + 0]
push af
ld a, [StringBuffer1 + 1]
@@ -3239,7 +3242,7 @@ Functionf8ec: ; f8ec
and a
ld hl, PartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
jr z, .got_partymon ; PARTYMON
ld hl, OTPartyMon1Moves
@@ -3279,7 +3282,7 @@ Functionf8ec: ; f8ec
pop hl
push bc
- ld bc, PartyMon1PP - PartyMon1Moves
+ ld bc, MON_PP - MON_MOVES
ld a, [MonType]
cp WILDMON
jr nz, .notwild
@@ -3313,7 +3316,7 @@ GetMthMoveOfNthPartymon: ; f963
call AddNTimes
GetMthMoveOfCurrentMon: ; f969
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld c, a
ld b, 0
add hl, bc
diff --git a/lib/mobile/main.asm b/lib/mobile/main.asm
index 8e53a4cb6..c41b25d36 100644
--- a/lib/mobile/main.asm
+++ b/lib/mobile/main.asm
@@ -3487,7 +3487,7 @@ Function111664: ; 111664 (44:5664)
Function111686: ; 111686 (44:5686)
xor a
- ld [rTAC], a ; $ff00+$7
+ ld [rTAC], a
ld c, $ff
ld a, [$ff00+c]
and $f3
@@ -3552,7 +3552,7 @@ Function1116c5:: ; 1116c5 (44:56c5)
jp nz, Function1118bc
ld hl, $c808
add hl, de
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
ld [hl], a
ld a, $8
cp l
@@ -3724,7 +3724,7 @@ Function1117e7: ; 1117e7 (44:57e7)
.asm_111803
ld b, $66
.asm_111805
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
cp b
jr z, .asm_111840
cp $d2
@@ -3791,7 +3791,7 @@ Function11186e: ; 11186e (44:586e)
jr nz, Function1118bc
xor a
ld [hli], a
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
ld [$c80c], a
inc [hl]
or a
@@ -3810,7 +3810,7 @@ Function111884: ; 111884 (44:5884)
jr Function1118bc
Function111892: ; 111892 (44:5892)
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
ld c, a
call Function111664
ld hl, $c80a
@@ -3842,7 +3842,7 @@ Function1118bc: ; 1118bc (44:58bc)
ret
Function1118c2: ; 1118c2 (44:58c2)
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
ld c, a
ld b, $0
ld hl, $c812
@@ -4042,7 +4042,7 @@ asm_111a40: ; 111a40 (44:5a40)
ld a, $4b
Function111a42: ; 111a42 (44:5a42)
- ld [rSB], a ; $ff00+$1
+ ld [rSB], a
jp Function111b2e
asm_111a47: ; 111a47 (44:5a47)
ld hl, $c815
@@ -4170,7 +4170,7 @@ Function111b21: ; 111b21 (44:5b21)
ld e, a
ld d, [hl]
ld a, [de]
- ld [rSB], a ; $ff00+$1
+ ld [rSB], a
inc de
ld a, d
ld [hld], a
@@ -4180,9 +4180,9 @@ Function111b2e: ; 111b2e (44:5b2e)
ld hl, $c822
set 1, [hl]
ld a, $3
- ld [rSC], a ; $ff00+$2
+ ld [rSC], a
ld a, $83
- ld [rSC], a ; $ff00+$2
+ ld [rSC], a
Function111b3b: ; 111b3b (44:5b3b)
ret
@@ -4765,7 +4765,7 @@ Function111f07: ; 111f07 (44:5f07)
scf
ret
.asm_111f17
- ld a, [rSC] ; $ff00+$2
+ ld a, [rSC]
and $80
jr nz, .asm_111f17
di
diff --git a/macros.asm b/macros.asm
index 68436697f..1d23392fa 100644
--- a/macros.asm
+++ b/macros.asm
@@ -175,4 +175,39 @@ bcd: MACRO
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"
diff --git a/macros/charmap.asm b/macros/charmap.asm
index 93710003a..73446d8e7 100644
--- a/macros/charmap.asm
+++ b/macros/charmap.asm
@@ -2,11 +2,14 @@
charmap "<START>", $00
charmap "<PLAY_G>", $14 ; <PLAYER> + gender
charmap "<DAY>", $15
+ charmap "¯", $1f
charmap "<LNBRK>", $22
charmap "<POKE>", $24
+ charmap "%", $25
charmap "<RED>", $38
charmap "<GREEN>", $39
charmap "<ENEMY>", $3f
+ charmap "<SHINY>", $3f
charmap "<MOM>", $49
charmap "<PKMN>", $4a
charmap "<NEXT>", $4e
@@ -30,12 +33,18 @@
charmap "<DEXEND>", $5f
; Actual characters
+ charmap "▲", $61
+ charmap "_", $62
charmap "′", $6e
charmap "<LV>", $6e
charmap "″", $6f
charmap "<PO>", $70
charmap "<KE>", $71
+ charmap "◀", $71
+ charmap "<``>", $72
+ charmap "<''>", $73
+ charmap "<ID>", $73
charmap "№", $74
charmap "…", $75
@@ -123,6 +132,7 @@
charmap "'t", $d5
charmap "'v", $d6
+ charmap "←", $df
charmap "'", $e0
charmap "<PK>", $e1
charmap "<MN>", $e2
diff --git a/macros/event.asm b/macros/event.asm
index 22652abbd..c51f798c5 100644
--- a/macros/event.asm
+++ b/macros/event.asm
@@ -206,14 +206,22 @@ writecode: macro
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
@@ -986,7 +994,11 @@ checkphonecall: macro
verbosegiveitem: macro
db verbosegiveitem_command
db \1 ; item
+if _NARG == 2
db \2 ; quantity
+else
+ db 1
+endc
endm
enum verbosegiveitem2_command
@@ -1022,9 +1034,9 @@ warpfacing: macro
db \4 ; y
endm
- enum storetext_command
-storetext: macro
- db storetext_command
+ enum battletowertext_command
+battletowertext: macro
+ db battletowertext_command
db \1 ; memory
endm
diff --git a/macros/move_anim.asm b/macros/move_anim.asm
index f14fea7b7..e8f918a29 100644
--- a/macros/move_anim.asm
+++ b/macros/move_anim.asm
@@ -5,42 +5,50 @@ endc
db \1
endm
+ enum_start $d0
+
+ enum anim_obj_command ; d0
anim_obj: macro
- db $d0
+ db anim_obj_command
db \1 ; obj
db \2 ; x
db \3 ; y
db \4 ; param
endm
+ enum anim_1gfx_command ; d1
anim_1gfx: macro
- db $d1
+ db anim_1gfx_command
db \1 ; gfx1
endm
+ enum anim_2gfx_command ; d2
anim_2gfx: macro
- db $d2
+ db anim_2gfx_command
db \1 ; gfx1
db \2 ; gfx2
endm
+ enum anim_3gfx_command ; d3
anim_3gfx: macro
- db $d3
+ db anim_3gfx_command
db \1 ; gfx1
db \2 ; gfx2
db \3 ; gfx3
endm
+ enum anim_4gfx_command ; d4
anim_4gfx: macro
- db $d4
+ 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 $d5
+ db anim_5gfx_command
db \1 ; gfx1
db \2 ; gfx2
db \3 ; gfx3
@@ -48,196 +56,238 @@ anim_5gfx: macro
db \5 ; gfx5
endm
+ enum anim_incobj_command ; d6
anim_incobj: macro
- db $d6
+ db anim_incobj_command
db \1 ; id
endm
+ enum anim_setobj_command ; d7
anim_setobj: macro
- db $d7
+ db anim_setobj_command
db \1 ; id
db \2 ; obj
endm
+ enum anim_incbgeffect_command ; d8
anim_incbgeffect: macro
- db $d8
+ db anim_incbgeffect_command
db \1 ; effect
endm
+ enum anim_enemyfeetobj_command ; d9
anim_enemyfeetobj: macro
- db $d9
+ db anim_enemyfeetobj_command
endm
+ enum anim_playerheadobj_command ; da
anim_playerheadobj: macro
- db $da
+ db anim_playerheadobj_command
endm
+ enum anim_checkpokeball_command ; db
anim_checkpokeball: macro
- db $db
+ db anim_checkpokeball_command
endm
+ enum anim_transform_command ; dc
anim_transform: macro
- db $dc
+ db anim_transform_command
endm
+ enum anim_raisesub_command ; dd
anim_raisesub: macro
- db $dd
+ db anim_raisesub_command
endm
+ enum anim_dropsub_command ; de
anim_dropsub: macro
- db $de
+ db anim_dropsub_command
endm
+ enum anim_resetobp0_command ; df
anim_resetobp0: macro
- db $df
+ db anim_resetobp0_command
endm
+ enum anim_sound_command ; e0
anim_sound: macro
- db $e0
+ db anim_sound_command
db \1 ; tracks
db \2 ; id
endm
+ enum anim_cry_command ; e1
anim_cry: macro
- db $e1
+ db anim_cry_command
db \1 ; pitch
endm
+ enum anim_minimizeopp_command ; e2
anim_minimizeopp: macro
- db $e2
+ db anim_minimizeopp_command
endm
+ enum anim_oamon_command ; e3
anim_oamon: macro
- db $e3
+ db anim_oamon_command
endm
+ enum anim_oamoff_command ; e4
anim_oamoff: macro
- db $e4
+ db anim_oamoff_command
endm
+ enum anim_clearobjs_command ; e5
anim_clearobjs: macro
- db $e5
+ db anim_clearobjs_command
endm
+ enum anim_beatup_command ; e6
anim_beatup: macro
- db $e6
+ db anim_beatup_command
endm
+ enum anim_0xe7_command ; e7
anim_0xe7: macro
- db $e7
+ db anim_0xe7_command
endm
+ enum anim_updateactorpic_command ; e8
anim_updateactorpic: macro
- db $e8
+ db anim_updateactorpic_command
endm
+ enum anim_minimize_command ; e9
anim_minimize: macro
- db $e9
+ db anim_minimize_command
endm
+ enum anim_0xea_command ; ea
anim_0xea: macro
- db $ea
+ db anim_0xea_command
endm
+ enum anim_0xeb_command ; eb
anim_0xeb: macro
- db $eb
+ db anim_0xeb_command
endm
+ enum anim_0xec_command ; ec
anim_0xec: macro
- db $ec
+ db anim_0xec_command
endm
+ enum anim_0xed_command ; ed
anim_0xed: macro
- db $ed
+ db anim_0xed_command
endm
+ enum anim_jumpand_command ; ee
anim_jumpand: macro
- db $ee
+ db anim_jumpand_command
db \1 ; value
dw \2 ; address
endm
+ enum anim_jumpuntil_command ; ef
anim_jumpuntil: macro
- db $ef
+ db anim_jumpuntil_command
dw \1 ; address
endm
+ enum anim_bgeffect_command ; f0
anim_bgeffect: macro
- db $f0
+ 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 $f1
+ db anim_bgp_command
db \1 ; colors
endm
+ enum anim_obp0_command ; f2
anim_obp0: macro
- db $f2
+ db anim_obp0_command
db \1 ; colors
endm
+ enum anim_obp1_command ; f3
anim_obp1: macro
- db $f3
+ db anim_obp1_command
db \1 ; colors
endm
+ enum anim_clearsprites_command ; f4
anim_clearsprites: macro
- db $f4
+ db anim_clearsprites_command
endm
+ enum anim_0xf5_command ; f5
anim_0xf5: macro
- db $f5
+ db anim_0xf5_command
endm
+ enum anim_0xf6_command ; f6
anim_0xf6: macro
- db $f6
+ db anim_0xf6_command
endm
+ enum anim_0xf7_command ; f7
anim_0xf7: macro
- db $f7
+ db anim_0xf7_command
endm
+ enum anim_jumpif_command ; f8
anim_jumpif: macro
- db $f8
+ db anim_jumpif_command
db \1 ; value
dw \2 ; address
endm
+ enum anim_setvar_command ; f9
anim_setvar: macro
- db $f9
+ db anim_setvar_command
db \1 ; value
endm
+ enum anim_incvar_command ; fa
anim_incvar: macro
- db $fa
+ db anim_incvar_command
endm
+ enum anim_jumpvar_command ; fb
anim_jumpvar: macro
- db $fb
+ db anim_jumpvar_command
db \1 ; value
dw \2 ; address
endm
+ enum anim_jump_command ; fc
anim_jump: macro
- db $fc
+ db anim_jump_command
dw \1 ; address
endm
+ enum anim_loop_command ; fd
anim_loop: macro
- db $fd
+ db anim_loop_command
db \1 ; count
dw \2 ; address
endm
+ enum anim_call_command ; fe
anim_call: macro
- db $fe
+ db anim_call_command
dw \1 ; address
endm
+ enum anim_ret_command ; ff
anim_ret: macro
- db $ff
+ db anim_ret_command
endm
diff --git a/macros/move_effect.asm b/macros/move_effect.asm
index 6cca15b2d..d25db45bd 100644
--- a/macros/move_effect.asm
+++ b/macros/move_effect.asm
@@ -14,10 +14,10 @@ endm
command stab
command damagevariation
command checkhit
- command effect0x0a
- command effect0x0b
- command effect0x0c
- command resulttext
+ command lowersub
+ command hittargetnosub
+ command raisesub
+ command failuretext
command checkfaint
command criticaltext
command supereffectivetext
@@ -144,13 +144,13 @@ endm
command specialdefensedown2
command accuracydown2
command evasiondown2
- command statmessageuser
- command statmessagetarget
+ command statupmessage
+ command statdownmessage
command statupfailtext
command statdownfailtext
command effectchance
- command effect0x91
- command effect0x92
+ command statdownanim
+ command statupanim
command switchturn
command fakeout
command bellydrum
@@ -167,11 +167,11 @@ endm
command teleport
command beatup
command ragedamage
- command effect0xa3
+ command resettypematchup
command allstatsup
command effect0xa5
- command effect0xa6
- command effect0xa7
+ command raisesubnoanim
+ command lowersubnoanim
command effect0xa8
command clearmissdamage
command movedelay
diff --git a/macros/movement.asm b/macros/movement.asm
index d0b97fb8c..2b5720832 100644
--- a/macros/movement.asm
+++ b/macros/movement.asm
@@ -303,16 +303,44 @@ hide_person: macro
db movement_hide_person ; $3d
endm
- enum movement_show_person
-show_person: macro
- db movement_show_person ; $3e
+ enum movement_step_sleep_1
+step_sleep_1: macro
+ db movement_step_sleep_1 ; $3e
endm
-__enum__ = $45
+ enum movement_step_sleep_2
+step_sleep_2: macro
+ db movement_step_sleep_2 ; $3f
+ endm
+
+ enum movement_step_sleep_3
+step_sleep_3: macro
+ db movement_step_sleep_3 ; $40
+ endm
+
+ enum movement_step_sleep_4
+step_sleep_4: macro
+ db movement_step_sleep_4 ; $41
+ endm
+
+ enum movement_step_sleep_5
+step_sleep_5: macro
+ db movement_step_sleep_5 ; $42
+ endm
- enum movement_accelerate_last
-accelerate_last: macro
- db movement_accelerate_last ; $45
+ enum movement_step_sleep_6
+step_sleep_6: macro
+ db movement_step_sleep_6 ; $43
+ endm
+
+ enum movement_step_sleep_7
+step_sleep_7: macro
+ db movement_step_sleep_7 ; $44
+ endm
+
+ enum movement_step_sleep_8
+step_sleep_8: macro
+ db movement_step_sleep_8 ; $45
endm
enum movement_step_sleep
@@ -333,6 +361,11 @@ remove_person: macro
db movement_remove_person ; $49
endm
+ enum movement_step_loop
+step_loop: macro
+ db movement_step_loop ; $4a
+ endm
+
__enum__ = $4c
enum movement_teleport_from
@@ -362,9 +395,9 @@ fish_got_bite: macro
db movement_fish_got_bite ; $51
endm
- enum movement_fish_got_bite_2
-fish_got_bite_2: macro
- db movement_fish_got_bite_2 ; $52
+ enum movement_fish_cast_rod
+fish_cast_rod: macro
+ db movement_fish_cast_rod ; $52
endm
enum movement_hide_emote
diff --git a/macros/text.asm b/macros/text.asm
index d8b6fc717..6af4d109b 100644
--- a/macros/text.asm
+++ b/macros/text.asm
@@ -11,7 +11,6 @@ prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some oth
page EQUS "db $50," ; Start a new Pokedex page.
dex EQUS "db $e8, $50" ; End a Pokedex entry.
-
; TX_RAM EQU $01
; TX_FAR EQU $16
enum_start 1
diff --git a/main.asm b/main.asm
index 1dc2a87b8..afb94d1ff 100644
--- a/main.asm
+++ b/main.asm
@@ -75,7 +75,7 @@ Function5ae8: ; 5ae8
ret
; 5b05
-Function5b05: ; 5b05
+PrintDayOfWeek: ; 5b05
push de
ld hl, .Days
ld a, b
@@ -105,12 +105,12 @@ Function5b05: ; 5b05
db "DAY@"
; 5b44
-Function5b44: ; 5b44
+NewGame_ClearTileMapEtc: ; 5b44
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
call ClearTileMap
- call Functione5f
- call Functione51
+ call LoadFontsExtra
+ call LoadStandardFont
call ResetTextRelatedRAM
ret
; 5b54
@@ -131,17 +131,17 @@ NewGame: ; 5b6b
xor a
ld [wc2cc], a
call ResetWRAM
- call Function5b44
+ call NewGame_ClearTileMapEtc
call AreYouABoyOrAreYouAGirl
call OakSpeech
call InitializeWorld
ld a, 1
- ld [wc2d8], a
+ ld [wPreviousLandmark], a
ld a, SPAWN_HOME
- ld [wd001], a
+ ld [DefaultSpawnpoint], a
- ld a, $f1
+ ld a, MAPSETUP_WARP
ld [hMapEntryMethod], a
jp FinishContinueFunction
; 5b8f
@@ -283,11 +283,11 @@ ENDC
call InitializeNPCNames
- callba Function26751
+ callba InitDecorations
- callba Function44765
+ callba DeleteScratchmons
- callba Function1061c0
+ callba DeleteMobileEventIndex
call ResetGameTime
ret
@@ -415,7 +415,7 @@ Continue: ; 5d65
callba TryLoadSaveFile
jr c, .FailToLoad
callba Function150b9
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function5e85
ld a, $1
ld [hBGMapMode], a
@@ -439,7 +439,7 @@ Continue: ; 5d65
ld [MusicFadeIDLo], a
ld a, MUSIC_NONE / $100
ld [MusicFadeIDHi], a
- call WhiteBGMap
+ call ClearBGPalettes
call Function5df0
call WriteBackup
call ClearTileMap
@@ -447,11 +447,11 @@ Continue: ; 5d65
call DelayFrames
callba JumpRoamMons
callba Function105091
- callba Function140ae
+ callba Function140ae ; time-related
ld a, [wSpawnAfterChampion]
cp SPAWN_LANCE
jr z, .SpawnAfterE4
- ld a, $f2
+ ld a, MAPSETUP_CONTINUE
ld [hMapEntryMethod], a
jp FinishContinueFunction
@@ -473,7 +473,7 @@ SpawnAfterRed: ; 5de2
PostCreditsSpawn: ; 5de7
xor a
ld [wSpawnAfterChampion], a
- ld a, $f1
+ ld a, MAPSETUP_WARP
ld [hMapEntryMethod], a
ret
; 5df0
@@ -524,9 +524,9 @@ ConfirmContinue: ; 5e34
Function5e48: ; 5e48
call Function6e3
- and $80
+ and %10000000 ; Day count exceeded 16383
jr z, .pass
- callba Function20021
+ callba RestartClock
ld a, c
and a
jr z, .pass
@@ -546,7 +546,7 @@ FinishContinueFunction: ; 5e5d
ld hl, GameTimerPause
set 0, [hl]
res 7, [hl]
- ld hl, wd83e
+ ld hl, wEnteredMapFromContinue
set 1, [hl]
callba OverworldLoop
ld a, [wSpawnAfterChampion]
@@ -563,7 +563,7 @@ Function5e85: ; 5e85
call Function6e3
and $80
jr z, .asm_5e93
- ld de, $0408
+ lb de, 4, 8
call Function5eaf
ret
@@ -582,7 +582,7 @@ Function5e9f: ; 5e9f
call Function5ebf
call Function5f1c
call Function5f40
- call Functione5f
+ call LoadFontsExtra
call UpdateSprites
ret
; 5eaf
@@ -591,7 +591,7 @@ Function5eaf: ; 5eaf
call Function5ebf
call Function5f1c
call Function5f48
- call Functione5f
+ call LoadFontsExtra
call UpdateSprites
ret
; 5ebf
@@ -607,7 +607,7 @@ Function5ebf: ; 5ebf
.asm_5ecf
call Function1e35
- call Function1cbb
+ call MenuBox
call Function1c89
ret
; 5ed9
@@ -648,19 +648,19 @@ MenuData2_0x5f03: ; 5f03
Function5f1c: ; 5f1c
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
push hl
- ld de, $005d
+ ld de, $5d
add hl, de
call DisplayBadgeCount
pop hl
push hl
- ld de, $0084
+ ld de, $84
add hl, de
call DisplayPokedexNumCaught
pop hl
push hl
- ld de, $0030
+ ld de, $30
add hl, de
ld de, .Player
call PlaceString
@@ -672,14 +672,14 @@ Function5f1c: ; 5f1c
; 5f40
Function5f40: ; 5f40
- ld de, $00a9
+ ld de, $a9
add hl, de
call DisplayGameTime
ret
; 5f48
Function5f48: ; 5f48
- ld de, $00a9
+ ld de, $a9
add hl, de
ld de, .text_5f53
call PlaceString
@@ -740,7 +740,7 @@ OakSpeech: ; 0x5f99
ld [CurPartySpecies], a
ld a, POKEMON_PROF
ld [TrainerClass], a
- call Function619c
+ call Intro_PrepTrainerPic
ld b, $1c
call GetSGBLayout
@@ -757,7 +757,7 @@ OakSpeech: ; 0x5f99
call GetBaseData
hlcoord 6, 4
- call Function3786
+ call PrepMonFrontpic
xor a
ld [TempMonDVs], a
@@ -778,7 +778,7 @@ OakSpeech: ; 0x5f99
ld [CurPartySpecies], a
ld a, POKEMON_PROF
ld [TrainerClass], a
- call Function619c
+ call Intro_PrepTrainerPic
ld b, $1c
call GetSGBLayout
@@ -811,10 +811,10 @@ OakText1: ; 0x6045
OakText2: ; 0x604a
text_jump _OakText2
start_asm
- ld a,WOOPER
+ ld a, WOOPER
call PlayCry
call WaitSFX
- ld hl,OakText3
+ ld hl, OakText3
ret
OakText3: ; 0x605b
@@ -840,7 +840,7 @@ OakText7: ; 0x606f
NamePlayer: ; 0x6074
callba MovePlayerPicRight
callba ShowPlayerNamingChoices
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
jr z, .NewName
call StorePlayerName
@@ -851,12 +851,12 @@ NamePlayer: ; 0x6074
.NewName
ld b, 1
ld de, PlayerName
- callba Function116c1
+ callba NamingScreen
call FadeToWhite
call ClearTileMap
- call Functione5f
+ call LoadFontsExtra
call WaitBGMap
xor a
@@ -886,9 +886,9 @@ NamePlayer: ; 0x6074
Function60e9: ; Unreferenced
call LoadMenuDataHeader
call InterpretMenu2
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
- call Function1db8
+ call CopyNameFromMenu
call WriteBackup
ret
; 60fa
@@ -948,7 +948,7 @@ ShrinkPlayer: ; 610f
call DelayFrames
call Intro_PlacePlayerSprite
- call Functione5f
+ call LoadFontsExtra
ld c, 50
call DelayFrames
@@ -997,11 +997,11 @@ Intro_WipeInFrontpic: ; 6182
jr .loop
; 619c
-Function619c: ; 619c
+Intro_PrepTrainerPic: ; 619c
ld de, VTiles2
callba GetTrainerPic
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 4
lb bc, 7, 7
predef FillBox
@@ -1013,7 +1013,7 @@ ShrinkFrame: ; 61b4
ld c, $31
predef DecompressPredef
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 4
lb bc, 7, 7
predef FillBox
@@ -1077,6 +1077,7 @@ Function6219: ; 6219
push af
ld a, $5
ld [rSVBK], a
+
call TitleScreen
call DelayFrame
.loop
@@ -1084,9 +1085,11 @@ Function6219: ; 6219
jr nc, .loop
call ClearSprites
- call WhiteBGMap
+ call ClearBGPalettes
+
pop af
ld [rSVBK], a
+
ld hl, rLCDC
res 2, [hl]
call ClearScreen
@@ -1149,7 +1152,7 @@ Function627b: ; 627b
; 6292
Function6292: ; 6292 ; unreferenced
- ld a, [$ff9b]
+ ld a, [hVBlankCounter]
and $7
ret nz
ld hl, LYOverrides + $5f
@@ -1390,7 +1393,7 @@ Function639b: ; unreferenced
and $3
ret nz
ld bc, wc3a4
- ld hl, $000a
+ ld hl, $a
add hl, bc ; over-the-top compicated way to load wc3ae into hl
ld l, [hl]
ld h, 0
@@ -1431,7 +1434,7 @@ Data63ca: ; 63ca
Copyright: ; 63e2
call ClearTileMap
- call Functione5f
+ call LoadFontsExtra
ld de, CopyrightGFX
ld hl, VTiles2 tile $60
lb bc, BANK(CopyrightGFX), $1d
@@ -1464,7 +1467,7 @@ CopyrightString: ; 63fd
GameInit:: ; 642e
callba Function14f1c
call ResetTextRelatedRAM
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
@@ -1507,7 +1510,7 @@ Function6473: ; 6473
ld [hBGMapMode], a
ld a, $90
ld [hWY], a
- call Function2173
+ call OverworldTextModeSwitch
ld a, VBGMap1 / $100
call Function64b9
call Function2e20
@@ -1553,11 +1556,11 @@ Function64bf:: ; 64bf
; 64cd
Function64cd: ; 64cd
- call Functione5f
+ call LoadFontsExtra
ld a, $90
ld [hWY], a
call Function2e31
- call Functione51
+ call LoadStandardFont
ret
; 64db
@@ -1566,9 +1569,10 @@ Function64db: ; 64db
push af
ld a, $6
ld [rSVBK], a
+
ld a, $60
ld hl, w6_d000
- ld bc, $400
+ lb bc, 4, 0
call ByteFill
ld a, w6_d000 / $100
ld [rHDMA1], a
@@ -1581,6 +1585,7 @@ Function64db: ; 64db
ld a, $3f
ld [hDMATransfer], a
call DelayFrame
+
pop af
ld [rSVBK], a
ret
@@ -1598,7 +1603,7 @@ LearnMove: ; 6508
.loop
ld hl, PartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld d, h
@@ -1642,7 +1647,7 @@ LearnMove: ; 6508
.learn
ld a, [wd262]
ld [hl], a
- ld bc, PartyMon1PP - PartyMon1Moves
+ ld bc, MON_PP - MON_MOVES
add hl, bc
push hl
@@ -1737,7 +1742,7 @@ ForgetMove: ; 65d3
ld [wcfa3], a
ld a, $1
ld [wcfa4], a
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld [wcfaa], a
ld a, $3
ld [wcfa8], a
@@ -1755,7 +1760,7 @@ ForgetMove: ; 65d3
bit 1, a
jr nz, .cancel
push hl
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld c, a
ld b, 0
@@ -2603,7 +2608,7 @@ Function7113: ; unreferenced
ld hl, OBJECT_MOVEMENTTYPE
add hl, bc
ld a, [hl]
- cp SPRITEMOVEDATA_15
+ cp SPRITEMOVEDATA_SNORLAX
jr nz, .asm_7136
call Function7171
jr c, .asm_716f
@@ -2681,7 +2686,7 @@ Function7171: ; 7171
GetFirstPokemonHappiness: ; 718d
ld hl, PartyMon1Happiness
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld de, PartySpecies
.loop
ld a, [de]
@@ -2729,7 +2734,7 @@ ChangeHappiness: ; 71c2
push bc
ld hl, PartyMon1Happiness
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
pop bc
@@ -2838,7 +2843,7 @@ StepHappiness:: ; 725a
.next
push de
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
add hl, de
pop de
dec c
@@ -2945,10 +2950,10 @@ SpecialGiveShuckle: ; 7305
; Caught data.
ld b, 0
- callba SetPkmnCaughtData
+ callba SetPartymonCaughtData
; Holding a Berry.
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [PartyCount]
dec a
push af
@@ -3012,7 +3017,7 @@ SpecialReturnShuckle: ; 737e
ld a, [CurPartyMon]
ld hl, PartyMon1ID
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
; OT ID
@@ -3044,14 +3049,14 @@ SpecialReturnShuckle: ; 737e
jr c, .fainted
ld a, [CurPartyMon]
ld hl, PartyMon1Happiness
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [hl]
cp 150
ld a, $3
jr nc, .HappyToStayWithYou
- xor a
- ld [wd10b], a
+ xor a ; take from pc
+ ld [wPokemonWithdrawDepositParameter], a
callab Functione039
ld a, $2
@@ -3181,7 +3186,7 @@ Function8000: ; 8000
call DisableSpriteUpdates
xor a
ld [hBGMapMode], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
hlcoord 0, 0
ld bc, TileMapEnd - TileMap
@@ -3236,7 +3241,7 @@ PlayerObjectTemplate: ; 8071
; A dummy map object used to initialize the player object.
; Shorter than the actual amount copied by two bytes.
; Said bytes seem to be unused.
- person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_0B, 15, 15, -1, -1, 0, 0, 0, 0, -1
+ person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, 0, 0, 0, -1
; 807e
CopyDECoordsToMapObject:: ; 807e
@@ -3267,10 +3272,11 @@ PlayerSpawn_ConvertCoords: ; 808f
; 80a1
-Function80a1:: ; 80a1
+WritePersonXY:: ; 80a1
ld a, b
call CheckObjectVisibility
ret c
+
ld hl, OBJECT_MAP_X
add hl, bc
ld d, [hl]
@@ -3597,6 +3603,7 @@ Function8286: ; 8286
ld hl, OBJECT_MAP_OBJECT_INDEX
add hl, de
ld [hl], a
+
ld a, [wc2f4]
call Function1a61
ld a, [wc2f3]
@@ -3604,30 +3611,39 @@ Function8286: ; 8286
add hl, de
or [hl]
ld [hl], a
+
ld a, [wc2f7]
call Function82d5
+
ld a, [wc2f6]
call Function82f1
+
ld a, [wc2f1]
ld hl, OBJECT_SPRITE
add hl, de
ld [hl], a
+
ld a, [wc2f2]
ld hl, OBJECT_SPRITE_TILE
add hl, de
ld [hl], a
+
ld hl, OBJECT_09
add hl, de
ld [hl], $0
+
ld hl, OBJECT_FACING_STEP
add hl, de
ld [hl], $ff
+
ld a, [wc2f8]
call Function830d
+
ld a, [wc2f5]
ld hl, OBJECT_32
add hl, de
ld [hl], a
+
and a
ret
; 82d5
@@ -3685,30 +3701,31 @@ Function830d: ; 830d
ret
; 831e
-Function831e: ; 831e
+TrainerWalkToPlayer: ; 831e
ld a, [hLastTalked]
- call Function1b1e
- ld a, $3e
- call Function1b3f
+ call InitMovementBuffer
+ ld a, movement_step_sleep_1
+ call AppendToMovementBuffer
ld a, [wd03f]
dec a
- jr z, Function833b
+ jr z, .TerminateStep
ld a, [hLastTalked]
ld b, a
- ld c, 0
+ ld c, PLAYER
ld d, 1
- call Function8341
- call Function1b35
+ call .GetPathToPlayer
+ call DecrementMovementBufferCount
-Function833b
- ld a, $47
- call Function1b3f
+.TerminateStep
+ ld a, movement_step_end
+ call AppendToMovementBuffer
ret
; 8341
-Function8341: ; 8341
+.GetPathToPlayer: ; 8341
push de
push bc
+; get player object struct, load to de
ld a, c
call GetMapObject
ld hl, MAPOBJECT_OBJECT_STRUCT_ID
@@ -3717,6 +3734,8 @@ Function8341: ; 8341
call GetObjectStruct
ld d, b
ld e, c
+
+; get last talked object struct, load to bc
pop bc
ld a, b
call GetMapObject
@@ -3724,6 +3743,8 @@ Function8341: ; 8341
add hl, bc
ld a, [hl]
call GetObjectStruct
+
+; get last talked coords, load to bc
ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
@@ -3731,6 +3752,8 @@ Function8341: ; 8341
add hl, bc
ld c, [hl]
ld b, a
+
+; get player coords, load to de
ld hl, OBJECT_MAP_X
add hl, de
ld a, [hl]
@@ -3738,39 +3761,43 @@ Function8341: ; 8341
add hl, de
ld e, [hl]
ld d, a
+
pop af
- call Function1b5f
+ call ComputePathToWalkToPlayer
ret
; 8379
Special_SurfStartStep: ; 8379
- call Function1b1e
- call Function8388
- call Function1b3f
- ld a, $47
- call Function1b3f
+ call InitMovementBuffer
+ call .GetMovementData
+ call AppendToMovementBuffer
+ ld a, movement_step_end
+ call AppendToMovementBuffer
ret
; 8388
-Function8388: ; 8388
+.GetMovementData: ; 8388
ld a, [PlayerDirection]
srl a
srl a
and 3
ld e, a
ld d, 0
- ld hl, .data_839a
+ ld hl, .movement_data
add hl, de
ld a, [hl]
ret
; 839a
-.data_839a
- db 8 + DOWN, 8 + UP, 8 + LEFT, 8 + RIGHT
+.movement_data
+ slow_step_down
+ slow_step_up
+ slow_step_left
+ slow_step_right
; 839e
-Function839e:: ; 839e
+FollowNotExact:: ; 839e
push bc
ld a, c
call CheckObjectVisibility
@@ -3778,9 +3805,12 @@ Function839e:: ; 839e
ld e, c
pop bc
ret c
+
ld a, b
call CheckObjectVisibility
ret c
+
+; Person 2 is now in bc, person 1 is now in de
ld hl, OBJECT_MAP_X
add hl, bc
ld a, [hl]
@@ -3788,33 +3818,34 @@ Function839e:: ; 839e
add hl, bc
ld c, [hl]
ld b, a
+
ld hl, OBJECT_MAP_X
add hl, de
ld a, [hl]
cp b
- jr z, .asm_83c7
- jr c, .asm_83c4
+ jr z, .same_x
+ jr c, .to_the_left
inc b
- jr .asm_83d5
+ jr .continue
-.asm_83c4
+.to_the_left
dec b
- jr .asm_83d5
+ jr .continue
-.asm_83c7
+.same_x
ld hl, OBJECT_MAP_Y
add hl, de
ld a, [hl]
cp c
- jr z, .asm_83d5
- jr c, .asm_83d4
+ jr z, .continue
+ jr c, .below
inc c
- jr .asm_83d5
+ jr .continue
-.asm_83d4
+.below
dec c
-.asm_83d5
+.continue
ld hl, OBJECT_MAP_X
add hl, de
ld [hl], b
@@ -3847,7 +3878,7 @@ Function839e:: ; 839e
ld [hl], a
ld hl, OBJECT_MOVEMENTTYPE
add hl, de
- ld [hl], SPRITEMOVEDATA_1A
+ ld [hl], SPRITEMOVEDATA_FOLLOWNOTEXACT
ld hl, OBJECT_09
add hl, de
ld [hl], $0
@@ -4329,7 +4360,7 @@ _PrintNum:: ; c4c7
ld a, [hPrintNum6]
ld b, a
ld a, [hPrintNum3]
- ld [$ffbb], a
+ ld [hPrintNum9], a
cp b
jr nc, .skip2
ld a, [hPrintNum2]
@@ -4344,7 +4375,7 @@ _PrintNum:: ; c4c7
ld a, [hPrintNum7]
ld b, a
ld a, [hPrintNum4]
- ld [$ffbc], a
+ ld [hPrintNum10], a
cp b
jr nc, .skip4
ld a, [hPrintNum3]
@@ -4366,7 +4397,7 @@ _PrintNum:: ; c4c7
inc c
jr .loop
.skip6
- ld a, [$ffbb]
+ ld a, [hPrintNum9]
ld [hPrintNum3], a
.skip3
ld a, [$ffba]
@@ -4444,21 +4475,21 @@ HealParty: ; c658
; c677
HealPartyMon: ; c677
- ld a, PartyMon1Species - PartyMon1
+ ld a, MON_SPECIES
call GetPartyParamLocation
ld d, h
ld e, l
- ld hl, PartyMon1Status - PartyMon1Species
+ ld hl, MON_STATUS
add hl, de
xor a
ld [hli], a
ld [hl], a
- ld hl, PartyMon1MaxHP - PartyMon1Species
+ ld hl, MON_MAXHP
add hl, de
- ; bc = PartyMon1HP - PartyMon1Species
+ ; bc = MON_HP
ld b, h
ld c, l
rept 2
@@ -4475,7 +4506,7 @@ endr
ret
; c699
-Functionc699: ; c699
+DrawPartyMenuHPBar: ; c699
ld a, b
or c
jr z, .zero
@@ -4525,9 +4556,9 @@ Functionc699: ; c699
ret
; c6e0
-Functionc6e0: ; c6e0
+AnimateHPBar: ; c6e0
call WaitBGMap
- call Functiond627
+ call _AnimateHPBar
call WaitBGMap
ret
; c6ea
@@ -4626,7 +4657,7 @@ CheckPartyMove: ; c742
cp a, EGG
jr z, .next
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1Moves
ld a, e
call AddNTimes
@@ -4773,23 +4804,23 @@ CutDownTreeOrGrass: ; c810
ld [hl], a
xor a
ld [hBGMapMode], a
- call Function2173
+ call OverworldTextModeSwitch
call UpdateSprites
call DelayFrame
ld a, [wd1ef]
ld e, a
- callba Function8c940
+ callba OWCutAnimation
call BufferScreen
call Function2914
call UpdateSprites
call DelayFrame
- call Functione51
+ call LoadStandardFont
ret
; c840
CheckOverworldTileArrays: ; c840
push bc
- ld a, [wd199]
+ ld a, [wTileset]
ld de, 3
call IsInArray
pop bc
@@ -5020,7 +5051,7 @@ UsedSurfScript: ; c986
copybytetovar Buffer2
writevarcode VAR_MOVEMENT
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
special PlayMapMusic
; step into the water
special Special_SurfStartStep ; (slow_step_x, step_end)
@@ -5196,8 +5227,8 @@ FlyFunction: ; ca3b
.outdoors
xor a
- ld [$ffde], a
- call LoadMenuDataHeader_0x1d75
+ ld [hMapAnims], a
+ call LoadStandardMenuDataHeader
call ClearSprites
callba _FlyMap
ld a, e
@@ -5244,11 +5275,11 @@ FlyFunction: ; ca3b
callasm HideSprites
special UpdateTimePals
callasm Function8caed
- farscall UnknownScript_0x122c1
+ farscall Script_AbortBugContest
special WarpToSpawnPoint
callasm DelayLoadingNewSprites
writecode VAR_MOVEMENT, $0
- newloadmap -4
+ newloadmap MAPSETUP_FLY
callasm Function8cb33
special WaitSFX
callasm Functioncacb
@@ -5258,7 +5289,7 @@ FlyFunction: ; ca3b
Functioncacb: ; cacb
callba Function561d
call DelayFrame
- call Special_ReplaceKrisSprite
+ call ReplaceKrisSprite
callba Function106594
ret
; cade
@@ -5470,7 +5501,7 @@ dig_incave
jr nz, .failescaperope
ld hl, UnknownText_0xcc26
call MenuTextBox
- call Functiona80
+ call WaitPressAorB_BlinkCursor
call WriteBackup
.failescaperope
@@ -5513,10 +5544,10 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c
loadmovesprites
playsound SFX_WARP_TO
applymovement PLAYER, MovementData_0xcc59
- farscall UnknownScript_0x122c1
+ farscall Script_AbortBugContest
special WarpToSpawnPoint
writecode VAR_MOVEMENT, $0
- newloadmap -11
+ newloadmap MAPSETUP_DOOR
playsound SFX_WARP_FROM
applymovement PLAYER, MovementData_0xcc5d
end
@@ -5611,10 +5642,10 @@ Script_UsedTeleport: ; 0xccbb
loadmovesprites
playsound SFX_WARP_TO
applymovement PLAYER, MovementData_0xcce1
- farscall UnknownScript_0x122c1
+ farscall Script_AbortBugContest
special WarpToSpawnPoint
writecode VAR_MOVEMENT, $0
- newloadmap -12
+ newloadmap MAPSETUP_TELEPORT
playsound SFX_WARP_FROM
applymovement PLAYER, MovementData_0xcce3
end
@@ -5889,10 +5920,10 @@ DisappearWhirlpool: ; ce1d
ld [hl], a
xor a
ld [hBGMapMode], a
- call Function2173
+ call OverworldTextModeSwitch
ld a, [wd1ef]
ld e, a
- callba Function8c7d4
+ callba PlayWhirlpoolSound
call BufferScreen
call Function2914
ret
@@ -6199,7 +6230,7 @@ FishFunction: ; cf8e
ret
.facingwater
- call Function2d19
+ call GetFishingGroup
and a
jr nz, .goodtofish
ld a, $4
@@ -6269,7 +6300,7 @@ Script_NotEvenANibble2: ; 0xd027
writetext UnknownText_0xd0a9
Script_NotEvenANibble_FallThrough: ; 0xd02d
- loademote EMOTE_ROD + DOWN
+ loademote EMOTE_08
callasm PutTheRodAway
loadmovesprites
end
@@ -6312,14 +6343,14 @@ MovementData_0xd062: ; d062
fish_got_bite
fish_got_bite
fish_got_bite
- show_person
+ step_sleep_1
show_emote
step_end
; d069
MovementData_0xd069: ; d069
hide_emote
- fish_got_bite_2
+ fish_cast_rod
step_end
; d06c
@@ -6340,8 +6371,8 @@ Script_FishCastRod: ; 0xd07c
reloadmappart
loadvar hBGMapMode, $0
special UpdateTimePals
- loademote EMOTE_ROD + UP
- callasm Functionb84b3
+ loademote EMOTE_09
+ callasm LoadFishingGFX
loademote EMOTE_SHOCK
applymovement PLAYER, MovementData_0xd093
pause 40
@@ -6349,7 +6380,7 @@ Script_FishCastRod: ; 0xd07c
; 0xd093
MovementData_0xd093: ; d093
- fish_got_bite_2
+ fish_cast_rod
step_end
; d095
@@ -6359,7 +6390,7 @@ PutTheRodAway: ; d095
ld a, $1
ld [PlayerAction], a
call UpdateSprites
- call Special_ReplaceKrisSprite
+ call ReplaceKrisSprite
ret
; d0a4
@@ -6478,14 +6509,14 @@ Script_GetOnBike: ; 0xd13e
writetext UnknownText_0xd17c
closetext
loadmovesprites
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
end
; 0xd14e
Script_GetOnBike_Register: ; 0xd14e
writecode VAR_MOVEMENT, $1
loadmovesprites
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
end
; 0xd156
@@ -6502,7 +6533,7 @@ Script_GetOffBike: ; 0xd158
UnknownScript_0xd163:
loadmovesprites
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
special PlayMapMusic
end
; 0xd16b
@@ -7272,12 +7303,12 @@ Functiond4d2:: ; d4d2 (3:54d2)
ld d, a
ld a, [wd14f]
ld e, a
- ld a, [hSCX] ; $ff00+$cf
+ ld a, [hSCX]
add d
- ld [hSCX], a ; $ff00+$cf
- ld a, [hSCY] ; $ff00+$d0
+ ld [hSCX], a
+ ld a, [hSCY]
add e
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCY], a
ret
Functiond4e5: ; d4e5 (3:54e5)
@@ -7354,22 +7385,22 @@ Functiond536: ; d536 (3:5536)
ret
.asm_d549
call Functiond571
- call Function217a
+ call LoadMapPart
call Function2748
ret
.asm_d553
call Functiond5a2
- call Function217a
+ call LoadMapPart
call Function272a
ret
.asm_d55d
call Functiond5d5
- call Function217a
+ call LoadMapPart
call Function2771
ret
.asm_d567
call Functiond5fe
- call Function217a
+ call LoadMapPart
call Function278f
ret
@@ -7482,11 +7513,11 @@ Functiond5fe: ; d5fe (3:55fe)
cp $2
jr nz, .asm_d61c
ld [hl], $0
- call Functiond61d
+ call .Incrementwd194
.asm_d61c
ret
-Functiond61d: ; d61d (3:561d)
+.Incrementwd194: ; d61d (3:561d)
ld hl, wd194
ld a, [hl]
add $1
@@ -7495,11 +7526,11 @@ Functiond61d: ; d61d (3:561d)
inc [hl]
ret
-Functiond627: ; d627
+_AnimateHPBar: ; d627
call Functiond65f
- jr c, .asm_d645
+ jr c, .do_player
call Functiond670
-.asm_d62f
+.enemy_loop
push bc
push hl
call Functiond6e2
@@ -7513,12 +7544,12 @@ Functiond627: ; d627
pop hl
pop bc
pop af
- jr nc, .asm_d62f
+ jr nc, .enemy_loop
ret
-.asm_d645
+.do_player
call Functiond670
-.asm_d648
+.player_loop
push bc
push hl
call Functiond6f5
@@ -7533,21 +7564,21 @@ Functiond627: ; d627
pop hl
pop bc
pop af
- jr nc, .asm_d648
+ jr nc, .player_loop
ret
; d65f
Functiond65f: ; d65f
ld a, [Buffer2]
and a
- jr nz, .asm_d66e
+ jr nz, .player
ld a, [Buffer1]
cp $30
- jr nc, .asm_d66e
+ jr nc, .player
and a
ret
-.asm_d66e
+.player
scf
ret
; d670
@@ -7564,7 +7595,7 @@ Functiond670: ; d670
ld a, [hli]
ld b, a
pop hl
- call Functionc699
+ call DrawPartyMenuHPBar
ld a, e
ld [wd1f1], a
ld a, [wd1ee]
@@ -7575,7 +7606,7 @@ Functiond670: ; d670
ld e, a
ld a, [Buffer2]
ld d, a
- call Functionc699
+ call DrawPartyMenuHPBar
ld a, e
ld [wd1f2], a
push hl
@@ -7600,7 +7631,7 @@ Functiond670: ; d670
ld [wd1f5], a
ld a, [wd1ee]
ld [wd1f6], a
- ld bc, $0001
+ ld bc, 1
jr .asm_d6d9
.asm_d6c1
@@ -7679,7 +7710,7 @@ Functiond6f5: ; d6f5
ld c, a
ld a, [hli]
ld b, a
- call Functionc699
+ call DrawPartyMenuHPBar
pop bc
pop de
pop hl
@@ -7718,7 +7749,7 @@ Functiond749: ; d749
ld e, a
ld a, [Buffer2]
ld d, a
- call Functionc699
+ call DrawPartyMenuHPBar
ld c, e
ld d, $6
ld a, [wd10a]
@@ -7743,7 +7774,7 @@ Functiond771: ; d771
ld h, a
.asm_d780
- call DrawHPBar
+ call DrawBattleHPBar
ret
; d784
@@ -7752,14 +7783,14 @@ Functiond784: ; d784
and a
ret z
cp $1
- jr z, .asm_d792
- ld de, $0016
- jr .asm_d795
+ jr z, .load_15
+ ld de, $16
+ jr .loaded_de
-.asm_d792
- ld de, $0015
+.load_15
+ ld de, $15
-.asm_d795
+.loaded_de
push hl
add hl, de
ld a, " "
@@ -7794,39 +7825,39 @@ Functiond7b4: ; d7b4
Functiond7c9: ; d7c9
ld a, [hCGB]
and a
- jr nz, .asm_d7d5
+ jr nz, .cgb
call DelayFrame
call DelayFrame
ret
-.asm_d7d5
+.cgb
ld a, [wd10a]
and a
- jr z, .asm_d829
+ jr z, .load_0
cp $1
- jr z, .asm_d82d
+ jr z, .load_1
ld a, [CurPartyMon]
cp $3
- jr nc, .asm_d7ea
+ jr nc, .c_is_1
ld c, $0
- jr .asm_d7ec
+ jr .c_is_0
-.asm_d7ea
+.c_is_1
ld c, $1
-.asm_d7ec
+.c_is_0
push af
cp $2
- jr z, .asm_d7ff
+ jr z, .skip_delay
cp $5
- jr z, .asm_d7ff
+ jr z, .skip_delay
ld a, $2
ld [hBGMapMode], a
ld a, c
ld [hBGMapThird], a
call DelayFrame
-.asm_d7ff
+.skip_delay
ld a, $1
ld [hBGMapMode], a
ld a, c
@@ -7834,12 +7865,12 @@ Functiond7c9: ; d7c9
call DelayFrame
pop af
cp $2
- jr z, .asm_d813
+ jr z, .two_frames
cp $5
- jr z, .asm_d813
+ jr z, .two_frames
ret
-.asm_d813
+.two_frames
inc c
ld a, $2
ld [hBGMapMode], a
@@ -7853,14 +7884,14 @@ Functiond7c9: ; d7c9
call DelayFrame
ret
-.asm_d829
+.load_0
ld c, $0
- jr .asm_d82f
+ jr .finish
-.asm_d82d
+.load_1
ld c, $1
-.asm_d82f
+.finish
call DelayFrame
ld a, c
ld [hBGMapThird], a
@@ -7875,25 +7906,25 @@ Functiond839: ; d839
ld hl, 0
ld a, [wd1f1]
cp $30
- jr nc, .asm_d885
+ jr nc, .coppy_buffer
and a
- jr z, .asm_d880
+ jr z, .return_zero
call AddNTimes
ld b, $0
-.asm_d851
+.loop
ld a, l
sub $30
ld l, a
ld a, h
sbc $0
ld h, a
- jr c, .asm_d85e
+ jr c, .done
inc b
- jr .asm_d851
+ jr .loop
-.asm_d85e
+.done
push bc
- ld bc, $0080
+ ld bc, $80
add hl, bc
pop bc
ld a, l
@@ -7902,28 +7933,28 @@ Functiond839: ; d839
ld a, h
sbc $0
ld h, a
- jr c, .asm_d86f
+ jr c, .no_carry
inc b
-.asm_d86f
+.no_carry
ld a, [wd1f5]
cp b
- jr nc, .asm_d87c
+ jr nc, .finish
ld a, [wd1f6]
cp b
- jr c, .asm_d87c
+ jr c, .finish
ld a, b
-.asm_d87c
+.finish
ld [wd1ec], a
ret
-.asm_d880
+.return_zero
xor a
ld [wd1ec], a
ret
-.asm_d885
+.coppy_buffer
ld a, [Buffer1]
ld [wd1ec], a
ret
@@ -8005,7 +8036,7 @@ TryAddMonToParty: ; d88c
.initializeStats
ld a, [$ffae]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
GeneratePartyMonStats: ; d906
ld e, l
@@ -8068,7 +8099,7 @@ endr
push de
ld a, [CurPartyLevel]
ld d, a
- callab Function50e47
+ callab CalcExpAtLevel
pop de
ld a, [hMultiplicand]
ld [de], a
@@ -8157,7 +8188,7 @@ endr
ld a, $1
ld c, a
ld b, $0
- call Functione17b
+ call CalcPkmnStatC
ld a, [$ffb5]
ld [de], a
inc de
@@ -8243,7 +8274,7 @@ endr
ld hl, PartyMon1DVs
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
predef GetUnownLetter
callab Functionfba18
@@ -8257,10 +8288,10 @@ endr
FillPP: ; da6d
push bc
ld b, NUM_MOVES
-.asm_da70
+.loop
ld a, [hli]
and a
- jr z, .asm_da8f
+ jr z, .next
dec a
push hl
push de
@@ -8276,11 +8307,11 @@ FillPP: ; da6d
pop hl
ld a, [StringBuffer1 + MOVE_PP]
-.asm_da8f
+.next
ld [de], a
inc de
dec b
- jr nz, .asm_da70
+ jr nz, .loop
pop bc
ret
; da96
@@ -8303,7 +8334,7 @@ Functionda96: ; da96
ld hl, PartyMon1Species
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld e, l
ld d, h
@@ -8333,7 +8364,7 @@ Functionda96: ; da96
call CopyBytes
ld a, [CurPartySpecies]
- ld [wd265], a
+ ld [wNamedObjectIndexBuffer], a
cp EGG
jr z, .owned
dec a
@@ -8341,7 +8372,7 @@ Functionda96: ; da96
ld hl, PartyMon1Happiness
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld [hl], BASE_HAPPINESS
.owned
@@ -8352,7 +8383,7 @@ Functionda96: ; da96
ld hl, PartyMon1DVs
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
predef GetUnownLetter
callab Functionfba18
@@ -8369,197 +8400,204 @@ Functionda96: ; da96
SentGetPkmnIntoFromBox: ; db3f
; Sents/Gets Pkmn into/from Box depending on Parameter
-; wd10b == 0: get Pkmn into Party
-; wd10b == 1: sent Pkmn into Box
+; wPokemonWithdrawDepositParameter == 0: get Pkmn into Party
+; wPokemonWithdrawDepositParameter == 1: sent Pkmn into Box
+; wPokemonWithdrawDepositParameter == 2: get Pkmn from DayCare
+; wPokemonWithdrawDepositParameter == 3: put Pkmn into DayCare
ld a, BANK(sBoxCount)
call GetSRAMBank
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jr z, .check_IfPartyIsFull
- cp $2
+ cp DAYCARE_WITHDRAW
jr z, .check_IfPartyIsFull
- cp $3
+ cp DAYCARE_DEPOSIT
ld hl, wBreedMon1Species
- jr z, .asm_db9b
+ jr z, .breedmon
; we want to sent a Pkmn into the Box
; so check if there's enough space
ld hl, sBoxCount
ld a, [hl]
cp MONS_PER_BOX
- jr nz, .asm_db69
- jp CloseSRAM_And_SetCFlag
+ jr nz, .there_is_room
+ jp CloseSRAM_And_SetCarryFlag
.check_IfPartyIsFull
ld hl, PartyCount
ld a, [hl]
cp PARTY_LENGTH
- jp z, CloseSRAM_And_SetCFlag
+ jp z, CloseSRAM_And_SetCarryFlag
-.asm_db69
+.there_is_room
inc a
ld [hl], a
ld c, a
ld b, 0
add hl, bc
- ld a, [wd10b]
- cp $2
+ ld a, [wPokemonWithdrawDepositParameter]
+ cp DAYCARE_WITHDRAW
ld a, [wBreedMon1Species]
- jr z, .asm_db7c
+ jr z, .okay1
ld a, [CurPartySpecies]
-.asm_db7c
+.okay1
ld [hli], a
ld [hl], $ff
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
dec a
ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [PartyCount]
- jr nz, .asm_db97
+ jr nz, .okay2
ld hl, sBoxMon1Species
- ld bc, sBoxMon1End - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
ld a, [sBoxCount]
-.asm_db97
+.okay2
dec a ; PartyCount - 1
call AddNTimes
-.asm_db9b
+.breedmon
push hl
ld e, l
ld d, h
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
ld hl, sBoxMon1Species
- ld bc, sBoxMon1End - sBoxMon1
- jr z, .asm_dbb7
- cp $2
+ ld bc, BOXMON_STRUCT_LENGTH
+ jr z, .okay3
+ cp DAYCARE_WITHDRAW
ld hl, wBreedMon1Species
- jr z, .asm_dbbd
+ jr z, .okay4
ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
-.asm_dbb7
+.okay3
ld a, [CurPartyMon]
call AddNTimes
-.asm_dbbd
- ld bc, sBoxMon1End - sBoxMon1
+.okay4
+ ld bc, BOXMON_STRUCT_LENGTH
call CopyBytes
- ld a, [wd10b]
- cp $3
+ ld a, [wPokemonWithdrawDepositParameter]
+ cp DAYCARE_DEPOSIT
ld de, wBreedMon1OT
- jr z, .asm_dbe2
+ jr z, .okay5
dec a
ld hl, PartyMonOT
ld a, [PartyCount]
- jr nz, .asm_dbdc
+ jr nz, .okay6
ld hl, sBoxMonOT
ld a, [sBoxCount]
-.asm_dbdc
+.okay6
dec a
call SkipNames
ld d, h
ld e, l
-.asm_dbe2
+.okay5
ld hl, sBoxMonOT
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
- jr z, .asm_dbf5
+ jr z, .okay7
ld hl, wBreedMon1OT
- cp $2
- jr z, .asm_dbfb
+ cp DAYCARE_WITHDRAW
+ jr z, .okay8
ld hl, PartyMonOT
-.asm_dbf5
+.okay7
ld a, [CurPartyMon]
call SkipNames
-.asm_dbfb
+.okay8
ld bc, NAME_LENGTH
call CopyBytes
- ld a, [wd10b]
- cp $3
+ ld a, [wPokemonWithdrawDepositParameter]
+ cp DAYCARE_DEPOSIT
ld de, wBreedMon1Nick
- jr z, .asm_dc20
+ jr z, .okay9
dec a
ld hl, PartyMonNicknames
ld a, [PartyCount]
- jr nz, .asm_dc1a
+ jr nz, .okay10
ld hl, sBoxMonNicknames
ld a, [sBoxCount]
-.asm_dc1a
+.okay10
dec a
call SkipNames
ld d, h
ld e, l
-.asm_dc20
+.okay9
ld hl, sBoxMonNicknames
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
- jr z, .asm_dc33
+ jr z, .okay11
ld hl, wBreedMon1Nick
- cp $2
- jr z, .asm_dc39
+ cp DAYCARE_WITHDRAW
+ jr z, .okay12
ld hl, PartyMonNicknames
-.asm_dc33
+.okay11
ld a, [CurPartyMon]
call SkipNames
-.asm_dc39
+.okay12
ld bc, PKMN_NAME_LENGTH
call CopyBytes
pop hl
- ld a, [wd10b]
- cp $1
- jr z, .asm_dca4
- cp $3
- jp z, .asm_dcac
+
+ ld a, [wPokemonWithdrawDepositParameter]
+ cp PC_DEPOSIT
+ jr z, .took_out_of_box
+ cp DAYCARE_DEPOSIT
+ jp z, .CloseSRAM_And_ClearCarryFlag
+
push hl
srl a
add $2
ld [MonType], a
predef CopyPkmnToTempMon
- callab Function50e1b
+ callab CalcLevel
ld a, d
ld [CurPartyLevel], a
pop hl
+
ld b, h
ld c, l
- ld hl, $001f
+ ld hl, MON_LEVEL
add hl, bc
ld [hl], a
- ld hl, $0024
+ ld hl, MON_MAXHP
add hl, bc
ld d, h
ld e, l
- ld hl, $000a
+ ld hl, MON_EXP + 2
add hl, bc
+
push bc
ld b, $1
call CalcPkmnStats
pop bc
- ld a, [wd10b]
+
+ ld a, [wPokemonWithdrawDepositParameter]
and a
- jr nz, .asm_dcac
- ld hl, $0020
+ jr nz, .CloseSRAM_And_ClearCarryFlag
+ ld hl, MON_STATUS
add hl, bc
xor a
ld [hl], a
- ld hl, $0022
+ ld hl, MON_HP
add hl, bc
ld d, h
ld e, l
ld a, [CurPartySpecies]
cp EGG
- jr z, .asm_dc9e
+ jr z, .egg
rept 2
inc hl
endr
@@ -8568,28 +8606,28 @@ endr
ld a, [hl]
inc de
ld [de], a
- jr .asm_dcac
+ jr .CloseSRAM_And_ClearCarryFlag
-.asm_dc9e
+.egg
xor a
ld [de], a
inc de
ld [de], a
- jr .asm_dcac
+ jr .CloseSRAM_And_ClearCarryFlag
-.asm_dca4
+.took_out_of_box
ld a, [sBoxCount]
dec a
ld b, a
call Functiondcb6
-.asm_dcac
+.CloseSRAM_And_ClearCarryFlag
call CloseSRAM
and a
ret
; dcb1
-CloseSRAM_And_SetCFlag: ; dcb1
+CloseSRAM_And_SetCarryFlag: ; dcb1
call CloseSRAM
scf
ret
@@ -8599,11 +8637,11 @@ CloseSRAM_And_SetCFlag: ; dcb1
Functiondcb6: ; dcb6
ld a, b
ld hl, sBoxMons
- ld bc, sBoxMon1End - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
call AddNTimes
ld b, h
ld c, l
- ld hl, sBoxMon1PP - sBoxMon1
+ ld hl, MON_PP
add hl, bc
push hl
push bc
@@ -8611,7 +8649,7 @@ Functiondcb6: ; dcb6
ld bc, NUM_MOVES
call CopyBytes
pop bc
- ld hl, sBoxMon1Moves - sBoxMon1
+ ld hl, MON_MOVES
add hl, bc
push hl
ld de, TempMonMoves
@@ -8620,7 +8658,7 @@ Functiondcb6: ; dcb6
pop hl
pop de
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
push af
ld a, [MonType]
push af
@@ -8633,17 +8671,17 @@ Functiondcb6: ; dcb6
ld a, BOXMON
ld [MonType], a
ld a, b
- ld [wcfa9], a
+ ld [MenuSelection2], a
push bc
push hl
push de
- callba Functionf8ec
+ callba GetMaxPPOfMove
pop de
pop hl
ld a, [wd265]
ld b, a
ld a, [de]
- and $c0
+ and %11000000
add b
ld [de], a
pop bc
@@ -8657,7 +8695,7 @@ Functiondcb6: ; dcb6
pop af
ld [MonType], a
pop af
- ld [wcfa9], a
+ ld [MenuSelection2], a
ret
; dd21
@@ -8670,11 +8708,11 @@ Functiondd21: ; dd21
call WaitSFX
call Functione698
ld a, b
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld a, e
ld [CurPartyLevel], a
xor a
- ld [wd10b], a
+ ld [wPokemonWithdrawDepositParameter], a
jp Functiondd64
; dd42
@@ -8686,11 +8724,11 @@ Functiondd42: ; dd42
call WaitSFX
call Functione6b3
ld a, b
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld a, e
ld [CurPartyLevel], a
- ld a, $1
- ld [wd10b], a
+ ld a, PC_DEPOSIT
+ ld [wPokemonWithdrawDepositParameter], a
jp Functiondd64
; dd64
@@ -8698,25 +8736,25 @@ Functiondd64: ; dd64
ld hl, PartyCount
ld a, [hl]
cp PARTY_LENGTH
- jr nz, .asm_dd6e
+ jr nz, .room_in_party
scf
ret
-.asm_dd6e
+.room_in_party
inc a
ld [hl], a
ld c, a
ld b, 0
add hl, bc
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
ld a, [wBreedMon1Species]
ld de, wBreedMon1Nick
- jr z, .asm_dd86
+ jr z, .okay
ld a, [wBreedMon2Species]
ld de, wBreedMon2Nick
-.asm_dd86
+.okay
ld [hli], a
ld [CurSpecies], a
ld a, $ff
@@ -8742,21 +8780,21 @@ Functiondd64: ; dd64
push hl
call Functionde1a
pop hl
- ld bc, $0020
+ ld bc, BOXMON_STRUCT_LENGTH
call CopyBytes
call GetBaseData
call Functionde1a
ld b, d
ld c, e
- ld hl, $001f
+ ld hl, MON_LEVEL
add hl, bc
ld a, [CurPartyLevel]
ld [hl], a
- ld hl, $0024
+ ld hl, MON_MAXHP
add hl, bc
ld d, h
ld e, l
- ld hl, $000a
+ ld hl, $a
add hl, bc
push bc
ld b, $1
@@ -8764,7 +8802,7 @@ Functiondd64: ; dd64
ld hl, PartyMon1Moves
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -8777,15 +8815,15 @@ Functiondd64: ; dd64
callba HealPartyMon
ld a, [CurPartyLevel]
ld d, a
- callab Function50e47
+ callab CalcExpAtLevel
pop bc
- ld hl, $0008
+ ld hl, $8
add hl, bc
ld a, [hMultiplicand]
ld [hli], a
- ld a, [$ffb5]
+ ld a, [hMultiplicand + 1]
ld [hli], a
- ld a, [$ffb6]
+ ld a, [hMultiplicand + 2]
ld [hl], a
and a
ret
@@ -8795,7 +8833,7 @@ Functionde1a: ; de1a
ld a, [PartyCount]
dec a
ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -8806,7 +8844,7 @@ Functionde2a: ; de2a
ld de, wBreedMon1Nick
call Functionde44
xor a
- ld [wd10b], a
+ ld [wPokemonWithdrawDepositParameter], a
jp Functione039
; de37
@@ -8814,7 +8852,7 @@ Functionde37: ; de37
ld de, wBreedMon2Nick
call Functionde44
xor a
- ld [wd10b], a
+ ld [wPokemonWithdrawDepositParameter], a
jp Functione039
; de44
@@ -8829,9 +8867,9 @@ Functionde44: ; de44
call CopyBytes
ld a, [CurPartyMon]
ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
- ld bc, sBoxMon1End - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
jp CopyBytes
@@ -8892,7 +8930,7 @@ SentPkmnIntoBox: ; de6e
push de
ld a, [CurPartyLevel]
ld d, a
- callab Function50e47
+ callab CalcExpAtLevel
pop de
ld a, [hMultiplicand]
ld [de], a
@@ -8980,7 +9018,7 @@ ShiftBoxMon: ; df47
call .asm_df5f
ld hl, sBoxMons
- ld bc, sBoxMon1End - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
.asm_df5f
ld a, [sBoxCount]
@@ -9062,7 +9100,7 @@ GiveEgg:: ; df8c
ld [CurPartySpecies], a
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1Species
call AddNTimes
ld a, [CurPartySpecies]
@@ -9083,7 +9121,7 @@ GiveEgg:: ; df8c
ld a, [PartyCount]
dec a
ld hl, PartyMon1Happiness
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [wc2cc]
bit 1, a
@@ -9096,7 +9134,7 @@ GiveEgg:: ; df8c
ld a, [PartyCount]
dec a
ld hl, PartyMon1HP
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
xor a
ld [hli], a
@@ -9112,15 +9150,15 @@ String_Egg: ; e035
Functione039: ; e039
ld hl, PartyCount
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
- jr z, .asm_e04a
+ jr z, .okay
ld a, BANK(sBoxCount)
call GetSRAMBank
ld hl, sBoxCount
-.asm_e04a
+.okay
ld a, [hl]
dec a
ld [hli], a
@@ -9139,7 +9177,7 @@ Functione039: ; e039
jr nz, .asm_e057
ld hl, PartyMonOT
ld d, PARTY_LENGTH - 1
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jr z, .asm_e06d
ld hl, sBoxMonOT
@@ -9160,7 +9198,7 @@ Functione039: ; e039
ld bc, PKMN_NAME_LENGTH
add hl, bc
ld bc, PartyMonNicknames
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jr z, .asm_e090
ld bc, sBoxMonNicknames
@@ -9168,35 +9206,35 @@ Functione039: ; e039
call CopyDataUntil
ld hl, PartyMons
- ld bc, PartyMon2 - PartyMon1
- ld a, [wd10b]
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jr z, .asm_e0a5
ld hl, sBoxMons
- ld bc, sBoxMon1End - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
.asm_e0a5
ld a, [CurPartyMon]
call AddNTimes
ld d, h
ld e, l
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jr z, .asm_e0bc
- ld bc, sBoxMon1End - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
add hl, bc
ld bc, sBoxMonOT
jr .asm_e0c3
.asm_e0bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
ld bc, PartyMonOT
.asm_e0c3
call CopyDataUntil
ld hl, PartyMonNicknames
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jr z, .asm_e0d2
ld hl, sBoxMonNicknames
@@ -9210,7 +9248,7 @@ Functione039: ; e039
ld bc, PKMN_NAME_LENGTH
add hl, bc
ld bc, PartyMonNicknamesEnd
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jr z, .asm_e0ed
ld bc, sBoxMonNicknamesEnd
@@ -9219,20 +9257,20 @@ Functione039: ; e039
call CopyDataUntil
.asm_60f0
- ld a, [wd10b]
+ ld a, [wPokemonWithdrawDepositParameter]
and a
jp nz, CloseSRAM
ld a, [wLinkMode]
and a
ret nz
- ld a, BANK(s0_a600)
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
ld hl, PartyCount
ld a, [CurPartyMon]
cp [hl]
jr z, .asm_e131
- ld hl, s0_a600
- ld bc, $002f
+ ld hl, sPartyScratch1
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
push hl
add hl, bc
@@ -9242,11 +9280,11 @@ Functione039: ; e039
.asm_e11a
push bc
push hl
- ld bc, $002f
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call CopyBytes
pop hl
push hl
- ld bc, $002f
+ ld bc, SCRATCHMON_STRUCT_LENGTH
add hl, bc
pop de
pop bc
@@ -9260,26 +9298,26 @@ Functione039: ; e039
; e134
Functione134: ; e134
- ld a, PartyMon1Level - PartyMon1
+ ld a, MON_LEVEL
call GetPartyParamLocation
ld a, [hl]
- ld [PartyMon1Level - PartyMon1], a ; wow
- ld a, PartyMon1Species - PartyMon1
+ ld [MON_LEVEL], a ; wow
+ ld a, MON_SPECIES
call GetPartyParamLocation
ld a, [hl]
ld [CurSpecies], a
call GetBaseData
- ld a, PartyMon1MaxHP - PartyMon1
+ ld a, MON_MAXHP
call GetPartyParamLocation
ld d, h
ld e, l
push de
- ld a, PartyMon1Exp + 2 - PartyMon1
+ ld a, MON_EXP + 2
call GetPartyParamLocation
ld b, $1
call CalcPkmnStats
pop de
- ld a, PartyMon1HP - PartyMon1
+ ld a, MON_HP
call GetPartyParamLocation
ld a, [de]
inc de
@@ -9296,24 +9334,29 @@ CalcPkmnStats: ; e167
; results in $ffb5 and $ffb6 are saved in [de]
ld c, $0
-.asm_e169
+.loop
inc c
- call Functione17b
- ld a, [$ffb5]
+ call CalcPkmnStatC
+ ld a, [hMultiplicand + 1]
ld [de], a
inc de
- ld a, [$ffb6]
+ ld a, [hMultiplicand + 2]
ld [de], a
inc de
ld a, c
- cp $6
- jr nz, .asm_e169
+ cp STAT_SDEF
+ jr nz, .loop
ret
; e17b
-Functione17b: ; e17b
+CalcPkmnStatC: ; e17b
; 'c' is 1-6 and points to the BaseStat
-
+; 1: HP
+; 2: Attack
+; 3: Defense
+; 4: Speed
+; 5: SpAtk
+; 6: SpDef
push hl
push de
push bc
@@ -9329,17 +9372,17 @@ Functione17b: ; e17b
pop hl
push hl
ld a, c
- cp $6
- jr nz, .asm_e193
+ cp STAT_SDEF
+ jr nz, .not_spdef
rept 2
dec hl
endr
-.asm_e193
+.not_spdef
sla c
ld a, d
and a
- jr z, .asm_e1a5
+ jr z, .SkipSqrt
add hl, bc
push de
ld a, [hld]
@@ -9348,24 +9391,25 @@ endr
callba GetSquareRoot
pop de
-.asm_e1a5
+.SkipSqrt
srl c
pop hl
push bc
- ld bc, $000b
+ ld bc, MON_DVS - MON_HP_EXP + 1
add hl, bc
pop bc
ld a, c
- cp $2
- jr z, .asm_e1e3
- cp $3
- jr z, .asm_e1ea
- cp $4
- jr z, .asm_e1ef
- cp $5
- jr z, .asm_e1f7
- cp $6
- jr z, .asm_e1f7
+ cp STAT_ATK
+ jr z, .Attack
+ cp STAT_DEF
+ jr z, .Defense
+ cp STAT_SPD
+ jr z, .Speed
+ cp STAT_SATK
+ jr z, .Special
+ cp STAT_SDEF
+ jr z, .Special
+; DV_HP = (DV_ATK & 1) << 3 + (DV_DEF & 1) << 2 + (DV_SPD & 1) << 1 + (DV_SPC & 1)
push bc
ld a, [hl]
swap a
@@ -9391,49 +9435,49 @@ endr
and $1
add b
pop bc
- jr .asm_e1fb
+ jr .GotDV
-.asm_e1e3
+.Attack
ld a, [hl]
swap a
and $f
- jr .asm_e1fb
+ jr .GotDV
-.asm_e1ea
+.Defense
ld a, [hl]
and $f
- jr .asm_e1fb
+ jr .GotDV
-.asm_e1ef
+.Speed
inc hl
ld a, [hl]
swap a
and $f
- jr .asm_e1fb
+ jr .GotDV
-.asm_e1f7
+.Special
inc hl
ld a, [hl]
and $f
-.asm_e1fb
- ld d, $0
+.GotDV
+ ld d, 0
add e
ld e, a
- jr nc, .asm_e202
+ jr nc, .no_overflow_1
inc d
-.asm_e202
+.no_overflow_1
sla e
rl d
srl b
srl b
ld a, b
add e
- jr nc, .asm_e20f
+ jr nc, .no_overflow_2
inc d
-.asm_e20f
+.no_overflow_2
ld [hMultiplicand + 2], a
ld a, d
ld [hMultiplicand + 1], a
@@ -9448,55 +9492,55 @@ endr
ld [hDividend + 1], a
ld a, [hProduct + 3]
ld [hDividend + 2], a
- ld a, $64
+ ld a, 100
ld [hDivisor], a
- ld a, $3
+ ld a, 3
ld b, a
call Divide
ld a, c
- cp $1
- ld a, $5
- jr nz, .asm_e24e
+ cp STAT_HP
+ ld a, 5
+ jr nz, .not_hp
ld a, [CurPartyLevel]
ld b, a
ld a, [hQuotient + 2]
add b
- ld [$ffb6], a
- jr nc, .asm_e24c
+ ld [hMultiplicand + 2], a
+ jr nc, .no_overflow_3
ld a, [hQuotient + 1]
inc a
- ld [$ffb5], a
+ ld [hMultiplicand + 1], a
-.asm_e24c
- ld a, $a
+.no_overflow_3
+ ld a, 10
-.asm_e24e
+.not_hp
ld b, a
- ld a, [$ffb6]
+ ld a, [hQuotient + 2]
add b
- ld [$ffb6], a
- jr nc, .asm_e25b
- ld a, [$ffb5]
+ ld [hMultiplicand + 2], a
+ jr nc, .no_overflow_4
+ ld a, [hQuotient + 1]
inc a
- ld [$ffb5], a
+ ld [hMultiplicand + 1], a
-.asm_e25b
- ld a, [$ffb5]
- cp $4
- jr nc, .asm_e26b
- cp $3
- jr c, .asm_e273
- ld a, [$ffb6]
- cp $e8
- jr c, .asm_e273
+.no_overflow_4
+ ld a, [hQuotient + 1]
+ cp (1000 / $100) + 1
+ jr nc, .max_stat
+ cp 1000 / $100
+ jr c, .stat_value_okay
+ ld a, [hQuotient + 2]
+ cp 1000 % $100
+ jr c, .stat_value_okay
-.asm_e26b
- ld a, $3
- ld [$ffb5], a
- ld a, $e7
- ld [$ffb6], a
+.max_stat
+ ld a, 999 / $100
+ ld [hMultiplicand + 1], a
+ ld a, 999 % $100
+ ld [hMultiplicand + 2], a
-.asm_e273
+.stat_value_okay
pop bc
pop de
pop hl
@@ -9528,7 +9572,7 @@ GivePoke:: ; e277
jr z, .done
ld a, [CurPartyMon]
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [CurItem]
ld [hl], a
@@ -9613,27 +9657,27 @@ endr
push bc
ld a, [CurPartyMon]
ld hl, PartyMon1ID
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, 01001 / $100
ld [hli], a
ld [hl], 01001 % $100
pop bc
- callba SetPkmnCaughtData
- jr .asm_e3b2
+ callba SetPartymonCaughtData
+ jr .skip_nickname
.asm_e35e
ld a, BANK(sBoxMonOT)
call GetSRAMBank
ld de, sBoxMonOT
-.asm_e366
+.loop
ld a, [ScriptBank]
call GetFarByte
ld [de], a
inc hl
inc de
cp "@"
- jr nz, .asm_e366
+ jr nz, .loop
ld a, [ScriptBank]
call GetFarByte
ld b, a
@@ -9643,8 +9687,8 @@ endr
call Random
ld [hl], a
call CloseSRAM
- callba Function4db92
- jr .asm_e3b2
+ callba SetBoxMonCaughtData
+ jr .skip_nickname
.asm_e390
pop de
@@ -9663,10 +9707,10 @@ endr
.asm_e3a6
callba GiveANickname_YesNo
pop de
- jr c, .asm_e3b2
- call Functione3de
+ jr c, .skip_nickname
+ call InitNickname
-.asm_e3b2
+.skip_nickname
pop bc
pop de
ld a, b
@@ -9699,14 +9743,14 @@ TextJump_WasSentToBillsPC: ; 0xe3d9
db "@"
; 0xe3de
-Functione3de: ; e3de
+InitNickname: ; e3de
push de
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call DisableSpriteUpdates
pop de
push de
ld b, $0
- callba Function116c1
+ callba NamingScreen
pop hl
ld de, StringBuffer1
call InitName
@@ -9741,13 +9785,13 @@ UnknownText_0xe417: ; 0xe417
Functione41c: ; e41c (3:641c)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call LoadMenuDataHeader_0x1d75
+ ld [hBGMapMode], a
+ call LoadStandardMenuDataHeader
call ClearPCItemScreen
ld hl, Options
ld a, [hl]
push af
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
ld hl, UnknownText_0xe43a
call PrintText
pop af
@@ -9767,62 +9811,62 @@ Functione43f: ; e43f (3:643f)
ret
Functione443: ; e443 (3:6443)
- ld hl, MenuDataHeader_0xe46f
+ ld hl, .MenuDataHeader
call LoadMenuDataHeader
ld a, $1
-.asm_e44b
+.loop
ld [wMenuCursorBuffer], a
call SetPalettes
xor a
ld [wcf76], a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function1e5d
- jr c, .asm_e46b
+ jr c, .cancel
ld a, [wMenuCursorBuffer]
push af
ld a, [MenuSelection]
- ld hl, Jumptable_e4ba
+ ld hl, .Jumptable
rst JumpTable
pop bc
ld a, b
- jr nc, .asm_e44b
-.asm_e46b
+ jr nc, .loop
+.cancel
call WriteBackup
ret
; e46f (3:646f)
-MenuDataHeader_0xe46f: ; 0xe46f
+.MenuDataHeader: ; 0xe46f
db $40 ; flags
db 00, 00 ; start coords
db 17, 19 ; end coords
- dw MenuData2_0xe477
+ dw .MenuData2
db 1 ; default option
; 0xe477
-MenuData2_0xe477: ; 0xe477
+.MenuData2: ; 0xe477
db $80 ; flags
db 0 ; items
- dw MenuItems_e4c4
+ dw .items
dw Function1f79
- dw Strings_e47f
+ dw .strings
; 0xe47f
-Strings_e47f: ; e47f
+.strings: ; e47f
db "WITHDRAW <PK><MN>@"
db "DEPOSIT <PK><MN>@"
db "CHANGE BOX@"
db "MOVE <PK><MN> W/O MAIL@"
db "SEE YA!@"
-Jumptable_e4ba: ; e4ba (3:64ba)
- dw Functione559
- dw Functione4fe
- dw Functione583
- dw Functione4cd
- dw Functione4cb
+.Jumptable: ; e4ba (3:64ba)
+ dw BillsPC_WithdrawMenu
+ dw BillsPC_DepositMenu
+ dw BillsPC_ChangeBoxMenu
+ dw BillsPC_MovePKMNMenu
+ dw BillsPC_SeeYa
; e4c4
-MenuItems_e4c4: ; e4c4
+.items: ; e4c4
db 5
db 0 ; WITHDRAW
db 1; DEPOSIT
@@ -9832,27 +9876,27 @@ MenuItems_e4c4: ; e4c4
db -1
; e4cb
-Functione4cb: ; e4cb
+BillsPC_SeeYa: ; e4cb
scf
ret
; e4cd
-Functione4cd: ; e4cd
- call LoadMenuDataHeader_0x1d75
+BillsPC_MovePKMNMenu: ; e4cd
+ call LoadStandardMenuDataHeader
callba Function44781
- jr nc, .asm_e4e0
+ jr nc, .no_mail
ld hl, UnknownText_0xe4f9
call PrintText
- jr .asm_e4f4
+ jr .quit
-.asm_e4e0
+.no_mail
callba Function14b34
- jr c, .asm_e4f4
- callba Functione2759
- call Function222a
+ jr c, .quit
+ callba _MovePKMNWithoutMail
+ call ReturnToMapFromSubmenu
call ClearPCItemScreen
-.asm_e4f4
+.quit
call WriteBackup
and a
ret
@@ -9864,10 +9908,10 @@ UnknownText_0xe4f9: ; 0xe4f9
db "@"
; 0xe4fe
-Functione4fe: ; e4fe (3:64fe)
- call LoadMenuDataHeader_0x1d75
- callba Functione2391
- call Function222a
+BillsPC_DepositMenu: ; e4fe (3:64fe)
+ call LoadStandardMenuDataHeader
+ callba _DepositPKMN
+ call ReturnToMapFromSubmenu
call ClearPCItemScreen
call WriteBackup
and a
@@ -9911,7 +9955,7 @@ UnknownText_0xe533: ; 0xe533
CheckCurPartyMonFainted: ; e538
ld hl, PartyMon1HP
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
ld b, $0
.loop
ld a, [CurPartyMon]
@@ -9940,10 +9984,10 @@ CheckCurPartyMonFainted: ; e538
; e559
-Functione559: ; e559 (3:6559)
- call LoadMenuDataHeader_0x1d75
- callba Functione2583
- call Function222a
+BillsPC_WithdrawMenu: ; e559 (3:6559)
+ call LoadStandardMenuDataHeader
+ callba _WithdrawPKMN
+ call ReturnToMapFromSubmenu
call ClearPCItemScreen
call WriteBackup
and a
@@ -9970,8 +10014,8 @@ UnknownText_0xe57e: ; 0xe57e
db "@"
; 0xe583
-Functione583: ; e583 (3:6583)
- callba Functione35aa
+BillsPC_ChangeBoxMenu: ; e583 (3:6583)
+ callba _ChangeBox
and a
ret
@@ -9979,17 +10023,17 @@ ClearPCItemScreen: ; e58b
call DisableSpriteUpdates
xor a
ld [hBGMapMode], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
hlcoord 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
ld a, " "
call ByteFill
hlcoord 0,0
- ld bc, $0a12
+ lb bc, 10, 18
call TextBox
hlcoord 0,12
- ld bc, $0412
+ lb bc, 4, 18
call TextBox
call Function3200
call SetPalettes ; load regular palettes?
@@ -9999,10 +10043,10 @@ ClearPCItemScreen: ; e58b
Functione5bb: ; e5bb
ld a, [CurPartyMon]
ld hl, sBoxMon1Species
- ld bc, $0020
+ ld bc, $20
call AddNTimes
ld de, TempMonSpecies
- ld bc, $0020
+ ld bc, $20
ld a, BANK(sBoxMon1Species)
call GetSRAMBank
call CopyBytes
@@ -10016,7 +10060,7 @@ Functione5d9: ; unreferenced
jr z, .asm_e5f1
ld a, b
ld hl, Unknown_e66e
- ld bc, $0003
+ ld bc, 3
call AddNTimes
ld a, [hli]
push af
@@ -10033,7 +10077,7 @@ Functione5d9: ; unreferenced
.asm_e5f6
call GetSRAMBank
ld a, [hl]
- ld bc, $0016
+ ld bc, $16
add hl, bc
ld b, a
ld c, $0
@@ -10047,7 +10091,7 @@ Functione5d9: ; unreferenced
ld a, c
ld bc, 0
add hl, bc
- ld bc, $0020
+ ld bc, $20
call AddNTimes
ld a, [hl]
ld [de], a
@@ -10059,7 +10103,7 @@ Functione5d9: ; unreferenced
push hl
push bc
ld a, c
- ld bc, $035c
+ ld bc, $35c
add hl, bc
call SkipNames
call CopyBytes
@@ -10068,9 +10112,9 @@ Functione5d9: ; unreferenced
push hl
push bc
ld a, c
- ld bc, $001f
+ ld bc, $1f
add hl, bc
- ld bc, $0020
+ ld bc, $20
call AddNTimes
ld a, [hl]
ld [de], a
@@ -10080,9 +10124,9 @@ Functione5d9: ; unreferenced
push hl
push bc
ld a, c
- ld bc, $0015
+ ld bc, $15
add hl, bc
- ld bc, $0020
+ ld bc, $20
call AddNTimes
ld a, [hli]
and $f0
@@ -10113,15 +10157,15 @@ Functione5d9: ; unreferenced
; e66e
Unknown_e66e: ; e66e
- dbw BANK(sBox1), sBox1
- dbw BANK(sBox2), sBox2
- dbw BANK(sBox3), sBox3
- dbw BANK(sBox4), sBox4
- dbw BANK(sBox5), sBox5
- dbw BANK(sBox6), sBox6
- dbw BANK(sBox7), sBox7
- dbw BANK(sBox8), sBox8
- dbw BANK(sBox9), sBox9
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
dba sBox10
dba sBox11
dba sBox12
@@ -10132,9 +10176,9 @@ Unknown_e66e: ; e66e
Functione698: ; e698
ld hl, wBreedMon1Stats
ld de, TempMon
- ld bc, $0020
+ ld bc, $20
call CopyBytes
- callab Function50e1b
+ callab CalcLevel
ld a, [wBreedMon1Level]
ld b, a
ld a, d
@@ -10147,9 +10191,9 @@ Functione698: ; e698
Functione6b3: ; e6b3
ld hl, wBreedMon2Stats
ld de, TempMon
- ld bc, $0020
+ ld bc, $20
call CopyBytes
- callab Function50e1b
+ callab CalcLevel
ld a, [wBreedMon2Level]
ld b, a
ld a, d
@@ -10187,7 +10231,7 @@ BugContest_SetCaughtContestMon: ; e6ce
ld [CurPartySpecies], a
call GetBaseData
xor a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld hl, wContestMon
call ByteFill
xor a
@@ -10298,7 +10342,7 @@ WobbleChances: ; f9ba
KnowsMove: ; f9ea
- ld a, PartyMon1Moves - PartyMon1
+ ld a, MON_MOVES
call GetPartyParamLocation
ld a, [wd262]
ld b, a
@@ -10328,1094 +10372,23 @@ UnknownText_0xfa06: ; 0xfa06
SECTION "bank4", ROMX, BANK[$4]
-
INCLUDE "engine/pack.asm"
INCLUDE "engine/time.asm"
-CanLearnTMHMMove: ; 11639
- ld a, [CurPartySpecies]
- ld [CurSpecies], a
- call GetBaseData
- ld hl, BaseTMHM
- push hl
-
- ld a, [wd262]
- ld b, a
- ld c, 0
- ld hl, TMHMMoves
-.loop
- ld a, [hli]
- and a
- jr z, .end
- cp b
- jr z, .asm_11659
- inc c
- jr .loop
-
-.asm_11659
- pop hl
- ld b, CHECK_FLAG
- push de
- ld d, 0
- predef FlagPredef
- pop de
- ret
-
-.end
- pop hl
- ld c, 0
- ret
-; 1166a
-
-GetTMHMMove: ; 1166a
- ld a, [wd265]
- dec a
- ld hl, TMHMMoves
- ld b, 0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- ret
-; 1167a
-
-TMHMMoves: ; 1167a
- db DYNAMICPUNCH
- db HEADBUTT
- db CURSE
- db ROLLOUT
- db ROAR
- db TOXIC
- db ZAP_CANNON
- db ROCK_SMASH
- db PSYCH_UP
- db HIDDEN_POWER
- db SUNNY_DAY
- db SWEET_SCENT
- db SNORE
- db BLIZZARD
- db HYPER_BEAM
- db ICY_WIND
- db PROTECT
- db RAIN_DANCE
- db GIGA_DRAIN
- db ENDURE
- db FRUSTRATION
- db SOLARBEAM
- db IRON_TAIL
- db DRAGONBREATH
- db THUNDER
- db EARTHQUAKE
- db RETURN
- db DIG
- db PSYCHIC_M
- db SHADOW_BALL
- db MUD_SLAP
- db DOUBLE_TEAM
- db ICE_PUNCH
- db SWAGGER
- db SLEEP_TALK
- db SLUDGE_BOMB
- db SANDSTORM
- db FIRE_BLAST
- db SWIFT
- db DEFENSE_CURL
- db THUNDERPUNCH
- db DREAM_EATER
- db DETECT
- db REST
- db ATTRACT
- db THIEF
- db STEEL_WING
- db FIRE_PUNCH
- db FURY_CUTTER
- db NIGHTMARE
- db CUT
- db FLY
- db SURF
- db STRENGTH
- db FLASH
- db WHIRLPOOL
- db WATERFALL
-
-; Move tutor
- db FLAMETHROWER
- db THUNDERBOLT
- db ICE_BEAM
-
- db 0 ; end
-; 116b7
-
-_NamingScreen: ; 0x116b7
- call DisableSpriteUpdates
- call Function116c1
- call Function2b74
- ret
-; 0x116c1
-
-Function116c1: ; 116c1
- ld hl, wc6d0
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, wc6d4
- ld [hl], b
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [$ffde]
- push af
- xor a
- ld [$ffde], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call Function116f8
- call DelayFrame
-.asm_116e5
- call Function11915
- jr nc, .asm_116e5
- pop af
- ld [hInMenu], a
- pop af
- ld [$ffde], a
- pop af
- ld [Options], a
- call ClearJoypad
- ret
-; 116f8
-
-Function116f8: ; 116f8
- call WhiteBGMap
- ld b, $8
- call GetSGBLayout
- call DisableLCD
- call Function11c51
- call Function118a8
- ld a, $e3
- ld [rLCDC], a
- call Function1171d
- call WaitBGMap
- call WaitTop
- call SetPalettes
- call Function11be0
- ret
-; 1171d
-
-Function1171d: ; 1171d
- ld a, [wc6d4]
- and 7
- ld e, a
- ld d, 0
- ld hl, Jumptable_1172e
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 1172e
-
-
-Jumptable_1172e: ; 1172e (4:572e)
- dw Function1173e
- dw Function1178d
- dw Function117ae
- dw Function117d1
- dw Function117f5
- dw Function1182c
- dw Function1173e
- dw Function1173e
-
-
-Function1173e: ; 1173e (4:573e)
- ld a, [CurPartySpecies]
- ld [wd265], a
- ld hl, Function8e83f
- ld a, BANK(Function8e83f)
- ld e, $1
- rst FarCall ; ; indirect jump to Function8e83f (8e83f (23:683f))
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- hlcoord 5, 2
- call PlaceString
- ld l, c
- ld h, b
- ld de, Strings_11780
- call PlaceString
- inc de
- hlcoord 5, 4
- call PlaceString
- callba GetGender
- jr c, .asm_1177c
- ld a, $ef
- jr nz, .asm_11778
- ld a, $f5
-.asm_11778
- hlcoord 1, 2
- ld [hl], a
-.asm_1177c
- call Function1187b
- ret
-; 11780 (4:5780)
-
-Strings_11780: ; 11780
- db "'S@"
- db "NICKNAME?@"
-; 1178d
-
-Function1178d: ; 1178d (4:578d)
- callba GetPlayerIcon
- call Function11847
- hlcoord 5, 2
- ld de, String_117a3
- call PlaceString
- call Function11882
- ret
-; 117a3 (4:57a3)
-
-String_117a3: ; 117a3
- db "YOUR NAME?@"
-; 117ae
-
-Function117ae: ; 117ae (4:57ae)
- ld de, SilverSpriteGFX
- ld b, BANK(SilverSpriteGFX)
- call Function11847
- hlcoord 5, 2
- ld de, String_117c3
- call PlaceString
- call Function11882
- ret
-; 117c3 (4:57c3)
-
-String_117c3: ; 117c3
- db "RIVAL'S NAME?@"
-; 117d1
-
-Function117d1: ; 117d1 (4:57d1)
- ld de, MomSpriteGFX
- ld b, BANK(MomSpriteGFX)
- call Function11847
- hlcoord 5, 2
- ld de, String_117e6
- call PlaceString
- call Function11882
- ret
-; 117e6 (4:57e6)
-
-String_117e6: ; 117e6
- db "MOTHER'S NAME?@"
-; 117f5
-
-Function117f5: ; 117f5 (4:57f5)
- ld de, PokeBallSpriteGFX
- ld hl, VTiles0 tile $00
- lb bc, BANK(PokeBallSpriteGFX), $4
- call Request2bpp
- xor a
- ld hl, wc300
- ld [hli], a
- ld [hl], a
- ld de, $2420
- ld a, $a
- call Function3b2a
- ld hl, $1
- add hl, bc
- ld [hl], $0
- hlcoord 5, 2
- ld de, String_11822
- call PlaceString
- call Function11889
- ret
-; 11822 (4:5822)
-
-String_11822: ; 11822
- db "BOX NAME?@"
-; 1182c
-
-Function1182c: ; 1182c (4:582c)
- hlcoord 3, 2
- ld de, String_11839
- call PlaceString
- call Function11882
- ret
-; 11839 (4:5839)
-
-String_11839: ; 11839
- db "おともだち の なまえは?@"
-; 11847
-
-Function11847: ; 11847 (4:5847)
- push de
- ld hl, VTiles0 tile $00
- ld c, $4
- push bc
- call Request2bpp
- pop bc
- ld hl, $c0
- add hl, de
- ld e, l
- ld d, h
- ld hl, VTiles0 tile $04
- call Request2bpp
- xor a
- ld hl, wc300
- ld [hli], a
- ld [hl], a
- pop de
- ld b, $a
- ld a, d
- cp $7a
- jr nz, .asm_11873
- ld a, e
- cp $40
- jr nz, .asm_11873
- ld b, $1e
-.asm_11873
- ld a, b
- ld de, $2420
- call Function3b2a
- ret
-
-Function1187b: ; 1187b (4:587b)
- ld a, $a
- hlcoord 5, 6
- jr Function11890
-
-Function11882: ; 11882 (4:5882)
- ld a, $7
- hlcoord 5, 6
- jr Function11890
-
-Function11889: ; 11889 (4:5889)
- ld a, $8
- hlcoord 5, 4
- jr Function11890
-
-Function11890: ; 11890 (4:5890)
- ld [wc6d3], a
- ld a, l
- ld [wc6d8], a
- ld a, h
- ld [wc6d9], a
- ret
-
-
-Function1189c: ; 1189c
- push bc
- push af
- ld a, [wc6d4]
- sub $3
- ld b, a
- pop af
- dec b
- pop bc
- ret
-; 118a8
-
-Function118a8: ; 118a8
- call WaitTop
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $60
- call ByteFill
- hlcoord 1, 1
- lb bc, 6, 18
- call Function1189c
- jr nz, .asm_118c4
- lb bc, 4, 18
-
-.asm_118c4
- call ClearBox
- ld de, NameInputUpper
-Function118ca: ; 118ca
- call Function1189c
- jr nz, .asm_118d5
- ld hl, BoxNameInputLower - NameInputLower
- add hl, de
- ld d, h
- ld e, l
-
-.asm_118d5
- push de
- hlcoord 1, 8
- lb bc, 7, 18
- call Function1189c
- jr nz, .asm_118e7
- hlcoord 1, 6
- lb bc, 9, 18
-
-.asm_118e7
- call ClearBox
- hlcoord 1, 16
- lb bc, 1, 18
- call ClearBox
- pop de
- hlcoord 2, 8
- ld b, $5
- call Function1189c
- jr nz, .asm_11903
- hlcoord 2, 6
- ld b, $6
-
-.asm_11903
- ld c, $11
-.asm_11905
- ld a, [de]
- ld [hli], a
- inc de
- dec c
- jr nz, .asm_11905
- push de
- ld de, $0017
- add hl, de
- pop de
- dec b
- jr nz, .asm_11903
- ret
-; 11915
-
-Function11915: ; 11915
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_11930
- call Function11968
- callba Function8cf62
- call Function11940
- call DelayFrame
- and a
- ret
-
-.asm_11930
- callab Function8cf53
- call ClearSprites
- xor a
- ld [hSCX], a
- ld [hSCY], a
- scf
- ret
-; 11940
-
-Function11940: ; 11940
- xor a
- ld [hBGMapMode], a
- hlcoord 1, 5
- call Function1189c
- jr nz, .asm_1194e
- hlcoord 1, 3
-
-.asm_1194e
- lb bc, 1, 18
- call ClearBox
- ld hl, wc6d0
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld hl, wc6d8
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 11968
-
-Function11968: ; 11968
- ld a, [wJumptableIndex]
- ld e, a
- ld d, $0
- ld hl, Jumptable_11977
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11977
-
-
-Jumptable_11977: ; 11977 (4:5977)
- dw Function1197b
- dw Function119a1
-
-
-Function1197b: ; 1197b (4:597b)
- lb de, $50, $18
- call Function1189c
- jr nz, .asm_11985
- ld d, $40
-.asm_11985
- ld a, $2
- call Function3b2a
- ld a, c
- ld [wc6d5], a
- ld a, b
- ld [wc6d6], a
- ld hl, $1
- add hl, bc
- ld a, [hl]
- ld hl, $e
- add hl, bc
- ld [hl], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function119a1: ; 119a1 (4:59a1)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and A_BUTTON
- jr nz, .a
- ld a, [hl]
- and B_BUTTON
- jr nz, .b
- ld a, [hl]
- and START
- jr nz, .start
- ld a, [hl]
- and SELECT
- jr nz, .select
- ret
-
-.a
- call Function11a0b
- cp $1
- jr z, .select
- cp $2
- jr z, .b
- cp $3
- jr z, .asm_119eb
- call Function11c11
- call Function11b14
- ret nc
-
-.start
- ld hl, wc6d5
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld hl, $c
- add hl, bc
- ld [hl], $8
- ld hl, $d
- add hl, bc
- ld [hl], $4
- call Function1189c
- ret nz
- inc [hl]
- ret
-
-.b
- call Function11bbc
- ret
-
-.asm_119eb
- call Function11bf7
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.select
- ld hl, wcf64
- ld a, [hl]
- xor 1
- ld [hl], a
- jr z, .asm_11a04
- ld de, NameInputLower
- call Function118ca
- ret
-
-.asm_11a04
- ld de, NameInputUpper
- call Function118ca
- ret
-
-Function11a0b: ; 11a0b (4:5a0b)
- ld hl, wc6d5
- ld c, [hl]
- inc hl
- ld b, [hl]
-
-Function11a11: ; 11a11 (4:5a11)
- ld hl, $d
- add hl, bc
- ld a, [hl]
- push bc
- ld b, $4
- call Function1189c
- jr nz, .asm_11a1f
- inc b
-.asm_11a1f
- cp b
- pop bc
- jr nz, .asm_11a39
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $3
- jr c, .asm_11a33
- cp $6
- jr c, .asm_11a36
- ld a, $3
- ret
-.asm_11a33
- ld a, $1
- ret
-.asm_11a36
- ld a, $2
- ret
-.asm_11a39
- xor a
- ret
-
-Function11a3b: ; 11a3b (4:5a3b)
- call Function11a8b
- ld hl, $d
- add hl, bc
- ld a, [hl]
- ld e, a
- swap e
- ld hl, $7
- add hl, bc
- ld [hl], e
- ld d, $4
- call Function1189c
- jr nz, .asm_11a53
- inc d
-.asm_11a53
- cp d
- ld de, Unknown_11a79
- ld a, $0
- jr nz, .asm_11a60
- ld de, Unknown_11a82
- ld a, $1
-.asm_11a60
- ld hl, $e
- add hl, bc
- add [hl]
- ld hl, $1
- add hl, bc
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld l, [hl]
- ld h, $0
- add hl, de
- ld a, [hl]
- ld hl, $6
- add hl, bc
- ld [hl], a
- ret
-; 11a79 (4:5a79)
-
-Unknown_11a79: ; 11a79
- db $00, $10, $20, $30, $40, $50, $60, $70, $80
-Unknown_11a82: ; 11a82
- db $00, $00, $00, $30, $30, $30, $60, $60, $60
-; 11a8b
-
-Function11a8b: ; 11a8b (4:5a8b)
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .up
- ld a, [hl]
- and D_DOWN
- jr nz, .down
- ld a, [hl]
- and D_LEFT
- jr nz, .left
- ld a, [hl]
- and D_RIGHT
- jr nz, .right
- ret
-.right
- call Function11a11
- and a
- jr nz, .asm_11ab7
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $8
- jr nc, .asm_11ab4
- inc [hl]
- ret
-.asm_11ab4
- ld [hl], $0
- ret
-.asm_11ab7
- cp $3
- jr nz, .asm_11abc
- xor a
-.asm_11abc
- ld e, a
- add a
- add e
- ld hl, $c
- add hl, bc
- ld [hl], a
- ret
-.left
- call Function11a11
- and a
- jr nz, .asm_11ad8
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_11ad5
- dec [hl]
- ret
-.asm_11ad5
- ld [hl], $8
- ret
-.asm_11ad8
- cp $1
- jr nz, .asm_11ade
- ld a, $4
-.asm_11ade
-rept 2
- dec a
-endr
- ld e, a
- add a
- add e
- ld hl, $c
- add hl, bc
- ld [hl], a
- ret
-.down
- ld hl, $d
- add hl, bc
- ld a, [hl]
- call Function1189c
- jr nz, .asm_11af9
- cp $5
- jr nc, .asm_11aff
- inc [hl]
- ret
-.asm_11af9
- cp $4
- jr nc, .asm_11aff
- inc [hl]
- ret
-.asm_11aff
- ld [hl], $0
- ret
-.up
- ld hl, $d
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_11b0c
- dec [hl]
- ret
-.asm_11b0c
- ld [hl], $4
- call Function1189c
- ret nz
- inc [hl]
- ret
-
-Function11b14: ; 11b14 (4:5b14)
- ld a, [wc6d7]
-
-Function11b17: ; 11b17 (4:5b17)
- ld a, [wc6d3]
- ld c, a
- ld a, [wc6d2]
- cp c
- ret nc
-
- ld a, [wc6d7]
-
-Function11b23: ; 11b23
- call Function11bd0
- ld [hl], a
-
-Function11b27: ; 11b27
- ld hl, wc6d2
- inc [hl]
- call Function11bd0
- ld a, [hl]
- cp $50
- jr z, .asm_11b37
- ld [hl], $f2
- and a
- ret
-.asm_11b37
- scf
- ret
-; 11b39 (4:5b39)
-
-Function11b39: ; 11b39
- ld a, [wc6d2]
- and a
- ret z
- push hl
- ld hl, wc6d2
- dec [hl]
- call Function11bd0
- ld c, [hl]
- pop hl
-
-.asm_11b48
- ld a, [hli]
- cp $ff
- jr z, Function11b27
- cp c
- jr z, .asm_11b53
- inc hl
- jr .asm_11b48
-
-.asm_11b53
- ld a, [hl]
- jr Function11b23
-; 11b56
-
-Dakutens: ; Dummied out
- db "かが", "きぎ", "くぐ", "けげ", "こご"
- db "さざ", "しじ", "すず", "せぜ", "そぞ"
- db "ただ", "ちぢ", "つづ", "てで", "とど"
- db "はば", "ひび", "ふぶ", "へべ", "ほぼ"
- db "カガ", "キギ", "クグ", "ケゲ", "コゴ"
- db "サザ", "シジ", "スズ", "セゼ", "ソゾ"
- db "タダ", "チヂ", "ツヅ", "テデ", "トド"
- db "ハバ", "ヒビ", "フブ", "へべ", "ホボ"
- db $ff
-
-Handakutens: ; Dummied out
- db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ"
- db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ"
- db $ff
-; 11bbc
-
-Function11bbc: ; 11bbc (4:5bbc)
- ld hl, wc6d2
- ld a, [hl]
- and a
- ret z
- dec [hl]
- call Function11bd0
- ld [hl], $f2
- inc hl
- ld a, [hl]
- cp $f2
- ret nz
- ld [hl], $eb
- ret
-
-Function11bd0: ; 11bd0 (4:5bd0)
- push af
- ld hl, wc6d0
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wc6d2]
- ld e, a
- ld d, 0
- add hl, de
- pop af
- ret
-; 11be0
-
-Function11be0: ; 11be0
-; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0
- ld hl, wc6d0
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld [hl], "·"
- inc hl
- ld a, [wc6d3]
- dec a
- ld c, a
- ld a, "→"
-.loop
- ld [hli], a
- dec c
- jr nz, .loop
- ld [hl], "@"
- ret
-; 11bf7
+INCLUDE "engine/tmhm.asm"
-
-Function11bf7: ; 11bf7 (4:5bf7)
- ld hl, wc6d0
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wc6d3]
- ld c, a
-.asm_11c01
- ld a, [hl]
- cp $eb
- jr z, .asm_11c0a
- cp $f2
- jr nz, .asm_11c0c
-.asm_11c0a
- ld [hl], $50
-.asm_11c0c
- inc hl
- dec c
- jr nz, .asm_11c01
- ret
-
-Function11c11: ; 11c11 (4:5c11)
- ld hl, wc6d5
- ld c, [hl]
- inc hl
- ld b, [hl]
- ld hl, $6
- add hl, bc
- ld a, [hl]
- ld hl, $4
- add hl, bc
- add [hl]
- sub $8
- srl a
- srl a
- srl a
- ld e, a
- ld hl, $7
- add hl, bc
- ld a, [hl]
- ld hl, $5
- add hl, bc
- add [hl]
- sub $10
- srl a
- srl a
- srl a
- ld d, a
- hlcoord 0, 0
- ld bc, $14
-.asm_11c43
- ld a, d
- and a
- jr z, .asm_11c4b
- add hl, bc
- dec d
- jr .asm_11c43
-.asm_11c4b
- add hl, de
- ld a, [hl]
- ld [wc6d7], a
- ret
-
-
-Function11c51: ; 11c51
- call ClearSprites
- callab Function8cf53
- call Functione51
- call Functione5f
-
- ld de, GFX_11e65
- ld hl, VTiles1 tile $6b
- lb bc, BANK(GFX_11e65), 1
- call Get1bpp
-
- ld de, GFX_11e6d
- ld hl, VTiles1 tile $72
- lb bc, BANK(GFX_11e6d), 1
- call Get1bpp
-
- ld de, VTiles2 tile $60
- ld hl, GFX_11cb7
- ld bc, $10
- ld a, BANK(GFX_11cb7)
- call FarCopyBytes
-
- ld de, VTiles0 tile $7e
- ld hl, GFX_11cc7
- ld bc, $20
- ld a, BANK(GFX_11cc7)
- call FarCopyBytes
-
- ld a, $5
- ld hl, wc312
- ld [hli], a
- ld [hl], $7e
- xor a
- ld [hSCY], a
- ld [wc3bf], a
- ld [hSCX], a
- ld [wc3c0], a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [hBGMapMode], a
- ld [wc6d2], a
- ld a, $7
- ld [hWX], a
- ret
-; 11cb7
-
-GFX_11cb7: ; 11cb7
-INCBIN "gfx/unknown/011cb7.2bpp"
-; 11cc7
-
-GFX_11cc7: ; 11cc7
-INCBIN "gfx/unknown/011cc7.2bpp"
-; 11ce7
-
-NameInputLower:
- db "a b c d e f g h i"
- db "j k l m n o p q r"
- db "s t u v w x y z "
- db "× ( ) : ; [ ] <PK> <MN>"
- db "UPPER DEL END "
-BoxNameInputLower:
- db "a b c d e f g h i"
- db "j k l m n o p q r"
- db "s t u v w x y z "
- db "é 'd 'l 'm 'r 's 't 'v 0"
- db "1 2 3 4 5 6 7 8 9"
- db "UPPER DEL END "
-NameInputUpper: ; Unreferenced?
- db "A B C D E F G H I"
- db "J K L M N O P Q R"
- db "S T U V W X Y Z "
- db "- ? ! / . , "
- db "lower DEL END "
-BoxNameInputUpper:
- db "A B C D E F G H I"
- db "J K L M N O P Q R"
- db "S T U V W X Y Z "
- db "× ( ) : ; [ ] <PK> <MN>"
- db "- ? ! ♂ ♀ / . , &"
- db "lower DEL END "
-; 11e5d
-
-GFX_11e5d: ; ????
-INCBIN "gfx/unknown/011e5d.2bpp"
-; 11e6d
-
-GFX_11e65:
-INCBIN "gfx/unknown/011e65.2bpp"
-; 11e6d
-
-GFX_11e6d: ; 11e6d
-INCBIN "gfx/unknown/011e6d.2bpp"
-; 11e75
+INCLUDE "engine/namingscreen.asm"
Function11e75: ; 11e75 (4:5e75)
ld hl, wc6d0
ld [hl], e
inc hl
ld [hl], d
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld a, [hInMenu]
push af
ld a, $1
@@ -11428,11 +10401,11 @@ Function11e75: ; 11e75 (4:5e75)
pop af
ld [hInMenu], a
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
ret
Function11e9a: ; 11e9a (4:5e9a)
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
call Function11c51
ld de, VTiles0 tile $00
@@ -11452,7 +10425,7 @@ Function11e9a: ; 11e9a (4:5e9a)
ld [hl], $0
call Function11f84
ld a, $e3
- ld [rLCDC], a ; $ff00+$40
+ ld [rLCDC], a
call Function11f74
ld b, $8
call GetSGBLayout
@@ -11536,14 +10509,14 @@ Function11fc0: ; 11fc0 (4:5fc0)
callab Function8cf53
call ClearSprites
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
scf
ret
Function11feb: ; 11feb (4:5feb)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
hlcoord 1, 1
lb bc, 4, 18
call ClearBox
@@ -11554,7 +10527,7 @@ Function11feb: ; 11feb (4:5feb)
hlcoord 2, 2
call PlaceString
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
Function12008: ; 12008 (4:6008)
@@ -11888,7 +10861,7 @@ String_121dd: ; 122dd
db "K L M N O P Q R S T"
db "U V W X Y Z , ? !"
db "1 2 3 4 5 6 7 8 9 0"
- db "ゅ ょ ", $70, " ", $71, " é ♂ ♀ ¥ … ×"
+ db "<PK> <MN> <PO> <KE> é ♂ ♀ ¥ … ×"
db "lower DEL END "
; 1224f
@@ -11897,3011 +10870,33 @@ String_1224f: ; 1224f
db "k l m n o p q r s t"
db "u v w x y z . - /"
db "'d 'l 'm 'r 's 't 'v & ( )"
- db $72, " ", $73, " [ ] ' : ; "
+ db "<``> <''> [ ] ' : ; "
db "UPPER DEL END "
; 122c1
-UnknownScript_0x122c1: ; 0x122c1
+Script_AbortBugContest: ; 0x122c1
checkflag ENGINE_BUG_CONTEST_TIMER
- iffalse .script_122cd
+ iffalse .finish
setflag ENGINE_DAILY_BUG_CONTEST
special ContestReturnMons
-.script_122cd
+.finish
end
; 0x122ce
-FindItemInBallScript:: ; 0x122ce
- callasm Function122f8
- iffalse NoRoomForItemInBallScript
- disappear LAST_TALKED
- loadfont
- writetext UnknownText_0x122ee
- playsound SFX_ITEM
- pause 60
- itemnotify
- loadmovesprites
- end
-; 0x122e3
-
-NoRoomForItemInBallScript: ; 0x122e3
- loadfont
- writetext UnknownText_0x122ee
- closetext
- writetext UnknownText_0x122f3
- closetext
- loadmovesprites
- end
-; 0x122ee
-
-UnknownText_0x122ee: ; 0x122ee
- ; found @ !
- text_jump UnknownText_0x1c0a1c
- db "@"
-; 0x122f3
-
-UnknownText_0x122f3: ; 0x122f3
- ; But can't carry any more items.
- text_jump UnknownText_0x1c0a2c
- db "@"
-; 0x122f8
-
-Function122f8: ; 122f8
- xor a
- ld [ScriptVar], a
- ld a, [EngineBuffer1]
- ld [wd265], 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
-
-HealMachineAnim: ; 12324
- ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon.
- ld a, [PartyCount]
- and a
- ret z
- ; The location of the healing machine relative to the player is stored in ScriptVar.
- ; 0: Up and left (Pokemon Center)
- ; 1: Left (Elm's Lab)
- ; 2: Up (Hall of Fame)
- ld a, [ScriptVar]
- ld [Buffer1], a
- ld a, [rOBP1]
- ld [Buffer2], a
- call Function1233e
- ld a, [Buffer2]
- call Functiond24
- ret
-; 1233e
-
-Function1233e: ; 1233e
- xor a
- ld [wd1ec], a
-.asm_12342
- ld a, [Buffer1]
- ld e, a
- ld d, 0
- ld hl, Unknown_12365
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wd1ec]
- ld e, a
- inc a
- ld [wd1ec], a
- add hl, de
- ld a, [hl]
- cp 5
- jr z, .asm_12364
- ld hl, Jumptable_12377
- rst JumpTable
- jr .asm_12342
-
-.asm_12364
- ret
-; 12365
-
-Unknown_12365: ; 12365
- dw Unknown_1236b
- dw Unknown_1236f
- dw Unknown_12373
-; 1236b
-
-Unknown_1236b: ; 1236b
- db 0, 1, 3, 5
-Unknown_1236f: ; 1236f
- db 0, 1, 3, 5
-Unknown_12373: ; 12373
- db 0, 2, 4, 5
-; 12377
-
-Jumptable_12377: ; 12377
- dw Function12383
- dw Function12393
- dw Function123a1
- dw Function123bf
- dw Function123c8
- dw Function123db
-; 12383
-
-Function12383: ; 12383
- call Function12434
- ld de, GFX_123fc
- ld hl, VTiles0 tile $7c
- lb bc, BANK(GFX_123fc), $2
- call Request2bpp
- ret
-; 12393
-
-Function12393: ; 12393
- ld hl, Sprites + $80
- ld de, Unknown_123dc
- call Function124a3
- call Function124a3
- jr Function123a7
-
-Function123a1: ; 123a1
- ld hl, Sprites + $80
- ld de, Unknown_1241c
-
-Function123a7: ; 123a7
- ld a, [PartyCount]
- ld b, a
-.asm_123ab
- call Function124a3
- push de
- ld de, SFX_SECOND_PART_OF_ITEMFINDER
- call PlaySFX
- pop de
- ld c, 30
- call DelayFrames
- dec b
- jr nz, .asm_123ab
- ret
-; 123bf
-
-Function123bf: ; 123bf
- ld de, MUSIC_HEAL
- call PlayMusic
- jp Function12459
-; 123c8
-
-Function123c8: ; 123c8
- ld de, SFX_GAME_FREAK_LOGO_GS
- call PlaySFX
- call Function12459
- call WaitSFX
- ld de, SFX_BOOT_PC
- call PlaySFX
- ret
-; 123db
-
-Function123db: ; 123db
- ret
-; 123dc
-
-Unknown_123dc: ; 123dc
- db $20, $22, $7c, $16
- db $20, $26, $7c, $16
- db $26, $20, $7d, $16
- db $26, $28, $7d, $36
- db $2b, $20, $7d, $16
- db $2b, $28, $7d, $36
- db $30, $20, $7d, $16
- db $30, $28, $7d, $36
-; 123fc
-
-GFX_123fc: ; 123fc
-INCBIN "gfx/unknown/0123fc.2bpp"
-; 1241c
-
-Unknown_1241c: ; 1241c
- db $3c, $51, $7d, $16
- db $3c, $56, $7d, $16
- db $3b, $4d, $7d, $16
- db $3b, $5a, $7d, $16
- db $39, $49, $7d, $16
- db $39, $5d, $7d, $16
-; 12434
-
-Function12434: ; 12434
- call Function3218
- jr nz, .asm_1243e
- ld a, $e0
- ld [rOBP1], a
- ret
-
-.asm_1243e
- ld hl, Palette_12451
- ld de, OBPals + 8 * 6
- ld bc, 8
- ld a, $5
- call FarCopyWRAM
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 12451
-
-Palette_12451: ; 12451
- RGB 31, 31, 31
- RGB 31, 19, 10
- RGB 31, 07, 01
- RGB 00, 00, 00
-; 12459
-
-Function12459: ; 12459
- ld c, $8
-.asm_1245b
- push bc
- call Function12469
- ld c, $a
- call DelayFrames
- pop bc
- dec c
- jr nz, .asm_1245b
- ret
-; 12469
-
-Function12469: ; 12469
- call Function3218
- jr nz, .asm_12475
- ld a, [rOBP1]
- xor $28
- ld [rOBP1], a
- ret
-
-.asm_12475
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld hl, OBPals + 8 * 6
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push de
- ld c, $3
-.asm_12486
- ld a, [hli]
- ld e, a
- ld a, [hld]
- ld d, a
- dec hl
- ld a, d
- ld [hld], a
- ld a, e
- ld [hli], a
-rept 3
- inc hl
-endr
- dec c
- jr nz, .asm_12486
- pop de
- dec hl
- ld a, d
- ld [hld], a
- ld a, e
- ld [hl], a
- pop af
- ld [rSVBK], a
- ld a, $1
- ld [hCGBPalUpdate], a
- ret
-; 124a3
-
-Function124a3: ; 124a3
- push bc
- ld a, [Buffer1]
- lb bc, $10, $20
- cp $1
- jr z, .asm_124b1
- lb bc, $00, $00
-
-.asm_124b1
- ld a, [de]
- add c
- inc de
- ld [hli], a
- ld a, [de]
- add b
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- pop bc
- ret
-; 124c1
-
-UnknownScript_0x124c1:: ; 0x124c1
- callasm Function1250a
- jump UnknownScript_0x124ce
-; 0x124c8
-
-UnknownScript_0x124c8:: ; 0x124c8
- refreshscreen $0
- callasm Function124fa
-
-UnknownScript_0x124ce: ; 0x124ce
- writetext UnknownText_0x124f5
- closetext
- special FadeBlackBGMap
- pause 40
- special HealParty
- checkflag ENGINE_BUG_CONTEST_TIMER
- iftrue .script_64f2
- callasm HalveMoney
- callasm Function12527
- farscall UnknownScript_0x122c1
- special WarpToSpawnPoint
- newloadmap $f1
- resetfuncs
-
-.script_64f2
- jumpstd bugcontestresultswarp
-; 0x124f5
-
-UnknownText_0x124f5: ; 0x124f5
- ; is out of useable #MON! whited out!
- text_jump UnknownText_0x1c0a4e
- db "@"
-; 0x124fa
-
-Function124fa: ; 124fa
- call ClearPalettes
- call ClearScreen
- call Function3200
- call HideSprites
- call Function4f0
- ret
-; 1250a
-
-Function1250a: ; 1250a
- ld b, $0
- call GetSGBLayout
- call SetPalettes
- ret
-; 12513
-
-HalveMoney: ; 12513
-
-; Empty function...
- callba MobileFn_1060c7
-
-; Halve the player's money.
- ld hl, Money
- ld a, [hl]
- srl a
- ld [hli], a
- ld a, [hl]
- rra
- ld [hli], a
- ld a, [hl]
- rra
- ld [hl], a
- ret
-; 12527
-
-
-Function12527: ; 12527
- ld a, [wdcb2]
- ld d, a
- ld a, [wdcb3]
- ld e, a
- callba IsSpawnPoint
- ld a, c
- jr c, .yes
- xor a
-
-.yes
- ld [wd001], a
- ret
-; 1253d
-
-Script_ForcedMovement:: ; 0x1253d
- checkcode VAR_FACING
- if_equal DOWN, UnknownScript_0x12555
- if_equal UP, UnknownScript_0x12550
- if_equal LEFT, UnknownScript_0x1255f
- if_equal RIGHT, UnknownScript_0x1255a
- end
-; 0x12550
-
-UnknownScript_0x12550: ; 0x12550
- applymovement PLAYER, MovementData_0x12564
- end
-; 0x12555
-
-UnknownScript_0x12555: ; 0x12555
- applymovement PLAYER, MovementData_0x1256b
- end
-; 0x1255a
-
-UnknownScript_0x1255a: ; 0x1255a
- applymovement PLAYER, MovementData_0x12572
- end
-; 0x1255f
-
-UnknownScript_0x1255f: ; 0x1255f
- applymovement PLAYER, MovementData_0x12579
- end
-; 0x12564
-
-MovementData_0x12564: ; 0x12564
- step_wait5
- big_step_down
- turn_in_down
- step_wait5
- big_step_down
- turn_head_down
- step_end
-; 0x1256b
-
-MovementData_0x1256b: ; 0x1256b
- step_wait5
- big_step_down
- turn_in_up
- step_wait5
- big_step_down
- turn_head_up
- step_end
-; 0x12572
-
-MovementData_0x12572: ; 0x12572
- step_wait5
- big_step_down
- turn_in_left
- step_wait5
- big_step_down
- turn_head_left
- step_end
-; 0x12579
-
-MovementData_0x12579: ; 0x12579
- step_wait5
- big_step_down
- turn_in_right
- step_wait5
- big_step_down
- turn_head_right
- step_end
-; 0x12580
-
-
-ItemFinder: ; 12580
- callba CheckForSignpostItems
- jr c, .asm_1258d
- ld hl, UnknownScript_0x125ba
- jr .asm_12590
-
-.asm_1258d
- ld hl, UnknownScript_0x125ad
-
-.asm_12590
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-; 12599
-
-Function12599: ; 12599
- ld c, $4
-.asm_1259b
- push bc
- ld de, SFX_SECOND_PART_OF_ITEMFINDER
- call WaitPlaySFX
- ld de, SFX_TRANSACTION
- call WaitPlaySFX
- pop bc
- dec c
- jr nz, .asm_1259b
- ret
-; 125ad
-
-UnknownScript_0x125ad: ; 0x125ad
- reloadmappart
- special UpdateTimePals
- callasm Function12599
- writetext UnknownText_0x125c3
- loadmovesprites
- end
-; 0x125ba
-
-UnknownScript_0x125ba: ; 0x125ba
- reloadmappart
- special UpdateTimePals
- writetext UnknownText_0x125c8
- loadmovesprites
- end
-; 0x125c3
-
-UnknownText_0x125c3: ; 0x125c3
- ; Yes! ITEMFINDER indicates there's an item nearby.
- text_jump UnknownText_0x1c0a77
- db "@"
-; 0x125c8
-
-UnknownText_0x125c8: ; 0x125c8
- ; Nope! ITEMFINDER isn't responding.
- text_jump UnknownText_0x1c0aa9
- db "@"
-; 0x125cd
-
-
-StartMenu:: ; 125cd
-
- call ResetTextRelatedRAM
-
- ld de, SFX_MENU
- call PlaySFX
-
- callba Function6454
-
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- ld hl, .MenuDataHeader
- jr z, .GotMenuData
- ld hl, .ContestMenuDataHeader
-.GotMenuData
-
- call LoadMenuDataHeader
- call .SetUpMenuItems
- ld a, [wd0d2]
- ld [wMenuCursorBuffer], a
- call .DrawMenuAccount_
- call MenuFunc_1e7f
- call .DrawBugContestStatusBox
- call Function2e31
- call Function2e20
- callba Function64bf
- call .DrawBugContestStatus
- call UpdateTimePals
- jr .Select
-
-.Reopen
- call UpdateSprites
- call UpdateTimePals
- call .SetUpMenuItems
- ld a, [wd0d2]
- ld [wMenuCursorBuffer], a
-
-.Select
- call .GetInput
- jr c, .Exit
- call .DrawMenuAccount
- ld a, [wMenuCursorBuffer]
- ld [wd0d2], a
- call PlayClickSFX
- call Function1bee
- call .OpenMenu
-
-; Menu items have different return functions.
-; For example, saving exits the menu.
- ld hl, .MenuReturns
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.MenuReturns
- dw .Reopen
- dw .Exit
- dw .ExitMenuCallFuncLoadMoveSprites
- dw .ExitMenuRunScriptLoadMoveSprites
- dw .ExitMenuRunScript
- dw .ReturnEnd
- dw .ReturnRedraw
-
-.Exit
- ld a, [hOAMUpdate]
- push af
- ld a, 1
- ld [hOAMUpdate], a
- call Functione5f
- pop af
- ld [hOAMUpdate], a
-.ReturnEnd
- call ExitMenu
-.ReturnEnd2
- call LoadMoveSprites
- call UpdateTimePals
- ret
-
-.GetInput
-; Return carry on exit, and no-carry on selection.
- xor a
- ld [hBGMapMode], a
- call .DrawMenuAccount
- call SetUpMenu
- ld a, $ff
- ld [MenuSelection], a
-.loop
- call .PrintMenuAccount
- call Function1f1a
- ld a, [wcf73]
- cp B_BUTTON
- jr z, .b
- cp A_BUTTON
- jr z, .a
- jr .loop
-.a
- call PlayClickSFX
- and a
- ret
-.b
- scf
- ret
-; 12691
-
-.ExitMenuRunScript ; 12691
- call ExitMenu
- ld a, HMENURETURN_SCRIPT
- ld [hMenuReturn], a
- ret
-; 12699
-
-.ExitMenuRunScriptLoadMoveSprites ; 12699
- call ExitMenu
- ld a, HMENURETURN_SCRIPT
- ld [hMenuReturn], a
- jr .ReturnEnd2
-; 126a2
-
-.ExitMenuCallFuncLoadMoveSprites ; 126a2
- call ExitMenu
- ld hl, wQueuedScriptAddr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [wQueuedScriptBank]
- rst FarCall
- jr .ReturnEnd2
-; 126b1
-
-.ReturnRedraw ; 126b1
- call .Clear
- jp .Reopen
-; 126b7
-
-.Clear ; 126b7
- call WhiteBGMap
- call Call_ExitMenu
- call Function2bae
- call .DrawMenuAccount_
- call MenuFunc_1e7f
- call .DrawBugContestStatus
- call UpdateSprites
- call Functiond90
- call Function2b5c
- ret
-; 126d3
-
-
-.MenuDataHeader
- db $40 ; tile backup
- db 0, 10 ; start coords
- db 17, 19 ; end coords
- dw .MenuData
- db 1 ; default selection
-
-.ContestMenuDataHeader
- db $40 ; tile backup
- db 2, 10 ; start coords
- db 17, 19 ; end coords
- dw .MenuData
- db 1 ; default selection
-
-.MenuData
- db %10101000 ; x padding, wrap around, start can close
- dn 0, 0 ; rows, columns
- dw MenuItemsList
- dw .MenuString
- dw .Items
-
-.Items
- dw StartMenu_Pokedex, .PokedexString, .PokedexDesc
- dw StartMenu_Pokemon, .PartyString, .PartyDesc
- dw StartMenu_Pack, .PackString, .PackDesc
- dw StartMenu_Status, .StatusString, .StatusDesc
- dw StartMenu_Save, .SaveString, .SaveDesc
- dw StartMenu_Option, .OptionString, .OptionDesc
- dw StartMenu_Exit, .ExitString, .ExitDesc
- dw StartMenu_Pokegear, .PokegearString, .PokegearDesc
- dw StartMenu_Quit, .QuitString, .QuitDesc
-
-.PokedexString db "#DEX@"
-.PartyString db "#MON@"
-.PackString db "PACK@"
-.StatusString db "<PLAYER>@"
-.SaveString db "SAVE@"
-.OptionString db "OPTION@"
-.ExitString db "EXIT@"
-.PokegearString db $24, "GEAR@"
-.QuitString db "QUIT@"
-
-.PokedexDesc db "#MON"
- next "database@"
-
-.PartyDesc db "Party ", $4a
- next "status@"
-
-.PackDesc db "Contains"
- next "items@"
-
-.PokegearDesc db "Trainer's"
- next "key device@"
-
-.StatusDesc db "Your own"
- next "status@"
-
-.SaveDesc db "Save your"
- next "progress@"
-
-.OptionDesc db "Change"
- next "settings@"
-
-.ExitDesc db "Close this"
- next "menu@"
-
-.QuitDesc db "Quit and"
- next "be judged.@"
-
-
-.OpenMenu ; 127e5
- ld a, [MenuSelection]
- call .GetMenuAccountTextPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 127ef
-
-.MenuString ; 127ef
- push de
- ld a, [MenuSelection]
- call .GetMenuAccountTextPointer
-rept 2
- inc hl
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- call PlaceString
- ret
-; 12800
-
-.MenuDesc ; 12800
- push de
- ld a, [MenuSelection]
- cp $ff
- jr z, .none
- call .GetMenuAccountTextPointer
-rept 4
- inc hl
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
- pop hl
- call PlaceString
- ret
-.none
- pop de
- ret
-; 12819
-
-
-.GetMenuAccountTextPointer ; 12819
- ld e, a
- ld d, 0
- ld hl, wcf97
- ld a, [hli]
- ld h, [hl]
- ld l, a
-rept 6
- add hl, de
-endr
- ret
-; 12829
-
-
-.SetUpMenuItems ; 12829
- xor a
- ld [wcf76], a
- call .FillMenuList
-
- ld hl, StatusFlags
- bit 0, [hl]
- jr z, .no_pokedex
- ld a, 0 ; pokedex
- call .AppendMenuList
-.no_pokedex
-
- ld a, [PartyCount]
- and a
- jr z, .no_pokemon
- ld a, 1 ; pokemon
- call .AppendMenuList
-.no_pokemon
-
- ld a, [wLinkMode]
- and a
- jr nz, .no_pack
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- jr nz, .no_pack
- ld a, 2 ; pack
- call .AppendMenuList
-.no_pack
-
- ld hl, wPokegearFlags
- bit 7, [hl]
- jr z, .no_pokegear
- ld a, 7 ; pokegear
- call .AppendMenuList
-.no_pokegear
-
- ld a, 3 ; status
- call .AppendMenuList
-
- ld a, [wLinkMode]
- and a
- jr nz, .no_save
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- ld a, 8 ; quit
- jr nz, .write
- ld a, 4 ; save
-.write
- call .AppendMenuList
-.no_save
-
- ld a, 5 ; option
- call .AppendMenuList
- ld a, 6 ; exit
- call .AppendMenuList
- ld a, c
- ld [MenuItemsList], a
- ret
-; 1288d
-
-
-.FillMenuList ; 1288d
- xor a
- ld hl, MenuItemsList
- ld [hli], a
- ld a, -1
- ld bc, MenuItemsListEnd - (MenuItemsList + 1)
- call ByteFill
- ld de, MenuItemsList + 1
- ld c, 0
- ret
-; 128a0
-
-.AppendMenuList ; 128a0
- ld [de], a
- inc de
- inc c
- ret
-; 128a4
-
-.DrawMenuAccount_ ; 128a4
- jp .DrawMenuAccount
-; 128a7
-
-.PrintMenuAccount ; 128a7
- call .IsMenuAccountOn
- ret z
- call .DrawMenuAccount
- decoord 0, 14
- jp .MenuDesc
-; 128b4
-
-.DrawMenuAccount ; 128b4
- call .IsMenuAccountOn
- ret z
- hlcoord 0, 13
- lb bc, 5, 10
- call ClearBox
- hlcoord 0, 13
- ld b, 3
- ld c, 8
- jp TextBoxPalette
-; 128cb
-
-.IsMenuAccountOn ; 128cb
- ld a, [Options2]
- and 1
- ret
-; 128d1
-
-.DrawBugContestStatusBox ; 128d1
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- ret z
- callba Function24bdc
- ret
-; 128de
-
-.DrawBugContestStatus ; 128de
- ld hl, StatusFlags2
- bit 2, [hl] ; bug catching contest
- jr nz, .contest
- ret
-.contest
- callba Function24be7
- ret
-; 128ed
-
-
-StartMenu_Exit: ; 128ed
-; Exit the menu.
-
- ld a, 1
- ret
-; 128f0
-
-
-StartMenu_Quit: ; 128f0
-; Retire from the bug catching contest.
-
- ld hl, .EndTheContestText
- call Function12cf5
- jr c, .DontEndContest
- ld a, BANK(BugCatchingContestReturnToGateScript)
- ld hl, BugCatchingContestReturnToGateScript
- call FarQueueScript
- ld a, 4
- ret
-
-.DontEndContest
- ld a, 0
- ret
-
-.EndTheContestText
- text_jump UnknownText_0x1c1a6c
- db "@"
-; 1290b
-
-
-StartMenu_Save: ; 1290b
-; Save the game.
-
- call BufferScreen
- callba Function14a1a
- jr nc, .asm_12919
- ld a, 0
- ret
-.asm_12919
- ld a, 1
- ret
-; 1291c
-
-
-StartMenu_Option: ; 1291c
-; Game options.
-
- call FadeToMenu
- callba OptionsMenu
- ld a, 6
- ret
-; 12928
-
-
-StartMenu_Status: ; 12928
-; Player status.
-
- call FadeToMenu
- callba Function25105
- call Function2b3c
- ld a, 0
- ret
-; 12937
-
-
-StartMenu_Pokedex: ; 12937
-
- ld a, [PartyCount]
- and a
- jr z, .asm_12949
-
- call FadeToMenu
- callba Pokedex
- call Function2b3c
-
-.asm_12949
- ld a, 0
- ret
-; 1294c
-
-
-StartMenu_Pokegear: ; 1294c
-
- call FadeToMenu
- callba Function90b8d
- call Function2b3c
- ld a, 0
- ret
-; 1295b
-
-
-StartMenu_Pack: ; 1295b
-
- call FadeToMenu
- callba Pack
- ld a, [wcf66]
- and a
- jr nz, .asm_12970
- call Function2b3c
- ld a, 0
- ret
-.asm_12970
- call Function2b4d
- ld a, 4
- ret
-; 12976
-
-
-StartMenu_Pokemon: ; 12976
-
- ld a, [PartyCount]
- and a
- jr z, .return
-
- call FadeToMenu
-
-.choosemenu
- xor a
- ld [PartyMenuActionText], a ; Choose a POKéMON.
- call WhiteBGMap
-
-.menu
- callba Function5004f
- callba Function50405
- callba Function503e0
-
-.menunoreload
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
- call WaitBGMap
- call SetPalettes ; load regular palettes?
- call DelayFrame
- callba PartyMenuSelect
- jr c, .return ; if cancelled or pressed B
-
- call PokemonActionSubmenu
- cp 3
- jr z, .menu
- cp 0
- jr z, .choosemenu
- cp 1
- jr z, .menunoreload
- cp 2
- jr z, .quit
-
-.return
- call Function2b3c
- ld a, 0
- ret
-
-.quit
- ld a, b
- push af
- call Function2b4d
- pop af
- ret
-; 129d5
-
-Function129d5: ; 129d5
- ld a, [NumItems]
- and a
- ret nz
- ld a, [NumKeyItems]
- and a
- ret nz
- ld a, [NumBalls]
- and a
- ret nz
- ld hl, TMsHMs
- ld b, NUM_TMS + NUM_HMS
-.asm_129e9
- ld a, [hli]
- and a
- jr nz, .asm_129f2
- dec b
- jr nz, .asm_129e9
- scf
- ret
-.asm_129f2
- and a
- ret
-
-Function129f4: ; 129f4
- push de
- call PartyMonItemName
- callba _CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- and a
- jr nz, .asm_12a3f
- ld hl, UnknownText_0x12a45
- call MenuTextBox
- callba Function24fbf
- push af
- call WriteBackup
- call ExitMenu
- pop af
- jr c, .asm_12a42
- ld hl, UnknownText_0x12a4a
- call MenuTextBox
- call YesNoBox
- push af
- call ExitMenu
- pop af
- jr c, .asm_12a42
- pop hl
- ld a, [wd107]
- call TossItem
- call PartyMonItemName
- ld hl, UnknownText_0x12a4f
- call MenuTextBox
- call ExitMenu
- and a
- ret
-.asm_12a3f
- call Function12a54
-.asm_12a42
- pop hl
- scf
- ret
-; 12a45 (4:6a45)
-
-UnknownText_0x12a45: ; 0x12a45
- ; Toss out how many @ (S)?
- text_jump UnknownText_0x1c1a90
- db "@"
-; 0x12a4a
-
-UnknownText_0x12a4a: ; 0x12a4a
- ; Throw away @ @ (S)?
- text_jump UnknownText_0x1c1aad
- db "@"
-; 0x12a4f
-
-UnknownText_0x12a4f: ; 0x12a4f
- ; Discarded @ (S).
- text_jump UnknownText_0x1c1aca
- db "@"
-; 0x12a54
-
-Function12a54: ; 12a54 (4:6a54)
- ld hl, UnknownText_0x12a5b
- call MenuTextBoxBackup
- ret
-; 12a5b (4:6a5b)
-
-UnknownText_0x12a5b: ; 0x12a5b
- ; That's too impor- tant to toss out!
- text_jump UnknownText_0x1c1adf
- db "@"
-; 0x12a60
-
-CantUseItem: ; 12a60
- ld hl, CantUseItemText
- call Function2012
- ret
-; 12a67
-
-CantUseItemText: ; 12a67
- text_jump UnknownText_0x1c1b03
- db "@"
-; 12a6c
-
-
-PartyMonItemName: ; 12a6c
- ld a, [CurItem]
- ld [wd265], a
- call GetItemName
- call CopyName1
- ret
-; 12a79
-
-
-CancelPokemonAction: ; 12a79
- callba Function50405
- callba Function8ea71
- ld a, 1
- ret
-; 12a88
-
-
-PokemonActionSubmenu: ; 12a88
- hlcoord 1, 15
- lb bc, 2, 18
- call ClearBox
- callba Function24d19
- call GetCurNick
- ld a, [MenuSelection]
- ld hl, .Actions
- ld de, 3
- call IsInArray
- jr nc, .nothing
-
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.nothing
- ld a, 0
- ret
-
-.Actions
- dbw 1, Function12e1b ; Cut
- dbw 2, Function12e30 ; Fly
- dbw 3, Function12ebd ; Surf
- dbw 4, Function12e6a ; Strength
- dbw 6, Function12e55 ; Flash
- dbw 7, Function12e7f ; Whirlpool
- dbw 8, Function12ed1 ; Dig
- dbw 9, Function12ea9 ; Teleport
- dbw 10, Function12ee6 ; Softboiled
- dbw 13, Function12ee6 ; MilkDrink
- dbw 11, Function12f26 ; Headbutt
- dbw 5, Function12e94 ; Waterfall
- dbw 12, Function12f3b ; RockSmash
- dbw 14, Function12f50 ; SweetScent
- dbw 15, OpenPartyStats
- dbw 16, SwitchPartyMons
- dbw 17, GiveTakePartyMonItem
- dbw 18, CancelPokemonAction
- dbw 19, Function12fba ; move
- dbw 20, MonMailAction ; mail
-; 12aec
-
-
-SwitchPartyMons: ; 12aec
-
-; Don't try if there's nothing to switch!
- ld a, [PartyCount]
- cp 2
- jr c, .DontSwitch
-
- ld a, [CurPartyMon]
- inc a
- ld [wd0e3], a
-
- callba Function8ea8c
- callba Function5042d
-
- ld a, 4
- ld [PartyMenuActionText], a
- callba WritePartyMenuTilemap
- callba PrintPartyMenuText
-
- hlcoord 0, 1
- ld bc, 20 * 2
- ld a, [wd0e3]
- dec a
- call AddNTimes
- ld [hl], "▷"
- call WaitBGMap
- call SetPalettes
- call DelayFrame
-
- callba PartyMenuSelect
- bit 1, b
- jr c, .DontSwitch
-
- callba Function50f12
-
- xor a
- ld [PartyMenuActionText], a
-
- callba Function5004f
- callba Function50405
- callba Function503e0
-
- ld a, 1
- ret
-
-.DontSwitch
- xor a
- ld [PartyMenuActionText], a
- call CancelPokemonAction
- ret
-; 12b60
-
-
-GiveTakePartyMonItem: ; 12b60
-
-; Eggs can't hold items!
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_12ba6
-
- ld hl, GiveTakeItemMenuData
- call LoadMenuDataHeader
- call InterpretMenu2
- call ExitMenu
- jr c, .asm_12ba6
-
- call GetCurNick
- ld hl, StringBuffer1
- ld de, wd050
- ld bc, $b
- call CopyBytes
- ld a, [wcfa9]
- cp 1
- jr nz, .asm_12ba0
-
- call LoadMenuDataHeader_0x1d75
- call ClearPalettes
- call Function12ba9
- call ClearPalettes
- call LoadFontsBattleExtra
- call ExitMenu
- ld a, 0
- ret
-
-.asm_12ba0
- call TakePartyItem
- ld a, 3
- ret
-
-.asm_12ba6
- ld a, 3
- ret
-; 12ba9
-
-
-Function12ba9: ; 12ba9
-
- callba Function106a5
-
-.loop
- callba Function106be
-
- ld a, [wcf66]
- and a
- jr z, .quit
-
- ld a, [wcf65]
- cp 2
- jr z, .next
-
- call CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- and a
- jr nz, .next
-
- call Function12bd9
- jr .quit
-
-.next
- ld hl, CantBeHeldText
- call MenuTextBoxBackup
- jr .loop
-
-.quit
- ret
-; 12bd9
-
-
-Function12bd9: ; 12bd9
-
- call SpeechTextBox
- call PartyMonItemName
- call GetPartyItemLocation
- ld a, [hl]
- and a
- jr z, .asm_12bf4
-
- push hl
- ld d, a
- callba ItemIsMail
- pop hl
- jr c, .asm_12c01
- ld a, [hl]
- jr .asm_12c08
-
-.asm_12bf4
- call Function12cea
- ld hl, MadeHoldText
- call MenuTextBoxBackup
- call GivePartyItem
- ret
-
-.asm_12c01
- ld hl, PleaseRemoveMailText
- call MenuTextBoxBackup
- ret
-
-.asm_12c08
- ld [wd265], a
- call GetItemName
- ld hl, SwitchAlreadyHoldingText
- call Function12cf5
- jr c, .asm_12c4b
-
- call Function12cea
- ld a, [wd265]
- push af
- ld a, [CurItem]
- ld [wd265], a
- pop af
- ld [CurItem], a
- call Function12cdf
- jr nc, .asm_12c3c
-
- ld hl, TookAndMadeHoldText
- call MenuTextBoxBackup
- ld a, [wd265]
- ld [CurItem], a
- call GivePartyItem
- ret
-
-.asm_12c3c
- ld a, [wd265]
- ld [CurItem], a
- call Function12cdf
- ld hl, ItemStorageIsFullText
- call MenuTextBoxBackup
-
-.asm_12c4b
- ret
-; 12c4c
-
-
-GivePartyItem: ; 12c4c
-
- call GetPartyItemLocation
- ld a, [CurItem]
- ld [hl], a
- ld d, a
- callba ItemIsMail
- jr nc, .asm_12c5f
- call Function12cfe
-
-.asm_12c5f
- ret
-; 12c60
-
-
-TakePartyItem: ; 12c60
-
- call SpeechTextBox
- call GetPartyItemLocation
- ld a, [hl]
- and a
- jr z, .asm_12c8c
-
- ld [CurItem], a
- call Function12cdf
- jr nc, .asm_12c94
-
- callba ItemIsMail
- call GetPartyItemLocation
- ld a, [hl]
- ld [wd265], a
- ld [hl], NO_ITEM
- call GetItemName
- ld hl, TookFromText
- call MenuTextBoxBackup
- jr .asm_12c9a
-
-.asm_12c8c
- ld hl, IsntHoldingAnythingText
- call MenuTextBoxBackup
- jr .asm_12c9a
-
-.asm_12c94
- ld hl, ItemStorageIsFullText
- call MenuTextBoxBackup
-
-.asm_12c9a
- ret
-; 12c9b
-
-
-GiveTakeItemMenuData: ; 12c9b
- db %01010000
- db 12, 12 ; start coords
- db 17, 19 ; end coords
- dw .Items
- db 1 ; default option
-
-.Items
- db %10000000 ; x padding
- db 2 ; # items
- db "GIVE@"
- db "TAKE@"
-; 12caf
-
-
-TookAndMadeHoldText: ; 12caf
- text_jump UnknownText_0x1c1b2c
- db "@"
-; 12cb4
-
-MadeHoldText: ; 12cb4
- text_jump UnknownText_0x1c1b57
- db "@"
-; 12cb9
-
-PleaseRemoveMailText: ; 12cb9
- text_jump UnknownText_0x1c1b6f
- db "@"
-; 12cbe
-
-IsntHoldingAnythingText: ; 12cbe
- text_jump UnknownText_0x1c1b8e
- db "@"
-; 12cc3
-
-ItemStorageIsFullText: ; 12cc3
- text_jump UnknownText_0x1c1baa
- db "@"
-; 12cc8
-
-TookFromText: ; 12cc8
- text_jump UnknownText_0x1c1bc4
- db "@"
-; 12ccd
-
-SwitchAlreadyHoldingText: ; 12ccd
- text_jump UnknownText_0x1c1bdc
- db "@"
-; 12cd2
-
-CantBeHeldText: ; 12cd2
- text_jump UnknownText_0x1c1c09
- db "@"
-; 12cd7
-
-
-GetPartyItemLocation: ; 12cd7
- push af
- ld a, PartyMon1Item - PartyMon1
- call GetPartyParamLocation
- pop af
- ret
-; 12cdf
-
-
-Function12cdf: ; 12cdf
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- jp ReceiveItem
-; 12cea
-
-
-Function12cea: ; 12cea (4:6cea)
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld hl, NumItems
- jp TossItem
-
-Function12cf5: ; 12cf5
- call MenuTextBox
- call YesNoBox
- jp ExitMenu
-; 12cfe
-
-
-Function12cfe: ; 12cfe (4:6cfe)
- ld de, DefaultFlypoint
- callba Function11e75
- ld hl, PlayerName
- ld de, wd023
- ld bc, $a
- call CopyBytes
- ld hl, PlayerID
- ld bc, $2
- call CopyBytes
- ld a, [CurPartySpecies]
- ld [de], a
- inc de
- ld a, [CurItem]
- ld [de], a
- ld a, [CurPartyMon]
- ld hl, s0_a600
- ld bc, $2f
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, DefaultFlypoint
- ld bc, $2f
- ld a, BANK(s0_a600)
- call GetSRAMBank
- call CopyBytes
- call CloseSRAM
- ret
-
-MonMailAction: ; 12d45
-; If in the time capsule or trade center,
-; selecting the mail only allows you to
-; read the mail.
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr z, .read
- cp LINK_TRADECENTER
- jr z, .read
-
-; Show the READ/TAKE/QUIT menu.
- ld hl, .MenuDataHeader
- call LoadMenuDataHeader
- call InterpretMenu2
- call ExitMenu
-
-; Interpret the menu.
- jp c, .done
- ld a, [wcfa9]
- cp $1
- jr z, .read
- cp $2
- jr z, .take
- jp .done
-
-.read
- callba ReadPartyMonMail
- ld a, $0
- ret
-
-.take
- ld hl, .sendmailtopctext
- call Function12cf5
- jr c, .RemoveMailToBag
- ld a, [CurPartyMon]
- ld b, a
- callba Function4456e
- jr c, .MailboxFull
- ld hl, .sentmailtopctext
- call MenuTextBoxBackup
- jr .done
-
-.MailboxFull
- ld hl, .mailboxfulltext
- call MenuTextBoxBackup
- jr .done
-
-.RemoveMailToBag
- ld hl, .mailwilllosemessagetext
- call Function12cf5
- jr c, .done
- call GetPartyItemLocation
- ld a, [hl]
- ld [CurItem], a
- call Function12cdf
- jr nc, .BagIsFull
- call GetPartyItemLocation
- ld [hl], $0
- call GetCurNick
- ld hl, .tookmailfrommontext
- call MenuTextBoxBackup
- jr .done
-
-.BagIsFull
- ld hl, .bagfulltext
- call MenuTextBoxBackup
- jr .done
-
-.done
- ld a, $3
- ret
-; 12dc9
-
-
-.MenuDataHeader: ; 0x12dc9
- db $40 ; flags
- db 10, 12 ; start coords
- db 17, 19 ; end coords
- dw .MenuData2
- db 1 ; default option
-; 0x12dd1
-
-.MenuData2: ; 0x12dd1
- db $80 ; flags
- db 3 ; items
- db "READ@"
- db "TAKE@"
- db "QUIT@"
-; 0x12de2
-
-
-.mailwilllosemessagetext: ; 0x12de2
-; The MAIL will lose its message. OK?
- text_jump UnknownText_0x1c1c22
- db "@"
-; 0x12de7
-
-.tookmailfrommontext: ; 0x12de7
-; MAIL detached from <POKEMON>.
- text_jump UnknownText_0x1c1c47
- db "@"
-; 0x12dec
-
-.bagfulltext: ; 0x12dec
-; There's no space for removing MAIL.
- text_jump UnknownText_0x1c1c62
- db "@"
-; 0x12df1
-
-.sendmailtopctext: ; 0x12df1
-; Send the removed MAIL to your PC?
- text_jump UnknownText_0x1c1c86
- db "@"
-; 0x12df6
-
-.mailboxfulltext: ; 0x12df6
-; Your PC's MAILBOX is full.
- text_jump UnknownText_0x1c1ca9
- db "@"
-; 0x12dfb
-
-.sentmailtopctext: ; 0x12dfb
-; The MAIL was sent to your PC.
- text_jump UnknownText_0x1c1cc4
- db "@"
-; 0x12e00
-
-
-OpenPartyStats: ; 12e00
- call LoadMenuDataHeader_0x1d75
- call ClearSprites
-; PartyMon
- xor a
- ld [MonType], a
- call LowVolume
- predef StatsScreenInit
- call MaxVolume
- call Call_ExitMenu
- ld a, 0
- ret
-; 12e1b
-
-
-Function12e1b: ; 12e1b
- callba CutFunction
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12e2d
- ld b, $4
- ld a, $2
- ret
-
-.asm_12e2d
- ld a, $3
- ret
-; 12e30
-
-
-Function12e30: ; 12e30
- callba FlyFunction
- ld a, [wd0ec]
- cp $2
- jr z, .asm_12e4c
- cp $0
- jr z, .asm_12e4f
- callba MobileFn_1060b5
- ld b, $4
- ld a, $2
- ret
-
-.asm_12e4c
- ld a, $3
- ret
-
-.asm_12e4f
- ld a, $0
- ret
-
-.asm_12e52
- ld a, $1
- ret
-; 12e55
-
-Function12e55: ; 12e55
- callba Functionc8ac
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12e67
- ld b, $4
- ld a, $2
- ret
-
-.asm_12e67
- ld a, $3
- ret
-; 12e6a
-
-Function12e6a: ; 12e6a
- callba StrengthFunction
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12e7c
- ld b, $4
- ld a, $2
- ret
-
-.asm_12e7c
- ld a, $3
- ret
-; 12e7f
-
-Function12e7f: ; 12e7f
- callba WhirlpoolFunction
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12e91
- ld b, $4
- ld a, $2
- ret
-
-.asm_12e91
- ld a, $3
- ret
-; 12e94
-
-Function12e94: ; 12e94
- callba Functioncade
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12ea6
- ld b, $4
- ld a, $2
- ret
-
-.asm_12ea6
- ld a, $3
- ret
-; 12ea9
-
-Function12ea9: ; 12ea9
- callba TeleportFunction
- ld a, [wd0ec]
- and a
- jr z, .asm_12eba
- ld b, $4
- ld a, $2
- ret
-
-.asm_12eba
- ld a, $3
- ret
-; 12ebd
-
-Function12ebd: ; 12ebd
- callba SurfFunction
- ld a, [wd0ec]
- and a
- jr z, .asm_12ece
- ld b, $4
- ld a, $2
- ret
-
-.asm_12ece
- ld a, $3
- ret
-; 12ed1
-
-Function12ed1: ; 12ed1
- callba DigFunction
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12ee3
- ld b, $4
- ld a, $2
- ret
-
-.asm_12ee3
- ld a, $3
- ret
-; 12ee6
-
-Function12ee6: ; 12ee6
- call Function12f05
- jr nc, .asm_12ef3
- callba Functionf3df
- jr .asm_12ef9
-
-.asm_12ef3
- ld hl, UnknownText_0x12f00
- call PrintText
-
-.asm_12ef9
- xor a
- ld [PartyMenuActionText], a
- ld a, $3
- ret
-; 12f00
-
-UnknownText_0x12f00: ; 0x12f00
- ; Not enough HP!
- text_jump UnknownText_0x1c1ce3
- db "@"
-; 0x12f05
-
-Function12f05: ; 12f05
- ld a, PartyMon1MaxHP - PartyMon1
- 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, PartyMon1HP + 1 - PartyMon1
- call GetPartyParamLocation
- ld a, [hQuotient + 2]
- sub [hl]
- dec hl
- ld a, [hQuotient + 1]
- sbc [hl]
- ret
-; 12f26
-
-Function12f26: ; 12f26
- callba HeadbuttFunction
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12f38
- ld b, $4
- ld a, $2
- ret
-
-.asm_12f38
- ld a, $3
- ret
-; 12f3b
-
-Function12f3b: ; 12f3b
- callba RockSmashFunction
- ld a, [wd0ec]
- cp $1
- jr nz, .asm_12f4d
- ld b, $4
- ld a, $2
- ret
-
-.asm_12f4d
- ld a, $3
- ret
-; 12f50
-
-Function12f50: ; 12f50
- callba DoMovementFunctionc
- ld b, $4
- ld a, $2
- ret
-; 12f5b
-
-Function12f5b: ; 12f5b
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call LoadFontsBattleExtra
- call Function12f73
- pop bc
- ld a, b
- ld [Options], a
- push af
- call WhiteBGMap
- pop af
- ret
-; 12f73
-
-Function12f73: ; 12f73
- call Function13172
- ld de, Unknown_12fb2
- call Function1bb1
- call Function131ef
- ld hl, wcfa5
- set 6, [hl]
- jr Function12f93
-
-Function12f86: ; 12f86
- call Function1bd3
- bit 1, a
- jp nz, Function12f9f
- bit 0, a
- jp nz, Function12f9c
-
-Function12f93: ; 12f93
- call Function13235
- call Function13256
- jp Function12f86
-; 12f9c
-
-Function12f9c: ; 12f9c
- and a
- jr Function12fa0
-
-Function12f9f: ; 12f9f
- scf
-
-Function12fa0: ; 12fa0
- push af
- xor a
- ld [wd0e3], a
- ld hl, wcfa5
- res 6, [hl]
- call ClearSprites
- call ClearTileMap
- pop af
- ret
-; 12fb2
-
-Unknown_12fb2: ; 12fb2
- db $03, $01, $03, $01, $40, $00, $20, $c3
-; 12fba
-
-Function12fba: ; 12fba
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_12fd2
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call Function12fd5
- pop af
- ld [Options], a
- call WhiteBGMap
-
-.asm_12fd2
- ld a, $0
- ret
-; 12fd5
-
-Function12fd5: ; 12fd5
- ld a, [CurPartyMon]
- inc a
- ld [wd0d8], a
- call Function13172
- call Function132d3
- ld de, Unknown_13163
- call Function1bb1
-.asm_12fe8
- call Function131ef
- ld hl, wcfa5
- set 6, [hl]
- jr .asm_13009
-
-.asm_12ff2
- call Function1bd3
- bit 1, a
- jp nz, .asm_13038
- bit 0, a
- jp nz, .asm_130c6
- bit 4, a
- jp nz, .asm_1305b
- bit 5, a
- jp nz, .asm_13075
-
-.asm_13009
- call Function13235
- ld a, [wd0e3]
- and a
- jr nz, .asm_13018
- call Function13256
- jp .asm_12ff2
-
-.asm_13018
- ld a, " "
- hlcoord 1, 11
- ld bc, 5
- call ByteFill
- hlcoord 1, 12
- lb bc, 5, SCREEN_WIDTH - 2
- call ClearBox
- hlcoord 1, 12
- ld de, String_1316b
- call PlaceString
- jp .asm_12ff2
-.asm_13038: ; 13038
- call PlayClickSFX
- call WaitSFX
- ld a, [wd0e3]
- and a
- jp z, Function13154
- ld a, [wd0e3]
- ld [wcfa9], a
- xor a
- ld [wd0e3], a
- hlcoord 1, 2
- lb bc, 8, SCREEN_WIDTH - 2
- call ClearBox
- jp .asm_12fe8
-; 1305b
-
-.asm_1305b: ; 1305b
- ld a, [wd0e3]
- and a
- jp nz, .asm_12ff2
- ld a, [CurPartyMon]
- ld b, a
- push bc
- call .asm_1308f
- pop bc
- ld a, [CurPartyMon]
- cp b
- jp z, .asm_12ff2
- jp Function12fd5
-
-.asm_13075: ; 13075
- ld a, [wd0e3]
- and a
- jp nz, .asm_12ff2
- ld a, [CurPartyMon]
- ld b, a
- push bc
- call .asm_130a7
- pop bc
- ld a, [CurPartyMon]
- cp b
- jp z, .asm_12ff2
- jp Function12fd5
-
-.asm_1308f
- ld a, [CurPartyMon]
- inc a
- ld [CurPartyMon], a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- cp $ff
- jr z, .asm_130a7
- cp EGG
- ret nz
- jr .asm_1308f
-
-.asm_130a7
- ld a, [CurPartyMon]
- and a
- ret z
-.asm_130ac
- ld a, [CurPartyMon]
- dec a
- ld [CurPartyMon], a
- ld c, a
- ld b, 0
- ld hl, PartySpecies
- add hl, bc
- ld a, [hl]
- cp EGG
- ret nz
- ld a, [CurPartyMon]
- and a
- jr z, .asm_1308f
- jr .asm_130ac
-; 130c6
-
-.asm_130c6: ; 130c6
- call PlayClickSFX
- call WaitSFX
- ld a, [wd0e3]
- and a
- jr nz, .asm_130de
- ld a, [wcfa9]
- ld [wd0e3], a
- call Function1bee
- jp .asm_13018
-
-.asm_130de
- ld hl, PartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
- ld a, [CurPartyMon]
- call AddNTimes
- push hl
- call Function1313a
- pop hl
- ld bc, $0015
- add hl, bc
- call Function1313a
- ld a, [wBattleMode]
- jr z, .asm_13113
- ld hl, BattleMonMoves
- ld bc, $0020
- ld a, [CurPartyMon]
- call AddNTimes
- push hl
- call Function1313a
- pop hl
- ld bc, $0006
- add hl, bc
- call Function1313a
-
-.asm_13113
- ld de, SFX_SWITCH_POKEMON
- call PlaySFX
- call WaitSFX
- ld de, SFX_SWITCH_POKEMON
- call PlaySFX
- call WaitSFX
- hlcoord 1, 2
- lb bc, 8, 18
- call ClearBox
- hlcoord 10, 10
- lb bc, 1, 9
- call ClearBox
- jp .asm_12fe8
-; 1313a
-
-Function1313a: ; 1313a
- push hl
- ld a, [wcfa9]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- ld a, [wd0e3]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [de]
- ld b, [hl]
- ld [hl], a
- ld a, b
- ld [de], a
- ret
-; 13154
-
-Function13154: ; 13154
- xor a
- ld [wd0e3], a
- ld hl, wcfa5
- res 6, [hl]
- call ClearSprites
- jp ClearTileMap
-; 13163
-
-Unknown_13163: ; 13163
- db $03, $01, $03, $01, $40, $00, $20, $f3
-; 1316b
-
-String_1316b: ; 1316b
- db "Where?@"
-; 13172
-
-Function13172: ; 13172
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- callba Functionfb571
- callba InefficientlyClear121BytesAtwc300
- ld a, [CurPartyMon]
- ld e, a
- ld d, $0
- ld hl, PartySpecies
- add hl, de
- ld a, [hl]
- ld [wd265], a
- ld e, $2
- callba Function8e83f
- hlcoord 0, 1
- ld b, $9
- ld c, $12
- call TextBox
- hlcoord 0, 11
- ld b, $5
- ld c, $12
- call TextBox
- hlcoord 2, 0
- lb bc, 2, 3
- call ClearBox
- xor a
- ld [MonType], a
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- hlcoord 5, 1
- call PlaceString
- push bc
- callba CopyPkmnToTempMon
- pop hl
- call PrintLevel
- ld hl, PlayerHPPal
- call SetHPPal
- ld b, $e
- call GetSGBLayout
- hlcoord 16, 0
- lb bc, 1, 3
- jp ClearBox
-; 131ef
-
-Function131ef: ; 131ef
- xor a
- ld [hBGMapMode], a
- ld [wd0e3], a
- ld [MonType], a
- predef CopyPkmnToTempMon
- ld hl, TempMonMoves
- ld de, wListMoves_MoveIndicesBuffer
- ld bc, NUM_MOVES
- call CopyBytes
- ld a, SCREEN_WIDTH * 2
- ld [Buffer1], a
- hlcoord 2, 3
- predef ListMoves
- hlcoord 10, 4
- predef Function50c50
- call WaitBGMap
- call SetPalettes
- ld a, [wd0eb]
- inc a
- ld [wcfa3], a
- hlcoord 0, 11
- ld b, 5
- ld c, 18
- jp TextBox
-; 13235
-
-Function13235: ; 13235
- ld hl, PartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
- ld a, [CurPartyMon]
- call AddNTimes
- ld a, [wcfa9]
- dec a
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [CurSpecies], a
- hlcoord 1, 12
- lb bc, 5, 18
- jp ClearBox
-; 13256
-
-Function13256: ; 13256
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 10
- ld de, String_132ba
- call PlaceString
- hlcoord 0, 11
- ld de, String_132c2
- call PlaceString
- hlcoord 12, 12
- ld de, String_132ca
- call PlaceString
- ld a, [CurSpecies]
- ld b, a
- hlcoord 2, 12
- predef PrintMoveType
- ld a, [CurSpecies]
- dec a
- ld hl, Moves + MOVE_POWER
- ld bc, MOVE_LENGTH
- call AddNTimes
- ld a, BANK(Moves)
- call GetFarByte
- hlcoord 16, 12
- cp $2
- jr c, .asm_132a7
- ld [wd265], a
- ld de, wd265
- lb bc, 1, 3
- call PrintNum
- jr .asm_132ad
-
-.asm_132a7
- ld de, String_132cf
- call PlaceString
-
-.asm_132ad
- hlcoord 1, 14
- predef PrintMoveDesc
- ld a, $1
- ld [hBGMapMode], a
- ret
-; 132ba
-
-String_132ba: ; 132ba
- db "┌─────┐@"
-; 132c2
-String_132c2: ; 132c2
- db "│TYPE/└@"
-; 132ca
-String_132ca: ; 132ca
- db "ATK/@"
-; 132cf
-String_132cf: ; 132cf
- db "---@"
-; 132d3
-
-Function132d3: ; 132d3
- call Function132da
- call Function132fe
- ret
-; 132da
-
-Function132da: ; 132da
- ld a, [CurPartyMon]
- and a
- ret z
- ld c, a
- ld e, a
- ld d, 0
- ld hl, PartyCount
- add hl, de
-.asm_132e7
- ld a, [hl]
- and a
- jr z, .asm_132f3
- cp EGG
- jr z, .asm_132f3
- cp NUM_POKEMON + 1
- jr c, .asm_132f8
-
-.asm_132f3
- dec hl
- dec c
- jr nz, .asm_132e7
- ret
-
-.asm_132f8
- hlcoord 16, 0
- ld [hl], $71
- ret
-; 132fe
-
-Function132fe: ; 132fe
- ld a, [CurPartyMon]
- inc a
- ld c, a
- ld a, [PartyCount]
- cp c
- ret z
- ld e, c
- ld d, 0
- ld hl, PartySpecies
- add hl, de
-.asm_1330f
- ld a, [hl]
- cp $ff
- ret z
- and a
- jr z, .asm_1331e
- cp EGG
- jr z, .asm_1331e
- cp NUM_POKEMON + 1
- jr c, .asm_13321
-
-.asm_1331e
- inc hl
- jr .asm_1330f
-
-.asm_13321
- hlcoord 18, 0
- ld [hl], "▶"
- ret
-; 13327
-
-
-SelectMenu:: ; 13327
-
- call CheckRegisteredItem
- jr c, .NotRegistered
- jp UseRegisteredItem
-
-.NotRegistered
- call LoadFont
- ld b, BANK(ItemMayBeRegisteredText)
- ld hl, ItemMayBeRegisteredText
- call MapTextbox
- call CloseText
- jp LoadMoveSprites
-; 13340
-
-
-ItemMayBeRegisteredText: ; 13340
- text_jump UnknownText_0x1c1cf3
- db "@"
-; 13345
-
-
-CheckRegisteredItem: ; 13345
-
- ld a, [WhichRegisteredItem]
- and a
- jr z, .NoRegisteredItem
- and REGISTERED_POCKET
- rlca
- rlca
- ld hl, .Pockets
- rst JumpTable
- ret
-
-.Pockets
- dw .CheckItem
- dw .CheckBall
- dw .CheckKeyItem
- dw .CheckTMHM
-
-.CheckItem
- ld hl, NumItems
- call .CheckRegisteredNo
- jr c, .NoRegisteredItem
- inc hl
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- call .IsSameItem
- jr c, .NoRegisteredItem
- and a
- ret
-
-.CheckKeyItem
- ld a, [RegisteredItem]
- ld hl, KeyItems
- ld de, 1
- call IsInArray
- jr nc, .NoRegisteredItem
- ld a, [RegisteredItem]
- ld [CurItem], a
- and a
- ret
-
-.CheckBall
- ld hl, NumBalls
- call .CheckRegisteredNo
- jr nc, .NoRegisteredItem
- inc hl
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- call .IsSameItem
- jr c, .NoRegisteredItem
- ret
-
-.CheckTMHM
- jr .NoRegisteredItem
-
-.NoRegisteredItem
- xor a
- ld [WhichRegisteredItem], a
- ld [RegisteredItem], a
- scf
- ret
-; 133a6
-
-
-.CheckRegisteredNo ; 133a6
- ld a, [WhichRegisteredItem]
- and REGISTERED_NUMBER
- dec a
- cp [hl]
- jr nc, .NotEnoughItems
- ld [wd107], a
- and a
- ret
-
-.NotEnoughItems
- scf
- ret
-; 133b6
-
-
-.IsSameItem ; 133b6
- ld a, [RegisteredItem]
- cp [hl]
- jr nz, .NotSameItem
- ld [CurItem], a
- and a
- ret
-
-.NotSameItem
- scf
- ret
-; 133c3
-
-
-UseRegisteredItem: ; 133c3
-
- callba CheckItemMenu
- ld a, [wItemAttributeParamBuffer]
- ld hl, .SwitchTo
- rst JumpTable
- ret
-
-.SwitchTo
- dw .CantUse
- dw .NoFunction
- dw .NoFunction
- dw .NoFunction
- dw .Current
- dw .Party
- dw .Overworld
-; 133df
-
-.NoFunction ; 133df
- call LoadFont
- call CantUseItem
- call LoadMoveSprites
- and a
- ret
-; 133ea
-
-.Current ; 133ea
- call LoadFont
- call DoItemEffect
- call LoadMoveSprites
- and a
- ret
-; 133f5
-
-.Party ; 133f5
- call ResetWindow
- call FadeToMenu
- call DoItemEffect
- call Function2b3c
- call LoadMoveSprites
- and a
- ret
-; 13406
-
-.Overworld ; 13406
- call ResetWindow
- ld a, 1
- ld [wd0ef], a
- call DoItemEffect
- xor a
- ld [wd0ef], a
- ld a, [wd0ec]
- cp 1
- jr nz, ._cantuse
- scf
- ld a, HMENURETURN_SCRIPT
- ld [hMenuReturn], a
- ret
-; 13422
-
-.CantUse ; 13422
- call ResetWindow
-
-._cantuse
- call CantUseItem
- call LoadMoveSprites
- and a
- ret
-; 1342d
-
-
-Elevator:: ; 1342d
- call Function1344a
- call Function1347d
- jr c, .asm_13448
- ld [wd041], a
- call Function134dd
- jr c, .asm_13448
- ld hl, wd041
- cp [hl]
- jr z, .asm_13448
- call Function134c0
- and a
- ret
-
-.asm_13448
- scf
- ret
-; 1344a
-
-Function1344a: ; 1344a
- ld a, b
- ld [EngineBuffer1], a
- ld a, e
- ld [wd03f], a
- ld a, d
- ld [wd040], a
- call Function1345a
- ret
-; 1345a
-
-Function1345a: ; 1345a
- ld de, OBPals + 8 * 6
- ld bc, $0004
- ld hl, wd03f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [EngineBuffer1]
- call GetFarByte
- inc hl
- ld [de], a
- inc de
-.asm_1346f
- ld a, [EngineBuffer1]
- call GetFarByte
- ld [de], a
- inc de
- add hl, bc
- cp $ff
- jr nz, .asm_1346f
- ret
-; 1347d
-
-Function1347d: ; 1347d
- ld hl, wd03f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [EngineBuffer1]
- call GetFarByte
- ld c, a
- inc hl
- ld a, [BackupMapGroup]
- ld d, a
- ld a, [BackupMapNumber]
- ld e, a
- ld b, $0
-.asm_13495
- ld a, [EngineBuffer1]
- call GetFarByte
- cp $ff
- jr z, .asm_134be
-rept 2
- inc hl
-endr
- ld a, [EngineBuffer1]
- call GetFarByte
- inc hl
- cp d
- jr nz, .asm_134b7
- ld a, [EngineBuffer1]
- call GetFarByte
- inc hl
- cp e
- jr nz, .asm_134b8
- jr .asm_134bb
-
-.asm_134b7
- inc hl
-
-.asm_134b8
- inc b
- jr .asm_13495
-
-.asm_134bb
- xor a
- ld a, b
- ret
-
-.asm_134be
- scf
- ret
-; 134c0
-
-Function134c0: ; 134c0
- push af
- ld hl, wd03f
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
- pop af
- ld bc, $0004
- call AddNTimes
- inc hl
- ld de, wdcac
- ld a, [EngineBuffer1]
- ld bc, $0003
- call FarCopyBytes
- ret
-; 134dd
-
-Function134dd: ; 134dd
- call LoadMenuDataHeader_0x1d75
- ld hl, Elevator_WhichFloorText
- call PrintText
- call Elevator_GetCurrentFloorText
- ld hl, Elevator_MenuDataHeader
- call CopyMenuDataHeader
- call Function352f
- call UpdateSprites
- xor a
- ld [wd0e4], a
- call Function350c
- call WriteBackup
- ld a, [wcf73]
- cp $2
- jr z, .asm_1350b
- xor a
- ld a, [wcf77]
- ret
-
-.asm_1350b
- scf
- ret
-; 1350d
-
-Elevator_WhichFloorText: ; 0x1350d
- ; Which floor?
- text_jump UnknownText_0x1bd2bc
- db "@"
-; 0x13512
-
-
-Elevator_GetCurrentFloorText: ; 13512
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- hlcoord 0, 0
- ld b, $4
- ld c, $8
- call TextBox
- hlcoord 1, 2
- ld de, Elevator_CurrentFloorText
- call PlaceString
- hlcoord 4, 4
- call Elevator_GetCurrentFloorString
- pop af
- ld [Options], a
- ret
-; 13537
-
-Elevator_CurrentFloorText: ; 13537
- db "Now on:@"
-; 1353f
-
-
-Elevator_GetCurrentFloorString: ; 1353f
- push hl
- ld a, [wd041]
- ld e, a
- ld d, 0
- ld hl, wd0f1
- add hl, de
- ld a, [hl]
- pop de
- call GetFloorString
- ret
-; 13550
-
-Elevator_MenuDataHeader: ; 0x13550
- db $40 ; flags
- db 01, 12 ; start coords
- db 09, 18 ; end coords
- dw Elevator_MenuData2
- db 1 ; default option
-; 0x13558
-
-Elevator_MenuData2: ; 0x13558
- db $10 ; flags
- db 4, 0 ; rows, columns
- db 1 ; horizontal spacing
- dbw 0, OBPals + 8 * 6
- dba GetElevatorFlorStrings
- dba NULL
- dba NULL
-; 13568
-
-GetElevatorFlorStrings: ; 13568
- ld a, [MenuSelection]
-
-GetFloorString: ; 1356b
- push de
- call FloorToString
- ld d, h
- ld e, l
- pop hl
- jp PlaceString
-; 13575
-
-FloorToString: ; 13575
- push de
- ld e, a
- ld d, 0
- ld hl, .floors
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop de
- ret
-; 13583
-
-.floors
- dw .b4f
- dw .b3f
- dw .b2f
- dw .b1f
- dw ._1f
- dw ._2f
- dw ._3f
- dw ._4f
- dw ._5f
- dw ._6f
- dw ._7f
- dw ._8f
- dw ._9f
- dw ._10f
- dw ._11f
- dw .roof
-
-.b4f
- db "B4F@"
-.b3f
- db "B3F@"
-.b2f
- db "B2F@"
-.b1f
- db "B1F@"
-._1f
- db "1F@"
-._2f
- db "2F@"
-._3f
- db "3F@"
-._4f
- db "4F@"
-._5f
- db "5F@"
-._6f
- db "6F@"
-._7f
- db "7F@"
-._8f
- db "8F@"
-._9f
- db "9F@"
-._10f
- db "10F@"
-._11f
- db "11F@"
-.roof
- db "ROOF@"
-; 135db
-
+INCLUDE "event/itemball.asm"
+INCLUDE "engine/healmachineanim.asm"
+INCLUDE "event/whiteout.asm"
+INCLUDE "event/forced_movement.asm"
+INCLUDE "event/itemfinder.asm"
+INCLUDE "engine/startmenu.asm"
+INCLUDE "engine/selectmenu.asm"
+INCLUDE "event/elevator.asm"
Special_GiveParkBalls: ; 135db
xor a
ld [wContestMon], a
ld a, 20
- ld [wdc79], a
+ ld [wParkBallsRemaining], a
callba StartBugContestTimer
ret
; 135eb
@@ -14911,7 +10906,7 @@ BugCatchingContestBattleScript:: ; 0x135eb
battlecheck
startbattle
returnafterbattle
- copybytetovar wdc79
+ copybytetovar wParkBallsRemaining
iffalse BugCatchingContestOutOfBallsScript
end
; 0x135f8
@@ -14949,13 +10944,13 @@ UnknownText_0x13614: ; 0x13614
RepelWoreOffScript:: ; 0x13619
loadfont
- writetext UnknownText_0x13620
+ writetext .text
closetext
loadmovesprites
end
; 0x13620
-UnknownText_0x13620: ; 0x13620
+.text: ; 0x13620
; REPEL's effect wore off.
text_jump UnknownText_0x1bd308
db "@"
@@ -14963,34 +10958,34 @@ UnknownText_0x13620: ; 0x13620
SignpostItemScript:: ; 0x13625
loadfont
- copybytetovar Unkn2Pals
+ copybytetovar EngineBuffer3
itemtotext 0, 0
- writetext UnknownText_0x13645
- giveitem -1, 1
- iffalse UnknownScript_0x1363e
+ writetext .found_text
+ giveitem ITEM_FROM_MEM
+ iffalse .bag_full
callasm SetMemEvent
specialsound
itemnotify
- jump UnknownScript_0x13643
+ jump .finish
; 0x1363e
-UnknownScript_0x1363e: ; 0x1363e
+.bag_full: ; 0x1363e
keeptextopen
- writetext UnknownText_0x1364a
+ writetext .no_room_text
closetext
-UnknownScript_0x13643: ; 13643
+.finish: ; 13643
loadmovesprites
end
; 0x13645
-UnknownText_0x13645: ; 0x13645
+.found_text: ; 0x13645
; found @ !
text_jump UnknownText_0x1bd321
db "@"
; 0x1364a
-UnknownText_0x1364a: ; 0x1364a
+.no_room_text: ; 0x1364a
; But has no space left…
text_jump UnknownText_0x1bd331
db "@"
@@ -15015,12 +11010,12 @@ CheckFacingTileForStd:: ; 1365b
jr nc, .notintable
ld a, jumpstd_command
- ld [wd03f], a
+ ld [wJumpStdScriptBuffer], a
inc hl
ld a, [hli]
- ld [wd03f + 1], a
+ ld [wJumpStdScriptBuffer + 1], a
ld a, [hli]
- ld [wd03f + 2], a
+ ld [wJumpStdScriptBuffer + 2], a
ld a, BANK(Script_JumpStdFromRAM)
ld hl, Script_JumpStdFromRAM
call CallScript
@@ -15045,490 +11040,10 @@ CheckFacingTileForStd:: ; 1365b
; 1369a
Script_JumpStdFromRAM: ; 0x1369a
- jump wd03f
+ jump wJumpStdScriptBuffer
; 0x1369d
-
-_BugContestJudging: ; 1369d
- call ContestScore
- callba MobileFn_105f79
- call Function13819
- ld a, [wd00a]
- call LoadContestantName
- ld a, [wd00b]
- ld [wd265], a
- call GetPokemonName
- ld hl, BugContest_ThirdPlaceText
- call PrintText
- ld a, [EndFlypoint]
- call LoadContestantName
- ld a, [MovementBuffer]
- ld [wd265], a
- call GetPokemonName
- ld hl, BugContest_SecondPlaceText
- call PrintText
- ld a, [DefaultFlypoint]
- call LoadContestantName
- ld a, [wd003]
- ld [wd265], a
- call GetPokemonName
- ld hl, BugContest_FirstPlaceText
- call PrintText
- jp Function13807
-; 136eb
-
-BugContest_FirstPlaceText: ; 0x136eb
- text_jump ContestJudging_FirstPlaceText
- start_asm
-BugContest_FirstPlace: ; 136f0
- ld de, SFX_1ST_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_FirstPlaceScoreText
- ret
-; 136fd
-
-BugContest_FirstPlaceScoreText: ; 0x136fd
- ; The winning score was @ points!
- text_jump ContestJudging_FirstPlaceScoreText
- db "@"
-; 0x13702
-
-BugContest_SecondPlaceText: ; 0x13702
- ; Placing second was @ , who caught a @ !@ @
- text_jump ContestJudging_SecondPlaceText
- start_asm
-BugContest_SecondPlace: ; 13707
- ld de, SFX_2ND_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_SecondPlaceScoreText
- ret
-; 13714
-
-BugContest_SecondPlaceScoreText: ; 0x13714
- ; The score was @ points!
- text_jump ContestJudging_SecondPlaceScoreText
- db "@"
-; 0x13719
-
-BugContest_ThirdPlaceText: ; 0x13719
- ; Placing third was @ , who caught a @ !@ @
- text_jump ContestJudging_ThirdPlaceText
- start_asm
-; 0x1371e
-
-BugContest_ThirdPlace: ; 1371e
- ld de, SFX_3RD_PLACE
- call PlaySFX
- call WaitSFX
- ld hl, BugContest_ThirdPlaceScoreText
- ret
-; 1372b
-
-BugContest_ThirdPlaceScoreText: ; 0x1372b
- ; The score was @ points!
- text_jump ContestJudging_ThirdPlaceScoreText
- db "@"
-; 0x13730
-
-LoadContestantName: ; 13730
-
-; If a = 0, get your name.
- dec a
- jr z, .done
-; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a.
- ld c, a
- ld b, 0
- ld hl, BugContestantPointers
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
-; Copy the Trainer Class to c.
- ld a, [hli]
- ld c, a
-; Save hl and bc for later.
- push hl
- push bc
-; Get the Trainer Class name and copy it into wd016.
- callab GetTrainerClassName
- ld hl, StringBuffer1
- ld de, wd016
- ld bc, TRAINER_CLASS_NAME_LENGTH
- call CopyBytes
- ld hl, wd016
-; Delete the trailing terminator and replace it with a space.
-.next
- ld a, [hli]
- cp "@"
- jr nz, .next
- dec hl
- ld [hl], " "
- inc hl
- ld d, h
- ld e, l
-; Restore the Trainer Class ID and Trainer ID pointer. Save de for later.
- pop bc
- pop hl
- push de
-; Get the name of the trainer with class c and ID b.
- ld a, [hl]
- ld b, a
- callab GetTrainerName
-; Append the name to wd016.
- ld hl, StringBuffer1
- pop de
- ld bc, NAME_LENGTH - 1
- jp CopyBytes
-
-.done
- ld hl, PlayerName
- ld de, wd016
- ld bc, NAME_LENGTH
- jp CopyBytes
-; 13783
-
-BugContestantPointers: ; 13783
- dw BugContestant_BugCatcherDon ; This reverts back to the player
- dw BugContestant_BugCatcherDon
- dw BugContestant_BugCatcherEd
- dw BugContestant_CooltrainerMNick
- dw BugContestant_PokefanMWilliam
- dw BugContestant_BugCatcherBenny
- dw BugContestant_CamperBarry
- dw BugContestant_PicnickerCindy
- dw BugContestant_BugCatcherJosh
- dw BugContestant_YoungsterSamuel
- dw BugContestant_SchoolboyKipp
-; 13799
-
-BugContestant_BugCatcherDon:
- db BUG_CATCHER, DON
- dbw KAKUNA, 300
- dbw METAPOD, 285
- dbw CATERPIE, 226
-
-BugContestant_BugCatcherEd:
- db BUG_CATCHER, ED
- dbw BUTTERFREE, 286
- dbw BUTTERFREE, 251
- dbw CATERPIE, 237
-
-BugContestant_CooltrainerMNick:
- db COOLTRAINERM, NICK
- dbw SCYTHER, 357
- dbw BUTTERFREE, 349
- dbw PINSIR, 368
-
-BugContestant_PokefanMWilliam:
- db POKEFANM, WILLIAM
- dbw PINSIR, 332
- dbw BUTTERFREE, 324
- dbw VENONAT, 321
-
-BugContestant_BugCatcherBenny:
- db BUG_CATCHER, BUG_CATCHER_BENNY
- dbw BUTTERFREE, 318
- dbw WEEDLE, 295
- dbw CATERPIE, 285
-
-BugContestant_CamperBarry:
- db CAMPER, BARRY
- dbw PINSIR, 366
- dbw VENONAT, 329
- dbw KAKUNA, 314
-
-BugContestant_PicnickerCindy:
- db PICNICKER, CINDY
- dbw BUTTERFREE, 341
- dbw METAPOD, 301
- dbw CATERPIE, 264
-
-BugContestant_BugCatcherJosh:
- db BUG_CATCHER, JOSH
- dbw SCYTHER, 326
- dbw BUTTERFREE, 292
- dbw METAPOD, 282
-
-BugContestant_YoungsterSamuel:
- db YOUNGSTER, SAMUEL
- dbw WEEDLE, 270
- dbw PINSIR, 282
- dbw CATERPIE, 251
-
-BugContestant_SchoolboyKipp:
- db SCHOOLBOY, KIPP
- dbw VENONAT, 267
- dbw PARAS, 254
- dbw KAKUNA, 259
-; 13807
-
-Function13807: ; 13807
- ld hl, wd00a
- ld de, -4
- ld b, 3
-.loop
- ld a, [hl]
- cp 1
- jr z, .done
- add hl, de
- dec b
- jr nz, .loop
-
-.done
- ret
-; 13819
-
-Function13819: ; 13819
- call Function13833
- call Function138b0
- ld hl, wd00e
- ld a, 1
- ld [hli], a
- ld a, [wContestMon]
- ld [hli], a
- ld a, [hProduct]
- ld [hli], a
- ld a, [hMultiplicand]
- ld [hl], a
- call Function1383e
- ret
-; 13833
-
-Function13833: ; 13833
- ld hl, DefaultFlypoint
- ld b, 12
- xor a
-.loop
- ld [hli], a
- dec b
- jr nz, .loop
- ret
-; 1383e
-
-Function1383e: ; 1383e
- ld de, wd010
- ld hl, wd004
- ld c, 2
- call StringCmp
- jr c, .next
- ld hl, EndFlypoint
- ld de, wd00a
- ld bc, $0004
- call CopyBytes
- ld hl, DefaultFlypoint
- ld de, EndFlypoint
- ld bc, 4
- call CopyBytes
- ld hl, DefaultFlypoint
- call Function138a0
- jr .done
-
-.next
- ld de, wd010
- ld hl, wd008
- ld c, 2
- call StringCmp
- jr c, .next2
- ld hl, EndFlypoint
- ld de, wd00a
- ld bc, 4
- call CopyBytes
- ld hl, EndFlypoint
- call Function138a0
- jr .done
-
-.next2
- ld de, wd010
- ld hl, wd00c
- ld c, 2
- call StringCmp
- jr c, .done
- ld hl, wd00a
- call Function138a0
-
-.done
- ret
-; 138a0
-
-Function138a0: ; 138a0
- ld de, wd00e
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hl], a
- ret
-; 138b0
-
-Function138b0: ; 138b0
- ld e, 0
-.loop
- push de
- call Special_CheckBugContestContestantFlag
- pop de
- jr nz, .done
- ld a, e
-rept 2
- inc a
-endr
- ld [wd00e], a
- dec a
- ld c, a
- ld b, 0
- ld hl, BugContestantPointers
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
-rept 2
- inc hl
-endr
-.loop2
- call Random
- and 3
- cp 3
- jr z, .loop2
- ld c, a
- ld b, 0
-rept 3
- add hl, bc
-endr
- ld a, [hli]
- ld [wd00f], a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Random
- and 7
- ld c, a
- ld b, 0
- add hl, bc
- ld a, h
- ld [wd010], a
- ld a, l
- ld [wd011], a
- push de
- call Function1383e
- pop de
-
-.done
- inc e
- ld a, e
- cp 10
- jr nz, .loop
- ret
-; 13900
-
-ContestScore: ; 13900
-; Determine the player's score in the Bug Catching Contest.
-
- xor a
- ld [hProduct], a
- ld [hMultiplicand], a
-
- ld a, [wContestMonSpecies] ; Species
- and a
- jr z, .done
-
- ; Tally the following:
-
- ; Max HP * 4
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
- ld a, [wContestMonMaxHP + 1]
- call .AddContestStat
-
- ; Stats
- ld a, [wContestMonAttack + 1]
- call .AddContestStat
- ld a, [wContestMonDefense + 1]
- call .AddContestStat
- ld a, [wContestMonSpeed + 1]
- call .AddContestStat
- ld a, [wContestMonSpclAtk + 1]
- call .AddContestStat
- ld a, [wContestMonSpclDef + 1]
- call .AddContestStat
-
- ; DVs
- ld a, [wContestMonDVs + 0]
- ld b, a
- and 2
-rept 2
- add a
-endr
- ld c, a
-
- swap b
- ld a, b
- and 2
- add a
- add c
- ld d, a
-
- ld a, [wContestMonDVs + 1]
- ld b, a
- and 2
- ld c, a
-
- swap b
- ld a, b
- and 2
- srl a
-rept 2
- add c
-endr
-rept 2
- add d
-endr
-
- call .AddContestStat
-
- ; Remaining HP / 8
- ld a, [wContestMonHP + 1]
- srl a
- srl a
- srl a
- call .AddContestStat
-
- ; Whether it's holding an item
- ld a, [wContestMonItem]
- and a
- jr z, .done
-
- ld a, 1
- call .AddContestStat
-
-.done
- ret
-; 1397f
-
-.AddContestStat: ; 1397f
- ld hl, hMultiplicand
- add [hl]
- ld [hl], a
- ret nc
- dec hl
- inc [hl]
- ret
-; 13988
+INCLUDE "event/bug_contest_judging.asm"
; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured.
ApplyPokerusTick: ; 13988
@@ -15553,376 +11068,16 @@ ApplyPokerusTick: ; 13988
ld [hl], a
.does_not_have_pokerus
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
add hl, de
dec c
jr nz, .loop
ret
; 139a8
-Special_SelectRandomBugContestContestants: ; 139a8
-; Select five random people to participate in the current contest.
-
-; First we have to make sure that any old data is cleared away.
- ld c, 10 ; Number of people to choose from.
- ld hl, BugCatchingContestantEventFlagTable
-.loop1
- push bc
- push hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, RESET_FLAG
- call EventFlagAction
- pop hl
-rept 2
- inc hl
-endr
- pop bc
- dec c
- jr nz, .loop1
-
-; Now that that's out of the way, we can get on to the good stuff.
- ld c, 5
-.loop2
- push bc
-.next
-; Choose a flag at uniform random to be set.
- call Random
- cp $fa ; 250
- jr nc, .next
- ld c, $19 ; 25
- call SimpleDivide
- ld e, b
- ld d, 0
- ld hl, BugCatchingContestantEventFlagTable
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- push de
-; If we've already set it, it doesn't count.
- ld b, CHECK_FLAG
- call EventFlagAction
- pop de
- ld a, c
- and a
- jr nz, .next
-; Set the flag. This will cause that sprite to not be visible in the contest.
- ld b, SET_FLAG
- call EventFlagAction
- pop bc
-; Check if we're done. If so, return. Otherwise, choose the next victim.
- dec c
- jr nz, .loop2
- ret
-; 139ed
-
-Special_CheckBugContestContestantFlag: ; 139ed
-; Checks the flag of the Bug Catching Contestant whose index is loaded in a.
-
-; Bug: If a >= 10 when this is called, it will read beyond the table.
-
- ld hl, BugCatchingContestantEventFlagTable
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, CHECK_FLAG
- call EventFlagAction
- ret
-; 139fe
-
-BugCatchingContestantEventFlagTable: ; 139fe
- dw EVENT_BUG_CATCHING_CONTESTANT_1A
- dw EVENT_BUG_CATCHING_CONTESTANT_2A
- dw EVENT_BUG_CATCHING_CONTESTANT_3A
- dw EVENT_BUG_CATCHING_CONTESTANT_4A
- dw EVENT_BUG_CATCHING_CONTESTANT_5A
- dw EVENT_BUG_CATCHING_CONTESTANT_6A
- dw EVENT_BUG_CATCHING_CONTESTANT_7A
- dw EVENT_BUG_CATCHING_CONTESTANT_8A
- dw EVENT_BUG_CATCHING_CONTESTANT_9A
- dw EVENT_BUG_CATCHING_CONTESTANT_10A
-; 13a12
-
-CheckFirstMonFainted: ; 13a12
- ld hl, PartyMon1HP
- ld a, [hli]
- or [hl]
- jr z, .fainted
- ld hl, PartyCount
- ld a, 1
- ld [hli], a
- inc hl
- ld a, [hl]
- ld [wdf9b], a
- ld [hl], $ff
- xor a
- ld [ScriptVar], a
- ret
-
-.fainted
- ld a, $1
- ld [ScriptVar], a
- ret
-; 13a31
-
-ContestReturnMons: ; 13a31
- ld hl, PartySpecies + 1
- ld a, [wdf9b]
- ld [hl], a
- ld b, $1
-.asm_13a3a
- ld a, [hli]
- cp $ff
- jr z, .asm_13a42
- inc b
- jr .asm_13a3a
-
-.asm_13a42
- ld a, b
- ld [PartyCount], a
- ret
-; 13a47
-
-Function13a47: ; unreferenced
- ld hl, PartyCount
- ld a, [hl]
- and a
- ret z
-
- cp PARTY_LENGTH + 1
- jr c, .asm_13a54
- ld a, PARTY_LENGTH
- ld [hl], a
-.asm_13a54
- inc hl
-
- ld b, a
- ld c, 0
-.asm_13a58
- ld a, [hl]
- and a
- jr z, .asm_13a64
- cp $fc
- jr z, .asm_13a64
- cp $fe
- jr c, .asm_13a73
-
-.asm_13a64
- ld [hl], SMEARGLE
- push hl
- push bc
- ld a, c
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld [hl], SMEARGLE
- pop bc
- pop hl
-
-.asm_13a73
- inc hl
- inc c
- dec b
- jr nz, .asm_13a58
- ld [hl], $ff
-
- ld hl, PartyMon1
- ld a, [PartyCount]
- ld d, a
- ld e, 0
-.asm_13a83
- push de
- push hl
- ld b, h
- ld c, l
- ld a, [hl]
- and a
- jr z, .asm_13a8f
- cp NUM_POKEMON + 1
- jr c, .asm_13a9c
-
-.asm_13a8f
- ld [hl], SMEARGLE
- push de
- ld d, 0
- ld hl, PartySpecies
- add hl, de
- pop de
- ld a, SMEARGLE
- ld [hl], a
-
-.asm_13a9c
- ld [CurSpecies], a
- call GetBaseData
- ld hl, PartyMon1Level - PartyMon1
- add hl, bc
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .asm_13ab4
- ld a, [hl]
- cp MAX_LEVEL
- jr c, .asm_13ab5
- ld a, MAX_LEVEL
-.asm_13ab4
- ld [hl], a
-.asm_13ab5
- ld [CurPartyLevel], a
-
- ld hl, PartyMon1MaxHP - PartyMon1
- add hl, bc
- ld d, h
- ld e, l
- ld hl, PartyMon1Exp + 2 - PartyMon1
- add hl, bc
- ld b, $1
- predef CalcPkmnStats
- pop hl
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- pop de
- inc e
- dec d
- jr nz, .asm_13a83
-
- ld de, PartyMonNicknames
- ld a, [PartyCount]
- ld b, a
- ld c, 0
-.asm_13adc
- push bc
- call Function13b71
- push de
- callba Function17d073
- pop hl
- pop bc
- jr nc, .asm_13b0e
-
- push bc
- push hl
- ld hl, PartySpecies
- push bc
- ld b, 0
- add hl, bc
- pop bc
- ld a, [hl]
- cp EGG
- ld hl, String_13b6b
- jr z, .asm_13b06
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
-.asm_13b06
- pop de
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- pop bc
-
-.asm_13b0e
- inc c
- dec b
- jr nz, .asm_13adc
-
- ld de, PartyMonOT
- ld a, [PartyCount]
- ld b, a
- ld c, 0
-.asm_13b1b
- push bc
- call Function13b71
- push de
- callba Function17d073
- pop hl
- jr nc, .asm_13b34
- ld d, h
- ld e, l
- ld hl, PlayerName
- ld bc, $000b
- call CopyBytes
-.asm_13b34
- pop bc
- inc c
- dec b
- jr nz, .asm_13b1b
-
- ld hl, PartyMon1Moves
- ld a, [PartyCount]
- ld b, a
-.asm_13b40
- push hl
- ld c, NUM_MOVES
- ld a, [hl]
- and a
- jr z, .asm_13b4b
- cp NUM_ATTACKS + 1
- jr c, .asm_13b4d
-.asm_13b4b
- ld [hl], POUND
-
-.asm_13b4d
- ld a, [hl]
- and a
- jr z, .asm_13b55
- cp NUM_ATTACKS + 1
- jr c, .asm_13b5c
-
-.asm_13b55
- xor a
- ld [hli], a
- dec c
- jr nz, .asm_13b55
- jr .asm_13b60
-
-.asm_13b5c
- inc hl
- dec c
- jr nz, .asm_13b4d
-
-.asm_13b60
- pop hl
- push bc
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_13b40
- ret
-; 13b6b
-
-String_13b6b: ; 13b6b
- db "タマゴ@@@"
-; 13b71
-
-Function13b71: ; 13b71
- push de
- ld c, 1
- ld b, 6
-.asm_13b76
- ld a, [de]
- cp "@"
- jr z, .asm_13b85
- inc de
- inc c
- dec b
- jr nz, .asm_13b76
- dec c
- dec de
- ld a, "@"
- ld [de], a
-
-.asm_13b85
- pop de
- ret
-; 13b87
+INCLUDE "event/bug_contest_2.asm"
+INCLUDE "unknown/013a47.asm"
GetSquareRoot: ; 13b87
; Return the square root of de in b.
@@ -16066,10 +11221,12 @@ StartClock:: ; 14089
call GetClock
call Function1409b
call FixDays
- jr nc, .asm_14097
- call Function6d3
+ jr nc, .skip_set
+ ; bit 5: Day count exceeds 139
+ ; bit 6: Day count exceeds 255
+ call Function6d3 ; set flag on s0_ac60
-.asm_14097
+.skip_set
call StartRTC
ret
; 1409b
@@ -16077,38 +11234,40 @@ StartClock:: ; 14089
Function1409b: ; 1409b
ld hl, hRTCDayHi
bit 7, [hl]
- jr nz, .asm_140a8
+ jr nz, .set_bit_7
bit 6, [hl]
- jr nz, .asm_140a8
+ jr nz, .set_bit_7
xor a
ret
-.asm_140a8
- ld a, $80
- call Function6d3
+.set_bit_7
+ ; Day count exceeds 16383
+ ld a, %10000000
+ call Function6d3 ; set bit 7 on s0_ac60
ret
; 140ae
Function140ae: ; 140ae
call Function6e3
ld c, a
- and %11000000
- jr nz, .asm_140c8
+ and %11000000 ; Day count exceeded 255 or 16383
+ jr nz, .time_overflow
ld a, c
- and %00100000
- jr z, .asm_140eb
+ and %00100000 ; Day count exceeded 139
+ jr z, .dont_update
call UpdateTime
ld a, [wRTC + 0]
ld b, a
ld a, [CurDay]
cp b
- jr c, .asm_140eb
+ jr c, .dont_update
-.asm_140c8
+.time_overflow
callba ClearDailyTimers
callba Function170923
+; mobile
ld a, $5
call GetSRAMBank
ld a, [$aa8c]
@@ -16120,7 +11279,7 @@ Function140ae: ; 140ae
call CloseSRAM
ret
-.asm_140eb
+.dont_update
xor a
ret
; 140ed
@@ -16173,1518 +11332,7 @@ Function140ed:: ; 140ed
ret
; 1412a
-GetEmote2bpp: ; 1412a
- ld a, $1
- ld [rVBK], a
- call Get2bpp
- xor a
- ld [rVBK], a
- ret
-; 14135
-
-Function14135:: ; 14135
- call GetPlayerSprite
- ld a, [UsedSprites]
- ld [hUsedSpriteIndex], a
- ld a, [UsedSprites + 1]
- ld [hUsedSpriteTile], a
- call Function143c8
- ret
-; 14146
-
-Function14146: ; 14146
- ld hl, wd13e
- ld a, [hl]
- push af
- res 7, [hl]
- set 6, [hl]
- call RunCallback_04
- pop af
- ld [wd13e], a
- ret
-; 14157
-
-Function14157: ; 14157
- ld hl, wd13e
- ld a, [hl]
- push af
- set 7, [hl]
- res 6, [hl]
- call RunCallback_04
- pop af
- ld [wd13e], a
- ret
-; 14168
-
-
-Function14168:: ; 14168
- call Function1416f
- call RunCallback_04
- ret
-; 1416f
-
-Function1416f: ; 1416f
- xor a
- ld bc, $0040
- ld hl, UsedSprites
- call ByteFill
- call GetPlayerSprite
- call AddMapSprites
- call Function142db
- ret
-; 14183
-
-
-
-GetPlayerSprite: ; 14183
-; Get Chris or Kris's sprite.
-
- ld hl, .Chris
- ld a, [wPlayerSpriteSetupFlags]
- bit 2, a
- jr nz, .go
- ld a, [PlayerGender]
- bit 0, a
- jr z, .go
- ld hl, .Kris
-
-.go
- ld a, [PlayerState]
- ld c, a
-.loop
- ld a, [hli]
- cp c
- jr z, .asm_141ac
- inc hl
- cp $ff
- jr nz, .loop
-
-; Any player state not in the array defaults to Chris's sprite.
- xor a ; ld a, PLAYER_NORMAL
- ld [PlayerState], a
- ld a, SPRITE_CHRIS
- jr .asm_141ad
-
-.asm_141ac
- ld a, [hl]
-
-.asm_141ad
- ld [UsedSprites + 0], a
- ld [PlayerStruct + 0], a
- ld [MapObjects + OBJECT_LENGTH * 0 + 1], a
- ret
-
-.Chris
- db PLAYER_NORMAL, SPRITE_CHRIS
- db PLAYER_BIKE, SPRITE_CHRIS_BIKE
- db PLAYER_SURF, SPRITE_SURF
- db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
- db $ff
-
-.Kris
- db PLAYER_NORMAL, SPRITE_KRIS
- db PLAYER_BIKE, SPRITE_KRIS_BIKE
- db PLAYER_SURF, SPRITE_SURF
- db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
- db $ff
-; 141c9
-
-
-AddMapSprites: ; 141c9
- call GetMapPermission
- call CheckOutdoorMap
- jr z, .outdoor
- call AddIndoorSprites
- ret
-.outdoor
- call AddOutdoorSprites
- ret
-; 141d9
-
-
-AddIndoorSprites: ; 141d9
- ld hl, MapObjects + 1 * OBJECT_LENGTH + 1 ; sprite
- ld a, 1
-.loop
- push af
- ld a, [hl]
- call AddSpriteGFX
- ld de, OBJECT_LENGTH
- add hl, de
- pop af
- inc a
- cp NUM_OBJECTS
- jr nz, .loop
- ret
-; 141ee
-
-
-AddOutdoorSprites: ; 141ee
- ld a, [MapGroup]
- dec a
- ld c, a
- ld b, 0
- ld hl, OutdoorSprites
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld c, $17
-.loop
- push bc
- ld a, [hli]
- call AddSpriteGFX
- pop bc
- dec c
- jr nz, .loop
- ret
-; 14209
-
-
-RunCallback_04: ; 14209
- ld a, $4
- call RunMapCallback
- call Function1439b
- call Function14215
- ret
-; 14215
-
-Function14215: ; 14215
- ld a, [wd13e]
- bit 6, a
- ret nz
- ld c, $8
- callba LoadEmote
- call GetMapPermission
- call CheckOutdoorMap
- ld c, $b
- jr z, .asm_1422f
- ld c, $a
-
-.asm_1422f
- callba LoadEmote
- ret
-; 14236
-
-
-
-SafeGetSprite: ; 14236
- push hl
- call GetSprite
- pop hl
- ret
-; 1423c
-
-GetSprite: ; 1423c
- call GetMonSprite
- ret c
-
- ld hl, SpriteHeaders ; address
- dec a
- ld c, a
- ld b, 0
- ld a, 6
- call AddNTimes
- ; load the address into de
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ; load the length into c
- ld a, [hli]
- swap a
- ld c, a
- ; load the sprite bank into both b and h
- ld b, [hl]
- ld a, [hli]
- ; load the sprite type into l
- ld l, [hl]
- ld h, a
- ret
-; 14259
-
-
-GetMonSprite: ; 14259
-; Return carry if a monster sprite was loaded.
-
- cp SPRITE_POKEMON
- jr c, .Normal
- cp SPRITE_DAYCARE_MON_1
- jr z, .wBreedMon1
- cp SPRITE_DAYCARE_MON_2
- jr z, .wBreedMon2
- cp SPRITE_VARS
- jr nc, .Variable
- jr .Icon
-
-.Normal
- and a
- ret
-
-.Icon
- sub SPRITE_POKEMON
- ld e, a
- ld d, 0
- ld hl, SpriteMons
- add hl, de
- ld a, [hl]
- jr .Mon
-
-.wBreedMon1
- ld a, [wBreedMon1Species]
- jr .Mon
-
-.wBreedMon2
- ld a, [wBreedMon2Species]
-
-.Mon
- ld e, a
- and a
- jr z, .NoBreedmon
-
- callba Function8e82b
-
- ld l, 1
- ld h, 0
- scf
- ret
-
-.Variable
- sub SPRITE_VARS
- ld e, a
- ld d, 0
- ld hl, VariableSprites
- add hl, de
- ld a, [hl]
- and a
- jp nz, GetMonSprite
-
-.NoBreedmon
- ld a, 1
- ld l, 1
- ld h, 0
- and a
- ret
-; 142a7
-
-
-Function142a7:: ; 142a7
- cp SPRITE_POKEMON
- jr nc, .is_pokemon
-
- push hl
- push bc
- ld hl, SpriteHeaders + 4 ; type
- dec a
- ld c, a
- ld b, 0
- ld a, 6
- call AddNTimes
- ld a, [hl]
- pop bc
- pop hl
- cp 3
- jr nz, .is_pokemon
- scf
- ret
-
-.is_pokemon
- and a
- ret
-; 142c4
-
-
-_GetSpritePalette:: ; 142c4
- ld a, c
- call GetMonSprite
- jr c, .is_pokemon
-
- ld hl, SpriteHeaders + 5 ; palette
- dec a
- ld c, a
- ld b, 0
- ld a, 6
- call AddNTimes
- ld c, [hl]
- ret
-
-.is_pokemon
- xor a
- ld c, a
- ret
-; 142db
-
-
-Function142db: ; 142db
- call LoadSpriteGFX
- call SortUsedSprites
- call ArrangeUsedSprites
- ret
-; 142e5
-
-
-AddSpriteGFX: ; 142e5
-; Add any new sprite ids to a list of graphics to be loaded.
-; Return carry if the list is full.
-
- push hl
- push bc
- ld b, a
- ld hl, UsedSprites + 2
- ld c, SPRITE_GFX_LIST_CAPACITY - 1
-.loop
- ld a, [hl]
- cp b
- jr z, .exists
- and a
- jr z, .new
-rept 2
- inc hl
-endr
- dec c
- jr nz, .loop
-
- pop bc
- pop hl
- scf
- ret
-
-.exists
- pop bc
- pop hl
- and a
- ret
-
-.new
- ld [hl], b
- pop bc
- pop hl
- and a
- ret
-; 14306
-
-
-LoadSpriteGFX: ; 14306
-; Bug: b is not preserved, so
-; it's useless as a next count.
-
- ld hl, UsedSprites
- ld b, SPRITE_GFX_LIST_CAPACITY
-.loop
- ld a, [hli]
- and a
- jr z, .done
- push hl
- call .LoadSprite
- pop hl
- ld [hli], a
- dec b
- jr nz, .loop
-
-.done
- ret
-
-.LoadSprite
- call GetSprite
- ld a, l
- ret
-; 1431e
-
-
-SortUsedSprites: ; 1431e
-; Bubble-sort sprites by type.
-
-; Run backwards through UsedSprites to find the last one.
-
- ld c, SPRITE_GFX_LIST_CAPACITY
- ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2
-.FindLastSprite
- ld a, [de]
- and a
- jr nz, .FoundLastSprite
-rept 2
- dec de
-endr
- dec c
- jr nz, .FindLastSprite
-.FoundLastSprite
- dec c
- jr z, .quit
-
-; If the length of the current sprite is
-; higher than a later one, swap them.
-
- inc de
- ld hl, UsedSprites + 1
-
-.CheckSprite
- push bc
- push de
- push hl
-
-.CheckFollowing
- ld a, [de]
- cp [hl]
- jr nc, .loop
-
-; Swap the two sprites.
-
- ld b, a
- ld a, [hl]
- ld [hl], b
- ld [de], a
- dec de
- dec hl
- ld a, [de]
- ld b, a
- ld a, [hl]
- ld [hl], b
- ld [de], a
- inc de
- inc hl
-
-; Keep doing this until everything's in order.
-
-.loop
-rept 2
- dec de
-endr
- dec c
- jr nz, .CheckFollowing
-
- pop hl
-rept 2
- inc hl
-endr
- pop de
- pop bc
- dec c
- jr nz, .CheckSprite
-
-.quit
- ret
-; 14355
-
-
-ArrangeUsedSprites: ; 14355
-; Get the length of each sprite and space them out in VRAM.
-; Crystal introduces a second table in VRAM bank 0.
-
- ld hl, UsedSprites
- ld c, SPRITE_GFX_LIST_CAPACITY
- ld b, 0
-.FirstTableLength
-; Keep going until the end of the list.
- ld a, [hli]
- and a
- jr z, .quit
-
- ld a, [hl]
- call GetSpriteLength
-
-; Spill over into the second table after $80 tiles.
- add b
- cp $80
- jr z, .loop
- jr nc, .SecondTable
-
-.loop
- ld [hl], b
- inc hl
- ld b, a
-
-; Assumes the next table will be reached before c hits 0.
- dec c
- jr nz, .FirstTableLength
-
-.SecondTable
-; The second tile table starts at tile $80.
- ld b, $80
- dec hl
-.SecondTableLength
-; Keep going until the end of the list.
- ld a, [hli]
- and a
- jr z, .quit
-
- ld a, [hl]
- call GetSpriteLength
-
-; There are only two tables, so don't go any further than that.
- add b
- jr c, .quit
-
- ld [hl], b
- ld b, a
- inc hl
-
- dec c
- jr nz, .SecondTableLength
-
-.quit
- ret
-; 14386
-
-
-GetSpriteLength: ; 14386
-; Return the length of sprite type a in tiles.
-
- cp WALKING_SPRITE
- jr z, .AnyDirection
- cp STANDING_SPRITE
- jr z, .AnyDirection
- cp STILL_SPRITE
- jr z, .OneDirection
-
- ld a, 12
- ret
-
-.AnyDirection
- ld a, 12
- ret
-
-.OneDirection
- ld a, 4
- ret
-; 1439b
-
-
-Function1439b: ; 1439b
- ld hl, UsedSprites
- ld c, SPRITE_GFX_LIST_CAPACITY
-.loop
- ld a, [wd13e]
- res 5, a
- ld [wd13e], a
- ld a, [hli]
- and a
- jr z, .done
- ld [hUsedSpriteIndex], a
- ld a, [hli]
- ld [hUsedSpriteTile], a
- bit 7, a
- jr z, .dont_set
- ld a, [wd13e]
- set 5, a
- ld [wd13e], a
-
-.dont_set
- push bc
- push hl
- call Function143c8
- pop hl
- pop bc
- dec c
- jr nz, .loop
-
-.done
- ret
-; 143c8
-
-Function143c8: ; 143c8
- ld a, [hUsedSpriteIndex]
- call SafeGetSprite
- ld a, [hUsedSpriteTile]
- call GetTileAddr
- push hl
- push de
- push bc
- ld a, [wd13e]
- bit 7, a
- jr nz, .asm_143df
- call Function14418
-
-.asm_143df
- pop bc
- ld l, c
- ld h, $0
-rept 4
- add hl, hl
-endr
- pop de
- add hl, de
- ld d, h
- ld e, l
- pop hl
- ld a, [wd13e]
- bit 5, a
- jr nz, .asm_14405
- bit 6, a
- jr nz, .asm_14405
- ld a, [hUsedSpriteIndex]
- call Function142a7
- jr c, .asm_14405
- ld a, h
- add $8
- ld h, a
- call Function14418
-
-.asm_14405
- ret
-; 14406
-
-GetTileAddr: ; 14406
-; Return the address of tile (a) in (hl).
- and $7f
- ld l, a
- ld h, 0
-rept 4
- add hl, hl
-endr
- ld a, l
- add VTiles0 % $100
- ld l, a
- ld a, h
- adc VTiles0 / $100
- ld h, a
- ret
-; 14418
-
-Function14418: ; 14418
- ld a, [rVBK]
- push af
- ld a, [wd13e]
- bit 5, a
- ld a, $1
- jr z, .asm_14426
- ld a, $0
-
-.asm_14426
- ld [rVBK], a
- call Get2bpp
- pop af
- ld [rVBK], a
- ret
-; 1442f
-
-LoadEmote:: ; 1442f
-; Get the address of the pointer to emote c.
- ld a, c
- ld bc, 6
- ld hl, EmotesPointers
- call AddNTimes
-; Load the emote address into de
- ld e, [hl]
- inc hl
- ld d, [hl]
-; load the length of the emote (in tiles) into c
- inc hl
- ld c, [hl]
- swap c
-; load the emote pointer bank into b
- inc hl
- ld b, [hl]
-; load the VRAM destination into hl
- inc hl
- ld a, [hli]
- ld h, [hl]
- ld l, a
-; if the emote has a length of 0, do not proceed (error handling)
- ld a, c
- and a
- ret z
- call GetEmote2bpp
- ret
-; 1444d
-
-EmotesPointers: ; 144d
-; dw source address
-; db length, bank
-; dw dest address
-
- dw ShockEmote
- db 4 * $10, BANK(ShockEmote)
- dw VTiles1 tile $78
-
- dw QuestionEmote
- db 4 * $10, BANK(QuestionEmote)
- dw VTiles1 tile $78
-
- dw HappyEmote
- db 4 * $10, BANK(HappyEmote)
- dw VTiles1 tile $78
-
- dw SadEmote
- db 4 * $10, BANK(SadEmote)
- dw VTiles1 tile $78
-
- dw HeartEmote
- db 4 * $10, BANK(HeartEmote)
- dw VTiles1 tile $78
-
- dw BoltEmote
- db 4 * $10, BANK(BoltEmote)
- dw VTiles1 tile $78
-
- dw SleepEmote
- db 4 * $10, BANK(SleepEmote)
- dw VTiles1 tile $78
-
- dw FishEmote
- db 4 * $10, BANK(FishEmote)
- dw VTiles1 tile $78
-
- dw FishingRodGFX + $00
- db 1 * $10, BANK(FishingRodGFX)
- dw VTiles1 tile $7c
-
- dw FishingRodGFX + $10
- db 2 * $10, BANK(FishingRodGFX)
- dw VTiles1 tile $7c
-
- dw FishingRodGFX + $30
- db 2 * $10, BANK(FishingRodGFX)
- dw VTiles1 tile $7e
-
- dw FishingRodGFX + $50
- db 1 * $10, BANK(FishingRodGFX)
- dw VTiles1 tile $7e
-
-; 14495
-
-
-SpriteMons: ; 14495
- db UNOWN
- db GEODUDE
- db GROWLITHE
- db WEEDLE
- db SHELLDER
- db ODDISH
- db GENGAR
- db ZUBAT
- db MAGIKARP
- db SQUIRTLE
- db TOGEPI
- db BUTTERFREE
- db DIGLETT
- db POLIWAG
- db PIKACHU
- db CLEFAIRY
- db CHARMANDER
- db JYNX
- db STARMIE
- db BULBASAUR
- db JIGGLYPUFF
- db GRIMER
- db EKANS
- db PARAS
- db TENTACOOL
- db TAUROS
- db MACHOP
- db VOLTORB
- db LAPRAS
- db RHYDON
- db MOLTRES
- db SNORLAX
- db GYARADOS
- db LUGIA
- db HO_OH
-; 144b8
-
-
-OutdoorSprites: ; 144b8
-; Valid sprite IDs for each map group.
-
- dw Group1Sprites
- dw Group2Sprites
- dw Group3Sprites
- dw Group4Sprites
- dw Group5Sprites
- dw Group6Sprites
- dw Group7Sprites
- dw Group8Sprites
- dw Group9Sprites
- dw Group10Sprites
- dw Group11Sprites
- dw Group12Sprites
- dw Group13Sprites
- dw Group14Sprites
- dw Group15Sprites
- dw Group16Sprites
- dw Group17Sprites
- dw Group18Sprites
- dw Group19Sprites
- dw Group20Sprites
- dw Group21Sprites
- dw Group22Sprites
- dw Group23Sprites
- dw Group24Sprites
- dw Group25Sprites
- dw Group26Sprites
-; 144ec
-
-
-Group13Sprites: ; 144ec
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14503
-
-Group23Sprites: ; 14503
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1451a
-
-Group14Sprites: ; 1451a
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14531
-
-Group6Sprites: ; 14531
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_BLUE
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SWIMMER_GUY
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14548
-
-Group7Sprites: ; 14548
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_COOLTRAINER_M
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKET
- db SPRITE_MISTY
- db SPRITE_POKE_BALL
- db SPRITE_SLOWPOKE
-; 1455f
-
-Group25Sprites: ; 1455f
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_COOLTRAINER_M
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKET
- db SPRITE_MISTY
- db SPRITE_POKE_BALL
- db SPRITE_SLOWPOKE
-; 14576
-
-Group21Sprites: ; 14576
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_POLIWAG
- db SPRITE_TEACHER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_BIKER
- db SPRITE_SILVER
- db SPRITE_BLUE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1458d
-
-Group18Sprites: ; 1458d
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145a4
-
-Group12Sprites: ; 145a4
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145bb
-
-Group17Sprites: ; 145bb
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_MACHOP
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_BIG_SNORLAX
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 145d2
-
-Group16Sprites: ; 145d2
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_POKEFAN_M
- db SPRITE_BUENA
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_SUPER_NERD
- db SPRITE_MACHOP
- db SPRITE_BIKER
- db SPRITE_POKE_BALL
- db SPRITE_BOULDER
-; 145e9
-
-Group24Sprites: ; 145e9
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14600
-
-Group26Sprites: ; 14600
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14617
-
-Group19Sprites: ; 14617
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SILVER
- db SPRITE_TEACHER
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_YOUNGSTER
- db SPRITE_MONSTER
- db SPRITE_GRAMPS
- db SPRITE_BUG_CATCHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1462e
-
-Group10Sprites: ; 1462e
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_LASS
- db SPRITE_OFFICER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_COOLTRAINER_M
- db SPRITE_BUG_CATCHER
- db SPRITE_SUPER_NERD
- db SPRITE_WEIRD_TREE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 14645
-
-Group4Sprites: ; 14645
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_FISHER
- db SPRITE_LASS
- db SPRITE_OFFICER
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_COOLTRAINER_M
- db SPRITE_BUG_CATCHER
- db SPRITE_SUPER_NERD
- db SPRITE_WEIRD_TREE
- db SPRITE_POKE_BALL
- db SPRITE_FRUIT_TREE
-; 1465c
-
-Group8Sprites: ; 1465c
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_KURT_OUTSIDE
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_OFFICER
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_TEACHER
- db SPRITE_AZALEA_ROCKET
- db SPRITE_LASS
- db SPRITE_SILVER
- db SPRITE_FRUIT_TREE
- db SPRITE_SLOWPOKE
-; 14673
-
-Group11Sprites: ; 14673
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_POKE_BALL
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_OFFICER
- db SPRITE_POKEFAN_M
- db SPRITE_DAYCARE_MON_1
- db SPRITE_COOLTRAINER_F
- db SPRITE_ROCKET
- db SPRITE_LASS
- db SPRITE_DAYCARE_MON_2
- db SPRITE_FRUIT_TREE
- db SPRITE_SLOWPOKE
-; 1468a
-
-Group22Sprites: ; 1468a
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_STANDING_YOUNGSTER
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_OLIVINE_RIVAL
- db SPRITE_POKEFAN_M
- db SPRITE_LASS
- db SPRITE_BUENA
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SAILOR
- db SPRITE_POKEFAN_F
- db SPRITE_SUPER_NERD
- db SPRITE_TAUROS
- db SPRITE_FRUIT_TREE
- db SPRITE_ROCK
-; 146a1
-
-Group1Sprites: ; 146a1
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_STANDING_YOUNGSTER
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_OLIVINE_RIVAL
- db SPRITE_POKEFAN_M
- db SPRITE_LASS
- db SPRITE_BUENA
- db SPRITE_SWIMMER_GIRL
- db SPRITE_SAILOR
- db SPRITE_POKEFAN_F
- db SPRITE_SUPER_NERD
- db SPRITE_TAUROS
- db SPRITE_FRUIT_TREE
- db SPRITE_ROCK
-; 146b8
-
-Group9Sprites: ; 146b8
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_LANCE
- db SPRITE_GRAMPS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_COOLTRAINER_M
- db SPRITE_LASS
- db SPRITE_YOUNGSTER
- db SPRITE_GYARADOS
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146cf
-
-Group2Sprites: ; 146cf
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_M
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146e6
-
-Group5Sprites: ; 146e6
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_GRAMPS
- db SPRITE_YOUNGSTER
- db SPRITE_LASS
- db SPRITE_SUPER_NERD
- db SPRITE_COOLTRAINER_M
- db SPRITE_POKEFAN_M
- db SPRITE_BLACK_BELT
- db SPRITE_COOLTRAINER_F
- db SPRITE_FISHER
- db SPRITE_FRUIT_TREE
- db SPRITE_POKE_BALL
-; 146fd
-
-Group3Sprites: ; 146fd
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_GAMEBOY_KID
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_LASS
- db SPRITE_POKEFAN_F
- db SPRITE_TEACHER
- db SPRITE_YOUNGSTER
- db SPRITE_GROWLITHE
- db SPRITE_POKEFAN_M
- db SPRITE_ROCKER
- db SPRITE_FISHER
- db SPRITE_SCIENTIST
- db SPRITE_POKE_BALL
- db SPRITE_BOULDER
-; 14714
-
-Group15Sprites: ; 14714
- db SPRITE_SUICUNE
- db SPRITE_SILVER_TROPHY
- db SPRITE_FAMICOM
- db SPRITE_POKEDEX
- db SPRITE_WILL
- db SPRITE_KAREN
- db SPRITE_NURSE
- db SPRITE_OLD_LINK_RECEPTIONIST
- db SPRITE_BIG_LAPRAS
- db SPRITE_BIG_ONIX
- db SPRITE_SUDOWOODO
- db SPRITE_BIG_SNORLAX
- db SPRITE_SAILOR
- db SPRITE_FISHING_GURU
- db SPRITE_GENTLEMAN
- db SPRITE_SUPER_NERD
- db SPRITE_HO_OH
- db SPRITE_TEACHER
- db SPRITE_COOLTRAINER_F
- db SPRITE_YOUNGSTER
- db SPRITE_FAIRY
- db SPRITE_POKE_BALL
- db SPRITE_ROCK
-; 1472b
-
-Group20Sprites: ; 1472b
- db SPRITE_OAK
- db SPRITE_FISHER
- db SPRITE_TEACHER
- db SPRITE_TWIN
- db SPRITE_POKEFAN_M
- db SPRITE_GRAMPS
- db SPRITE_FAIRY
- db SPRITE_SILVER
- db SPRITE_FISHING_GURU
- db SPRITE_POKE_BALL
- db SPRITE_POKEDEX
-; 14736
-
-
-SpriteHeaders: ; 14736
-INCLUDE "gfx/overworld/sprite_headers.asm"
-; 1499a
-
+INCLUDE "engine/sprites.asm"
Function1499a:: ; 1499a
ld a, [PlayerStandingTile]
@@ -17784,13 +11432,13 @@ CheckCutCollision: ; 149f5
Function14a07:: ; 14a07
ld a, [PlayerStandingTile]
- ld de, $001f
+ ld de, $1f
cp $71 ; door
ret z
- ld de, $0013
+ ld de, $13
cp $7c ; warp pad
ret z
- ld de, $0023
+ ld de, $23
ret
; 14a1a
@@ -17878,7 +11526,7 @@ PokemonCenterPC: ; 1559a
; 1563e
Function1563e: ; 1563e
- call Function2ead
+ call CheckReceivedDex
jr nz, .asm_15646
ld a, $0
ret
@@ -17989,7 +11637,7 @@ Function156d9: ; 156d9
call Function15704
and a
jr nz, .asm_156f9
- call Function2173
+ call OverworldTextModeSwitch
call Function321c
call UpdateSprites
call Function156b8
@@ -17997,7 +11645,7 @@ Function156d9: ; 156d9
ret
.asm_156f9
- call WhiteBGMap
+ call ClearBGPalettes
ld c, $1
ret
; 156ff
@@ -18101,7 +11749,7 @@ LOG_OFF EQU 6
PC_DisplayTextWaitMenu: ; 157bb
ld a, [Options]
push af
- set 4, a
+ set NO_TEXT_SCROLL, a
ld [Options], a
call MenuTextBox
pop af
@@ -18116,7 +11764,7 @@ UnknownText_0x157cc: ; 0x157cc
; 0x157d1
KrisWithdrawItemMenu: ; 0x157d1
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
callba ClearPCItemScreen
.asm_157da
call Function15985
@@ -18195,7 +11843,7 @@ Function157e9: ; 0x157e9
KrisTossItemMenu: ; 0x1585f
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
callba ClearPCItemScreen
.asm_15868
call Function15985
@@ -18232,7 +11880,7 @@ KrisDepositItemMenu: ; 0x1588b
call Function158b8
jr c, .asm_158b6
call DisableSpriteUpdates
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
callba Function106a5
.asm_1589c
callba Function106be
@@ -18393,10 +12041,10 @@ Function15985: ; 0x15985
ld [wMenuCursorBuffer], a
ld a, [wd0dd]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [wd0dd], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd0d7], a
pop af
ld [wc2ce], a
@@ -18507,988 +12155,7 @@ UnknownText_0x15a40: ; 0x15a40
; 0x15a45
-OpenMartDialog:: ; 15a45
- call GetMart
- ld a, c
- ld [EngineBuffer1], a
- call LoadMartPointer
- ld a, [EngineBuffer1]
- ld hl, .dialogs
- rst JumpTable
- ret
-; 15a57
-
-.dialogs
- dw MartDialog
- dw HerbShop
- dw BargainShop
- dw Pharmacist
- dw RooftopSale
-; 15a61
-
-MartDialog: ; 15a61
- ld a, 0
- ld [EngineBuffer1], a
- xor a
- ld [MovementAnimation], a
- call StandardMart
- ret
-; 15a6e
-
-HerbShop: ; 15a6e
- call ReadMart
- call LoadMenuDataHeader_0x1d75
- ld hl, UnknownText_0x15e4a
- call Function15fcd
- call Function15c62
- ld hl, UnknownText_0x15e68
- call Function15fcd
- ret
-; 15a84
-
-BargainShop: ; 15a84
- ld b, BANK(BargainShopData)
- ld de, BargainShopData
- call LoadMartPointer
- call Function15c25
- call LoadMenuDataHeader_0x1d75
- ld hl, UnknownText_0x15e6d
- call Function15fcd
- call Function15c62
- ld hl, WalkingDirection
- ld a, [hli]
- or [hl]
- jr z, .asm_15aa7
- ld hl, DailyFlags
- set 6, [hl]
-
-.asm_15aa7
- ld hl, UnknownText_0x15e8b
- call Function15fcd
- ret
-; 15aae
-
-Pharmacist: ; 15aae
- call ReadMart
- call LoadMenuDataHeader_0x1d75
- ld hl, UnknownText_0x15e90
- call Function15fcd
- call Function15c62
- ld hl, UnknownText_0x15eae
- call Function15fcd
- ret
-; 15ac4
-
-RooftopSale: ; 15ac4
- ld b, BANK(RooftopSaleData1)
- ld de, RooftopSaleData1
- ld hl, StatusFlags
- bit 6, [hl] ; hall of fame
- jr z, .ok
- ld b, BANK(RooftopSaleData2)
- ld de, RooftopSaleData2
-
-.ok
- call LoadMartPointer
- call Function15c25
- call LoadMenuDataHeader_0x1d75
- ld hl, UnknownText_0x15f83
- call Function15fcd
- call Function15c62
- ld hl, UnknownText_0x15fb4
- call Function15fcd
- 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
-
-LoadMartPointer: ; 15b10
- ld a, b
- ld [MartPointerBank], a
- ld a, e
- ld [MartPointer], a
- ld a, d
- ld [MartPointer + 1], a
- ld hl, CurMart
- xor a
- ld bc, 16
- call ByteFill
- xor a
- ld [MovementAnimation], a
- ld [WalkingDirection], a
- ld [FacingDirection], a
- ret
-; 15b31
-
-GetMart: ; 15b31
- ld a, e
- cp (MartsEnd - Marts) / 2
- jr c, .IsAMart
- ld b, $5
- ld de, DefaultMart
- ret
-
-.IsAMart
- ld hl, Marts
-rept 2
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld b, $5
- ret
-; 15b47
-
-StandardMart: ; 15b47
-.loop
- ld a, [MovementAnimation]
- ld hl, .MartFunctions
- rst JumpTable
- ld [MovementAnimation], a
- cp $ff
- jr nz, .loop
- ret
-
-.MartFunctions
- dw .HowMayIHelpYou
- dw .TopMenu
- dw .Buy
- dw .Sell
- dw .Quit
- dw .AnythingElse
-; 15b62
-
-.HowMayIHelpYou: ; 15b62
- call LoadMenuDataHeader_0x1d75
- ld hl, UnknownText_0x15f83
- call PrintText
- ld a, $1
- ret
-; 15b6e
-
-.TopMenu: ; 15b6e
- ld hl, MenuDataHeader_0x15f88
- call CopyMenuDataHeader
- call InterpretMenu2
- jr c, .quit
- ld a, [wcfa9]
- cp $1
- jr z, .buy
- cp $2
- jr z, .sell
-.quit
- ld a, $4
- ret
-.buy
- ld a, $2
- ret
-.sell
- ld a, $3
- ret
-; 15b8d
-
-.Buy: ; 15b8d
- call ExitMenu
- call ReadMart
- call Function15c62
- and a
- ld a, $5
- ret
-; 15b9a
-
-.Sell: ; 15b9a
- call ExitMenu
- call Function15eb3
- ld a, $5
- ret
-; 15ba3
-
-.Quit: ; 15ba3
- call ExitMenu
- ld hl, UnknownText_0x15fb4
- call Function15fcd
- ld a, $ff
- ret
-; 15baf
-
-.AnythingElse: ; 15baf
- call LoadMenuDataHeader_0x1d75
- ld hl, UnknownText_0x15fb9
- call PrintText
- ld a, $1
- ret
-; 15bbb
-
-ReadMart: ; 15bbb
- ld hl, MartPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, CurMart
-.CopyMart
- ld a, [MartPointerBank]
- call GetFarByte
- ld [de], a
- inc hl
- inc de
- cp -1
- jr nz, .CopyMart
- ld hl, DefaultFlypoint
- ld de, CurMart + 1
-.ReadMartItem
- ld a, [de]
- inc de
- cp -1
- jr z, .done
- push de
- call GetMartItemPrice
- pop de
- jr .ReadMartItem
-
-.done
- ret
-; 15be5
-
-GetMartItemPrice: ; 15be5
-; Return the price of item a in BCD at hl and in tiles at StringBuffer1.
- push hl
- ld [CurItem], a
- callba GetItemPrice
- pop hl
-
-GetMartPrice: ; 15bf0
-; Return price de in BCD at hl and in tiles at StringBuffer1.
- push hl
- ld a, d
- ld [StringBuffer2], a
- ld a, e
- ld [StringBuffer2 + 1], a
- ld hl, StringBuffer1
- ld de, StringBuffer2
- lb bc, PRINTNUM_LEADINGZEROS | 2, 6 ; 6 digits
- call PrintNum
- pop hl
-
- ld de, StringBuffer1
- ld c, 6 / 2 ; 6 digits
-.loop
- call .TileToNum
- swap a
- ld b, a
- call .TileToNum
- or b
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-; 15c1a
-
-.TileToNum ; 15c1a
- ld a, [de]
- inc de
- cp " "
- jr nz, .asm_15c22
- ld a, "0"
-
-.asm_15c22
- sub "0"
- ret
-; 15c25
-
-Function15c25: ; 15c25
- ld hl, MartPointer
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- inc hl
- ld bc, wd002
- ld de, CurMart + 1
-.loop
- ld a, [hli]
- ld [de], a
- inc de
- cp -1
- jr z, .done
-
- push de
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld h, b
- ld l, c
- call GetMartPrice
- ld b, h
- ld c, l
- pop hl
- pop de
- jr .loop
-
-.done
- pop hl
- ld a, [hl]
- ld [CurMart], a
- 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
-
-
-Function15c62: ; 15c62
- call FadeToMenu
- callba Function8000
- xor a
- ld [WalkingY], a
- ld a, 1
- ld [WalkingX], a
-.asm_15c74
- call Function15cef
- jr nc, .asm_15c74
- call Function2b3c
- ret
-; 15c7d
-
-Function15c7d: ; 15c7d
- push af
- call Function15ca3
- ld a, [hli]
- ld h, [hl]
- ld l, a
- pop af
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call PrintText
- ret
-; 15c91
-
-Function15c91: ; 15c91
- call Function15ca3
-rept 2
- inc hl
-endr
- ld a, [hl]
- and a
- jp z, Function15d83
- cp 1
- jp z, Function15da5
- jp Function15de2
-; 15ca3
-
-Function15ca3: ; 15ca3
- ld a, [EngineBuffer1]
- ld e, a
- ld d, 0
- ld hl, .data_15cb0
-rept 3
- add hl, de
-endr
- ret
-; 15cb0
-
-.data_15cb0 ; 15cb0
- dwb Unknown_15cbf, 0
- dwb Unknown_15ccb, 0
- dwb Unknown_15cd7, 1
- dwb Unknown_15ce3, 0
- dwb Unknown_15cbf, 2
-; 15cbf
-
-Unknown_15cbf: ; 15cbf
- dw UnknownText_0x15e0e
- dw UnknownText_0x15e13
- dw UnknownText_0x15fa5
- dw UnknownText_0x15faa
- dw UnknownText_0x15fa0
- dw Function15cef
-
-Unknown_15ccb: ; 15ccb
- dw UnknownText_0x15e4f
- dw UnknownText_0x15e54
- dw UnknownText_0x15e63
- dw UnknownText_0x15e5e
- dw UnknownText_0x15e59
- dw Function15cef
-
-Unknown_15cd7: ; 15cd7
- dw Function15cef
- dw UnknownText_0x15e72
- dw UnknownText_0x15e86
- dw UnknownText_0x15e7c
- dw UnknownText_0x15e77
- dw UnknownText_0x15e81
-
-Unknown_15ce3: ; 15ce3
- dw UnknownText_0x15e95
- dw UnknownText_0x15e9a
- dw UnknownText_0x15ea9
- dw UnknownText_0x15ea4
- dw UnknownText_0x15e9f
- dw Function15cef
-; 15cef
-
-
-Function15cef: ; 15cef
- callba Function24ae8
- call UpdateSprites
- ld hl, MenuDataHeader_0x15e18
- call CopyMenuDataHeader
- ld a, [WalkingX]
- ld [wMenuCursorBuffer], a
- ld a, [WalkingY]
- ld [wd0e4], a
- call Function350c
- ld a, [wd0e4]
- ld [WalkingY], a
- ld a, [wcfa9]
- ld [WalkingX], a
- call SpeechTextBox
- ld a, [wcf73]
- cp $2
- jr z, .asm_15d6d
- cp $1
- jr z, .asm_15d27
-
-.asm_15d27
- call Function15c91
- jr c, .asm_15d68
- call Function15d97
- jr c, .asm_15d68
- ld de, Money
- ld bc, hMoneyTemp
- ld a, $3
- call CompareMoney
- jr c, .asm_15d79
- ld hl, NumItems
- call ReceiveItem
- jr nc, .asm_15d6f
- ld a, [wd107]
- ld e, a
- ld d, $0
- ld b, $1
- ld hl, WalkingDirection
- call FlagAction
- call Function15fc3
- ld de, Money
- ld bc, hMoneyTemp
- call TakeMoney
- ld a, $4
- call Function15c7d
- call JoyWaitAorB
-
-.asm_15d68
- call SpeechTextBox
- and a
- ret
-
-.asm_15d6d
- scf
- ret
-
-.asm_15d6f
- ld a, $3
- call Function15c7d
- call JoyWaitAorB
- and a
- ret
-
-.asm_15d79
- ld a, $2
- call Function15c7d
- call JoyWaitAorB
- and a
- ret
-; 15d83
-
-Function15d83: ; 15d83
- ld a, $63
- ld [wItemQuantityBuffer], a
- ld a, $0
- call Function15c7d
- callba Function24fc9
- call ExitMenu
- ret
-; 15d97
-
-Function15d97: ; 15d97
- predef PartyMonItemName
- ld a, $1
- call Function15c7d
- call YesNoBox
- ret
-; 15da5
-
-Function15da5: ; 15da5
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld a, [wd107]
- ld e, a
- ld d, $0
- ld b, $2
- ld hl, WalkingDirection
- call FlagAction
- ld a, c
- and a
- jr nz, .asm_15dd8
- ld a, [wd107]
- ld e, a
- ld d, $0
- ld hl, wd040
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
-rept 3
- add hl, de
-endr
- inc hl
- ld a, [hli]
- ld [$ffc5], a
- ld a, [hl]
- ld [$ffc4], a
- xor a
- ld [hMoneyTemp], a
- and a
- ret
-
-.asm_15dd8
- ld a, $5
- call Function15c7d
- call JoyWaitAorB
- scf
- ret
-; 15de2
-
-Function15de2: ; 15de2
- ld a, $0
- call Function15c7d
- call Function15df9
- ld a, $63
- ld [wItemQuantityBuffer], a
- callba Function24fcf
- call ExitMenu
- ret
-; 15df9
-
-Function15df9: ; 15df9
- ld a, [wd107]
- ld e, a
- ld d, 0
- ld hl, wd040
- ld a, [hli]
- ld h, [hl]
- ld l, a
- inc hl
-rept 3
- add hl, de
-endr
- inc hl
- ld e, [hl]
- inc hl
- ld d, [hl]
- ret
-; 15e0e
-
-
-UnknownText_0x15e0e: ; 0x15e0e
- ; How many?
- text_jump UnknownText_0x1c4bfd
- db "@"
-; 0x15e13
-
-UnknownText_0x15e13: ; 0x15e13
- ; @ (S) will be ¥@ .
- text_jump UnknownText_0x1c4c08
- db "@"
-; 0x15e18
-
-MenuDataHeader_0x15e18: ; 0x15e18
- db $40 ; flags
- db 03, 01 ; start coords
- db 11, 19 ; end coords
- dw MenuData2_0x15e20
- db 1 ; default option
-; 0x15e20
-
-MenuData2_0x15e20: ; 0x15e20
- db $30 ; flags
- db 4, 8 ; rows, columns
- db 1 ; horizontal spacing
- dbw 0, OBPals + 8 * 6
- dba PlaceMenuItemName
- dba Function15e30
- dba Function244c3
-; 15e30
-
-Function15e30: ; 15e30
- ld a, [wcf77]
- ld c, a
- ld b, 0
- ld hl, DefaultFlypoint
-rept 3
- add hl, bc
-endr
- push de
- ld d, h
- ld e, l
- pop hl
- ld bc, $14
- add hl, bc
- ld c, $a3
- call PrintBCDNumber
- ret
-; 15e4a (5:5e4a)
-
-UnknownText_0x15e4a: ; 0x15e4a
- ; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe…
- text_jump UnknownText_0x1c4c28
- db "@"
-; 0x15e4f
-
-UnknownText_0x15e4f: ; 0x15e4f
- ; How many?
- text_jump UnknownText_0x1c4ca3
- db "@"
-; 0x15e54
-
-UnknownText_0x15e54: ; 0x15e54
- ; @ (S) will be ¥@ .
- text_jump UnknownText_0x1c4cae
- db "@"
-; 0x15e59
-
-UnknownText_0x15e59: ; 0x15e59
- ; Thank you, dear. Hehehehe…
- text_jump UnknownText_0x1c4cce
- db "@"
-; 0x15e5e
-
-UnknownText_0x15e5e: ; 0x15e5e
- ; Oh? Your PACK is full, dear.
- text_jump UnknownText_0x1c4cea
- db "@"
-; 0x15e63
-
-UnknownText_0x15e63: ; 0x15e63
- ; Hehehe… You don't have the money.
- text_jump UnknownText_0x1c4d08
- db "@"
-; 0x15e68
-
-UnknownText_0x15e68: ; 0x15e68
- ; Come again, dear. Hehehehe…
- text_jump UnknownText_0x1c4d2a
- db "@"
-; 0x15e6d
-
-UnknownText_0x15e6d: ; 0x15e6d
- ; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item.
- text_jump UnknownText_0x1c4d47
- db "@"
-; 0x15e72
-
-UnknownText_0x15e72: ; 0x15e72
- ; costs ¥@ . Want it?
- text_jump UnknownText_0x1c4db0
- db "@"
-; 0x15e77
-
-UnknownText_0x15e77: ; 0x15e77
- ; Thanks.
- text_jump UnknownText_0x1c4dcd
- db "@"
-; 0x15e7c
-
-UnknownText_0x15e7c: ; 0x15e7c
- ; Uh-oh, your PACK is chock-full.
- text_jump UnknownText_0x1c4dd6
- db "@"
-; 0x15e81
-
-UnknownText_0x15e81: ; 0x15e81
- ; You bought that already. I'm all sold out of it.
- text_jump UnknownText_0x1c4df7
- db "@"
-; 0x15e86
-
-UnknownText_0x15e86: ; 0x15e86
- ; Uh-oh, you're short on funds.
- text_jump UnknownText_0x1c4e28
- db "@"
-; 0x15e8b
-
-UnknownText_0x15e8b: ; 0x15e8b
- ; Come by again sometime.
- text_jump UnknownText_0x1c4e46
- db "@"
-; 0x15e90
-
-UnknownText_0x15e90: ; 0x15e90
- ; What's up? Need some medicine?
- text_jump UnknownText_0x1c4e5f
- db "@"
-; 0x15e95
-
-UnknownText_0x15e95: ; 0x15e95
- ; How many?
- text_jump UnknownText_0x1c4e7e
- db "@"
-; 0x15e9a
-
-UnknownText_0x15e9a: ; 0x15e9a
- ; @ (S) will cost ¥@ .
- text_jump UnknownText_0x1c4e89
- db "@"
-; 0x15e9f
-
-UnknownText_0x15e9f: ; 0x15e9f
- ; Thanks much!
- text_jump UnknownText_0x1c4eab
- db "@"
-; 0x15ea4
-
-UnknownText_0x15ea4: ; 0x15ea4
- ; You don't have any more space.
- text_jump UnknownText_0x1c4eb9
- db "@"
-; 0x15ea9
-
-UnknownText_0x15ea9: ; 0x15ea9
- ; Huh? That's not enough money.
- text_jump UnknownText_0x1c4ed8
- db "@"
-; 0x15eae
-
-UnknownText_0x15eae: ; 0x15eae
- ; All right. See you around.
- text_jump UnknownText_0x1c4ef6
- db "@"
-; 0x15eb3
-
-
-Function15eb3: ; 15eb3
- call DisableSpriteUpdates
- callba Function106a5
-.asm_15ebc
- callba Function106be
- ld a, [wcf66]
- and a
- jp z, Function15ece
- call Function15ee0
- jr .asm_15ebc
-; 15ece
-
-Function15ece: ; 15ece
- call Function2b74
- and a
- ret
-; 15ed3
-
-Function15ed3: ; unreferenced
- ld hl, UnknownText_0x15edb
- call MenuTextBoxBackup
- and a
- ret
-; 15edb
-
-UnknownText_0x15edb: ; 0x15edb
- ; You don't have anything to sell.
- text_jump UnknownText_0x1c4f12
- db "@"
-; 0x15ee0
-
-
-Function15ee0: ; 15ee0
- callba CheckItemMenu
- ld a, [wItemAttributeParamBuffer]
- ld hl, .jumptable
- rst JumpTable
- ret
-; 15eee
-
-.jumptable: ; 15eee
- dw .maybe_use
- dw .no_use
- dw .no_use
- dw .no_use
- dw .maybe_use
- dw .maybe_use
- dw .maybe_use
-; 15efc
-
-.no_use: ; 15efc
- ret
-; 15efd
-
-
-.maybe_use: ; 15efd
- callba _CheckTossableItem
- ld a, [wItemAttributeParamBuffer]
- and a
- jr z, .asm_15f11
- ld hl, UnknownText_0x15faf
- call PrintText
- and a
- ret
-
-.asm_15f11
- ld hl, UnknownText_0x15f73
- call PrintText
- callba Function24af8
- callba Function24fe1
- call ExitMenu
- jr c, .asm_15f6e
- hlcoord 1, 14
- lb bc, 3, 18
- call ClearBox
- ld hl, UnknownText_0x15f78
- call PrintTextBoxText
- call YesNoBox
- jr c, .asm_15f6e
- ld de, Money
- ld bc, hMoneyTemp
- call GiveMoney
- ld a, [wd107]
- ld hl, NumItems
- call TossItem
- predef PartyMonItemName
- hlcoord 1, 14
- lb bc, 3, 18
- call ClearBox
- ld hl, UnknownText_0x15fbe
- call PrintTextBoxText
- call Function15fc3
- callba Function24af0
- call JoyWaitAorB
-
-.asm_15f6e
- call ExitMenu
- and a
- ret
-; 15f73
-
-UnknownText_0x15f73: ; 0x15f73
- ; How many?
- text_jump UnknownText_0x1c4f33
- db "@"
-; 0x15f78
-
-UnknownText_0x15f78: ; 0x15f78
- ; I can pay you ¥@ . Is that OK?
- text_jump UnknownText_0x1c4f3e
- db "@"
-; 0x15f7d
-
-String15f7d: ; 15f7d
- db "!ダミー!@"
-
-UnknownText_0x15f83: ; 0x15f83
- ; Welcome! How may I help you?
- text_jump UnknownText_0x1c4f62
- db "@"
-; 0x15f88
-
-MenuDataHeader_0x15f88: ; 0x15f88
- db $40 ; flags
- db 00, 00 ; start coords
- db 08, 07 ; end coords
- dw MenuData2_0x15f90
- db 1 ; default option
-; 0x15f90
-
-MenuData2_0x15f90: ; 0x15f90
- db $80 ; flags
- db 3 ; items
- db "BUY@"
- db "SELL@"
- db "QUIT@"
-; 0x15f96
-
-UnknownText_0x15fa0: ; 0x15fa0
- ; Here you are. Thank you!
- text_jump UnknownText_0x1c4f80
- db "@"
-; 0x15fa5
-
-UnknownText_0x15fa5: ; 0x15fa5
- ; You don't have enough money.
- text_jump UnknownText_0x1c4f9a
- db "@"
-; 0x15faa
-
-UnknownText_0x15faa: ; 0x15faa
- ; You can't carry any more items.
- text_jump UnknownText_0x1c4fb7
- db "@"
-; 0x15faf
-
-UnknownText_0x15faf: ; 0x15faf
- ; Sorry, I can't buy that from you.
- text_jump UnknownText_0x1c4fd7
- db "@"
-; 0x15fb4
-
-UnknownText_0x15fb4: ; 0x15fb4
- ; Please come again!
- text_jump UnknownText_0x1c4ff9
- db "@"
-; 0x15fb9
-
-UnknownText_0x15fb9: ; 0x15fb9
- text_jump UnknownText_0x1c500d
- db "@"
-; 0x15fbe
-
-UnknownText_0x15fbe: ; 0x15fbe
- text_jump UnknownText_0x1c502e
- db "@"
-; 0x15fc3
-
-Function15fc3: ; 15fc3
- call WaitSFX
- ld de, SFX_TRANSACTION
- call PlaySFX
- ret
-; 15fcd
-
-Function15fcd: ; 15fcd
- call MenuTextBox
- call JoyWaitAorB
- call ExitMenu
- ret
-; 15fd7
+INCLUDE "engine/mart.asm"
GiveMoney:: ; 15fd7
ld a, $3
@@ -19818,7 +12485,7 @@ Function16798: ; 16798
callba CheckCurPartyMonFainted
jr c, .asm_167e9
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld d, [hl]
@@ -19938,13 +12605,13 @@ Function1686d: ; 1686d
ld a, d
ld [StringBuffer2 + 1], a
ld de, StringBuffer1
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
ld hl, 0
- ld bc, $0064
+ ld bc, $64
ld a, [StringBuffer2 + 1]
call AddNTimes
- ld de, $0064
+ ld de, $64
add hl, de
xor a
ld [StringBuffer2 + 2], a
@@ -20142,7 +12809,7 @@ Function16949: ; 16949
call PrintText
ld de, SFX_GET_EGG_FROM_DAYCARE_LADY
call PlaySFX
- ld c, $78
+ ld c, 120
call DelayFrames
ld hl, UnknownText_0x1699d
jr .asm_1697f
@@ -20219,12 +12886,12 @@ Function169ac: ; 169ac
ld hl, wEggNick
call CopyBytes
ld hl, PartyMonOT
- ld bc, $000b
+ ld bc, NAME_LENGTH
call Function16a31
ld hl, wEggOT
call CopyBytes
ld hl, PartyMon1
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Function16a31
ld hl, wEggMon
ld bc, wEggMonEnd - wEggMon
@@ -20233,14 +12900,14 @@ Function169ac: ; 169ac
ld a, [PartyCount]
dec a
ld hl, PartyMon1
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld b, h
ld c, l
- ld hl, PartyMon1ID + 1 - PartyMon1
+ ld hl, MON_ID + 1
add hl, bc
push hl
- ld hl, PartyMon1MaxHP - PartyMon1
+ ld hl, MON_MAXHP
add hl, bc
ld d, h
ld e, l
@@ -20249,7 +12916,7 @@ Function169ac: ; 169ac
ld b, $0
predef CalcPkmnStats
pop bc
- ld hl, PartyMon1HP - PartyMon1
+ ld hl, MON_HP
add hl, bc
xor a
ld [hli], a
@@ -20375,7 +13042,7 @@ Function16a66: ; 16a66
ld [hl], a
ld a, [CurPartyLevel]
ld d, a
- callab Function50e47
+ callab CalcExpAtLevel
ld hl, wEggMonExp
ld a, [hMultiplicand]
ld [hli], a
@@ -20448,14 +13115,14 @@ Function16a66: ; 16a66
.asm_16bab
ld hl, StringBuffer1
ld de, wd050
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
ld hl, wEggMonMoves
ld de, wEggMonPP
predef FillPP
ld hl, wd050
ld de, StringBuffer1
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
ld a, [BaseEggSteps]
ld hl, wEggMonHappiness
@@ -20485,9 +13152,9 @@ Function16be4: ; 16be4
ld [hInMenu], a
ld a, [Options]
push af
- set 4, a
+ set NO_TEXT_SCROLL, a
ld [Options], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld de, UnownDexATile
@@ -20501,7 +13168,7 @@ Function16be4: ; 16be4
call Request1bpp
hlcoord 0, 0
- ld bc, $0312
+ lb bc, 3, 18
call TextBox
hlcoord 0, 5
@@ -20509,7 +13176,7 @@ Function16be4: ; 16be4
call TextBox
hlcoord 0, 14
- ld bc, $0212
+ lb bc, 2, 18
call TextBox
hlcoord 1, 2
@@ -20539,70 +13206,70 @@ Function16be4: ; 16be4
call GetSGBLayout
call SetPalettes
-.asm_16c6b
+.joy_loop
call JoyTextDelay
ld a, [hJoyPressed]
and B_BUTTON
- jr nz, .asm_16c95
+ jr nz, .pressed_b
ld a, [hJoyPressed]
and A_BUTTON
- jr nz, .asm_16c82
+ jr nz, .pressed_a
call Function16ca0
call DelayFrame
- jr .asm_16c6b
+ jr .joy_loop
-.asm_16c82
+.pressed_a
ld a, [wJumptableIndex]
push af
callba Function84560
call RestartMapMusic
pop af
ld [wJumptableIndex], a
- jr .asm_16c6b
+ jr .joy_loop
-.asm_16c95
+.pressed_b
pop af
ld [Options], a
pop af
ld [hInMenu], a
- call Function222a
+ call ReturnToMapFromSubmenu
ret
; 16ca0
Function16ca0: ; 16ca0
ld a, [hJoyLast]
and D_RIGHT
- jr nz, .asm_16cb9
+ jr nz, .press_right
ld a, [hJoyLast]
and D_LEFT
- jr nz, .asm_16cad
+ jr nz, .press_left
ret
-.asm_16cad
+.press_left
ld hl, wJumptableIndex
ld a, [hl]
and a
- jr nz, .asm_16cb6
+ jr nz, .wrap_around_left
ld [hl], $1b
-.asm_16cb6
+.wrap_around_left
dec [hl]
- jr .asm_16cc4
+ jr .return
-.asm_16cb9
+.press_right
ld hl, wJumptableIndex
ld a, [hl]
cp $1a
- jr c, .asm_16cc3
+ jr c, .wrap_around_right
ld [hl], $ff
-.asm_16cc3
+.wrap_around_right
inc [hl]
-.asm_16cc4
+.return
call Function16cc8
ret
; 16cc8
@@ -20622,7 +13289,7 @@ Function16cc8: ; 16cc8
call Function16cff
hlcoord 1, 6
xor a
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
ld de, VTiles2 tile $31
@@ -20635,6 +13302,7 @@ Function16cff: ; 16cff
push af
ld a, $6
ld [rSVBK], a
+
ld a, BANK(sScratch)
call GetSRAMBank
ld de, w6_d000
@@ -20644,6 +13312,7 @@ Function16cff: ; 16cff
ld c, $31
call Get2bpp
call CloseSRAM
+
pop af
ld [rSVBK], a
ret
@@ -20659,7 +13328,7 @@ Function16d20: ; 16d20
xor a
call GetSRAMBank
ld hl, sScratch
- ld bc, $0310 ; 784
+ ld bc, $31 tiles
xor a
call ByteFill
ld hl, VTiles2 tile $31
@@ -20681,10 +13350,10 @@ UnownDexDoWhatString:
db "Do what?@"
UnownDexMenuString:
- db $ef, " PRINT"
- next $f5, " CANCEL"
- next $df, " PREVIOUS"
- next $eb, " NEXT"
+ db "♂ PRINT"
+ next "♀ CANCEL"
+ next "← PREVIOUS"
+ next "→ NEXT"
db "@"
UnownDexVacantString:
@@ -20704,1050 +13373,75 @@ Function16dac: ; 16dac
call ByteFill
hlcoord 7, 11
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
ret
; 16dc7
-Function16dc7: ; 16dc7
- ld hl, UnknownText_0x16e04
+PhotoStudio: ; 16dc7
+ ld hl, .Text_AskWhichMon
call PrintText
callba SelectMonFromParty
- jr c, .asm_16df8
+ jr c, .cancel
ld a, [CurPartySpecies]
cp EGG
- jr z, .asm_16dfd
- ld hl, UnknownText_0x16e09
+ jr z, .egg
+
+ ld hl, .Text_HoldStill
call PrintText
call DisableSpriteUpdates
callba Function8461a
call Function2b74
ld a, [$ffac]
and a
- jr nz, .asm_16df8
- ld hl, UnknownText_0x16e0e
- jr .asm_16e00
+ jr nz, .cancel
+ ld hl, .Text_Presto
+ jr .print_text
-.asm_16df8
- ld hl, UnknownText_0x16e13
- jr .asm_16e00
+.cancel
+ ld hl, .Text_NoPicture
+ jr .print_text
-.asm_16dfd
- ld hl, UnknownText_0x16e18
+.egg
+ ld hl, .Text_Egg
-.asm_16e00
+.print_text
call PrintText
ret
; 16e04
-UnknownText_0x16e04: ; 0x16e04
+.Text_AskWhichMon: ; 0x16e04
; Which #MON should I photo- graph?
text_jump UnknownText_0x1be024
db "@"
; 0x16e09
-UnknownText_0x16e09: ; 0x16e09
+.Text_HoldStill: ; 0x16e09
; All righty. Hold still for a bit.
text_jump UnknownText_0x1be047
db "@"
; 0x16e0e
-UnknownText_0x16e0e: ; 0x16e0e
+.Text_Presto: ; 0x16e0e
; Presto! All done. Come again, OK?
text_jump UnknownText_0x1be06a
db "@"
; 0x16e13
-UnknownText_0x16e13: ; 0x16e13
+.Text_NoPicture: ; 0x16e13
; Oh, no picture? Come again, OK?
text_jump UnknownText_0x1c0000
db "@"
; 0x16e18
-UnknownText_0x16e18: ; 0x16e18
+.Text_Egg: ; 0x16e18
; An EGG? My talent is worth more…
text_jump UnknownText_0x1c0021
db "@"
; 0x16e1d
-
-Function16e1d: ; 16e1d
- call Function16ed6
- ld c, $0
- jp nc, .asm_16eb7
- ld a, [wBreedMon1Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon1DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon1DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, $3
- ld [MonType], a
- predef GetGender
- jr c, .asm_16e70
- ld b, $1
- jr nz, .asm_16e48
- inc b
-
-.asm_16e48
- push bc
- ld a, [wBreedMon2Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon2DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon2DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, $3
- ld [MonType], a
- predef GetGender
- pop bc
- jr c, .asm_16e70
- ld a, $1
- jr nz, .asm_16e6d
- inc a
-
-.asm_16e6d
- cp b
- jr nz, .asm_16e89
-
-.asm_16e70
- ld c, $0
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .asm_16e82
- ld a, [wBreedMon2Species]
- cp DITTO
- jr nz, .asm_16eb7
- jr .asm_16e89
-
-.asm_16e82
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .asm_16eb7
-
-.asm_16e89
- call Function16ebc
- ld c, $ff
- jp z, .asm_16eb7
- ld a, [wBreedMon2Species]
- ld b, a
- ld a, [wBreedMon1Species]
- cp b
- ld c, $fe
- jr z, .asm_16e9f
- ld c, $80
-.asm_16e9f
- ld a, [wBreedMon1ID]
- ld b, a
- ld a, [wBreedMon2ID]
- cp b
- jr nz, .asm_16eb7
- ld a, [wBreedMon1ID + 1]
- ld b, a
- ld a, [wBreedMon2ID + 1]
- cp b
- jr nz, .asm_16eb7
- ld a, c
- sub $4d
- ld c, a
-
-.asm_16eb7
- ld a, c
- ld [wd265], a
- ret
-; 16ebc
-
-
-Function16ebc: ; 16ebc (5:6ebc)
- ld a, [wBreedMon1DVs]
- and $f
- ld b, a
- ld a, [wBreedMon2DVs]
- and $f
- cp b
- ret nz
- ld a, [wBreedMon1DVs + 1]
- and $7
- ld b, a
- ld a, [wBreedMon2DVs + 1]
- and $7
- cp b
- ret
-; 16ed6
-
-Function16ed6: ; 16ed6
- ld a, [wBreedMon2Species]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseEggGroups]
- cp $ff
- jr z, .asm_16f3a
- ld a, [wBreedMon1Species]
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseEggGroups]
- cp $ff
- jr z, .asm_16f3a
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .asm_16f3c
- ld [CurSpecies], a
- call GetBaseData
- ld a, [BaseEggGroups]
- push af
- and $f
- ld b, a
- pop af
- and $f0
- swap a
- ld c, a
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .asm_16f3c
- ld [CurSpecies], a
- push bc
- call GetBaseData
- pop bc
- ld a, [BaseEggGroups]
- push af
- and $f
- ld d, a
- pop af
- and $f0
- swap a
- ld e, a
- ld a, d
- cp b
- jr z, .asm_16f3c
- cp c
- jr z, .asm_16f3c
- ld a, e
- cp b
- jr z, .asm_16f3c
- cp c
- jr z, .asm_16f3c
-
-.asm_16f3a
- and a
- ret
-
-.asm_16f3c
- scf
- ret
-; 16f3e
-
-DoEggStep:: ; 16f3e
- ld de, PartySpecies
- ld hl, PartyMon1Happiness
- ld c, 0
-.loop
- ld a, [de]
- inc de
- cp -1
- ret z
- cp EGG
- jr nz, .next
- dec [hl]
- jr nz, .next
- ld a, 1
- and a
- ret
-
-.next
- push de
- ld de, PartyMon2 - PartyMon1
- add hl, de
- pop de
- jr .loop
-; 16f5e
-
-OverworldHatchEgg:: ; 16f5e
- call ResetWindow
- call LoadMenuDataHeader_0x1d75
- call Function16f70
- call Function2b4d
- call RestartMapMusic
- jp LoadMoveSprites
-; 16f70
-
-Function16f70: ; 16f70 (5:6f70)
- ld de, PartySpecies
- ld hl, PartyMon1Happiness
- xor a
- ld [CurPartyMon], a
-
-Function16f7a: ; 16f7a (5:6f7a)
- ld a, [de]
- inc de
- cp -1
- jp z, Function1708a
- push de
- push hl
- cp EGG
- jp nz, Function1707d
- ld a, [hl]
- and a
- jp nz, Function1707d
- ld [hl], $78
-
- push de
-
- callba Function4dbb8
- callba MobileFn_10608d
- ld a, [CurPartyMon]
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, PartyMon2 - PartyMon1
- call AddNTimes
- ld a, [hl]
- ld [CurPartySpecies], a
- dec a
- call SetSeenAndCaughtMon
-
- ld a, [CurPartySpecies]
- cp TOGEPI
- jr nz, .nottogepi
- ; set the event flag for hatching togepi
- ld de, EVENT_TOGEPI_HATCHED
- ld b, SET_FLAG
- call EventFlagAction
-.nottogepi
-
- pop de
-
- ld a, [CurPartySpecies]
- dec de
- ld [de], a
- ld [wd265], a
- ld [CurSpecies], a
- call GetPokemonName
- xor a
- ld [wd26b], a
- call GetBaseData
- ld a, [CurPartyMon]
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, PartyMon2 - PartyMon1
- call AddNTimes
- push hl
- ld bc, PartyMon1MaxHP - PartyMon1
- add hl, bc
- ld d, h
- ld e, l
- pop hl
- push hl
- ld bc, PartyMon1Level - PartyMon1
- add hl, bc
- ld a, [hl]
- ld [CurPartyLevel], a
- pop hl
- push hl
- ld bc, PartyMon1Status - PartyMon1
- add hl, bc
- xor a
- ld [hli], a
- ld [hl], a
- pop hl
- push hl
- ld bc, PartyMon1Exp + 2 - PartyMon1
- add hl, bc
- ld b, $0
- predef CalcPkmnStats
- pop bc
- ld hl, PartyMon1MaxHP - PartyMon1
- add hl, bc
- ld d, h
- ld e, l
- ld hl, PartyMon1HP - PartyMon1
- add hl, bc
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- ld hl, PartyMon1ID - PartyMon1
- add hl, bc
- ld a, [PlayerID]
- ld [hli], a
- ld a, [PlayerID + 1]
- ld [hl], a
- ld a, [CurPartyMon]
- ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
- ld bc, NAME_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- ld hl, PlayerName
- call CopyBytes
- ld hl, UnknownText_0x1708b
- call PrintText
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- ld bc, PKMN_NAME_LENGTH
- call AddNTimes
- ld d, h
- ld e, l
- push de
- ld hl, UnknownText_0x170ba
- call PrintText
- call YesNoBox
- pop de
- jr c, .nonickname
- ld a, $1
- ld [wd26b], a
- xor a
- ld [MonType], a
- push de
- ld b, $0
- callba Function116c1
- pop hl
- ld de, StringBuffer1
- call InitName
- jr Function1707d
-.nonickname
- ld hl, StringBuffer1
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-Function1707d: ; 1707d (5:707d)
- ld hl, CurPartyMon
- inc [hl]
- pop hl
- ld de, PartyMon2 - PartyMon1
- add hl, de
- pop de
- jp Function16f7a
-
-Function1708a: ; 1708a (5:708a)
- ret
-; 1708b (5:708b)
-
-UnknownText_0x1708b: ; 0x1708b
- ; Huh? @ @
- text_jump UnknownText_0x1c0db0
- start_asm
-; 0x17090
-
-Function17090: ; 17090
- ld hl, VramState
- res 0, [hl]
- push hl
- push de
- push bc
- ld a, [CurPartySpecies]
- push af
- call Function1728f
- ld hl, UnknownText_0x170b0
- call PrintText
- pop af
- ld [CurPartySpecies], a
- pop bc
- pop de
- pop hl
- ld hl, UnknownText_0x170b5
- ret
-; 170b0 (5:70b0)
-
-UnknownText_0x170b0: ; 0x170b0
- ;
- text_jump UnknownText_0x1c0db8
- db "@"
-; 0x170b5
-
-UnknownText_0x170b5: ; 0x170b5
- ; came out of its EGG!@ @
- text_jump UnknownText_0x1c0dba
- db "@"
-; 0x170ba
-
-UnknownText_0x170ba: ; 0x170ba
- ; Give a nickname to @ ?
- text_jump UnknownText_0x1c0dd8
- db "@"
-; 0x170bf
-
-Function170bf: ; 170bf
- call Function17197
- ld d, h
- ld e, l
- ld b, NUM_MOVES
-.loop
- ld a, [de]
- and a
- jr z, .done
- ld hl, wEggMonMoves
- ld c, NUM_MOVES
-.next
- ld a, [de]
- cp [hl]
- jr z, .skip
- inc hl
- dec c
- jr nz, .next
- call Function170e4
- jr nc, .skip
- call Function17169
-
-.skip
- inc de
- dec b
- jr nz, .loop
-
-.done
- ret
-; 170e4
-
-Function170e4: ; 170e4
-GLOBAL EggMoves
-
- push bc
- ld a, [wEggMonSpecies]
- dec a
- ld c, a
- ld b, 0
- ld hl, EggMovePointers
-rept 2
- add hl, bc
-endr
- ld a, BANK(EggMovePointers)
- call GetFarHalfword
-.loop
- ld a, BANK(EggMoves)
- call GetFarByte
- cp -1
- jr z, .found_mon
- ld b, a
- ld a, [de]
- cp b
- jr z, .done_carry
- inc hl
- jr .loop
-
-.found_mon
- call Function1720b
- ld b, NUM_MOVES
-.loop2
- ld a, [de]
- cp [hl]
- jr z, .found_eggmove
- inc hl
- dec b
- jr z, .inherit_tmhm
- jr .loop2
-
-.found_eggmove
- ld a, [wEggMonSpecies]
- dec a
- ld c, a
- ld b, 0
- ld hl, EvosAttacksPointers
-rept 2
- add hl, bc
-endr
- ld a, BANK(EvosAttacksPointers)
- call GetFarHalfword
-.loop3
- ld a, BANK(EvosAttacks)
- call GetFarByte
- inc hl
- and a
- jr nz, .loop3
-.loop4
- ld a, BANK(EvosAttacks)
- call GetFarByte
- and a
- jr z, .inherit_tmhm
- inc hl
- ld a, BANK(EvosAttacks)
- call GetFarByte
- ld b, a
- ld a, [de]
- cp b
- jr z, .done_carry
- inc hl
- jr .loop4
-
-.inherit_tmhm
- ld hl, TMHMMoves
-.loop5
- ld a, BANK(TMHMMoves)
- call GetFarByte
- inc hl
- and a
- jr z, .done
- ld b, a
- ld a, [de]
- cp b
- jr nz, .loop5
- ld [wd262], a
- predef CanLearnTMHMMove
- ld a, c
- and a
- jr z, .done
-
-.done_carry
- pop bc
- scf
- ret
-
-.done
- pop bc
- and a
- ret
-; 17169
-
-Function17169: ; 17169
- push de
- push bc
- ld a, [de]
- ld b, a
- ld hl, wEggMonMoves
- ld c, NUM_MOVES
-.loop
- ld a, [hli]
- and a
- jr z, .done
- dec c
- jr nz, .loop
- ld de, wEggMonMoves
- ld hl, wEggMonMoves + 1
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
-
-.done
- dec hl
- ld [hl], b
- ld hl, wEggMonMoves
- ld de, wEggMonPP
- predef FillPP
- pop bc
- pop de
- ret
-; 17197
-
-Function17197: ; 17197
- ld hl, wBreedMon2Moves
- ld a, [wBreedMon1Species]
- cp DITTO
- jr z, .ditto1
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .ditto2
- ld a, [wDittoInDaycare]
- and a
- ret z
- ld hl, wBreedMon1Moves
- ret
-
-.ditto1
- ld a, [CurPartySpecies]
- push af
- ld a, [wBreedMon2Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon2DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon2DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, $3
- ld [MonType], a
- predef GetGender
- jr c, .inherit_mon2_moves
- jr nz, .inherit_mon2_moves
- jr .inherit_mon1_moves
-
-.ditto2
- ld a, [CurPartySpecies]
- push af
- ld a, [wBreedMon1Species]
- ld [CurPartySpecies], a
- ld a, [wBreedMon1DVs]
- ld [TempMonDVs], a
- ld a, [wBreedMon1DVs + 1]
- ld [TempMonDVs + 1], a
- ld a, $3
- ld [MonType], a
- predef GetGender
- jr c, .inherit_mon1_moves
- jr nz, .inherit_mon1_moves
-
-.inherit_mon2_moves
- ld hl, wBreedMon2Moves
- pop af
- ld [CurPartySpecies], a
- ret
-
-.inherit_mon1_moves
- ld hl, wBreedMon1Moves
- pop af
- ld [CurPartySpecies], a
- ret
-; 1720b
-
-Function1720b: ; 1720b
- ld hl, wBreedMon1Moves
- ld a, [wBreedMon1Species]
- cp DITTO
- ret z
- ld a, [wBreedMon2Species]
- cp DITTO
- jr z, .ditto
- ld a, [wDittoInDaycare]
- and a
- ret z
-
-.ditto
- ld hl, wBreedMon2Moves
- ret
-; 17224
-
-
-Function17224: ; 17224 (5:7224)
- push de
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld hl, BattleMonDVs
- predef GetUnownLetter
- pop de
- predef_jump GetFrontpic
-
-Function1723c: ; 1723c (5:723c)
- push de
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- ld hl, BattleMonDVs
- predef GetUnownLetter
- pop de
- predef_jump Function5108b
-
-Function17254: ; 17254 (5:7254)
- push af
- call WaitTop
- push hl
- push bc
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- pop bc
- pop hl
- ld a, b
- ld [hBGMapAddress + 1], a
- ld a, c
- ld [$ffad], a
- ld bc, $707
- predef FillBox
- pop af
- call Function17363
- call SetPalettes
- jp WaitBGMap
-
-Function1727f: ; 1727f (5:727f)
- push hl
- push de
- push bc
- callab Function8cf69
- call DelayFrame
- pop bc
- pop de
- pop hl
- ret
-
-Function1728f: ; 1728f (5:728f)
- ld a, [wd265]
- ld [wJumptableIndex], a
- ld a, [CurSpecies]
- push af
- ld de, MUSIC_NONE
- call PlayMusic
- callba Function8000
- call DisableLCD
- ld hl, EggHatchGFX
- ld de, VTiles0 tile $00
- ld bc, $20
- ld a, BANK(EggHatchGFX)
- call FarCopyBytes
- callba Function8cf53
- ld de, VTiles2 tile $00
- ld a, [wJumptableIndex]
- call Function1723c
- ld de, VTiles2 tile $31
- ld a, EGG
- call Function17224
- ld de, MUSIC_EVOLUTION
- call PlayMusic
- call EnableLCD
- hlcoord 7, 4
- ld b, $98
- ld c, $31
- ld a, EGG
- call Function17254
- ld c, $50
- call DelayFrames
- xor a
- ld [wcf64], a
- ld a, [hSCX] ; $ff00+$cf
- ld b, a
-.asm_172ee
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- cp $8
- jr nc, .asm_17327
- ld e, [hl]
-.asm_172f8
- ld a, $2
- ld [hSCX], a ; $ff00+$cf
- ld a, $fe
- ld [wc3c0], a
- call Function1727f
- ld c, $2
- call DelayFrames
- ld a, $fe
- ld [hSCX], a ; $ff00+$cf
- ld a, $2
- ld [wc3c0], a
- call Function1727f
- ld c, $2
- call DelayFrames
- dec e
- jr nz, .asm_172f8
- ld c, $10
- call DelayFrames
- call Function1736d
- jr .asm_172ee
-.asm_17327
- ld de, SFX_EGG_HATCH
- call PlaySFX
- xor a
- ld [hSCX], a ; $ff00+$cf
- ld [wc3c0], a
- call ClearSprites
- call Function173b3
- hlcoord 6, 3
- ld b, $98
- ld c, $0
- ld a, [wJumptableIndex]
- call Function17254
- call Function17418
- call WaitSFX
- ld a, [wJumptableIndex]
- ld [CurPartySpecies], a
- hlcoord 6, 3
- ld d, $0
- ld e, $5
- predef Functiond008e
- pop af
- ld [CurSpecies], a
- ret
-
-Function17363: ; 17363 (5:7363)
- ld [PlayerHPPal], a
- ld b, $b
- ld c, $0
- jp GetSGBLayout
-
-Function1736d: ; 1736d (5:736d)
- ld a, [wcf64]
- dec a
- and $7
- cp $7
- ret z
- srl a
- ret nc
- swap a
- srl a
- add $4c
- ld d, a
- ld e, $58
- ld a, $19
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- ld de, SFX_EGG_CRACK
- jp PlaySFX
-; 17393 (5:7393)
-
-EggHatchGFX: ; 17393
-INCBIN "gfx/unknown/017393.2bpp"
-; 173b3
-
-Function173b3: ; 173b3 (5:73b3)
- callba Function8cf53
- ld hl, Unknown_173ef
-.loop
- ld a, [hli]
- cp $ff
- jr z, .done
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- push bc
- ld a, $1c
- call Function3b2a
- ld hl, $3
- add hl, bc
- ld [hl], $0
- pop de
- ld a, e
- ld hl, $1
- add hl, bc
- add [hl]
- ld [hl], a
- ld hl, $b
- add hl, bc
- ld [hl], d
- pop hl
- jr .loop
-.done
- ld de, SFX_EGG_HATCH
- call PlaySFX
- call Function1727f
- ret
-; 173ef (5:73ef)
-
-Unknown_173ef: ; 173ef
-; Probably OAM.
- db $54, $48, $00, $3c
- db $5c, $48, $01, $04
- db $54, $50, $00, $30
- db $5c, $50, $01, $10
- db $54, $58, $02, $24
- db $5c, $58, $03, $1c
- db $50, $4c, $00, $36
- db $60, $4c, $01, $0a
- db $50, $54, $02, $2a
- db $60, $54, $03, $16
- db $ff
-; 17418
-
-Function17418: ; 17418 (5:7418)
- ld c, $81
-.asm_1741a
- call Function1727f
- dec c
- jr nz, .asm_1741a
- ret
-
-Special_DayCareMon1: ; 17421
- ld hl, UnknownText_0x17467
- call PrintText
- ld a, [wBreedMon1Species]
- call PlayCry
- ld a, [wDaycareLady]
- bit 0, a
- jr z, Function1745f
- call KeepTextOpen
- ld hl, wBreedMon2Nick
- call Function1746c
- jp PrintText
-
-Special_DayCareMon2: ; 17440
- ld hl, UnknownText_0x17462
- call PrintText
- ld a, [wBreedMon2Species]
- call PlayCry
- ld a, [wDaycareMan]
- bit 0, a
- jr z, Function1745f
- call KeepTextOpen
- ld hl, wBreedMon1Nick
- call Function1746c
- jp PrintText
-
-Function1745f: ; 1745f
- jp Functiona80
-; 17462
-
-UnknownText_0x17462: ; 0x17462
- ; It's @ that was left with the DAY-CARE LADY.
- text_jump UnknownText_0x1c0df3
- db "@"
-; 0x17467
-
-UnknownText_0x17467: ; 0x17467
- ; It's @ that was left with the DAY-CARE MAN.
- text_jump UnknownText_0x1c0e24
- db "@"
-; 0x1746c
-
-Function1746c: ; 1746c
- push bc
- ld de, StringBuffer1
- ld bc, $000b
- call CopyBytes
- call Function16e1d
- pop bc
- ld a, [wd265]
- ld hl, UnknownText_0x1749c
- cp $ff
- jr z, .asm_1749b
- ld hl, UnknownText_0x174a1
- and a
- jr z, .asm_1749b
- ld hl, UnknownText_0x174a6
- cp 230
- jr nc, .asm_1749b
- cp 70
- ld hl, UnknownText_0x174ab
- jr nc, .asm_1749b
- ld hl, UnknownText_0x174b0
-
-.asm_1749b
- ret
-; 1749c
-
-UnknownText_0x1749c: ; 0x1749c
- ; It's brimming with energy.
- text_jump UnknownText_0x1c0e54
- db "@"
-; 0x174a1
-
-UnknownText_0x174a1: ; 0x174a1
- ; It has no interest in @ .
- text_jump UnknownText_0x1c0e6f
- db "@"
-; 0x174a6
-
-UnknownText_0x174a6: ; 0x174a6
- ; It appears to care for @ .
- text_jump UnknownText_0x1c0e8d
- db "@"
-; 0x174ab
-
-UnknownText_0x174ab: ; 0x174ab
- ; It's friendly with @ .
- text_jump UnknownText_0x1c0eac
- db "@"
-; 0x174b0
-
-UnknownText_0x174b0: ; 0x174b0
- ; It shows interest in @ .
- text_jump UnknownText_0x1c0ec6
- db "@"
-; 0x174b5
-
-Function_174b5: ; 174b5
- ld hl, String_174b9
- ret
-; 174b9
-
-String_174b9: ; 174b9
- db "@"
-; 174ba
-
+INCLUDE "engine/breeding/egg.asm"
SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1]
@@ -21767,248 +13461,7 @@ INCLUDE "tilesets/data_2.asm"
SECTION "bank8", ROMX, BANK[$8]
-
-Function20000: ; 20000 (8:4000)
- push hl
- dec a
- ld e, a
- ld d, 0
- ld hl, Unknown_20015
-rept 4
- add hl, de
-endr
- ld e, [hl]
- inc hl
- ld d, [hl]
- inc hl
- ld b, [hl]
- inc hl
- ld c, [hl]
- pop hl
- ret
-; 20015 (8:4015)
-
-Unknown_20015: ; 20015
- dw wd1ed
- db $07, $04
-
- dw wd1ee
- db $18, $0c
-
- dw wd1ef
- db $3c, $0f
-; 20021
-
-Function20021: ; 20021 (8:4021)
- ld hl, UnknownText_0x20047
- call PrintText
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call LoadMenuDataHeader_0x1d75
- call ClearTileMap
- ld hl, UnknownText_0x2004c
- call PrintText
- call Function20051
- call ExitMenu
- pop bc
- ld hl, Options
- ld [hl], b
- ld c, a
- ret
-; 20047 (8:4047)
-
-UnknownText_0x20047: ; 0x20047
- ; The clock's time may be wrong. Please reset the time.
- text_jump UnknownText_0x1c40e6
- db "@"
-; 0x2004c
-
-UnknownText_0x2004c: ; 0x2004c
- ; Set with the Control Pad. Confirm: A Button Cancel: B Button
- text_jump UnknownText_0x1c411c
- db "@"
-; 0x20051
-
-Function20051: ; 20051 (8:4051)
- ld a, $1
- ld [Buffer1], a ; wd1ea (aliases: MagikarpLength)
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
- ld a, $8
- ld [wd1ec], a
- call UpdateTime
- call GetWeekday
- ld [wd1ed], a
- ld a, [hHours] ; $ff00+$94
- ld [wd1ee], a
- ld a, [hMinutes] ; $ff00+$96
- ld [wd1ef], a
-.asm_20071
- call Function200ba
- jr nc, .asm_20071
- and a
- ret nz
- call Function2011f
- ld hl, UnknownText_0x200b0
- call PrintText
- call YesNoBox
- jr c, .asm_200ad
- ld a, [wd1ed]
- ld [StringBuffer2], a
- ld a, [wd1ee]
- ld [StringBuffer2 + 1], a
- ld a, [wd1ef]
- ld [StringBuffer2 + 2], a
- xor a
- ld [StringBuffer2 + 3], a
- call Function677
- call Function2011f
- ld hl, UnknownText_0x200b5
- call PrintText
- call Functiona80
- xor a
- ret
-.asm_200ad
- ld a, $1
- ret
-; 200b0 (8:40b0)
-
-UnknownText_0x200b0: ; 0x200b0
- ; Is this OK?
- text_jump UnknownText_0x1c415b
- db "@"
-; 0x200b5
-
-UnknownText_0x200b5: ; 0x200b5
- ; The clock has been reset.
- text_jump UnknownText_0x1c4168
- db "@"
-; 0x200ba
-
-Function200ba: ; 200ba (8:40ba)
- call Function354b
- ld c, a
- push af
- call Function2011f
- pop af
- bit 0, a
- jr nz, .asm_200dd
- bit 1, a
- jr nz, .asm_200e1
- bit 6, a
- jr nz, .asm_200e5
- bit 7, a
- jr nz, .asm_200f6
- bit 5, a
- jr nz, .asm_20108
- bit 4, a
- jr nz, .asm_20112
- jr Function200ba
-.asm_200dd
- ld a, $0
- scf
- ret
-.asm_200e1
- ld a, $1
- scf
- ret
-.asm_200e5
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
- call Function20000
- ld a, [de]
- inc a
- ld [de], a
- cp b
- jr c, .asm_2011d
- ld a, $0
- ld [de], a
- jr .asm_2011d
-.asm_200f6
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
- call Function20000
- ld a, [de]
- dec a
- ld [de], a
- cp $ff
- jr nz, .asm_2011d
- ld a, b
- dec a
- ld [de], a
- jr .asm_2011d
-.asm_20108
- ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
- dec [hl]
- jr nz, .asm_2011d
- ld [hl], $3
- jr .asm_2011d
-.asm_20112
- ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength)
- inc [hl]
- ld a, [hl]
- cp $4
- jr c, .asm_2011d
- ld [hl], $1
-.asm_2011d
- xor a
- ret
-
-Function2011f: ; 2011f (8:411f)
- hlcoord 0, 5
- ld b, $5
- ld c, $12
- call TextBox
- decoord 1, 8
- ld a, [wd1ed]
- ld b, a
- callba Function5b05
- ld a, [wd1ee]
- ld b, a
- ld a, [wd1ef]
- ld c, a
- decoord 11, 8
- callba Function1dd6bb
- ld a, [Buffer2] ; wd1eb (aliases: MovementType)
- lb de, $7f, $7f
- call Function20168
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
- lb de, $61, $ee
- call Function20168
- ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength)
- ld [Buffer2], a ; wd1eb (aliases: MovementType)
- ret
-; 20160 (8:4160)
-
-Function20160: ; 20160
- ld a, [wd1ec]
- ld b, a
- call GetTileCoord
- ret
-; 20168
-
-Function20168: ; 20168 (8:4168)
- push de
- call Function20000
- ld a, [wd1ec]
- dec a
- ld b, a
- call GetTileCoord
- pop de
- ld [hl], d
- ld bc, $28
- add hl, bc
- ld [hl], e
- ret
-; 2017c (8:417c)
-
-String_2017c: ; 2017c
- db "じ@" ; HR
-; 2017e
-
-String_2017e: ; 2017e
- db "ふん@" ; MIN
-; 20181
-
+INCLUDE "engine/clock_reset.asm"
SECTION "Tileset Data 3", ROMX, BANK[TILESETS_3]
@@ -22027,591 +13480,7 @@ StringBufferPointers:: ; 24000
dw BattleMonNick
; 2400e
-Function2400e:: ; 2400e
- ld hl, Function1c66
- ld a, [wcf94]
- rst FarCall
- call Function24085
- call UpdateSprites
- call Function321c
- call Function2408f
- ret
-; 24022
-
-Function24022:: ; 24022
- ld hl, Function1c66
- ld a, [wcf94]
- rst FarCall
- call Function24085
- callba MobileTextBorder
- call UpdateSprites
- call Function321c
- call Function2408f
- ret
-; 2403c
-
-Function2403c:: ; 2403c
- ld hl, Function1c66
- ld a, [wcf94]
- rst FarCall
- call Function24085
- callba MobileTextBorder
- call UpdateSprites
- call Function321c
- call Function2411a
- ld hl, wcfa5
- set 7, [hl]
-.asm_2405a
- call DelayFrame
- callba Function10032e
- ld a, [wcd2b]
- and a
- jr nz, .asm_24076
- call Function241ba
- ld a, [wcfa8]
- and c
- jr z, .asm_2405a
- call Function24098
- ret
-
-.asm_24076
- ld a, [wcfa4]
- ld c, a
- ld a, [wcfa3]
- call SimpleMultiply
- ld [wMenuCursorBuffer], a
- and a
- ret
-; 24085
-
-
-
-Function24085: ; 24085
- xor a
- ld [hBGMapMode], a
- call Function1cbb
- call Function240db
- ret
-; 2408f
-
-Function2408f: ; 2408f
- call Function2411a
- call Function1bc9
- call Function1ff8
-
-Function24098: ; 24098
- ld a, [wcf91]
- bit 1, a
- jr z, .asm_240a6
- call Function1bdd
- bit 2, a
- jr nz, .asm_240c9
-
-.asm_240a6
- ld a, [wcf91]
- bit 0, a
- jr nz, .asm_240b4
- call Function1bdd
- bit 1, a
- jr nz, .asm_240cb
-
-.asm_240b4
- ld a, [wcfa4]
- ld c, a
- ld a, [wcfa9]
- dec a
- call SimpleMultiply
- ld c, a
- ld a, [wcfaa]
- add c
- ld [wMenuCursorBuffer], a
- and a
- ret
-
-.asm_240c9
- scf
- ret
-
-.asm_240cb
- scf
- ret
-; 240cd
-
-Function240cd: ; 240cd
- ld a, [wcf92]
- and $f
- ret
-; 240d3
-
-Function240d3: ; 240d3
- ld a, [wcf92]
- swap a
- and $f
- ret
-; 240db
-
-Function240db: ; 240db
- ld hl, wcf95
- ld e, [hl]
- inc hl
- ld d, [hl]
- call Function1cc6
- call GetTileCoord
- call Function240d3
- ld b, a
-.asm_240eb
- push bc
- push hl
- call Function240cd
- ld c, a
-.asm_240f1
- push bc
- ld a, [wcf94]
- call Function201c
- inc de
- ld a, [wcf93]
- ld c, a
- ld b, $0
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_240f1
- pop hl
- ld bc, $0028
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_240eb
- ld hl, wcf98
- ld a, [hli]
- ld h, [hl]
- ld l, a
- or h
- ret z
- ld a, [wcf97]
- rst FarCall
- ret
-; 2411a
-
-
-Function2411a: ; 2411a (9:411a)
- call Function1cc6
- ld a, b
- ld [wcfa1], a
- dec c
- ld a, c
- ld [wcfa2], a
- call Function240d3
- ld [wcfa3], a
- call Function240cd
- ld [wcfa4], a
- call Function24179
- call Function2418a
- call Function24193
- ld a, [wcfa4]
- ld e, a
- ld a, [wMenuCursorBuffer]
- ld b, a
- xor a
- ld d, $0
-.asm_24146
- inc d
- add e
- cp b
- jr c, .asm_24146
- sub e
- ld c, a
- ld a, b
- sub c
- and a
- jr z, .asm_24157
- cp e
- jr z, .asm_24159
- jr c, .asm_24159
-.asm_24157
- ld a, $1
-.asm_24159
- ld [wcfaa], a
- ld a, [wcfa3]
- ld e, a
- ld a, d
- and a
- jr z, .asm_24169
- cp e
- jr z, .asm_2416b
- jr c, .asm_2416b
-.asm_24169
- ld a, $1
-.asm_2416b
- ld [wcfa9], a
- xor a
- ld [wcfab], a
- ld [wcfac], a
- ld [wcfad], a
- ret
-; 24179
-
-Function24179: ; 24179
- xor a
- ld hl, wcfa5
- ld [hli], a
- ld [hld], a
- ld a, [wcf91]
- bit 5, a
- ret z
- set 5, [hl]
- set 4, [hl]
- ret
-; 2418a
-
-Function2418a: ; 2418a
- ld a, [wcf93]
- or $20
- ld [wcfa7], a
- ret
-; 24193
-
-Function24193: ; 24193
- ld hl, wcf91
- ld a, $1
- bit 0, [hl]
- jr nz, .asm_2419e
- or $2
-
-.asm_2419e
- bit 1, [hl]
- jr z, .asm_241a4
- or $4
-
-.asm_241a4
- ld [wcfa8], a
- ret
-; 241a8
-
-
-Function241a8:: ; 241a8
- call Function24329
-Function241ab:: ; 241ab
- ld hl, wcfa6
- res 7, [hl]
- ld a, [hBGMapMode]
- push af
- call Function24216
- pop af
- ld [hBGMapMode], a
- ret
-; 241ba
-
-Function241ba: ; 241ba
- ld hl, wcfa6
- res 7, [hl]
- ld a, [hBGMapMode]
- push af
- call Function2431a
- call Function24249
- jr nc, .asm_241cd
- call Function24270
-
-.asm_241cd
- pop af
- ld [hBGMapMode], a
- call Function1bdd
- ld c, a
- ret
-; 241d5
-
-
-Function241d5: ; 241d5
- call Function24329
-.asm_241d8
- call Function2431a
- call Function10402d ; BUG: This function is in another bank.
- call Function241fa
- jr nc, .asm_241f9
- call Function24270
- jr c, .asm_241f9
- ld a, [wcfa5]
- bit 7, a
- jr nz, .asm_241f9
- call Function1bdd
- ld c, a
- ld a, [wcfa8]
- and c
- jr z, .asm_241d8
-
-.asm_241f9
- ret
-; 241fa
-
-Function241fa: ; 241fa
-.asm_241fa
- call Function24259
- ret c
- ld c, $1
- ld b, $3
- call Function10062d ; BUG: This function is in another bank.
- ret c
- callba Function100337
- ret c
- ld a, [wcfa5]
- bit 7, a
- jr z, .asm_241fa
- and a
- ret
-; 24216
-
-
-Function24216: ; 24216
-.asm_24216
- call Function2431a
- call Function24238
- call Function24249
- jr nc, .asm_24237
- call Function24270
- jr c, .asm_24237
- ld a, [wcfa5]
- bit 7, a
- jr nz, .asm_24237
- call Function1bdd
- ld b, a
- ld a, [wcfa8]
- and b
- jr z, .asm_24216
-
-.asm_24237
- ret
-; 24238
-
-Function24238: ; 24238
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call WaitBGMap
- pop af
- ld [hOAMUpdate], a
- xor a
- ld [hBGMapMode], a
- ret
-; 24249
-
-Function24249: ; 24249
-.asm_24249
- call RTC
- call Function24259
- ret c
- ld a, [wcfa5]
- bit 7, a
- jr z, .asm_24249
- and a
- ret
-; 24259
-
-Function24259: ; 24259
- ld a, [wcfa5]
- bit 6, a
- jr z, .asm_24266
- callab Function8cf62
-
-.asm_24266
- call JoyTextDelay
- call Function1bdd
- and a
- ret z
- scf
- ret
-; 24270
-
-Function24270: ; 24270
- call Function1bdd
- bit 0, a
- jp nz, Function24318
- bit 1, a
- jp nz, Function24318
- bit 2, a
- jp nz, Function24318
- bit 3, a
- jp nz, Function24318
- bit 4, a
- jr nz, .asm_242fa
- bit 5, a
- jr nz, .asm_242dc
- bit 6, a
- jr nz, .asm_242be
- bit 7, a
- jr nz, .asm_242a0
- and a
- ret
-
-.asm_24299: ; 24299
- ld hl, wcfa6
- set 7, [hl]
- scf
- ret
-
-.asm_242a0
- ld hl, wcfa9
- ld a, [wcfa3]
- cp [hl]
- jr z, .asm_242ac
- inc [hl]
- xor a
- ret
-
-.asm_242ac
- ld a, [wcfa5]
- bit 5, a
- jr nz, .asm_242ba
- bit 3, a
- jp nz, .asm_24299
- xor a
- ret
-
-.asm_242ba
- ld [hl], $1
- xor a
- ret
-
-.asm_242be
- ld hl, wcfa9
- ld a, [hl]
- dec a
- jr z, .asm_242c8
- ld [hl], a
- xor a
- ret
-
-.asm_242c8
- ld a, [wcfa5]
- bit 5, a
- jr nz, .asm_242d6
- bit 2, a
- jp nz, .asm_24299
- xor a
- ret
-
-.asm_242d6
- ld a, [wcfa3]
- ld [hl], a
- xor a
- ret
-
-.asm_242dc
- ld hl, wcfaa
- ld a, [hl]
- dec a
- jr z, .asm_242e6
- ld [hl], a
- xor a
- ret
-
-.asm_242e6
- ld a, [wcfa5]
- bit 4, a
- jr nz, .asm_242f4
- bit 1, a
- jp nz, .asm_24299
- xor a
- ret
-
-.asm_242f4
- ld a, [wcfa4]
- ld [hl], a
- xor a
- ret
-
-.asm_242fa
- ld hl, wcfaa
- ld a, [wcfa4]
- cp [hl]
- jr z, .asm_24306
- inc [hl]
- xor a
- ret
-
-.asm_24306
- ld a, [wcfa5]
- bit 4, a
- jr nz, .asm_24314
- bit 0, a
- jp nz, .asm_24299
- xor a
- ret
-
-.asm_24314
- ld [hl], $1
- xor a
- ret
-; 24318
-
-Function24318: ; 24318
- xor a
- ret
-; 2431a
-
-Function2431a: ; 2431a
- ld hl, wcfac
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- cp $ed
- jr nz, Function24329
- ld a, [wcfab]
- ld [hl], a
-
-Function24329: ; 24329
- ld a, [wcfa1]
- ld b, a
- ld a, [wcfa2]
- ld c, a
- call GetTileCoord
- ld a, [wcfa7]
- swap a
- and $f
- ld c, a
- ld a, [wcfa9]
- ld b, a
- xor a
- dec b
- jr z, .asm_24348
-.asm_24344
- add c
- dec b
- jr nz, .asm_24344
-
-.asm_24348
- ld c, $14
- call AddNTimes
- ld a, [wcfa7]
- and $f
- ld c, a
- ld a, [wcfaa]
- ld b, a
- xor a
- dec b
- jr z, .asm_2435f
-.asm_2435b
- add c
- dec b
- jr nz, .asm_2435b
-
-.asm_2435f
- ld c, a
- add hl, bc
- ld a, [hl]
- cp $ed
- jr z, .asm_2436b
- ld [wcfab], a
- ld [hl], $ed
-
-.asm_2436b
- ld a, l
- ld [wcfac], a
- ld a, h
- ld [wcfad], a
- ret
-; 24374
+INCLUDE "engine/menu.asm"
_BackUpTiles:: ; 24374
ld a, [rSVBK]
@@ -22626,7 +13495,7 @@ _BackUpTiles:: ; 24374
push de
ld b, $10
- ld hl, wcf81
+ ld hl, wMenuFlags
.loop
ld a, [hli]
ld [de], a
@@ -22637,7 +13506,7 @@ _BackUpTiles:: ; 24374
; If bit 6 or 7 of the menu flags is set, set bit 0 of the address
; at 7:[wcf71], and draw the menu using the coordinates from the header.
; Otherwise, reset bit 0 of 7:[wcf71].
- ld a, [wcf81]
+ ld a, [wMenuFlags]
bit 6, a
jr nz, .bit_6
bit 7, a
@@ -22649,9 +13518,9 @@ _BackUpTiles:: ; 24374
ld h, [hl]
ld l, a
set 0, [hl]
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
call .copy
- call GetMemAttrCoord
+ call MenuBoxCoord2Attr
call .copy
jr .done
@@ -22718,10 +13587,12 @@ _BackUpTiles:: ; 24374
Function243e8:: ; 243e8
xor a
ld [hBGMapMode], a
+
ld a, [rSVBK]
push af
ld a, $7
ld [rSVBK], a
+
call Function1c7e
ld a, l
or h
@@ -22731,7 +13602,7 @@ Function243e8:: ; 243e8
ld a, h
ld [wcf72], a
call Function1c47
- ld a, [wcf81]
+ ld a, [wMenuFlags]
bit 0, a
jr z, .next
ld d, h
@@ -22742,10 +13613,10 @@ Function243e8:: ; 243e8
call Function1c7e
ld a, h
or l
- jr z, .next2
+ jr z, .done
call Function1c47
-.next2
+.done
pop af
ld [rSVBK], a
ld hl, wcf78
@@ -22765,7 +13636,7 @@ Function24423: ; 24423
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
call CopyBytes
call CloseSRAM
- call Function2173
+ call OverworldTextModeSwitch
xor a
call GetSRAMBank
ld hl, sScratch
@@ -22802,7 +13673,7 @@ UnknownText_0x24468: ; 24468
; 2446d
Function2446d:: ; 2446d
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
ld b, a
ld hl, wcfa1
ld a, [wMenuBorderTopCoord]
@@ -22816,7 +13687,7 @@ Function2446d:: ; 2446d
ld a, [wMenuBorderLeftCoord]
inc a
ld [hli], a
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
ld [hli], a
ld a, $1
ld [hli], a
@@ -22826,7 +13697,7 @@ Function2446d:: ; 2446d
set 5, [hl]
.asm_24492
- ld a, [wcf81]
+ ld a, [wMenuFlags]
bit 4, a
jr z, .asm_2449b
set 6, [hl]
@@ -22848,7 +13719,7 @@ Function2446d:: ; 2446d
and a
jr z, .asm_244b7
ld c, a
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
cp c
jr nc, .asm_244b9
@@ -22886,7 +13757,7 @@ Function244c3: ; 0x244c3
Pokepic:: ; 244e3
ld hl, MenuDataHeader_0x24547
call CopyMenuDataHeader
- call Function1cbb
+ call MenuBox
call UpdateSprites
call Function321c
ld b, $12
@@ -22904,9 +13775,9 @@ Pokepic:: ; 244e3
ld a, [wMenuBorderLeftCoord]
inc a
ld c, a
- call GetTileCoord
+ call Coord2Tile
ld a, $80
- ld [$ffad], a
+ ld [hFillBox], a
lb bc, 7, 7
predef FillBox
call WaitBGMap
@@ -22916,15 +13787,15 @@ Pokepic:: ; 244e3
PokepicYesOrNo:: ; 24528
ld hl, MenuDataHeader_0x24547
call CopyMenuDataHeader
- call Function1ce1
+ call ClearMenuBoxInterior
call WaitBGMap
call ClearSGB
xor a
ld [hBGMapMode], a
- call Function2173
+ call OverworldTextModeSwitch
call Function321c
call UpdateSprites
- call Functione51
+ call LoadStandardFont
ret
; 24547
@@ -23014,7 +13885,7 @@ Function245af:: ; 245af
ld [hBGMapMode], a
inc a
ld [hInMenu], a
- call Function2471a
+ call ClearObjectStructsa
call Function24764
call Function247dd
call Function245f1
@@ -23057,7 +13928,7 @@ Function245f1: ; 245f1
ld hl, Options
ld a, [hl]
push af
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
call Function247f0
call Function2488b
call Function248b8
@@ -23103,7 +13974,7 @@ MenuJoyAction: ; 24609
.a_button: ; 24644
call Function1bee
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function248d5
ld a, [MenuSelection]
@@ -23129,10 +14000,10 @@ MenuJoyAction: ; 24609
; 24673
.select: ; 24673
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 7, a
jp z, xor_a_dec_a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function248d5
ld a, [MenuSelection]
@@ -23147,7 +14018,7 @@ MenuJoyAction: ; 24609
; 24695
.start: ; 24695
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 6, a
jp z, xor_a_dec_a
ld a, START
@@ -23159,7 +14030,7 @@ MenuJoyAction: ; 24609
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a_dec_a
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 3, a
jp z, xor_a_dec_a
ld a, D_LEFT
@@ -23171,7 +14042,7 @@ MenuJoyAction: ; 24609
ld hl, wcfa6
bit 7, [hl]
jp z, xor_a_dec_a
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 2, a
jp z, xor_a_dec_a
ld a, D_RIGHT
@@ -23199,7 +14070,7 @@ MenuJoyAction: ; 24609
bit 7, [hl]
jp z, xor_a
ld hl, wd0e4
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
add [hl]
ld b, a
ld a, [wd144]
@@ -23215,18 +14086,18 @@ MenuJoyAction: ; 24609
Function246fc: ; 246fc
ld a, [wd0e4]
ld c, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
add c
ld c, a
ret
; 24706
Function24706: ; 24706 (9:4706)
- call GetMemTileCoord
+ call MenuBoxCoord2Tile
ld de, SCREEN_WIDTH
add hl, de
ld de, 2 * SCREEN_WIDTH
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
.asm_24713
ld [hl], " "
add hl, de
@@ -23234,7 +14105,7 @@ Function24706: ; 24706 (9:4706)
jr nz, .asm_24713
ret
-Function2471a: ; 2471a
+ClearObjectStructsa: ; 2471a
; Get the value of (wcf95):(wcf96,wcf97) and store it in wd144.
ld hl, wcf96
ld a, [hli]
@@ -23243,8 +14114,8 @@ Function2471a: ; 2471a
ld a, [wcf95]
call GetFarByte
ld [wd144], a
-; if ([wd144] + 1) < [wcf92] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wcf92], 0)
- ld a, [wcf92]
+; if ([wd144] + 1) < [wMenuData2Items] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wMenuData2Items], 0)
+ ld a, [wMenuData2Items]
ld c, a
ld a, [wd0e4]
add c
@@ -23253,7 +14124,7 @@ Function2471a: ; 2471a
inc a
cp c
jr nc, .skip
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
ld c, a
ld a, [wd144]
inc a
@@ -23287,7 +14158,7 @@ Function2471a: ; 2471a
; 24764
Function24764: ; 24764
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
ld c, a
ld a, [wd144]
ld b, a
@@ -23297,7 +14168,7 @@ Function24764: ; 24764
ld a, [wMenuBorderLeftCoord]
add $0
ld [wcfa2], a
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
cp b
jr c, .asm_24786
jr z, .asm_24786
@@ -23349,7 +14220,7 @@ Function24764: ; 24764
ld a, $1
.asm_247ca
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1
ld [wcfaa], a
xor a
@@ -23376,8 +14247,8 @@ Function247dd: ; 247dd
; 247f0
Function247f0: ; 247f0
- call Function1cf1
- ld a, [wcf91]
+ call ClearWholeMenuBox
+ ld a, [wMenuData2Flags]
bit 4, a
jr z, .asm_2480d
ld a, [wd0e4]
@@ -23387,14 +14258,14 @@ Function247f0: ; 247f0
ld b, a
ld a, [wMenuBorderRightCoord]
ld c, a
- call GetTileCoord
+ call Coord2Tile
ld [hl], $61
.asm_2480d
- call GetMemTileCoord
- ld bc, $0015
+ call MenuBoxCoord2Tile
+ ld bc, $15
add hl, bc
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
ld b, a
ld c, $0
.asm_2481a
@@ -23410,28 +14281,28 @@ Function247f0: ; 247f0
push hl
call Function2486e
pop hl
- ld bc, $0028
+ ld bc, $28
add hl, bc
pop bc
inc c
ld a, c
cp b
jr nz, .asm_2481a
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 4, a
jr z, .asm_24850
ld a, [wMenuBorderBottomCoord]
ld b, a
ld a, [wMenuBorderRightCoord]
ld c, a
- call GetTileCoord
+ call Coord2Tile
ld [hl], $ee
.asm_24850
ret
.asm_24851
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 0, a
jr nz, .asm_24866
ld de, .string_2485f
@@ -23479,7 +14350,7 @@ Function2488b: ; 2488b
cp b
jr nc, .asm_248b7
ld c, a
- ld a, [wcf92]
+ ld a, [wMenuData2Items]
add c
cp b
jr c, .asm_248b7
@@ -23495,7 +14366,7 @@ Function2488b: ; 2488b
ld a, [wMenuBorderLeftCoord]
add $0
ld c, a
- call GetTileCoord
+ call Coord2Tile
ld [hl], $ec
.asm_248b7
@@ -23503,7 +14374,7 @@ Function2488b: ; 2488b
; 248b8
Function248b8: ; 248b8
- ld a, [wcf91]
+ ld a, [wMenuData2Flags]
bit 5, a
ret z
bit 1, a
@@ -23513,7 +14384,7 @@ Function248b8: ; 248b8
ret nz
.asm_248c7
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
call Function248d5
ld hl, wcf9e
@@ -23736,7 +14607,7 @@ Function249d1: ; 249d1 (9:49d1)
Function24a40: ; 24a40 (9:4a40)
call Function24a5c
- ld de, DefaultFlypoint
+ ld de, wd002
call Function24a80
call CopyBytes
ret
@@ -23745,7 +14616,7 @@ Function24a4d: ; 24a4d (9:4a4d)
call Function24a5c
ld d, h
ld e, l
- ld hl, DefaultFlypoint
+ ld hl, wd002
call Function24a80
call CopyBytes
ret
@@ -23771,7 +14642,7 @@ Function24a6c: ; 24a6c (9:4a6c)
dec a
cpl
.asm_24a76
- ld hl, $0
+ ld hl, 0
call AddNTimes
ld b, h
ld c, l
@@ -23843,7 +14714,7 @@ PlaceMenuItemQuantity: ; 0x24ac3
pop hl
and a
jr nz, .done
- ld de, $0015
+ ld de, $15
add hl, de
ld [hl], "×"
inc hl
@@ -23867,13 +14738,13 @@ Function24af0: ; 24af0
Function24af8: ; 24af8
ld hl, MenuDataHeader_0x24b15
- ld de, $000b
+ ld de, $b
call Function1e2e
Function24b01: ; 24b01
- call Function1cbb
- call GetMemTileCoord
- ld de, $0015
+ call MenuBox
+ call MenuBoxCoord2Tile
+ ld de, $15
add hl, de
ld de, Money
lb bc, PRINTNUM_MONEY | 3, 6
@@ -23947,26 +14818,27 @@ ShowMoney_TerminatorString: ; 24b8e
; 24b8f
Function24b8f: ; 24b8f
+; unreferenced, related to safari?
ld hl, Options
ld a, [hl]
push af
- set 4, [hl]
+ set NO_TEXT_SCROLL, [hl]
hlcoord 0, 0
- ld b, $3
- ld c, $7
+ ld b, 3
+ ld c, 7
call TextBox
hlcoord 1, 1
- ld de, wdc7a
+ ld de, wSafariTimeRemaining
lb bc, 2, 3
call PrintNum
hlcoord 4, 1
- ld de, String24bcf
+ ld de, .slash_500
call PlaceString
hlcoord 1, 3
- ld de, String24bd4
+ ld de, .booru_ko
call PlaceString
hlcoord 5, 3
- ld de, wdc79
+ ld de, wSafariBallsRemaining
lb bc, 1, 2
call PrintNum
pop af
@@ -23974,9 +14846,9 @@ Function24b8f: ; 24b8f
ret
; 24bcf
-String24bcf: ; 24bcf
+.slash_500: ; 24bcf
db "/500@"
-String24bd4: ; 24bd4
+.booru_ko: ; 24bd4
db "ボール こ@"
; 24bdc
@@ -23998,7 +14870,7 @@ Function24be7: ; 24be7
ld de, String24c52
call PlaceString
hlcoord 8, 5
- ld de, wdc79
+ ld de, wSafariBallsRemaining
lb bc, PRINTNUM_RIGHTALIGN | 1, 2
call PrintNum
hlcoord 1, 1
@@ -24119,41 +14991,41 @@ MonMenuOptionStrings: ; 24caf
MonMenuOptions: ; 24cd9
; Moves
- db 0, 1, CUT
- db 0, 2, FLY
- db 0, 3, SURF
- db 0, 4, STRENGTH
- db 0, 6, FLASH
- db 0, 5, WATERFALL
- db 0, 7, WHIRLPOOL
- db 0, 8, DIG
- db 0, 9, TELEPORT
- db 0, 10, SOFTBOILED
- db 0, 11, HEADBUTT
- db 0, 12, ROCK_SMASH
- db 0, 13, MILK_DRINK
- db 0, 14, SWEET_SCENT
+ db MONMENU_FIELD_MOVE, MONMENU_CUT, CUT
+ db MONMENU_FIELD_MOVE, MONMENU_FLY, FLY
+ db MONMENU_FIELD_MOVE, MONMENU_SURF, SURF
+ db MONMENU_FIELD_MOVE, MONMENU_STRENGTH, STRENGTH
+ db MONMENU_FIELD_MOVE, MONMENU_FLASH, FLASH
+ db MONMENU_FIELD_MOVE, MONMENU_WATERFALL, WATERFALL
+ db MONMENU_FIELD_MOVE, MONMENU_WHIRLPOOL, WHIRLPOOL
+ db MONMENU_FIELD_MOVE, MONMENU_DIG, DIG
+ db MONMENU_FIELD_MOVE, MONMENU_TELEPORT, TELEPORT
+ db MONMENU_FIELD_MOVE, MONMENU_SOFTBOILED, SOFTBOILED
+ db MONMENU_FIELD_MOVE, MONMENU_HEADBUTT, HEADBUTT
+ db MONMENU_FIELD_MOVE, MONMENU_ROCKSMASH, ROCK_SMASH
+ db MONMENU_FIELD_MOVE, MONMENU_MILKDRINK, MILK_DRINK
+ db MONMENU_FIELD_MOVE, MONMENU_SWEETSCENT, SWEET_SCENT
; Options
- db 1, 15, 1 ; STATS
- db 1, 16, 2 ; SWITCH
- db 1, 17, 3 ; ITEM
- db 1, 18, 4 ; CANCEL
- db 1, 19, 5 ; MOVE
- db 1, 20, 6 ; MAIL
- db 1, 21, 7 ; ERROR!
+ db MONMENU_MENUOPTION, MONMENU_STATS, 1 ; STATS
+ db MONMENU_MENUOPTION, MONMENU_SWITCH, 2 ; SWITCH
+ db MONMENU_MENUOPTION, MONMENU_ITEM, 3 ; ITEM
+ db MONMENU_MENUOPTION, MONMENU_CANCEL, 4 ; CANCEL
+ db MONMENU_MENUOPTION, MONMENU_MOVE, 5 ; MOVE
+ db MONMENU_MENUOPTION, MONMENU_MAIL, 6 ; MAIL
+ db MONMENU_MENUOPTION, MONMENU_ERROR, 7 ; ERROR!
- db $ff
+ db -1
; 24d19
-Function24d19: ; 24d19
+MonSubmenu: ; 24d19
xor a
ld [hBGMapMode], a
- call Function24dd4
+ call GetMonSubmenuItems
callba Function8ea4a
- ld hl, MenuDataHeader_0x24d3f
+ ld hl, .MenuDataHeader
call LoadMenuDataHeader
- call Function24d47
+ call .GetTopCoord
call PopulateMonMenu
ld a, 1
@@ -24165,7 +15037,7 @@ Function24d19: ; 24d19
ret
; 24d3f
-MenuDataHeader_0x24d3f: ; 24d3f
+.MenuDataHeader: ; 24d3f
db $40 ; tile backup
db 00, 06 ; start coords
db 17, 19 ; end coords
@@ -24173,7 +15045,8 @@ MenuDataHeader_0x24d3f: ; 24d3f
db 1 ; default option
; 24d47
-Function24d47: ; 24d47
+.GetTopCoord: ; 24d47
+; TopCoord = 1 + BottomCoord - 2 * (NumSubmenuItems + 1)
ld a, [Buffer1]
inc a
add a
@@ -24182,16 +15055,16 @@ Function24d47: ; 24d47
sub b
inc a
ld [wMenuBorderTopCoord], a
- call Function1cbb
+ call MenuBox
ret
; 24d59
MonMenuLoop: ; 24d59
.loop
- ld a, $a0
- ld [wcf91], a
- ld a, [Buffer1]
- ld [wcf92], a
+ ld a, $a0 ; flags
+ ld [wMenuData2Flags], a
+ ld a, [Buffer1] ; items
+ ld [wMenuData2Items], a
call Function1c10
ld hl, wcfa5
set 6, [hl]
@@ -24206,11 +15079,11 @@ MonMenuLoop: ; 24d59
jr .loop
.cancel
- ld a, 18 ; CANCEL
+ ld a, MONMENU_CANCEL ; CANCEL
ret
.select
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld c, a
ld b, 0
@@ -24221,8 +15094,8 @@ MonMenuLoop: ; 24d59
; 24d91
PopulateMonMenu: ; 24d91
- call GetMemTileCoord
- ld bc, $002a ; 42
+ call MenuBoxCoord2Tile
+ ld bc, $2a ; 42
add hl, bc
ld de, Buffer2
.loop
@@ -24235,7 +15108,7 @@ PopulateMonMenu: ; 24d91
call GetMonMenuString
pop hl
call PlaceString
- ld bc, $0028 ; 40
+ ld bc, $28 ; 40
add hl, bc
pop de
jr .loop
@@ -24266,15 +15139,15 @@ GetMonMenuString: ; 24db0
ret
; 24dd4
-Function24dd4: ; 24dd4
- call Function24e68
+GetMonSubmenuItems: ; 24dd4
+ call ResetMonSubmenu
ld a, [CurPartySpecies]
cp EGG
jr z, .egg
ld a, [wLinkMode]
and a
- jr nz, .skip
- ld a, PartyMon1Moves - PartyMon1
+ jr nz, .skip_moves
+ ld a, MON_MOVES
call GetPartyParamLocation
ld d, h
ld e, l
@@ -24286,10 +15159,10 @@ Function24dd4: ; 24dd4
and a
jr z, .next
push hl
- call Function24e52
+ call IsFieldMove
pop hl
jr nc, .next
- call Function24e83
+ call AddMonMenuItem
.next
pop de
@@ -24298,82 +15171,82 @@ Function24dd4: ; 24dd4
dec c
jr nz, .loop
-.skip
- ld a, $f
- call Function24e83
- ld a, $10
- call Function24e83
- ld a, $13
- call Function24e83
+.skip_moves
+ ld a, MONMENU_STATS
+ call AddMonMenuItem
+ ld a, MONMENU_SWITCH
+ call AddMonMenuItem
+ ld a, MONMENU_MOVE
+ call AddMonMenuItem
ld a, [wLinkMode]
and a
jr nz, .skip2
push hl
- ld a, PartyMon1Item - PartyMon1
+ ld a, MON_ITEM
call GetPartyParamLocation
ld d, [hl]
callba ItemIsMail
pop hl
- ld a, $14
+ ld a, MONMENU_MAIL
jr c, .ok
- ld a, $11
+ ld a, MONMENU_ITEM
.ok
- call Function24e83
+ call AddMonMenuItem
.skip2
ld a, [Buffer1]
- cp $8
+ cp NUM_MON_SUBMENU_ITEMS
jr z, .ok2
- ld a, $12
- call Function24e83
+ ld a, MONMENU_CANCEL
+ call AddMonMenuItem
.ok2
- call Function24e76
+ call TerminateMonSubmenu
ret
.egg
- ld a, $f
- call Function24e83
- ld a, $10
- call Function24e83
- ld a, $12
- call Function24e83
- call Function24e76
+ ld a, MONMENU_STATS
+ call AddMonMenuItem
+ ld a, MONMENU_SWITCH
+ call AddMonMenuItem
+ ld a, MONMENU_CANCEL
+ call AddMonMenuItem
+ call TerminateMonSubmenu
ret
; 24e52
-Function24e52: ; 24e52
+IsFieldMove: ; 24e52
ld b, a
ld hl, MonMenuOptions
-.asm_24e56
+.next
ld a, [hli]
- cp $ff
- jr z, .asm_24e67
- cp $1
- jr z, .asm_24e67
+ cp -1
+ jr z, .nope
+ cp MONMENU_MENUOPTION
+ jr z, .nope
ld d, [hl]
inc hl
ld a, [hli]
cp b
- jr nz, .asm_24e56
+ jr nz, .next
ld a, d
scf
-.asm_24e67
+.nope
ret
; 24e68
-Function24e68: ; 24e68
+ResetMonSubmenu: ; 24e68
xor a
ld [Buffer1], a
ld hl, Buffer2
- ld bc, 9
+ ld bc, NUM_MON_SUBMENU_ITEMS + 1
call ByteFill
ret
; 24e76
-Function24e76: ; 24e76
+TerminateMonSubmenu: ; 24e76
ld a, [Buffer1]
ld e, a
ld d, $0
@@ -24383,7 +15256,7 @@ Function24e76: ; 24e76
ret
; 24e83
-Function24e83: ; 24e83
+AddMonMenuItem: ; 24e83
push hl
push de
push af
@@ -24407,12 +15280,12 @@ Function24e99: ; 24e99
call CopyMenuDataHeader
xor a
ld [hBGMapMode], a
- call Function1cbb
+ call MenuBox
call UpdateSprites
call Function1c89
call WaitBGMap
- call Function1c66
- ld a, [wcf91]
+ call CopyMenuData2
+ ld a, [wMenuData2Flags]
bit 7, a
jr z, .asm_24ed0
call Function1c10
@@ -24537,7 +15410,7 @@ Strings24f5f: ; 24f5f
Function24f7c: ; 24f7c
hlcoord 17, 13
- ld de, wdc79
+ ld de, wSafariBallsRemaining
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
@@ -24562,14 +15435,14 @@ MenuData_0x24f91: ; 24f91
Strings24f9a: ; 24f9a
db "FIGHT@"
- db $4a, "@"
+ db "<PKMN>", "@"
db "PARKBALL× @"
db "RUN@"
; 24fb2
Function24fb2: ; 24fb2
hlcoord 13, 16
- ld de, wdc79
+ ld de, wParkBallsRemaining
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
ret
@@ -24708,20 +15581,20 @@ Function2500e: ; 2500e
; 25072
Function25072: ; 25072
- call Function1cbb
- call GetMemTileCoord
- ld de, $0015
+ call MenuBox
+ call MenuBoxCoord2Tile
+ ld de, $15
add hl, de
ld [hl], $f1
inc hl
ld de, wItemQuantityChangeBuffer
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
- ld a, [wcf86]
+ ld a, [wMenuData2Pointer]
ld e, a
- ld a, [wcf87]
+ ld a, [wMenuData2Pointer + 1]
ld d, a
- ld a, [wcf8a]
+ ld a, [wMenuDataBank]
call FarCall_de
ret
; 25097
@@ -24847,7 +15720,7 @@ Function25105: ; 25105
ret
Function2513b: ; 2513b (9:513b)
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@@ -25063,7 +15936,7 @@ Function25299: ; 25299 (9:5299)
hlcoord 14, 1
lb bc, 5, 7
xor a
- ld [$ffad], a
+ ld [hFillBox], a
predef FillBox
ret
; 252ec (9:52ec)
@@ -25257,7 +16130,7 @@ Function25415: ; 25415 (9:5415)
ld de, GameTimeMinutes
lb bc, PRINTNUM_LEADINGZEROS | 1, 2
call PrintNum
- ld a, [$ff9b]
+ ld a, [hVBlankCounter]
and $1f
ret nz
hlcoord 15, 12
@@ -25267,7 +16140,7 @@ Function25415: ; 25415 (9:5415)
ret
Function25438: ; 25438 (9:5438)
- ld a, [$ff9b]
+ ld a, [hVBlankCounter]
and $7
ret nz
ld a, [wcf64]
@@ -25463,7 +16336,7 @@ Rate: ; 0x26616
ld hl, PokedexSeen
ld b, EndPokedexSeen - PokedexSeen
call CountSetBits
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld hl, PokedexCaught
ld b, EndPokedexCaught - PokedexCaught
call CountSetBits
@@ -25485,7 +16358,7 @@ Rate: ; 0x26616
ClearOakRatingBuffers: ; 0x26647
ld hl, StringBuffer3
- ld de, DefaultFlypoint
+ ld de, wd002
call ClearOakRatingBuffer
ld hl, StringBuffer4
ld de, wd003
@@ -25703,11 +16576,11 @@ OakPCText4: ; 0x2674c
db "@"
-Function26751: ; 26751 (9:6751)
- ld a, $2
- ld [wdc0f], a
- ld a, $10
- ld [wdc12], a
+InitDecorations: ; 26751 (9:6751)
+ ld a, DECO_FEATHERY_BED
+ ld [Bed], a
+ ld a, DECO_TOWN_MAP
+ ld [Poster], a
ret
_KrisDecorationMenu: ; 0x2675c
@@ -25724,7 +16597,7 @@ _KrisDecorationMenu: ; 0x2675c
ld [wMenuCursorBuffer], a
call Function26806
call Function1e5d
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd1ef], a
jr c, .asm_2678e
ld a, [MenuSelection]
@@ -25785,7 +16658,7 @@ Function26806: ; 26806
ld a, $7
call Function26830
ld hl, StringBuffer2
- ld de, DefaultFlypoint
+ ld de, wd002
ld bc, $d
call CopyBytes
ret
@@ -25845,10 +16718,10 @@ Jumptable_26855: ; 26855
Function2686c: ; 2686c
xor a
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld [hli], a
ld a, -1
- ld bc, $0010
+ ld bc, $10
call ByteFill
ret
; 2687a
@@ -25875,7 +16748,7 @@ CheckAllDecorationFlags: ; 2687a
; 26891
Function26891: ; 26891
- ld hl, DefaultFlypoint
+ ld hl, wd002
inc [hl]
ld e, [hl]
ld d, $0
@@ -25891,7 +16764,7 @@ Function2689b: ; 2689b
pop hl
call CheckAllDecorationFlags
pop bc
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and a
ret z
ld a, c
@@ -26029,7 +16902,7 @@ Function26959: ; 26959
; 2695b
Function2695b: ; 2695b
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and a
jr z, .empty
cp 8
@@ -26047,13 +16920,13 @@ Function2695b: ; 2695b
ret
.beyond_eight
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld e, [hl]
dec [hl]
ld d, 0
add hl, de
ld [hl], -1
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld hl, MenuDataHeader_0x269c5
call CopyMenuDataHeader
xor a
@@ -26061,7 +16934,7 @@ Function2695b: ; 2695b
call Function352f
xor a
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wcf73]
cp 2
jr z, .no_action_2
@@ -26668,9 +17541,9 @@ DecoAction_AskWhichSide: ; 26e70
ld hl, MenuDataHeader_0x26eab
call GetMenu2
call ExitMenu
- call Function1c66
+ call CopyMenuData2
jr c, .nope
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp 3
jr z, .nope
ld [Buffer2], a
@@ -27134,28 +18007,28 @@ LevelUpHappinessMod: ; 2709e
INCLUDE "trainers/dvs.asm"
Function2715c: ; 2715c
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, [BattleType]
cp BATTLETYPE_TUTORIAL
jr z, .gettutorialbackpic
- callba Function3f43d
+ callba GetMonBackpic
jr .continue
.gettutorialbackpic
- callba GetBattleBackpic
+ callba GetTrainerBackpic
.continue
- callba Function3f47c
- callba Function3ed9f
+ callba GetMonFrontpic
+ callba _LoadBattleFontsHPBar
call ClearSGB
call WriteBackup
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call WaitBGMap
jp SetPalettes
; 27192
-Function27192: ; 27192
+ConsumeHeldItem: ; 27192
push hl
push de
push bc
@@ -27174,8 +18047,8 @@ Function27192: ; 27192
push af
ld a, [de]
ld b, a
- callba GetItem
- ld hl, Unknown_271de
+ callba GetItemHeldEffect
+ ld hl, .ConsumableEffects
.loop
ld a, [hli]
cp b
@@ -27212,18 +18085,18 @@ Function27192: ; 27192
ret
; 271de
-Unknown_271de: ; 271de
+.ConsumableEffects: ; 271de
; Consumable items?
db HELD_BERRY
- db $02
- db $05
+ 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 $1e
+ db HELD_30
db HELD_ATTACK_UP
db HELD_DEFENSE_UP
db HELD_SPEED_UP
@@ -27231,8 +18104,8 @@ Unknown_271de: ; 271de
db HELD_SP_DEFENSE_UP
db HELD_ACCURACY_UP
db HELD_EVASION_UP
- db $26
- db $47
+ db HELD_38
+ db HELD_71
db HELD_ESCAPE
db HELD_CRITICAL_UP
db -1
@@ -27253,4125 +18126,9 @@ Function27a28: ; 27a28
SECTION "bankA", ROMX, BANK[$A]
-LinkCommunications: ; 28000
- call WhiteBGMap
- ld c, $50
- call DelayFrames
- call ClearScreen
- call ClearSprites
- call UpdateSprites
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld c, $50
- call DelayFrames
- call ClearScreen
- call UpdateSprites
- call Functione51
- call LoadFontsBattleExtra
- callba Function16d69a
- call Function3200
- hlcoord 3, 8
- ld b, $2
- ld c, $c
- ld d, h
- ld e, l
- callba Function4d35b
- hlcoord 4, 10
- ld de, String28419
- call PlaceString
- call Function28eff
- call Function3200
- ld hl, wcf5d
- xor a
- ld [hli], a
- ld [hl], $50
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jp nz, Function28177
-
-Function2805d: ; 2805d
- call Function28426
- call Function28499
- call Function28434
- xor a
- ld [wcf56], a
- call Function87d
- ld a, [$ffcb]
- cp $2
- jr nz, .asm_28091
- ld c, $3
- call DelayFrames
- xor a
- ld [hSerialSend], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- call DelayFrame
- xor a
- ld [hSerialSend], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
-
-.asm_28091
- ld de, MUSIC_NONE
- call PlayMusic
- ld c, $3
- call DelayFrames
- xor a
- ld [rIF], a
- ld a, $8
- ld [rIE], a
- ld hl, wd1f3
- ld de, EnemyMonSpecies
- ld bc, $0011
- call Function75f
- ld a, $fe
- ld [de], a
- ld hl, OverworldMap
- ld de, wd26b
- ld bc, $01a8
- call Function75f
- ld a, $fe
- ld [de], a
- ld hl, wc608
- ld de, wc6d0
- ld bc, $00c8
- call Function75f
- xor a
- ld [rIF], a
- ld a, $1d
- ld [rIE], a
- call Function287ab
- ld hl, wd26b
- call Function287ca
- push hl
- ld bc, $000b
- add hl, bc
- ld a, [hl]
- pop hl
- and a
- jp z, Function28b22
- cp $7
- jp nc, Function28b22
- ld de, OverworldMap
- ld bc, $01a2
- call Function2879e
- ld de, wc6d0
- ld hl, wc813
- ld c, $2
-.asm_280fe
- ld a, [de]
- inc de
- and a
- jr z, .asm_280fe
- cp $fd
- jr z, .asm_280fe
- cp $fe
- jr z, .asm_280fe
- cp $ff
- jr z, .asm_2811d
- push hl
- push bc
- ld b, $0
- dec a
- ld c, a
- add hl, bc
- ld a, $fe
- ld [hl], a
- pop bc
- pop hl
- jr .asm_280fe
-
-.asm_2811d
- ld hl, wc90f
- dec c
- jr nz, .asm_280fe
- ld hl, OverworldMap
- ld de, wd26b
- ld bc, $000b
- call CopyBytes
- ld de, OTPartyCount
- ld a, [hli]
- ld [de], a
- inc de
-.asm_28135
- ld a, [hli]
- cp $ff
- jr z, .asm_2814e
- ld [wd265], a
- push hl
- push de
- callab ConvertMon_1to2
- pop de
- pop hl
- ld a, [wd265]
- ld [de], a
- inc de
- jr .asm_28135
-
-.asm_2814e
- ld [de], a
- ld hl, wc813
- call Function2868a
- ld a, OTPartyMonOT % $100
- ld [wd102], a
- ld a, OTPartyMonOT / $100
- ld [wd103], a
- ld de, MUSIC_NONE
- call PlayMusic
- ld a, [$ffcb]
- cp $2
- ld c, 66
- call z, DelayFrames
- ld de, MUSIC_ROUTE_30
- call PlayMusic
- jp Function287e3
-; 28177
-
-Function28177: ; 28177
- call Function28426
- call Function28595
- call Function28434
- call Function29dba
- ld a, [ScriptVar]
- and a
- jp z, Function283b2
- ld a, [$ffcb]
- cp $2
- jr nz, .asm_281ae
- ld c, $3
- call DelayFrames
- xor a
- ld [hSerialSend], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- call DelayFrame
- xor a
- ld [hSerialSend], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
-
-.asm_281ae
- ld de, MUSIC_NONE
- call PlayMusic
- ld c, $3
- call DelayFrames
- xor a
- ld [rIF], a
- ld a, $8
- ld [rIE], a
- ld hl, wd1f3
- ld de, EnemyMonSpecies
- ld bc, $0011
- call Function75f
- ld a, $fe
- ld [de], a
- ld hl, OverworldMap
- ld de, wd26b
- ld bc, $01c2
- call Function75f
- ld a, $fe
- ld [de], a
- ld hl, wc608
- ld de, wc6d0
- ld bc, $00c8
- call Function75f
- ld a, [wLinkMode]
- cp LINK_TRADECENTER
- jr nz, .asm_281fd
- ld hl, wc9f4
- ld de, wcb84
- ld bc, $0186
- call Function283f2
-
-.asm_281fd
- xor a
- ld [rIF], a
- ld a, $1d
- ld [rIE], a
- ld de, MUSIC_NONE
- call PlayMusic
- call Function287ab
- ld hl, wd26b
- call Function287ca
- ld de, OverworldMap
- ld bc, $01b9
- call Function2879e
- ld de, wc6d0
- ld hl, wc813
- ld c, $2
-.asm_28224
- ld a, [de]
- inc de
- and a
- jr z, .asm_28224
- cp $fd
- jr z, .asm_28224
- cp $fe
- jr z, .asm_28224
- cp $ff
- jr z, .asm_28243
- push hl
- push bc
- ld b, $0
- dec a
- ld c, a
- add hl, bc
- ld a, $fe
- ld [hl], a
- pop bc
- pop hl
- jr .asm_28224
-
-.asm_28243
- ld hl, wc90f
- dec c
- jr nz, .asm_28224
- ld a, [wLinkMode]
- cp LINK_TRADECENTER
- jp nz, .asm_282fe
- ld hl, wcb84
-.asm_28254
- ld a, [hli]
- cp $20
- jr nz, .asm_28254
-.asm_28259
- ld a, [hli]
- cp $fe
- jr z, .asm_28259
- cp $20
- jr z, .asm_28259
- dec hl
- ld de, wcb84
- ld bc, $0190
- call CopyBytes
- ld hl, wcb84
- ld bc, $00c6
-.asm_28272
- ld a, [hl]
- cp $21
- jr nz, .asm_28279
- ld [hl], $fe
-
-.asm_28279
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_28272
- ld de, wcc9e
-.asm_28282
- ld a, [de]
- inc de
- cp $ff
- jr z, .asm_28294
- ld hl, wcc4a
- dec a
- ld b, $0
- ld c, a
- add hl, bc
- ld [hl], $fe
- jr .asm_28282
-
-.asm_28294
- ld hl, wcb84
- ld de, wc9f4
- ld b, $6
-.asm_2829c
- push bc
- ld bc, $0021
- call CopyBytes
- ld a, $e
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- pop bc
- dec b
- jr nz, .asm_2829c
- ld de, wc9f4
- ld b, $6
-.asm_282b4
- push bc
- ld a, $21
- add e
- ld e, a
- ld a, $0
- adc d
- ld d, a
- ld bc, $000e
- call CopyBytes
- pop bc
- dec b
- jr nz, .asm_282b4
- ld b, $6
- ld de, wc9f4
-.asm_282cc
- push bc
- push de
- callba Function1de5c8
- ld a, c
- or a
- jr z, .asm_282ee
- sub $3
- jr nc, .asm_282e4
- callba Function1df203
- jr .asm_282ee
-
-.asm_282e4
- cp $2
- jr nc, .asm_282ee
- callba Function1df220
-
-.asm_282ee
- pop de
- ld hl, $002f
- add hl, de
- ld d, h
- ld e, l
- pop bc
- dec b
- jr nz, .asm_282cc
- ld de, wcb0e
- xor a
- ld [de], a
-
-.asm_282fe
- ld hl, OverworldMap
- ld de, wd26b
- ld bc, $000b
- call CopyBytes
- ld de, OTPartyCount
- ld bc, $0008
- call CopyBytes
- ld de, wd276
- ld bc, $0002
- call CopyBytes
- ld de, OTPartyMon1Species
- ld bc, $01a4
- call CopyBytes
- ld a, OTPartyMonOT % $100
- ld [wd102], a
- ld a, OTPartyMonOT / $100
- ld [wd103], a
- ld de, MUSIC_NONE
- call PlayMusic
- ld a, [$ffcb]
- cp $2
- ld c, 66
- call z, DelayFrames
- ld a, [wLinkMode]
- cp LINK_COLOSSEUM
- jr nz, .asm_283a9
- ld a, CAL
- ld [OtherTrainerClass], a
- call ClearScreen
- callba Function4d354
- ld hl, Options
- ld a, [hl]
- push af
- and $20
- or $3
- ld [hl], a
- ld hl, wd26b
- ld de, OTName
- ld bc, NAME_LENGTH
- call CopyBytes
- call Function222a
- ld a, [wc2d7]
- push af
- ld a, $1
- ld [wc2d7], a
- ld a, [rIE]
- push af
- ld a, [rIF]
- push af
- xor a
- ld [rIF], a
- ld a, [rIE]
- set 1, a
- ld [rIE], a
- pop af
- ld [rIF], a
- predef StartBattle
- ld a, [rIF]
- ld h, a
- xor a
- ld [rIF], a
- pop af
- ld [rIE], a
- ld a, h
- ld [rIF], a
- pop af
- ld [wc2d7], a
- pop af
- ld [Options], a
- callba LoadPokemonData
- jp Function28b22
-
-.asm_283a9
- ld de, MUSIC_ROUTE_30
- call PlayMusic
- jp Function287e3
-; 283b2
-
-Function283b2: ; 283b2
- ld de, UnknownText_0x283ed
- ld b, $a
-.asm_283b7
- call DelayFrame
- call Function908
- dec b
- jr nz, .asm_283b7
- xor a
- ld [hld], a
- ld [hl], a
- ld [hVBlank], a
- push de
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- push de
- ld d, h
- ld e, l
- callba Function4d35b
- pop de
- pop hl
- bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
- call FadeToWhite
- call ClearScreen
- ld b, $8
- call GetSGBLayout
- call Function3200
- ret
-; 283ed
-
-UnknownText_0x283ed: ; 0x283ed
- ; Too much time has elapsed. Please try again.
- text_jump UnknownText_0x1c4183
- db "@"
-; 0x283f2
-
-Function283f2: ; 283f2
- ld a, $1
- ld [$ffcc], a
-.asm_283f6
- ld a, [hl]
- ld [hSerialSend], a
- call Function78a
- push bc
- ld b, a
- inc hl
- ld a, $30
-.asm_28401
- dec a
- jr nz, .asm_28401
- ld a, [$ffcc]
- and a
- ld a, b
- pop bc
- jr z, .asm_28411
- dec hl
- xor a
- ld [$ffcc], a
- jr .asm_283f6
-
-.asm_28411
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_283f6
- ret
-; 28419
-
-String28419: ; 28419
- db "PLEASE WAIT!@"
-; 28426
-
-Function28426: ; 28426
- ld hl, OverworldMap
- ld bc, $0514
-.asm_2842c
- xor a
- ld [hli], a
- dec bc
- ld a, b
- or c
- jr nz, .asm_2842c
- ret
-; 28434
-
-Function28434: ; 28434
- ld hl, wd1f3
- ld a, $fd
- ld b, $7
-.asm_2843b
- ld [hli], a
- dec b
- jr nz, .asm_2843b
- ld b, $a
-.asm_28441
- call Random
- cp $fd
- jr nc, .asm_28441
- ld [hli], a
- dec b
- jr nz, .asm_28441
- ld hl, wc608
- ld a, $fd
-rept 3
- ld [hli], a
-endr
- ld b, $c8
- xor a
-.asm_28457
- ld [hli], a
- dec b
- jr nz, .asm_28457
- ld hl, wc818
- ld de, wc608 + 10
- ld bc, 0
-.asm_28464
- inc c
- ld a, c
- cp $fd
- jr z, .asm_2848c
- ld a, b
- dec a
- jr nz, .asm_2847f
- push bc
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- ld b, $d
- jr z, .asm_2847a
- ld b, $27
-
-.asm_2847a
- ld a, c
- cp b
- pop bc
- jr z, .asm_28495
-
-.asm_2847f
- inc hl
- ld a, [hl]
- cp $fe
- jr nz, .asm_28464
- ld a, c
- ld [de], a
- inc de
- ld [hl], $ff
- jr .asm_28464
-
-.asm_2848c
- ld a, $ff
- ld [de], a
- inc de
- ld bc, $100
- jr .asm_28464
-
-.asm_28495
- ld a, $ff
- ld [de], a
- ret
-; 28499
-
-Function28499: ; 28499
- ld de, OverworldMap
- ld a, $fd
- ld b, $6
-.asm_284a0
- ld [de], a
- inc de
- dec b
- jr nz, .asm_284a0
- ld hl, PlayerName
- ld bc, $000b
- call CopyBytes
- push de
- ld hl, PartyCount
- ld a, [hli]
- ld [de], a
- inc de
-.asm_284b5
- ld a, [hli]
- cp $ff
- jr z, .asm_284ce
- ld [wd265], a
- push hl
- push de
- callab ConvertMon_2to1
- pop de
- pop hl
- ld a, [wd265]
- ld [de], a
- inc de
- jr .asm_284b5
-
-.asm_284ce
- ld [de], a
- pop de
- ld hl, $0008
- add hl, de
- ld d, h
- ld e, l
- ld hl, PartyMon1Species
- ld c, $6
-.asm_284db
- push bc
- call Function284f6
- ld bc, PartyMon2 - PartyMon1
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_284db
- ld hl, PartyMonOT
- call .asm_284f0
- ld hl, PartyMonNicknames
-.asm_284f0
- ld bc, $0042
- jp CopyBytes
-; 284f6
-
-Function284f6: ; 284f6
- ld b, h
- ld c, l
- push de
- push bc
- ld a, [hl]
- ld [wd265], a
- callab ConvertMon_2to1
- pop bc
- pop de
- ld a, [wd265]
- ld [de], a
- inc de
- ld hl, $0022
- add hl, bc
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- inc de
- xor a
- ld [de], a
- inc de
- ld hl, $0020
- add hl, bc
- ld a, [hl]
- ld [de], a
- inc de
- ld a, [bc]
- cp $51
- jr z, .asm_28528
- cp $52
- jr nz, .asm_28530
-
-.asm_28528
- ld a, $17
- ld [de], a
- inc de
- ld [de], a
- inc de
- jr .asm_28544
-
-.asm_28530
- push bc
- dec a
- ld hl, BaseData + 7 ; type
- ld bc, BaseData1 - BaseData0
- call AddNTimes
- ld bc, 2
- ld a, BANK(BaseData)
- call FarCopyBytes
- pop bc
-
-.asm_28544
- push bc
- ld hl, $0001
- add hl, bc
- ld bc, $1a
- call CopyBytes
- pop bc
-
- ld hl, $001f
- add hl, bc
- ld a, [hl]
- ld [de], a
- ld [CurPartyLevel], a
- inc de
-
- push bc
- ld hl, $0024
- add hl, bc
- ld bc, $0008
- call CopyBytes
- pop bc
-
- push de
- push bc
-
- ld a, [bc]
- dec a
- push bc
- ld b, 0
- ld c, a
- ld hl, KantoMonSpecials
- add hl, bc
- ld a, BANK(KantoMonSpecials)
- call GetFarByte
- ld [BaseSpecialAttack], a
- pop bc
-
- ld hl, $000a
- add hl, bc
- ld c, $5
- ld b, $1
- predef Functione17b
-
- pop bc
- pop de
-
- ld a, [$ffb5]
- ld [de], a
- inc de
- ld a, [$ffb6]
- ld [de], a
- inc de
- ld h, b
- ld l, c
- ret
-; 28595
-
-Function28595: ; 28595
- ld de, OverworldMap
- ld a, $fd
- ld b, $6
-.loop1
- ld [de], a
- inc de
- dec b
- jr nz, .loop1
- ld hl, PlayerName
- ld bc, $000b
- call CopyBytes
- ld hl, PartyCount
- ld bc, $0008
- call CopyBytes
- ld hl, PlayerID
- ld bc, $0002
- call CopyBytes
- ld hl, PartyMon1Species
- ld bc, $0120
- call CopyBytes
- ld hl, PartyMonOT
- ld bc, $0042
- call CopyBytes
- ld hl, PartyMonNicknames
- ld bc, $0042
- call CopyBytes
- ld a, [wLinkMode]
- cp LINK_TRADECENTER
- ret nz
- ld de, wc9f4
- ld a, $20
- call Function28682
- ld a, BANK(s0_a600)
- call GetSRAMBank
- ld hl, s0_a600
- ld b, $6
-.loop2
- push bc
- ld bc, $0021
- call CopyBytes
- ld bc, $000e
- add hl, bc
- pop bc
- dec b
- jr nz, .loop2
- ld hl, s0_a600
- ld b, $6
-.loop3
- push bc
- ld bc, $0021
- add hl, bc
- ld bc, $000e
- call CopyBytes
- pop bc
- dec b
- jr nz, .loop3
- ld b, $6
- ld de, s0_a600
- ld hl, wc9f9
-.loop4
- push bc
- push hl
- push de
- push hl
- callba Function1de5c8
- pop de
- ld a, c
- or a
- jr z, .next
- sub $3
- jr nc, .skip
- callba Function1df1e6
- jr .next
-
-.skip
- cp $2
- jr nc, .next
- callba Function1df220
-
-.next
- pop de
- ld hl, $002f
- add hl, de
- ld d, h
- ld e, l
- pop hl
- ld bc, $0021
- add hl, bc
- pop bc
- dec b
- jr nz, .loop4
- call CloseSRAM
- ld hl, wc9f9
- ld bc, $00c6
-.loop5
- ld a, [hl]
- cp $fe
- jr nz, .skip2
- ld [hl], $21
-
-.skip2
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .loop5
- ld hl, wcabf
- ld de, wcb13
- ld b, $54
- ld c, $0
-.loop6
- inc c
- ld a, [hl]
- cp $fe
- jr nz, .skip3
- ld [hl], $ff
- ld a, c
- ld [de], a
- inc de
-
-.skip3
- inc hl
- dec b
- jr nz, .loop6
- ld a, $ff
- ld [de], a
- ret
-; 28682
-
-Function28682: ; 28682
- ld c, $5
-.loop
- ld [de], a
- inc de
- dec c
- jr nz, .loop
- ret
-; 2868a
-
-Function2868a: ; 2868a
- push hl
- ld d, h
- ld e, l
- ld bc, wcbea
- ld hl, wcbe8
- ld a, c
- ld [hli], a
- ld [hl], b
- ld hl, OTPartyMon1Species
- ld c, $6
-.loop
- push bc
- call Function286ba
- pop bc
- dec c
- jr nz, .loop
- pop hl
- ld bc, $0108
- add hl, bc
- ld de, OTPartyMonOT
- ld bc, $0042
- call CopyBytes
- ld de, OTPartyMonNicknames
- ld bc, $0042
- jp CopyBytes
-; 286ba
-
-Function286ba: ; 286ba
- ld b, h
- ld c, l
- ld a, [de]
- inc de
- push bc
- push de
- ld [wd265], a
- callab ConvertMon_1to2
- pop de
- pop bc
- ld a, [wd265]
- ld [bc], a
- ld [CurSpecies], a
- ld hl, $0022
- add hl, bc
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- inc de
- ld [hl], a
- inc de
- ld hl, $0020
- add hl, bc
- ld a, [de]
- inc de
- ld [hl], a
- ld hl, wcbe8
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hli], a
- inc de
- ld a, l
- ld [wcbe8], a
- ld a, h
- ld [wcbe9], a
- push bc
- ld hl, $0001
- add hl, bc
- push hl
- ld h, d
- ld l, e
- pop de
- push bc
- ld a, [hli]
- ld b, a
- call Function28771
- ld a, b
- ld [de], a
- inc de
- pop bc
- ld bc, $0019
- call CopyBytes
- pop bc
- ld d, h
- ld e, l
- ld hl, $001f
- add hl, bc
- ld a, [de]
- inc de
- ld [hl], a
- ld [CurPartyLevel], a
- push bc
- ld hl, $0024
- add hl, bc
- push hl
- ld h, d
- ld l, e
- pop de
- ld bc, $0008
- call CopyBytes
- pop bc
- call GetBaseData
- push de
- push bc
- ld d, h
- ld e, l
- ld hl, $000a
- add hl, bc
- ld c, $5
- ld b, $1
- predef Functione17b
- pop bc
- pop hl
- ld a, [$ffb5]
- ld [hli], a
- ld a, [$ffb6]
- ld [hli], a
- push hl
- push bc
- ld hl, $000a
- add hl, bc
- ld c, $6
- ld b, $1
- predef Functione17b
- pop bc
- pop hl
- ld a, [$ffb5]
- ld [hli], a
- ld a, [$ffb6]
- ld [hli], a
- push hl
- ld hl, $001b
- add hl, bc
- ld a, $46
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- pop hl
-rept 2
- inc de
-endr
- ret
-; 28771
-
-Function28771: ; 28771
- ld a, b
- and a
- ret z
- push hl
- ld hl, .TimeCapsuleAlt
-.loop
- ld a, [hli]
- and a
- jr z, .end
- cp b
- jr z, .found
- inc hl
- jr .loop
-
-.found
- ld b, [hl]
-
-.end
- pop hl
- ret
-
-.TimeCapsuleAlt ; 28785
-; Pokémon traded from RBY do not have held items, so GSC usually interprets the
-; catch rate as an item. However, if the catch rate appears in this table, the
-; item associated with the table entry is used instead.
- db ITEM_19, LEFTOVERS
- db ITEM_2D, BITTER_BERRY
- db ITEM_32, GOLD_BERRY
- db ITEM_5A, BERRY
- db ITEM_64, BERRY
- db ITEM_78, BERRY
- db ITEM_87, BERRY
- db ITEM_BE, BERRY
- db ITEM_C3, BERRY
- db ITEM_DC, BERRY
- db HM_08, BERRY
- db $ff, BERRY
- db $00
-; 2879e
-
-Function2879e: ; 2879e
-.asm_2879e
- ld a, [hli]
- cp $fe
- jr z, .asm_2879e
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .asm_2879e
- ret
-; 287ab
-
-Function287ab: ; 287ab
- ld a, [$ffcb]
- cp $2
- ret z
- ld hl, EnemyMonSpecies
- call Function287d8
- ld de, LinkBattleRNs
- ld c, $a
-.asm_287bb
- ld a, [hli]
- cp $fe
- jr z, .asm_287bb
- cp $fd
- jr z, .asm_287bb
- ld [de], a
- inc de
- dec c
- jr nz, .asm_287bb
- ret
-; 287ca
-
-Function287ca: ; 287ca
-.asm_287ca
- ld a, [hli]
- and a
- jr z, .asm_287ca
- cp $fd
- jr z, .asm_287ca
- cp $fe
- jr z, .asm_287ca
- dec hl
- ret
-; 287d8
-
-Function287d8: ; 287d8
-.asm_287d8
- ld a, [hli]
- cp $fd
- jr z, .asm_287d8
- cp $fe
- jr z, .asm_287d8
- dec hl
- ret
-; 287e3
-
-Function287e3: ; 287e3
- call ClearScreen
- call Function28ef8
- callba Function16d673
- xor a
- ld hl, wcf51
-rept 3
- ld [hli], a
-endr
- ld [hl], a
- ld a, $1
- ld [wcfa9], a
- inc a
- ld [wcf56], a
- jp Function2888b
-; 28803
-
-Function28803: ; 28803
- ld a, $1
- ld [MonType], a
- ld a, $c1
- ld [wcfa8], a
- ld a, [OTPartyCount]
- ld [wcfa3], a
- ld a, $1
- ld [wcfa4], a
- ld a, $9
- ld [wcfa1], a
- ld a, $6
- ld [wcfa2], a
- ld a, $1
- ld [wcfaa], a
- ld a, $10
- ld [wcfa7], a
- ld a, $20
- ld [wcfa5], a
- xor a
- ld [wcfa6], a
-
-Function28835: ; 28835
- callba Function16d70c
- ld a, d
- and a
- jp z, Function2891c
- bit 0, a
- jr z, .asm_2885b
- ld a, $1
- ld [wd263], a
- callab Function50db9
- ld hl, OTPartyMon1Species
- callba Function4d319
- jp Function2891c
-
-.asm_2885b
- bit 6, a
- jr z, .asm_28883
- ld a, [wcfa9]
- ld b, a
- ld a, [OTPartyCount]
- cp b
- jp nz, Function2891c
- xor a
- ld [MonType], a
- call Function1bf7
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], $7f
- pop bc
- pop hl
- ld a, [PartyCount]
- ld [wcfa9], a
- jr Function2888b
-
-.asm_28883
- bit 7, a
- jp z, Function2891c
- jp Function28ac9
-; 2888b
-
-Function2888b: ; 2888b
- callba Function49856
- xor a
- ld [MonType], a
- ld a, $c1
- ld [wcfa8], a
- ld a, [PartyCount]
- ld [wcfa3], a
- ld a, $1
- ld [wcfa4], a
- ld a, $1
- ld [wcfa1], a
- ld a, $6
- ld [wcfa2], a
- ld a, $1
- ld [wcfaa], a
- ld a, $10
- ld [wcfa7], a
- ld a, $20
- ld [wcfa5], a
- xor a
- ld [wcfa6], a
- call Function3200
-
-Function288c5: ; 288c5
- callba Function16d70c
- ld a, d
- and a
- jr nz, .asm_288d2
- jp Function2891c
-
-.asm_288d2
- bit 0, a
- jr z, .asm_288d9
- jp Function28926
-
-.asm_288d9
- bit 7, a
- jr z, .asm_288fe
- ld a, [wcfa9]
- dec a
- jp nz, Function2891c
- ld a, $1
- ld [MonType], a
- call Function1bf7
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], $7f
- pop bc
- pop hl
- ld a, $1
- ld [wcfa9], a
- jp Function28803
-
-.asm_288fe
- bit 6, a
- jr z, Function2891c
- ld a, [wcfa9]
- ld b, a
- ld a, [PartyCount]
- cp b
- jr nz, Function2891c
- call Function1bf7
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], $7f
- pop bc
- pop hl
- jp Function28ade
-; 2891c
-
-Function2891c: ; 2891c
- ld a, [MonType]
- and a
- jp z, Function288c5
- jp Function28835
-; 28926
-
-Function28926: ; 28926
- call LoadTileMapToTempTileMap
- ld a, [wcfa9]
- push af
- hlcoord 0, 15
- ld b, $1
- ld c, $12
- call Function28eef
- hlcoord 2, 16
- ld de, String28ab4
- call PlaceString
- callba Function4d354
-
-.asm_28946
- ld a, $7f
- ldcoord_a 11, 16
- ld a, $13
- ld [wcfa8], a
- ld a, $1
- ld [wcfa3], a
- ld a, $1
- ld [wcfa4], a
- ld a, $10
- ld [wcfa1], a
- ld a, $1
- ld [wcfa2], a
- ld a, $1
- ld [wcfa9], a
- ld [wcfaa], a
- ld a, $20
- ld [wcfa7], a
- xor a
- ld [wcfa5], a
- ld [wcfa6], a
- call Function1bd3
- bit 4, a
- jr nz, .asm_2898d
- bit 1, a
- jr z, .asm_289cd
-.asm_28983
- pop af
- ld [wcfa9], a
- call Call_LoadTempTileMapToTileMap
- jp Function2888b
-
-.asm_2898d
- ld a, $7f
- ldcoord_a 1, 16
- ld a, $23
- ld [wcfa8], a
- ld a, $1
- ld [wcfa3], a
- ld a, $1
- ld [wcfa4], a
- ld a, $10
- ld [wcfa1], a
- ld a, $b
- ld [wcfa2], a
- ld a, $1
- ld [wcfa9], a
- ld [wcfaa], a
- ld a, $20
- ld [wcfa7], a
- xor a
- ld [wcfa5], a
- ld [wcfa6], a
- call Function1bd3
- bit 5, a
- jp nz, .asm_28946
- bit 1, a
- jr nz, .asm_28983
- jr .asm_289fe
-
-.asm_289cd
- pop af
- ld [wcfa9], a
- ld a, $4
- ld [wd263], a
- callab Function50db9
- callba Function4d319
- call Call_LoadTempTileMapToTileMap
- hlcoord 6, 1
- ld bc, $0601
- ld a, $7f
- call Function28b77
- hlcoord 17, 1
- ld bc, $0601
- ld a, $7f
- call Function28b77
- jp Function2888b
-
-.asm_289fe
- call Function1bee
- pop af
- ld [wcfa9], a
- dec a
- ld [DefaultFlypoint], a
- ld [wcf56], a
- callba Function16d6ce
- ld a, [wcf51]
- cp $f
- jp z, Function287e3
- ld [wd003], a
- call Function28b68
- ld c, $64
- call DelayFrames
- callba Functionfb57e
- jr c, .asm_28a58
- callba Functionfb5dd
- jp nc, Function28b87
- xor a
- ld [wcf57], a
- ld [wcf52], a
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function28eef
- callba Function4d354
- ld hl, UnknownText_0x28aaf
- bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
- jr .asm_28a89
-
-.asm_28a58
- xor a
- ld [wcf57], a
- ld [wcf52], a
- ld a, [wd003]
- ld hl, OTPartySpecies
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function28eef
- callba Function4d354
- ld hl, UnknownText_0x28ac4
- bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
-
-.asm_28a89
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function28eef
- hlcoord 1, 14
- ld de, String28ece
- call PlaceString
- ld a, $1
- ld [wcf56], a
- callba Function16d6ce
- ld c, $64
- call DelayFrames
- jp Function287e3
-; 28aaf
-
-
-UnknownText_0x28aaf: ; 0x28aaf
- ; If you trade that #MON, you won't be able to battle.
- text_jump UnknownText_0x1c41b1
- db "@"
-; 0x28ab4
-
-String28ab4: ; 28ab4
- db "STATS TRADE@"
-
-UnknownText_0x28ac4: ; 0x28ac4
- ; Your friend's @ appears to be abnormal!
- text_jump UnknownText_0x1c41e6
- db "@"
-; 0x28ac9
-
-
-Function28ac9: ; 28ac9
- ld a, [wcfa9]
- cp $1
- jp nz, Function2891c
- call Function1bf7
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], $7f
- pop bc
- pop hl
-
-Function28ade: ; 28ade
-.asm_28ade
- ld a, $ed
- ldcoord_a 9, 17
-.asm_28ae3
- call JoyTextDelay
- ld a, [hJoyLast]
- and a
- jr z, .asm_28ae3
- bit 0, a
- jr nz, .asm_28b0b
- push af
- ld a, " "
- ldcoord_a 9, 17
- pop af
- bit 6, a
- jr z, .asm_28b03
- ld a, [OTPartyCount]
- ld [wcfa9], a
- jp Function28803
-
-.asm_28b03
- ld a, $1
- ld [wcfa9], a
- jp Function2888b
-
-.asm_28b0b
- ld a, $ec
- ldcoord_a 9, 17
- ld a, $f
- ld [wcf56], a
- callba Function16d6ce
- ld a, [wcf51]
- cp $f
- jr nz, .asm_28ade
-
-Function28b22: ; 28b22
- call FadeToWhite
- call ClearScreen
- ld b, $8
- call GetSGBLayout
- call Function3200
- xor a
- ld [wcfbb], a
- xor a
- ld [rSB], a
- ld [hSerialSend], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ret
-; 28b42
-
-Function28b42: ; 28b42
- hlcoord 0, 16
- ld a, "┘"
- ld bc, 2 * SCREEN_WIDTH
- call ByteFill
- hlcoord 1, 16
- ld a, " "
- ld bc, SCREEN_WIDTH - 2
- call ByteFill
- hlcoord 2, 16
- ld de, String_28b61
- jp PlaceString
-; 28b61
-
-String_28b61: ; 28b61
- db "CANCEL@"
-; 28b68
-
-Function28b68: ; 28b68
- ld a, [wcf51]
- hlcoord 6, 9
- ld bc, SCREEN_WIDTH
- call AddNTimes
- ld [hl], $ec
- ret
-; 28b77
-
-Function28b77: ; 28b77
-.asm_28b77
- push bc
- push hl
-.asm_28b79
- ld [hli], a
- dec c
- jr nz, .asm_28b79
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_28b77
- ret
-; 28b87
-
-Function28b87: ; 28b87
- xor a
- ld [wcf57], a
- ld [wcf52], a
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function28eef
- callba Function4d354
- ld a, [DefaultFlypoint]
- ld hl, PartySpecies
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld de, wd004
- ld bc, $000b
- call CopyBytes
- ld a, [wd003]
- ld hl, OTPartySpecies
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ld hl, UnknownText_0x28eb8
- bccoord 1, 14
- call PlaceWholeStringInBoxAtOnce
- call LoadMenuDataHeader_0x1d75
- hlcoord 10, 7
- ld b, $3
- ld c, $7
- call Function28eef
- ld de, String28eab
- hlcoord 12, 8
- call PlaceString
- ld a, $8
- ld [wcfa1], a
- ld a, $b
- ld [wcfa2], a
- ld a, $1
- ld [wcfa4], a
- ld a, $2
- ld [wcfa3], a
- xor a
- ld [wcfa5], a
- ld [wcfa6], a
- ld a, $20
- ld [wcfa7], a
- ld a, $3
- ld [wcfa8], a
- ld a, $1
- ld [wcfa9], a
- ld [wcfaa], a
- callba Function4d354
- call Function1bd3
- push af
- call Call_ExitMenu
- call Function3200
- pop af
- bit 1, a
- jr nz, .asm_28c33
- ld a, [wcfa9]
- dec a
- jr z, .asm_28c54
-
-.asm_28c33
- ld a, $1
- ld [wcf56], a
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function28eef
- hlcoord 1, 14
- ld de, String28ece
- call PlaceString
- callba Function16d6ce
- jp Function28ea3
-
-.asm_28c54
- ld a, $2
- ld [wcf56], a
- callba Function16d6ce
- ld a, [wcf51]
- dec a
- jr nz, .asm_28c7b
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function28eef
- hlcoord 1, 14
- ld de, String28ece
- call PlaceString
- jp Function28ea3
-
-.asm_28c7b
- ld hl, s0_a600
- ld a, [DefaultFlypoint]
- ld bc, $002f
- call AddNTimes
- ld a, BANK(s0_a600)
- call GetSRAMBank
- ld d, h
- ld e, l
- ld bc, $002f
- add hl, bc
- ld a, [DefaultFlypoint]
- ld c, a
-.asm_28c96
- inc c
- ld a, c
- cp $6
- jr z, .asm_28ca6
- push bc
- ld bc, $002f
- call CopyBytes
- pop bc
- jr .asm_28c96
-
-.asm_28ca6
- ld hl, s0_a600
- ld a, [PartyCount]
- dec a
- ld bc, $002f
- call AddNTimes
- push hl
- ld hl, wc9f4
- ld a, [wd003]
- ld bc, $002f
- call AddNTimes
- pop de
- ld bc, $002f
- call CopyBytes
- call CloseSRAM
- ld hl, PlayerName
- ld de, wc6e7
- ld bc, $000b
- call CopyBytes
- ld a, [DefaultFlypoint]
- ld hl, PartySpecies
- ld b, $0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wc6d0], a
- push af
- ld a, [DefaultFlypoint]
- ld hl, PartyMonOT
- call SkipNames
- ld de, wc6f2
- ld bc, $000b
- call CopyBytes
- ld hl, PartyMon1ID
- ld a, [DefaultFlypoint]
- call GetPartyLocation
- ld a, [hli]
- ld [PlayerScreens], a
- ld a, [hl]
- ld [EnemyScreens], a
- ld hl, PartyMon1DVs
- ld a, [DefaultFlypoint]
- call GetPartyLocation
- ld a, [hli]
- ld [wc6fd], a
- ld a, [hl]
- ld [wc6fe], a
- ld a, [DefaultFlypoint]
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wc701], a
- ld hl, wd26b
- ld de, wc719
- ld bc, $000b
- call CopyBytes
- ld a, [wd003]
- ld hl, OTPartySpecies
- ld b, $0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wc702], a
- ld a, [wd003]
- ld hl, OTPartyMonOT
- call SkipNames
- ld de, wc724
- ld bc, $000b
- call CopyBytes
- ld hl, OTPartyMon1ID
- ld a, [wd003]
- call GetPartyLocation
- ld a, [hli]
- ld [wc731], a
- ld a, [hl]
- ld [wc732], a
- ld hl, OTPartyMon1DVs
- ld a, [wd003]
- call GetPartyLocation
- ld a, [hli]
- ld [wc72f], a
- ld a, [hl]
- ld [wc730], a
- ld a, [wd003]
- ld hl, OTPartyMon1Species
- call GetPartyLocation
- ld b, h
- ld c, l
- callba GetCaughtGender
- ld a, c
- ld [wc733], a
- ld a, [DefaultFlypoint]
- ld [CurPartyMon], a
- ld hl, PartySpecies
- ld b, $0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [DefaultFlypoint], a
- xor a
- ld [wd10b], a
- callab Functione039
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- ld a, $1
- ld [wd1e9], a
- ld a, [wd003]
- push af
- ld hl, OTPartySpecies
- ld b, $0
- ld c, a
- add hl, bc
- ld a, [hl]
- ld [wd003], a
- ld c, $64
- call DelayFrames
- call ClearTileMap
- call LoadFontsBattleExtra
- ld b, $8
- call GetSGBLayout
- ld a, [$ffcb]
- cp $1
- jr z, .asm_28de4
- predef Function28f24
- jr .asm_28de9
-
-.asm_28de4
- predef Function28f63
-
-.asm_28de9
- pop af
- ld c, a
- ld [CurPartyMon], a
- ld hl, OTPartySpecies
- ld d, $0
- ld e, a
- add hl, de
- ld a, [hl]
- ld [CurPartySpecies], a
- ld hl, OTPartyMon1Species
- ld a, c
- call GetPartyLocation
- ld de, TempMonSpecies
- ld bc, PartyMon2 - PartyMon1
- call CopyBytes
- predef Functionda96
- ld a, [PartyCount]
- dec a
- ld [CurPartyMon], a
- callab Function421d8
- call ClearScreen
- call Function28ef8
- call Function28eff
- callba Function4d354
- ld b, $1
- pop af
- ld c, a
- cp MEW
- jr z, .asm_28e49
- ld a, [CurPartySpecies]
- cp MEW
- jr z, .asm_28e49
- ld b, $2
- ld a, c
- cp CELEBI
- jr z, .asm_28e49
- ld a, [CurPartySpecies]
- cp CELEBI
- jr z, .asm_28e49
- ld b, $0
-
-.asm_28e49
- ld a, b
- ld [wcf56], a
- push bc
- call Function862
- pop bc
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr z, .asm_28e63
- ld a, b
- and a
- jr z, .asm_28e63
- ld a, [wcf52]
- cp b
- jr nz, .asm_28e49
-
-.asm_28e63
- callba Function14a58
- callba MobileFn_1060af
- callba Function106187
- ld c, $28
- call DelayFrames
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call Function28eef
- hlcoord 1, 14
- ld de, String28ebd
- call PlaceString
- callba Function4d354
- ld c, $32
- call DelayFrames
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jp z, Function2805d
- jp Function28177
-; 28ea3
-
-Function28ea3: ; 28ea3
- ld c, 100
- call DelayFrames
- jp Function287e3
-; 28eab
-
-String28eab: ; 28eab
- db "TRADE"
- next "CANCEL@"
-
-UnknownText_0x28eb8: ; 0x28eb8
- ; Trade @ for @ ?
- text_jump UnknownText_0x1c4212
- db "@"
-; 0x28ebd
-
-String28ebd: ; 28ebd
- db "Trade completed!@"
-
-String28ece: ; 28ece
- db "Too bad! The trade"
- next "was canceled!@"
-
-
-Function28eef: ; 28eef
- ld d, h
- ld e, l
- callba Function16d6ca
- ret
-; 28ef8
-
-Function28ef8: ; 28ef8
- callba Function16d696
- ret
-; 28eff
-
-Function28eff: ; 28eff
- callba Function16d6a7
- call SetPalettes
- ret
-; 28f09
-
-Function28f09: ; 28f09
- hlcoord 0, 0
- ld b, 6
- ld c, 18
- call Function28eef
- hlcoord 0, 8
- ld b, 6
- ld c, 18
- call Function28eef
- callba Functionfb60d
- ret
-; 28f24
-
-Function28f24: ; 28f24
- xor a
- ld [wcf66], a
- ld hl, wc6e7
- ld de, wc719
- call Function297ff
- ld hl, wc6d0
- ld de, wc702
- call Function29814
- ld de, .data_28f3f
- jr Function28fa1
-
-.data_28f3f
- db $1b
- db $1
- db $1c
- db $21
- db $2d
- db $27
- db $23
- db $3
- db $25
- db $28
- db $25
- db $1e
- db $29
- db $6
- db $16
- db $1f
- db $19
- db $17
- db $22
- db $1f
- db $2a
- db $e
- db $3
- db $24
- db $5
- db $25
- db $2
- db $27
- db $25
- db $1d
- db $2c
- db $2e
- db $1e
- db $18
- db $1f
- db $2b
-
-Function28f63: ; 28f63
- xor a
- ld [wcf66], a
- ld hl, wc719
- ld de, wc6e7
- call Function297ff
- ld hl, wc702
- ld de, wc6d0
- call Function29814
- ld de, .data_28f7e
- jr Function28fa1
-
-.data_28f7e
- db $1a
- db $17
- db $22
- db $1f
- db $2a
- db $6
- db $3
- db $24
- db $5
- db $25
- db $2
- db $27
- db $25
- db $1d
- db $2c
- db $2f
- db $1e
- db $18
- db $1f
- db $1b
- db $1
- db $1c
- db $22
- db $27
- db $23
- db $3
- db $25
- db $28
- db $25
- db $1e
- db $29
- db $e
- db $16
- db $1f
- db $2b
-
-Function28fa1: ; 28fa1
- ld hl, BattleEnded
- ld [hl], e
- inc hl
- ld [hl], d
- ld a, [$ffde]
- push af
- xor a
- ld [$ffde], a
- ld hl, VramState
- ld a, [hl]
- push af
- res 0, [hl]
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- call Function28fdb
- ld a, [wcf66]
- and a
- jr nz, .asm_28fca
- ld de, MUSIC_EVOLUTION
- call PlayMusic2
-.asm_28fca
- call Function29082
- jr nc, .asm_28fca
- pop af
- ld [Options], a
- pop af
- ld [VramState], a
- pop af
- ld [$ffde], a
- ret
-; 28fdb
-
-Function28fdb: ; 28fdb
- xor a
- ld [wJumptableIndex], a
- call WhiteBGMap
- call ClearSprites
- call ClearTileMap
- call DisableLCD
- call LoadFontsBattleExtra
- callab Function8cf53
- ld a, [hCGB]
- and a
- jr z, .asm_2900b
- ld a, $1
- ld [rVBK], a
- ld hl, VTiles0
- ld bc, sScratch - VTiles0
- xor a
- call ByteFill
- ld a, $0
- ld [rVBK], a
-
-.asm_2900b
- ld hl, VBGMap0
- ld bc, sScratch - VBGMap0
- ld a, " "
- call ByteFill
- ld hl, TradeGameBoyLZ
- ld de, VTiles2 tile $31
- call Decompress
- ld hl, TradeArrowGFX
- ld de, VTiles1 tile $6d
- ld bc, $0010
- ld a, BANK(TradeArrowGFX)
- call FarCopyBytes
- ld hl, TradeArrowGFX + $10
- ld de, VTiles1 tile $6e
- ld bc, $0010
- ld a, BANK(TradeArrowGFX)
- call FarCopyBytes
- xor a
- ld [hSCX], a
- ld [hSCY], a
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- callba Function4d7fd
- call EnableLCD
- call Function2982b
- ld a, [wc6d0]
- ld hl, wc6fd
- ld de, VTiles0
- call Function29491
- ld a, [wc702]
- ld hl, wc72f
- ld de, VTiles0 tile $31
- call Function29491
- ld a, [wc6d0]
- ld de, wc6d1
- call Function294a9
- ld a, [wc702]
- ld de, wc703
- call Function294a9
- call Function297ed
- ret
-; 29082
-
-Function29082: ; 29082
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_2909b
- call Function290a0
- callab Function8cf69
- ld hl, wcf65
- inc [hl]
- call DelayFrame
- and a
- ret
-
-.asm_2909b
- call Functione51
- scf
- ret
-; 290a0
-
-Function290a0: ; 290a0
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, JumpTable290af
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 290af
-
-JumpTable290af: ; 290af
- dw Function29114
- dw Function2942e
- dw Function29461
- dw Function29348
- dw Function2937e
- dw Function29391
- dw Function29129
- dw Function291af
- dw Function291c4
- dw Function291d9
- dw Function2925d
- dw Function29220
- dw Function2925d
- dw Function29229
- dw Function2913c
- dw Function2925d
- dw Function291e8
- dw Function291fd
- dw Function29211
- dw Function29220
- dw Function2925d
- dw Function29229
- dw Function29701
- dw Function2973c
- dw Function2975c
- dw Function2977f
- dw Function297a4
- dw Function293a6
- dw Function293b6
- dw Function293d2
- dw Function293de
- dw Function293ea
- dw Function2940c
- dw Function294e7
- dw Function294f0
- dw Function2961b
- dw Function2962c
- dw Function29879
- dw Function29886
- dw Function29649
- dw Function29660
- dw Function2926d
- dw Function29277
- dw Function29123
- dw Function29487
- dw Function294f9
- dw Function29502
- dw Function2950c
-; 2910f
-
-Function2910f: ; 2910f
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 29114
-
-Function29114: ; 29114
- ld hl, BattleEnded
- ld e, [hl]
- inc hl
- ld d, [hl]
- ld a, [de]
- ld [wJumptableIndex], a
- inc de
- ld [hl], d
- dec hl
- ld [hl], e
- ret
-; 29123
-
-Function29123: ; 29123
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; 29129
-
-Function29129: ; 29129
- ld a, $ed
- call Function292f6
- ld a, [wc74c]
- ld [wd265], a
- xor a
- ld de, $2c58
- ld b, $0
- jr Function2914e
-
-Function2913c: ; 2913c
- ld a, $ee
- call Function292f6
- ld a, [wc74d]
- ld [wd265], a
- ld a, $2
- lb de, $4c, $94
- ld b, $4
-
-Function2914e: ; 2914e
- push bc
- push de
- push bc
- push de
- push af
- call DisableLCD
- callab Function8cf53
- ld hl, $9874
- ld bc, $000c
- ld a, $60
- call ByteFill
- pop af
- call Function29281
- xor a
- ld [hSCX], a
- ld a, $7
- ld [hWX], a
- ld a, $70
- ld [hWY], a
- call EnableLCD
- call Function2985a
- pop de
- ld a, $11
- call Function3b2a
- ld hl, $000b
- add hl, bc
- pop bc
- ld [hl], b
- pop de
- ld a, $12
- call Function3b2a
- ld hl, $000b
- add hl, bc
- pop bc
- ld [hl], b
- call WaitBGMap
- ld b, $1b
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $d0
- call Functioncf8
- call Function2910f
- ld a, $5c
- ld [wcf64], a
- ret
-; 291af
-
-Function291af: ; 291af
- call Function2981d
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- cp $50
- ret nz
- ld a, $1
- call Function29281
- call Function2910f
- ret
-; 291c4
-
-Function291c4: ; 291c4
- call Function2981d
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- cp $a0
- ret nz
- ld a, $2
- call Function29281
- call Function2910f
- ret
-; 291d9
-
-Function291d9: ; 291d9
- call Function2981d
- ld a, [hSCX]
- add $2
- ld [hSCX], a
- and a
- ret nz
- call Function2910f
- ret
-; 291e8
-
-Function291e8: ; 291e8
- call Function2981d
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- cp $b0
- ret nz
- ld a, $1
- call Function29281
- call Function2910f
- ret
-; 291fd
-
-Function291fd: ; 291fd
- call Function2981d
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- cp $60
- ret nz
- xor a
- call Function29281
- call Function2910f
- ret
-; 29211
-
-Function29211: ; 29211
- call Function2981d
- ld a, [hSCX]
- sub $2
- ld [hSCX], a
- and a
- ret nz
- call Function2910f
- ret
-; 29220
-
-Function29220: ; 29220
- ld a, $80
- ld [wcf64], a
- call Function2910f
- ret
-; 29229
-
-Function29229: ; 29229
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- callab Function8cf53
- ld hl, VBGMap0
- ld bc, sScratch - VBGMap0
- ld a, " "
- call ByteFill
- xor a
- ld [hSCX], a
- ld a, $90
- ld [hWY], a
- call EnableLCD
- call Function2982b
- call WaitBGMap
- call Function297ed
- call Function29114
- ret
-; 2925d
-
-Function2925d: ; 2925d
- call Function2981d
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_29269
- dec [hl]
- ret
-
-.asm_29269
- call Function2910f
- ret
-; 2926d
-
-Function2926d: ; 2926d
- call Function29114
- ld de, SFX_GIVE_TRADEMON
- call PlaySFX
- ret
-; 29277
-
-Function29277: ; 29277
- call Function29114
- ld de, SFX_GET_TRADEMON
- call PlaySFX
- ret
-; 29281
-
-Function29281: ; 29281
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_2928f
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 2928f
-
-Jumptable_2928f: ; 2928f
- dw Function29297
- dw Function292af
- dw Function292be
- dw Function29297
-; 29297
-
-Function29297: ; 29297
- call Function297cf
- hlcoord 9, 3
- ld [hl], $5b
- inc hl
- ld bc, $000a
- ld a, $60
- call ByteFill
- hlcoord 3, 2
- call Function292ec
- ret
-; 292af
-
-Function292af: ; 292af
- call Function297cf
- hlcoord 0, 3
- ld bc, SCREEN_WIDTH
- ld a, $60
- call ByteFill
- ret
-; 292be
-
-Function292be: ; 292be
- call Function297cf
- hlcoord 0, 3
- ld bc, $0011
- ld a, $60
- call ByteFill
- hlcoord 17, 3
- ld a, $5d
- ld [hl], a
- ld a, $61
- ld de, SCREEN_WIDTH
- ld c, $3
-.asm_292d9
- add hl, de
- ld [hl], a
- dec c
- jr nz, .asm_292d9
- add hl, de
- ld a, $5f
- ld [hld], a
- ld a, $5b
- ld [hl], a
- hlcoord 10, 6
- call Function292ec
- ret
-; 292ec
-
-Function292ec: ; 292ec
- ld de, TradeGameBoyTilemap
- lb bc, 8, 6
- call Function297db
- ret
-; 292f6
-
-Function292f6: ; 292f6
- push af
- call WhiteBGMap
- call WaitTop
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, "─"
- call ByteFill
- hlcoord 0, 1
- ld de, wc736
- call PlaceString
- ld hl, wc741
- ld de, 0
-.asm_2931e
- ld a, [hli]
- cp "@"
- jr z, .asm_29326
- dec de
- jr .asm_2931e
-
-.asm_29326
- hlcoord 0, 4
- add hl, de
- ld de, wc741
- call PlaceString
- hlcoord 7, 2
- ld bc, $0006
- pop af
- call ByteFill
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- ret
-; 29348
-
-Function29348: ; 29348
- call ClearTileMap
- call WaitTop
- ld a, $a0
- ld [hSCX], a
- call DelayFrame
- hlcoord 8, 2
- ld de, Tilemap_298f7
- lb bc, 3, 12
- call Function297db
- call WaitBGMap
- ld b, $1b
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- ld de, SFX_POTION
- call PlaySFX
- call Function2910f
- ret
-; 2937e
-
-Function2937e: ; 2937e
- ld a, [hSCX]
- and a
- jr z, .asm_29388
- add $4
- ld [hSCX], a
- ret
-
-.asm_29388
- ld c, $50
- call DelayFrames
- call Function29114
- ret
-; 29391
-
-Function29391: ; 29391
- ld a, [hSCX]
- cp $a0
- jr z, .asm_2939c
- sub $4
- ld [hSCX], a
- ret
-
-.asm_2939c
- call ClearTileMap
- xor a
- ld [hSCX], a
- call Function29114
- ret
-; 293a6
-
-Function293a6: ; 293a6
- ld a, $8f
- ld [hWX], a
- ld a, $88
- ld [hSCX], a
- ld a, $50
- ld [hWY], a
- call Function29114
- ret
-; 293b6
-
-Function293b6: ; 293b6
- ld a, [hWX]
- cp $7
- jr z, .asm_293c7
- sub $4
- ld [hWX], a
- ld a, [hSCX]
- sub $4
- ld [hSCX], a
- ret
-
-.asm_293c7
- ld a, $7
- ld [hWX], a
- xor a
- ld [hSCX], a
- call Function29114
- ret
-; 293d2
-
-Function293d2: ; 293d2
- ld a, $7
- ld [hWX], a
- ld a, $50
- ld [hWY], a
- call Function29114
- ret
-; 293de
-
-Function293de: ; 293de
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- call Function29114
- ret
-; 293ea
-
-Function293ea: ; 293ea
- call WaitTop
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call WaitBGMap
- ld a, $7
- ld [hWX], a
- xor a
- ld [hWY], a
- call DelayFrame
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call ClearTileMap
- call Function2910f
- ret
-; 2940c
-
-Function2940c: ; 2940c
- ld a, [hWX]
- cp $a1
- jr nc, .asm_29417
- add $4
- ld [hWX], a
- ret
-
-.asm_29417
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- call WaitBGMap
- ld a, $7
- ld [hWX], a
- ld a, $90
- ld [hWY], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- call Function29114
- ret
-; 2942e
-
-Function2942e: ; 2942e
- call Function2951f
- ld a, [wc6d0]
- ld [CurPartySpecies], a
- ld a, [wc6fd]
- ld [TempMonDVs], a
- ld a, [wc6fe]
- ld [TempMonDVs + 1], a
- ld b, $1a
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- call Function294bb
-
- ld a, [wc6d0]
- call GetCryIndex
- jr c, .asm_2945d
- ld e, c
- ld d, b
- call PlayCryHeader
-.asm_2945d
-
- call Function29114
- ret
-; 29461
-
-Function29461: ; 29461
- call Function29549
- ld a, [wc702]
- ld [CurPartySpecies], a
- ld a, [wc72f]
- ld [TempMonDVs], a
- ld a, [wc730]
- ld [TempMonDVs + 1], a
- ld b, $1a
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- call Function294c0
- call Function29114
- ret
-; 29487
-
-Function29487: ; 29487
- callba Function4d81e
- call Function29114
- ret
-; 29491
-
-Function29491: ; 29491
- push de
- push af
- predef GetUnownLetter
- pop af
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call GetBaseData
- pop de
- predef GetFrontpic
- ret
-; 294a9
-
-Function294a9: ; 294a9
- push de
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- pop de
- ld bc, $000b
- call CopyBytes
- ret
-; 294bb
-
-Function294bb: ; 294bb
- ld de, VTiles0
- jr Function294c3
-
-Function294c0: ; 294c0
- ld de, VTiles0 tile $31
-
-Function294c3: ; 294c3
- call DelayFrame
- ld hl, VTiles2
- ld bc, $0a31
- call Request2bpp
- call WaitTop
- call Function297cf
- hlcoord 7, 2
- xor a
- ld [$ffad], a
- lb bc, 7, 7
- predef FillBox
- call WaitBGMap
- ret
-; 294e7
-
-Function294e7: ; 294e7
- ld c, $50
- call DelayFrames
- call Function29114
- ret
-; 294f0
-
-Function294f0: ; 294f0
- ld c, $28
- call DelayFrames
- call Function29114
- ret
-; 294f9
-
-Function294f9: ; 294f9
- ld c, $60
- call DelayFrames
- call Function29114
- ret
-; 29502
-
-Function29502: ; 29502
- call Function29516
- ret nz
- ld c, $50
- call DelayFrames
- ret
-; 2950c
-
-Function2950c: ; 2950c
- call Function29516
- ret nz
- ld c, $b4
- call DelayFrames
- ret
-; 29516
-
-Function29516: ; 29516
- call Function29114
- ld a, [wc702]
- cp $fd
- ret
-; 2951f
-
-Function2951f: ; 2951f
- ld de, wc6d0
- ld a, [de]
- cp $fd
- jr z, Function295a1
- call Function29573
- ld de, wc6d0
- call Function295e3
- ld de, wc6d1
- call Function295ef
- ld a, [wc701]
- ld de, wc6f2
- call Function295f6
- ld de, PlayerScreens
- call Function29611
- call Function295d8
- ret
-; 29549
-
-Function29549: ; 29549
- ld de, wc702
- ld a, [de]
- cp $fd
- jr z, Function295a1
- call Function29573
- ld de, wc702
- call Function295e3
- ld de, wc703
- call Function295ef
- ld a, [wc733]
- ld de, wc724
- call Function295f6
- ld de, wc731
- call Function29611
- call Function295d8
- ret
-; 29573
-
-Function29573: ; 29573
- call WaitTop
- call Function297cf
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 3, 0
- ld b, $6
- ld c, $d
- call TextBox
- hlcoord 4, 0
- ld de, String29591
- call PlaceString
- ret
-; 29591
-
-String29591: ; 29591
- db "─── №."
- next ""
- next "OT/"
- next $73, "№.@"
-; 295a1
-
-Function295a1: ; 295a1
- call WaitTop
- call Function297cf
- ld a, VBGMap1 / $100
- ld [hBGMapAddress + 1], a
- hlcoord 3, 0
- ld b, $6
- ld c, $d
- call TextBox
- hlcoord 4, 2
- ld de, String295c2
- call PlaceString
- call Function295d8
- ret
-; 295c2
-
-String295c2: ; 295c2
- db "EGG"
- next "OT/?????"
- next $73, "№.?????@"
-; 295d8
-
-Function295d8: ; 295d8
- call WaitBGMap
- call WaitTop
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ret
-; 295e3
-
-Function295e3: ; 295e3
- hlcoord 10, 0
- lb bc, PRINTNUM_LEADINGZEROS | 1, 3
- call PrintNum
- ld [hl], $7f
- ret
-; 295ef
-
-Function295ef: ; 295ef
- hlcoord 4, 2
- call PlaceString
- ret
-; 295f6
-
-Function295f6: ; 295f6
- cp 3
- jr c, .asm_295fb
- xor a
-
-.asm_295fb
- push af
- hlcoord 7, 4
- call PlaceString
- inc bc
- pop af
- ld hl, Unknown_2960e
- ld d, 0
- ld e, a
- add hl, de
- ld a, [hl]
- ld [bc], a
- ret
-; 2960e
-
-Unknown_2960e: ; 2960e
- db " ", "♂", "♀"
-; 29611
-
-Function29611: ; 29611
- hlcoord 7, 6
- lb bc, PRINTNUM_LEADINGZEROS | 2, 5
- call PrintNum
- ret
-; 2961b
-
-Function2961b: ; 2961b
- lb de, $54, $58
- ld a, $e
- call Function3b2a
- call Function29114
- ld a, $20
- ld [wcf64], a
- ret
-; 2962c
-
-Function2962c: ; 2962c
- lb de, $54, $58
- ld a, $e
- call Function3b2a
- ld hl, $000b
- add hl, bc
- ld [hl], $1
- ld hl, $0007
- add hl, bc
- ld [hl], $dc
- call Function29114
- ld a, $38
- ld [wcf64], a
- ret
-; 29649
-
-Function29649: ; 29649
- lb de, $54, $58
- ld a, $f
- call Function3b2a
- call Function29114
- ld a, $10
- ld [wcf64], a
- ld de, SFX_BALL_POOF
- call PlaySFX
- ret
-; 29660
-
-Function29660: ; 29660
- ld a, $e4
- call Functioncf8
- lb de, $28, $58
- ld a, $10
- call Function3b2a
- call Function29114
- ld a, $40
- ld [wcf64], a
- ret
-; 29676
-
-Function29676: ; 29676 (a:5676)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_29686
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 29686
-
-Jumptable_29686: ; 29686 (a:5686)
- dw Function2969a
- dw Function296a4
- dw Function296af
- dw Function296bd
- dw Function296cf
- dw Function296dd
- dw Function296f2
-; 2969a
-
-Function29694: ; 29694 (a:5694)
- ld hl, $b
- add hl, bc
- inc [hl]
- ret
-
-Function2969a: ; 2969a (a:569a)
- call Function29694
- ld hl, $c
- add hl, bc
- ld [hl], $80
- ret
-
-Function296a4: ; 296a4 (a:56a4)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- call Function29694
-
-Function296af: ; 296af (a:56af)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $94
- jr nc, .asm_296ba
- inc [hl]
- ret
-.asm_296ba
- call Function29694
-
-Function296bd: ; 296bd (a:56bd)
- ld hl, $5
- add hl, bc
- ld a, [hl]
- cp $4c
- jr nc, .asm_296c8
- inc [hl]
- ret
-.asm_296c8
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-
-Function296cf: ; 296cf (a:56cf)
- ld hl, $5
- add hl, bc
- ld a, [hl]
- cp $2c
- jr z, .asm_296da
- dec [hl]
- ret
-.asm_296da
- call Function29694
-
-Function296dd: ; 296dd (a:56dd)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- cp $58
- jr z, .asm_296e8
- dec [hl]
- ret
-.asm_296e8
- call Function29694
- ld hl, $c
- add hl, bc
- ld [hl], $80
- ret
-
-Function296f2: ; 296f2 (a:56f2)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- dec [hl]
- and a
- ret nz
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-; 29701 (a:5701)
-
-Function29701: ; 29701
- ld a, [wLinkMode]
- cp LINK_TIMECAPSULE
- jr z, .asm_29725
- ld hl, UnknownText_0x29737
- call PrintText
- ld c, $bd
- call DelayFrames
- ld hl, UnknownText_0x29732
- call PrintText
- call Function297c9
- ld c, $80
- call DelayFrames
- call Function29114
- ret
-
-.asm_29725
- ld hl, UnknownText_0x29732
- call PrintText
- call Function297c9
- call Function29114
- ret
-; 29732
-
-UnknownText_0x29732: ; 0x29732
- ; was sent to @ .
- text_jump UnknownText_0x1bc6e9
- db "@"
-; 0x29737
-
-UnknownText_0x29737: ; 0x29737
- ;
- text_jump UnknownText_0x1bc701
- db "@"
-; 0x2973c
-
-Function2973c: ; 2973c
- ld hl, UnknownText_0x29752
- call PrintText
- call Function297c9
- ld hl, UnknownText_0x29757
- call PrintText
- call Function297c9
- call Function29114
- ret
-; 29752
-
-UnknownText_0x29752: ; 0x29752
- ; bids farewell to
- text_jump UnknownText_0x1bc703
- db "@"
-; 0x29757
-
-UnknownText_0x29757: ; 0x29757
- ; .
- text_jump UnknownText_0x1bc719
- db "@"
-; 0x2975c
-
-Function2975c: ; 2975c
- call WaitTop
- hlcoord 0, 10
- ld bc, 8 * SCREEN_WIDTH
- ld a, " "
- call ByteFill
- call WaitBGMap
- ld hl, UnknownText_0x2977a
- call PrintText
- call Function297c9
- call Function29114
- ret
-; 2977a
-
-UnknownText_0x2977a: ; 0x2977a
- ; Take good care of @ .
- text_jump UnknownText_0x1bc71f
- db "@"
-; 0x2977f
-
-Function2977f: ; 2977f
- ld hl, UnknownText_0x2979a
- call PrintText
- call Function297c9
- ld hl, UnknownText_0x2979f
- call PrintText
- call Function297c9
- ld c, $e
- call DelayFrames
- call Function29114
- ret
-; 2979a
-
-UnknownText_0x2979a: ; 0x2979a
- ; For @ 's @ ,
- text_jump UnknownText_0x1bc739
- db "@"
-; 0x2979f
-
-UnknownText_0x2979f: ; 0x2979f
- ; sends @ .
- text_jump UnknownText_0x1bc74c
- db "@"
-; 0x297a4
-
-Function297a4: ; 297a4
- ld hl, UnknownText_0x297bf
- call PrintText
- call Function297c9
- ld hl, UnknownText_0x297c4
- call PrintText
- call Function297c9
- ld c, $e
- call DelayFrames
- call Function29114
- ret
-; 297bf
-
-UnknownText_0x297bf: ; 0x297bf
- ; will trade @ @
- text_jump UnknownText_0x1bc75e
- db "@"
-; 0x297c4
-
-UnknownText_0x297c4: ; 0x297c4
- ; for @ 's @ .
- text_jump UnknownText_0x1bc774
- db "@"
-; 0x297c9
-
-Function297c9: ; 297c9
- ld c, $50
- call DelayFrames
- ret
-; 297cf
-
-Function297cf: ; 297cf
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ret
-; 297db
-
-Function297db: ; 297db
-.asm_297db
- push bc
- push hl
-.asm_297dd
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_297dd
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_297db
- ret
-; 297ed
-
-Function297ed: ; 297ed
- ld a, [hSGB]
- and a
- ld a, $e4
- jr z, .asm_297f6
- ld a, $f0
-
-.asm_297f6
- call Functioncf8
- ld a, $e4
- call DmgToCgbBGPals
- ret
-; 297ff
-
-Function297ff: ; 297ff
- push de
- ld de, wc736
- ld bc, $000b
- call CopyBytes
- pop hl
- ld de, wc741
- ld bc, $000b
- call CopyBytes
- ret
-; 29814
-
-Function29814: ; 29814
- ld a, [hl]
- ld [wc74c], a
- ld a, [de]
- ld [wc74d], a
- ret
-; 2981d
-
-Function2981d: ; 2981d
- ld a, [wcf65]
- and $7
- ret nz
- ld a, [rBGP]
- xor $3c
- call DmgToCgbBGPals
- ret
-; 2982b
-
-Function2982b: ; 2982b
- call DelayFrame
- ld de, TradeBallGFX
- ld hl, VTiles0 tile $62
- lb bc, BANK(TradeBallGFX), $6
- call Request2bpp
- ld de, TradePoofGFX
- ld hl, VTiles0 tile $68
- lb bc, BANK(TradePoofGFX), $c
- call Request2bpp
- ld de, TradeCableGFX
- ld hl, VTiles0 tile $74
- lb bc, BANK(TradeCableGFX), $4
- call Request2bpp
- xor a
- ld hl, wc300
- ld [hli], a
- ld [hl], $62
- ret
-; 2985a
-
-Function2985a: ; 2985a
- call DelayFrame
- ld e, $3
- callab Function8e83f
- ld de, TradeBubbleGFX
- ld hl, VTiles0 tile $72
- lb bc, BANK(TradeBubbleGFX), $4
- call Request2bpp
- xor a
- ld hl, wc300
- ld [hli], a
- ld [hl], $62
- ret
-; 29879
-
-Function29879: ; 29879
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_29882
- dec [hl]
- ret
-
-.asm_29882
- call Function29114
- ret
-; 29886
-
-Function29886: ; 29886
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_2988f
- dec [hl]
- ret
-
-.asm_2988f
- call Function29114
- ret
-; 29893
-
-
-Function29893: ; 29893
-; This function is unreferenced.
-; It was meant for use in Japanese versions, so the
-; constant used for copy length was changed by accident.
-
- ld hl, Unknown_298b5
-
- ld a, [hli]
- ld [wc6d0], a
- ld de, wc6e7
- ld c, 13 ; jp: 8
-.asm_2989f
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_2989f
-
- ld a, [hli]
- ld [wc702], a
- ld de, wc719
- ld c, 13 ; jp: 8
-.asm_298ae
- ld a, [hli]
- ld [de], a
- inc de
- dec c
- jr nz, .asm_298ae
- ret
-; 298b5
-
-Unknown_298b5: ; 298b5
- db $03, "ゲーフり@@", $23, $01 ; GAME FREAK
- db $06, "クりーチャ@", $56, $04 ; Creatures Inc.
-; 298c7
-
-
-TradeGameBoyTilemap: ; 298c7
-; 6x8
- db $31, $32, $32, $32, $32, $33
- db $34, $35, $36, $36, $37, $38
- db $34, $39, $3a, $3a, $3b, $38
- db $3c, $3d, $3e, $3e, $3f, $40
- db $41, $42, $43, $43, $44, $45
- db $46, $47, $43, $48, $49, $4a
- db $41, $43, $4b, $4c, $4d, $4e
- db $4f, $50, $50, $50, $51, $52
-; 297f7
-
-Tilemap_298f7: ; 297f7
-; 12x3
- db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53
- db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54
- db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43
-; 2991b
-
-TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp"
-TradeCableGFX: INCBIN "gfx/trade/cable.2bpp"
-TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp"
-TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz"
-TradeBallGFX: INCBIN "gfx/trade/ball.2bpp"
-TradePoofGFX: INCBIN "gfx/trade/poof.2bpp"
-
-Special_CheckTimeCapsuleCompatibility: ; 29bfb
-; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar:
-; 0: Party is okay
-; 1: At least one Pokemon was introduced in GS
-; 2: At least one Pokemon has a move that was introduced in GS
-; 3: At least one Pokemon is holding mail
-
-; If any party Pokemon was introduced in the generation 2 games, don't let it in.
- ld hl, PartySpecies
- ld b, PARTY_LENGTH ; 6
-.loop
- ld a, [hli]
- cp $ff
- jr z, .checkitem
- cp CHIKORITA ; MEW + 1 ; 151 + 1
- jr nc, .mon_too_new
- dec b
- jr nz, .loop
-
-; If any party Pokemon is holding mail, don't let it in.
-.checkitem
- ld a, [PartyCount]
- ld b, a
- ld hl, PartyMon1Item
-.itemloop
- push hl
- push bc
- ld d, [hl]
- callba ItemIsMail
- pop bc
- pop hl
- jr c, .mon_has_mail
- ld de, PartyMon2 - PartyMon1
- add hl, de
- dec b
- jr nz, .itemloop
-
-; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in.
- ld hl, PartyMon1Moves
- ld a, [PartyCount]
- ld b, a
-.move_loop
- ld c, NUM_MOVES
-.move_next
- ld a, [hli]
- cp STRUGGLE + 1
- jr nc, .move_too_new
- dec c
- jr nz, .move_next
- ld de, PartyMon2 - (PartyMon1 + NUM_MOVES)
- add hl, de
- dec b
- jr nz, .move_loop
- xor a
- jr .done
-
-.mon_too_new
- ld [wd265], a
- call GetPokemonName
- ld a, $1
- jr .done
-
-.move_too_new
- push bc
- ld [wd265], a
- call GetMoveName
- call CopyName1
- pop bc
- call Function29c67
- ld a, $2
- jr .done
-
-.mon_has_mail
- call Function29c67
- ld a, $3
-
-.done
- ld [ScriptVar], a
- ret
-; 29c67
-
-Function29c67: ; 29c67
- ld a, [PartyCount]
- sub b
- ld c, a
- inc c
- ld b, $0
- ld hl, PartyCount
- add hl, bc
- ld a, [hl]
- ld [wd265], a
- call GetPokemonName
- ret
-; 29c7b
-
-Special_EnterTimeCapsule: ; 29c7b
- ld c, $a
- call DelayFrames
- ld a, $4
- call Function29f17
- ld c, $28
- call DelayFrames
- xor a
- ld [hVBlank], a
- inc a
- ld [wLinkMode], a
- ret
-; 29c92
-
-Special_AbortLink: ; 29c92
- ld c, $3
- call DelayFrames
- ld a, -1
- ld [$ffcb], a
- xor a
- ld [rSB], a
- ld [hSerialReceive], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- ld c, $3
- call DelayFrames
- xor a
- ld [rSB], a
- ld [hSerialReceive], a
- ld a, $0
- ld [rSC], a
- ld a, $80
- ld [rSC], a
- ld c, $3
- call DelayFrames
- xor a
- ld [rSB], a
- ld [hSerialReceive], a
- ld [rSC], a
- ld c, $3
- call DelayFrames
- ld a, -1
- ld [$ffcb], a
- ld a, [rIF]
- push af
- xor a
- ld [rIF], a
- ld a, $f
- ld [rIE], a
- pop af
- ld [rIF], a
- ld hl, wcf5b
- xor a
- ld [hli], a
- ld [hl], a
- ld [hVBlank], a
- ld [wLinkMode], a
- ret
-; 29ce8
-
-Special_SetBitsForLinkTradeRequest: ; 29ce8
- ld a, $1
- ld [wcf56], a
- ld [wd265], a
- ret
-; 29cf1
-
-Special_SetBitsForBattleRequest: ; 29cf1
- ld a, $2
- ld [wcf56], a
- ld [wd265], a
- ret
-; 29cfa
-
-Special_SetBitsForTimeCapsuleRequest: ; 29cfa
- ld a, $2
- ld [rSB], a
- xor a
- ld [hSerialReceive], a
- ld a, $0
- ld [rSC], a
- ld a, $80
- ld [rSC], a
- xor a
- ld [wcf56], a
- ld [wd265], a
- ret
-; 29d11
-
-Special_WaitForLinkedFriend: ; 29d11
- ld a, [wcf56]
- and a
- jr z, .asm_29d2f
- ld a, $2
- ld [rSB], a
- xor a
- ld [hSerialReceive], a
- ld a, $0
- ld [rSC], a
- ld a, $80
- ld [rSC], a
- call DelayFrame
- call DelayFrame
- call DelayFrame
-
-.asm_29d2f
- ld a, $2
- ld [wcf5c], a
- ld a, $ff
- ld [wcf5b], a
-.asm_29d39
- ld a, [$ffcb]
- cp $2
- jr z, .asm_29d79
- cp $1
- jr z, .asm_29d79
- ld a, -1
- ld [$ffcb], a
- ld a, $2
- ld [rSB], a
- xor a
- ld [hSerialReceive], a
- ld a, $0
- ld [rSC], a
- ld a, $80
- ld [rSC], a
- ld a, [wcf5b]
- dec a
- ld [wcf5b], a
- jr nz, .asm_29d68
- ld a, [wcf5c]
- dec a
- ld [wcf5c], a
- jr z, .asm_29d8d
-
-.asm_29d68
- ld a, $1
- ld [rSB], a
- ld a, $1
- ld [rSC], a
- ld a, $81
- ld [rSC], a
- call DelayFrame
- jr .asm_29d39
-
-.asm_29d79
- call Function908
- call DelayFrame
- call Function908
- ld c, $32
- call DelayFrames
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_29d8d
- xor a
- ld [ScriptVar], a
- ret
-; 29d92
-
-Special_CheckLinkTimeout: ; 29d92
- ld a, $1
- ld [wcf56], a
- ld hl, wcf5b
- ld a, $3
- ld [hli], a
- xor a
- ld [hl], a
- call WaitBGMap
- ld a, $2
- ld [hVBlank], a
- call DelayFrame
- call DelayFrame
- call Function29e0c
- xor a
- ld [hVBlank], a
- ld a, [ScriptVar]
- and a
- ret nz
- jp Function29f04
-; 29dba
-
-Function29dba: ; 29dba
- ld a, $5
- ld [wcf56], a
- ld hl, wcf5b
- ld a, $3
- ld [hli], a
- xor a
- ld [hl], a
- call WaitBGMap
- ld a, $2
- ld [hVBlank], a
- call DelayFrame
- call DelayFrame
- call Function29e0c
- ld a, [ScriptVar]
- and a
- jr z, .asm_29e08
- ld bc, rIE
-.asm_29de0
- dec bc
- ld a, b
- or c
- jr nz, .asm_29de0
- ld a, [wcf51]
- cp $5
- jr nz, .asm_29e03
- ld a, $6
- ld [wcf56], a
- ld hl, wcf5b
- ld a, $1
- ld [hli], a
- ld [hl], $32
- call Function29e0c
- ld a, [wcf51]
- cp $6
- jr z, .asm_29e08
-
-.asm_29e03
- xor a
- ld [ScriptVar], a
- ret
-
-.asm_29e08
- xor a
- ld [hVBlank], a
- ret
-; 29e0c
-
-Function29e0c: ; 29e0c
- xor a
- ld [$ffca], a
- ld a, [wcf5b]
- ld h, a
- ld a, [wcf5c]
- ld l, a
- push hl
- call Function29e3b
- pop hl
- jr nz, .asm_29e2f
- call Function29e47
- call Function29e53
- call Function29e3b
- jr nz, .asm_29e2f
- call Function29e47
- xor a
- jr .asm_29e31
-
-.asm_29e2f
- ld a, $1
-
-.asm_29e31
- ld [ScriptVar], a
- ld hl, wcf5b
- xor a
- ld [hli], a
- ld [hl], a
- ret
-; 29e3b
-
-Function29e3b: ; 29e3b
- call Function87d
- ld hl, wcf5b
- ld a, [hli]
- inc a
- ret nz
- ld a, [hl]
- inc a
- ret
-; 29e47
-
-Function29e47: ; 29e47
- ld b, $a
-.asm_29e49
- call DelayFrame
- call Function908
- dec b
- jr nz, .asm_29e49
- ret
-; 29e53
-
-Function29e53: ; 29e53
- dec h
- srl h
- rr l
- srl h
- rr l
- inc h
- ld a, h
- ld [wcf5b], a
- ld a, l
- ld [wcf5c], a
- ret
-; 29e66
-
-Special_TryQuickSave: ; 29e66
- ld a, [wd265]
- push af
- callba Function14ab2
- ld a, $1
- jr nc, .asm_29e75
- xor a
-
-.asm_29e75
- ld [ScriptVar], a
- ld c, $1e
- call DelayFrames
- pop af
- ld [wd265], a
- ret
-; 29e82
+INCLUDE "engine/link.asm"
-Special_CheckBothSelectedSameRoom: ; 29e82
- ld a, [wd265]
- call Function29f17
- push af
- call Function908
- call DelayFrame
- call Function908
- pop af
- ld b, a
- ld a, [wd265]
- cp b
- jr nz, .asm_29eaa
- ld a, [wd265]
- inc a
- ld [wLinkMode], a
- xor a
- ld [hVBlank], a
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_29eaa
- xor a
- ld [ScriptVar], a
- ret
-; 29eaf
-
-Special_TimeCapsule: ; 29eaf
- ld a, LINK_TIMECAPSULE
- ld [wLinkMode], a
- call DisableSpriteUpdates
- callab LinkCommunications
- call EnableSpriteUpdates
- xor a
- ld [hVBlank], a
- ret
-; 29ec4
-
-Special_TradeCenter: ; 29ec4
- ld a, LINK_TRADECENTER
- ld [wLinkMode], a
- call DisableSpriteUpdates
- callab LinkCommunications
- call EnableSpriteUpdates
- xor a
- ld [hVBlank], a
- ret
-; 29ed9
-
-Special_Colosseum: ; 29ed9
- ld a, LINK_COLOSSEUM
- ld [wLinkMode], a
- call DisableSpriteUpdates
- callab LinkCommunications
- call EnableSpriteUpdates
- xor a
- ld [hVBlank], a
- ret
-; 29eee
-
-Special_CloseLink: ; 29eee
- xor a
- ld [wLinkMode], a
- ld c, $3
- call DelayFrames
- jp Function29f04
-; 29efa
-
-Special_FailedLinkToPast: ; 29efa
- ld c, $28
- call DelayFrames
- ld a, $e
- jp Function29f17
-; 29f04
-
-Function29f04: ; 29f04
- ld c, $3
- call DelayFrames
- ld a, -1
- ld [$ffcb], a
- ld a, $2
- ld [rSB], a
- xor a
- ld [hSerialReceive], a
- ld [rSC], a
- ret
-; 29f17
-
-Function29f17: ; 29f17
- add $d0
- ld [wcf56], a
- ld [wcf57], a
- ld a, $2
- ld [hVBlank], a
- call DelayFrame
- call DelayFrame
-.asm_29f29
- call Function83b
- ld a, [wcf51]
- ld b, a
- and $f0
- cp $d0
- jr z, .asm_29f40
- ld a, [wcf52]
- ld b, a
- and $f0
- cp $d0
- jr nz, .asm_29f29
-
-.asm_29f40
- xor a
- ld [hVBlank], a
- ld a, b
- and $f
- ret
-; 29f47
-
-Special_CableClubCheckWhichChris: ; 29f47
- ld a, [$ffcb]
- cp $1
- ld a, $1
- jr z, .yes
- dec a
-
-.yes
- ld [ScriptVar], a
- ret
-; 29f54
-
-GFX_29f54: ; 29f54
-INCBIN "gfx/unknown/029f54.2bpp"
-; 29fe4
-
-Function29fe4: ; 29fe4
+Function29fe4: ; unreferenced
ld a, $0
call GetSRAMBank
ld d, $0
@@ -31385,30 +18142,27 @@ Function29fe4: ; 29fe4
LoadWildMonData: ; 29ff8
call _GrassWildmonLookup
- jr c, .asm_2a006
+ jr c, .copy
ld hl, wd25a
xor a
-rept 2
ld [hli], a
-endr
+ ld [hli], a
ld [hl], a
- jr .asm_2a011
-.asm_2a006
-rept 2
+ jr .done_copy
+.copy
+ inc hl
inc hl
-endr
ld de, wd25a
ld bc, $3
call CopyBytes
-.asm_2a011
+.done_copy
call _WaterWildmonLookup
ld a, $0
- jr nc, .asm_2a01b
-rept 2
+ jr nc, .no_copy
+ inc hl
inc hl
-endr
ld a, [hl]
-.asm_2a01b
+.no_copy
ld [wd25d], a
ret
@@ -31419,7 +18173,7 @@ Function2a01f: ; 2a01f
call ByteFill
ld a, e
and a
- jr nz, .asm_2a043
+ jr nz, .kanto
decoord 0, 0
ld hl, JohtoGrassWildMons
call Function2a052
@@ -31429,7 +18183,7 @@ Function2a01f: ; 2a01f
call Function2a0cf
ret
-.asm_2a043
+.kanto
decoord 0, 0
ld hl, KantoGrassWildMons
call Function2a052
@@ -31438,7 +18192,7 @@ Function2a01f: ; 2a01f
; 2a052
Function2a052: ; 2a052
-.asm_2a052
+.loop
ld a, [hl]
cp $ff
ret z
@@ -31452,19 +18206,19 @@ rept 3
endr
ld a, $15
call Function2a088
- jr nc, .asm_2a067
+ jr nc, .next
ld [de], a
inc de
-.asm_2a067
+.next
pop hl
- ld bc, $002f
+ ld bc, $2f
add hl, bc
- jr .asm_2a052
+ jr .loop
; 2a06e
Function2a06e: ; 2a06e
-.asm_2a06e
+.loop
ld a, [hl]
cp $ff
ret z
@@ -31476,34 +18230,34 @@ Function2a06e: ; 2a06e
inc hl
ld a, $3
call Function2a088
- jr nc, .asm_2a081
+ jr nc, .next
ld [de], a
inc de
-.asm_2a081
+.next
pop hl
- ld bc, $0009
+ ld bc, 9
add hl, bc
- jr .asm_2a06e
+ jr .loop
; 2a088
Function2a088: ; 2a088
inc hl
-.asm_2a089
+.loop
push af
ld a, [wd265]
cp [hl]
- jr z, .asm_2a098
+ jr z, .found
rept 2
inc hl
endr
pop af
dec a
- jr nz, .asm_2a089
+ jr nz, .loop
and a
ret
-.asm_2a098
+.found
pop af
jp Function2a09c
; 2a09c
@@ -31514,20 +18268,20 @@ Function2a09c: ; 2a09c
ld c, a
hlcoord 0, 0
ld de, SCREEN_WIDTH * SCREEN_HEIGHT
-.asm_2a0a7
+.loop
ld a, [hli]
cp c
- jr z, .asm_2a0b4
+ jr z, .found
dec de
ld a, e
or d
- jr nz, .asm_2a0a7
+ jr nz, .loop
ld a, c
pop de
scf
ret
-.asm_2a0b4
+.found
pop de
and a
ret
@@ -31631,7 +18385,7 @@ ApplyMusicEffectOnEncounterRate:: ; 2a124
ApplyCleanseTagEffectOnEncounterRate:: ; 2a138
; Cleanse Tag halves encounter rate.
ld hl, PartyMon1Item
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
ld a, [PartyCount]
ld c, a
.loop
@@ -31768,7 +18522,7 @@ CheckRepelEffect:: ; 2a1df
jr z, .encounter
; Get the first Pokemon in your party that isn't fainted.
ld hl, PartyMon1HP
- ld bc, PartyMon2 - PartyMon1 - 1
+ ld bc, PARTYMON_STRUCT_LENGTH - 1
.loop
ld a, [hli]
or [hl]
@@ -32445,60 +19199,60 @@ SwarmWaterWildMons: ; 0x2b92f
INCLUDE "data/wild/swarm_water.asm"
-Function2b930: ; 2b930
+DetermineLinkBattleResult: ; 2b930
callba UpdateEnemyMonInParty
ld hl, PartyMon1HP
- call Function2b995
+ call .CountMonsRemaining
push bc
ld hl, OTPartyMon1HP
- call Function2b995
+ call .CountMonsRemaining
ld a, c
pop bc
cp c
- jr z, .asm_2b94c
- jr c, .asm_2b97f
- jr .asm_2b976
+ jr z, .even_number_of_mons_remaining
+ jr c, .defeat
+ jr .victory
-.asm_2b94c
- call Function2b9e1
- jr z, .asm_2b98a
+.even_number_of_mons_remaining
+ call .BothSides_CheckNumberMonsAtFullHealth
+ jr z, .drawn
ld a, e
cp $1
- jr z, .asm_2b976
+ jr z, .victory
cp $2
- jr z, .asm_2b97f
+ jr z, .defeat
ld hl, PartyMon1HP
- call Function2b9a6
+ call .CalcPercentHPRemaining
push de
ld hl, OTPartyMon1HP
- call Function2b9a6
+ call .CalcPercentHPRemaining
pop hl
ld a, d
cp h
- jr c, .asm_2b976
- jr z, .asm_2b970
- jr .asm_2b97f
+ jr c, .victory
+ jr z, .compare_lo
+ jr .defeat
-.asm_2b970
+.compare_lo
ld a, e
cp l
- jr z, .asm_2b98a
- jr nc, .asm_2b97f
+ jr z, .drawn
+ jr nc, .defeat
-.asm_2b976
+.victory
ld a, [wBattleResult]
and $f0
ld [wBattleResult], a
ret
-.asm_2b97f
+.defeat
ld a, [wBattleResult]
and $f0
add $1
ld [wBattleResult], a
ret
-.asm_2b98a
+.drawn
ld a, [wBattleResult]
and $f0
add $2
@@ -32506,30 +19260,30 @@ Function2b930: ; 2b930
ret
; 2b995
-Function2b995: ; 2b995
- ld c, $0
- ld b, $3
- ld de, $002f
-.asm_2b99c
+.CountMonsRemaining: ; 2b995
+ ld c, 0
+ ld b, 3
+ ld de, PARTYMON_STRUCT_LENGTH - 1
+.loop
ld a, [hli]
or [hl]
- jr nz, .asm_2b9a1
+ jr nz, .not_fainted
inc c
-.asm_2b9a1
+.not_fainted
add hl, de
dec b
- jr nz, .asm_2b99c
+ jr nz, .loop
ret
; 2b9a6
-Function2b9a6: ; 2b9a6
+.CalcPercentHPRemaining: ; 2b9a6
ld de, 0
ld c, $3
-.asm_2b9ab
+.loop2
ld a, [hli]
or [hl]
- jr z, .asm_2b9d7
+ jr z, .next
dec hl
xor a
ld [hDividend + 0], a
@@ -32557,45 +19311,45 @@ Function2b9a6: ; 2b9a6
ld d, a
dec hl
-.asm_2b9d7
+.next
push de
- ld de, $002f
+ ld de, $2f
add hl, de
pop de
dec c
- jr nz, .asm_2b9ab
+ jr nz, .loop2
ret
; 2b9e1
-Function2b9e1: ; 2b9e1
+.BothSides_CheckNumberMonsAtFullHealth: ; 2b9e1
ld hl, PartyMon1HP
- call Function2ba01
- jr nz, .asm_2b9f2
+ call .CheckFaintedOrFullHealth
+ jr nz, .finish ; we have a pokemon that's neither fainted nor at full health
ld hl, OTPartyMon1HP
- call Function2ba01
+ call .CheckFaintedOrFullHealth
ld e, $1
ret
-.asm_2b9f2
+.finish
ld hl, OTPartyMon1HP
- call Function2ba01
+ call .CheckFaintedOrFullHealth
ld e, $0
- ret nz
+ ret nz ; we both have pokemon that are neither fainted nor at full health
ld e, $2
ld a, $1
and a
ret
; 2ba01
-Function2ba01: ; 2ba01
- ld d, $3
-.asm_2ba03
+.CheckFaintedOrFullHealth: ; 2ba01
+ ld d, 3
+.loop3
ld a, [hli]
ld b, a
ld a, [hli]
ld c, a
or b
- jr z, .asm_2ba10
+ jr z, .fainted_or_full_health
ld a, [hli]
cp b
ret nz
@@ -32603,13 +19357,13 @@ Function2ba01: ; 2ba01
cp c
ret nz
-.asm_2ba10
+.fainted_or_full_health
push de
- ld de, $002e
+ ld de, PARTYMON_STRUCT_LENGTH - 2
add hl, de
pop de
dec d
- jr nz, .asm_2ba03
+ jr nz, .loop3
ret
; 2ba1a
@@ -32729,7 +19483,7 @@ endr
.asm_2c08e
ld a, b
ld [de], a
- ld bc, $0032
+ ld bc, $32
add hl, bc
ret
; 2c095
@@ -32861,7 +19615,7 @@ Function2c165: ; 2c165
ld de, GFX_2c172
ld hl, VTiles0 tile $31
lb bc, BANK(GFX_2c172), 4
- call Functiondc9
+ call Get2bpp_2
ret
; 2c172
@@ -32870,8 +19624,8 @@ INCBIN "gfx/battle/balls.2bpp"
; 2c1b2
_ShowLinkBattleParticipants: ; 2c1b2
- call WhiteBGMap
- call Functione5f
+ call ClearBGPalettes
+ call LoadFontsExtra
hlcoord 2, 3
ld b, 9
ld c, 14
@@ -33110,7 +19864,7 @@ AI_Redundant: ; 2c41a
jr .NotRedundant
.Attract: ; 2c4fe
- callba Function377f5
+ callba CheckOppositeGender
jr c, .Redundant
ld a, [PlayerSubStatus1]
bit SUBSTATUS_IN_LOVE, a
@@ -33293,7 +20047,7 @@ Function2c6ac: ; 2c6ac (b:46ac)
pop de
ret
-MysteryGiftGetItem: ; 2c708 (b:4708)
+MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708)
ld a, c
cp $25 ; 37
jr nc, Function2c722
@@ -33478,7 +20232,7 @@ Function2c7fb: ; 2c7fb
ld de, wd066
ld bc, $c
call CopyBytes
- call WhiteBGMap
+ call ClearBGPalettes
Function2c80a: ; 2c80a
callba Function5004f
@@ -33599,7 +20353,7 @@ UnknownText_0x2c8ce: ; 0x2c8ce
Function2c8d3: ; 2c8d3 (b:48d3)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function2c9e2
ld a, $2
ld [wcfa1], a
@@ -33625,7 +20379,7 @@ Function2c8d3: ; 2c8d3 (b:48d3)
ld [wcfa8], a
ld a, [wTMHMPocketCursor]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1
ld [wcfaa], a
jr Function2c946
@@ -33634,11 +20388,11 @@ Function2c915: ; 2c915 (b:4915)
call Function2c9e2
call Function1bc9
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [wTMHMPocketCursor], a
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, [wcfa6]
bit 7, a
jp nz, Function2c9b1
@@ -33674,7 +20428,7 @@ Function2c946: ; 2c946 (b:4946)
Function2c974: ; 2c974 (b:4974)
call Function2cad6
call Function2cb2a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld b, a
ld a, [wd0e2]
@@ -33686,7 +20440,7 @@ Function2c974: ; 2c974 (b:4974)
Function2c98a: ; 2c98a (b:498a)
call Function2cab5
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld b, a
.asm_2c991
inc c
@@ -34008,7 +20762,7 @@ Function2ed44: ; 2ed44
ld hl, PartyMon1PokerusStatus
ld a, [PartyCount]
ld b, a
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
.loopMons
ld a, [hl]
and $f
@@ -34134,7 +20888,7 @@ ConvertBerriesToBerryJuice: ; 2ede6
ld a, [hl]
cp SHUCKLE
jr nz, .loopMon
- ld bc, PartyMon1Item - PartyMon1Species
+ ld bc, MON_ITEM
add hl, bc
ld a, [hl]
cp BERRY
@@ -34142,7 +20896,7 @@ ConvertBerriesToBerryJuice: ; 2ede6
.loopMon
pop hl
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
pop af
dec a
@@ -34175,11 +20929,11 @@ ShowLinkBattleParticipants: ; 2ee18
FindFirstAliveMon: ; 2ee2f
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
call DelayFrame
ld b, 6
ld hl, PartyMon1HP
- ld de, PartyMon2 - PartyMon1 - 1
+ ld de, PARTYMON_STRUCT_LENGTH - 1
.loop
ld a, [hli]
@@ -34190,12 +20944,12 @@ FindFirstAliveMon: ; 2ee2f
jr nz, .loop
.okay
- ld de, PartyMon1Level - PartyMon1HP
+ ld de, MON_LEVEL - MON_HP
add hl, de
ld a, [hl]
ld [BattleMonLevel], a
predef Predef_StartBattle
- callba Function3ed9f
+ callba _LoadBattleFontsHPBar
ld a, 1
ld [hBGMapMode], a
call ClearSprites
@@ -34204,7 +20958,7 @@ FindFirstAliveMon: ; 2ee2f
ld [hBGMapMode], a
ld [hWY], a
ld [rWY], a
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; 2ee6c
@@ -34326,9 +21080,9 @@ endr
ld [wd0e4], a
ld [CriticalHit], a
ld [BattleMonSpecies], a
- ld [wc664], a
+ ld [wBattleParticipantsNotFainted], a
ld [CurBattleMon], a
- ld [wd232], a
+ ld [wForcedSwitch], a
ld [TimeOfDayPal], a
ld [PlayerTurnsTaken], a
ld [EnemyTurnsTaken], a
@@ -34366,7 +21120,7 @@ endr
FillBox: ; 2ef6e
; Fill wc2c6-aligned box width b height c
-; with iterating tile starting from $ffad at hl.
+; with iterating tile starting from hFillBox at hl.
; Predef $13
ld de, 20
@@ -34375,7 +21129,7 @@ FillBox: ; 2ef6e
and a
jr nz, .left
- ld a, [$ffad]
+ ld a, [hFillBox]
.x1
push bc
push hl
@@ -34402,7 +21156,7 @@ FillBox: ; 2ef6e
add hl, bc
pop bc
- ld a, [$ffad]
+ ld a, [hFillBox]
.x2
push bc
push hl
@@ -34498,7 +21252,7 @@ Function3957b: ; 3957b
ld hl, TrainerClassAttributes
ld bc, NUM_TRAINER_ATTRIBUTES
call AddNTimes
- ld de, wc650
+ ld de, wEnemyTrainerItem1
ld a, [hli]
ld [de], a
inc de
@@ -34644,7 +21398,7 @@ TrainerType2: ; 39806
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Moves
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -34663,14 +21417,14 @@ TrainerType2: ; 39806
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
- ld hl, OTPartyMon1PP - OTPartyMon1
+ ld hl, MON_PP
add hl, de
push hl
- ld hl, OTPartyMon1Moves - OTPartyMon1
+ ld hl, MON_MOVES
add hl, de
pop de
@@ -34720,7 +21474,7 @@ TrainerType3: ; 39871
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Item
- ld bc, OTPartyMon2 - OTPartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -34751,7 +21505,7 @@ TrainerType4: ; 3989d
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Item
- ld bc, OTPartyMon2 - OTPartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -34764,7 +21518,7 @@ TrainerType4: ; 3989d
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1Moves
- ld bc, OTPartyMon2 - OTPartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -34783,15 +21537,15 @@ TrainerType4: ; 3989d
ld a, [OTPartyCount]
dec a
ld hl, OTPartyMon1
- ld bc, OTPartyMon2 - OTPartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
- ld hl, OTPartyMon1PP - OTPartyMon1
+ ld hl, MON_PP
add hl, de
push hl
- ld hl, OTPartyMon1Moves - OTPartyMon1
+ ld hl, MON_MOVES
add hl, de
pop de
@@ -34937,8 +21691,8 @@ Function41a7f: ; 41a7f
callba Function1de247
call Function41af7
call DisableLCD
- call Functione51
- call Functione5f
+ call LoadStandardFont
+ call LoadFontsExtra
call Function414b7
call Function4147b
ld a, [wd265]
@@ -34948,7 +21702,7 @@ Function41a7f: ; 41a7f
hlcoord 0, 17
ld [hl], $3b
inc hl
- ld bc, $0013
+ ld bc, $13
ld a, " "
call ByteFill
callba Function4424d
@@ -34967,20 +21721,20 @@ Function41a7f: ; 41a7f
Function41ad7: ; 41ad7 (10:5ad7)
ld a, $3
- ld [hBGMapMode], a ; $ff00+$d4
- ld c, $4
+ ld [hBGMapMode], a
+ ld c, 4
call DelayFrames
ret
Function41ae1: ; 41ae1 (10:5ae1)
ld a, $4
- ld [hBGMapMode], a ; $ff00+$d4
- ld c, $4
+ ld [hBGMapMode], a
+ ld c, 4
call DelayFrames
ret
Function41aeb: ; 41aeb (10:5aeb)
- ld a, [hCGB] ; $ff00+$e6
+ ld a, [hCGB]
and a
jr z, .asm_41af3
call Function41ae1
@@ -35272,11 +22026,11 @@ endr
ld a, [CurPartyMon]
ld hl, PartyMons
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld e, l
ld d, h
- ld bc, PartyMon1MaxHP - PartyMon1
+ ld bc, MON_MAXHP
add hl, bc
ld a, [hli]
ld b, a
@@ -35297,7 +22051,7 @@ endr
ld [hl], a
ld hl, TempMonSpecies
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
ld a, [CurSpecies]
@@ -35400,7 +22154,7 @@ Function42461: ; 42461
push hl
ld a, [CurPartyMon]
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [hl]
cp EVERSTONE
@@ -35467,7 +22221,7 @@ endr
ld d, a
ld hl, PartyMon1Moves
ld a, [CurPartyMon]
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld b, NUM_MOVES
@@ -35538,7 +22292,7 @@ FillMoves: ; 424e1
ld a, [Buffer1]
and a
jr z, .CheckMove
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
cp b
jr nc, .GetMove
@@ -35590,7 +22344,7 @@ FillMoves: ; 424e1
jr z, .NextMove
push hl
ld a, [hl]
- ld hl, PartyMon1PP - PartyMon1Moves
+ ld hl, MON_PP - MON_MOVES
add hl, de
push hl
dec a
@@ -35613,12 +22367,12 @@ FillMoves: ; 424e1
ShiftMoves: ; 4256e
ld c, NUM_MOVES - 1
-.asm_42570
+.loop
inc de
ld a, [de]
ld [hli], a
dec c
- jr nz, .asm_42570
+ jr nz, .loop
ret
; 42577
@@ -35638,7 +22392,7 @@ GetPreEvolution: ; 42581
; if a pre-evolution is found.
ld c, 0
-.asm_42583
+.loop ; For each Pokemon...
ld hl, EvosAttacksPointers
ld b, 0
rept 2
@@ -35647,33 +22401,33 @@ endr
ld a, [hli]
ld h, [hl]
ld l, a
-.asm_4258d
+.loop2 ; For each evolution...
ld a, [hli]
and a
- jr z, .asm_425a2
- cp EVOLVE_STAT
- jr nz, .asm_42596
+ jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies.
+ cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison.
+ jr nz, .not_tyrogue
inc hl
-.asm_42596
+.not_tyrogue
inc hl
ld a, [CurPartySpecies]
cp [hl]
- jr z, .asm_425aa
+ jr z, .found_preevo
inc hl
ld a, [hl]
and a
- jr nz, .asm_4258d
+ jr nz, .loop2
-.asm_425a2
+.no_evolve
inc c
ld a, c
cp NUM_POKEMON
- jr c, .asm_42583
+ jr c, .loop
and a
ret
-.asm_425aa
+.found_preevo
inc c
ld a, c
ld [CurPartySpecies], a
@@ -35760,14 +22514,14 @@ endr
; so we have always the same AI, regardless of the loaded class of trainer
ld a, [InBattleTowerBattle]
bit 0, a
- jr nz, .asm_4412f
+ jr nz, .battle_tower_skip
ld a, [TrainerClass]
dec a
ld bc, 7 ; Trainer2AI - Trainer1AI
call AddNTimes
-.asm_4412f
+.battle_tower_skip
lb bc, CHECK_FLAG, 0
push bc
push hl
@@ -35838,40 +22592,40 @@ endr
.PickLowestScoreMoves
ld a, c
-.asm_44175
+.move_loop
inc [hl]
dec hl
inc a
cp NUM_MOVES + 1
- jr nz, .asm_44175
+ jr nz, .move_loop
ld hl, Buffer1
ld de, EnemyMonMoves
ld c, NUM_MOVES
; Give a score of 0 to a blank move
-.asm_44184
+.loop2
ld a, [de]
and a
- jr nz, .asm_44189
+ jr nz, .skip_load
ld [hl], a
; Disregard the move if its score is not 1
-.asm_44189
+.skip_load
ld a, [hl]
dec a
- jr z, .asm_44191
+ jr z, .keep
xor a
ld [hli], a
- jr .asm_44193
+ jr .after_toss
-.asm_44191
+.keep
ld a, [de]
ld [hli], a
-.asm_44193
+.after_toss
inc de
dec c
- jr nz, .asm_44184
+ jr nz, .loop2
; Randomly choose one of the moves with a score of 1
.ChooseMove
@@ -35939,7 +22693,7 @@ Function441cf: ; 441cf
xor a
ld [wc7db], a
call Function44207
- ld c, $20
+ ld c, 32
call DelayFrames
ret
; 441fc
@@ -36077,7 +22831,7 @@ endr
hlcoord 2, 11
call ClearBox
hlcoord 1, 10
- ld bc, $0013
+ ld bc, $13
ld a, $61
call ByteFill
hlcoord 1, 9
@@ -36104,7 +22858,7 @@ endr
hlcoord 2, 11
call ClearBox
hlcoord 1, 10
- ld bc, $0013
+ ld bc, $13
ld a, $61
call ByteFill
hlcoord 1, 9
@@ -36203,7 +22957,7 @@ INCLUDE "data/pokedex/entry_pointers.asm"
Function4456e: ; 4456e
- ld a, PartyMon1Item - PartyMon1
+ ld a, MON_ITEM
call GetPartyParamLocation
ld d, [hl]
callba ItemIsMail
@@ -36211,25 +22965,25 @@ Function4456e: ; 4456e
call Function44648
cp $a
jr nc, .asm_445be
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
ld hl, s0_a835
call AddNTimes
ld d, h
ld e, l
ld a, [CurPartyMon]
- ld bc, PartyMon1StatsEnd - PartyMon1Item
- ld hl, s0_a600
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld hl, sPartyScratch1
call AddNTimes
push hl
ld a, BANK(s0_a834)
call GetSRAMBank
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call CopyBytes
pop hl
xor a
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call ByteFill
- ld a, PartyMon1Item - PartyMon1
+ ld a, MON_ITEM
call GetPartyParamLocation
ld [hl], $0
ld hl, s0_a834
@@ -36249,7 +23003,7 @@ Function445c0: ; 445c0 (11:45c0)
ld a, b
push bc
ld hl, s0_a835
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
push hl
add hl, bc
@@ -36260,7 +23014,7 @@ Function445c0: ; 445c0 (11:45c0)
cp $9
jr z, .done
push bc
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call CopyBytes
pop bc
inc b
@@ -36269,7 +23023,7 @@ Function445c0: ; 445c0 (11:45c0)
ld h, d
ld l, e
xor a
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call ByteFill
ld hl, s0_a834
dec [hl]
@@ -36279,7 +23033,7 @@ Function445c0: ; 445c0 (11:45c0)
ReadMailMessage: ; 445f4
ld a, b
ld hl, s0_a835
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -36291,27 +23045,27 @@ Function44607: ; 44607
call GetSRAMBank
push bc
ld a, b
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
ld hl, s0_a835
call AddNTimes
push hl
ld a, [CurPartyMon]
- ld bc, PartyMon1StatsEnd - PartyMon1Item
- ld hl, s0_a600
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld hl, sPartyScratch1
call AddNTimes
ld d, h
ld e, l
pop hl
push hl
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call CopyBytes
pop hl
- ld de, PartyMon1StatsEnd - PartyMon1Moves
+ ld de, PARTYMON_STRUCT_LENGTH - MON_MOVES
add hl, de
ld d, [hl]
ld a, [CurPartyMon]
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld [hl], d
call CloseSRAM
@@ -36335,17 +23089,17 @@ Function44654:: ; 44654
jr c, .asm_446c6
ld a, [CurPartyMon]
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, [hl]
callba ItemIsMail
ld a, $3
jr nc, .asm_446c6
- ld a, BANK(s0_a600)
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
ld a, [CurPartyMon]
- ld hl, s0_a600
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld hl, sPartyScratch1
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
@@ -36376,7 +23130,7 @@ Function44654:: ; 44654
ld a, $4
jr c, .asm_446c1
xor a
- ld [wd10b], a
+ ld [wPokemonWithdrawDepositParameter], a
callba Functione039
ld a, $1
@@ -36399,33 +23153,33 @@ GivePokeItem:: ; 446cc
push af
push bc
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop bc
ld [hl], b
pop af
push bc
push af
- ld hl, s0_a600
- ld bc, $002f
+ ld hl, sPartyScratch1
+ ld bc, $2f
call AddNTimes
ld d, h
ld e, l
ld hl, wd002
- ld bc, $0021
- ld a, BANK(s0_a600)
+ ld bc, $21
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
call CopyBytes
pop af
push af
ld hl, PartyMonOT
- ld bc, $000b
+ ld bc, NAME_LENGTH
call AddNTimes
- ld bc, $000a
+ ld bc, $a
call CopyBytes
pop af
ld hl, PartyMon1ID
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [hli]
ld [de], a
@@ -36443,43 +23197,43 @@ GivePokeItem:: ; 446cc
; 44725
-Function44725: ; 44725
- ld a, BANK(s0_a600)
+BackupScratchmons: ; 44725
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
- ld hl, s0_a600
- ld de, s0_a71a
- ld bc, $11a
+ ld hl, sPartyScratch1
+ ld de, sPartyScratch2
+ ld bc, 6 * SCRATCHMON_STRUCT_LENGTH
call CopyBytes
ld hl, s0_a834
ld de, s0_aa0b
- ld bc, $1d7
+ ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH
call CopyBytes
jp CloseSRAM
; 44745
-Function44745: ; 44745 (11:4745)
- ld a, BANK(s0_a600)
+RestoreScratchmons: ; 44745 (11:4745)
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
- ld hl, s0_a71a
- ld de, s0_a600
- ld bc, $11a
+ ld hl, sPartyScratch2
+ ld de, sPartyScratch1
+ ld bc, 6 * SCRATCHMON_STRUCT_LENGTH
call CopyBytes
ld hl, s0_aa0b
ld de, s0_a834
- ld bc, $1d7
+ ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH
call CopyBytes
jp CloseSRAM
-Function44765: ; 44765 (11:4765)
- ld a, BANK(s0_a600)
+DeleteScratchmons: ; 44765 (11:4765)
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
xor a
- ld hl, s0_a600
- ld bc, $11a
+ ld hl, sPartyScratch1
+ ld bc, 6 * SCRATCHMON_STRUCT_LENGTH
call ByteFill
xor a
ld hl, s0_a834
- ld bc, $1d7
+ ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH
call ByteFill
jp CloseSRAM
; 44781 (11:4781)
@@ -36499,7 +23253,7 @@ Function44781: ; 44781
pop de
pop hl
ret c
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
dec e
jr nz, .asm_4478b
@@ -36512,7 +23266,7 @@ Function44781: ; 44781
_KrisMailBoxMenu: ; 0x447a0
call InitMail
jr z, .nomail
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function44806
jp WriteBackup
@@ -36556,16 +23310,16 @@ InitMail: ; 0x447b9
Function447da: ; 0x447da
dec a
- ld hl, s0_a835 + $21
- ld bc, $002f
+ ld hl, s0_a835 + MON_HP - 1
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
ld a, BANK(s0_a834)
call GetSRAMBank
ld de, StringBuffer2
push de
- ld bc, $a
+ ld bc, NAME_LENGTH - 1
call CopyBytes
- ld a, $50
+ ld a, "@"
ld [de], a
call CloseSRAM
pop de
@@ -36597,10 +23351,10 @@ Function44806: ; 0x44806
ld [wMenuCursorBuffer], a
ld a, [OBPals + 8 * 6]
ld [wd0e4], a
- call Function350c
+ call HandleScrollingMenu
ld a, [wd0e4]
ld [OBPals + 8 * 6], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd0f1], a
ld a, [wcf73]
cp $2
@@ -36619,7 +23373,7 @@ Function4484a: ; 0x4484a
call InterpretMenu2
call ExitMenu
jr c, .asm_44860
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld hl, .JumpTable
rst JumpTable
@@ -36687,7 +23441,7 @@ Function4484a: ; 0x4484a
call GetSRAMBank
pop af
ld hl, s0_a835 + $2e
- ld bc, $002f
+ ld bc, $2f
call AddNTimes
ld a, [hl]
ld [CurItem], a
@@ -36698,7 +23452,7 @@ Function4484a: ; 0x4484a
call FadeToMenu
xor a
ld [PartyMenuActionText], a
- call WhiteBGMap
+ call ClearBGPalettes
.asm_448dc
callba Function5004f
callba Function50405
@@ -36713,7 +23467,7 @@ Function4484a: ; 0x4484a
ld a, [CurPartySpecies]
cp EGG
jr z, .asm_44923
- ld a, PartyMon1Item - PartyMon1
+ ld a, MON_ITEM
call GetPartyParamLocation
ld a, [hl]
and a
@@ -36798,7 +23552,7 @@ Function48000: ; 48000
ld [wd476], a
ld [wd477], a
ld [wd478], a
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld [wd003], a
; could have done "ld a, [wd479] \ and -4", saved four operations
ld a, [wd479]
@@ -36814,13 +23568,13 @@ Function48000: ; 48000
Function4802f: ; 4802f (12:402f)
xor a
set 6, a
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld hl, wd003
set 0, [hl]
ld a, c
and a
call z, Function48000
- call WhiteBGMap
+ call ClearBGPalettes
call Function48d3d
ld a, [wd479]
bit 1, a
@@ -36833,7 +23587,7 @@ Function4802f: ; 4802f (12:402f)
ld [wd003], a
.asm_4805a
call Function486bf
- call Functione5f
+ call LoadFontsExtra
ld de, GFX_488c3
ld hl, VTiles2 tile $10
lb bc, BANK(GFX_488c3), 1
@@ -36843,8 +23597,8 @@ Function4802f: ; 4802f (12:402f)
lb bc, BANK(GFX_488cb), 1
call Request1bpp
call Function4a3a7
- call WhiteBGMap
- ld a, [DefaultFlypoint]
+ call ClearBGPalettes
+ ld a, [wd002]
bit 6, a
jr z, .asm_4808a
call Function48689
@@ -36856,11 +23610,11 @@ Function4802f: ; 4802f (12:402f)
ld [MusicFadeIDLo], a
ld a, MUSIC_MOBILE_ADAPTER_MENU / $100
ld [MusicFadeIDHi], a
- ld c, $14
+ ld c, 20
call DelayFrames
ld b, $1
call Function4930f
- call WhiteBGMap
+ call ClearBGPalettes
hlcoord 0, 0
ld b, $2
ld c, $14
@@ -36894,7 +23648,7 @@ Function4802f: ; 4802f (12:402f)
hlcoord 2, 12
ld de, String_4849e
call PlaceString
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr nz, .asm_48113
ld a, [PlayerGender]
@@ -36928,14 +23682,14 @@ Function4802f: ; 4802f (12:402f)
call Function3200
call SetPalettes
call Function1bc9
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
jr asm_4815f
Function48157: ; 48157 (12:4157)
call Function1bd3
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
@@ -36943,7 +23697,7 @@ asm_4815f: ; 4815f (12:415f)
bit 0, a
jp nz, Function4820d
ld b, a
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr z, .asm_48177
ld hl, wd479
@@ -36954,7 +23708,7 @@ asm_4815f: ; 4815f (12:415f)
.asm_48177
jp Function48272
.asm_4817a
- call WhiteBGMap
+ call ClearBGPalettes
call Function48d30
pop bc
call ClearTileMap
@@ -36980,7 +23734,7 @@ Function48187: ; 48187 (12:4187)
call PlaceString
pop de
.asm_481ad
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr nz, .asm_481c1
bit 0, d
@@ -37028,10 +23782,10 @@ String_48202: ; 48202
Function4820d: ; 4820d (12:420d)
call Function1bee
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
push af
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr z, .asm_4821f
pop af
@@ -37049,7 +23803,7 @@ Function4820d: ; 4820d (12:420d)
jp z, Function488d3
ld a, $2
call Function1ff8
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr z, .asm_4825c
jr .asm_4825c
@@ -37063,11 +23817,11 @@ Function4820d: ; 4820d (12:420d)
hlcoord 1, 16
call PlaceString
call WaitBGMap
- ld c, $30
+ ld c, 48
call DelayFrames
.asm_4825c
- call WhiteBGMap
+ call ClearBGPalettes
call Function48d30
pop bc
call ClearTileMap
@@ -37119,7 +23873,7 @@ asm_4828d: ; 4828d (12:428d)
call ExitMenu
bit 0, a
jp z, Function4840c
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
ld hl, Strings_484fb
cp $1
@@ -37174,7 +23928,7 @@ Function48304: ; 48304 (12:4304)
ld [wd0e4], a
callba Function104148
.asm_48348
- call Function350c
+ call HandleScrollingMenu
ld de, $629
call Function48383
jr c, .asm_48348
@@ -37189,7 +23943,7 @@ Function48304: ; 48304 (12:4304)
call ExitMenu
call ExitMenu
pop af
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
bit 0, a
jr z, .asm_48377
call Function483bb
@@ -37228,7 +23982,7 @@ Function48383: ; 48383 (12:4383)
ld [wd0e4], a
jr .asm_483af
.asm_483af
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
ld [wMenuCursorBuffer], a
scf
@@ -37306,9 +24060,9 @@ Function4840c: ; 4840c (12:440c)
call PlaceString
call Function486bf
pop bc
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld [hl], b
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr nz, .asm_48437
ld b, $9
@@ -37475,11 +24229,11 @@ Wakayama: db "わかやまけん@" ; Wakayama
; 48689
Function48689: ; 48689 (12:4689)
- ld c, $7
+ ld c, 7
call DelayFrames
ld b, $1
call Function4930f
- call WhiteBGMap
+ call ClearBGPalettes
hlcoord 0, 0
ld b, $4
ld c, $14
@@ -37501,7 +24255,7 @@ Function48689: ; 48689 (12:4689)
Function486bf: ; 486bf (12:46bf)
ld hl, wcfa1
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr nz, .asm_486ce
ld a, $4
@@ -37513,7 +24267,7 @@ Function486bf: ; 486bf (12:46bf)
.asm_486d1
ld a, $1
ld [hli], a
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr nz, .asm_486e7
call Function48725
@@ -37549,7 +24303,7 @@ Function486bf: ; 486bf (12:46bf)
add $40
add $80
push af
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr z, .asm_4871a
pop af
@@ -37657,7 +24411,7 @@ Function4876f: ; 4876f (12:476f)
.asm_487b7
hlcoord 11, 6
call Function487ec
- ld c, $a
+ ld c, 10
call DelayFrames
ld a, [wd473]
push af
@@ -37709,10 +24463,10 @@ String_4880d: ; 4880d
; 4880e
Function4880e: ; 4880e (12:480e)
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and A_BUTTON
jp nz, Function488b9
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and B_BUTTON
jp nz, Function488b4
ld hl, hJoyLast
@@ -37861,17 +24615,17 @@ Function488d3: ; 488d3 (12:48d3)
asm_48922: ; 48922 (12:4922)
push bc
call JoyTextDelay
- ld a, [hJoyDown] ; $ff00+$a8
+ ld a, [hJoyDown]
and a
jp z, Function4896e
bit 0, a
jp nz, Function4896e
bit 1, a
jp nz, Function4896e
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and %11001111
res 7, a
- ld [DefaultFlypoint], a
+ ld [wd002], a
pop bc
inc b
ld a, b
@@ -37887,7 +24641,7 @@ asm_48922: ; 48922 (12:4922)
ld a, b
cp $4
jr nz, asm_48972
- ld c, $a
+ ld c, 10
call DelayFrames
jr asm_48972
; 4895a (12:495a)
@@ -37922,10 +24676,10 @@ asm_48972: ; 48972 (12:4972)
jr z, .asm_48994
cp $f
jr nz, .asm_48988
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
set 7, a
and $cf
- ld [DefaultFlypoint], a
+ ld [wd002], a
.asm_48988
hlcoord 11, 10
ld b, $0
@@ -38034,7 +24788,7 @@ Function48a3a: ; 48a3a (12:4a3a)
ld a, $b
ld [wcfa2], a
ld a, $1
- ld [wcfa9], a
+ ld [MenuSelection2], a
hlcoord 10, 8
ld b, $4
ld c, $8
@@ -38049,7 +24803,7 @@ Function48a3a: ; 48a3a (12:4a3a)
pop af
bit 1, a
jp nz, Function48a9a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr z, .asm_48a98
ld a, [wd003]
@@ -38084,10 +24838,10 @@ String_48aa1: ; 48aa1
Function48ab5: ; 48ab5 (12:4ab5)
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and A_BUTTON
jp nz, Function48c0f
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and B_BUTTON
jp nz, Function48c0d
ld a, d
@@ -38171,7 +24925,7 @@ Function48ab5: ; 48ab5 (12:4ab5)
jr nz, .asm_48b9d
hlcoord 11, 10
call Function489ea
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 7, a
jr nz, .asm_48b51
.asm_48b51
@@ -38322,7 +25076,7 @@ Function48c0f: ; 48c0f (12:4c0f)
ret
Function48c11: ; 48c11 (12:4c11)
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 7, a
jr z, .asm_48c20
ld a, d
@@ -38332,30 +25086,30 @@ Function48c11: ; 48c11 (12:4c11)
.asm_48c1e
ld [hl], $7f
.asm_48c20
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
swap a
and $3
inc a
cp b
jr nz, .asm_48c40
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 7, a
jr z, .asm_48c3a
res 7, a
- ld [DefaultFlypoint], a
+ ld [wd002], a
xor a
jr .asm_48c40
.asm_48c3a
set 7, a
- ld [DefaultFlypoint], a
+ ld [wd002], a
xor a
.asm_48c40
swap a
ld b, a
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and $cf
or b
- ld [DefaultFlypoint], a
+ ld [wd002], a
ret
Function48c4d: ; 48c4d (12:4c4d)
@@ -38612,16 +25366,16 @@ Function48d4a: ; 48d4a (12:4d4a)
Function48d94: ; 48d94 (12:4d94)
xor a
ld [hDividend + 0], a
- ld [hDividend + 1], a ; $ff00+$b4 (aliases: hMultiplicand)
+ ld [hDividend + 1], a
ld a, [hli]
ld [hDividend + 0], a
ld a, [hl]
- ld [hDividend + 1], a ; $ff00+$b4 (aliases: hMultiplicand)
+ ld [hDividend + 1], a
ld a, 100
- ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
+ ld [hDivisor], a
ld b, 2
call Divide
- ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier)
+ ld a, [hDivisor]
ld c, $a
call SimpleDivide
sla b
@@ -38654,7 +25408,7 @@ InitGender: ; 48dcb (12:4dcb)
call Function3200
call InterpretMenu2
call WriteBackup
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [PlayerGender], a
ld c, 10
@@ -38690,11 +25444,11 @@ Function48e14: ; 48e14 (12:4e14)
ld [MusicFadeIDLo], a
ld a, $0
ld [MusicFadeIDHi], a
- ld c, $8
+ ld c, 8
call DelayFrames
- call WhiteBGMap
+ call ClearBGPalettes
call Function48000
- call Functione5f
+ call LoadFontsExtra
hlcoord 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
ld a, $0
@@ -38707,7 +25461,7 @@ Function48e14: ; 48e14 (12:4e14)
Function48e47: ; 48e47 (12:4e47)
ld hl, Palette_48e5c
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $8
ld a, $5
call FarCopyWRAM
@@ -38761,7 +25515,7 @@ INCBIN "gfx/misc/pack_f.2bpp"
Function4925b: ; 4925b
call FadeToMenu
- call WhiteBGMap
+ call ClearBGPalettes
call ClearScreen
call DelayFrame
ld b, $14
@@ -38869,7 +25623,7 @@ MenuDataHeader_0x4930a: ; 0x4930a
db 17, 19 ; end coords
; 4930f
-Function4930f: ; 4930f (12:530f)
+Function4930f: ; 4930f (mobile)
ld a, b
cp $ff
jr nz, .asm_49317
@@ -38925,15 +25679,15 @@ Function49346: ; 49346 (12:5346)
ret
Function49351: ; 49351 (12:5351)
- ld de, Unkn1Pals
+ ld de, wMapPals
ld hl, Palette_493e1
ld bc, $28
- ld a, $5 ; BANK(Unkn1Pals)
+ ld a, $5 ; BANK(wMapPals)
call FarCopyWRAM
- ld de, Unkn1Pals + $38
+ ld de, wMapPals + $38
ld hl, Palette_49418
ld bc, $8
- ld a, $5 ; BANK(Unkn1Pals)
+ ld a, $5 ; BANK(wMapPals)
call FarCopyWRAM
ret
@@ -38947,33 +25701,33 @@ Function4936e: ; 4936e (12:536e)
Function49384: ; 49384 (12:5384)
hlcoord 0, 0, AttrMap
- ld bc, $401
+ lb bc, 4, 1
ld a, $1
call Function49336
- ld bc, $201
+ lb bc, 2, 1
ld a, $2
call Function49336
- ld bc, $601
+ lb bc, 6, 1
ld a, $3
call Function49336
hlcoord 1, 0, AttrMap
ld a, $1
- ld bc, $312
+ lb bc, 3, 18
call Function49336
- ld bc, $212
+ lb bc, 2, 18
ld a, $2
call Function49336
- ld bc, $c12
+ lb bc, 12, 18
ld a, $3
call Function49336
hlcoord 19, 0, AttrMap
- ld bc, $401
+ lb bc, 4, 1
ld a, $1
call Function49336
- ld bc, $201
+ lb bc, 2, 1
ld a, $2
call Function49336
- ld bc, $601
+ lb bc, 6, 1
ld a, $3
call Function49336
hlcoord 0, 12, AttrMap
@@ -39013,8 +25767,8 @@ Palette_493e1: ; 493e1
Function49409:: ; 49409
ld hl, Palette_49418
- ld de, Unkn1Pals + 8 * 7
- ld bc, $0008
+ ld de, wMapPals + 8 * 7
+ ld bc, 8
ld a, $5
call FarCopyWRAM
ret
@@ -39029,19 +25783,19 @@ Palette_49418: ; 49418
Function49420:: ; 49420 (12:5420)
ld hl, MansionPalette4
- ld de, Unkn1Pals + $30
+ ld de, wMapPals + $30
ld bc, $8
- ld a, $5 ; BANK(Unkn1Pals)
+ ld a, $5 ; BANK(wMapPals)
call FarCopyWRAM
ret
; 4942f (12:542f)
Function4942f: ; 4942f
call Function49351
- ld de, Unkn1Pals + $38
+ ld de, wMapPals + $38
ld hl, Palette_49478
ld bc, $8
- ld a, $5 ; BANK(Unkn1Pals)
+ ld a, $5 ; BANK(wMapPals)
call FarCopyWRAM
call Function49346
hlcoord 0, 0, AttrMap
@@ -39052,7 +25806,7 @@ Function4942f: ; 4942f
ld bc, 4 * SCREEN_WIDTH
ld a, $7
call ByteFill
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
bit 6, a
jr z, .asm_49464
call Function49480
@@ -39078,7 +25832,7 @@ Palette_49478: ; 49478
Function49480: ; 49480
hlcoord 0, 0, AttrMap
- ld bc, $0414
+ lb bc, 4, SCREEN_WIDTH
ld a, $7
call Function49336
hlcoord 0, 2, AttrMap
@@ -39091,7 +25845,7 @@ Function49480: ; 49480
Function49496: ; 49496
hlcoord 0, 0, AttrMap
- ld bc, $0214
+ lb bc, 2, SCREEN_WIDTH
ld a, $7
call Function49336
hlcoord 0, 1, AttrMap
@@ -39102,19 +25856,19 @@ Function49496: ; 49496
ret
; 494ac
-Function494ac: ; 494ac
- ld a, [wd199]
- cp $15
+LoadSpecialMapPalette: ; 494ac
+ ld a, [wTileset]
+ cp TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE
jr z, .pokecom_2f
- cp $16
+ cp TILESET_BATTLE_TOWER
jr z, .battle_tower
- cp $1d
+ cp TILESET_ICE_PATH
jr z, .ice_path
- cp $5
+ cp TILESET_HOUSE_1
jr z, .house
- cp $1b
+ cp TILESET_RADIO_TOWER
jr z, .radio_tower
- cp $d
+ cp TILESET_CELADON_MANSION
jr z, .mansion_mobile
jr .do_nothing
@@ -39159,9 +25913,9 @@ Function494ac: ; 494ac
LoadPokeComPalette: ; 494f2
ld a, $5
- ld de, Unkn1Pals
+ ld de, wMapPals
ld hl, PokeComPalette
- ld bc, $0040
+ ld bc, 8 palettes
call FarCopyWRAM
ret
; 49501
@@ -39172,9 +25926,9 @@ INCLUDE "tilesets/pokecom.pal"
LoadBattleTowerPalette: ; 49541
ld a, $5
- ld de, Unkn1Pals
+ ld de, wMapPals
ld hl, BattleTowerPalette
- ld bc, $0040
+ ld bc, 8 palettes
call FarCopyWRAM
ret
; 49550
@@ -39185,9 +25939,9 @@ INCLUDE "tilesets/battle_tower.pal"
LoadIcePathPalette: ; 49590
ld a, $5
- ld de, Unkn1Pals
+ ld de, wMapPals
ld hl, IcePathPalette
- ld bc, $0040
+ ld bc, 8 palettes
call FarCopyWRAM
ret
; 4959f
@@ -39198,9 +25952,9 @@ INCLUDE "tilesets/ice_path.pal"
LoadHousePalette: ; 495df
ld a, $5
- ld de, Unkn1Pals
+ ld de, wMapPals
ld hl, HousePalette
- ld bc, $0040
+ ld bc, 8 palettes
call FarCopyWRAM
ret
; 495ee
@@ -39211,9 +25965,9 @@ INCLUDE "tilesets/house.pal"
LoadRadioTowerPalette: ; 4962e
ld a, $5
- ld de, Unkn1Pals
+ ld de, wMapPals
ld hl, RadioTowerPalette
- ld bc, $0040
+ ld bc, 8 palettes
call FarCopyWRAM
ret
; 4963d
@@ -39274,24 +26028,24 @@ MansionPalette4: ; 496bd
LoadMansionPalette: ; 496c5
ld a, $5
- ld de, Unkn1Pals
+ ld de, wMapPals
ld hl, MansionPalette1
- ld bc, $0040
+ ld bc, 8 palettes
call FarCopyWRAM
ld a, $5
- ld de, Unkn1Pals + $20
+ ld de, wMapPals + 4 palettes
ld hl, MansionPalette2
- ld bc, $0008
+ ld bc, 1 palettes
call FarCopyWRAM
ld a, $5
- ld de, Unkn1Pals + $18
+ ld de, wMapPals + 3 palettes
ld hl, MansionPalette3
- ld bc, $0008
+ ld bc, 1 palettes
call FarCopyWRAM
ld a, $5
- ld de, Unkn1Pals + $30
+ ld de, wMapPals + 6 palettes
ld hl, MansionPalette4
- ld bc, $0008
+ ld bc, 1 palettes
call FarCopyWRAM
ret
; 496fe
@@ -39305,8 +26059,8 @@ MansionPalette2: ; 496fe
Function49706: ; 49706
ld hl, Palette_49732
- ld de, Unkn1Pals
- ld bc, $0008
+ ld de, wMapPals
+ ld bc, 1 palettes
ld a, $5
call FarCopyWRAM
callba Function96a4
@@ -39314,7 +26068,7 @@ Function49706: ; 49706
callba Function96b3
ld hl, Palette_4973a
ld de, Unkn2Pals
- ld bc, $0008
+ ld bc, 1 palettes
ld a, $5
call FarCopyWRAM
ret
@@ -39336,8 +26090,8 @@ Palette_4973a: ; 4973a
Function49742: ; 49742
ld hl, Palette_49757
- ld de, Unkn1Pals
- ld bc, $0040
+ ld de, wMapPals
+ ld bc, $40
ld a, $5
call FarCopyWRAM
callba Function96a4
@@ -39388,38 +26142,38 @@ Palette_49757: ; 49757
Function49797: ; 49797
hlcoord 0, 0, AttrMap
- ld bc, $1002
+ lb bc, 16, 2
ld a, $4
call Function49336
ld a, $3
ldcoord_a 0, 1, AttrMap
ldcoord_a 0, 14, AttrMap
hlcoord 2, 0, AttrMap
- ld bc, $0812
+ lb bc, 8, 18
ld a, $5
call Function49336
hlcoord 2, 8, AttrMap
- ld bc, $0812
+ lb bc, 8, 18
ld a, $6
call Function49336
hlcoord 0, 16, AttrMap
- ld bc, $0214
+ lb bc, 2, SCREEN_WIDTH
ld a, $4
call Function49336
ld a, $3
- ld bc, $0601
+ lb bc, 6, 1
hlcoord 6, 1, AttrMap
call Function49336
ld a, $3
- ld bc, $0601
+ lb bc, 6, 1
hlcoord 17, 1, AttrMap
call Function49336
ld a, $3
- ld bc, $0601
+ lb bc, 6, 1
hlcoord 6, 9, AttrMap
call Function49336
ld a, $3
- ld bc, $0601
+ lb bc, 6, 1
hlcoord 17, 9, AttrMap
call Function49336
ld a, $2
@@ -39440,8 +26194,8 @@ endr
Function49811: ; 49811
ld hl, Palette_49826
- ld de, wd010
- ld bc, $0030
+ ld de, wMapPals + $10
+ ld bc, $30
ld a, $5
call FarCopyWRAM
callba Function96a4
@@ -39502,16 +26256,16 @@ Special_CelebiShrineEvent: ; 4989a
xor a
ld [VramState], a
call LoadCelebiGFX
- ld de, $0750
+ ld de, $750
ld a, $2c
call Function3b2a
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld [hl], $84
- ld hl, $0002
+ ld hl, $2
add hl, bc
ld [hl], $1f
- ld hl, $000f
+ ld hl, $f
add hl, bc
ld a, $80
ld [hl], a
@@ -39530,7 +26284,7 @@ Special_CelebiShrineEvent: ; 4989a
ld [wc3b5], a
callba Function8cf7a
call Function49935
- ld c, $2
+ ld c, 2
call DelayFrames
pop de
pop bc
@@ -39557,7 +26311,7 @@ endr
dec c
jr nz, .loop
ld hl, Sprites + $10
- ld bc, $0090
+ ld bc, $90
xor a
call ByteFill
ret
@@ -39606,7 +26360,7 @@ Function49944: ; 49944
ld e, $0
ld a, $18
call Function3b2a
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld [hl], $80
ret
@@ -39747,7 +26501,7 @@ endr
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, $0
+ ld hl, 0
.asm_49b61
srl a
jr nc, .asm_49b66
@@ -39802,7 +26556,7 @@ Function49bae: ; 49bae
ld a, $90
.asm_49bde
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld [hl], a
jr .asm_49be9
@@ -40181,10 +26935,10 @@ Function49e91: ; 49e91
Function49ed0: ; 49ed0
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
call ClearTileMap
- call Functione5f
- call Functione51
+ call LoadFontsExtra
+ call LoadStandardFont
call ResetTextRelatedRAM
ret
; 49ee0
@@ -40211,19 +26965,19 @@ MainMenu_MysteryGift: ; 49ef5
; 49efc
MainMenu_Mobile: ; 49efc
- call WhiteBGMap
+ call ClearBGPalettes
ld a, MUSIC_MOBILE_ADAPTER_MENU
ld [wMapMusic], a
ld de, MUSIC_MOBILE_ADAPTER_MENU
call Function4a6c5
Function49f0a: ; 49f0a
- call WhiteBGMap
+ call ClearBGPalettes
call Function4a3a7
call Function4a492
- call WhiteBGMap
+ call ClearBGPalettes
Function49f16: ; 49f16
call Function4a071
- ld c, $c
+ ld c, 12
call DelayFrames
hlcoord 4, 0
ld b, $a
@@ -40243,14 +26997,14 @@ Function49f16: ; 49f16
call Function3200
call SetPalettes
call Function1bc9
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
jr .asm_49f5d
.asm_49f55
call Function1bd3
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
@@ -40262,7 +27016,7 @@ Function49f16: ; 49f16
jr .asm_49f97
.asm_49f67
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
cp $1
jp z, Function4a098
@@ -40277,7 +27031,7 @@ Function49f16: ; 49f16
.asm_49f84
pop bc
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, MUSIC_MAIN_MENU
ld [wMapMusic], a
@@ -40286,7 +27040,7 @@ Function49f16: ; 49f16
ret
.asm_49f97
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
dec a
ld hl, MobileStrings2
@@ -40304,7 +27058,7 @@ Function49f16: ; 49f16
.asm_49fb7
call Function4a071
pop bc
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld [hl], b
ld b, $a
ld c, $1
@@ -40327,27 +27081,27 @@ MobileString1: ; 49fcc
MobileStrings2:
String_0x49fe9: ; 49fe9
- db "めいし", $1f, "つくったり"
+ db "めいし¯つくったり"
next "ほぞんしておける フ,ルダーです@"
; 4a004
String_0x4a004: ; 4a004
db "モバイルたいせんや じぶんのめいしで"
- next "つかう あいさつ", $1f, "つくります@"
+ next "つかう あいさつ¯つくります@"
; 4a026
String_0x4a026: ; 4a026
- db "あなた", $25, "じゅうしょや ねんれいの"
- next "せ", $1e, "い", $1f, "かえられます@"
+ db "あなた%じゅうしょや ねんれいの"
+ next "せ", $1e, "い¯かえられます@"
; 4a042
String_0x4a042: ; 4a042
db "モバイルセンター", $1d, "せつぞくするとき"
- next "ひつような こと", $1f, "きめます@"
+ next "ひつような こと¯きめます@"
; 4a062
String_0x4a062: ; 4a062
- db "まえ", $25, "がめん ", $1d, "もどります"
+ db "まえ%がめん ", $1d, "もどります"
next "@"
; 4a071
@@ -40386,7 +27140,7 @@ Function4a098: ; 4a098 (12:6098)
call Function1ff8
call Function1bee
call WaitBGMap
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
callba Function89de0
call Call_ExitMenu
call Function49351
@@ -40411,32 +27165,32 @@ Function4a0c2: ; 4a0c2 (12:60c2)
call CopyBytes
call CloseSRAM
callba Function150b9
- ld c, $2
+ ld c, 2
call DelayFrames
ld c, $1
call Function4802f
push af
- call WhiteBGMap
+ call ClearBGPalettes
pop af
and a
jr nz, .asm_4a0f9
callba Function1509a
.asm_4a0f9
- ld c, $5
+ ld c, 5
call DelayFrames
jr asm_4a111
Function4a100: ; 4a100 (12:6100)
ld a, $2
call Function1ff8
- call WhiteBGMap
+ call ClearBGPalettes
call Function4a13b
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
asm_4a111: ; 4a111 (12:6111)
pop bc
- call Functione5f
+ call LoadFontsExtra
jp Function49f0a
Function4a118: ; 4a118 (12:6118)
@@ -40469,7 +27223,7 @@ Function4a13b: ; 4a13b (12:613b)
call Function4a3a7
call Function4a492
call Function4a373
- ld c, $a
+ ld c, 10
call DelayFrames
Function4a149: ; 4a149 (12:6149)
@@ -40484,7 +27238,7 @@ Function4a149: ; 4a149 (12:6149)
ld b, $4
ld c, $12
call TextBox
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld hl, Strings_4a23d
call GetNthString
@@ -40499,14 +27253,14 @@ Function4a149: ; 4a149 (12:6149)
callba Function104148
call SetPalettes
call Function1bc9
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
jr asm_4a19d
Function4a195: ; 4a195 (12:6195)
call Function1bd3
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
@@ -40517,7 +27271,7 @@ asm_4a19d: ; 4a19d (12:619d)
jr nz, .asm_4a1ba
jr .asm_4a1bc
.asm_4a1a7
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
cp $1
jp z, Function4a20e
@@ -40529,7 +27283,7 @@ asm_4a19d: ; 4a19d (12:619d)
pop bc
ret
.asm_4a1bc
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
dec a
ld hl, Strings_4a23d
@@ -40546,7 +27300,7 @@ asm_4a19d: ; 4a19d (12:619d)
.asm_4a1db
call Function4a373
pop bc
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld [hl], b
lb bc, 6, 1
hlcoord 2, 3
@@ -40555,8 +27309,8 @@ asm_4a19d: ; 4a19d (12:619d)
; 4a1ef (12:61ef)
String_4a1ef: ; 4a1ef
- db "モバイルセンター", $1f, "えらぶ"
- next "ログインパスワード", $1f, "いれる"
+ db "モバイルセンター¯えらぶ"
+ next "ログインパスワード¯いれる"
next "もどる@"
; 4a20e
@@ -40564,7 +27318,7 @@ Function4a20e: ; 4a20e (12:620e)
ld a, $1
call Function1ff8
callba Function1719c8
- call WhiteBGMap
+ call ClearBGPalettes
call DelayFrame
jr Function4a239
@@ -40575,7 +27329,7 @@ Function4a221: ; 4a221 (12:6221)
jr c, Function4a239
call Function4a373
ld a, $2
- ld [wcfa9], a
+ ld [MenuSelection2], a
jr .asm_4a235
.asm_4a235
pop bc
@@ -40587,25 +27341,25 @@ Function4a239: ; 4a239 (12:6239)
; 4a23d (12:623d)
Strings_4a23d: ; 4a23d
- db "いつも せつぞく", $1f, "する"
- next "モバイルセンター", $1f, "えらびます@"
+ db "いつも せつぞく¯する"
+ next "モバイルセンター¯えらびます@"
db "モバイルセンター", $1d, "せつぞくするとき"
- next "つかうパスワード", $1f, "ほぞんできます@"
+ next "つかうパスワード¯ほぞんできます@"
- db "まえ", $25, "がめん ", $1d, "もどります@"
+ db "まえ%がめん ", $1d, "もどります@"
db "@"
; 4a28a
Function4a28a: ; 4a28a (12:628a)
hlcoord 2, 3
- ld bc, $601
- ld a, $7f
+ lb bc, 6, 1
+ ld a, " "
call Function4a6d8
call Function1bee
call WaitBGMap
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld a, $5
call GetSRAMBank
ld a, [$aa4b]
@@ -40627,16 +27381,16 @@ Function4a28a: ; 4a28a (12:628a)
pop af
bit 1, a
jr nz, .asm_4a33b
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $2
jr z, .asm_4a2f0
cp $3
jr z, .asm_4a33b
.asm_4a2df
callba Function11765d
- call WhiteBGMap
+ call ClearBGPalettes
call Call_ExitMenu
- call Functione5f
+ call LoadFontsExtra
scf
ret
.asm_4a2f0
@@ -40653,7 +27407,7 @@ Function4a28a: ; 4a28a (12:628a)
call InterpretMenu2
bit 1, a
jr nz, .asm_4a338
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $2
jr z, .asm_4a338
ld a, $5
@@ -40754,64 +27508,64 @@ Function4a3a7: ; 4a3a7 (12:63a7)
call Function4a485
Function4a3aa: ; 4a3aa
hlcoord 0, 0
- ld bc, $301
+ lb bc, 3, 1
xor a
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
ld a, $1
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
xor a
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
ld a, $1
call Function4a6d8
- ld bc, $401
+ lb bc, 4, 1
ld a, $2
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
ld a, $3
call Function4a6d8
- ld bc, $101
- ld a, $7f
+ lb bc, 1, 1
+ ld a, " "
call Function4a6d8
hlcoord 1, 0
ld a, $1
- ld bc, $312
+ lb bc, 3, 18
call Function4a6d8
- ld bc, $112
+ lb bc, 1, 18
ld a, $0
call Function4a6d8
- ld bc, $112
+ lb bc, 1, 18
ld a, $1
call Function4a6d8
- ld bc, $112
+ lb bc, 1, 18
ld a, $2
call Function4a6d8
- ld bc, $b12
- ld a, $7f
+ lb bc, 11, 18
+ ld a, " "
call Function4a6d8
hlcoord 19, 0
- ld bc, $301
+ lb bc, 3, 1
ld a, $0
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
ld a, $1
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
xor a
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
ld a, $1
call Function4a6d8
- ld bc, $401
+ lb bc, 4, 1
ld a, $2
call Function4a6d8
- ld bc, $101
+ lb bc, 1, 1
ld a, $3
call Function4a6d8
- ld bc, $101
- ld a, $7f
+ lb bc, 1, 1
+ ld a, " "
call Function4a6d8
ret
; 4a449 (12:6449)
@@ -40866,7 +27620,7 @@ MainMenu_MobileStudium: ; 4a496
push bc
push de
callba MobileStudium
- call WhiteBGMap
+ call ClearBGPalettes
pop de
pop bc
ld a, b
@@ -40882,12 +27636,12 @@ MainMenu_MobileStudium: ; 4a496
Function4a4c4: ; 4a4c4 (12:64c4)
- call WhiteBGMap
+ call ClearBGPalettes
call Function4a3a7
call Function4a492
call Function4a680
- call WhiteBGMap
- ld c, $14
+ call ClearBGPalettes
+ ld c, 20
call DelayFrames
hlcoord 2, 0
ld b, $a
@@ -40928,14 +27682,14 @@ Function4a4c4: ; 4a4c4 (12:64c4)
call Function3200
call SetPalettes
call Function1bc9
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
jr asm_4a54d
Function4a545: ; 4a545 (12:6545)
call Function1bd3
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld b, [hl]
push bc
@@ -40946,7 +27700,7 @@ asm_4a54d: ; 4a54d (12:654d)
jr nz, .asm_4a574
jr .asm_4a57e
.asm_4a557
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
cp $1
jp z, Function4a6ab
@@ -40960,11 +27714,11 @@ asm_4a54d: ; 4a54d (12:654d)
call Function1ff8
.asm_4a574
pop bc
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
jp Function49f0a
.asm_4a57e
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
dec a
add a
@@ -40992,7 +27746,7 @@ asm_4a54d: ; 4a54d (12:654d)
Function4a5b0: ; 4a5b0 (12:65b0)
call Function4a680
pop bc
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld [hl], b
ld b, $a
ld c, $1
@@ -41015,14 +27769,14 @@ String_4a5f2: ; 4a5f2
Strings_4a5f6: ; 4a5f6
db "めいし や ニュース ", $1d, "のせる@"
- db "あなた", $25, "あいさつです@"
+ db "あなた%あいさつです@"
db "モバイル たいせん", $4a, "はじまるとき@"
db "あいて", $1d, "みえる あいさつです@"
db "モバイル たいせんで かったとき@"
db "あいて", $1d, "みえる あいさつです@"
db "モバイル たいせんで まけたとき@"
db "あいて", $1d, "みえる あいさつです@"
- db "まえ", $25, "がめん ", $1d, "もどります@"
+ db "まえ%がめん ", $1d, "もどります@"
db "@"
; 4a680
@@ -41061,12 +27815,12 @@ endr
Function4a6ab: ; 4a6ab (12:66ab)
ld a, $2
call Function1ff8
- call WhiteBGMap
+ call ClearBGPalettes
ld b, $8
call GetSGBLayout
callba Function11c1ab
pop bc
- call Functione5f
+ call LoadFontsExtra
jp Function4a4c4
Function4a6c5: ; 4a6c5 (12:66c5)
@@ -41076,7 +27830,7 @@ Function4a6c5: ; 4a6c5 (12:66c5)
ld [MusicFadeIDLo], a
ld a, d
ld [MusicFadeIDHi], a
- ld c, $16
+ ld c, 22
call DelayFrames
ret
@@ -41166,7 +27920,7 @@ CheckOwnMonAnywhere: ; 0x4a721
ret c ; found!
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
pop bc
call UpdateOTPointer
@@ -41193,7 +27947,7 @@ CheckOwnMonAnywhere: ; 0x4a721
.loop
push bc
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
add hl, bc
pop bc
call UpdateOTPointer
@@ -41257,7 +28011,7 @@ endr
.loopboxmon
push bc
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
add hl, bc
pop bc
call UpdateOTPointer
@@ -41301,7 +28055,7 @@ CheckOwnMon: ; 0x4a7ba
jr nz, .notfound ; species doesn't match
; check ID number
- ld bc, PartyMon1ID - PartyMon1Species
+ ld bc, MON_ID
add hl, bc ; now hl points to ID number
ld a, [PlayerID]
cp [hl]
@@ -41347,15 +28101,15 @@ CheckOwnMon: ; 0x4a7ba
; 0x4a810
BoxAddressTable1: ; 4a810
- dbw BANK(sBox1), sBox1
- dbw BANK(sBox2), sBox2
- dbw BANK(sBox3), sBox3
- dbw BANK(sBox4), sBox4
- dbw BANK(sBox5), sBox5
- dbw BANK(sBox6), sBox6
- dbw BANK(sBox7), sBox7
- dbw BANK(sBox8), sBox8
- dbw BANK(sBox9), sBox9
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
dba sBox10
dba sBox11
dba sBox12
@@ -41390,7 +28144,7 @@ MobileCheckOwnMonAnywhere: ; 4a843
call Function4a8dc
ret c
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
pop bc
call Function4a91e
@@ -41412,7 +28166,7 @@ MobileCheckOwnMonAnywhere: ; 4a843
.asm_4a87c
push bc
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
add hl, bc
pop bc
call Function4a91e
@@ -41463,7 +28217,7 @@ endr
.asm_4a8c4
push bc
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
add hl, bc
pop bc
call Function4a91e
@@ -41509,15 +28263,15 @@ Function4a8dc: ; 4a8dc
; 4a8f4
BoxAddressTable2: ; 4a8f4
- dbw BANK(sBox1), sBox1
- dbw BANK(sBox2), sBox2
- dbw BANK(sBox3), sBox3
- dbw BANK(sBox4), sBox4
- dbw BANK(sBox5), sBox5
- dbw BANK(sBox6), sBox6
- dbw BANK(sBox7), sBox7
- dbw BANK(sBox8), sBox8
- dbw BANK(sBox9), sBox9
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
dba sBox10
dba sBox11
dba sBox12
@@ -41562,7 +28316,7 @@ Function4a927: ; 4a927
Function4a94e: ; 4a94e
call FadeToMenu
ld a, -1
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld bc, 3
call ByteFill
xor a
@@ -41596,7 +28350,7 @@ Function4a94e: ; 4a94e
.asm_4a990
call Function2b3c
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld a, -1
ld bc, 3
call ByteFill
@@ -41629,7 +28383,7 @@ UnknownText_0x4a9be: ; 0x4a9be
; 0x4a9c3
Function4a9c3: ; 4a9c3
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld a, $ff
cp [hl]
jr z, .asm_4a9d5
@@ -41648,13 +28402,13 @@ Function4a9c3: ; 4a9c3
; 4a9d7
Function4a9d7: ; 4a9d7
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
ld hl, PartyMonNicknames
call GetNick
ld h, d
ld l, e
ld de, EndFlypoint
- ld bc, $0006
+ ld bc, 6
call CopyBytes
ld a, [wd003]
ld hl, PartyMonNicknames
@@ -41662,7 +28416,7 @@ Function4a9d7: ; 4a9d7
ld h, d
ld l, e
ld de, wd00c
- ld bc, $0006
+ ld bc, 6
call CopyBytes
ld a, [wd004]
ld hl, PartyMonNicknames
@@ -41670,7 +28424,7 @@ Function4a9d7: ; 4a9d7
ld h, d
ld l, e
ld de, wd012
- ld bc, $0006
+ ld bc, 6
call CopyBytes
ld hl, UnknownText_0x4aa1d
call PrintText
@@ -41685,7 +28439,7 @@ UnknownText_0x4aa1d: ; 0x4aa1d
; 0x4aa22
Function4aa22: ; 4aa22
- call WhiteBGMap
+ call ClearBGPalettes
Function4aa25: ; 4aa25
callba Function5004f
@@ -41731,7 +28485,7 @@ Function4aa6e: ; 4aa6e
; 4aa7a
Function4aa7a: ; 4aa7a
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld d, $3
.loop
ld e, PARTY_LENGTH
@@ -41740,7 +28494,7 @@ Function4aa7a: ; 4aa7a
push hl
cp -1
jr z, .done
- ld hl, wPartyMonMenuIconAnims
+ ld hl, wc314
inc a
ld d, a
.inner_loop
@@ -41761,13 +28515,13 @@ Function4aa7a: ; 4aa7a
push hl
ld c, l
ld b, h
- ld hl, $0002
+ ld hl, $2
add hl, bc
ld [hl], a
pop hl
.next
- ld bc, $0010
+ ld bc, $10
add hl, bc
dec e
jr nz, .inner_loop
@@ -41786,7 +28540,7 @@ Function4aa7a: ; 4aa7a
; 4aab6
Function4aab6: ; 4aab6
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld d, $3
.loop
ld a, [hli]
@@ -41795,7 +28549,7 @@ Function4aab6: ; 4aab6
push de
push hl
hlcoord 0, 1
- ld bc, $0028
+ ld bc, $28
call AddNTimes
ld [hl], $ec
pop hl
@@ -41848,7 +28602,7 @@ Function4aafb: ; 4aafb
Function4ab06: ; 4ab06
ld a, [CurPartyMon]
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1HP
call AddNTimes
ld a, [hli]
@@ -41883,11 +28637,11 @@ Function4ab1a: ; 4ab1a
ld a, [PartyCount]
inc a
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd0d8], a
cp b
jr z, .asm_4ab7e
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [CurPartyMon], a
ld c, a
@@ -41904,7 +28658,7 @@ Function4ab1a: ; 4ab1a
ret
.asm_4ab6d
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd0d8], a
.asm_4ab73
ld de, SFX_READ_TEXT_2
@@ -41931,7 +28685,7 @@ Function4ab1a: ; 4ab1a
Function4ab99: ; 4ab99
bit 1, a
jr z, .asm_4aba6
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
cp $ff
jr z, .asm_4aba6
scf
@@ -41970,7 +28724,7 @@ Function4abc3: ; 4abc3
jr z, .asm_4abd5
ld a, [PartyCount]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1
ld [wcfaa], a
jr .asm_4ac29
@@ -41978,30 +28732,30 @@ Function4abc3: ; 4abc3
.asm_4abd5
bit 6, a
jr z, .asm_4abeb
- ld a, [wcfa9]
- ld [wcfa9], a
+ ld a, [MenuSelection2]
+ ld [MenuSelection2], a
and a
jr nz, .asm_4ac29
ld a, [PartyCount]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
jr .asm_4ac29
.asm_4abeb
bit 7, a
jr z, .asm_4ac08
- ld a, [wcfa9]
- ld [wcfa9], a
+ ld a, [MenuSelection2]
+ ld [MenuSelection2], a
ld a, [PartyCount]
rept 2
inc a
endr
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp b
jr nz, .asm_4ac29
ld a, $1
- ld [wcfa9], a
+ ld [MenuSelection2], a
jr .asm_4ac29
.asm_4ac08
@@ -42011,7 +28765,7 @@ endr
jr z, .asm_4ac56
.asm_4ac10
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld b, a
ld a, [PartyCount]
inc a
@@ -42034,12 +28788,12 @@ endr
ld a, [PartyCount]
hlcoord 6, 1
.asm_4ac3b
- ld bc, $0028
+ ld bc, $28
add hl, bc
dec a
jr nz, .asm_4ac3b
ld [hl], $7f
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld b, a
ld a, [PartyCount]
inc a
@@ -42103,19 +28857,19 @@ MenuDataHeader_0x4aca2: ; 0x4aca2
Function4acaa: ; 4acaa
.asm_4acaa
ld a, $a0
- ld [wcf91], a
+ ld [wMenuData2Flags], a
ld a, [wd019]
bit 1, a
jr z, .asm_4acc2
ld a, $2
- ld [wcf92], a
+ ld [wMenuData2Items], a
ld a, $c
ld [wMenuBorderTopCoord], a
jr .asm_4accc
.asm_4acc2
ld a, $4
- ld [wcf92], a
+ ld [wMenuData2Items], a
ld a, $8
ld [wMenuBorderTopCoord], a
@@ -42144,7 +28898,7 @@ Function4acaa: ; 4acaa
ld a, [wd019]
bit 1, a
jr nz, .asm_4ad0e
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr z, Function4ad17
cp $2
@@ -42154,7 +28908,7 @@ Function4acaa: ; 4acaa
jr .asm_4acf3
.asm_4ad0e
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr z, Function4ad56
jr .asm_4acf3
@@ -42162,7 +28916,7 @@ Function4acaa: ; 4acaa
Function4ad17: ; 4ad17
call Function4adb2
jr z, .asm_4ad4a
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld a, $ff
cp [hl]
jr z, .asm_4ad39
@@ -42207,7 +28961,7 @@ Function4ad56: ; 4ad56
; 4ad60
Function4ad60: ; 4ad60
- callba Function12fba
+ callba ManagePokemonMoves
ret
; 4ad67
@@ -42254,7 +29008,7 @@ String_4ada7: ; 4ada7
; 4adb2
Function4adb2: ; 4adb2
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld a, [CurPartyMon]
cp [hl]
ret z
@@ -42269,20 +29023,20 @@ Function4adb2: ; 4adb2
; 4adc2
Function4adc2: ; 4adc2
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
cp $ff
jr nz, .asm_4ade5
ld a, [wd003]
cp $ff
jr nz, .asm_4addd
ld a, [wd004]
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld a, $ff
ld [wd004], a
jr .asm_4ade5
.asm_4addd
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld a, $ff
ld [wd003], a
@@ -42304,7 +29058,7 @@ Function4adf7: ; 4adf7
ret z
ld a, [PartyCount]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1
ld [wcfaa], a
ld a, [wd019]
@@ -42325,7 +29079,7 @@ Function4ae12: ; 4ae12
; 4ae1f
Function4ae1f: ; 4ae1f
- ld bc, $0e07
+ lb bc, 14, 7
push bc
ld hl, YesNoMenuDataHeader
call CopyMenuDataHeader
@@ -42341,12 +29095,12 @@ Function4ae1f: ; 4ae1f
call BackUpTiles
call InterpretMenu2
push af
- ld c, $f
+ ld c, 15
call DelayFrames
call Function4ae5e
pop af
jr c, .asm_4ae57
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $2
jr z, .asm_4ae57
and a
@@ -42354,7 +29108,7 @@ Function4ae1f: ; 4ae1f
.asm_4ae57
ld a, $2
- ld [wcfa9], a
+ ld [MenuSelection2], a
scf
ret
; 4ae5e
@@ -42537,43 +29291,43 @@ EmptyAllSRAMBanks: ; 4cf1f
Function4cf45: ; 4cf45 (13:4f45)
- ld a, [hCGB] ; $ff00+$e6
+ ld a, [hCGB]
and a
jp z, WaitBGMap
; The following is a modified version of Function3246.
- ld a, [hBGMapMode] ; $ff00+$d4
+ ld a, [hBGMapMode]
push af
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, [$ffde]
+ ld [hBGMapMode], a
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
.WaitLY
- ld a, [rLY] ; $ff00+$44
+ ld a, [rLY]
cp $60
jr c, .WaitLY
di
ld a, 1 ; BANK(VBGMap2)
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
hlcoord 0, 0, AttrMap
call Function4cf80
ld a, 0 ; BANK(VBGMap0)
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
hlcoord 0, 0
call Function4cf80
.WaitLY2
- ld a, [rLY] ; $ff00+$44
+ ld a, [rLY]
cp $60
jr c, .WaitLY2
ei
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
pop af
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
Function4cf80: ; 4cf80 (13:4f80)
@@ -42583,7 +29337,7 @@ Function4cf80: ; 4cf80 (13:4f80)
ld h, a
ld l, 0
ld a, SCREEN_HEIGHT
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
ld b, 1 << 1
ld c, rSTAT % $100
@@ -42602,12 +29356,12 @@ endr
ld de, $20 - SCREEN_WIDTH
add hl, de
- ld a, [$ffd3]
+ ld a, [hTilesPerCycle]
dec a
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
jr nz, .loop
- ld a, [hSPBuffer] ; $ff00+$d9
+ ld a, [hSPBuffer]
ld l, a
ld a, [hSPBuffer + 1]
ld h, a
@@ -42645,38 +29399,38 @@ Function4d15b:: ; 4d15b
ld hl, wc608
ld a, [wd196]
and a
- jr z, .asm_4d168
- ld bc, $0030
+ jr z, .skip
+ ld bc, $30
add hl, bc
-.asm_4d168
+.skip
ld a, [wd197]
and a
- jr z, .asm_4d170
+ jr z, .next_dw
rept 2
inc hl
endr
-.asm_4d170
+.next_dw
decoord 0, 0
ld b, SCREEN_HEIGHT
-.asm_4d175
+.loop
ld c, SCREEN_WIDTH
-.asm_4d177
+.loop2
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_4d177
+ jr nz, .loop2
ld a, l
- add $4
+ add 4
ld l, a
- jr nc, .asm_4d184
+ jr nc, .carry
inc h
-.asm_4d184
+.carry
dec b
- jr nz, .asm_4d175
+ jr nz, .loop
ret
; 4d188
@@ -42688,15 +29442,15 @@ Function4d188: ; 4d188
cp $0
jp z, WaitBGMap
-; What follows is a modified version of Function3246.
+; What follows is a modified version of Function3246 (LoadEDTile).
ld a, [hBGMapMode]
push af
xor a
ld [hBGMapMode], a
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
.wait
ld a, [rLY]
cp $8f
@@ -42718,7 +29472,7 @@ Function4d188: ; 4d188
ei
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
pop af
ld [hBGMapMode], a
ret
@@ -42731,7 +29485,7 @@ Function4d1cb: ; 4d1cb
ld h, a
ld l, 0
ld a, SCREEN_HEIGHT
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
ld b, 1 << 1 ; not in v/hblank
ld c, rSTAT % $100
@@ -42750,9 +29504,9 @@ endr
ld de, $20 - SCREEN_WIDTH
add hl, de
- ld a, [$ffd3]
+ ld a, [hTilesPerCycle]
dec a
- ld [$ffd3], a
+ ld [hTilesPerCycle], a
jr nz, .loop
ld a, [hSPBuffer]
@@ -42771,16 +29525,16 @@ INCBIN "gfx/shrink2.2bpp.lz"
; 4d319
Function4d319: ; 4d319
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [CurPartyMon], a
call LowVolume
predef StatsScreenInit
ld a, [CurPartyMon]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
call ClearScreen
- call WhiteBGMap
+ call ClearBGPalettes
call MaxVolume
callba Function28ef8
callba Function4d354
@@ -42874,8 +29628,8 @@ _ResetClock: ; 4d3b1
callba Function8000
ld b, $8
call GetSGBLayout
- call Functione51
- call Functione5f
+ call LoadStandardFont
+ call LoadFontsExtra
ld de, MUSIC_MAIN_MENU
call PlayMusic
ld hl, .text_askreset
@@ -42884,7 +29638,7 @@ _ResetClock: ; 4d3b1
call CopyMenuDataHeader
call InterpretMenu2
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
ret z
call ClockResetPassword
@@ -42960,7 +29714,7 @@ ClockResetPassword: ; 4d41e
and D_PAD
jr z, .loop2
call .dpadinput
- ld c, $3
+ ld c, 3
call DelayFrames
jr .loop
@@ -43150,8 +29904,8 @@ Function4d54c: ; 4d54c
callba Function8000
ld b, $8
call GetSGBLayout
- call Functione51
- call Functione5f
+ call LoadStandardFont
+ call LoadFontsExtra
ld de, MUSIC_MAIN_MENU
call PlayMusic
ld hl, UnknownText_0x4d580
@@ -43160,7 +29914,7 @@ Function4d54c: ; 4d54c
call CopyMenuDataHeader
call InterpretMenu2
ret c
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
ret z
callba EmptyAllSRAMBanks
@@ -43266,7 +30020,7 @@ FlagPredef: ; 4d7c1
Function4d7fd: ; 4d7fd
ld a, [wc702]
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
ld de, VTiles2
push de
push af
@@ -43287,9 +30041,9 @@ Function4d81e: ; 4d81e
callba Function29549
ld a, [wc702]
ld [CurPartySpecies], a
- ld a, [wc72f]
+ ld a, [wEnemyTrappingMove]
ld [TempMonDVs], a
- ld a, [wc730]
+ ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
ld b, $1a
call GetSGBLayout
@@ -43300,8 +30054,8 @@ Function4d81e: ; 4d81e
ld [CurPartySpecies], a
hlcoord 7, 2
ld d, $0
- ld e, $3
- predef Functiond008e
+ ld e, ANIM_MON_TRADE
+ predef AnimateFrontpic
ret
; 4d860
@@ -43315,7 +30069,7 @@ CheckPokerus: ; 4d860
ld b, a
; Check each monster in the party for Pokerus
ld hl, PartyMon1PokerusStatus
- ld de, PartyMon2 - PartyMon1
+ ld de, PARTYMON_STRUCT_LENGTH
.Check
ld a, [hl]
and $0f ; only the bottom nybble is used
@@ -43348,7 +30102,7 @@ Special_CheckForLuckyNumberWinners: ; 4d87a
cp EGG
call nz, .CompareLuckyNumberToMonID
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
add hl, bc
pop bc
dec d
@@ -43373,7 +30127,7 @@ Special_CheckForLuckyNumberWinners: ; 4d87a
.SkipOpenBoxMon
push bc
- ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length
+ ld bc, BOXMON_STRUCT_LENGTH
add hl, bc
pop bc
dec d
@@ -43404,7 +30158,7 @@ endr
ld b, h
ld c, l
inc bc
- ld de, MONS_PER_BOX + NUM_MOVES + 4
+ ld de, sBoxMon1ID - sBox
add hl, de
ld d, a
.BoxNLoop
@@ -43413,14 +30167,14 @@ endr
cp EGG
jr z, .SkipBoxMon
- call .CompareLuckyNumberToMonID
+ call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately
jr nc, .SkipBoxMon
ld a, 1
ld [wFoundMatchingIDInParty], a
.SkipBoxMon
push bc
- ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length
+ ld bc, BOXMON_STRUCT_LENGTH
add hl, bc
pop bc
dec d
@@ -43504,11 +30258,11 @@ endr
inc b
ld a, [ScriptVar]
and a
- jr z, .foundmatch
+ jr z, .bettermatch
cp b
jr c, .nomatch
-.foundmatch
+.bettermatch
dec b
ld a, b
ld [ScriptVar], a
@@ -43527,15 +30281,15 @@ endr
; 4d99f
.BoxBankAddresses: ; 4d99f
- dbw BANK(sBox1), sBox1
- dbw BANK(sBox2), sBox2
- dbw BANK(sBox3), sBox3
- dbw BANK(sBox4), sBox4
- dbw BANK(sBox5), sBox5
- dbw BANK(sBox6), sBox6
- dbw BANK(sBox7), sBox7
- dbw BANK(sBox8), sBox8
- dbw BANK(sBox9), sBox9
+ dba sBox1
+ dba sBox2
+ dba sBox3
+ dba sBox4
+ dba sBox5
+ dba sBox6
+ dba sBox7
+ dba sBox8
+ dba sBox9
dba sBox10
dba sBox11
dba sBox12
@@ -43568,14 +30322,14 @@ Special_PrintTodaysLuckyNumber: ; 4d9d3
CheckPartyFullAfterContest: ; 4d9e5
ld a, [wContestMon]
and a
- jp z, Function4db35
+ jp z, .DidntCatchAnything
ld [CurPartySpecies], a
ld [CurSpecies], a
call GetBaseData
ld hl, PartyCount
ld a, [hl]
cp 6
- jp nc, Function4daa3
+ jp nc, .TryAddToBox
inc a
ld [hl], a
ld c, a
@@ -43589,12 +30343,12 @@ CheckPartyFullAfterContest: ; 4d9e5
ld hl, PartyMon1Species
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
ld hl, wContestMon
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
ld a, [PartyCount]
dec a
@@ -43609,19 +30363,19 @@ CheckPartyFullAfterContest: ; 4d9e5
call GetPokemonName
ld hl, StringBuffer1
ld de, wd050
- ld bc, $000b
+ ld bc, PKMN_NAME_LENGTH
call CopyBytes
call GiveANickname_YesNo
- jr c, .asm_4da66
+ jr c, .Party_SkipNickname
ld a, [PartyCount]
dec a
ld [CurPartyMon], a
xor a
ld [MonType], a
ld de, wd050
- callab Functione3de
+ callab InitNickname
-.asm_4da66
+.Party_SkipNickname
ld a, [PartyCount]
dec a
ld hl, PartyMonNicknames
@@ -43653,19 +30407,19 @@ CheckPartyFullAfterContest: ; 4d9e5
ret
; 4daa3
-Function4daa3: ; 4daa3
+.TryAddToBox: ; 4daa3
ld a, BANK(sBoxCount)
call GetSRAMBank
ld hl, sBoxCount
ld a, [hl]
cp MONS_PER_BOX
call CloseSRAM
- jr nc, .asm_4db08
+ jr nc, .BoxFull
xor a
ld [CurPartyMon], a
ld hl, wContestMon
ld de, wd018
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
call CopyBytes
ld hl, PlayerName
ld de, wd00d
@@ -43677,14 +30431,14 @@ Function4daa3: ; 4daa3
call GetPokemonName
call GiveANickname_YesNo
ld hl, StringBuffer1
- jr c, .asm_4daf7
+ jr c, .Box_SkipNickname
ld a, BOXMON
ld [MonType], a
ld de, wd050
- callab Functione3de
+ callab InitNickname
ld hl, wd050
-.asm_4daf7
+.Box_SkipNickname
ld a, BANK(sBoxMonNicknames)
call GetSRAMBank
ld de, sBoxMonNicknames
@@ -43692,7 +30446,7 @@ Function4daa3: ; 4daa3
call CopyBytes
call CloseSRAM
-.asm_4db08
+.BoxFull
ld a, BANK(sBoxMon1Level)
call GetSRAMBank
ld a, [sBoxMon1Level]
@@ -43715,7 +30469,7 @@ Function4daa3: ; 4daa3
ret
; 4db35
-Function4db35: ; 4db35
+.DidntCatchAnything: ; 4db35
ld a, $2
ld [ScriptVar], a
ret
@@ -43754,17 +30508,17 @@ Function4db53: ; 4db53
ld a, [MapNumber]
ld c, a
cp MAP_POKECENTER_2F
- jr nz, .asm_4db78
+ jr nz, .NotPokeCenter2F
ld a, b
cp GROUP_POKECENTER_2F
- jr nz, .asm_4db78
+ jr nz, .NotPokeCenter2F
ld a, [BackupMapGroup]
ld b, a
ld a, [BackupMapNumber]
ld c, a
-.asm_4db78
+.NotPokeCenter2F
call GetWorldMapLocation
ld b, a
ld a, [PlayerGender]
@@ -43783,25 +30537,25 @@ Function4db83: ; 4db83
ret
; 4db92
-Function4db92: ; 4db92
+SetBoxMonCaughtData: ; 4db92
push bc
ld a, BANK(sBoxMon1CaughtLevel)
call GetSRAMBank
ld hl, sBoxMon1CaughtLevel
pop bc
- call Function4dbaf
+ call SetPkmnCaughtData
call CloseSRAM
ret
; 4dba3
-SetPkmnCaughtData: ; 4dba3
+SetPartymonCaughtData: ; 4dba3
ld a, [PartyCount]
dec a
ld hl, PartyMon1CaughtLevel
push bc
call GetPartyLocation
pop bc
-Function4dbaf: ; 4dbaf
+SetPkmnCaughtData: ; 4dbaf
xor a
ld [hli], a
ld a, $7e
@@ -43848,7 +30602,7 @@ _FindThatSpeciesYourTrainerID: ; 4dbe6
ret z
ld a, c
ld hl, PartyMon1ID
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld a, [PlayerID]
cp [hl]
@@ -43877,7 +30631,7 @@ FindAtLeastThatHappy: ; 4dc0a
dec a
push hl
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop bc
ld a, b
@@ -43910,7 +30664,7 @@ FindGreaterThanThatLevel: ; 4dc31
dec a
push hl
push bc
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop bc
ld a, b
@@ -43988,10 +30742,10 @@ Function4dc8f: ; 4dc8f
jr StatsScreenInit_gotaddress
StatsScreenInit_gotaddress: ; 4dc94
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a ; disable overworld tile animations
+ ld [hMapAnims], a ; disable overworld tile animations
ld a, [wc2c6] ; whether sprite is to be mirrorred
push af
ld a, [wJumptableIndex]
@@ -44001,13 +30755,13 @@ StatsScreenInit_gotaddress: ; 4dc94
push bc
push hl
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call UpdateSprites
callba Functionfb53e
pop hl
call _hl_
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
pop bc
@@ -44019,13 +30773,14 @@ StatsScreenInit_gotaddress: ; 4dc94
pop af
ld [wc2c6], a
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; 0x4dcd2
StatsScreenMain: ; 0x4dcd2
xor a
ld [wJumptableIndex], a
+ ; stupid interns
ld [wcf64], a
ld a, [wcf64]
and $fc
@@ -44046,12 +30801,13 @@ StatsScreenMain: ; 0x4dcd2
StatsScreenBattle: ; 4dcf7
xor a
ld [wJumptableIndex], a
+ ; stupid interns
ld [wcf64], a
ld a, [wcf64]
and $fc
or $1
ld [wcf64], a
-.asm_4dd08
+.loop
callba Function100dd2
ld a, [wJumptableIndex]
and $7f
@@ -44059,22 +30815,22 @@ StatsScreenBattle: ; 4dcf7
rst JumpTable
call Function4dd3a
callba Function100dfd
- jr c, .asm_4dd29
+ jr c, .exit
ld a, [wJumptableIndex]
bit 7, a
- jr z, .asm_4dd08
+ jr z, .loop
-.asm_4dd29
+.exit
ret
; 4dd2a
StatsScreenPointerTable: ; 4dd2a
- dw Function4dd72 ; regular pokémon
+ dw MonStatsInit ; regular pokémon
dw EggStatsInit ; egg
- dw Function4dde6
+ dw StatsScreenWaitCry
dw Function4ddac
dw Function4ddc6
- dw Function4dde6
+ dw StatsScreenWaitCry
dw Function4ddd6
dw Function4dd6c
; 4dd3a
@@ -44111,10 +30867,10 @@ Function4dd6c: ; 4dd6c (13:5d6c)
set 7, [hl]
ret
-Function4dd72: ; 4dd72 (13:5d72)
+MonStatsInit: ; 4dd72 (13:5d72)
ld hl, wcf64
res 6, [hl]
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
callba Function10402d
call Function4ddf2
@@ -44172,11 +30928,12 @@ Function4ddd6: ; 4ddd6 (13:5dd6)
ld h, $0
call Function4dd62
ret
+
.asm_4dde1
and $f3
jp Function4de54
-Function4dde6: ; 4dde6 (13:5de6)
+StatsScreenWaitCry: ; 4dde6 (13:5de6)
call IsSFXPlaying
ret nc
ld a, [wJumptableIndex]
@@ -44186,14 +30943,14 @@ Function4dde6: ; 4dde6 (13:5de6)
Function4ddf2: ; 4ddf2 (13:5df2)
ld a, [MonType]
- cp $3
+ cp BREEDMON
jr nz, .asm_4de10
ld a, [wd018]
ld [CurSpecies], a
call GetBaseData
ld hl, wd018
ld de, TempMon
- ld bc, $30
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
jr .asm_4de2a
.asm_4de10
@@ -44202,7 +30959,7 @@ Function4ddf2: ; 4ddf2 (13:5df2)
cp EGG
jr z, .asm_4de2a
ld a, [MonType]
- cp $2
+ cp BOXMON
jr c, .asm_4de2a
callba Function50890
.asm_4de2a
@@ -44212,8 +30969,8 @@ Function4ddf2: ; 4ddf2 (13:5df2)
Function4de2c: ; 4de2c (13:5e2c)
call GetJoypad
ld a, [MonType]
- cp $3
- jr nz, .asm_4de4e
+ cp BREEDMON
+ jr nz, .notbreedmon
push hl
push de
push bc
@@ -44223,15 +30980,17 @@ Function4de2c: ; 4de2c (13:5e2c)
pop hl
ld a, [wcf73]
and $c0
- jr nz, .asm_4de52
+ jr nz, .set_carry
ld a, [wcf73]
- jr .asm_4de50
-.asm_4de4e
- ld a, [hJoyPressed] ; $ff00+$a7
-.asm_4de50
+ jr .clear_flags
+
+.notbreedmon
+ ld a, [hJoyPressed]
+.clear_flags
and a
ret
-.asm_4de52
+
+.set_carry
scf
ret
@@ -44256,7 +31015,7 @@ Function4de54: ; 4de54 (13:5e54)
jr .asm_4dece
.asm_4de77
ld a, [MonType]
- cp $2
+ cp BOXMON
jr nc, .asm_4dece
and a
ld a, [PartyCount]
@@ -44330,7 +31089,7 @@ Function4dee4: ; 4dee4 (13:5ee4)
Function4deea: ; 4deea (13:5eea)
call Function4df45
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
ld [wd265], a
ld [CurSpecies], a
@@ -44353,7 +31112,7 @@ Function4deea: ; 4deea (13:5eea)
hlcoord 18, 0
call Function4df66
hlcoord 9, 4
- ld a, $f3
+ ld a, "/"
ld [hli], a
ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo)
ld [wd265], a
@@ -44373,7 +31132,7 @@ Function4df45: ; 4df45 (13:5f45)
ld a, [hli]
ld d, a
ld e, [hl]
- callba Functionc699
+ callba DrawPartyMenuHPBar
ld hl, wcda1
call SetHPPal
ld b, $3
@@ -44387,9 +31146,9 @@ Function4df66: ; 4df66 (13:5f66)
pop hl
ret c
ld a, "♂"
- jr nz, .asm_4df75
+ jr nz, .got_gender
ld a, "♀"
-.asm_4df75
+.got_gender
ld [hl], a
ret
; 4df77 (13:5f77)
@@ -44403,32 +31162,32 @@ Unknown_4df77: ; 4df77
Function4df7f: ; 4df7f
hlcoord 7, 0
- ld bc, 20
- ld d, 18
-.asm_4df87
+ ld bc, SCREEN_WIDTH
+ ld d, SCREEN_HEIGHT
+.loop
ld a, $31
ld [hl], a
add hl, bc
dec d
- jr nz, .asm_4df87
+ jr nz, .loop
ret
; 4df8f
Function4df8f: ; 4df8f (13:5f8f)
hlcoord 0, 7
- ld b, 20
- ld a, $62
-.asm_4df96
+ ld b, SCREEN_WIDTH
+ ld a, "_"
+.loop
ld [hli], a
dec b
- jr nz, .asm_4df96
+ jr nz, .loop
ret
Function4df9b: ; 4df9b (13:5f9b)
hlcoord 12, 6
- ld [hl], $71
+ ld [hl], "◀"
hlcoord 19, 6
- ld [hl], $ed
+ ld [hl], "▶"
ret
Function4dfa6: ; 4dfa6 (13:5fa6)
@@ -44436,7 +31195,7 @@ Function4dfa6: ; 4dfa6 (13:5fa6)
callba CheckShininess
ret nc
hlcoord 19, 0
- ld [hl], $3f
+ ld [hl], "<SHINY>"
ret
Function4dfb6: ; 4dfb6 (13:5fb6)
@@ -44444,7 +31203,7 @@ Function4dfb6: ; 4dfb6 (13:5fb6)
ld [wd265], a
ld [CurSpecies], a
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function4dfda
call Function4e002
call Function4dfed
@@ -44453,6 +31212,7 @@ Function4dfb6: ; 4dfb6 (13:5fb6)
jr nz, .asm_4dfd6
call SetPalettes
ret
+
.asm_4dfd6
call Function4e226
ret
@@ -44516,7 +31276,7 @@ Function4e013: ; 4e013 (13:6013)
hlcoord 6, 13
push hl
ld de, TempMonStatus
- predef Function50d0a
+ predef PlaceStatusString
pop hl
jr nz, .asm_4e066
jr .asm_4e060
@@ -44590,7 +31350,7 @@ Function4e0e7: ; 4e0e7 (13:60e7)
jr z, .asm_4e111
inc a
ld d, a
- callba Function50e47
+ callba CalcExpAtLevel
rept 2
ld hl, TempMonExp + 2
endr
@@ -44602,7 +31362,7 @@ endr
sbc [hl]
dec hl
ld [Buffer2], a ; wd1eb (aliases: MovementType)
- ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand)
+ ld a, [hQuotient]
sbc [hl]
ld [Buffer1], a ; wd1ea (aliases: MagikarpLength)
ret
@@ -44784,13 +31544,13 @@ Function4e253: ; 4e253 (13:6253)
cp UNOWN
jr z, .asm_4e266
hlcoord 0, 0
- call Function3786
+ call PrepMonFrontpic
ret
.asm_4e266
xor a
ld [wc2c6], a
hlcoord 0, 0
- call Function378b
+ call _PrepMonFrontpic
ret
Function4e271: ; 4e271 (13:6271)
@@ -44817,7 +31577,7 @@ Function4e289: ; 4e289 (13:6289)
hlcoord 0, 0
ld d, $0
ld e, $2
- predef Functiond00a3
+ predef LoadMonAnimation
ld hl, wcf64
set 6, [hl]
ret
@@ -44839,7 +31599,7 @@ Jumptable_4e2b5: ; 4e2b5 (13:62b5)
Function4e2bf: ; 4e2bf (13:62bf)
ld a, [CurPartyMon]
ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld b, h
ld c, l
@@ -44872,7 +31632,7 @@ Function4e2f2: ; 4e2f2 (13:62f2)
ld a, [CurPartySpecies]
cp EGG
jr z, .asm_4e2fe
- call Function4e53f
+ call CheckFaintedFrzSlp
jr c, Function4e305
.asm_4e2fe
xor a
@@ -44894,16 +31654,16 @@ Function4e307: ; 4e307 (13:6307)
push bc
push af
call DelayFrame
- ld a, [rVBK] ; $ff00+$4f
+ ld a, [rVBK]
push af
ld a, $1
- ld [rVBK], a ; $ff00+$4f
- ld de, GFX_f9204
- lb bc, BANK(GFX_f9204), 1
+ ld [rVBK], a
+ ld de, TextBoxSpaceGFX
+ lb bc, BANK(TextBoxSpaceGFX), 1
ld hl, VTiles2 tile $7f
call Get2bpp
pop af
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
pop af
pop bc
pop de
@@ -44958,7 +31718,7 @@ EggStatsScreen: ; 4e33a
call SetPalettes ; pals
call DelayFrame
hlcoord 0, 0
- call Function3786
+ call PrepMonFrontpic
callba Function10402d
call Function4e497
@@ -45020,7 +31780,7 @@ Function4e497: ; 4e497 (13:6497)
pop de
hlcoord 0, 0
ld d, $0
- predef Functiond00a3
+ predef LoadMonAnimation
ld hl, wcf64
set 6, [hl]
ret
@@ -45095,31 +31855,31 @@ Function4e528: ; 4e528 (13:6528)
jp SkipNames
-Function4e53f: ; 4e53f
- ld hl, PartyMon1HP - PartyMon1
+CheckFaintedFrzSlp: ; 4e53f
+ ld hl, MON_HP
add hl, bc
ld a, [hli]
or [hl]
- jr z, .asm_4e552
- ld hl, PartyMon1Status - PartyMon1
+ jr z, .fainted_frz_slp
+ ld hl, MON_STATUS
add hl, bc
ld a, [hl]
and (1 << FRZ) | SLP
- jr nz, .asm_4e552
+ jr nz, .fainted_frz_slp
and a
ret
-.asm_4e552
+.fainted_frz_slp
scf
ret
; 4e554
-Function4e554:: ; 4e554
+CatchTutorial:: ; 4e554
ld a, [BattleType]
dec a
ld c, a
- ld hl, Jumptable_4e564
+ ld hl, .jumptable
ld b, 0
rept 2
add hl, bc
@@ -45130,23 +31890,24 @@ endr
jp [hl]
; 4e564
-Jumptable_4e564: ; 4e564 (13:6564)
- dw Function4e56a
- dw Function4e56a
- dw Function4e56a
+.jumptable: ; 4e564 (13:6564)
+ dw .DudeTutorial
+ dw .DudeTutorial
+ dw .DudeTutorial
-Function4e56a: ; 4e56a (13:656a)
+.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
-
- ld hl, DudeString
+; Copy Dude's name to your name
+ ld hl, .Dude
ld de, PlayerName
ld bc, NAME_LENGTH
call CopyBytes
- call Function4e5b7
+ call .LoadDudeData
xor a
ld [hJoyDown], a
@@ -45156,8 +31917,8 @@ Function4e56a: ; 4e56a (13:656a)
and $f8
add $3
ld [Options], a
- ld hl, AutoInput_4e5df
- ld a, BANK(AutoInput_4e5df)
+ ld hl, .AutoInput
+ ld a, BANK(.AutoInput)
call StartAutoInput
callab StartBattle
call StopAutoInput
@@ -45170,13 +31931,13 @@ Function4e56a: ; 4e56a (13:656a)
call CopyBytes
ret
-Function4e5b7: ; 4e5b7 (13:65b7)
+.LoadDudeData: ; 4e5b7 (13:65b7)
ld hl, OTPartyMon1
- ld [hl], $1
+ ld [hl], BULBASAUR
inc hl
- ld [hl], $12
+ ld [hl], POTION
inc hl
- ld [hl], $1
+ ld [hl], POUND
inc hl
ld [hl], $ff
ld hl, OTPartyMon1Exp + 2
@@ -45194,474 +31955,17 @@ endr
ret
; 4e5da (13:65da)
-DudeString: ; 4e5da
+.Dude: ; 4e5da
db "DUDE@"
; 4e5df
-AutoInput_4e5df: ; 4e5df
+.AutoInput: ; 4e5df
db NO_INPUT, $ff ; end
; 4e5e1
+INCLUDE "engine/evolution_animation.asm"
-EvolutionAnimation: ; 4e5e1
- push hl
- push de
- push bc
- ld a, [CurSpecies]
- push af
- ld a, [rOBP0]
- push af
- ld a, [BaseDexNo]
- push af
-
- call _EvolutionAnimation
-
- pop af
- ld [BaseDexNo], a
- pop af
- ld [rOBP0], a
- pop af
- ld [CurSpecies], a
- pop bc
- pop de
- pop hl
-
- ld a, [wd1ed]
- and a
- ret z
-
- scf
- ret
-; 4e607
-
-_EvolutionAnimation: ; 4e607
- ld a, $e4
- ld [rOBP0], a
-
- ld de, MUSIC_NONE
- call PlayMusic
-
- callba Function8cf53
-
- ld de, EvolutionGFX
- ld hl, VTiles0
- lb bc, BANK(EvolutionGFX), 8
- call Request2bpp
-
- xor a
- ld [Danger], a
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ld a, [Buffer1]
- ld [PlayerHPPal], a
-
- ld c, $0
- call Function4e703
- ld a, [Buffer1]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call Function4e708
-
- ld de, VTiles2
- ld hl, VTiles2 tile $31
- ld bc, $0031
- call Request2bpp
-
- ld a, $31
- ld [wd1ec], a
- call Function4e755
- ld a, [Buffer2]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- call Function4e711
- ld a, [Buffer1]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
-
- ld a, $1
- ld [hBGMapMode], a
- call Function4e794
- jr c, .asm_4e67c
-
- ld a, [Buffer1]
- call PlayCry
-
-.asm_4e67c
- ld de, MUSIC_EVOLUTION
- call PlayMusic
-
- ld c, 80
- call DelayFrames
-
- ld c, $1
- call Function4e703
- call Function4e726
- jr c, .asm_4e6df
-
- ld a, $cf
- ld [wd1ec], a
-
- call Function4e755
- xor a
- ld [wd1ed], a
-
- ld a, [Buffer2]
- ld [PlayerHPPal], a
-
- ld c, $0
- call Function4e703
- call Function4e7a6
- callba Function8cf53
- call Function4e794
- jr c, .asm_4e6de
-
- ld a, [wc2c6]
- push af
- ld a, $1
- ld [wc2c6], a
- ld a, [CurPartySpecies]
- push af
-
- ld a, [PlayerHPPal]
- ld [CurPartySpecies], a
- hlcoord 7, 2
- ld d, $0
- ld e, $4
- predef Functiond008e
-
- pop af
- ld [CurPartySpecies], a
- pop af
- ld [wc2c6], a
- ret
-
-.asm_4e6de
- ret
-
-.asm_4e6df
- ld a, $1
- ld [wd1ed], a
-
- ld a, [Buffer1]
- ld [PlayerHPPal], a
-
- ld c, $0
- call Function4e703
- call Function4e7a6
- callba Function8cf53
- call Function4e794
- ret c
-
- ld a, [PlayerHPPal]
- call PlayCry
- ret
-; 4e703
-
-Function4e703: ; 4e703
- ld b, $b
- jp GetSGBLayout
-; 4e708
-
-Function4e708: ; 4e708
- call GetBaseData
- hlcoord 7, 2
- jp Function3786
-; 4e711
-
-Function4e711: ; 4e711
- call GetBaseData
- ld a, $1
- ld [wc2c6], a
- ld de, VTiles2
- predef Function5108b
- xor a
- ld [wc2c6], a
- ret
-; 4e726
-
-Function4e726: ; 4e726
- call ClearJoypad
- ld bc, $010e
-.asm_4e72c
- push bc
- call Function4e779
- pop bc
- jr c, .asm_4e73f
- push bc
- call Function4e741
- pop bc
- inc b
-rept 2
- dec c
-endr
- jr nz, .asm_4e72c
- and a
- ret
-
-.asm_4e73f
- scf
- ret
-; 4e741
-
-Function4e741: ; 4e741
-.asm_4e741
- ld a, $cf
- ld [wd1ec], a
- call Function4e755
- ld a, $31
- ld [wd1ec], a
- call Function4e755
- dec b
- jr nz, .asm_4e741
- ret
-; 4e755
-
-Function4e755: ; 4e755
- push bc
- xor a
- ld [hBGMapMode], a
- hlcoord 7, 2
- lb bc, 7, 7
- ld de, $000d
-.asm_4e762
- push bc
-.asm_4e763
- ld a, [wd1ec]
- add [hl]
- ld [hli], a
- dec c
- jr nz, .asm_4e763
- pop bc
- add hl, de
- dec b
- jr nz, .asm_4e762
- ld a, $1
- ld [hBGMapMode], a
- call WaitBGMap
- pop bc
- ret
-; 4e779
-
-Function4e779: ; 4e779
-.asm_4e779
- call DelayFrame
- push bc
- call JoyTextDelay
- ld a, [hJoyDown]
- pop bc
- and B_BUTTON
- jr nz, .asm_4e78c
-.asm_4e787
- dec c
- jr nz, .asm_4e779
- and a
- ret
-
-.asm_4e78c
- ld a, [wd1e9]
- and a
- jr nz, .asm_4e787
- scf
- ret
-; 4e794
-
-Function4e794: ; 4e794
- ld a, [CurPartyMon]
- ld hl, PartyMon1Species
- call GetPartyLocation
- ld b, h
- ld c, l
- callba Function4e53f
- ret
-; 4e7a6
-
-Function4e7a6: ; 4e7a6
- ld a, [wd1ed]
- and a
- ret nz
- ld de, SFX_EVOLVED
- call PlaySFX
- ld hl, wJumptableIndex
- ld a, [hl]
- push af
- ld [hl], $0
-.asm_4e7b8
- call Function4e7cf
- jr nc, .asm_4e7c2
- call Function4e80c
- jr .asm_4e7b8
-
-.asm_4e7c2
- ld c, $20
-.asm_4e7c4
- call Function4e80c
- dec c
- jr nz, .asm_4e7c4
- pop af
- ld [wJumptableIndex], a
- ret
-; 4e7cf
-
-Function4e7cf: ; 4e7cf
- ld hl, wJumptableIndex
- ld a, [hl]
- cp $20
- ret nc
- ld d, a
- inc [hl]
- and $1
- jr nz, .asm_4e7e6
- ld e, $0
- call Function4e7e8
- ld e, $10
- call Function4e7e8
-
-.asm_4e7e6
- scf
- ret
-; 4e7e8
-
-Function4e7e8: ; 4e7e8
- push de
- ld de, $4858
- ld a, $13
- call Function3b2a
- ld hl, $000b
- add hl, bc
- ld a, [wJumptableIndex]
- and $e
- sla a
- pop de
- add e
- ld [hl], a
- ld hl, $0003
- add hl, bc
- ld [hl], $0
- ld hl, $000c
- add hl, bc
- ld [hl], $10
- ret
-; 4e80c
-
-Function4e80c: ; 4e80c
- push bc
- callab Function8cf69
- ld a, [$ff9b]
- and $e
- srl a
-rept 2
- inc a
-endr
- and $7
- ld b, a
- ld hl, Sprites + 3
- ld c, $28
-.asm_4e823
- ld a, [hl]
- or b
- ld [hli], a
-rept 3
- inc hl
-endr
- dec c
- jr nz, .asm_4e823
- pop bc
- call DelayFrame
- ret
-; 4e831
-
-
-EvolutionGFX:
-INCBIN "gfx/evo/bubble_large.2bpp"
-INCBIN "gfx/evo/bubble.2bpp"
-
-Function4e881: ; 4e881
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- call Functione51
- call LoadFontsBattleExtra
- ld hl, VBGMap0
- 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, UnknownText_0x4e8bd
- call PrintText
- call Function3200
- call SetPalettes
- ret
-; 4e8bd
-
-UnknownText_0x4e8bd: ; 0x4e8bd
- ; SAVING RECORD… DON'T TURN OFF!
- text_jump UnknownText_0x1bd39e
- db "@"
-; 0x4e8c2
-
-
-Function4e8c2: ; 4e8c2
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- call DisableLCD
- call Functione51
- call LoadFontsBattleExtra
- ld hl, VBGMap0
- ld bc, VBGMap1 - VBGMap0
- ld a, " "
- call ByteFill
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- xor a
- call ByteFill
- ld hl, wd000
- ld c, $40
-.asm_4e8ee
- ld a, -1
- ld [hli], a
- ld a, " "
- ld [hli], a
- dec c
- jr nz, .asm_4e8ee
- xor a
- ld [hSCY], a
- ld [hSCX], a
- call EnableLCD
- call Function3200
- call SetPalettes
- ret
-; 4e906
-
-Function4e906: ; 4e906
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, w6_d000
- ld bc, w6_d400 - w6_d000
- ld a, " "
- call ByteFill
- ld hl, VBGMap0
- ld de, w6_d000
- ld b, $0
- ld c, $40
- call Request2bpp
- pop af
- ld [rSVBK], a
- ret
-; 4e929
-
-Function4e929: ; 4e929
+Function4e929: ; mobile function
ld h, b
ld l, c
call Function4e930
@@ -45673,35 +31977,35 @@ Function4e930: ; 4e930
ld a, [hli]
xor [hl]
ld c, a
- jr z, .asm_4e941
+ jr z, .skip_male_trainers
srl c
srl c
-.asm_4e939
+.male_trainer_loop
srl c
ld a, c
cp MaleTrainersEnd - MaleTrainers - 1
- jr nc, .asm_4e939
+ jr nc, .male_trainer_loop
inc c
-.asm_4e941
+.skip_male_trainers
ld a, [de]
cp $1
ld hl, MaleTrainers
- jr nz, .asm_4e958
+ jr nz, .finished
ld hl, FemaleTrainers
ld a, c
and a
- jr z, .asm_4e958
+ jr z, .finished
-.asm_4e950
+.female_trainer_loop
srl c
ld a, c
cp FemaleTrainersEnd - FemaleTrainers - 1
- jr nc, .asm_4e950
+ jr nc, .female_trainer_loop
inc c
-.asm_4e958
+.finished
ld b, $0
add hl, bc
ld a, [hl]
@@ -45752,114 +32056,7 @@ FemaleTrainersEnd:
; 4e980
-Function4e980: ; 4e980
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Function4e998
- ld a, rSCX - $ff00
- ld [hLCDStatCustom], a
- call Function4e9ab
- xor a
- ld [hLCDStatCustom], a
- pop af
- ld [rSVBK], a
- ret
-; 4e998
-
-Function4e998: ; 4e998
- call Function4e9e5
- ld a, $90
- ld [hSCX], a
- ld a, $e4
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- ret
-; 4e9ab
-
-Function4e9ab: ; 4e9ab
- ld d, $90
- ld e, $72
- ld a, $48
- inc a
-.asm_4e9b2
- push af
-.asm_4e9b3
- ld a, [rLY]
- cp $60
- jr c, .asm_4e9b3
- ld a, d
- ld [hSCX], a
- call Function4e9f1
-rept 2
- inc e
-endr
-rept 2
- dec d
-endr
- pop af
- push af
- cp $1
- jr z, .asm_4e9ce
- push de
- call Function4e9d6
- pop de
-
-.asm_4e9ce
- call DelayFrame
- pop af
- dec a
- jr nz, .asm_4e9b2
- ret
-; 4e9d6
-
-Function4e9d6: ; 4e9d6
- ld hl, Sprites + 1
- ld c, $12
- ld de, $0004
-.asm_4e9de
-rept 2
- dec [hl]
-endr
- add hl, de
- dec c
- jr nz, .asm_4e9de
- ret
-; 4e9e5
-
-Function4e9e5: ; 4e9e5
- ld hl, LYOverrides
- ld a, $90
- ld bc, SCREEN_HEIGHT_PX
- call ByteFill
- ret
-; 4e9f1
-
-Function4e9f1: ; 4e9f1
- ld hl, LYOverrides
- ld a, d
- ld c, $3e
-.asm_4e9f7
- ld [hli], a
- dec c
- jr nz, .asm_4e9f7
- ld a, e
- ld c, $22
-.asm_4e9fe
- ld [hli], a
- dec c
- jr nz, .asm_4e9fe
- xor a
- ld c, $30
-.asm_4ea05
- ld [hli], a
- dec c
- jr nz, .asm_4ea05
- ret
-; 4ea0a
-
+INCLUDE "battle/sliding_intro.asm"
Function4ea0a: ; 4ea0a
@@ -45869,23 +32066,27 @@ Function4ea0a: ; 4ea0a
call MobileTextBorder
pop af
dec a
- ld bc, $000c
- ld hl, wdc1a
+ ld bc, $c
+ ld hl, w5_dc1a
call AddNTimes
ld de, wcd53
- ld bc, $000c
- ld a, $5
+ ld bc, $c
+ ld a, $5 ; BANK(w5_dc1a)
call FarCopyWRAM
+
ld a, [rSVBK]
push af
ld a, $1
ld [rSVBK], a
+
ld bc, wcd53
decoord 1, 14
callba Function11c0c6
+
pop af
ld [rSVBK], a
- ld c, $b4
+
+ ld c, 180
call DelayFrames
ret
; 4ea44
@@ -45949,1383 +32150,13 @@ INCLUDE "event/poke_seer.asm"
SECTION "bank14", ROMX, BANK[$14]
-SelectMonFromParty: ; 50000
- call DisableSpriteUpdates
- xor a
- ld [PartyMenuActionText], a
- call WhiteBGMap
- call Function5003f
- call WaitBGMap
- call SetPalettes
- call DelayFrame
- call PartyMenuSelect
- call Function2b74
- ret
-; 5001d
-
-
-Function5001d: ; 5001d
- ld a, b
- ld [PartyMenuActionText], a
- call DisableSpriteUpdates
- call WhiteBGMap
- call Function5003f
- call WaitBGMap
- ld b, $a
- call GetSGBLayout
- call SetPalettes
- call DelayFrame
- call PartyMenuSelect
- call Function2b74
- ret
-; 5003f
-
-Function5003f: ; 5003f
- call Function5004f
- call Function50405
- call Function503e0
- call WritePartyMenuTilemap
- call PrintPartyMenuText
- ret
-; 5004f
-
-Function5004f: ; 5004f
- call LoadFontsBattleExtra
- callab Function8ad1 ; engine/color.asm
- callab InefficientlyClear121BytesAtwc300
- ret
-; 5005f
-
-
-WritePartyMenuTilemap: ; 0x5005f
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl] ; Disable text delay
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill ; blank the tilemap
- call Function50396 ; This reads from a pointer table???
-.asm_50077
- ld a, [hli]
- cp $ff
- jr z, .asm_50084 ; 0x5007a $8
- push hl
- ld hl, Jumptable_50089
- rst JumpTable
- pop hl
- jr .asm_50077 ; 0x50082 $f3
-.asm_50084
- pop af
- ld [Options], a
- ret
-; 0x50089
-
-Jumptable_50089: ; 50089
- dw Function5009b
- dw Function500cf
- dw Function50138
- dw Function50176
- dw Function501b2
- dw Function501e0
- dw Function5022f
- dw Function502b1
- dw Function50307
-; 5009b
-
-Function5009b: ; 5009b
- hlcoord 3, 1
- ld a, [PartyCount]
- and a
- jr z, .asm_500bf
- ld c, a
- ld b, $0
-.asm_500a7
- push bc
- push hl
- push hl
- ld hl, PartyMonNicknames
- ld a, b
- call GetNick
- pop hl
- call PlaceString
- pop hl
- ld de, $0028
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_500a7
-
-.asm_500bf
-rept 2
- dec hl
-endr
- ld de, String_500c8
- call PlaceString
- ret
-; 500c8
-
-String_500c8: ; 500c8
- db "CANCEL@"
-; 500cf
-
-
-Function500cf: ; 500cf
- xor a
- ld [wcda9], a
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, $0
- hlcoord 11, 2
-.asm_500de
- push bc
- push hl
- call Function50389
- jr z, .asm_50103
- push hl
- call Function50117
- pop hl
- ld d, $6
- ld b, $0
- call DrawHPBar
- ld hl, wcd9b
- ld a, [wcda9]
- ld c, a
- ld b, $0
- add hl, bc
- call SetHPPal
- ld b, $fc
- call GetSGBLayout
-
-.asm_50103
- ld hl, wcda9
- inc [hl]
- pop hl
- ld de, $0028
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_500de
- ld b, $a
- call GetSGBLayout
- ret
-; 50117
-
-Function50117: ; 50117
- ld a, b
- ld bc, PartyMon2 - PartyMon1
- ld hl, PartyMon1HP
- call AddNTimes
- ld a, [hli]
- or [hl]
- jr nz, .asm_50129
- xor a
- ld e, a
- ld c, a
- ret
-
-.asm_50129
- dec hl
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld e, a
- predef Functionc699
- ret
-; 50138
-
-Function50138: ; 50138
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, $0
- hlcoord 13, 1
-.asm_50143
- push bc
- push hl
- call Function50389
- jr z, .asm_5016b
- push hl
- ld a, b
- ld bc, PartyMon2 - PartyMon1
- ld hl, PartyMon1HP
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- push de
- lb bc, 2, 3
- call PrintNum
- pop de
- ld a, $f3
- ld [hli], a
-rept 2
- inc de
-endr
- lb bc, 2, 3
- call PrintNum
-
-.asm_5016b
- pop hl
- ld de, $0028
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_50143
- ret
-; 50176
-
-Function50176: ; 50176
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 8, 2
-.asm_50181
- push bc
- push hl
- call Function50389
- jr z, .asm_501a7
- push hl
- ld a, b
- ld bc, PartyMon2 - PartyMon1
- ld hl, PartyMon1Level
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- ld a, [de]
- cp 100 ; This is distinct from MAX_LEVEL.
- jr nc, .asm_501a1
- ld a, "<LV>"
- ld [hli], a
- ld bc, $4102
-.asm_501a1
- lb bc, PRINTNUM_RIGHTALIGN | 1, 3
- call PrintNum
-
-.asm_501a7
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_50181
- ret
-; 501b2
-
-Function501b2: ; 501b2
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 5, 2
-.asm_501bd
- push bc
- push hl
- call Function50389
- jr z, .asm_501d5
- push hl
- ld a, b
- ld bc, PartyMon2 - PartyMon1
- ld hl, PartyMon1Status
- call AddNTimes
- ld e, l
- ld d, h
- pop hl
- call Function50d0a
-
-.asm_501d5
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_501bd
- ret
-; 501e0
-
-Function501e0: ; 501e0
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.asm_501eb
- push bc
- push hl
- call Function50389
- jr z, .asm_5020a
- push hl
- ld hl, PartySpecies
- ld e, b
- ld d, 0
- add hl, de
- ld a, [hl]
- ld [CurPartySpecies], a
- predef CanLearnTMHMMove
- pop hl
- call Function50215
- call PlaceString
-
-.asm_5020a
- pop hl
- ld de, SCREEN_WIDTH * 2
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_501eb
- ret
-; 50215
-
-Function50215: ; 50215
- ld a, c
- and a
- jr nz, .asm_5021d
- ld de, String_50226
- ret
-
-.asm_5021d
- ld de, String_50221
- ret
-; 50221
-
-String_50221: ; 50221
- db "ABLE@"
-; 50226
-
-String_50226: ; 50226
- db "NOT ABLE@"
-; 5022f
-
-
-Function5022f: ; 5022f
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.asm_5023a
- push bc
- push hl
- call Function50389
- jr z, .asm_5025d
- push hl
- ld a, b
- ld bc, PartyMon2 - PartyMon1
- ld hl, PartyMon1Species
- call AddNTimes
- ld a, [hl]
- dec a
- ld e, a
- ld d, 0
- ld hl, EvosAttacksPointers
-rept 2
- add hl, de
-endr
- call Function50268
- pop hl
- call PlaceString
-
-.asm_5025d
- pop hl
- ld de, $0028
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_5023a
- ret
-; 50268
-
-Function50268: ; 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
- ld hl, StringBuffer1
-.asm_50287
- ld a, [hli]
- and a
- jr z, .asm_5029f
-rept 2
- inc hl
-endr
- cp EVOLVE_ITEM
- jr nz, .asm_50287
-rept 2
- dec hl
-endr
- ld a, [CurItem]
- cp [hl]
-rept 2
- inc hl
-endr
- jr nz, .asm_50287
- ld de, String_502a3
- ret
-
-.asm_5029f
- ld de, String_502a8
- ret
-; 502a3
-
-String_502a3: ; 502a3
- db "ABLE@"
-; 502a8
-String_502a8: ; 502a8
- db "NOT ABLE@"
-; 502b1
-
-
-Function502b1: ; 502b1
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 2
-.asm_502bc
- push bc
- push hl
- call Function50389
- jr z, .asm_502e3
- ld [CurPartySpecies], a
- push hl
- ld a, b
- ld [CurPartyMon], a
- xor a
- ld [MonType], a
- call GetGender
- ld de, String_502fe
- jr c, .asm_502df
- ld de, String_502ee
- jr nz, .asm_502df
- ld de, String_502f5
-
-.asm_502df
- pop hl
- call PlaceString
-
-.asm_502e3
- pop hl
- ld de, $0028
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_502bc
- ret
-; 502ee
-
-String_502ee: ; 502ee
- db "♂…MALE@"
-; 502f5
-
-String_502f5: ; 502f5
- db "♀…FEMALE@"
-; 502fe
-
-String_502fe: ; 502fe
- db "…UNKNOWN@"
-; 50307
-
-
-Function50307: ; 50307
- ld a, [PartyCount]
- and a
- ret z
- ld c, a
- ld b, 0
- hlcoord 12, 1
-.asm_50312
- push bc
- push hl
- ld de, String_50372
- call PlaceString
- pop hl
- ld de, $0028
- add hl, de
- pop bc
- inc b
- dec c
- jr nz, .asm_50312
- ld a, l
- ld e, $b
- sub e
- ld l, a
- ld a, h
- sbc $0
- ld h, a
- ld de, String_50379
- call PlaceString
- ld b, $3
- ld c, $0
- ld hl, DefaultFlypoint
- ld a, [hl]
-.asm_5033b
- push hl
- push bc
- hlcoord 12, 1
-.asm_50340
- and a
- jr z, .asm_5034a
- ld de, $0028
- add hl, de
- dec a
- jr .asm_50340
-
-.asm_5034a
- ld de, String_5036b
- push hl
- call PlaceString
- pop hl
- pop bc
- push bc
- push hl
- ld a, c
- ld hl, Strings_50383
- call GetNthString
- ld d, h
- ld e, l
- pop hl
- call PlaceString
- pop bc
- pop hl
- inc hl
- ld a, [hl]
- inc c
- dec b
- ret z
- jr .asm_5033b
-; 5036b
-
-String_5036b: ; 5036b
- db " ばんめ @" ; Place
-; 50372
-String_50372: ; 50372
- db "さんかしない@" ; Cancel
-; 50379
-String_50379: ; 50379
- db "けってい やめる@" ; Quit
-; 50383
-Strings_50383: ; 50383
- db "1@", "2@", "3@" ; 1st, 2nd, 3rd
-; 50389
-
-
-Function50389: ; 50389
- ld a, PartySpecies % $100
- add b
- ld e, a
- ld a, PartySpecies / $100
- adc 0
- ld d, a
- ld a, [de]
- cp EGG
- ret
-; 50396
-
-Function50396: ; 50396
- ld a, [PartyMenuActionText]
- and $f0
- jr nz, .asm_503ae
- ld a, [PartyMenuActionText]
- and $f
- ld e, a
- ld d, 0
- ld hl, Unknown_503b2
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-.asm_503ae
- ld hl, Unknown_503c6
- ret
-; 503b2
-
-Unknown_503b2: ; 503b2
- dw Unknown_503c6
- dw Unknown_503c6
- dw Unknown_503c6
- dw Unknown_503cc
- dw Unknown_503c6
- dw Unknown_503d1
- dw Unknown_503d6
- dw Unknown_503d6
- dw Unknown_503c6
- dw Unknown_503db
-; 503c6
-
-Unknown_503c6: db 0, 1, 2, 3, 4, $ff
-Unknown_503cc: db 0, 5, 3, 4, $ff
-Unknown_503d1: db 0, 6, 3, 4, $ff
-Unknown_503d6: db 0, 7, 3, 4, $ff
-Unknown_503db: db 0, 8, 3, 4, $ff
-; 503e0
-
-
-Function503e0: ; 503e0
- ld hl, PartyCount
- ld a, [hli]
- and a
- ret z
- ld c, a
- xor a
- ld [hObjectStructIndexBuffer], a
-.asm_503ea
- push bc
- push hl
- ld hl, Function8e83f
- ld a, BANK(Function8e83f)
- ld e, $0
- rst FarCall
- ld a, [hObjectStructIndexBuffer]
- inc a
- ld [hObjectStructIndexBuffer], a
- pop hl
- pop bc
- dec c
- jr nz, .asm_503ea
- callab Function8cf69
- ret
-; 50405
-
-Function50405: ; 50405
- xor a
- ld [wd0e3], a
- ld de, Unknown_5044f
- call Function1bb1
- ld a, [PartyCount]
- inc a
- ld [wcfa3], a
- dec a
- ld b, a
- ld a, [wd0d8]
- and a
- jr z, .asm_50422
- inc b
- cp b
- jr c, .asm_50424
-
-.asm_50422
- ld a, $1
-
-.asm_50424
- ld [wcfa9], a
- ld a, $3
- ld [wcfa8], a
- ret
-; 5042d
-
-Function5042d: ; 0x5042d
- ld de, Unknown_5044f
- call Function1bb1
- ld a, [PartyCount]
- ld [wcfa3], a
- ld b, a
- ld a, [wd0d8]
- and a
- jr z, .asm_50444
- inc b
- cp b
- jr c, .asm_50446
-.asm_50444
- ld a, $1
-.asm_50446
- ld [wcfa9], a
- ld a, $3
- ld [wcfa8], a
- ret
-; 5044f (14:444f)
-
-Unknown_5044f: ; 5044f
-; cursor y
-; cursor x
-; list length
-; ?
-; bit 6: animate sprites bit 5: wrap around
-; ?
-; distance between items (hi: y, lo: x)
-; allowed buttons (mask)
- db $01, $00, $00, $01, $60, $00, $20, $00
-; 50457
-
-PartyMenuSelect: ; 0x50457
-; sets carry if exitted menu.
- call Function1bc9
- call Function1bee
- ld a, [PartyCount]
- inc a
- ld b, a
- ld a, [wcfa9] ; menu selection?
- cp b
- jr z, .exitmenu ; CANCEL
- ld [wd0d8], a
- ld a, [hJoyLast]
- ld b, a
- bit 1, b
- jr nz, .exitmenu ; B button?
- ld a, [wcfa9]
- 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
-
-.exitmenu
- ld de, SFX_READ_TEXT_2
- call PlaySFX
- call WaitSFX
- scf
- ret
-; 0x5049a
-
-
-PrintPartyMenuText: ; 5049a
- hlcoord 0, 14
- ld bc, $0212
- call TextBox
- ld a, [PartyCount]
- and a
- jr nz, .haspokemon
- ld de, YouHaveNoPKMNString
- jr .gotstring
-.haspokemon ; 504ae
- ld a, [PartyMenuActionText]
- and $f ; drop high nibble
- ld hl, PartyMenuStrings
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld d, [hl]
- ld e, a
-.gotstring ; 504be
- ld a, [Options]
- push af
- set 4, a ; disable text delay
- ld [Options], a
- hlcoord 1, 16 ; Coord
- call PlaceString
- pop af
- ld [Options], a
- ret
-; 0x504d2
-
-PartyMenuStrings: ; 0x504d2
- dw ChooseAMonString
- dw UseOnWhichPKMNString
- dw WhichPKMNString
- dw TeachWhichPKMNString
- dw MoveToWhereString
- dw UseOnWhichPKMNString
- dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString
- dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString
- dw ToWhichPKMNString
-
-ChooseAMonString: ; 0x504e4
- db "Choose a #MON.@"
-UseOnWhichPKMNString: ; 0x504f3
- db "Use on which <PK><MN>?@"
-WhichPKMNString: ; 0x50504
- db "Which <PK><MN>?@"
-TeachWhichPKMNString: ; 0x5050e
- db "Teach which <PK><MN>?@"
-MoveToWhereString: ; 0x5051e
- db "Move to where?@"
-ChooseAFemalePKMNString: ; 0x5052d ; UNUSED
- db "Choose a ♀<PK><MN>.@"
-ChooseAMalePKMNString: ; 0x5053b ; UNUSED
- db "Choose a ♂<PK><MN>.@"
-ToWhichPKMNString: ; 0x50549
- db "To which <PK><MN>?@"
-
-YouHaveNoPKMNString: ; 0x50556
- db "You have no <PK><MN>!@"
-
-
-Function50566: ; 50566
- ld a, [CurPartyMon]
- ld hl, PartyMonNicknames
- call GetNick
- ld a, [PartyMenuActionText]
- and $f
- ld hl, Unknown_5057b
- call Function505c1
- ret
-; 5057b
-
-Unknown_5057b: ; 5057b
- dw UnknownText_0x50594
- dw UnknownText_0x5059e
- dw UnknownText_0x505a3
- dw UnknownText_0x505a8
- dw UnknownText_0x50599
- dw UnknownText_0x5058f
- dw UnknownText_0x505ad
- dw UnknownText_0x505b2
- dw UnknownText_0x505b7
- dw UnknownText_0x505bc
-; 5058f
-
-UnknownText_0x5058f: ; 0x5058f
- ; recovered @ HP!
- text_jump UnknownText_0x1bc0a2
- db "@"
-; 0x50594
-
-UnknownText_0x50594: ; 0x50594
- ; 's cured of poison.
- text_jump UnknownText_0x1bc0bb
- db "@"
-; 0x50599
-
-UnknownText_0x50599: ; 0x50599
- ; 's rid of paralysis.
- text_jump UnknownText_0x1bc0d2
- db "@"
-; 0x5059e
-
-UnknownText_0x5059e: ; 0x5059e
- ; 's burn was healed.
- text_jump UnknownText_0x1bc0ea
- db "@"
-; 0x505a3
-
-UnknownText_0x505a3: ; 0x505a3
- ; was defrosted.
- text_jump UnknownText_0x1bc101
- db "@"
-; 0x505a8
-
-UnknownText_0x505a8: ; 0x505a8
- ; woke up.
- text_jump UnknownText_0x1bc115
- db "@"
-; 0x505ad
-
-UnknownText_0x505ad: ; 0x505ad
- ; 's health returned.
- text_jump UnknownText_0x1bc123
- db "@"
-; 0x505b2
-
-UnknownText_0x505b2: ; 0x505b2
- ; is revitalized.
- text_jump UnknownText_0x1bc13a
- db "@"
-; 0x505b7
-
-UnknownText_0x505b7: ; 0x505b7
- ; grew to level @ !@ @
- text_jump UnknownText_0x1bc14f
- db "@"
-; 0x505bc
-
-UnknownText_0x505bc: ; 0x505bc
- ; came to its senses.
- text_jump UnknownText_0x1bc16e
- db "@"
-; 0x505c1
-
-
-Function505c1: ; 505c1
- ld e, a
- ld d, 0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [Options]
- push af
- set 4, a
- ld [Options], a
- call PrintText
- pop af
- ld [Options], a
- ret
-; 505da
-
-DoPoisonStep:: ; 505da
- ld a, [PartyCount]
- and a
- jr z, .asm_5062c
- xor a
- ld c, 7
- ld hl, EngineBuffer1
-.asm_505e6
- ld [hli], a
- dec c
- jr nz, .asm_505e6
- xor a
- ld [CurPartyMon], a
-.asm_505ee
- call Function5062e
- jr nc, .asm_50605
- ld a, [CurPartyMon]
- ld e, a
- ld d, 0
- ld hl, wd03f
- add hl, de
- ld [hl], c
- ld a, [EngineBuffer1]
- or c
- ld [EngineBuffer1], a
-
-.asm_50605
- ld a, [PartyCount]
- ld hl, CurPartyMon
- inc [hl]
- cp [hl]
- jr nz, .asm_505ee
- ld a, [EngineBuffer1]
- and $2
- jr nz, .asm_50622
- ld a, [EngineBuffer1]
- and $1
- jr z, .asm_5062c
- call Function50658
- xor a
- ret
-
-.asm_50622
- ld a, BANK(UnknownScript_0x50669)
- ld hl, UnknownScript_0x50669
- call CallScript
- scf
- ret
-
-.asm_5062c
- xor a
- ret
-; 5062e
-
-Function5062e: ; 5062e
- ld a, PartyMon1Status - PartyMon1
- call GetPartyParamLocation
- ld a, [hl]
- and 1 << PSN
- ret z
-
- ld a, PartyMon1HP - PartyMon1
- call GetPartyParamLocation
- ld a, [hli]
- ld b, a
- ld c, [hl]
-
- or c
- ret z
-
- dec bc
- ld [hl], c
- dec hl
- ld [hl], b
-
- ld a, b
- or c
- jr nz, .not_fainted
-
- ld a, PartyMon1Status - PartyMon1
- call GetPartyParamLocation
- ld [hl], 0
- ld c, 2
- scf
- ret
-
-.not_fainted
- ld c, 1
- scf
- ret
-; 50658
-
-Function50658: ; 50658
- ld de, SFX_POISON
- call PlaySFX
- ld b, $2
- predef Functioncbcdd
- call DelayFrame
- ret
-; 50669
-
-UnknownScript_0x50669: ; 50669
- callasm Function50658
- loadfont
- callasm Function5067b
- iffalse UnknownScript_0x50677
- loadmovesprites
- end
-; 50677
-
-UnknownScript_0x50677: ; 50677
- farjump UnknownScript_0x124c8
-; 5067b
-
-Function5067b: ; 5067b
- xor a
- ld [CurPartyMon], a
- ld de, wd03f
-.asm_50682
- push de
- ld a, [de]
- and 2
- jr z, .asm_5069c
- ld c, HAPPINESS_POISONFAINT
- callba ChangeHappiness
- callba GetPartyNick
- ld hl, PoisonFaintText
- call PrintText
-
-.asm_5069c
- pop de
- inc de
- ld hl, CurPartyMon
- inc [hl]
- ld a, [PartyCount]
- cp [hl]
- jr nz, .asm_50682
- predef CheckPlayerPartyForFitPkmn
- ld a, d
- ld [ScriptVar], a
- ret
-; 506b2
-
-PoisonFaintText: ; 506b2
- text_jump UnknownText_0x1c0acc
- db "@"
-; 506b7
-
-PoisonWhiteOutText: ; 506b7
- text_jump UnknownText_0x1c0ada
- db "@"
-; 506bc
-
-
-DoMovementFunctionc: ; 506bc
- ld hl, UnknownScript_0x506c8
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-; 506c8
-
-UnknownScript_0x506c8: ; 0x506c8
- reloadmappart
- special UpdateTimePals
- callasm GetPartyNick
- writetext UnknownText_0x50726
- closetext
- callasm SweetScentEncounter
- iffalse UnknownScript_0x506e9
- checkflag ENGINE_BUG_CONTEST_TIMER
- iftrue UnknownScript_0x506e5
- battlecheck
- startbattle
- returnafterbattle
- end
-; 0x506e5
-
-UnknownScript_0x506e5: ; 0x506e5
- farjump BugCatchingContestBattleScript
-; 0x506e9
-
-UnknownScript_0x506e9: ; 0x506e9
- writetext UnknownText_0x5072b
- closetext
- loadmovesprites
- end
-; 0x506ef
-
-SweetScentEncounter: ; 506ef
- callba CanUseSweetScent
- jr nc, .no_battle
- ld hl, StatusFlags2
- bit 2, [hl]
- jr nz, .not_in_bug_contest
- callba GetMapEncounterRate
- ld a, b
- and a
- jr z, .no_battle
- callba ChooseWildEncounter
- jr nz, .no_battle
- jr .start_battle
-
-.not_in_bug_contest
- callba ChooseWildEncounter_BugContest
-
-.start_battle
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.no_battle
- xor a
- ld [ScriptVar], a
- ld [BattleType], a
- ret
-; 50726
-
-UnknownText_0x50726: ; 0x50726
- ; used SWEET SCENT!
- text_jump UnknownText_0x1c0b03
- db "@"
-; 0x5072b
-
-UnknownText_0x5072b: ; 0x5072b
- ; Looks like there's nothing here…
- text_jump UnknownText_0x1c0b1a
- db "@"
-; 0x50730
-
-
-_Squirtbottle: ; 50730
- ld hl, UnknownScript_0x5073c
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-; 5073c
-
-UnknownScript_0x5073c: ; 0x5073c
- reloadmappart
- special UpdateTimePals
- callasm Function50753
- iffalse UnknownScript_0x5074b
- farjump WateredWeirdTreeScript
-; 0x5074b
-
-UnknownScript_0x5074b: ; 0x5074b
- jumptext UnknownText_0x5074e
-; 0x5074e
-
-UnknownText_0x5074e: ; 0x5074e
- ; sprinkled water. But nothing happened…
- text_jump UnknownText_0x1c0b3b
- db "@"
-; 0x50753
-
-Function50753: ; 50753
- ld a, [MapGroup]
- cp GROUP_ROUTE_36
- jr nz, .asm_50774
-
- ld a, [MapNumber]
- cp MAP_ROUTE_36
- jr nz, .asm_50774
-
- callba GetFacingObject
- jr c, .asm_50774
-
- ld a, d
- cp $17
- jr nz, .asm_50774
-
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_50774
- xor a
- ld [ScriptVar], a
- ret
-; 50779
-
-
-_CardKey: ; 50779
-; Are we even in the right map to use this?
- ld a, [MapGroup]
- cp GROUP_RADIO_TOWER_3F
- jr nz, .nope
-
- ld a, [MapNumber]
- cp MAP_RADIO_TOWER_3F
- jr nz, .nope
-; Are we facing the slot?
- ld a, [PlayerDirection]
- and $c
- cp OW_UP
- jr nz, .nope
-
- call GetFacingTileCoord
- ld a, d
- cp 18
- jr nz, .nope
- ld a, e
- cp 6
- jr nz, .nope
-; Let's use the Card Key.
- ld hl, .CardKeyScript
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-
-.nope
- ld a, $0
- ld [wd0ec], a
- ret
-; 507af
-
-.CardKeyScript: ; 0x507af
- loadmovesprites
- farjump MapRadioTower3FSignpost2Script
-; 0x507b4
-
-
-_BasementKey: ; 507b4
-; Are we even in the right map to use this?
- ld a, [MapGroup]
- cp GROUP_WAREHOUSE_ENTRANCE
- jr nz, .nope
-
- ld a, [MapNumber]
- cp MAP_WAREHOUSE_ENTRANCE
- jr nz, .nope
-; Are we on the tile in front of the door?
- call GetFacingTileCoord
- ld a, d
- cp 22
- jr nz, .nope
- ld a, e
- cp 10
- jr nz, .nope
-; Let's use the Basement Key
- ld hl, .BasementKeyScript
- call QueueScript
- ld a, 1
- ld [wd0ec], a
- ret
-
-.nope
- ld a, $0
- ld [wd0ec], a
- ret
-; 507e1
-
-.BasementKeyScript: ; 0x507e1
- loadmovesprites
- farjump BasementDoorScript
-; 0x507e6
-
-
-_SacredAsh: ; 507e6
- ld a, $0
- ld [wd0ec], a
- call CheckAnyFaintedMon
- ret nc
-
- ld hl, SacredAshScript
- call QueueScript
- ld a, $1
- ld [wd0ec], a
- ret
-; 507fb
-
-CheckAnyFaintedMon: ; 507fb
- ld de, PartyMon2 - PartyMon1
- ld bc, PartySpecies
- ld hl, PartyMon1HP
- ld a, [PartyCount]
- and a
- ret z
-
-.loop
- push af
- push hl
- ld a, [bc]
- inc bc
- cp EGG
- jr z, .next
-
- ld a, [hli]
- or [hl]
- jr z, .done
-
-.next
- pop hl
- add hl, de
- pop af
- dec a
- jr nz, .loop
- xor a
- ret
-
-.done
- pop hl
- pop af
- scf
- ret
-; 50821
-
-SacredAshScript: ; 0x50821
- special HealParty
- reloadmappart
- playsound SFX_WARP_TO
- special FadeBlackBGMap
- special FadeInBGMap
- special FadeBlackBGMap
- special FadeInBGMap
- special FadeBlackBGMap
- special FadeInBGMap
- waitbutton
- writetext UnknownText_0x50845
- playsound SFX_CAUGHT_MON
- waitbutton
- closetext
- loadmovesprites
- end
-; 0x50845
-
-UnknownText_0x50845: ; 0x50845
- ; 's #MON were all healed!
- text_jump UnknownText_0x1c0b65
- db "@"
-; 0x5084a
+INCLUDE "engine/party_menu.asm"
+INCLUDE "event/poisonstep.asm"
+INCLUDE "event/sweet_scent.asm"
+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
@@ -47340,11 +32171,11 @@ CopyPkmnToTempMon: ; 5084a
ld a, [MonType]
ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
and a
jr z, .copywholestruct
ld hl, OTPartyMon1Species
- ld bc, OTPartyMon2 - OTPartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
cp OTPARTYMON
jr z, .copywholestruct
ld bc, BOXMON_STRUCT_LENGTH
@@ -47355,7 +32186,7 @@ CopyPkmnToTempMon: ; 5084a
ld a, [CurPartyMon]
call AddNTimes
ld de, TempMon
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
.done
@@ -47374,21 +32205,21 @@ Function50890: ; 50890
; 50893
Function50893: ; 50893
- ld hl, TempMonLevel - TempMon
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
ld [CurPartyLevel], a
- ld hl, TempMonMaxHP - TempMon
+ ld hl, MON_MAXHP
add hl, bc
ld d, h
ld e, l
- ld hl, TempMonExp + 2 - TempMon
+ ld hl, MON_EXP + 2
add hl, bc
push bc
ld b, $1
predef CalcPkmnStats
pop bc
- ld hl, TempMonHP - TempMon
+ ld hl, MON_HP
add hl, bc
ld d, h
ld e, l
@@ -47403,14 +32234,14 @@ Function50893: ; 50893
.asm_508c1
push bc
- ld hl, TempMonMaxHP - TempMon
+ ld hl, MON_MAXHP
add hl, bc
ld bc, 2
call CopyBytes
pop bc
.asm_508cd
- ld hl, TempMonStatus - TempMon
+ ld hl, MON_STATUS
add hl, bc
xor a
ld [hli], a
@@ -47608,7 +32439,7 @@ DrawHP: ; 50b10
ld c, e
.asm_50b41
- predef Functionc699
+ predef DrawPartyMenuHPBar
ld a, 6
ld d, a
ld c, a
@@ -47621,11 +32452,11 @@ DrawHP: ; 50b10
push de
push hl
push hl
- call DrawHPBar
+ call DrawBattleHPBar
pop hl
; Print HP
- ld bc, $0015 ; move (1,1)
+ ld bc, $15 ; move (1,1)
add hl, bc
ld de, TempMonHP
ld a, [MonType]
@@ -47709,7 +32540,7 @@ GetGender: ; 50bdd
; 0: PartyMon
ld hl, PartyMon1DVs
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [MonType]
and a
jr z, .PartyMon
@@ -47721,7 +32552,7 @@ GetGender: ; 50bdd
; 2: sBoxMon
ld hl, sBoxMon1DVs
- ld bc, sBoxMon2 - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
dec a
jr z, .sBoxMon
@@ -47848,12 +32679,12 @@ endr
push bc
push hl
push de
- ld hl, wcfa9
+ ld hl, MenuSelection2
ld a, [hl]
push af
ld [hl], b
push hl
- callab Functionf8ec
+ callab GetMaxPPOfMove
pop hl
pop af
ld [hl], a
@@ -47916,7 +32747,7 @@ Function50cd0: ; 50cd0
ret
; 50cdb
-Function50cdb: ; 50cdb
+Function50cdb: ; unreferenced predef
push hl
push hl
ld hl, PartyMonNicknames
@@ -47930,12 +32761,12 @@ Function50cdb: ; 50cdb
cp EGG
jr z, .asm_50d09
push hl
- ld bc, $fff4
+ ld bc, -12
add hl, bc
ld b, $0
call DrawEnemyHP
pop hl
- ld bc, $0005
+ ld bc, 5
add hl, bc
push de
call PrintLevel
@@ -47946,7 +32777,7 @@ Function50cdb: ; 50cdb
; 50d0a
-Function50d0a: ; 50d0a
+PlaceStatusString: ; 50d0a
push de
rept 2
inc de
@@ -47957,10 +32788,10 @@ endr
ld a, [de]
or b
pop de
- jr nz, Function50d2e
+ jr nz, PlaceNonFaintStatus
push de
ld de, FntString
- call Function50d25
+ call CopyStatusString
pop de
ld a, $1
and a
@@ -47971,7 +32802,7 @@ FntString: ; 50d22
db "FNT@"
; 50d25
-Function50d25: ; 50d25
+CopyStatusString: ; 50d25
ld a, [de]
inc de
ld [hli], a
@@ -47983,31 +32814,31 @@ Function50d25: ; 50d25
ret
; 50d2e
-Function50d2e: ; 50d2e
+PlaceNonFaintStatus: ; 50d2e
push de
ld a, [de]
ld de, PsnString
bit PSN, a
- jr nz, .asm_50d53
+ jr nz, .place
ld de, BrnString
bit BRN, a
- jr nz, .asm_50d53
+ jr nz, .place
ld de, FrzString
bit FRZ, a
- jr nz, .asm_50d53
+ jr nz, .place
ld de, ParString
bit PAR, a
- jr nz, .asm_50d53
+ jr nz, .place
ld de, SlpString
and SLP
- jr z, .asm_50d59
+ jr z, .no_status
-.asm_50d53
- call Function50d25
+.place
+ call CopyStatusString
ld a, $1
and a
-.asm_50d59
+.no_status
pop de
ret
; 50d5b
@@ -48132,43 +32963,43 @@ Function50db9: ; 50db9
; 50e1b
-Function50e1b: ; 50e1b
+CalcLevel: ; 50e1b
ld a, [TempMonSpecies]
ld [CurSpecies], a
call GetBaseData
ld d, 1
-.asm_50e26
+.next_level
inc d
ld a, d
cp (MAX_LEVEL + 1) % $100
- jr z, .asm_50e45
- call Function50e47
+ jr z, .got_level
+ call CalcExpAtLevel
push hl
ld hl, TempMonExp + 2
- ld a, [hMultiplicand + 2]
+ ld a, [hProduct + 3]
ld c, a
ld a, [hld]
sub c
- ld a, [hMultiplicand + 1]
+ ld a, [hProduct + 2]
ld c, a
ld a, [hld]
sbc c
- ld a, [hMultiplicand + 0]
+ ld a, [hProduct + 1]
ld c, a
ld a, [hl]
sbc c
pop hl
- jr nc, .asm_50e26
+ jr nc, .next_level
-.asm_50e45
+.got_level
dec d
ret
; 50e47
-Function50e47: ; 50e47
-
+CalcExpAtLevel: ; 50e47
+; (a/b)*n**3 + c*n**2 + d*n - e
ld a, [BaseGrowthRate]
rept 2
add a
@@ -48177,36 +33008,38 @@ endr
ld b, 0
ld hl, GrowthRates
add hl, bc
- call Function50eed
+; 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
+ 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
-
- call Function50eed
+; 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]
@@ -48215,7 +33048,7 @@ endr
push af
ld a, [hli]
push af
-
+; Multiply the level by d
xor a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
@@ -48224,68 +33057,70 @@ endr
ld a, [hli]
ld [hMultiplier], a
call Multiply
-
+; Subtract e
ld b, [hl]
ld a, [hProduct + 3]
sub b
- ld [$ffb6], a
+ ld [hMultiplicand + 2], a
ld b, $0
ld a, [hProduct + 2]
sbc b
- ld [$ffb5], a
+ 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, .asm_50ec8
-
+ jr nz, .subtract
+; Add c*n**2 to (d*n - e)
pop bc
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
add b
- ld [$ffb6], a
+ ld [hMultiplicand + 2], a
pop bc
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
adc b
- ld [$ffb5], a
+ ld [hMultiplicand + 1], a
pop bc
- ld a, [hMultiplicand]
+ ld a, [hProduct + 1]
adc b
ld [hMultiplicand], a
- jr .asm_50eda
+ jr .done_quadratic
-.asm_50ec8
+.subtract
+; Subtract c*n**2 from (d*n - e)
pop bc
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
sub b
- ld [$ffb6], a
+ ld [hMultiplicand + 2], a
pop bc
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
sbc b
- ld [$ffb5], a
+ ld [hMultiplicand + 1], a
pop bc
- ld a, [hMultiplicand]
+ ld a, [hProduct + 1]
sbc b
ld [hMultiplicand], a
-.asm_50eda
+.done_quadratic
+; Add (a/b)*n**3 to (d*n - e +/- c*n**2)
pop bc
- ld a, [$ffb6]
+ ld a, [hProduct + 3]
add b
- ld [$ffb6], a
+ ld [hMultiplicand + 2], a
pop bc
- ld a, [$ffb5]
+ ld a, [hProduct + 2]
adc b
- ld [$ffb5], a
+ ld [hMultiplicand + 1], a
pop bc
- ld a, [hMultiplicand]
+ ld a, [hProduct + 1]
adc b
ld [hMultiplicand], a
ret
; 50eed
-Function50eed: ; 50eed
+.LevelSquared: ; 50eed
xor a
ld [hMultiplicand + 0], a
ld [hMultiplicand + 1], a
@@ -48316,25 +33151,25 @@ ENDM
growth_rate 5, 4, 0, 0, 0 ; Slow
; 50f12
-Function50f12:
+_SwitchPartyMons:
ld a, [wd0e3]
dec a
ld [wd1ec], a
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [Buffer2], a ; wd1eb (aliases: MovementType)
cp b
- jr z, .asm_50f33
- call Function50f62
+ jr z, .skip
+ call .SwapPartymonViaSRAM
ld a, [wd1ec]
- call Function50f34
+ call .ClearSprite
ld a, [Buffer2] ; wd1eb (aliases: MovementType)
- call Function50f34
-.asm_50f33
+ call .ClearSprite
+.skip
ret
-Function50f34: ; 50f34 (14:4f34)
+.ClearSprite: ; 50f34 (14:4f34)
push af
hlcoord 0, 1
ld bc, 2 * SCREEN_WIDTH
@@ -48348,16 +33183,16 @@ Function50f34: ; 50f34 (14:4f34)
call AddNTimes
ld de, $4
ld c, $4
-.asm_50f55
+.gfx_loop
ld [hl], $a0
add hl, de
dec c
- jr nz, .asm_50f55
+ jr nz, .gfx_loop
ld de, SFX_SWITCH_POKEMON
call WaitPlaySFX
ret
-Function50f62: ; 50f62 (14:4f62)
+.SwapPartymonViaSRAM: ; 50f62 (14:4f62)
push hl
push de
push bc
@@ -48368,7 +33203,7 @@ Function50f62: ; 50f62 (14:4f62)
add hl, bc
ld d, h
ld e, l
- ld a, [wd1ec]
+ ld a, [Buffer3]
ld l, a
ld h, $0
add hl, bc
@@ -48380,73 +33215,73 @@ Function50f62: ; 50f62 (14:4f62)
ld [de], a
ld a, [Buffer2] ; wd1eb (aliases: MovementType)
ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, $30
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
push hl
- ld de, DefaultFlypoint
- ld bc, $30
+ ld de, wd002
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
- ld a, [wd1ec]
+ ld a, [Buffer3]
ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, $30
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop de
push hl
- ld bc, $30
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
pop de
- ld hl, DefaultFlypoint
- ld bc, $30
+ ld hl, wd002
+ ld bc, PARTYMON_STRUCT_LENGTH
call CopyBytes
ld a, [Buffer2] ; wd1eb (aliases: MovementType)
ld hl, PartyMonOT
call SkipNames
push hl
- call Function51036
- ld a, [wd1ec]
+ call .CopyNameTowd002
+ ld a, [Buffer3]
ld hl, PartyMonOT
call SkipNames
pop de
push hl
- call Function51039
+ call .CopyName
pop de
- ld hl, DefaultFlypoint
- call Function51039
+ ld hl, wd002
+ call .CopyName
ld hl, PartyMonNicknames
ld a, [Buffer2] ; wd1eb (aliases: MovementType)
call SkipNames
push hl
- call Function51036
+ call .CopyNameTowd002
ld hl, PartyMonNicknames
- ld a, [wd1ec]
+ ld a, [Buffer3]
call SkipNames
pop de
push hl
- call Function51039
+ call .CopyName
pop de
- ld hl, DefaultFlypoint
- call Function51039
- ld hl, s0_a600
+ ld hl, wd002
+ call .CopyName
+ ld hl, sPartyScratch1
ld a, [Buffer2] ; wd1eb (aliases: MovementType)
- ld bc, $2f
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
push hl
- ld de, DefaultFlypoint
- ld bc, $2f
- ld a, BANK(s0_a600)
+ ld de, wd002
+ ld bc, SCRATCHMON_STRUCT_LENGTH
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
call CopyBytes
- ld hl, s0_a600
- ld a, [wd1ec]
- ld bc, $2f
+ ld hl, sPartyScratch1
+ ld a, [Buffer3]
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
pop de
push hl
- ld bc, $2f
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call CopyBytes
pop de
- ld hl, DefaultFlypoint
- ld bc, $2f
+ ld hl, wd002
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call CopyBytes
call CloseSRAM
pop bc
@@ -48454,11 +33289,11 @@ Function50f62: ; 50f62 (14:4f62)
pop hl
ret
-Function51036: ; 51036 (14:5036)
- ld de, DefaultFlypoint
+.CopyNameTowd002: ; 51036 (14:5036)
+ ld de, wd002
-Function51039: ; 51039 (14:5039)
- ld bc, $b
+.CopyName: ; 51039 (14:5039)
+ ld bc, NAME_LENGTH
call CopyBytes
ret
@@ -48503,7 +33338,7 @@ GetUnownLetter: ; 51040
ld [hDividend + 2], a
ld a, 10
ld [hDivisor], a
- ld b, $4
+ ld b, 4
call Divide
; Increment to get 1-26
@@ -48997,7 +33832,7 @@ Function51322: ; 51322
dec a
ld [wd265], a
ld hl, sBoxMons
- ld bc, sBoxMon1End - sBoxMon1
+ ld bc, BOXMON_STRUCT_LENGTH
ld de, wd018
call Function513e0
ld hl, wd01a
@@ -49035,7 +33870,7 @@ Function5138b: ; 5138b
dec a
ld [wd265], a
ld hl, PartyMons
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld de, wd018
call Function513e0
ret
@@ -49590,7 +34425,7 @@ CheckEdgeWarp: ; 80226
and 3
cp e
jr nz, .asm_80259
- call Function224a ; CheckFallPit?
+ call WarpCheck ; CheckFallPit?
jr nc, .asm_80259
call StandInPlace
@@ -49809,24 +34644,24 @@ Function8036f: ; 8036f
bit 0, [hl]
jr z, .asm_8039c
- ld hl, $0007
+ ld hl, $7
add hl, bc
ld a, [hl]
cp $ff
jr nz, .asm_8039c
- ld hl, $0006
+ ld hl, $6
add hl, bc
bit 6, [hl]
jr z, .asm_8039c
- ld hl, $0005
+ ld hl, $5
add hl, bc
set 2, [hl]
ld a, [WalkingDirection]
ld d, a
- ld hl, $0020
+ ld hl, $20
add hl, bc
ld a, [hl]
and $fc
@@ -49951,7 +34786,7 @@ WaterToLandSprite: ; 803f9
push bc
ld a, PLAYER_NORMAL
ld [PlayerState], a
- call Special_ReplaceKrisSprite ; UpdateSprites
+ call ReplaceKrisSprite ; UpdateSprites
pop bc
ret
; 80404
@@ -50284,7 +35119,7 @@ ColorTest: ; 818ac
; 818f4
Function818f4: ; 818f4
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and a
jr nz, Function81911
ld hl, PokemonPalettes
@@ -50297,7 +35132,7 @@ Function818fd: ; 818fd
push hl
call Function81928
pop hl
- ld bc, $0008
+ ld bc, 8
add hl, bc
pop bc
dec c
@@ -50313,7 +35148,7 @@ Function81911: ; 81911
push hl
call Function81928
pop hl
- ld bc, $0004
+ ld bc, 4
add hl, bc
pop bc
dec c
@@ -50372,15 +35207,15 @@ Function81948: ; 81948
Function8197c: ; 8197c
ld hl, DebugColorTestGFX + $10
ld de, VTiles2 tile $6a
- ld bc, $0160
+ ld bc, $160
call CopyBytes
ld hl, DebugColorTestGFX
ld de, VTiles0
- ld bc, $0010
+ ld bc, $10
call CopyBytes
- call Functione51
+ call LoadStandardFont
ld hl, VTiles1
- ld bc, $0800
+ lb bc, 8, 0
.asm_8199d
ld a, [hl]
xor $ff
@@ -50402,7 +35237,7 @@ Function819a7: ; 819a7
ld [rSVBK], a
ld hl, Palette_819f4
ld de, BGPals
- ld bc, $0080
+ ld bc, $80
call CopyBytes
ld a, $80
ld [rBGPI], a
@@ -50580,7 +35415,7 @@ endr
Function81ac3: ; 81ac3
; Looping back around the pic set.
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and a
jr nz, .asm_81acc
ld a, NUM_POKEMON ; CELEBI
@@ -50629,7 +35464,7 @@ Function81adb: ; 81adb
ld de, wd265
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
call PrintNum
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and a
jr nz, .asm_81b7a
ld a, $1
@@ -50640,13 +35475,13 @@ Function81adb: ; 81adb
xor a
ld [wc2c6], a
hlcoord 12, 3
- call Function378b
+ call _PrepMonFrontpic
ld de, VTiles2 tile $31
predef GetBackpic
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 4
- ld bc, $0606
+ lb bc, 6, 6
predef FillBox
ld a, [wd003]
and a
@@ -50676,7 +35511,7 @@ Function81adb: ; 81adb
callab GetTrainerPic
xor a
ld [TempEnemyMonSpecies], a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 2, 3
lb bc, 7, 7
predef FillBox
@@ -50709,13 +35544,13 @@ Function81bde: ; 81bde
push af
ld a, $6a
ld [hli], a
- ld bc, $000f
+ ld bc, $f
ld a, $6b
call ByteFill
ld l, e
ld h, d
pop af
- ld bc, $0028
+ ld bc, $28
call ByteFill
ret
; 81bf4
@@ -50731,7 +35566,7 @@ endr
ld de, OverworldMap
add hl, de
ld de, wc608
- ld bc, $0004
+ ld bc, 4
call CopyBytes
xor a
ld [wcf64], a
@@ -50866,7 +35701,7 @@ endr
ret
.asm_81ce5
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
and a
ret nz
ld a, [wd003]
@@ -50986,7 +35821,7 @@ Function81d89: ; 81d89
Function81d8e: ; 81d8e
hlcoord 0, 10
- ld bc, $00a0
+ ld bc, $a0
ld a, $6f
call ByteFill
hlcoord 2, 12
@@ -51108,7 +35943,7 @@ endr
; 81e5e
Function81e5e: ; 81e5e
- ld bc, $000a
+ ld bc, $a
ld a, $6f
call ByteFill
ret
@@ -51189,7 +36024,7 @@ endr
ld e, l
ld d, h
ld hl, wc608
- ld bc, $0004
+ ld bc, 4
call CopyBytes
ret
; 81ee3
@@ -51389,9 +36224,9 @@ TilesetColorTest:
ld [wcf64], a
ld [wcf65], a
ld [wcf66], a
- ld [$ffde], a
+ ld [hMapAnims], a
call ClearSprites
- call Function2173
+ call OverworldTextModeSwitch
call Function3200
xor a
ld [hBGMapMode], a
@@ -51413,16 +36248,16 @@ TilesetColorTest:
ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
ld a, $7
call ByteFill
- ld de, $0015
+ ld de, $15
ld a, $6c
call Function821d2
- ld de, $001a
+ ld de, $1a
ld a, $6d
call Function821d2
- ld de, $001f
+ ld de, $1f
ld a, $6e
call Function821d2
- ld de, $0024
+ ld de, $24
ld a, $6f
call Function821d2
call Function821f4
@@ -51447,12 +36282,12 @@ Function821de: ; 821de
rept 4
ld [hli], a
endr
- ld bc, $0010
+ ld bc, $10
add hl, bc
rept 4
ld [hli], a
endr
- ld bc, $0010
+ ld bc, $10
add hl, bc
rept 4
ld [hli], a
@@ -51487,10 +36322,10 @@ Function8220f: ; 8220f
rept 3
add hl, hl
endr
- ld de, Unkn1Pals
+ ld de, wMapPals
add hl, de
ld de, wc608
- ld bc, $0008
+ ld bc, 8
call CopyBytes
ld de, wc608
call Function81ea5
@@ -51522,13 +36357,13 @@ Function82236: ; 82236
.asm_82253
ld [hl], a
- ld de, $0015
+ ld de, $15
call Function821d8
- ld de, $001a
+ ld de, $1a
call Function821d8
- ld de, $001f
+ ld de, $1f
call Function821d8
- ld de, $0024
+ ld de, $24
call Function821d8
ld a, [rSVBK]
push af
@@ -51536,16 +36371,16 @@ Function82236: ; 82236
ld [rSVBK], a
ld hl, BGPals
ld a, [wcf64]
- ld bc, $0008
+ ld bc, 8
call AddNTimes
ld de, wc608
- ld bc, $0008
+ ld bc, 8
call CopyBytes
pop af
ld [rSVBK], a
ld a, $2
ld [hBGMapMode], a
- ld c, $3
+ ld c, 3
call DelayFrames
ld a, $1
ld [hBGMapMode], a
@@ -51566,12 +36401,12 @@ Function822a3: ; 822a3
ld [rSVBK], a
ld hl, BGPals
ld a, [wcf64]
- ld bc, $0008
+ ld bc, 8
call AddNTimes
ld e, l
ld d, h
ld hl, wc608
- ld bc, $0008
+ ld bc, 8
call CopyBytes
hlcoord 1, 0
ld de, wc608
@@ -51764,7 +36599,7 @@ SECTION "bank21", ROMX, BANK[$21]
Function84000: ; 84000
ld hl, OverworldMap
- ld bc, $040c
+ lb bc, 4, 12
xor a
call Function842ab
xor a
@@ -51951,24 +36786,26 @@ Function84143: ; 84143 (21:4143)
ret nz
ld a, [wca88]
cp $ff
- jr nz, .asm_84156
+ jr nz, .printer_connected
ld a, [wca89]
cp $ff
- jr z, .asm_84172
-.asm_84156
+ jr z, .printer_error
+
+.printer_connected
ld a, [wca88]
cp $81
- jr nz, .asm_84172
+ jr nz, .printer_error
ld a, [wca89]
cp $0
- jr nz, .asm_84172
+ jr nz, .printer_error
ld hl, wc2d4
set 1, [hl]
ld a, $5
ld [wca8a], a
call Function84059
ret
-.asm_84172
+
+.printer_error
ld a, $ff
ld [wca88], a
ld [wca89], a
@@ -52030,11 +36867,11 @@ Function841c3: ; 841c3 (21:41c3)
ld a, $1
ld [wc2d5], a
ld a, $88
- ld [rSB], a ; $ff00+$1
+ ld [rSB], a
ld a, $1
- ld [rSC], a ; $ff00+$2
+ ld [rSC], a
ld a, $81
- ld [rSC], a ; $ff00+$2
+ ld [rSC], a
ret
Function841e2: ; 841e2 (21:41e2)
@@ -52071,7 +36908,7 @@ endr
ret
Function84219: ; 84219 (21:4219)
- ld hl, $0
+ ld hl, 0
ld bc, $4
ld de, wca82
call Function8423c
@@ -52323,7 +37160,7 @@ Function8439f: ; 8439f (21:439f)
ret
Function843a8: ; 843a8 (21:43a8)
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
ld [wca88], a
ld a, $0
call Function843db
@@ -52331,7 +37168,7 @@ Function843a8: ; 843a8 (21:43a8)
ret
Function843b6: ; 843b6 (21:43b6)
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
ld [wca89], a
xor a
ld [wc2d5], a
@@ -52356,15 +37193,15 @@ Function843d2: ; 843d2 (21:43d2)
ret
Function843db: ; 843db (21:43db)
- ld [rSB], a ; $ff00+$1
+ ld [rSB], a
ld a, $1
- ld [rSC], a ; $ff00+$2
+ ld [rSC], a
ld a, $81
- ld [rSC], a ; $ff00+$2
+ ld [rSC], a
ret
Function843e6: ; 843e6 (21:43e6)
- ld a, [rSB] ; $ff00+$1
+ ld a, [rSB]
ld [wca89], a
xor a
ld [wc2d5], a
@@ -52410,7 +37247,7 @@ Function84419: ; 84419
; 84425
Function84425: ; 84425
- call Function222a
+ call ReturnToMapFromSubmenu
call Function84753
ret
; 8442c
@@ -52449,7 +37286,7 @@ Function8442c: ; 8442c
call Function843f0
jr c, .asm_8449d
call Function84411
- ld c, $c
+ ld c, 12
call DelayFrames
xor a
ld [hBGMapMode], a
@@ -52499,48 +37336,48 @@ Function844bc: ; 844bc (21:44bc)
ld [$ffac], a
ld [wd003], a
call Function8474c
- ld a, [rIE] ; $ff00+$ff
+ ld a, [rIE]
push af
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
ld a, $9
- ld [rIE], a ; $ff00+$ff
+ ld [rIE], a
ld hl, hVBlank
ld a, [hl]
push af
ld [hl], $4
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function84817
ld a, $10
call Function84419
call Function84559
jr c, .asm_84545
call Function84411
- ld c, $c
+ ld c, 12
call DelayFrames
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function8486f
ld a, $0
call Function84419
call Function84559
jr c, .asm_84545
call Function84411
- ld c, $c
+ ld c, 12
call DelayFrames
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function84893
ld a, $0
call Function84419
call Function84559
jr c, .asm_84545
call Function84411
- ld c, $c
+ ld c, 12
call DelayFrames
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function848b7
ld a, $3
call Function84419
@@ -52550,9 +37387,9 @@ Function844bc: ; 844bc (21:44bc)
ld [hVBlank], a
call Function84411
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
pop af
- ld [rIE], a ; $ff00+$ff
+ ld [rIE], a
call Function84425
pop af
ld [wcf65], a
@@ -52692,7 +37529,7 @@ Function8461a: ; 8461a
call Function843f0
jr c, .asm_84671
call Function84411
- ld c, $c
+ ld c, 12
call DelayFrames
xor a
ld [hBGMapMode], a
@@ -52744,7 +37581,7 @@ Function84688: ; 84688
call Function843f0
jr c, .asm_846e2
call Function84411
- ld c, $c
+ ld c, 12
call DelayFrames
call LoadTileMapToTempTileMap
xor a
@@ -52846,34 +37683,35 @@ Function84753: ; 84753
Function84757: ; 84757
ld a, [wca88]
cp -1
- jr nz, .c_directly_below_e5
+ jr nz, .printer_connected
ld a, [wca89]
cp -1
- jr z, .asm_8477f
+ jr z, .error_2
-.c_directly_below_e5
+.printer_connected
ld a, [wca89]
- and $e0
- ret z
+ and %11100000
+ ret z ; no error
+
bit 7, a
- jr nz, .asm_8477b
+ jr nz, .error_1
bit 6, a
- jr nz, .asm_84777
- ld a, $6
- jr .asm_84781
+ jr nz, .error_4
+ ld a, 6 ; error 3
+ jr .load_text_index
-.asm_84777
- ld a, $7
- jr .asm_84781
+.error_4
+ ld a, 7 ; error 4
+ jr .load_text_index
-.asm_8477b
- ld a, $4
- jr .asm_84781
+.error_1
+ ld a, 4 ; error 1
+ jr .load_text_index
-.asm_8477f
- ld a, $5
+.error_2
+ ld a, 5 ; error 2
-.asm_84781
+.load_text_index
ld [wcbf8], a
ret
; 84785
@@ -52886,12 +37724,12 @@ Function84785: ; 84785
xor a
ld [hBGMapMode], a
hlcoord 0, 5
- ld bc, $0a12
+ lb bc, 10, 18
call TextBox
pop af
ld e, a
ld d, 0
- ld hl, Unknown_84807
+ ld hl, PrinterStatusStringPointers
rept 2
add hl, de
endr
@@ -52902,7 +37740,7 @@ endr
ld a, BANK(GBPrinterStrings)
call FarString
hlcoord 2, 15
- ld de, String_847f5
+ ld de, String_PressBToCancel
call PlaceString
ld a, $1
ld [hBGMapMode], a
@@ -52924,7 +37762,7 @@ Function847bd: ; 847bd
pop af
ld e, a
ld d, 0
- ld hl, Unknown_84807
+ ld hl, PrinterStatusStringPointers
rept 2
add hl, de
endr
@@ -52935,7 +37773,7 @@ endr
ld a, BANK(GBPrinterStrings)
call FarString
hlcoord 4, 15
- ld de, String_847f5
+ ld de, String_PressBToCancel
call PlaceString
ld a, $1
ld [hBGMapMode], a
@@ -52944,19 +37782,19 @@ endr
ret
; 847f5
-String_847f5:
+String_PressBToCancel:
db "Press B to Cancel@"
; 84807
-Unknown_84807: ; 84807
- dw String_1dc275
- dw String_1dc276
- dw String_1dc289
- dw String_1dc29c
- dw String_1dc2ad
- dw String_1dc2e2
- dw String_1dc317
- dw String_1dc34c
+PrinterStatusStringPointers: ; 84807
+ dw String_1dc275 ; @
+ dw String_1dc276 ; CHECKING LINK
+ dw String_1dc289 ; TRANSMITTING
+ dw String_1dc29c ; PRINTING
+ dw String_1dc2ad ; error 1
+ dw String_1dc2e2 ; error 2
+ dw String_1dc317 ; error 3
+ dw String_1dc34c ; error 4
; 84817
Function84817: ; 84817 (21:4817)
@@ -52977,7 +37815,7 @@ Function84817: ; 84817 (21:4817)
ld de, String_84865
call PlaceString
ld a, [wd007]
- ld bc, 9
+ ld bc, BOX_NAME_LENGTH
ld hl, wBoxNames
call AddNTimes
ld d, h
@@ -53102,7 +37940,7 @@ Function848ed: ; 848ed (21:48ed)
ld bc, $372
add hl, bc
ld bc, $b
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
call AddNTimes
ld e, l
ld d, h
@@ -53120,13 +37958,13 @@ Function848ed: ; 848ed (21:48ed)
ld bc, $35
add hl, bc
ld bc, $20
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
call AddNTimes
ld a, [hl]
pop hl
call Function383d
.ok2
- ld hl, DefaultFlypoint
+ ld hl, wd002
inc [hl]
pop de
pop hl
@@ -53153,7 +37991,7 @@ Function8498a: ; 8498a (21:498a)
ld bc, $2b
add hl, bc
ld bc, $20
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
call AddNTimes
ld de, TempMonDVs
ld a, [hli]
@@ -53161,7 +37999,7 @@ Function8498a: ; 8498a (21:498a)
inc de
ld a, [hli]
ld [de], a
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
ld [CurPartyMon], a
ld a, $3
ld [MonType], a
@@ -53299,12 +38137,12 @@ RedCredits:: ; 86455
ld [MusicFadeIDHi], a
ld a, $a
ld [MusicFade], a
- callba FadeBlackBGMap
+ callba FadeOutPalettes
xor a
ld [VramState], a
- ld [$ffde], a
+ ld [hMapAnims], a
callba Function4e8c2
- ld c, $8
+ ld c, 8
call DelayFrames
call DisableSpriteUpdates
ld a, SPAWN_RED
@@ -53322,10 +38160,10 @@ Function8648e: ; 8648e
ld [MusicFadeIDHi], a
ld a, 10
ld [MusicFade], a
- callba FadeBlackBGMap
+ callba FadeOutPalettes
xor a
ld [VramState], a
- ld [$ffde], a
+ ld [hMapAnims], a
callba Function4e881
ld c, 100
jp DelayFrames
@@ -53355,7 +38193,7 @@ Function864c3: ; 864c3
cp 6
jr nc, .done
ld hl, wc608 + 1
- ld bc, $0010
+ ld bc, $10
call AddNTimes
ld a, [hl]
cp -1
@@ -53374,7 +38212,7 @@ Function864c3: ; 864c3
ld a, $4
ld [MusicFade], a
call FadeToWhite
- ld c, $8
+ ld c, 8
call DelayFrames
ret
; 8650c
@@ -53426,18 +38264,18 @@ GetHallOfFameParty: ; 8653f
ld a, c
ld hl, PartyMons
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
ld c, l
ld b, h
- ld hl, PartyMon1Species - PartyMon1
+ ld hl, MON_SPECIES
add hl, bc
ld a, [hl]
ld [de], a
inc de
- ld hl, PartyMon1ID - PartyMon1
+ ld hl, MON_ID
add hl, bc
ld a, [hli]
ld [de], a
@@ -53446,7 +38284,7 @@ GetHallOfFameParty: ; 8653f
ld [de], a
inc de
- ld hl, PartyMon1DVs - PartyMon1
+ ld hl, MON_DVS
add hl, bc
ld a, [hli]
ld [de], a
@@ -53455,7 +38293,7 @@ GetHallOfFameParty: ; 8653f
ld [de], a
inc de
- ld hl, PartyMon1Level - PartyMon1
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
ld [de], a
@@ -53488,7 +38326,7 @@ GetHallOfFameParty: ; 8653f
Function865b5: ; 865b5
push hl
- call WhiteBGMap
+ call ClearBGPalettes
callba Function4e906
pop hl
ld a, [hli]
@@ -53510,9 +38348,9 @@ endr
ld de, VTiles2 tile $31
predef GetBackpic
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 6
- ld bc, $0606
+ lb bc, 6, 6
predef FillBox
ld a, $d0
ld [hSCY], a
@@ -53532,7 +38370,7 @@ endr
ld a, " "
call ByteFill
hlcoord 6, 5
- call Function378b
+ call _PrepMonFrontpic
call WaitBGMap
xor a
ld [hBGMapMode], a
@@ -53621,7 +38459,7 @@ Function86692: ; 86692
cp $6
jr nc, .asm_866a7
ld hl, wc608 + 1
- ld bc, $0010
+ ld bc, $10
call AddNTimes
ld a, [hl]
cp $ff
@@ -53633,7 +38471,7 @@ Function86692: ; 86692
.asm_866a9
push hl
- call WhiteBGMap
+ call ClearBGPalettes
pop hl
call Function86748
ld a, [wc608]
@@ -53747,7 +38585,7 @@ Function86748: ; 86748
xor a
ld [wc2c6], a
hlcoord 6, 5
- call Function378b
+ call _PrepMonFrontpic
ld a, [CurPartySpecies]
cp EGG
jr z, .asm_867f8
@@ -53797,7 +38635,7 @@ Function86748: ; 86748
; 86810
Function86810: ; 86810
- call WhiteBGMap
+ call ClearBGPalettes
ld hl, VTiles2 tile $63
ld de, FontExtra + $d0
lb bc, BANK(FontExtra), 1
@@ -53808,7 +38646,7 @@ Function86810: ; 86810
call ByteFill
callba GetPlayerBackpic
ld a, $31
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 6
lb bc, 6, 6
predef FillBox
@@ -53832,7 +38670,7 @@ Function86810: ; 86810
call ByteFill
callba Function88840
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 12, 5
lb bc, 7, 7
predef FillBox
@@ -53846,10 +38684,10 @@ Function86810: ; 86810
xor a
ld [hBGMapMode], a
hlcoord 0, 2
- ld bc, $0809
+ lb bc, 8, 9
call TextBox
hlcoord 0, 12
- ld bc, $0412
+ lb bc, 4, 18
call TextBox
hlcoord 2, 4
ld de, PlayerName
@@ -53958,9 +38796,9 @@ ShowPlayerNamingChoices: ; 88297
.GotGender
call LoadMenuDataHeader
call InterpretMenu2
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
- call Function1db8
+ call CopyNameFromMenu
call WriteBackup
ret
; 882b5
@@ -54148,7 +38986,7 @@ DrawIntroPlayerPic: ; 88874
; Draw
xor a
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 6, 4
lb bc, 7, 7
predef FillBox
@@ -54211,7 +39049,7 @@ Function8c7c9: ; unreferenced
ret
; 8c7d4
-Function8c7d4: ; 8c7d4
+PlayWhirlpoolSound: ; 8c7d4
call WaitSFX
ld de, SFX_SURF
call PlaySFX
@@ -54220,7 +39058,7 @@ Function8c7d4: ; 8c7d4
; 8c7e1
BlindingFlash: ; 8c7e1
- callba FadeBlackBGMap
+ callba FadeOutPalettes
ld hl, StatusFlags
set 2, [hl]
callba Function8c0e5
@@ -54228,15 +39066,15 @@ BlindingFlash: ; 8c7e1
ld b, $9
call GetSGBLayout
callba Function49409
- callba FadeInBGMap
+ callba FadeInPalettes
ret
; 8c80a
ShakeHeadbuttTree: ; 8c80a
callba Function8cf53
- ld de, GFX_8c9cc
+ ld de, CutGrassGFX
ld hl, VTiles1
- lb bc, BANK(GFX_8c9cc), 4
+ lb bc, BANK(CutGrassGFX), 4
call Request2bpp
ld de, HeadbuttTreeGFX
ld hl, VTiles1 tile $04
@@ -54245,7 +39083,7 @@ ShakeHeadbuttTree: ; 8c80a
call Function8cad3
ld a, $1b
call Function3b2a
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld [hl], $84
ld a, $90
@@ -54270,20 +39108,20 @@ ShakeHeadbuttTree: ; 8c80a
jr .loop
.done
- call Function2173
+ call OverworldTextModeSwitch
call WaitBGMap
xor a
ld [hBGMapMode], a
callba Function8cf53
ld hl, Sprites + $90
- ld bc, $0010
+ ld bc, $10
xor a
call ByteFill
ld de, Font
ld hl, VTiles1
lb bc, BANK(Font), $c
call Get1bpp
- call Special_ReplaceKrisSprite
+ call ReplaceKrisSprite
ret
; 8c893
@@ -54324,57 +39162,56 @@ TreeRelativeLocationTable: ; 8c938
dwcoord 8 - 2, 8 ; DOWN
dwcoord 8 + 2, 8 ; UP
; 8c940
-; 8c940
-Function8c940: ; 8c940
+OWCutAnimation: ; 8c940
ld a, e
and $1
ld [wJumptableIndex], a
- call Function8c96d
+ call .LoadCutGFX
call WaitSFX
ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
call PlaySFX
-.asm_8c952
+.loop
ld a, [wJumptableIndex]
bit 7, a
- jr nz, .asm_8c96c
+ jr nz, .finish
ld a, $90
ld [wc3b5], a
callab Function8cf7a
- call Function8ca0c
+ call OWCutJumptable
call DelayFrame
- jr .asm_8c952
+ jr .loop
-.asm_8c96c
+.finish
ret
; 8c96d
-Function8c96d: ; 8c96d
- callab Function8cf53
- ld de, GFX_8c9cc
+.LoadCutGFX: ; 8c96d
+ callab Function8cf53 ; pointless to farcall
+ ld de, CutGrassGFX
ld hl, VTiles1
- lb bc, BANK(GFX_8c9cc), 4
+ lb bc, BANK(CutGrassGFX), 4
call Request2bpp
ld de, CutTreeGFX
- ld hl, VTiles1 + $40
+ ld hl, VTiles1 tile $4
lb bc, BANK(CutTreeGFX), 4
call Request2bpp
ret
; 8c98c
CutTreeGFX: ; c898c
-INCBIN "gfx/unknown/08c98c.2bpp"
+INCBIN "gfx/misc/cut_tree.2bpp"
; c89cc
-GFX_8c9cc: ; 8c9cc
-INCBIN "gfx/unknown/08c9cc.2bpp"
+CutGrassGFX: ; 8c9cc
+INCBIN "gfx/misc/cut_grass.2bpp"
; 8ca0c
-Function8ca0c: ; 8ca0c
+OWCutJumptable: ; 8ca0c
ld a, [wJumptableIndex]
ld e, a
ld d, 0
- ld hl, Jumptable_8ca1b
+ ld hl, .jumptable
rept 2
add hl, de
endr
@@ -54385,7 +39222,7 @@ endr
; 8ca1b
-Jumptable_8ca1b: ; 8ca1b (23:4a1b)
+.jumptable: ; 8ca1b (23:4a1b)
dw Function8ca23
dw Function8ca3c
dw Function8ca5c
@@ -54425,7 +39262,7 @@ Function8ca3c: ; 8ca3c (23:4a3c)
Function8ca5c: ; 8ca5c (23:4a5c)
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld hl, wJumptableIndex
inc [hl]
@@ -54460,7 +39297,7 @@ Function8ca73: ; 8ca73 (23:4a73)
ret
Function8ca8e: ; 8ca8e (23:4a8e)
- ld de, $0
+ ld de, 0
ld a, [wd197]
bit 0, a
jr z, .asm_8ca9a
@@ -54616,9 +39453,9 @@ endr
Function8cb9b: ; 8cb9b (23:4b9b)
callab Function8cf53
- ld de, GFX_8c9cc
+ ld de, CutGrassGFX
ld hl, VTiles1 tile $00
- lb bc, BANK(GFX_8c9cc), 4
+ lb bc, BANK(CutGrassGFX), 4
call Request2bpp
ld a, [CurPartyMon]
ld hl, PartySpecies
@@ -54730,7 +39567,7 @@ Special_MagnetTrain: ; 8cc04
.done
pop af
ld [hVBlank], a
- call WhiteBGMap
+ call ClearBGPalettes
xor a
ld [hLCDStatCustom], a
ld [hLCDStatCustom + 1], a
@@ -54787,7 +39624,7 @@ Function8ccc4: ; 8ccc4
; 8ccc9
Function8ccc9: ; 8ccc9
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call DisableLCD
callab Function8cf53
@@ -54810,7 +39647,7 @@ Function8ccc9: ; 8ccc9
ld hl, VTiles0
ld c, $4
call Request2bpp
- ld hl, $00c0
+ ld hl, $c0
add hl, de
ld d, h
ld e, l
@@ -54918,11 +39755,11 @@ MagnetTrainBGTiles: ; 8cd82
Function8cda6: ; 8cda6
ld hl, LYOverrides
- ld bc, $0090
+ ld bc, $90
ld a, [wd192]
call ByteFill
ld hl, LYOverridesBackup
- ld bc, $0090
+ ld bc, $90
ld a, [wd192]
call ByteFill
ld a, $43
@@ -54936,25 +39773,25 @@ SetMagnetTrainPals: ; 8cdc3
; bushes
ld hl, VBGMap0
- ld bc, $0080
+ ld bc, 8 tiles
ld a, $2
call ByteFill
; train
ld hl, VBGMap0 tile $08
- ld bc, $0140
+ ld bc, 20 tiles
xor a
call ByteFill
; more bushes
ld hl, VBGMap0 tile $1c
- ld bc, $0080
+ ld bc, 8 tiles
ld a, $2
call ByteFill
; train window
- ld hl, $9907
- ld bc, $0006
+ ld hl, VBGMap0 tile $10 + 7
+ ld bc, 6
ld a, $4
call ByteFill
@@ -54995,7 +39832,7 @@ Function8ce14: ; 8ce14
Function8ce19: ; 8ce19
ld d, $55
- ld a, [wd195]
+ ld a, [wd194 + 1]
ld e, a
ld b, $15
ld a, [rSVBK]
@@ -55012,7 +39849,7 @@ Function8ce19: ; 8ce19
ld [rSVBK], a
ld a, b
call Function3b2a
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld [hl], $0
call Function8ce14
@@ -55165,7 +40002,7 @@ Function8cf4f: ; 8cf4f
Function8cf53: ; 8cf53
ld hl, wc300
- ld bc, $00c1
+ ld bc, $c1
.asm_8cf59
ld [hl], $0
inc hl
@@ -55200,35 +40037,36 @@ Function8cf69: ; 8cf69
; 8cf7a
Function8cf7a: ; 8cf7a
- ld hl, wPartyMonMenuIconAnims
- ld e, 10 ; Do this first loop 10 times
+ ld hl, wc314
+ ld e, 10 ; There are 10 structs here.
.loop
ld a, [hl]
and a
- jr z, .next ; Done with this iteration
+ jr z, .next ; This struct is deinitialized.
ld c, l
ld b, h
push hl
push de
- call Function8d24b
+ call Function8d24b ; Uses a massive jumptable
call LoadBouncingMonIcon
pop de
pop hl
jr c, .done
.next
- ld bc, $0010
+ ld bc, $10
add hl, bc
dec e
jr nz, .loop
+
ld a, [wc3b5]
ld l, a
ld h, Sprites / $0100
.loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd)
ld a, l
- cp SpritesEnd % $0100
+ cp SpritesEnd % $100
jr nc, .done
xor a
ld [hli], a
@@ -55239,7 +40077,7 @@ Function8cf7a: ; 8cf7a
; 8cfa8
Function8cfa8: ; 8cfa8 (23:4fa8)
- ld hl, wPartyMonMenuIconAnims
+ ld hl, wc314
ld e, 10
.loop
@@ -55250,24 +40088,25 @@ Function8cfa8: ; 8cfa8 (23:4fa8)
ld b, h
push hl
push de
- call Function8d24b
+ call Function8d24b ; Uses a massive jumptable
call LoadBouncingMonIcon
pop de
pop hl
jr c, .done
.next
- ld bc, $0010
+ ld bc, $10
add hl, bc
dec e
jr nz, .loop
ld a, [wc3b5]
ld l, a
- ld h, Sprites / $100
-.loop2
+ ld h, (Sprites + $40) / $100
+
+.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40)
ld a, l
- cp 4 * 16
+ cp (Sprites + $40) % $100
jr nc, .done
xor a
ld [hli], a
@@ -55277,26 +40116,32 @@ Function8cfa8: ; 8cfa8 (23:4fa8)
ret
Function8cfd6:: ; 8cfd6
+; Find if there's any room in the wc314 array, which is 10x16
push de
push af
- ld hl, wPartyMonMenuIconAnims
- ld e, 2 * 4 + 2 ; 4 tiles for each frame, then one frame each for mail and item
+ ld hl, wc314
+ ld e, 10
.loop
ld a, [hl]
and a
jr z, .found
- ld bc, $0010
+ ld bc, $10
add hl, bc
dec e
jr nz, .loop
+; We've reached the end. There is no more room here.
+; Return carry.
pop af
pop de
scf
ret
.found
+; Back up the structure address to bc.
ld c, l
ld b, h
+; Value [wc3b4] is initially set to -1. Set it to
+; the number of objects loaded into this array.
ld hl, wc3b4
inc [hl]
ld a, [hl]
@@ -55305,6 +40150,7 @@ Function8cfd6:: ; 8cfd6
inc [hl]
.initialized
+; Get row a of Unknown_8d1c4, copy the pointer into de
pop af
ld e, a
ld d, 0
@@ -55314,28 +40160,34 @@ rept 3
endr
ld e, l
ld d, h
+; Set hl to the first field (field 0) in the current structure.
ld hl, 0
add hl, bc
+; Load the index.
ld a, [wc3b4]
ld [hli], a
-; read from the table
+; Copy the table entry to the next two fields.
ld a, [de]
ld [hli], a
inc de
ld a, [de]
ld [hli], a
inc de
+; Look up the third field from the table in the wc300 array (10x2).
+; Take the value and load it in
ld a, [de]
- call Function8d109
+ call LookUpInwDict_c300
ld [hli], a
pop de
-
- ld hl, $0004
+; Set hl to field 4. Kinda pointless, because we're presumably already here.
+ ld hl, $4
add hl, bc
+; Load the original value of de into here.
ld a, e
ld [hli], a
ld a, d
ld [hli], a
+; load 0 into the next four fields
xor a
rept 2
ld [hli], a
@@ -55344,21 +40196,25 @@ endr
rept 2
ld [hli], a
endr
+; load -1 into the next field
dec a
ld [hli], a
+; load 0 into the last five fields
xor a
rept 4
ld [hli], a
endr
ld [hl], a
+; back up the address of the first field to wc3b8
ld a, c
ld [wc3b8], a
ld a, b
- ld [wc3b9], a
+ ld [wc3b8 + 1], a
ret
; 8d036
Function8d036: ; 8d036
+; Clear the index field of the struct in bc.
ld hl, 0
add hl, bc
ld [hl], $0
@@ -55367,9 +40223,10 @@ Function8d036: ; 8d036
Function8d03d: ; 8d03d (23:503d)
- ld hl, wPartyMonMenuIconAnims
+; Clear the index field of every struct in the wc314 array.
+ ld hl, wc314
ld bc, $10
- ld e, $a
+ ld e, 10
xor a
.loop
ld [hl], a
@@ -55383,9 +40240,9 @@ LoadBouncingMonIcon: ; 8d04c
; Populate Sprites with the bouncing mon icons
call Function8d0ec
call Function8d132
- cp $fd
+ cp EGG
jr z, .done
- cp $fc
+ cp NUM_POKEMON + 1
jr z, .almost
call Function8d1a2
ld a, [wc3ba]
@@ -55505,7 +40362,7 @@ Function8d0de: ; 8d0de
Function8d0ec: ; 8d0ec
xor a
ld [wc3b8], a
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld a, [hli]
ld [wc3ba], a
@@ -55520,12 +40377,13 @@ Function8d0ec: ; 8d0ec
ret
; 8d109
-Function8d109: ; 8d109
+LookUpInwDict_c300: ; 8d109
+; a = wDict_c300[a] if a in wDict_c300 else 0
push hl
push bc
- ld hl, wc300
+ ld hl, wDict_c300
ld b, a
- ld c, $a
+ ld c, 10
.loop
ld a, [hli]
cp b
@@ -55546,13 +40404,13 @@ Function8d109: ; 8d109
; 8d120
Function8d120:: ; 8d120
- ld hl, $0001
+ ld hl, $1
add hl, bc
ld [hl], a
- ld hl, $0008
+ ld hl, $8
add hl, bc
ld [hl], $0
- ld hl, $000a
+ ld hl, $a
add hl, bc
ld [hl], $ff
ret
@@ -55561,7 +40419,7 @@ Function8d120:: ; 8d120
Function8d132: ; 8d132
.loop
- ld hl, $0008
+ ld hl, $8
add hl, bc
ld a, [hl]
and a
@@ -55573,7 +40431,7 @@ Function8d132: ; 8d132
jr .skip
.ok
- ld hl, $000a
+ ld hl, $a
add hl, bc
inc [hl]
call Function8d189
@@ -55586,10 +40444,10 @@ Function8d132: ; 8d132
ld a, [hl]
push hl
and $3f
- ld hl, $0009
+ ld hl, $9
add hl, bc
add [hl]
- ld hl, $0008
+ ld hl, $8
add hl, bc
ld [hl], a
pop hl
@@ -55604,10 +40462,10 @@ Function8d132: ; 8d132
.minus_1
xor a
- ld hl, $0008
+ ld hl, $8
add hl, bc
ld [hl], a
- ld hl, $000a
+ ld hl, $a
add hl, bc
rept 2
dec [hl]
@@ -55616,11 +40474,11 @@ endr
.minus_2
xor a
- ld hl, $0008
+ ld hl, $8
add hl, bc
ld [hl], a
dec a
- ld hl, $000a
+ ld hl, $a
add hl, bc
ld [hl], a
jr .loop
@@ -55629,7 +40487,7 @@ endr
Function8d189: ; 8d189
; Get the [bc+10]th entry in the data table
; indexed at [bc+1] in Unknown_8d6e6
- ld hl, $0001
+ ld hl, $1
add hl, bc
ld e, [hl]
ld d, 0
@@ -55640,7 +40498,7 @@ endr
ld e, [hl]
inc hl
ld d, [hl]
- ld hl, $000a
+ ld hl, $a
add hl, bc
ld l, [hl]
ld h, 0
@@ -55683,56 +40541,56 @@ endr
; 8d1c4
Unknown_8d1c4: ; 8d1c4
- db $01, $01, $00 ; 00
- db $07, $04, $00 ; 01
- db $08, $05, $05 ; 02
- db $0a, $06, $00 ; 03
- db $0b, $07, $06 ; 04
- db $0c, $08, $06 ; 05
- db $0d, $09, $07 ; 06
- db $0e, $0a, $07 ; 07
- db $10, $0b, $07 ; 08
- db $08, $0c, $05 ; 09
- db $11, $00, $00 ; 0a
- db $12, $0d, $08 ; 0b
- db $12, $0e, $08 ; 0c
- db $12, $0f, $08 ; 0d
- db $13, $10, $00 ; 0e
- db $15, $00, $00 ; 0f
- db $16, $11, $00 ; 10
- db $17, $12, $00 ; 11
- db $18, $12, $00 ; 12
- db $19, $13, $00 ; 13
- db $1a, $14, $00 ; 14
- db $1b, $00, $00 ; 15
- db $1d, $15, $00 ; 16
- db $1e, $00, $00 ; 17
- db $1d, $17, $00 ; 18
- db $1f, $00, $00 ; 19
- db $24, $19, $00 ; 1a
- db $25, $00, $00 ; 1b
- db $20, $13, $00 ; 1c
- db $26, $1a, $00 ; 1d
- db $2d, $00, $00 ; 1e
- db $2e, $00, $00 ; 1f
- db $2f, $00, $00 ; 20
- db $30, $00, $00 ; 21
- db $31, $00, $00 ; 22
- db $32, $1b, $00 ; 23
- db $33, $1c, $00 ; 24
- db $34, $00, $00 ; 25
- db $35, $1d, $00 ; 26
- db $37, $1e, $00 ; 27
- db $38, $1e, $00 ; 28
- db $39, $20, $00 ; 29
- db $3f, $21, $00 ; 2a
- db $3e, $22, $00 ; 2b
- db $40, $00, $00 ; 2c
+ db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00
+ db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01
+ db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02
+ db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03
+ db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04
+ db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05
+ db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06
+ db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07
+ db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08
+ db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09
+ db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a
+ db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b
+ db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c
+ db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d
+ db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e
+ db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f
+ db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10
+ db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11
+ db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12
+ db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13
+ db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14
+ db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15
+ db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16
+ db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17
+ db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18
+ db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19
+ db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a
+ db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b
+ db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c
+ db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d
+ db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e
+ db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f
+ db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20
+ db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21
+ db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22
+ db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23
+ db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24
+ db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25
+ db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26
+ db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27
+ db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28
+ db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29
+ db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a
+ db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b
+ db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c
; 8d24b
Function8d24b: ; 8d24b
- ld hl, $0002
+ ld hl, $2 ; field 2, see the second column in the above table
add hl, bc
ld e, [hl]
ld d, 0
@@ -55789,8 +40647,8 @@ endr
ret
.one: ; 8d2a2 (23:52a2)
- ld a, [wcfa9]
- ld hl, $0
+ ld a, [MenuSelection2]
+ ld hl, 0
add hl, bc
cp [hl]
jr z, .two
@@ -55840,8 +40698,8 @@ endr
ret
.three: ; 8d2ea (23:52ea)
- ld a, [wcfa9]
- ld hl, $0
+ ld a, [MenuSelection2]
+ ld hl, 0
add hl, bc
cp [hl]
jr z, .asm_8d2fb
@@ -55870,44 +40728,44 @@ endr
ld hl, 0
add hl, bc
ld a, [hl]
- ld hl, $000d
+ ld hl, $d
add hl, bc
and $3
ld [hl], a
inc [hl]
swap a
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld [hl], a
.four_one: ; 8d321
- ld hl, $0004
+ ld hl, $4
add hl, bc
ld a, [hl]
cp $a4
jr nc, .asm_8d356
- ld hl, $000d
+ ld hl, $d
add hl, bc
add $4
- ld hl, $0004
+ ld hl, $4
add hl, bc
ld [hl], a
- ld hl, $0005
+ ld hl, $5
add hl, bc
inc [hl]
- ld hl, $000d
+ ld hl, $d
add hl, bc
ld a, [hl]
sla a
sla a
ld d, $2
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld a, [hl]
add $3
ld [hl], a
call Function8d6de
- ld hl, $0007
+ ld hl, $7
add hl, bc
ld [hl], a
ret
@@ -56127,17 +40985,17 @@ endr
.sixteen_zero: ; 8d493
ld a, $14
call Function8d120
- ld hl, $000b
+ ld hl, $b
add hl, bc
ld [hl], $2
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld [hl], $20
ret
; 8d4a5
.sixteen_two: ; 8d4a5
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld a, [hl]
and a
@@ -56147,12 +41005,12 @@ endr
.asm_8d4af
call Function8d6d8
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld [hl], $40
.sixteen_three: ; 8d4b8
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld a, [hl]
cp $30
@@ -56160,7 +41018,7 @@ endr
dec [hl]
ld d, $28
call Function8d6de
- ld hl, $0007
+ ld hl, $7
add hl, bc
ld [hl], a
ret
@@ -56172,42 +41030,42 @@ endr
; 8d4d5
.sixteen_one: ; 8d4d5
- ld hl, $000b
+ ld hl, $b
add hl, bc
ld [hl], $4
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld [hl], $30
- ld hl, $000d
+ ld hl, $d
add hl, bc
ld [hl], $24
ret
; 8d4e8
.sixteen_four: ; 8d4e8
- ld hl, $000d
+ ld hl, $d
add hl, bc
ld a, [hl]
and a
jr z, .asm_8d51c
ld d, a
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld a, [hl]
call Function8e72c
- ld hl, $0007
+ ld hl, $7
add hl, bc
ld [hl], a
- ld hl, $000c
+ ld hl, $c
add hl, bc
inc [hl]
ld a, [hl]
and $3f
ret nz
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld [hl], $20
- ld hl, $000d
+ ld hl, $d
add hl, bc
ld a, [hl]
sub $c
@@ -56218,7 +41076,7 @@ endr
.asm_8d51c
xor a
- ld hl, $0007
+ ld hl, $7
add hl, bc
ld [hl], a
call Function8d6d8
@@ -56531,7 +41389,7 @@ endr
; 8d6d8 (23:56d8)
Function8d6d8: ; 8d6d8
- ld hl, $000b
+ ld hl, $b
add hl, bc
inc [hl]
ret
@@ -58181,7 +43039,7 @@ Function8e86c: ; 8e86c (23:686c)
push bc
ld a, [hObjectStructIndexBuffer]
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
pop bc
ld a, [hl]
@@ -58289,6 +43147,7 @@ Function8e908: ; 8e908 (23:6908)
ld [CurIcon], a
call Function8e9db
ld a, [hObjectStructIndexBuffer]
+; and $f \ swap a
rept 4
add a
endr
@@ -58321,7 +43180,7 @@ Function8e936: ; 8e936 (23:6936)
ret
Function8e94c: ; 8e94c (23:694c)
- callba Function50117
+ callba PlacePartymonHPBar
call GetHPPal
ld e, d
ld d, 0
@@ -58475,13 +43334,13 @@ GetGFXUnlessMobile: ; 8ea3f
ld a, [wLinkMode]
cp LINK_MOBILE
jp nz, Request2bpp
- jp Functiondc9
+ jp Get2bpp_2
; 8ea4a
Function8ea4a: ; 8ea4a
- ld hl, wPartyMonMenuIconAnims
+ ld hl, wc314
ld e, $6
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld d, a
.loop
ld a, [hl]
@@ -58499,13 +43358,13 @@ Function8ea4a: ; 8ea4a
push hl
ld c, l
ld b, h
- ld hl, $0002
+ ld hl, $2
add hl, bc
ld [hl], a
pop hl
.next
- ld bc, $0010
+ ld bc, $10
add hl, bc
dec e
jr nz, .loop
@@ -58513,7 +43372,7 @@ Function8ea4a: ; 8ea4a
; 8ea71
Function8ea71: ; 8ea71
- ld hl, wPartyMonMenuIconAnims
+ ld hl, wc314
ld e, $6
.loop
ld a, [hl]
@@ -58535,7 +43394,7 @@ Function8ea71: ; 8ea71
; 8ea8c (23:6a8c)
Function8ea8c: ; 8ea8c
- ld hl, wPartyMonMenuIconAnims
+ ld hl, wc314
ld e, $6
ld a, [wd0e3]
ld d, a
@@ -58595,8 +43454,8 @@ InitClock: ; 90672 (24:4672)
ld b, $8
call GetSGBLayout
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functione51
+ ld [hBGMapMode], a
+ call LoadStandardFont
ld de, GFX_908fb
ld hl, VTiles2 tile $00
lb bc, BANK(GFX_908fb), 1
@@ -58634,7 +43493,7 @@ InitClock: ; 90672 (24:4672)
ld [hl], $2
hlcoord 4, 9
call DisplayHourOClock
- ld c, $a
+ ld c, 10
call DelayFrames
.SetHourLoop
@@ -58686,20 +43545,20 @@ InitClock: ; 90672 (24:4672)
call Function658
ld hl, OakText_ResponseToSetTime
call PrintText
- call Functiona80
+ call WaitPressAorB_BlinkCursor
pop af
ld [hInMenu], a
ret
.ClearScreen: ; 90783 (24:4783)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
hlcoord 0, 0
ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
xor a
call ByteFill
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
SetHour: ; 90795 (24:4795)
@@ -58781,7 +43640,7 @@ endr
ld [de], a
inc de
push de
- ld hl, $0003
+ ld hl, $3
add hl, de
ld a, [de]
inc de
@@ -58797,7 +43656,7 @@ endr
; 90810
SetMinutes: ; 90810 (24:4810)
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and A_BUTTON
jr nz, .asm_90857
ld hl, hJoyLast
@@ -58992,12 +43851,12 @@ Special_SetDayOfWeek: ; 90913
lb bc, BANK(GFX_9090b), 1
call Request1bpp
xor a
- ld [DefaultFlypoint], a
+ ld [wd002], a
.asm_90936
hlcoord 0, 12
lb bc, 4, 18
call TextBox
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld hl, UnknownText_0x90a3f
call PrintText
hlcoord 9, 3
@@ -59011,7 +43870,7 @@ Special_SetDayOfWeek: ; 90913
hlcoord 10, 5
call Function909de
call Function321c
- ld c, $a
+ ld c, 10
call DelayFrames
.asm_9096a
call JoyTextDelay
@@ -59023,10 +43882,10 @@ Special_SetDayOfWeek: ; 90913
call PrintText
call YesNoBox
jr c, .asm_90936
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
ld [StringBuffer2], a
call Function663
- call Functione51
+ call LoadStandardFont
pop af
ld [hInMenu], a
ret
@@ -59159,12 +44018,12 @@ Special_InitialSetDSTFlag: ; 90a54
UnknownText_0x90a6c: ; 90a6c
start_asm
call UpdateTime
- ld a, [hHours] ; $ff00+$94
+ ld a, [hHours]
ld b, a
- ld a, [hMinutes] ; $ff00+$96
+ ld a, [hMinutes]
ld c, a
decoord 1, 14
- callba Function1dd6bb
+ callba PrintHoursMins
ld hl, TextJump_DSTIsThatOK
ret
; 90a83 (24:4a83)
@@ -59195,7 +44054,7 @@ UnknownText_0x90aa0: ; 90aa0
ld a, [hMinutes]
ld c, a
decoord 1, 14
- callba Function1dd6bb
+ callba PrintHoursMins
ld hl, UnknownText_0x90ab7
ret
; 90ab7
@@ -59381,7 +44240,7 @@ Function90b8d: ; 90b8d (24:4b8d)
ld [hInMenu], a
pop af
ld [Options], a
- call WhiteBGMap
+ call ClearBGPalettes
xor a
ld [hBGMapAddress], a
ld a, VBGMap0 / $100
@@ -59392,7 +44251,7 @@ Function90b8d: ; 90b8d (24:4b8d)
ret
Function90bea: ; 90bea (24:4bea)
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
@@ -59624,12 +44483,12 @@ Function90da8: ; 90da8 (24:4da8)
ret
Function90e00: ; 90e00 (24:4e00)
- ld a, [hCGB] ; $ff00+$e6
+ ld a, [hCGB]
and a
jr z, .asm_90e0e
ld a, $2
- ld [hBGMapMode], a ; $ff00+$d4
- ld c, $3
+ ld [hBGMapMode], a
+ ld c, 3
call DelayFrames
.asm_90e0e
call WaitBGMap
@@ -59691,7 +44550,7 @@ Function90e72: ; 90e72
ld de, RadioTilemapRLE
call Function914bb
hlcoord 0, 12
- ld bc, $412
+ lb bc, 4, 18
call TextBox
ret
; 90e82
@@ -59700,7 +44559,7 @@ Function90e82: ; 90e82
ld de, PhoneTilemapRLE
call Function914bb
hlcoord 0, 12
- ld bc, $412
+ lb bc, 4, 18
call TextBox
call Function90e98
call Function912d8
@@ -59857,22 +44716,22 @@ Function90f3e: ; 90f3e (24:4f3e)
Function90f7b: ; 90f7b (24:4f7b)
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call Function90f86
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
Function90f86: ; 90f86 (24:4f86)
hlcoord 3, 5
lb bc, 5, 14
call ClearBox
- ld a, [hHours] ; $ff00+$94
+ ld a, [hHours]
ld b, a
- ld a, [hMinutes] ; $ff00+$96
+ ld a, [hMinutes]
ld c, a
decoord 6, 8
- callba Function1dd6bb
+ callba PrintHoursMins
ld hl, UnknownText_0x90faf
bccoord 6, 6
call PlaceWholeStringInBoxAtOnce
@@ -60023,7 +44882,7 @@ Function9106a: ; 9106a
.asm_91079
ld a, b
call Function3b2a
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld [hl], $10
pop af
@@ -60031,10 +44890,10 @@ Function9106a: ; 9106a
push bc
callba GetLandmarkCoords
pop bc
- ld hl, $0004
+ ld hl, $4
add hl, bc
ld [hl], e
- ld hl, $0005
+ ld hl, $5
add hl, bc
ld [hl], d
ret
@@ -60045,10 +44904,10 @@ Function91098: ; 91098
ld de, 0
ld a, $d
call Function3b2a
- ld hl, $0003
+ ld hl, $3
add hl, bc
ld [hl], $4
- ld hl, $0002
+ ld hl, $2
add hl, bc
ld [hl], $0
pop af
@@ -60079,10 +44938,10 @@ Function910d4: ; 910d4
ld e, a
callba GetLandmarkCoords
pop bc
- ld hl, $0004
+ ld hl, $4
add hl, bc
ld [hl], e
- ld hl, $0005
+ ld hl, $5
add hl, bc
ld [hl], d
ret
@@ -60307,7 +45166,7 @@ OutOfServiceAreaText: ; 0x91251
; 0x91256
Function91256: ; 91256 (24:5256)
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and A_BUTTON | B_BUTTON
ret z
callba HangUp
@@ -60706,7 +45565,7 @@ Function91492: ; 91492
Function914ab: ; 914ab (24:54ab)
- ld hl, wPartyMonMenuIconAnims + 16
+ ld hl, wc314 + 16
ld bc, $90
xor a
call ByteFill
@@ -60781,7 +45640,7 @@ Function9191c: ; 9191c
push af
xor a
ld [VramState], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call DisableLCD
@@ -60836,7 +45695,7 @@ Function9191c: ; 9191c
ld [hInMenu], a
pop af
ld [Options], a
- call WhiteBGMap
+ call ClearBGPalettes
ret
; 919b0
@@ -60913,7 +45772,7 @@ Function91a04: ; 91a04
.asm_91a11
callba Function91ae1
ld a, $7
- ld bc, $0006
+ ld bc, 6
hlcoord 1, 0
call ByteFill
hlcoord 0, 0
@@ -60925,7 +45784,7 @@ Function91a04: ; 91a04
hlcoord 7, 2
ld [hl], $26
ld a, $7
- ld bc, $000b
+ ld bc, NAME_LENGTH
hlcoord 8, 2
call ByteFill
hlcoord 19, 2
@@ -60987,7 +45846,7 @@ endr
.jump_return
push de
hlcoord 0, 12
- ld bc, $0412
+ lb bc, 4, 18
call TextBox
hlcoord 1, 14
ld [hl], $72
@@ -61042,927 +45901,12 @@ Function91ae1: ; 91ae1
; 91af3
-_FlyMap: ; 91af3
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld hl, hInMenu
- ld a, [hl]
- push af
- ld [hl], $1
- xor a
- ld [hBGMapMode], a
- callba Function8cf53
- call Function91ff2
- ld de, GFX_922e1
- ld hl, VTiles2 tile $30
- lb bc, BANK(GFX_922e1), 6
- call Request1bpp
- call FlyMap
- call Function91c8f
- ld b, $2
- call GetSGBLayout
- call SetPalettes
-.loop
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .pressedB
- ld a, [hl]
- and A_BUTTON
- jr nz, .pressedA
- call FlyMapScroll
- call GetMapCursorCoordinates
- callba Function8cf69
- call DelayFrame
- jr .loop
-
-.pressedB
- ld a, -1
- jr .exit
-
-.pressedA
- ld a, [DefaultFlypoint]
- ld l, a
- ld h, 0
- add hl, hl
- ld de, Flypoints + 1
- add hl, de
- ld a, [hl]
-
-.exit
- ld [DefaultFlypoint], a
- pop af
- ld [hInMenu], a
- call WhiteBGMap
- ld a, $90
- ld [hWY], a
- xor a
- ld [hBGMapAddress], a
- ld a, VBGMap0 / $100
- ld [hBGMapAddress + 1], a
- ld a, [DefaultFlypoint]
- ld e, a
- ret
-; 91b73
-
-FlyMapScroll: ; 91b73
- ld a, [StartFlypoint]
- ld e, a
- ld a, [EndFlypoint]
- ld d, a
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .ScrollNext
- ld a, [hl]
- and D_DOWN
- jr nz, .ScrollPrev
- ret
-
-.ScrollNext
- ld hl, DefaultFlypoint
- ld a, [hl]
- cp d
- jr nz, .NotAtEndYet
- ld a, e
- dec a
- ld [hl], a
-
-.NotAtEndYet
- inc [hl]
- call CheckIfVisitedFlypoint
- jr z, .ScrollNext
- jr .Finally
-
-.ScrollPrev
- ld hl, DefaultFlypoint
- ld a, [hl]
- cp e
- jr nz, .NotAtStartYet
- ld a, d
- inc a
- ld [hl], a
-
-.NotAtStartYet
- dec [hl]
- call CheckIfVisitedFlypoint
- jr z, .ScrollPrev
-
-.Finally
- call TownMapBubble
- call WaitBGMap
- xor a
- ld [hBGMapMode], a
- ret
-; 91bb5
-
-TownMapBubble: ; 91bb5
-; Draw the bubble containing the location text in the town map HUD
-
-; Top-left corner
- hlcoord 1, 0
- ld a, $30
- ld [hli], a
-
-; Top row
- ld bc, 16
- ld a, " "
- call ByteFill
-
-; Top-right corner
- ld a, $31
- ld [hl], a
- hlcoord 1, 1
-
-
-; Middle row
- ld bc, 18
- ld a, " "
- call ByteFill
-
-
-; Bottom-left corner
- hlcoord 1, 2
- ld a, $32
- ld [hli], a
-
-; Bottom row
- ld bc, 16
- ld a, " "
- call ByteFill
-
-; Bottom-right corner
- ld a, $33
- ld [hl], a
-
-
-; Print "Where?"
- hlcoord 2, 0
- ld de, .Where
- call PlaceString
-
-; Print the name of the default flypoint
- call .Name
-
-; Up/down arrows
- hlcoord 18, 1
- ld [hl], $34
- ret
-
-.Where
- db "Where?@"
-
-.Name
-; We need the map location of the default flypoint
- ld a, [DefaultFlypoint]
- ld l, a
- ld h, 0
- add hl, hl ; two bytes per flypoint
- ld de, Flypoints
- add hl, de
- ld e, [hl]
-
- callba GetLandmarkName
-
- hlcoord 2, 1
- ld de, StringBuffer1
- call PlaceString
- ret
-; 91c17
-
-GetMapCursorCoordinates: ; 91c17
- ld a, [DefaultFlypoint]
- ld l, a
- ld h, $0
- add hl, hl
- ld de, Flypoints
- add hl, de
- ld e, [hl]
- callba GetLandmarkCoords
- ld a, [wd003]
- ld c, a
- ld a, [wd004]
- ld b, a
- ld hl, $0004
- add hl, bc
- ld [hl], e
- ld hl, $0005
- add hl, bc
- ld [hl], d
- ret
-; 91c3c
-
-CheckIfVisitedFlypoint: ; 91c3c
-; Check if the flypoint loaded in [hl] has been visited yet.
- push bc
- push de
- push hl
- ld l, [hl]
- ld h, 0
- add hl, hl
- ld de, Flypoints + 1
- add hl, de
- ld c, [hl]
- call HasVisitedSpawn
- pop hl
- pop de
- pop bc
- and a
- ret
-; 91c50
-
-HasVisitedSpawn: ; 91c50
-; Check if spawn point c has been visited.
- ld hl, VisitedSpawns
- ld b, CHECK_FLAG
- ld d, 0
- predef FlagPredef
- ld a, c
- ret
-; 91c5e
-
-Flypoints: ; 91c5e
-; landmark, spawn point
-
- const_def
-
-flypoint: MACRO
-; \1\@FLY EQUS "FLY_\1"
-; \1\@SPAWN EQUS "SPAWN_\1"
- ; const \1\@FLY
- ; db \2, \1\@SPAWN
- 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
-
-Function91c8f: ; 91c8f
- ret
-; 91c90
-
-FlyMap: ; 91c90
-
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
-
-; If we're not in a valid location, i.e. Pokecenter floor 2F,
-; the backup map information is used
-
- cp SPECIAL_MAP
- jr nz, .CheckRegion
-
- ld a, [BackupMapGroup]
- ld b, a
- ld a, [BackupMapNumber]
- ld c, a
- call GetWorldMapLocation
-
-.CheckRegion
-; The first 46 locations are part of Johto. The rest are in Kanto
- cp KANTO_LANDMARK
- jr nc, .KantoFlyMap
-
-.JohtoFlyMap
-; Note that .NoKanto should be modified in tandem with this branch
-
- push af
-
-; Start from New Bark Town
- ld a, FLY_NEW_BARK
- ld [DefaultFlypoint], a
-
-; Flypoints begin at New Bark Town...
- ld [StartFlypoint], a
-; ..and end at Silver Cave
- ld a, FLY_MT_SILVER
- ld [EndFlypoint], a
-
-; Fill out the map
- call FillJohtoMap
- call .MapHud
- pop af
- call TownMapPlayerIcon
- ret
-
-.KantoFlyMap
-
-; The event that there are no flypoints enabled in a map is not
-; accounted for. As a result, if you attempt to select a flypoint
-; when there are none enabled, the game will crash. Additionally,
-; the flypoint selection has a default starting point that
-; can be flown to even if none are enabled
-
-; To prevent both of these things from happening when the player
-; enters Kanto, fly access is restricted until Indigo Plateau is
-; visited and its flypoint enabled
-
- push af
- ld c, SPAWN_INDIGO
- call HasVisitedSpawn
- and a
- jr z, .NoKanto
-
-; Kanto's map is only loaded if we've visited Indigo Plateau
-
-; Flypoints begin at Pallet Town...
- ld a, FLY_PALLET
- ld [StartFlypoint], a
-; ...and end at Indigo Plateau
- ld a, FLY_INDIGO
- ld [EndFlypoint], a
-
-; Because Indigo Plateau is the first flypoint the player
-; visits, it's made the default flypoint
- ld [DefaultFlypoint], a
-
-; Fill out the map
- call FillKantoMap
- call .MapHud
- pop af
- call TownMapPlayerIcon
- ret
-
-.NoKanto
-; If Indigo Plateau hasn't been visited, we use Johto's map instead
-
-; Start from New Bark Town
- ld a, FLY_NEW_BARK
- ld [DefaultFlypoint], a
-
-; Flypoints begin at New Bark Town...
- ld [StartFlypoint], a
-; ..and end at Silver Cave
- ld a, FLY_MT_SILVER
- ld [EndFlypoint], a
-
- call FillJohtoMap
-
- pop af
-
-.MapHud
- call TownMapBubble
- call TownMapPals
-
- ld hl, VBGMap0 ; BG Map 0
- call TownMapBGUpdate
-
- call TownMapMon
- ld a, c
- ld [wd003], a
- ld a, b
- ld [wd004], a
- ret
-; 91d11
-
-Function91d11: ; 91d11
- ld a, [DefaultFlypoint]
- push af
- ld a, [wd003]
- push af
- ld a, e
- ld [DefaultFlypoint], a
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- ld a, $1
- ld [hInMenu], a
- ld de, GFX_922d1
- ld hl, VTiles0 tile $7f
- lb bc, BANK(GFX_922d1), 1
- call Request2bpp ; actually 1bpp
- call Function91ed0
- ld hl, VTiles0 tile $78
- ld c, $4
- call Request2bpp
- call Function91ff2
- call FillKantoMap
- call Function91de9
- call TownMapPals
- ld hl, VBGMap1
- call TownMapBGUpdate
- call FillJohtoMap
- call Function91de9
- call TownMapPals
- ld hl, VBGMap0
- call TownMapBGUpdate
- ld b, $2
- call GetSGBLayout
- call SetPalettes
- xor a
- ld [hBGMapMode], a
- xor a
- call Function91e1e
-.asm_91d6e
- call JoyTextDelay
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON | B_BUTTON
- jr nz, .asm_91d8f
- ld a, [hJoypadDown]
- and SELECT
- jr nz, .asm_91d87
- call Function91d9b
- call Function91dcd
- jr .asm_91d8a
-
-.asm_91d87
- call Function91e5a
-
-.asm_91d8a
- call DelayFrame
- jr .asm_91d6e
-
-.asm_91d8f
- call ClearSprites
- pop af
- ld [wd003], a
- pop af
- ld [DefaultFlypoint], a
- ret
-; 91d9b
-
-Function91d9b: ; 91d9b
- ld a, [hl]
- and $20
- jr nz, .asm_91da6
- ld a, [hl]
- and $10
- jr nz, .asm_91db7
- ret
-
-.asm_91da6
- ld a, [hWY]
- cp $90
- ret z
- call ClearSprites
- ld a, $90
- ld [hWY], a
- xor a
- call Function91e1e
- ret
-
-.asm_91db7
- ld a, [StatusFlags]
- bit 6, a
- ret z
- ld a, [hWY]
- and a
- ret z
- call ClearSprites
- xor a
- ld [hWY], a
- ld a, $1
- call Function91e1e
- ret
-; 91dcd
-
-Function91dcd: ; 91dcd
- ld a, [$ff9b]
- ld e, a
- and $f
- ret nz
- ld a, e
- and $10
- jr nz, .asm_91ddc
- call ClearSprites
- ret
-
-.asm_91ddc
- hlcoord 0, 0
- ld de, Sprites
- ld bc, $00a0
- call CopyBytes
- ret
-; 91de9
-
-Function91de9: ; 91de9
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH
- ld a, $7f
- call ByteFill
- hlcoord 0, 1
- ld a, $6
- ld [hli], a
- ld bc, SCREEN_HEIGHT
- ld a, $7
- call ByteFill
- ld [hl], $17
- call GetPokemonName
- hlcoord 2, 0
- call PlaceString
- ld h, b
- ld l, c
- ld de, String_91e16
- call PlaceString
- ret
-; 91e16
-
-String_91e16:
- db "'S NEST@"
-; 91e1e
-
-Function91e1e: ; 91e1e
- ld [wd003], a
- ld e, a
- callba Function2a01f
- decoord 0, 0
- ld hl, Sprites
-.asm_91e2e
- ld a, [de]
- and a
- jr z, .asm_91e4d
- push de
- ld e, a
- push hl
- callba GetLandmarkCoords
- pop hl
- ld a, d
- sub $4
- ld [hli], a
- ld a, e
- sub $4
- ld [hli], a
- ld a, $7f
- ld [hli], a
- xor a
- ld [hli], a
- pop de
- inc de
- jr .asm_91e2e
-
-.asm_91e4d
- ld hl, Sprites
- decoord 0, 0
- ld bc, $00a0
- call CopyBytes
- ret
-; 91e5a
-
-Function91e5a: ; 91e5a
- call Function91ea9
- ret c
-
- ld a, [DefaultFlypoint]
- ld e, a
- callba GetLandmarkCoords
- ld c, e
- ld b, d
- ld de, Unknown_91e9c
- ld hl, Sprites
-.asm_91e70
- ld a, [de]
- cp $80
- jr z, .asm_91e91
-
- add b
- ld [hli], a
- inc de
-
- ld a, [de]
- add c
- ld [hli], a
- inc de
-
- ld a, [de]
- add $78
- ld [hli], a
- inc de
-
- push bc
- ld c, 0
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_91e8c
- inc c
-.asm_91e8c
- ld a, c
- ld [hli], a
- pop bc
-
- jr .asm_91e70
-
-.asm_91e91
- ld hl, Sprites + $10
- ld bc, SpritesEnd - (Sprites + $10)
- xor a
- call ByteFill
- ret
-; 91e9c
-
-Unknown_91e9c: ; 91e9c
- db -8, -8, 0
- db -8, 0, 1
- db 0, -8, 2
- db 0, 0, 3
- db $80 ; terminator
-; 91ea9
-
-Function91ea9: ; 91ea9
- ld a, [DefaultFlypoint]
- cp FAST_SHIP
- jr z, .johto
- cp KANTO_LANDMARK
- jr c, .johto
-
-.kanto
- ld a, [wd003]
- and a
- jr z, .clear
- jr .ok
-
-.johto
- ld a, [wd003]
- and a
- jr nz, .clear
-
-.ok
- and a
- ret
-
-.clear
- ld hl, Sprites
- ld bc, SpritesEnd - Sprites
- xor a
- call ByteFill
- scf
- ret
-; 91ed0
-
-Function91ed0: ; 91ed0
- ld a, [DefaultFlypoint]
- cp FAST_SHIP
- jr z, .asm_91ede
- callba GetPlayerIcon
- ret
-
-.asm_91ede
- ld de, FastShipGFX
- ld b, BANK(FastShipGFX)
- ret
-; 91ee4
-
-TownMapBGUpdate: ; 91ee4
-; Update BG Map tiles and attributes
-
-; BG Map address
- ld a, l
- ld [hBGMapAddress], a
- ld a, h
- ld [hBGMapAddress + 1], a
-
-; Only update palettes on CGB
- ld a, [hCGB]
- and a
- jr z, .tiles
-
-; BG Map mode 2 (palettes)
- ld a, 2
- ld [hBGMapMode], a
-
-; The BG Map is updated in thirds, so we wait
-; 3 frames to update the whole screen's palettes.
- ld c, 3
- call DelayFrames
-
-.tiles
-; Update BG Map tiles
- call WaitBGMap
-
-; Turn off BG Map update
- xor a
- ld [hBGMapMode], a
- ret
-; 91eff
-
-FillJohtoMap: ; 91eff
- ld de, JohtoMap
- jr FillTownMap
-
-FillKantoMap: ; 91f04
- ld de, KantoMap
-
-FillTownMap: ; 91f07
- hlcoord 0, 0
-.loop
- ld a, [de]
- cp $ff
- ret z
- ld a, [de]
- ld [hli], a
- inc de
- jr .loop
-; 91f13
-
-TownMapPals: ; 91f13
-; Assign palettes based on tile ids
-
- hlcoord 0, 0
- decoord 0, 0, AttrMap
- ld bc, 360
-.loop
-; Current tile
- ld a, [hli]
- push hl
-
-; HP/borders use palette 0
- cp $60
- jr nc, .pal0
-
-; The palette data is condensed to nybbles,
-; least-significant first.
- ld hl, TownMapPalMap
- srl a
- jr c, .odd
-
-; Even-numbered tile ids take the bottom nybble...
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- and %111
- jr .update
-
-.odd
-; ...and odd ids take the top.
- add l
- ld l, a
- ld a, h
- adc 0
- ld h, a
- ld a, [hl]
- swap a
- and %111
- jr .update
-
-.pal0
- xor a
-
-.update
- pop hl
- ld [de], a
- inc de
- dec bc
- ld a, b
- or c
- jr nz, .loop
- ret
-
-TownMapPalMap:
- db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00
- db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00
- db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33
- db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00
-; 91f7b
-
-TownMapMon: ; 91f7b
-; Draw the FlyMon icon at town map location in
-
-; Get FlyMon species
- ld a, [CurPartyMon]
- ld hl, PartySpecies
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ld [wd265], a
-
-; Get FlyMon icon
- ld e, 8 ; starting tile in VRAM
- callba GetSpeciesIcon
-
-; Animation/palette
- ld de, 0
- ld a, $0
- call Function3b2a
-
- ld hl, 3
- add hl, bc
- ld [hl], 8
- ld hl, 2
- add hl, bc
- ld [hl], 0
- ret
-; 91fa6
-
-TownMapPlayerIcon: ; 91fa6
-; Draw the player icon at town map location in a
- push af
-
- callba GetPlayerIcon
-
-; Standing icon
- ld hl, VTiles0 tile $10
- ld c, 4 ; # tiles
- call Request2bpp
-
-; Walking icon
- ld hl, $00c0
- add hl, de
- ld d, h
- ld e, l
- ld hl, VTiles0 tile $14
- ld c, 4 ; # tiles
- ld a, BANK(ChrisSpriteGFX) ; does nothing
- call Request2bpp
-
-; Animation/palette
- ld de, 0
- ld b, $0a ; Male
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_91fd3
- ld b, $1e ; Female
-.asm_91fd3
- ld a, b
- call Function3b2a
-
- ld hl, $0003
- add hl, bc
- ld [hl], $10
-
- pop af
- ld e, a
- push bc
- callba GetLandmarkCoords
- pop bc
-
- ld hl, 4
- add hl, bc
- ld [hl], e
- ld hl, 5
- add hl, bc
- ld [hl], d
- ret
-; 0x91ff2
-
-Function91ff2: ; 91ff2
- ld hl, TownMapGFX
- ld de, VTiles2
- lb bc, BANK(TownMapGFX), $30
- call Functione73
- ret
-; 91fff
-
+INCLUDE "engine/flypoints.asm"
-JohtoMap: ; 91fff
-INCBIN "gfx/misc/johto.bin"
-; 92168
-
-KantoMap: ; 92168
-INCBIN "gfx/misc/kanto.bin"
-; 922d1
-
-
-GFX_922d1: ; 922d1
-INCBIN "gfx/unknown/0922d1.2bpp"
-GFX_922e1: ; 922e1
-INCBIN "gfx/unknown/0922e1.2bpp"
-GFX_92301: ; 92301
-INCBIN "gfx/unknown/092301.2bpp"
-
-Function92311: ; 92311
+Function92311: ; unreferenced
xor a
- ld [DefaultFlypoint], a
- call WhiteBGMap
+ ld [wd002], a
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
ld hl, hInMenu
@@ -62015,7 +45959,7 @@ Function92311: ; 92311
jr .asm_9239f
.pressedA
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
ld l, a
ld h, 0
add hl, hl
@@ -62024,17 +45968,17 @@ Function92311: ; 92311
ld a, [hl]
.asm_9239f
- ld [DefaultFlypoint], a
+ ld [wd002], a
pop af
ld [hInMenu], a
- call WhiteBGMap
+ call ClearBGPalettes
ld a, $90
ld [hWY], a
xor a
ld [hBGMapAddress], a
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
ld e, a
ret
; 923b8
@@ -62050,7 +45994,7 @@ Function923b8: ; 923b8
ret
.asm_923c6
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld a, [hl]
cp FLY_INDIGO
jr c, .asm_923d0
@@ -62060,7 +46004,7 @@ Function923b8: ; 923b8
jr .asm_923dd
.asm_923d3
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld a, [hl]
and a
jr nz, .asm_923dc
@@ -62069,7 +46013,7 @@ Function923b8: ; 923b8
dec [hl]
.asm_923dd
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
cp KANTO_FLYPOINT
jr c, .johto
@@ -62096,2121 +46040,7 @@ Function923b8: ; 923b8
INCLUDE "data/wild/fish.asm"
-
-
-_SlotMachine:
- ld hl, Options
- set 4, [hl]
- call Function926f7
- call DelayFrame
-.asm_926d2
- call Function927af
- jr nc, .asm_926d2
- call WaitSFX
- ld de, SFX_QUIT_SLOTS
- call PlaySFX
- call WaitSFX
- call WhiteBGMap
- callba MobileFn_105fd0
- ld hl, Options
- res 4, [hl]
- ld hl, rLCDC ; $ff40
- res 2, [hl]
- ret
-
-Function926f7: ; 926f7 (24:66f7)
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- call DisableLCD
- ld hl, VBGMap0 tile $00
- ld bc, $400
- ld a, $7f
- call ByteFill
- ld b, $5
- call GetSGBLayout
- callab Function8cf53
- ld hl, wc6d0
- ld bc, $48
- xor a
- call ByteFill
- ld hl, Slots2LZ
- ld de, VTiles0 tile $00
- call Decompress
- ld hl, Slots3LZ
- ld de, VTiles0 tile $40
- call Decompress
- ld hl, Slots1LZ
- ld de, VTiles2 tile $00
- call Decompress
- ld hl, Slots2LZ
- ld de, VTiles2 tile $25
- call Decompress
- ld hl, SlotsTilemap
- decoord 0, 0
- ld bc, 20 * 12
- call CopyBytes
- ld hl, rLCDC ; $ff40
- set 2, [hl]
- call EnableLCD
- ld hl, wc6d0
- ld bc, $64
- xor a
- call ByteFill
- call Function92a98
- call Function9279b
- ld a, $7
- ld hl, wc300
- ld [hli], a
- ld [hl], $40
- xor a
- ld [wJumptableIndex], a
- ld a, $ff
- ld [wc709], a
- ld de, MUSIC_GAME_CORNER
- call PlayMusic
- xor a
- ld [wd002], a
- call Random
- and $2a
- ret nz
- ld a, $1
- ld [wd002], a
- ret
-
-Function9279b: ; 9279b (24:679b)
- ld a, $e4
- call DmgToCgbBGPals
- lb de, $e4, $e4
- ld a, [hCGB] ; $ff00+$e6
- and a
- jr nz, .asm_927ab
- lb de, $c0, $e4
-.asm_927ab
- call DmgToCgbObjPals
- ret
-
-Function927af: ; 927af (24:67af)
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_927d1
- call Function92844
- call Function92b0f
- xor a
- ld [wc3b5], a
- callab Function8cfa8
- call Function927f8
- call Function927d3
- call DelayFrame
- and a
- ret
-.asm_927d1
- scf
- ret
-
-Function927d3: ; 927d3 (24:67d3)
- ret
-; 927d4 (24:67d4)
-
-Function927d4: ; 927d4
- ld a, [wc6d0]
- and a
- ret nz
- ld a, [wc6e0]
- and a
- ret nz
- ld a, [wc70c]
- and a
- jr nz, .asm_927ea
- ld a, $e4
- call DmgToCgbBGPals
- ret
-
-.asm_927ea
- ld a, [TextDelayFrames]
- and $7
- ret nz
- ld a, [rBGP]
- xor %1100
- call DmgToCgbBGPals
- ret
-; 927f8
-
-Function927f8: ; 927f8 (24:67f8)
- hlcoord 5, 1
- ld de, Coins
- lb bc, PRINTNUM_LEADINGZEROS | 2, 4
- call PrintNum
- hlcoord 11, 1
- ld de, wc711
- lb bc, PRINTNUM_LEADINGZEROS | 2, 4
- call PrintNum
- ret
-; 92811 (24:6811)
-
-Function92811: ; 92811
- ld a, [wc709]
- add 0
- daa
- ld e, a
- and $f
- add "0"
- hlcoord 1, 0
- ld [hl], a
- ld a, e
- swap a
- and $f
- add "0"
- hlcoord 0, 0
- ld [hl], a
- ret
-; 9282c
-
-Function9282c: ; 9282c
- ld hl, wcf66
- ld a, [hl]
- inc [hl]
- and $7
- ret nz
- ld hl, Sprites + $42
- ld c, $18
-.asm_92839
- ld a, [hl]
- xor $20
- ld [hli], a
-rept 3
- inc hl
-endr
- dec c
- jr nz, .asm_92839
- ret
-; 92844
-
-Function92844: ; 92844 (24:6844)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_92853
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 92853 (24:6853)
-
-
-Jumptable_92853: ; 92853 (24:6853)
- dw Function9287e
- dw Function9288e
- dw Function928c6
- dw Function928d6
- dw Function928e6
- dw Function92900
- dw Function92910
- dw Function9292a
- dw Function9293a
- dw Function92879
- dw Function92879
- dw Function92879
- dw Function92955
- dw Function9296b
- dw Function92987
- dw Function9299e
- dw Function929a4
- dw Function929d9
- dw Function929f0
-
-
-Function92879: ; 92879 (24:6879)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Function9287e: ; 9287e (24:687e)
- call Function92879
- xor a
- ld [wc70b], a
- ld [wc70c], a
- ld a, $ff
- ld [wc70d], a
- ret
-
-Function9288e: ; 9288e (24:688e)
- call Function9307c
- jr nc, .asm_92899
- ld a, $12
- ld [wJumptableIndex], a
- ret
-.asm_92899
- call Function92879
- call Function9303f
- call Function93002
- ld a, $20
- ld [wcf64], a
- ld a, $4
- ld [wc6d0], a
- ld [wc6e0], a
- ld [wc6f0], a
- ld a, $4
- ld [wc6d9], a
- ld [wc6e9], a
- ld [wc6f9], a
- call WaitSFX
- ld a, SFX_SLOT_MACHINE_START
- call Function9331e
- ret
-
-Function928c6: ; 928c6 (24:68c6)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_928cf
- dec [hl]
- ret
-.asm_928cf
- call Function92879
- xor a
- ld [hJoypadSum], a ; $ff00+$a5
- ret
-
-Function928d6: ; 928d6 (24:68d6)
- ld hl, hJoypadSum ; $ffa5
- ld a, [hl]
- and A_BUTTON
- ret z
- call Function92879
- call Function92a2b
- ld [wc6d0], a
-
-Function928e6: ; 928e6 (24:68e6)
- ld a, [wc6d0]
- cp $0
- ret nz
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld bc, wc6d0
- ld de, wc700
- call Function929f6
- call Function92879
- xor a
- ld [hJoypadSum], a ; $ff00+$a5
-
-Function92900: ; 92900 (24:6900)
- ld hl, hJoypadSum ; $ffa5
- ld a, [hl]
- and A_BUTTON
- ret z
- call Function92879
- call Function92a2e
- ld [wc6e0], a
-
-Function92910: ; 92910 (24:6910)
- ld a, [wc6e0]
- cp $0
- ret nz
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld bc, wc6e0
- ld de, wc703
- call Function929f6
- call Function92879
- xor a
- ld [hJoypadSum], a ; $ff00+$a5
-
-Function9292a: ; 9292a (24:692a)
- ld hl, hJoypadSum ; $ffa5
- ld a, [hl]
- and A_BUTTON
- ret z
- call Function92879
- call Function92a60
- ld [wc6f0], a
-
-Function9293a: ; 9293a (24:693a)
- ld a, [wc6f0]
- cp $0
- ret nz
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld bc, wc6f0
- ld de, wc706
- call Function929f6
- call Function92879
- xor a
- ld [hJoypadSum], a ; $ff00+$a5
- ret
-
-Function92955: ; 92955 (24:6955)
- ld a, [wc70d]
- cp $ff
- jr nz, .asm_92963
- call Function92879
- call Function92879
- ret
-.asm_92963
- call Function92879
- ld a, $10
- ld [wcf64], a
-
-Function9296b: ; 9296b (24:696b)
- ld hl, wcf64
- ld a, [hl]
- and a
- jr z, .asm_92980
- dec [hl]
- srl a
- ret z
- ld a, [rOBP0] ; $ff00+$48
- xor $ff
- ld e, a
- ld d, a
- call DmgToCgbObjPals
- ret
-.asm_92980
- call Function9279b
- call Function92879
- ret
-
-Function92987: ; 92987 (24:6987)
- xor a
- ld [wc70b], a
- ld [wc70c], a
- ld a, $e4
- call DmgToCgbBGPals
- call Function93124
- xor a
- ld [wcf64], a
- call Function92879
- ret
-
-Function9299e: ; 9299e (24:699e)
- call Function93158
- call Function92879
-
-Function929a4: ; 929a4 (24:69a4)
- ld hl, wcf64
- ld a, [hl]
- inc [hl]
- and $1
- ret z
- ld hl, wc711
- ld a, [hli]
- ld d, a
- or [hl]
- jr z, .asm_929d5
- ld e, [hl]
- dec de
- ld [hl], e
- dec hl
- ld [hl], d
- ld hl, Coins
- ld d, [hl]
- inc hl
- ld e, [hl]
- call Function92a04
- jr c, .asm_929c5
- inc de
-.asm_929c5
- ld [hl], e
- dec hl
- ld [hl], d
- ld a, [wcf64]
- and $7
- ret z
- ld de, SFX_GET_COIN_FROM_SLOTS
- call PlaySFX
- ret
-.asm_929d5
- call Function92879
- ret
-
-Function929d9: ; 929d9 (24:69d9)
- call Function9304c
- call Functiona80
- call Function930e9
- jr c, .asm_929ea
- ld a, $0
- ld [wJumptableIndex], a
- ret
-.asm_929ea
- ld a, $12
- ld [wJumptableIndex], a
- ret
-
-Function929f0: ; 929f0 (24:69f0)
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function929f6: ; 929f6 (24:69f6)
- push de
- call Function92a12
- pop de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- ret
-
-Function92a04: ; 92a04 (24:6a04)
- ld a, d
- cp 9999 / $100
- jr c, .asm_92a10
- ld a, e
- cp 9999 % $100
- jr c, .asm_92a10
- scf
- ret
-.asm_92a10
- and a
- ret
-
-Function92a12: ; 92a12 (24:6a12)
- ld hl, $3
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_92a1c
- ld a, $f
-.asm_92a1c
- dec a
- and $f
- ld e, a
- ld d, $0
- ld hl, $1
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ret
-
-Function92a2b: ; 92a2b (24:6a2b)
- ld a, $7
- ret
-
-Function92a2e: ; 92a2e (24:6a2e)
- ld a, [wc70a]
- cp $2
- jr c, .asm_92a4e
- ld a, [wc709]
- and a
- jr z, .asm_92a3f
- cp $ff
- jr nz, .asm_92a4e
-.asm_92a3f
- call Function92a51
- jr nz, .asm_92a4e
- call Random
- cp $50
- jr nc, .asm_92a4e
- ld a, $a
- ret
-.asm_92a4e
- ld a, $8
- ret
-
-Function92a51: ; 92a51 (24:6a51)
- ld a, [wc700]
- and a
- ret z
- ld a, [wc701]
- and a
- ret z
- ld a, [wc702]
- and a
- ret
-
-Function92a60: ; 92a60 (24:6a60)
- ld a, [wc70b]
- and a
- jr z, .asm_92a95
- ld a, [wc70c]
- and a
- jr z, .asm_92a95
- ld a, [wc709]
- and a
- jr nz, .asm_92a84
- call Random
- cp 180
- jr nc, .asm_92a95
- cp 120
- jr nc, .asm_92a92
- cp 60
- jr nc, .asm_92a8f
- ld a, $15
- ret
-.asm_92a84
- call Random
- cp $a0
- jr nc, .asm_92a95
- cp $50
- jr nc, .asm_92a92
-.asm_92a8f
- ld a, $12
- ret
-.asm_92a92
- ld a, $10
- ret
-.asm_92a95
- ld a, $9
- ret
-
-Function92a98: ; 92a98 (24:6a98)
- ld bc, wc6d0
- ld hl, $6
- add hl, bc
- ld de, Sprites + $40
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $1
- add hl, bc
- ld de, Unknown_93327
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $8
- add hl, bc
- ld [hl], $30
- call Function92af9
- ld bc, wc6e0
- ld hl, $6
- add hl, bc
- ld de, Sprites + $60
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $1
- add hl, bc
- ld de, Unknown_93339
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $8
- add hl, bc
- ld [hl], $50
- call Function92af9
- ld bc, wc6f0
- ld hl, $6
- add hl, bc
- ld de, Sprites + $80
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $1
- add hl, bc
- ld de, Unknown_9334b
- ld [hl], e
- inc hl
- ld [hl], d
- ld hl, $8
- add hl, bc
- ld [hl], $70
- call Function92af9
- ret
-
-Function92af9: ; 92af9 (24:6af9)
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ld hl, $3
- add hl, bc
- ld [hl], $e
- ld hl, $4
- add hl, bc
- ld [hl], $0
- call Function92b53
- ret
-
-Function92b0f: ; 92b0f (24:6b0f)
- ld bc, wc6d0
- call Function92b22
- ld bc, wc6e0
- call Function92b22
- ld bc, wc6f0
- call Function92b22
- ret
-
-Function92b22: ; 92b22 (24:6b22)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- and $f
- jr nz, .asm_92b2e
- call Function92bd4
-.asm_92b2e
- ld hl, $5
- add hl, bc
- ld a, [hl]
- and a
- ret z
- ld d, a
- ld hl, $4
- add hl, bc
- add [hl]
- ld [hl], a
- and $f
- jr z, Function92b53
- ld hl, $6
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld e, $8
-.asm_92b49
- ld a, [hl]
- add d
- ld [hli], a
-rept 3
- inc hl
-endr
- dec e
- jr nz, .asm_92b49
- ret
-
-Function92b53: ; 92b53 (24:6b53)
- ld hl, $8
- add hl, bc
- ld a, [hl]
- ld [wc712 + 1], a
- ld a, $50
- ld [wc712 + 2], a
- ld hl, $3
- add hl, bc
- ld e, [hl]
- ld d, $0
- ld hl, $1
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
- add hl, de
- ld e, l
- ld d, h
- call Function92b83
- ld hl, $3
- add hl, bc
- ld a, [hl]
- inc a
- and $f
- cp $f
- jr nz, .asm_92b81
- xor a
-.asm_92b81
- ld [hl], a
- ret
-
-Function92b83: ; 92b83 (24:6b83)
- ld hl, $6
- add hl, bc
- ld a, [hli]
- ld h, [hl]
- ld l, a
-.asm_92b8a
- ld a, [wc712 + 2]
- ld [hli], a
- ld a, [wc712 + 1]
- ld [hli], a
- ld a, [de]
- ld [hli], a
- srl a
- srl a
- set 7, a
- ld [hli], a
- ld a, [wc712 + 2]
- ld [hli], a
- ld a, [wc712 + 1]
- add $8
- ld [hli], a
- ld a, [de]
-rept 2
- inc a
-endr
- ld [hli], a
- srl a
- srl a
- set 7, a
- ld [hli], a
- inc de
- ld a, [wc712 + 2]
- sub $10
- ld [wc712 + 2], a
- cp $10
- jr nz, .asm_92b8a
- ret
-; 92bbe (24:6bbe)
-
-Function92bbe: ; 92bbe
- push hl
- srl a
- srl a
- add Unknown_92bce % $100
- ld l, a
- ld a, 0
- adc Unknown_92bce / $100
- ld h, a
- ld a, [hl]
- pop hl
- ret
-; 92bce
-
-Unknown_92bce: ; 92bce
- db 0, 1, 2, 3, 4, 5
-; 92bd4
-
-Function92bd4: ; 92bd4 (24:6bd4)
- ld hl, 0
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_92be4
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 92be4 (24:6be4)
-
-Jumptable_92be4: ; 92be4
- dw Function92c16
- dw Function92c4c
- dw Function92c17
- dw Function92c1e
- dw Function92c25
- dw Function92c2c
- dw Function92c33
- dw Function92c5e
- dw Function92c86
- dw Function92ca9
- dw Function92cd2
- dw Function92cf8
- dw Function92d13
- dw Function92df7
- dw Function92e10
- dw Function92e31
- dw Function92e47
- dw Function92e64
- dw Function92d20
- dw Function92d4f
- dw Function92d6e
- dw Function92d7e
- dw Function92da4
- dw Function92db3
- dw Function92dca
-; 92c16
-
-Function92c16: ; 92c16
- ret
-; 92c17
-
-Function92c17: ; 92c17
- ld hl, $0005
- add hl, bc
- ld [hl], $10
- ret
-; 92c1e
-
-Function92c1e: ; 92c1e
- ld hl, $0005
- add hl, bc
- ld [hl], $8
- ret
-; 92c25
-
-Function92c25: ; 92c25
- ld hl, $0005
- add hl, bc
- ld [hl], $4
- ret
-; 92c2c
-
-Function92c2c: ; 92c2c
- ld hl, $0005
- add hl, bc
- ld [hl], $2
- ret
-; 92c33
-
-Function92c33: ; 92c33
- ld hl, $0005
- add hl, bc
- ld [hl], $1
- ret
-; 92c3a
-
-Function92c3a: ; 92c3a
- ld hl, $0005
- add hl, bc
- ld [hl], $0
- ld hl, 0
- add hl, bc
- ld [hl], $1
- ld hl, $000f
- add hl, bc
- ld [hl], $3
-
-Function92c4c: ; 92c4c
- ld hl, $000f
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92c56
- dec [hl]
- ret
-
-.asm_92c56
- ld hl, 0
- add hl, bc
- ld a, $0
- ld [hl], a
- ret
-; 92c5e
-
-Function92c5e: ; 92c5e
- ld a, [wc709]
- cp $ff
- jr z, .asm_92c72
- ld hl, $0009
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92c72
- dec [hl]
- call Function92c76
- ret nz
-
-.asm_92c72
- call Function92c3a
- ret
-; 92c76
-
-Function92c76: ; 92c76
- call Function92a12
- ld a, [wc709]
- ld e, a
- ld a, [hli]
- cp e
- ret z
- ld a, [hli]
- cp e
- ret z
- ld a, [hl]
- cp e
- ret
-; 92c86
-
-Function92c86: ; 92c86
- call Function92e94
- jr nc, .asm_92c94
- ld a, [wc717]
- ld hl, wc709
- cp [hl]
- jr z, .asm_92ca5
-
-.asm_92c94
- ld a, [wc709]
- cp $ff
- jr z, .asm_92ca5
- ld hl, $0009
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92ca5
- dec [hl]
- ret
-
-.asm_92ca5
- call Function92c3a
- ret
-; 92ca9
-
-Function92ca9: ; 92ca9
- call Function92f1d
- jr nc, .asm_92cbd
- ld hl, wc709
- cp [hl]
- jr z, .asm_92cce
- ld hl, $0009
- add hl, bc
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-
-.asm_92cbd
- ld a, [wc709]
- cp $ff
- jr z, .asm_92cce
- ld hl, $0009
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92cce
- dec [hl]
- ret
-
-.asm_92cce
- call Function92c3a
- ret
-; 92cd2
-
-Function92cd2: ; 92cd2
- call Function92e94
- jr nc, .asm_92ce1
- ld a, [wc70c]
- and a
- jr z, .asm_92ce1
- call Function92c3a
- ret
-
-.asm_92ce1
- ld a, SFX_STOP_SLOT
- call Function9331e
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $000a
- add hl, bc
- ld [hl], $20
- ld hl, $0005
- add hl, bc
- ld [hl], $0
- ret
-; 92cf8
-
-Function92cf8: ; 92cf8
- ld hl, $000a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92d02
- dec [hl]
- ret
-
-.asm_92d02
- ld a, SFX_THROW_BALL
- call Function9331e
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $0005
- add hl, bc
- ld [hl], $8
- ret
-; 92d13
-
-Function92d13: ; 92d13
- call Function92e94
- ret nc
- ld a, [wc70c]
- and a
- ret z
- call Function92c3a
- ret
-; 92d20
-
-Function92d20: ; 92d20
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $0005
- add hl, bc
- ld [hl], $0
- call Function92fc0
- push bc
- push af
- ld de, $6068
- ld a, $6
- call Function3b2a
- ld hl, $000e
- add hl, bc
- pop af
- ld [hl], a
- pop bc
- xor a
- ld [wcf64], a
-
-Function92d4f: ; 92d4f
- ld a, [wcf64]
- cp $2
- jr z, .asm_92d5b
- cp $1
- jr z, .asm_92d62
- ret
-
-.asm_92d5b
- call Function92f1d
- call Function92c3a
- ret
-
-.asm_92d62
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $0005
- add hl, bc
- ld [hl], $8
- ret
-; 92d6e
-
-Function92d6e: ; 92d6e
- xor a
- ld [wcf64], a
- ld hl, 0
- add hl, bc
- dec [hl]
- ld hl, $0005
- add hl, bc
- ld [hl], $0
- ret
-; 92d7e
-
-Function92d7e: ; 92d7e
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $0005
- add hl, bc
- ld [hl], $0
- push bc
- ld de, $6000
- ld a, $7
- call Function3b2a
- pop bc
- xor a
- ld [wcf64], a
- ret
-; 92da4
-
-Function92da4: ; 92da4
- ld a, [wcf64]
- and a
- ret z
- ld hl, 0
- add hl, bc
- inc [hl]
- ld a, $2
- ld [wcf64], a
-
-Function92db3: ; 92db3
- ld a, [wcf64]
- cp $4
- ret c
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $0005
- add hl, bc
- ld [hl], $10
- ld hl, $000a
- add hl, bc
- ld [hl], $11
-
-Function92dca: ; 92dca
- ld hl, $000a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92dd4
- dec [hl]
- ret
-
-.asm_92dd4
- call Function92f1d
- jr nc, .asm_92de5
- and a
- jr nz, .asm_92de5
- ld a, $5
- ld [wcf64], a
- call Function92c3a
- ret
-
-.asm_92de5
- ld hl, $0005
- add hl, bc
- ld [hl], $0
- ld hl, 0
- add hl, bc
-rept 2
- dec [hl]
-endr
- ld a, $1
- ld [wcf64], a
- ret
-; 92df7
-
-Function92df7: ; 92df7
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, 0
- add hl, bc
- inc [hl]
- call Function92fc0
- ld hl, $000a
- add hl, bc
- ld [hl], a
-
-Function92e10: ; 92e10
- ld hl, $000a
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_92e1f
- call Function92f1d
- call Function92c3a
- ret
-
-.asm_92e1f
- dec [hl]
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $000b
- add hl, bc
- ld [hl], $20
- ld hl, $0005
- add hl, bc
- ld [hl], $0
-
-Function92e31: ; 92e31
- ld hl, $000b
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92e3b
- dec [hl]
- ret
-
-.asm_92e3b
- ld hl, 0
- add hl, bc
- dec [hl]
- ld hl, $0005
- add hl, bc
- ld [hl], $8
- ret
-; 92e47
-
-Function92e47: ; 92e47
- call Function92f1d
- ret c
- ld a, SFX_STOP_SLOT
- call Function9331e
- call Function93316
- ld hl, $0005
- add hl, bc
- ld [hl], $1
- ld hl, 0
- add hl, bc
- inc [hl]
- ld hl, $000a
- add hl, bc
- ld [hl], $10
-
-Function92e64: ; 92e64
- ld hl, $000a
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_92e73
- dec [hl]
-.asm_92e6d
- ld a, SFX_GOT_SAFARI_BALLS
- call Function9331e
- ret
-
-.asm_92e73
- ld a, [wc709]
- and a
- jr nz, .asm_92e88
- call Function92f1d
- jr nc, .asm_92e6d
- and a
- jr nz, .asm_92e6d
- call Function92c3a
- call WaitSFX
- ret
-
-.asm_92e88
- call Function92f1d
- jr c, .asm_92e6d
- call Function92c3a
- call WaitSFX
- ret
-; 92e94
-
-Function92e94: ; 92e94
- xor a
- ld [wc70b], a
- ld [wc70c], a
- call Function92a12
- call Function92fb4
- ld a, [wc70a]
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_92ebd
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_92eb6
- push de
- jp [hl]
-
-.asm_92eb6
- ld a, [wc70b]
- and a
- ret z
- scf
- ret
-; 92ebd
-
-Jumptable_92ebd: ; 92ebd
- dw Function92ed4
- dw Function92ed1
- dw Function92ecb
- dw Function92ec5
-; 92ec5
-
-Function92ec5: ; 92ec5
- call Function92ee0
- call Function92ef6
-
-Function92ecb: ; 92ecb
- call Function92ed5
- call Function92f01
-
-Function92ed1: ; 92ed1
- call Function92eeb
-
-Function92ed4: ; 92ed4
- ret
-; 92ed5
-
-Function92ed5: ; 92ed5
- ld hl, wc70e
- ld a, [EnemyScreens]
- cp [hl]
- call z, Function92f0c
- ret
-; 92ee0
-
-Function92ee0: ; 92ee0
- ld hl, wc70f
- ld a, [wc700]
- cp [hl]
- call z, Function92f0c
- ret
-; 92eeb
-
-Function92eeb: ; 92eeb
- ld hl, wc70f
- ld a, [wc701]
- cp [hl]
- call z, Function92f0c
- ret
-; 92ef6
-
-Function92ef6: ; 92ef6
- ld hl, wc70f
- ld a, [wc702]
- cp [hl]
- call z, Function92f0c
- ret
-; 92f01
-
-Function92f01: ; 92f01
- ld hl, wc710
- ld a, [wc702]
- cp [hl]
- call z, Function92f0c
- ret
-; 92f0c
-
-Function92f0c: ; 92f0c
- ld [wc717], a
- and a
- jr nz, .asm_92f17
- ld a, $1
- ld [wc70c], a
-
-.asm_92f17
- ld a, $1
- ld [wc70b], a
- ret
-; 92f1d
-
-Function92f1d: ; 92f1d
- ld a, $ff
- ld [EffectFailed], a
- call Function92a12
- call Function92fb4
- ld a, [wc70a]
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_92f48
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_92f3d
- push de
- jp [hl]
-
-.asm_92f3d
- ld a, [wc70d]
- cp $ff
- jr nz, .asm_92f46
- and a
- ret
-
-.asm_92f46
- scf
- ret
-; 92f48
-
-Jumptable_92f48: ; 92f48
- dw Function92f5f
- dw Function92f5c
- dw Function92f56
- dw Function92f50
-; 92f50
-
-Function92f50: ; 92f50
- call Function92f70
- call Function92f90
-
-Function92f56: ; 92f56
- call Function92f60
- call Function92fa0
-
-Function92f5c: ; 92f5c
- call Function92f80
-
-Function92f5f: ; 92f5f
- ret
-; 92f60
-
-Function92f60: ; 92f60
- ld hl, wc70e
- ld a, [wc700]
- cp [hl]
- ret nz
- ld hl, wc703
- cp [hl]
- call z, Function92fb0
- ret
-; 92f70
-
-Function92f70: ; 92f70
- ld hl, wc710
- ld a, [wc700]
- cp [hl]
- ret nz
- ld hl, wc704
- cp [hl]
- call z, Function92fb0
- ret
-; 92f80
-
-Function92f80: ; 92f80
- ld hl, wc70f
- ld a, [wc701]
- cp [hl]
- ret nz
- ld hl, wc704
- cp [hl]
- call z, Function92fb0
- ret
-; 92f90
-
-Function92f90: ; 92f90
- ld hl, wc70e
- ld a, [wc702]
- cp [hl]
- ret nz
- ld hl, wc704
- cp [hl]
- call z, Function92fb0
- ret
-; 92fa0
-
-Function92fa0: ; 92fa0
- ld hl, wc710
- ld a, [wc702]
- cp [hl]
- ret nz
- ld hl, wc705
- cp [hl]
- call z, Function92fb0
- ret
-; 92fb0
-
-Function92fb0: ; 92fb0
- ld [wc70d], a
- ret
-; 92fb4
-
-Function92fb4: ; 92fb4
- ld de, wc70e
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ret
-; 92fc0
-
-Function92fc0: ; 92fc0
- ld hl, $0003
- add hl, bc
- ld a, [hl]
- push af
- push hl
- call Function92fcf
- pop hl
- pop af
- ld [hl], a
- ld a, e
- ret
-; 92fcf
-
-Function92fcf: ; 92fcf
- ld a, [wc709]
- and a
- jr nz, .asm_92fe8
- ld e, $0
-.asm_92fd7
- ld hl, $0003
- add hl, bc
- inc [hl]
- inc e
- push de
- call Function92f1d
- pop de
- jr nc, .asm_92fd7
- and a
- jr nz, .asm_92fd7
- ret
-
-.asm_92fe8
- call Random
- and $7
- cp $4
- jr c, .asm_92fe8
- ld e, a
-.asm_92ff2
- ld a, e
- inc e
- ld hl, $0003
- add hl, bc
- add [hl]
- ld [hl], a
- push de
- call Function92f1d
- pop de
- jr c, .asm_92ff2
- ret
-; 93002
-
-Function93002: ; 93002 (24:7002)
- ld a, [wc709]
- and a
- ret z
- ld hl, Unknown_93023
- ld a, [ScriptVar]
- and a
- jr z, .asm_93013
- ld hl, Unknown_93031
-.asm_93013
- call Random
- ld c, a
-.asm_93017
- ld a, [hli]
- cp c
- jr nc, .asm_9301e
- inc hl
- jr .asm_93017
-.asm_9301e
- ld a, [hl]
- ld [wc709], a
- ret
-; 93023 (24:7023)
-
-Unknown_93023: ; 93023
- db $01, $00
- db $03, $04
- db $0a, $14
- db $14, $10
- db $28, $0c
- db $30, $08
- db $ff, $ff
-; 93031
-
-Unknown_93031: ; 93031
- db $02, $00
- db $03, $04
- db $08, $14
- db $10, $10
- db $1e, $0c
- db $50, $08
- db $ff, $ff
-; 9303f
-
-Function9303f: ; 9303f (24:703f)
- ld b, $14
- ld a, [wc70a]
- dec a
- jr z, asm_93066
- dec a
- jr z, asm_9305a
- jr asm_9304e
-
-Function9304c: ; 9304c (24:704c)
- ld b, $23
-asm_9304e: ; 9304e (24:704e)
- hlcoord 3, 2
- call Function93069
- hlcoord 3, 10
- call Function93069
-asm_9305a: ; 9305a (24:705a)
- hlcoord 3, 4
- call Function93069
- hlcoord 3, 8
- call Function93069
-asm_93066: ; 93066 (24:7066)
- hlcoord 3, 6
-
-Function93069: ; 93069 (24:7069)
- ld a, b
- ld [hl], a
- ld de, $d
- add hl, de
- ld [hl], a
- ld de, $7
- add hl, de
- inc a
- ld [hl], a
- ld de, $d
- add hl, de
- ld [hl], a
- ret
-
-Function9307c: ; 9307c (24:707c)
- ld hl, UnknownText_0x930c7
- call PrintText
- ld hl, MenuDataHeader_0x930d6
- call LoadMenuDataHeader
- call InterpretMenu2
- call WriteBackup
- ret c
- ld a, [wcfa9]
- ld b, a
- ld a, $4
- sub b
- ld [wc70a], a
- ld hl, Coins
- ld c, a
- ld a, [hli]
- and a
- jr nz, .asm_930ad
- ld a, [hl]
- cp c
- jr nc, .asm_930ad
- ld hl, UnknownText_0x930d1
- call PrintText
- jr Function9307c
-.asm_930ad
- ld hl, Coins + 1
- ld a, [hl]
- sub c
- ld [hld], a
- jr nc, .asm_930b6
- dec [hl]
-.asm_930b6
- call WaitSFX
- ld de, SFX_PAY_DAY
- call PlaySFX
- ld hl, UnknownText_0x930cc
- call PrintText
- and a
- ret
-; 930c7 (24:70c7)
-
-UnknownText_0x930c7: ; 0x930c7
- ; Bet how many coins?
- text_jump UnknownText_0x1c5049
- db "@"
-; 0x930cc
-
-UnknownText_0x930cc: ; 0x930cc
- ; Start!
- text_jump UnknownText_0x1c505e
- db "@"
-; 0x930d1
-
-UnknownText_0x930d1: ; 0x930d1
- ; Not enough coins.
- text_jump UnknownText_0x1c5066
- db "@"
-; 0x930d6
-
-MenuDataHeader_0x930d6: ; 0x930d6
- db $40 ; flags
- db 10, 14 ; start coords
- db 17, 19 ; end coords
- dw MenuData2_0x930de
- db 1 ; default option
-; 0x930de
-
-MenuData2_0x930de: ; 0x930de
- db $80 ; flags
- db 3 ; items
- db " 3@"
- db " 2@"
- db " 1@"
-; 0x930e9
-
-Function930e9: ; 930e9 (24:70e9)
- ld hl, Coins
- ld a, [hli]
- or [hl]
- jr nz, .asm_930fd
- ld hl, UnknownText_9311a
- call PrintText
- ld c, $3c
- call DelayFrames
- jr .asm_93118
-.asm_930fd
- ld hl, UnknownText_9311f
- call PrintText
- call LoadMenuTextBox
- lb bc, 14, 12
- call PlaceYesNoBox
- ld a, [wcfa9]
- dec a
- call WriteBackup
- and a
- jr nz, .asm_93118
- and a
- ret
-.asm_93118
- scf
- ret
-; 9311a (24:711a)
-
-UnknownText_9311a: ; 9311a
- text_jump UnknownText_0x1c5079
- db "@"
-
-UnknownText_9311f: ; 9311f
- text_jump UnknownText_0x1c5092
- db "@"
-
-Function93124: ; 93124 (24:7124)
- ld a, [EffectFailed]
- cp $ff
- jr z, .asm_93151
- srl a
- ld e, a
- ld d, 0
- ld hl, .data_93145
- add hl, de
- ld a, [hli]
- ld [PlayerUsedMoves], a
- ld e, a
- ld a, [hl]
- ld [wc711], a
- ld d, a
- callba MobileFn_105fe3
- ret
-
-.data_93145
- db $2c, $01
- db $32, $00
- db $06, $00
- db $08, $00
- db $0a, $00
- db $0f, $00
-
-.asm_93151
- ld hl, wc711
- xor a
- ld [hli], a
- ld [hl], a
- ret
-
-Function93158: ; 93158 (24:7158)
- ld a, [EffectFailed]
- cp $ff
- jr nz, .asm_9316c
- ld hl, UnknownText_0x931e0
- call PrintText
- callba MobileFn_105fd0
- ret
-.asm_9316c
- srl a
- ld e, a
- ld d, 0
- ld hl, Unknown_93195
-rept 3
- add hl, de
-endr
- ld de, StringBuffer2
- ld bc, $4
- call CopyBytes
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, .asm_93188
- push de
- jp [hl]
-.asm_93188
- ld hl, UnknownText_0x931b9
- call PrintText
- callba MobileFn_105f9f
- ret
-; 93195 (24:7195)
-
-Unknown_93195: ; 93195
- db "300@"
- dw Function931e5
- db "50@@"
- dw Function9320b
- db "6@@@"
- dw Function93214
- db "8@@@"
- dw Function93214
- db "10@@"
- dw Function93214
- db "15@@"
- dw Function93214
-; 931b9
-
-UnknownText_0x931b9: ; 0x931b9
- start_asm
-; 0x931ba
-
-Function931ba: ; 931ba
- ld a, [EffectFailed]
- add $25
- ldcoord_a 2, 13
- inc a
- ldcoord_a 2, 14
- inc a
- ldcoord_a 3, 13
- inc a
- ldcoord_a 3, 14
- hlcoord 18, 17
- ld [hl], $ee
- ld hl, UnknownText_0x931db
-rept 4
- inc bc
-endr
- ret
-; 931db
-
-UnknownText_0x931db: ; 0x931db
- ; lined up! Won @ coins!
- text_jump UnknownText_0x1c509f
- db "@"
-; 0x931e0
-
-UnknownText_0x931e0: ; 0x931e0
- ; Darn!
- text_jump UnknownText_0x1c50bb
- db "@"
-; 0x931e5
-
-Function931e5: ; 931e5
- ld a, SFX_2ND_PLACE
- call Function9331e
- call WaitSFX
- ld a, [wd002]
- and a
- jr nz, .asm_931ff
- call Random
- and $14
- ret z
- ld a, $ff
- ld [wc709], a
- ret
-
-.asm_931ff
- call Random
- and $1c
- ret z
- ld a, $ff
- ld [wc709], a
- ret
-; 9320b
-
-Function9320b: ; 9320b
- ld a, SFX_3RD_PLACE
- call Function9331e
- call WaitSFX
- ret
-; 93214
-
-Function93214: ; 93214
- ld a, SFX_PRESENT
- call Function9331e
- call WaitSFX
- ret
-; 9321d
-
-Function9321d: ; 9321d (24:721d)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_9322d
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_9322d: ; 9322d (24:722d)
- dw Function93233
- dw Function93259
- dw Function93289
-
-
-Function93233: ; 93233 (24:7233)
- ld hl, $e
- add hl, bc
- ld a, [hl]
- and a
- jr nz, .asm_93247
- ld a, $2
- ld [wcf64], a
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-.asm_93247
- dec [hl]
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $c
- add hl, bc
- ld [hl], $30
- ld hl, $6
- add hl, bc
- ld [hl], $0
-
-Function93259: ; 93259 (24:7259)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- cp $20
- jr c, .asm_93273
- dec [hl]
- ld e, a
- ld d, $70
- callba Functionce765
- ld a, e
- ld hl, $7
- add hl, bc
- ld [hl], a
- ret
-.asm_93273
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $d
- add hl, bc
- ld [hl], $2
- ld a, $1
- ld [wcf64], a
- ld a, SFX_PLACE_PUZZLE_PIECE_DOWN
- call Function9331e
- ret
-
-Function93289: ; 93289 (24:7289)
- ld hl, $6
- add hl, bc
- ld a, [hl]
-rept 2
- inc [hl]
-endr
- cp $48
- jr nc, .asm_932a3
- and $3
- ret nz
- ld hl, $d
- add hl, bc
- ld a, [hl]
- xor $ff
- inc a
- ld [hl], a
- ld [hSCY], a ; $ff00+$d0
- ret
-.asm_932a3
- ld hl, $b
- add hl, bc
- xor a
- ld [hl], a
- ld [hSCY], a ; $ff00+$d0
- ret
-
-Function932ac: ; 932ac (24:72ac)
- ld hl, $b
- add hl, bc
- ld e, [hl]
- ld d, 0
- ld hl, Jumptable_932bc
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_932bc: ; 932bc (24:72bc)
- dw Function932c2
- dw Function932e0
- dw Function932fc
-
-
-Function932c2: ; 932c2 (24:72c2)
- ld hl, $4
- add hl, bc
- ld a, [hl]
- inc [hl]
- cp $68
- jr z, .asm_932d6
- and $f
- ret nz
- ld de, SFX_JUMP_OVER_LEDGE
- call PlaySFX
- ret
-.asm_932d6
- ld hl, $b
- add hl, bc
- inc [hl]
- ld a, $1
- ld [wcf64], a
-
-Function932e0: ; 932e0 (24:72e0)
- ld a, [wcf64]
- cp $2
- jr z, .asm_932f1
- cp $5
- ret nz
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-.asm_932f1
- ld hl, $b
- add hl, bc
- inc [hl]
- ld hl, $c
- add hl, bc
- ld [hl], $8
-
-Function932fc: ; 932fc (24:72fc)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_93306
- dec [hl]
- ret
-.asm_93306
- ld hl, $b
- add hl, bc
- dec [hl]
- push bc
- ld de, $606c
- ld a, $8
- call Function3b2a
- pop bc
- ret
-; 93316 (24:7316)
-
-Function93316: ; 93316
- push bc
- ld c, $10
- call DelayFrames
- pop bc
- ret
-; 9331e
-
-Function9331e: ; 9331e (24:731e)
- push de
- ld e, a
- ld d, 0
- call PlaySFX
- pop de
- ret
-; 93327 (24:7327)
-
-Unknown_93327: ; 93327
- db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14
-Unknown_93339: ; 93339
- db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08
-Unknown_9334b: ; 9334b
- db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08
-; 9335d
-
-SlotsTilemap: ; 9335d
-INCBIN "gfx/slots.tilemap"
-; 9344d
-
-Slots1LZ: ; 9344d
-INCBIN "gfx/slots_1.2bpp.lz"
-; 935cd
-
-Slots2LZ: ; 935cd
-INCBIN "gfx/slots_2.2bpp.lz"
-; 9382d
-
-Slots3LZ: ; 9382d
-INCBIN "gfx/slots_3.2bpp.lz"
-; 93a3d
-
+INCLUDE "engine/slot_machine.asm"
SECTION "bank28", ROMX, BANK[$28]
@@ -64247,876 +46077,27 @@ INCLUDE "tilesets/data_5.asm"
SECTION "bank2E", ROMX, BANK[$2E]
-ReturnFromMapSetupScript:: ; b8000
- xor a
- ld [hBGMapMode], a
- ; For some reson, GameFreak chose to use a callba here instead of just falling through.
- ; No other function in the game references the function at 2E:400A, here labeled
- ; ReturnFromMapSetupScript.inefficientcallba.
- callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes
- ret
-; b800a
-
-.inefficientcallba: ; b800a
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetWorldMapLocation
- ld [wc2d9], a
- call Functionb8089
- jr z, .asm_b8024
-
- call GetMapPermission
- cp $6
- jr nz, .asm_b8029
-
-.asm_b8024
- ld a, -1
- ld [wc2d9], a
-
-.asm_b8029
- ld hl, wd83e
- bit 1, [hl]
- res 1, [hl]
- jr nz, .asm_b8054
-
- call Functionb8064
- jr z, .asm_b8054
-
- ld a, [wc2d9]
- ld [wc2d8], a
- call Functionb8070
- jr z, .asm_b8054
-
- ld a, $3c
- ld [wc2da], a
- call Functionb80c6
- call Functionb80d3
- callba Function104303
- ret
-
-.asm_b8054
- ld a, [wc2d9]
- ld [wc2d8], a
- ld a, $90
- ld [rWY], a
- ld [hWY], a
- xor a
- ld [hLCDStatCustom], a
- ret
-; b8064
-
-Functionb8064: ; b8064
- ld a, [wc2d9]
- ld c, a
- ld a, [wc2d8]
- cp c
- ret z
- cp $0
- ret
-; b8070
-
-Functionb8070: ; b8070
- cp -1
- ret z
- cp SPECIAL_MAP
- ret z
- cp RADIO_TOWER
- ret z
- cp LAV_RADIO_TOWER
- ret z
- cp UNDERGROUND
- ret z
- cp INDIGO_PLATEAU
- ret z
- cp POWER_PLANT
- ret z
- ld a, $1
- and a
- ret
-; b8089
-
-Functionb8089: ; b8089
- ld a, [MapGroup]
- cp GROUP_ROUTE_35_NATIONAL_PARK_GATE
- ret nz
- ld a, [MapNumber]
- cp MAP_ROUTE_35_NATIONAL_PARK_GATE
- ret z
- cp MAP_ROUTE_36_NATIONAL_PARK_GATE
- ret
-; b8098
-
-
-Functionb8098:: ; b8098 (2e:4098)
- ld hl, wc2da
- ld a, [hl]
- and a
- jr z, .asm_b80bc
- dec [hl]
- cp $3c
- ret z
- cp $3b
- jr nz, .asm_b80b3
- call Functionb80d3
- call Functionb80e1
- callba Function104303
-.asm_b80b3
- ld a, $80
- ld a, $70
- ld [rWY], a ; $ff00+$4a
- ld [hWY], a ; $ff00+$d2
- ret
-.asm_b80bc
- ld a, $90
- ld [rWY], a ; $ff00+$4a
- ld [hWY], a ; $ff00+$d2
- xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
- ret
-
-
-Functionb80c6: ; b80c6
- ld de, GFX_f9344
- ld hl, VTiles2 tile $60
- lb bc, BANK(GFX_f9344), $e
- call Get2bpp
- ret
-; b80d3
-
-Functionb80d3: ; b80d3
- hlcoord 0, 0
- ld b, $2
- ld c, $12
- call Functionb8115
- call Functionb812f
- ret
-; b80e1
-
-
-Functionb80e1: ; b80e1 (2e:40e1)
- ld a, [wc2d9]
- ld e, a
- callba GetLandmarkName
- call Functionb8101
- ld a, $14
- sub c
- srl a
- ld b, $0
- ld c, a
- hlcoord 0, 2
- add hl, bc
- ld de, StringBuffer1
- call PlaceString
- ret
-
-Functionb8101: ; b8101 (2e:4101)
- ld c, $0
- push hl
- ld hl, StringBuffer1
-.loop
- ld a, [hli]
- cp $50
- jr z, .stop
- cp $25
- jr z, .loop
- inc c
- jr .loop
-.stop
- pop hl
- ret
-
-
-Functionb8115: ; b8115
- ld de, AttrMap - TileMap
- add hl, de
-rept 2
- inc b
-endr
-rept 2
- inc c
-endr
- ld a, $87
-.loop
- push bc
- push hl
-.inner_loop
- ld [hli], a
- dec c
- jr nz, .inner_loop
- pop hl
- ld de, SCREEN_WIDTH
- add hl, de
- pop bc
- dec b
- jr nz, .loop
- ret
-; b812f
-
-Functionb812f: ; b812f
- hlcoord 0, 0
- ld a, $61
- ld [hli], a
- ld a, $62
- call .Fill5Words
- ld a, $64
- ld [hli], a
- ld a, $65
- ld [hli], a
- call .Fill18Bytes
- ld a, $6b
- ld [hli], a
- ld a, $66
- ld [hli], a
- call .Fill18Bytes
- ld a, $6c
- ld [hli], a
- ld a, $67
- ld [hli], a
- ld a, $68
- call .Fill5Words
- ld a, $6a
- ld [hl], a
- ret
-; b815b
-
-.Fill18Bytes: ; b815b
- ld c, 18
- ld a, $6d
-.loop
- ld [hli], a
- dec c
- jr nz, .loop
- ret
-; b8164
-
-.Fill5Words: ; b8164
- ld c, 5
- jr .enterloop
-
-.continueloop
-rept 2
- ld [hli], a
-endr
-
-.enterloop
- inc a
-rept 2
- ld [hli], a
-endr
- dec a
- dec c
- jr nz, .continueloop
- ret
-; b8172
-
-CheckForSignpostItems: ; b8172
-; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry.
- call GetMapScriptHeaderBank
- ld [Buffer1], a
-; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed.
- ld a, [XCoord]
- add SCREEN_WIDTH / 4
- ld [wd1ed], a
- ld a, [YCoord]
- add SCREEN_HEIGHT / 4
- ld [wd1ec], a
-; Get the pointer for the first signpost header in the map...
- ld hl, wdc02
- ld a, [hli]
- ld h, [hl]
- ld l, a
-; ... before even checking to see if there are any signposts on this map.
- ld a, [wCurrentMapSignpostCount]
- and a
- jr z, .nosignpostitems
-; For i = 1:wCurrentMapSignpostCount...
-.loop
-; Store the counter in Buffer2, and store the signpost header pointer in the stack.
- ld [Buffer2], a
- push hl
-; Get the Y coordinate of the signpost.
- call .GetFarByte
- ld e, a
-; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost.
- ld a, [wd1ec]
- sub e
- jr c, .next
- cp SCREEN_HEIGHT / 2
- jr nc, .next
-; Is the X coordinate of the signpost on the screen? If not, go to the next signpost.
- call .GetFarByte
- ld d, a
- ld a, [wd1ed]
- sub d
- jr c, .next
- cp SCREEN_WIDTH / 2
- jr nc, .next
-; Is this signpost a hidden item? If not, go to the next signpost.
- call .GetFarByte
- cp SIGNPOST_ITEM
- jr nz, .next
-; Has this item already been found? If not, set off the Itemfinder.
- ld a, [Buffer1]
- call GetFarHalfword
- ld a, [Buffer1]
- call GetFarHalfword
- ld d, h
- ld e, l
- ld b, CHECK_FLAG
- call EventFlagAction
- ld a, c
- and a
- jr z, .itemnearby
-
-.next
-; Restore the signpost header pointer and increment it by the length of a signpost header.
- pop hl
- ld bc, 5
- add hl, bc
-; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range.
- ld a, [Buffer2]
- dec a
- jr nz, .loop
-
-.nosignpostitems
- xor a
- ret
-
-.itemnearby
- pop hl
- scf
- ret
-; b81e2
-
-.GetFarByte: ; b81e2
- ld a, [Buffer1]
- call GetFarByte
- inc hl
- ret
-; b81ea
-
-
-TreeMonEncounter: ; b81ea
- callba MobileFn_1060ef
-
- xor a
- ld [TempWildMonSpecies], a
- ld [CurPartyLevel], a
-
- ld hl, TreeMonMaps
- call GetTreeMonSet
- jr nc, .no_battle
-
- call GetTreeMons
- jr nc, .no_battle
-
- call GetTreeMon
- jr nc, .no_battle
-
- ld a, BATTLETYPE_TREE
- ld [BattleType], a
- ld a, 1
- ld [ScriptVar], a
- ret
-
-.no_battle
- xor a
- ld [ScriptVar], a
- ret
-; b8219
-
-RockMonEncounter: ; b8219
-
- xor a
- ld [TempWildMonSpecies], a
- ld [CurPartyLevel], a
-
- ld hl, RockMonMaps
- call GetTreeMonSet
- jr nc, .no_battle
-
- call GetTreeMons
- jr nc, .no_battle
-
- ld a, 10
- call RandomRange
- cp 4
- jr nc, .no_battle
-
- call SelectTreeMon
- jr nc, .no_battle
-
- ret
-
-.no_battle
- xor a
- ret
-; b823e
-
- db $05 ; ????
-
-GetTreeMonSet: ; b823f
-; Return carry and treemon set in a
-; if the current map is in table hl.
- ld a, [MapNumber]
- ld e, a
- ld a, [MapGroup]
- ld d, a
-.loop
- ld a, [hli]
- cp -1
- jr z, .not_in_table
-
- cp d
- jr nz, .skip2
-
- ld a, [hli]
- cp e
- jr nz, .skip1
-
- jr .in_table
-
-.skip2
- inc hl
-.skip1
- inc hl
- jr .loop
-
-.not_in_table
- xor a
- ret
-
-.in_table
- ld a, [hl]
- scf
- ret
-; b825e
-
-TreeMonMaps: ; b825e
-treemon_map: macro
- map \1
- db \2 ; treemon set
-endm
- treemon_map ROUTE_26, 4
- treemon_map ROUTE_27, 4
- treemon_map ROUTE_28, 0
- treemon_map ROUTE_29, 3
- treemon_map ROUTE_30, 3
- treemon_map ROUTE_31, 3
- treemon_map ROUTE_32, 4
- treemon_map ROUTE_33, 2
- treemon_map ROUTE_34, 3
- treemon_map ROUTE_35, 3
- treemon_map ROUTE_36, 3
- treemon_map ROUTE_37, 3
- treemon_map ROUTE_38, 3
- treemon_map ROUTE_39, 3
- treemon_map ROUTE_40, 0
- treemon_map ROUTE_41, 0
- treemon_map ROUTE_42, 2
- treemon_map ROUTE_43, 5
- treemon_map ROUTE_44, 1
- treemon_map ROUTE_45, 1
- treemon_map ROUTE_46, 1
- treemon_map NEW_BARK_TOWN, 0
- treemon_map CHERRYGROVE_CITY, 0
- treemon_map VIOLET_CITY, 0
- treemon_map AZALEA_TOWN, 2
- treemon_map CIANWOOD_CITY, 0
- treemon_map GOLDENROD_CITY, 0
- treemon_map OLIVINE_CITY, 0
- treemon_map ECRUTEAK_CITY, 0
- treemon_map MAHOGANY_TOWN, 0
- treemon_map LAKE_OF_RAGE, 5
- treemon_map BLACKTHORN_CITY, 0
- treemon_map SILVER_CAVE_OUTSIDE, 0
- treemon_map ILEX_FOREST, 6
- db -1
-; b82c5
-
-RockMonMaps: ; b82c5
- treemon_map CIANWOOD_CITY, 7
- treemon_map ROUTE_40, 7
- treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7
- treemon_map SLOWPOKE_WELL_B1F, 7
- db -1
-; b82d2
-
-GetTreeMons: ; b82d2
-; Return the address of TreeMon table a in hl.
-; Return nc if table a doesn't exist.
-
- cp 8
- jr nc, .quit
-
- and a
- jr z, .quit
-
- ld e, a
- ld d, 0
- ld hl, TreeMons
-rept 2
- add hl, de
-endr
-
- ld a, [hli]
- ld h, [hl]
- ld l, a
-
- scf
- ret
-
-.quit
- xor a
- ret
-; b82e8
-
-TreeMons: ; b82e8
- dw TreeMons1
- dw TreeMons1
- dw TreeMons2
- dw TreeMons3
- dw TreeMons4
- dw TreeMons5
- dw TreeMons6
- dw RockMons
- dw TreeMons1
-
-; Two tables each (normal, rare).
-; Structure:
-; db %, species, level
-
-TreeMons1: ; b82fa
- db 50, SPEAROW, 10
- db 15, SPEAROW, 10
- db 15, SPEAROW, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
- db 50, SPEAROW, 10
- db 15, HERACROSS, 10
- db 15, HERACROSS, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
-TreeMons2: ; b8320
- db 50, SPEAROW, 10
- db 15, EKANS, 10
- db 15, SPEAROW, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
- db 50, SPEAROW, 10
- db 15, HERACROSS, 10
- db 15, HERACROSS, 10
- db 10, AIPOM, 10
- db 5, AIPOM, 10
- db 5, AIPOM, 10
- db -1
-
-TreeMons3: ; b8346
- db 50, HOOTHOOT, 10
- db 15, SPINARAK, 10
- db 15, LEDYBA, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
-TreeMons4: ; b836c
- db 50, HOOTHOOT, 10
- db 15, EKANS, 10
- db 15, HOOTHOOT, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
-TreeMons5: ; b8392
- db 50, HOOTHOOT, 10
- db 15, VENONAT, 10
- db 15, HOOTHOOT, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db 5, EXEGGCUTE, 10
- db -1
-
-TreeMons6: ; b83b8
- db 50, HOOTHOOT, 10
- db 15, PINECO, 10
- db 15, PINECO, 10
- db 10, NOCTOWL, 10
- db 5, BUTTERFREE, 10
- db 5, BEEDRILL, 10
- db -1
-
- db 50, HOOTHOOT, 10
- db 15, CATERPIE, 10
- db 15, WEEDLE, 10
- db 10, HOOTHOOT, 10
- db 5, METAPOD, 10
- db 5, KAKUNA, 10
- db -1
-
-RockMons: ; b83de
- db 90, KRABBY, 15
- db 10, SHUCKLE, 15
- db -1
-; b83e5
-
-GetTreeMon: ; b83e5
- push hl
- call GetTreeScore
- pop hl
- and a
- jr z, .bad
- cp 1
- jr z, .good
- cp 2
- jr z, .rare
- ret
-
-.bad
- ld a, 10
- call RandomRange
- and a
- jr nz, NoTreeMon
- jr SelectTreeMon
-
-.good
- ld a, 10
- call RandomRange
- cp 5
- jr nc, NoTreeMon
- jr SelectTreeMon
-
-.rare
- ld a, 10
- call RandomRange
- cp 8
- jr nc, NoTreeMon
- jr .skip
-.skip
- ld a, [hli]
- cp -1
- jr nz, .skip
- call SelectTreeMon
- ret
-; b841f
-
-SelectTreeMon: ; b841f
-; Read a TreeMons table and pick one monster at random.
-
- ld a, 100
- call RandomRange
-.loop
- sub [hl]
- jr c, .ok
-rept 3
- inc hl
-endr
- jr .loop
-
-.ok
- ld a, [hli]
- cp $ff
- jr z, NoTreeMon
-
- ld a, [hli]
- ld [TempWildMonSpecies], a
- ld a, [hl]
- ld [CurPartyLevel], a
- scf
- ret
-
-NoTreeMon: ; b843b
- xor a
- ld [TempWildMonSpecies], a
- ld [CurPartyLevel], a
- ret
-; b8443
-
-GetTreeScore: ; b8443
- call .CoordScore
- ld [Buffer1], a
- call .OTIDScore
- ld [Buffer2], a
- ld c, a
- ld a, [Buffer1]
- sub c
- jr z, .rare
- jr nc, .ok
- add 10
-.ok
- cp 5
- jr c, .good
-
-.bad
- xor a
- ret
-
-.good
- ld a, 1
- ret
-
-.rare
- ld a, 2
- ret
-; b8466
-
-.CoordScore: ; b8466
- call GetFacingTileCoord
- ld hl, 0
- ld c, e
- ld b, 0
- ld a, d
-
- and a
- jr z, .next
-.loop
- add hl, bc
- dec a
- jr nz, .loop
-.next
-
- add hl, bc
- ld c, d
- add hl, bc
-
- ld a, h
- ld [hDividend], a
- ld a, l
- ld [hDividend + 1], a
- ld a, 5
- ld [hDivisor], a
- ld b, 2
- call Divide
-
- ld a, [hQuotient + 1]
- ld [hDividend], a
- ld a, [hQuotient + 2]
- ld [hDividend + 1], a
- ld a, 10
- ld [hDivisor], a
- ld b, 2
- call Divide
-
- ld a, [hQuotient + 3]
- ret
-; b849d
-
-.OTIDScore: ; b849d
- ld a, [PlayerID]
- ld [hDividend], a
- ld a, [PlayerID + 1]
- ld [hDividend + 1], a
- ld a, 10
- ld [hDivisor], a
- ld b, 2
- call Divide
- ld a, [hQuotient + 3]
- ret
-; b84b3
-
-
-Functionb84b3: ; b84b3
- ld a, [rVBK]
- push af
- ld a, $1
- ld [rVBK], a
-
- ld de, FishingGFX
- ld a, [PlayerGender]
- bit 0, a
- jr z, .asm_b84c7
- ld de, KrisFishingGFX
-.asm_b84c7
-
- ld hl, VTiles0 tile $02
- call Functionb84e3
- ld hl, VTiles0 tile $06
- call Functionb84e3
- ld hl, VTiles0 tile $0a
- call Functionb84e3
- ld hl, VTiles2 tile $00 - $40
- call Functionb84e3
-
- pop af
- ld [rVBK], a
- ret
-; b84e3
-
-Functionb84e3: ; b84e3
- lb bc, BANK(FishingGFX), 2
- push de
- call Get2bpp
- pop de
- ld hl, $20
- add hl, de
- ld d, h
- ld e, l
- ret
-; b84f2
-
-FishingGFX: ; b84f2
-INCBIN "gfx/unknown/0b84f2.2bpp"
-; b8582
-
-KrisFishingGFX: ; b8582
-INCBIN "gfx/unknown/0b8582.2bpp"
-; b8612
+INCLUDE "engine/events_3.asm"
INCLUDE "engine/radio.asm"
ReadPartyMonMail: ; b9229
ld a, [CurPartyMon]
- ld hl, s0_a600
- ld bc, PartyMon1StatsEnd - PartyMon1Item
+ ld hl, sPartyScratch1
+ ld bc, SCRATCHMON_STRUCT_LENGTH
call AddNTimes
ld d, h
ld e, l
ReadAnyMail: ; b9237
push de
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
- call Functione5f
+ call LoadFontsExtra
pop de
push de
- ld a, BANK(s0_a600)
+ ld a, BANK(sPartyScratch1)
call GetSRAMBank
callba Function1de5c8
call CloseSRAM
@@ -65144,9 +46125,9 @@ ReadAnyMail: ; b9237
xor a
ld [hJoyPressed], a
call Functionb929a
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
- call Functione51
+ call LoadStandardFont
jp EnableLCD
; b929a
@@ -65175,7 +46156,7 @@ Functionb92b8: ; b92b8
push hl
ld a, $0
call GetSRAMBank
- ld de, $002b
+ ld de, $2b
add hl, de
ld a, [hli]
ld [Buffer1], a
@@ -65429,7 +46410,7 @@ Functionb9491: ; b9491
Functionb94d6: ; b94d6
push bc
ld hl, VTiles2 tile $31
- ld bc, $0028
+ ld bc, $28
call Functionb97f8
ld de, Unknown_b9c96
ld c, 8
@@ -65509,7 +46490,7 @@ Functionb9582: ; b9582
ld c, $8
call Functionb9915
ld a, $ff
- ld bc, $0010
+ ld bc, $10
call ByteFill
ld de, Unknown_b992e
ld c, $8
@@ -65668,7 +46649,7 @@ Functionb96ca: ; b96ca
ld a, $1
ld [UnownLetter], a
hlcoord 1, 10
- call Function3786
+ call PrepMonFrontpic
pop hl
jp Functionb9803
; b9710
@@ -65686,7 +46667,7 @@ Functionb9710: ; b9710
ld c, $30
call Functionb991e
xor a
- ld bc, $0010
+ ld bc, $10
call ByteFill
ld de, Unknown_b9cfe
ld c, $18
@@ -65718,7 +46699,7 @@ Functionb9710: ; b9710
Functionb9776: ; b9776
push bc
ld hl, VTiles2 tile $31
- ld bc, $0028
+ ld bc, $28
call Functionb97f8
ld de, Unknown_b992e
ld c, $8
@@ -65789,7 +46770,7 @@ Functionb97f8: ; b97f8
; b9803
Functionb9803: ; b9803
- ld bc, $002f
+ ld bc, $2f
ld de, wd002
ld a, $0
call GetSRAMBank
@@ -65797,7 +46778,7 @@ Functionb9803: ; b9803
call CloseSRAM
ld hl, wd023
ld de, wd050
- ld bc, $000a
+ ld bc, $a
call CopyBytes
ld a, $50
ld [wd023], a
@@ -65969,7 +46950,7 @@ Functionb98ee: ; b98ee
ld [hli], a
inc a
ld [hl], a
- ld bc, $0013
+ ld bc, $13
add hl, bc
inc a
ld [hli], a
@@ -66196,6 +47177,42 @@ INCLUDE "engine/std_scripts.asm"
INCLUDE "engine/phone_scripts.asm"
+TalkToTrainerScript:: ; 0xbe66a
+ faceplayer
+ trainerstatus CHECK_FLAG
+ iftrue AlreadyBeatenTrainerScript
+ loadtrainerdata
+ playrammusic
+ jump StartBattleWithMapTrainerScript
+; 0xbe675
+
+SeenByTrainerScript:: ; 0xbe675
+ loadtrainerdata
+ playrammusic
+ showemote EMOTE_SHOCK, LAST_TALKED, 30
+ callasm TrainerWalkToPlayer
+ applymovement2 MovementBuffer
+ writepersonxy LAST_TALKED
+ faceperson PLAYER, LAST_TALKED
+ jump StartBattleWithMapTrainerScript
+; 0xbe68a
+
+StartBattleWithMapTrainerScript: ; 0xbe68a
+ loadfont
+ trainertext $0
+ closetext
+ loadmovesprites
+ loadtrainerdata
+ startbattle
+ returnafterbattle
+ trainerstatus SET_FLAG
+ loadvar wd04d, -1
+
+AlreadyBeatenTrainerScript:
+ scripttalkafter
+; 0xbe699
+
+
SECTION "bank30", ROMX, BANK[$30]
@@ -66233,7 +47250,7 @@ Functioncbce5: ; cbce5
.asm_cbcf7
call DmgToCgbBGPals
- ld c, $4
+ ld c, 4
call DelayFrames
callba _UpdateTimePals
ret
@@ -66246,6 +47263,7 @@ Functioncbce5: ; cbce5
ld hl, BGPals
ld c, $20
.asm_cbd12
+; RGB 31, 21, 28
ld a, $bc
ld [hli], a
ld a, $7e
@@ -66256,7 +47274,7 @@ Functioncbce5: ; cbce5
ld [rSVBK], a
ld a, $1
ld [hCGBPalUpdate], a
- ld c, $4
+ ld c, 4
call DelayFrames
callba _UpdateTimePals
ret
@@ -66271,7 +47289,7 @@ SECTION "bank33", ROMX, BANK[$33]
DisplayCaughtContestMonStats: ; cc000
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
call LoadFontsBattleExtra
@@ -66479,7 +47497,7 @@ endr
ld hl, wd012
call Functione004e
pop hl
- ld bc, $0010
+ ld bc, $10
add hl, bc
pop bc
inc c
@@ -66488,7 +47506,7 @@ endr
jr c, .asm_e000b
ld hl, OverworldMap
ld de, sScratch
- ld bc, $0310
+ ld bc, $310
call CopyBytes
pop hl
ld de, sScratch
@@ -66573,5835 +47591,9 @@ Functione00ed: ; e00ed (38:40ed)
ret
; e00ee (38:40ee)
-_CardFlip: ; e00ee (38:40ee)
- ld hl, Options
- set 4, [hl]
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld de, MUSIC_NONE
- call PlayMusic
- call DelayFrame
- call DisableLCD
- call Functione51
- call Functione5f
- ld hl, LZ_e0d16
- ld de, VTiles2 tile $00
- call Decompress
- ld hl, LZ_e0ea8
- ld de, VTiles2 tile $3e
- call Decompress
- ld hl, LZ_e0cdb
- ld de, VTiles0 tile $00
- call Decompress
- ld hl, GFX_e0cf6
- ld de, VTiles1 tile $6f
- ld bc, $10
- call CopyBytes
- ld hl, GFX_e0d06
- ld de, VTiles1 tile $75
- ld bc, $10
- call CopyBytes
- call Functione0521
- call Functione04c1
- call Functione0c37
- call EnableLCD
- call Function3200
- ld a, $e4
- call DmgToCgbBGPals
- ld de, $e4e4
- call DmgToCgbObjPals
- call DelayFrame
- xor a
- ld [wJumptableIndex], a
- ld a, $2
- ld [wcf64], a
- ld [wcf65], a
- ld de, MUSIC_GAME_CORNER
- call PlayMusic
-.MasterLoop
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .leavethegame
- call .CardFlip
- jr .MasterLoop
-.leavethegame
- call WaitSFX
- ld de, SFX_QUIT_SLOTS
- call PlaySFX
- call WaitSFX
- call WhiteBGMap
- ld hl, Options
- res 4, [hl]
- ret
-
-.CardFlip: ; e0191 (38:4191)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, .Jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e01a0 (38:41a0)
-
-.Jumptable: ; e01a0
- dw .AskPlayWithThree
- dw .DeductCoins
- dw .ChooseACard
- dw .PlaceYourBet
- dw .CheckTheCard
- dw .TabulateTheResult
- dw .PlayAgain
- dw .Quit
-; e01b0
-
-.Increment: ; e01b0
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e01b5
-
-.AskPlayWithThree: ; e01b5
- ld hl, .PlayWithThreeCoinsText
- call Functione0489
- call YesNoBox
- jr c, .SaidNo
- call Functione0366
- call .Increment
- ret
-
-.SaidNo
- ld a, $7
- ld [wJumptableIndex], a
- ret
-; e01cd
-
-.PlayWithThreeCoinsText: ; 0xe01cd
- ; Play with three coins?
- text_jump UnknownText_0x1c5793
- db "@"
-; 0xe01d2
-
-.DeductCoins: ; e01d2
- ld a, [Coins]
- ld h, a
- ld a, [Coins + 1]
- ld l, a
- ld a, h
- and a
- jr nz, .deduct ; You have at least 256 coins.
- ld a, l
- cp 3
- jr nc, .deduct ; You have at least 3 coins.
- ld hl, .NotEnoughCoinsText
- call Functione0489
- ld a, $7
- ld [wJumptableIndex], a
- ret
-
-.deduct
- ld de, -3
- add hl, de
- ld a, h
- ld [Coins], a
- ld a, l
- ld [Coins + 1], a
- ld de, SFX_TRANSACTION
- call PlaySFX
- xor a
- ld [hBGMapMode], a
- call Functione049c
- ld a, $1
- ld [hBGMapMode], a
- call WaitSFX
- call .Increment
- ret
-; e0212
-
-.NotEnoughCoinsText: ; 0xe0212
- ; Not enough coins…
- text_jump UnknownText_0x1c57ab
- db "@"
-; 0xe0217
-
-.ChooseACard: ; e0217
- xor a
- ld [hBGMapMode], a
- hlcoord 0, 0
- ld bc, $0c09
- call Functione04e5
- hlcoord 9, 0
- ld bc, SCREEN_WIDTH
- ld a, [wc6e8]
- call AddNTimes
- ld [hl], $f5
- ld a, $1
- ld [hBGMapMode], a
- ld c, $14
- call DelayFrames
- hlcoord 2, 0
- call Functione03c1
- ld a, $1
- ld [hBGMapMode], a
- ld c, $14
- call DelayFrames
- hlcoord 2, 6
- call Functione03c1
- call WaitBGMap
- ld hl, .ChooseACardText
- call Functione0489
- xor a
- ld [wcf66], a
-.loop
- call JoyTextDelay
- ld a, [hJoyLast]
- and A_BUTTON
- jr nz, .next
- ld de, SFX_KINESIS
- call PlaySFX
- call Functione0849
- ld c, $4
- call DelayFrames
- ld hl, wcf66
- ld a, [hl]
- xor $1
- ld [hl], a
- jr .loop
-
-.next
- ld de, SFX_SLOT_MACHINE_START
- call PlaySFX
- ld a, $3
-.loop2
- push af
- call Functione0849
- ld c, $4
- call DelayFrames
- call ClearSprites
- ld c, $4
- call DelayFrames
- pop af
- dec a
- jr nz, .loop2
- ld hl, wcf66
- ld a, [hl]
- push af
- xor $1
- ld [hl], a
- call Functione03ac
- ld bc, $0605
- call Functione04e5
- pop af
- ld [wcf66], a
- call .Increment
- ret
-; e02b2
-
-.ChooseACardText: ; 0xe02b2
- ; Choose a card.
- text_jump UnknownText_0x1c57be
- db "@"
-; 0xe02b7
-
-.PlaceYourBet: ; e02b7
- ld hl, .PlaceYourBetText
- call Functione0489
-.betloop
- call JoyTextDelay
- ld a, [hJoyLast]
- and A_BUTTON
- jr nz, .betdone
- call Functione089c
- call Functione0960
- call DelayFrame
- jr .betloop
-
-.betdone
- call .Increment
- ret
-; e02d5
-
-.PlaceYourBetText: ; 0xe02d5
- ; Place your bet.
- text_jump UnknownText_0x1c57ce
- db "@"
-; 0xe02da
-
-.CheckTheCard: ; e02da
- xor a
- ld [$ff9b], a
- call Functione0960
- call WaitSFX
- ld de, SFX_CHOOSE_A_CARD
- call PlaySFX
- call WaitSFX
- ld a, [wc6e8]
- ld e, a
- ld d, $0
- ld hl, wc6d0
-rept 2
- add hl, de
-endr
- ld a, [wcf66]
- ld e, a
- add hl, de
- ld a, [hl]
- ld [CurEnemyMoveNum], a
- ld e, a
- ld hl, wc6ea
- add hl, de
- ld [hl], $1
- call Functione03ac
- call Functione03ec
- call Function3200
- call .Increment
- ret
-; e0314
-
-.TabulateTheResult: ; e0314
- call Functione0637
- call Functiona80
- call .Increment
- ret
-; e031e
-
-.PlayAgain: ; e031e
- call ClearSprites
- ld hl, .PlayAgainText
- call Functione0489
- call YesNoBox
- jr nc, .Continue
- call .Increment
- ret
-
-.Continue
- ld a, [wc6e8]
- inc a
- ld [wc6e8], a
- cp $c
- jr c, .KeepTheCurrentDeck
- call Functione04c1
- ld a, $1
- ld [hBGMapMode], a
- call Functione0366
- ld hl, .CardsShuffledText
- call PrintText
- jr .LoopAround
-
-.KeepTheCurrentDeck
- call Functione0534
-
-.LoopAround
- ld a, $1
- ld [wJumptableIndex], a
- ret
-; e0356
-
-.PlayAgainText: ; 0xe0356
- ; Want to play again?
- text_jump UnknownText_0x1c57df
- db "@"
-; 0xe035b
-
-.CardsShuffledText: ; 0xe035b
- ; The cards have been shuffled.
- text_jump UnknownText_0x1c57f4
- db "@"
-; 0xe0360
-
-.Quit: ; e0360
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-; e0366
-
-Functione0366: ; e0366
- ld hl, wc6d0
- ld bc, $0018
- xor a
- call ByteFill
- ld de, wc6d0
- ld c, $17
-.asm_e0375
- call Random
- and $1f
- cp $18
- jr nc, .asm_e0375
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0375
- ld [hl], c
- dec c
- jr nz, .asm_e0375
- xor a
- ld [wc6e8], a
- ld hl, wc6ea
- ld bc, $0018
- call ByteFill
- ret
-; e0398
-
-Functione0398: ; e0398
- ld hl, 0
- ld bc, $0006
- ld a, [wcf64]
- call AddNTimes
- ld b, $0
- ld a, [wcf65]
- ld c, a
- add hl, bc
- ret
-; e03ac
-
-Functione03ac: ; e03ac
- ld a, [wcf66]
- and a
- jr nz, .asm_e03ba
- hlcoord 2, 0
- ld bc, $1018
- jr .asm_e03c0
-
-.asm_e03ba
- hlcoord 2, 6
- ld bc, $4018
-
-.asm_e03c0
- ret
-; e03c1
-
-Functione03c1: ; e03c1
- xor a
- ld [hBGMapMode], a
- ld de, Unknown_e03ce
- lb bc, 6, 5
- call Functione04f7
- ret
-; e03ce
-
-Unknown_e03ce: ; e03ce
- db $08, $09, $09, $09, $0a
- db $0b, $28, $2b, $28, $0c
- db $0b, $2c, $2d, $2e, $0c
- db $0b, $2f, $30, $31, $0c
- db $0b, $32, $33, $34, $0c
- db $0d, $0e, $0e, $0e, $0f
-; e03ec
-
-Functione03ec: ; e03ec
- xor a
- ld [hBGMapMode], a
- push hl
- push hl
- ld de, Unknown_e043b
- lb bc, 6, 5
- call Functione04f7
- ld a, [CurEnemyMoveNum]
- ld e, a
- ld d, 0
- ld hl, Unknown_e0459
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld e, a
- ld d, [hl]
- pop hl
- ld bc, $0017
- add hl, bc
- ld [hl], e
- ld bc, SCREEN_HEIGHT
- add hl, bc
- ld a, d
- ld de, SCREEN_WIDTH
- ld b, $3
-.asm_e0418
- push hl
- ld c, $3
-.asm_e041b
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_e041b
- pop hl
- add hl, de
- dec b
- jr nz, .asm_e0418
- pop hl
- ld a, [hCGB]
- and a
- ret z
- ld de, AttrMap - TileMap
- add hl, de
- ld a, [CurEnemyMoveNum]
- and 3
- inc a
- lb bc, 6, 5
- call Functione04e7
- ret
-; e043b
-
-Unknown_e043b: ; e043b
- db $18, $19, $19, $19, $1a
- db $1b, $35, $7f, $7f, $1c
- db $0b, $28, $28, $28, $0c
- db $0b, $28, $28, $28, $0c
- db $0b, $28, $28, $28, $0c
- db $1d, $1e, $1e, $1e, $1f
-; e0459
-
-Unknown_e0459: ; e0459
- db $f7,$4e, $f7,$57, $f7,$69, $f7,$60
- db $f8,$4e, $f8,$57, $f8,$69, $f8,$60
- db $f9,$4e, $f9,$57, $f9,$69, $f9,$60
- db $fa,$4e, $fa,$57, $fa,$69, $fa,$60
- db $fb,$4e, $fb,$57, $fb,$69, $fb,$60
- db $fc,$4e, $fc,$57, $fc,$69, $fc,$60
-; e0489
-
-Functione0489: ; e0489
- push hl
- hlcoord 0, 12
- ld b, $4
- ld c, $12
- call TextBox
- pop hl
- call PrintTextBoxText
- call Functione049c
- ret
-; e049c
-
-Functione049c: ; e049c
- hlcoord 9, 15
- ld b, $1
- ld c, $9
- call TextBox
- hlcoord 10, 16
- ld de, String_e04bc
- call PlaceString
- hlcoord 15, 16
- ld de, Coins
- lb bc, PRINTNUM_LEADINGZEROS | 2, 4
- call PrintNum
- ret
-; e04bc
-
-String_e04bc:
- db "COIN@"
-; e04c1
-
-Functione04c1: ; e04c1 (38:44c1)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- ld a, $29
- call ByteFill
- hlcoord 9, 0
- ld de, Unknown_e110c
- lb bc, 12, 11
- call Functione04f7
- hlcoord 0, 12
- ld bc, $412
- call TextBox
- ret
-; e04e5 (38:44e5)
-
-Functione04e5: ; e04e5
- ld a, $29
-
-Functione04e7: ; e04e7 (38:44e7)
- push bc
- push hl
-.asm_e04e9
- ld [hli], a
- dec c
- jr nz, .asm_e04e9
- pop hl
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, Functione04e7
- ret
-
-Functione04f7: ; e04f7 (38:44f7)
- push bc
- push hl
-.asm_e04f9
- ld a, [de]
- inc de
- ld [hli], a
- dec c
- jr nz, .asm_e04f9
- pop hl
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, Functione04f7
- ret
-; e0509 (38:4509)
-
-Functione0509: ; e0509
- ld de, Sprites
- ld a, [hli]
-.asm_e050d
- 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_e050d
- ret
-; e0521
-
-Functione0521: ; e0521 (38:4521)
- ld de, VTiles1 tile $76
- ld hl, $8f62
- ld bc, $9e
- call CopyBytes
- ld hl, $8ffe
- xor a
- ld [hli], a
- ld [hl], a
- ret
-; e0534 (38:4534)
-
-Functione0534: ; e0534
- xor a
- ld [hBGMapMode], a
- ld a, [CurEnemyMoveNum]
- ld e, a
- ld d, 0
- and 3
- ld c, a
- ld b, 0
- ld a, e
- and $1c
- srl a
- add Jumptable_e0553 % $100
- ld l, a
- ld a, 0
- adc Jumptable_e0553 / $100
- ld h, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e0553
-
-Jumptable_e0553: ; e0553
- dw Functione055f
- dw Functione0583
- dw Functione05a7
- dw Functione05cb
- dw Functione05ef
- dw Functione0613
-; e055f
-
-Functione055f: ; e055f
- ld hl, wc6e6 + 8
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0575
- hlcoord 13, 3
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $37
- ret
-
-.asm_e0575
- hlcoord 13, 3
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3d
- ret
-; e0583
-
-Functione0583: ; e0583
- ld hl, wc6e6
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0599
- hlcoord 13, 4
-rept 2
- add hl, bc
-endr
- ld [hl], $3b
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-
-.asm_e0599
- hlcoord 13, 4
-rept 2
- add hl, bc
-endr
- ld [hl], $3d
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-; e05a7
-
-Functione05a7: ; e05a7
- ld hl, wc6e6 + 8
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e05bd
- hlcoord 13, 6
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $38
- ret
-
-.asm_e05bd
- hlcoord 13, 6
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3d
- ret
-; e05cb
-
-Functione05cb: ; e05cb
- ld hl, wc6e6
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e05e1
- hlcoord 13, 7
-rept 2
- add hl, bc
-endr
- ld [hl], $3c
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-
-.asm_e05e1
- hlcoord 13, 7
-rept 2
- add hl, bc
-endr
- ld [hl], $3d
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-; e05ef
-
-Functione05ef: ; e05ef
- ld hl, wc6e6 + 8
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0605
- hlcoord 13, 9
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $39
- ret
-
-.asm_e0605
- hlcoord 13, 9
-rept 2
- add hl, bc
-endr
- ld [hl], $36
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3d
- ret
-; e0613
-
-Functione0613: ; e0613
- ld hl, wc6e6
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e0629
- hlcoord 13, 10
-rept 2
- add hl, bc
-endr
- ld [hl], $3c
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-
-.asm_e0629
- hlcoord 13, 10
-rept 2
- add hl, bc
-endr
- ld [hl], $3d
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hl], $3a
- ret
-; e0637
-
-Functione0637: ; e0637
- call Functione0398
- add hl, hl
- ld de, Jumptable_e0643
- add hl, de
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e0643
-
-Jumptable_e0643: ; e0643
- dw Functione06a3
- dw Functione06a3
- dw Functione06a6
- dw Functione06a6
- dw Functione06b0
- dw Functione06b0
- dw Functione06a3
- dw Functione06a3
- dw Functione06ec
- dw Functione06f6
- dw Functione0702
- dw Functione070e
- dw Functione06c2
- dw Functione0722
- dw Functione0770
- dw Functione0774
- dw Functione0778
- dw Functione077c
- dw Functione06c2
- dw Functione072c
- dw Functione0780
- dw Functione0784
- dw Functione0788
- dw Functione078c
- dw Functione06cc
- dw Functione0738
- dw Functione0790
- dw Functione0794
- dw Functione0798
- dw Functione079c
- dw Functione06cc
- dw Functione0744
- dw Functione07a0
- dw Functione07a4
- dw Functione07a8
- dw Functione07ac
- dw Functione06d8
- dw Functione0750
- dw Functione07b0
- dw Functione07b4
- dw Functione07b8
- dw Functione07bc
- dw Functione06d8
- dw Functione075c
- dw Functione07c0
- dw Functione07c4
- dw Functione07c8
- dw Functione07cc
-; e06a3
-
-Functione06a3: ; e06a3
- jp Functione07db
-; e06a6
-
-Functione06a6: ; e06a6
- ld a, [CurEnemyMoveNum]
- and $2
- jp nz, Functione07db
- jr Functione06ba
-
-Functione06b0: ; e06b0
- ld a, [CurEnemyMoveNum]
- and $2
- jr nz, Functione06ba
- jp Functione07db
-
-Functione06ba: ; e06ba
- ld c, $6
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e06c2
-
-Functione06c2: ; e06c2
- ld a, [CurEnemyMoveNum]
- and $18
- jr z, Functione06e4
- jp Functione07db
-
-Functione06cc: ; e06cc
- ld a, [CurEnemyMoveNum]
- and $18
- cp $8
- jr z, Functione06e4
- jp Functione07db
-
-Functione06d8: ; e06d8
- ld a, [CurEnemyMoveNum]
- and $18
- cp $10
- jr z, Functione06e4
- jp Functione07db
-
-Functione06e4: ; e06e4
- ld c, $9
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e06ec
-
-Functione06ec: ; e06ec
- ld a, [CurEnemyMoveNum]
- and $3
- jr z, Functione071a
- jp Functione07db
-
-Functione06f6: ; e06f6
- ld a, [CurEnemyMoveNum]
- and $3
- cp $1
- jr z, Functione071a
- jp Functione07db
-
-Functione0702: ; e0702
- ld a, [CurEnemyMoveNum]
- and $3
- cp $2
- jr z, Functione071a
- jp Functione07db
-
-Functione070e: ; e070e
- ld a, [CurEnemyMoveNum]
- and $3
- cp $3
- jr z, Functione071a
- jp Functione07db
-
-Functione071a: ; e071a
- ld c, $c
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e0722
-
-Functione0722: ; e0722
- ld a, [CurEnemyMoveNum]
- and $1c
- jr z, Functione0768
- jp Functione07db
-
-Functione072c: ; e072c
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $4
- jr z, Functione0768
- jp Functione07db
-
-Functione0738: ; e0738
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $8
- jr z, Functione0768
- jp Functione07db
-
-Functione0744: ; e0744
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $c
- jr z, Functione0768
- jp Functione07db
-
-Functione0750: ; e0750
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $10
- jr z, Functione0768
- jp Functione07db
-
-Functione075c: ; e075c
- ld a, [CurEnemyMoveNum]
- and $1c
- cp $14
- jr z, Functione0768
- jp Functione07db
-
-Functione0768: ; e0768
- ld c, $12
- ld de, SFX_2ND_PLACE
- jp Functione07eb
-; e0770
-
-
-Functione0770: ; e0770
- ld e, $0
- jr Functione07ce
-
-Functione0774: ; e0774
- ld e, $1
- jr Functione07ce
-
-Functione0778: ; e0778
- ld e, $2
- jr Functione07ce
-
-Functione077c: ; e077c
- ld e, $3
- jr Functione07ce
-
-Functione0780: ; e0780
- ld e, $4
- jr Functione07ce
-
-Functione0784: ; e0784
- ld e, $5
- jr Functione07ce
-
-Functione0788: ; e0788
- ld e, $6
- jr Functione07ce
-
-Functione078c: ; e078c
- ld e, $7
- jr Functione07ce
-
-Functione0790: ; e0790
- ld e, $8
- jr Functione07ce
-
-Functione0794: ; e0794
- ld e, $9
- jr Functione07ce
-
-Functione0798: ; e0798
- ld e, $a
- jr Functione07ce
-
-Functione079c: ; e079c
- ld e, $b
- jr Functione07ce
-
-Functione07a0: ; e07a0
- ld e, $c
- jr Functione07ce
-
-Functione07a4: ; e07a4
- ld e, $d
- jr Functione07ce
-
-Functione07a8: ; e07a8
- ld e, $e
- jr Functione07ce
-
-Functione07ac: ; e07ac
- ld e, $f
- jr Functione07ce
-
-Functione07b0: ; e07b0
- ld e, $10
- jr Functione07ce
-
-Functione07b4: ; e07b4
- ld e, $11
- jr Functione07ce
-
-Functione07b8: ; e07b8
- ld e, $12
- jr Functione07ce
-
-Functione07bc: ; e07bc
- ld e, $13
- jr Functione07ce
-
-Functione07c0: ; e07c0
- ld e, $14
- jr Functione07ce
-
-Functione07c4: ; e07c4
- ld e, $15
- jr Functione07ce
-
-Functione07c8: ; e07c8
- ld e, $16
- jr Functione07ce
-
-Functione07cc: ; e07cc
- ld e, $17
-
-Functione07ce: ; e07ce
- ld a, [CurEnemyMoveNum]
- cp e
- jr nz, Functione07db
- ld c, $48
- ld de, SFX_2ND_PLACE
- jr Functione07eb
-
-Functione07db: ; e07db
- ld de, SFX_WRONG
- call PlaySFX
- ld hl, UnknownText_0xe0816
- call Functione0489
- call WaitSFX
- ret
-
-Functione07eb: ; e07eb
- push bc
- push de
- ld hl, UnknownText_0xe0811
- call Functione0489
- pop de
- call PlaySFX
- call WaitSFX
- pop bc
-.asm_e07fb
- push bc
- call Functione0833
- jr c, .asm_e0804
- call Functione081b
-
-.asm_e0804
- call Functione049c
- ld c, $2
- call DelayFrames
- pop bc
- dec c
- jr nz, .asm_e07fb
- ret
-; e0811
-
-UnknownText_0xe0811: ; 0xe0811
- ; Yeah!
- text_jump UnknownText_0x1c5813
- db "@"
-; 0xe0816
-
-UnknownText_0xe0816: ; 0xe0816
- ; Darn…
- text_jump UnknownText_0x1c581a
- db "@"
-; 0xe081b
-
-Functione081b: ; e081b
- ld a, [Coins]
- ld h, a
- ld a, [Coins + 1]
- ld l, a
- inc hl
- ld a, h
- ld [Coins], a
- ld a, l
- ld [Coins + 1], a
- ld de, SFX_PAY_DAY
- call PlaySFX
- ret
-; e0833
-
-Functione0833: ; e0833
- ld a, [Coins]
- cp 9999 / $100
- jr c, .asm_e0847
- jr z, .asm_e083e
- jr .asm_e0845
-
-.asm_e083e
- ld a, [Coins + 1]
- cp 9999 % $100
- jr c, .asm_e0847
-
-.asm_e0845
- scf
- ret
-
-.asm_e0847
- and a
- ret
-; e0849
-
-Functione0849: ; e0849
- call Functione03ac
- ld hl, Unknown_e0853
- call Functione0509
- ret
-; e0853
-
-Unknown_e0853: ; e0853
- db 18
- db $00, $00, $04, $00
- db $00, $08, $06, $00
- db $00, $10, $06, $00
- db $00, $18, $06, $00
- db $00, $20, $04, $20
- db $08, $00, $05, $00
- db $08, $20, $05, $20
- db $10, $00, $05, $00
- db $10, $20, $05, $20
- db $18, $00, $05, $00
- db $18, $20, $05, $20
- db $20, $00, $05, $00
- db $20, $20, $05, $20
- db $28, $00, $04, $40
- db $28, $08, $06, $40
- db $28, $10, $06, $40
- db $28, $18, $06, $40
- db $28, $20, $04, $60
-; e089c
-
-Functione089c: ; e089c
- ld hl, hJoyLast
- ld a, [hl]
- and D_LEFT
- jp nz, Functione08b8
- ld a, [hl]
- and D_RIGHT
- jp nz, Functione08ef
- ld a, [hl]
- and D_UP
- jp nz, Functione090a
- ld a, [hl]
- and D_DOWN
- jp nz, Functione093d
- ret
-; e08b8
-
-Functione08b8: ; e08b8
- ld hl, wcf65
- ld a, [wcf64]
- and a
- jr z, .asm_e08d5
- cp $1
- jr z, .asm_e08cc
- ld a, [hl]
- and a
- ret z
- dec [hl]
- jp Functione0959
-
-.asm_e08cc
- ld a, [hl]
- cp $3
- jr c, .asm_e08e2
- dec [hl]
- jp Functione0959
-
-.asm_e08d5
- ld a, [hl]
- and $e
- ld [hl], a
- cp $3
- jr c, .asm_e08e2
-rept 2
- dec [hl]
-endr
- jp Functione0959
-
-.asm_e08e2
- ld a, $2
- ld [wcf64], a
- ld a, $1
- ld [wcf65], a
- jp Functione0959
-; e08ef
-
-Functione08ef: ; e08ef
- ld hl, wcf65
- ld a, [wcf64]
- and a
- jr z, .asm_e08ff
- ld a, [hl]
- cp $5
- ret nc
- inc [hl]
- jr Functione0959
-
-.asm_e08ff
- ld a, [hl]
- and $e
- ld [hl], a
- cp $4
- ret nc
-rept 2
- inc [hl]
-endr
- jr Functione0959
-
-Functione090a: ; e090a
- ld hl, wcf64
- ld a, [wcf65]
- and a
- jr z, .asm_e0925
- cp $1
- jr z, .asm_e091d
- ld a, [hl]
- and a
- ret z
- dec [hl]
- jr Functione0959
-
-.asm_e091d
- ld a, [hl]
- cp $3
- jr c, .asm_e0931
- dec [hl]
- jr Functione0959
-
-.asm_e0925
- ld a, [hl]
- and $e
- ld [hl], a
- cp $3
- jr c, .asm_e0931
-rept 2
- dec [hl]
-endr
- jr Functione0959
-
-.asm_e0931
- ld a, $1
- ld [wcf64], a
- ld a, $2
- ld [wcf65], a
- jr Functione0959
-
-Functione093d: ; e093d
- ld hl, wcf64
- ld a, [wcf65]
- and a
- jr z, .asm_e0950
- ld hl, wcf64
- ld a, [hl]
- cp $7
- ret nc
- inc [hl]
- jr Functione0959
-
-.asm_e0950
- ld a, [hl]
- and $e
- ld [hl], a
- cp $6
- ret nc
-rept 2
- inc [hl]
-endr
-
-Functione0959: ; e0959
- ld de, SFX_POKEBALLS_PLACED_ON_TABLE
- call PlaySFX
- ret
-; e0960
-
-Functione0960: ; e0960
- call ClearSprites
- ld a, [hCGB]
- and a
- jr nz, .asm_e096d
- ld a, [$ff9b]
- and $4
- ret nz
-
-.asm_e096d
- call Functione0398
-rept 2
- add hl, hl
-endr
- ld de, Unknown_e0981
- add hl, de
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Functione0509
- ret
-; e0981
-
-Unknown_e0981: ; e0981
- dbbw $58, $10, Unknown_e0c26
- dbbw $60, $10, Unknown_e0c26
- dbbw $68, $10, Unknown_e0b8d
- dbbw $68, $10, Unknown_e0b8d
- dbbw $88, $10, Unknown_e0b8d
- dbbw $88, $10, Unknown_e0b8d
-
- dbbw $58, $18, Unknown_e0c26
- dbbw $60, $18, Unknown_e0c26
- dbbw $68, $18, Unknown_e0a5a
- dbbw $78, $18, Unknown_e0a5a
- dbbw $88, $18, Unknown_e0a5a
- dbbw $98, $18, Unknown_e0a5a
-
- dbbw $58, $28, Unknown_e0b14
- dbbw $60, $28, Unknown_e0ac3
- dbbw $68, $28, Unknown_e0a41
- dbbw $78, $28, Unknown_e0a41
- dbbw $88, $28, Unknown_e0a41
- dbbw $98, $28, Unknown_e0a41
- dbbw $58, $28, Unknown_e0b14
-
- dbbw $60, $34, Unknown_e0ac3
- dbbw $68, $34, Unknown_e0a41
- dbbw $78, $34, Unknown_e0a41
- dbbw $88, $34, Unknown_e0a41
- dbbw $98, $34, Unknown_e0a41
-
- dbbw $58, $40, Unknown_e0b14
- dbbw $60, $40, Unknown_e0ac3
- dbbw $68, $40, Unknown_e0a41
- dbbw $78, $40, Unknown_e0a41
- dbbw $88, $40, Unknown_e0a41
- dbbw $98, $40, Unknown_e0a41
- dbbw $58, $40, Unknown_e0b14
-
- dbbw $60, $4c, Unknown_e0ac3
- dbbw $68, $4c, Unknown_e0a41
- dbbw $78, $4c, Unknown_e0a41
- dbbw $88, $4c, Unknown_e0a41
- dbbw $98, $4c, Unknown_e0a41
-
- dbbw $58, $58, Unknown_e0b14
- dbbw $60, $58, Unknown_e0ac3
- dbbw $68, $58, Unknown_e0a41
- dbbw $78, $58, Unknown_e0a41
- dbbw $88, $58, Unknown_e0a41
- dbbw $98, $58, Unknown_e0a41
- dbbw $58, $58, Unknown_e0b14
-
- dbbw $60, $64, Unknown_e0ac3
- dbbw $68, $64, Unknown_e0a41
- dbbw $78, $64, Unknown_e0a41
- dbbw $88, $64, Unknown_e0a41
- dbbw $98, $64, Unknown_e0a41
-; e0a41
-
-Unknown_e0a41: ; e0a41
- db 6
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $03, $80
- db $05, $ff, $00, $c0
- db $05, $00, $02, $c0
- db $05, $08, $03, $80
-
-Unknown_e0a5a: ; e0a5a
- db 26
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $00, $a0
- db $08, $ff, $01, $80
- db $08, $08, $01, $a0
- db $10, $ff, $01, $80
- db $10, $08, $03, $80
- db $18, $ff, $01, $80
- db $18, $08, $03, $80
- db $20, $ff, $01, $80
- db $20, $08, $03, $80
- db $28, $ff, $01, $80
- db $28, $08, $03, $80
- db $30, $ff, $01, $80
- db $30, $08, $03, $80
- db $38, $ff, $01, $80
- db $38, $08, $03, $80
- db $40, $ff, $01, $80
- db $40, $08, $03, $80
- db $48, $ff, $01, $80
- db $48, $08, $03, $80
- db $50, $ff, $01, $80
- db $50, $08, $03, $80
- db $51, $ff, $00, $c0
- db $51, $00, $02, $c0
- db $51, $08, $03, $80
-
-Unknown_e0ac3: ; e0ac3
- db 20
- db $00, $ff, $00, $80
- db $00, $00, $02, $80
- db $00, $08, $02, $80
- db $00, $10, $03, $80
- db $00, $18, $02, $80
- db $00, $20, $03, $80
- db $00, $28, $02, $80
- db $00, $30, $03, $80
- db $00, $38, $02, $80
- db $00, $40, $03, $80
- db $05, $ff, $00, $c0
- db $05, $00, $02, $c0
- db $05, $08, $02, $c0
- db $05, $10, $03, $80
- db $05, $18, $02, $c0
- db $05, $20, $03, $80
- db $05, $28, $02, $c0
- db $05, $30, $03, $80
- db $05, $38, $02, $c0
- db $05, $40, $03, $80
-
-Unknown_e0b14: ; e0b14
- db 30
- db $00, $00, $00, $80
- db $00, $08, $02, $80
- db $00, $10, $02, $80
- db $00, $18, $03, $80
- db $00, $20, $02, $80
- db $00, $28, $03, $80
- db $00, $30, $02, $80
- db $00, $38, $03, $80
- db $00, $40, $02, $80
- db $00, $48, $03, $80
- db $08, $00, $01, $80
- db $08, $18, $03, $80
- db $08, $28, $03, $80
- db $08, $38, $03, $80
- db $08, $48, $03, $80
- db $10, $00, $01, $80
- db $10, $18, $03, $80
- db $10, $28, $03, $80
- db $10, $38, $03, $80
- db $10, $48, $03, $80
- db $11, $00, $00, $c0
- db $11, $08, $02, $c0
- db $11, $10, $02, $c0
- db $11, $18, $03, $80
- db $11, $20, $03, $80
- db $11, $28, $03, $80
- db $11, $30, $03, $80
- db $11, $38, $03, $80
- db $11, $40, $03, $80
- db $11, $48, $03, $80
-
-Unknown_e0b8d: ; e0b8d
- db 38
- db $00, $ff, $00, $80
- db $00, $18, $00, $a0
- db $08, $ff, $01, $80
- db $08, $18, $01, $a0
- db $10, $ff, $01, $80
- db $10, $18, $01, $a0
- db $18, $ff, $01, $80
- db $18, $08, $03, $80
- db $18, $18, $03, $80
- db $20, $ff, $01, $80
- db $20, $08, $03, $80
- db $20, $18, $03, $80
- db $28, $ff, $01, $80
- db $28, $08, $03, $80
- db $28, $18, $03, $80
- db $30, $ff, $01, $80
- db $30, $08, $03, $80
- db $30, $18, $03, $80
- db $38, $ff, $01, $80
- db $38, $08, $03, $80
- db $38, $18, $03, $80
- db $40, $ff, $01, $80
- db $40, $08, $03, $80
- db $40, $18, $03, $80
- db $48, $ff, $01, $80
- db $48, $08, $03, $80
- db $48, $18, $03, $80
- db $50, $ff, $01, $80
- db $50, $08, $03, $80
- db $50, $18, $03, $80
- db $58, $ff, $01, $80
- db $58, $08, $03, $80
- db $58, $18, $03, $80
- db $59, $ff, $00, $c0
- db $59, $00, $02, $c0
- db $59, $08, $03, $c0
- db $59, $10, $02, $c0
- db $59, $18, $03, $e0
-
-Unknown_e0c26: ; e0c26
- db 4
- db $00, $00, $00, $80
- db $00, $08, $00, $a0
- db $08, $00, $00, $c0
- db $08, $08, $00, $e0
-; e0c37
-
-Functione0c37: ; e0c37 (38:4c37)
- ld a, [hCGB] ; $ff00+$e6
- and a
- ret z
- hlcoord 0, 0, AttrMap
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- xor a
- call ByteFill
- hlcoord 12, 1, AttrMap
- ld bc, $202
- ld a, $1
- call Functione04e7
- hlcoord 14, 1, AttrMap
- ld bc, $202
- ld a, $2
- call Functione04e7
- hlcoord 16, 1, AttrMap
- ld bc, $202
- ld a, $3
- call Functione04e7
- hlcoord 18, 1, AttrMap
- ld bc, $202
- ld a, $4
- call Functione04e7
- hlcoord 9, 0, AttrMap
- ld bc, $c01
- ld a, $1
- call Functione04e7
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, Palette_e0c93
- ld de, Unkn1Pals
- ld bc, $48
- call CopyBytes
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-; e0c93 (38:4c93)
-
-Palette_e0c93: ; 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
-; e0cdb
-
-LZ_e0cdb: ; e0cdb
-INCBIN "gfx/unknown/0e0cdb.2bpp.lz"
-
-GFX_e0cf6: ; e0cf6
-INCBIN "gfx/unknown/0e0cf6.2bpp"
-
-GFX_e0d06: ; e0d06
-INCBIN "gfx/unknown/0e0d06.2bpp"
-
-LZ_e0d16: ; e0d16
-INCBIN "gfx/unknown/0e0d16.2bpp.lz"
-
-LZ_e0ea8: ; e0ea8
-INCBIN "gfx/unknown/0e0ea8.2bpp.lz"
-
-Unknown_e110c: ; 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
-; e1190
-
-Functione1190: ; e1190
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- xor a
- ld [hBGMapMode], a
- call DisableLCD
- ld hl, wc608
- ld bc, $01e0
- xor a
- call ByteFill
- ld hl, GFX_e17c5
- ld de, VTiles1 tile $60
- ld bc, $0040
- call CopyBytes
- ld hl, LZ_e1805
- ld de, VTiles1 tile $6d
- call Decompress
- call Functione17a3
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $ee
- call ByteFill
- hlcoord 4, 3
- ld bc, $0c0c
- ld a, $ef
- call Functione13ee
- call Functione124e
- call Functione13fe
- call Functione127d
- xor a
- ld [hSCY], a
- ld [hSCX], a
- ld [rWY], a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld a, $93
- ld [rLCDC], a
- call WaitBGMap
- ld b, $18
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $24
- call Functioncf8
- xor a
- ld [wd0ec], a
- call DelayFrame
-.asm_e1217
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e123d
- call Functione12ca
- ld a, [wcf64]
- and a
- jr nz, .asm_e1230
- ld a, [$ff9b]
- and $10
- jr z, .asm_e1235
-
-.asm_e1230
- call Functione14d9
- jr .asm_e1238
-
-.asm_e1235
- call ClearSprites
-
-.asm_e1238
- call DelayFrame
- jr .asm_e1217
-
-.asm_e123d
- pop af
- ld [hInMenu], a
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- ld a, $e3
- ld [rLCDC], a
- ret
-; e124e
-
-Functione124e: ; e124e
- ld c, $1
- ld b, $10
-.asm_e1252
- call Random
- and $f
- ld hl, Unknown_e126d
- ld e, a
- ld d, $0
- add hl, de
- ld e, [hl]
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e1252
- ld [hl], c
- inc c
- dec b
- jr nz, .asm_e1252
- ret
-; e126d
-
-Unknown_e126d: ; e126d
- db $00, $01, $02, $03
- db $04, $05, $06, $0b
- db $0c, $11, $12, $17
- db $18, $1d, $1e, $23
-; e127d
-
-Functione127d: ; e127d
- call Functione128d
- hlcoord 5, 16
- ld a, $f6
- ld c, $a
-.asm_e1287
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_e1287
- ret
-; e128d
-
-Functione128d: ; e128d
- hlcoord 4, 15
- ld a, $f0
- ld [hli], a
- ld bc, $000a
- ld a, $f1
- call ByteFill
- hlcoord 15, 15
- ld a, $f2
- ld [hli], a
- hlcoord 4, 16
- ld a, $f3
- ld [hli], a
- ld bc, $000a
- ld a, $ef
- call ByteFill
- hlcoord 15, 16
- ld a, $f3
- ld [hli], a
- hlcoord 4, 17
- ld a, $f4
- ld [hli], a
- ld bc, $000a
- ld a, $f1
- call ByteFill
- hlcoord 15, 17
- ld a, $f5
- ld [hl], a
- ret
-; e12ca
-
-Functione12ca: ; e12ca
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e12d9
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e12d9
-
-Jumptable_e12d9: ; e12d9
- dw Functione12db
-; e12db
-
-Functione12db: ; e12db
- ld a, [hJoyPressed]
- and START
- jp nz, Functione13de
- ld a, [hJoyPressed]
- and A_BUTTON
- jp nz, Functione1376
- ld hl, hJoyLast
- ld a, [hl]
- and D_UP
- jr nz, .asm_e1301
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_e130d
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_e1325
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_e1345
- ret
-
-.asm_e1301
- ld hl, wcf65
- ld a, [hl]
- cp $6
- ret c
- sub $6
- ld [hl], a
- jr .asm_e1364
-
-.asm_e130d
- ld hl, wcf65
- ld a, [hl]
- cp $19
- ret z
- cp $1a
- ret z
- cp $1b
- ret z
- cp $1c
- ret z
- cp $1e
- ret nc
- add $6
- ld [hl], a
- jr .asm_e1364
-
-.asm_e1325
- ld hl, wcf65
- ld a, [hl]
- and a
- ret z
- cp $6
- ret z
- cp $c
- ret z
- cp $12
- ret z
- cp $18
- ret z
- cp $1e
- ret z
- cp $23
- jr z, .asm_e1341
- dec [hl]
- jr .asm_e1364
-
-.asm_e1341
- ld [hl], $1e
- jr .asm_e1364
-
-.asm_e1345
- ld hl, wcf65
- ld a, [hl]
- cp $5
- ret z
- cp $b
- ret z
- cp $11
- ret z
- cp $17
- ret z
- cp $1d
- ret z
- cp $23
- ret z
- cp $1e
- jr z, .asm_e1362
- inc [hl]
- jr .asm_e1364
-
-.asm_e1362
- ld [hl], $23
-
-.asm_e1364
- ld a, [wcf64]
- and a
- jr nz, .asm_e136f
- ld de, SFX_POUND
- jr .asm_e1372
-
-.asm_e136f
- ld de, SFX_MOVE_PUZZLE_PIECE
-
-.asm_e1372
- call PlaySFX
- ret
-; e1376
-
-Functione1376: ; e1376
- ld a, [wcf64]
- and a
- jr nz, .asm_e139f
- call Functione1475
- and a
- jr z, Functione13e4
- ld de, SFX_MEGA_KICK
- call PlaySFX
- ld [hl], $0
- ld [wcf66], a
- call Functione14d9
- call Functione1441
- call WaitBGMap
- call WaitSFX
- ld a, $1
- ld [wcf64], a
- ret
-
-.asm_e139f
- call Functione1475
- and a
- jr nz, Functione13e4
- ld de, SFX_PLACE_PUZZLE_PIECE_DOWN
- call PlaySFX
- ld a, [wcf66]
- ld [hl], a
- call Functione141f
- call WaitBGMap
- xor a
- ld [wcf66], a
- call Functione14d9
- xor a
- ld [wcf64], a
- call WaitSFX
- call Functione14a0
- ret nc
- call Functione128d
- call ClearSprites
- ld de, SFX_1ST_PLACE
- call PlaySFX
- call WaitSFX
- call Functionaa5
- ld a, $1
- ld [wd0ec], a
-
-Functione13de: ; e13de
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Functione13e4: ; e13e4
- ld de, SFX_WRONG
- call PlaySFX
- call WaitSFX
- ret
-; e13ee
-
-Functione13ee: ; e13ee
- ld de, SCREEN_WIDTH
-.asm_e13f1
- push bc
- push hl
-.asm_e13f3
- ld [hli], a
- dec c
- jr nz, .asm_e13f3
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_e13f1
- ret
-; e13fe
-
-Functione13fe: ; e13fe
- xor a
- ld [wcf65], a
- ld c, $24
-.asm_e1404
- push bc
- call Functione1475
- ld [wcf66], a
- and a
- jr z, .asm_e1413
- call Functione141f
- jr .asm_e1416
-
-.asm_e1413
- call Functione1441
-
-.asm_e1416
- ld hl, wcf65
- inc [hl]
- pop bc
- dec c
- jr nz, .asm_e1404
- ret
-; e141f
-
-Functione141f: ; e141f
- ld a, $2
- call Functione1463
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- call Functione1481
- pop hl
- ld de, SCREEN_WIDTH
- ld b, $3
-.asm_e1431
- ld c, $3
- push hl
-.asm_e1434
- ld [hli], a
- inc a
- dec c
- jr nz, .asm_e1434
- add $9
- pop hl
- add hl, de
- dec b
- jr nz, .asm_e1431
- ret
-; e1441
-
-Functione1441: ; e1441
- ld a, $2
- call Functione1463
- ld a, [hli]
- ld h, [hl]
- ld l, a
- push hl
- ld a, $4
- call Functione1463
- ld a, [hl]
- pop hl
- ld de, SCREEN_WIDTH
- ld b, $3
-.asm_e1456
- ld c, $3
- push hl
-.asm_e1459
- ld [hli], a
- dec c
- jr nz, .asm_e1459
- pop hl
- add hl, de
- dec b
- jr nz, .asm_e1456
- ret
-; e1463
-
-Functione1463: ; e1463
- ld e, a
- ld d, 0
- ld hl, Unknown_e1559
- add hl, de
- ld a, [wcf65]
- ld e, a
-rept 4
- add hl, de
-endr
-rept 2
- add hl, de
-endr
- ret
-; e1475
-
-Functione1475: ; e1475
- ld hl, wc6d0
- ld a, [wcf65]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- ret
-; e1481
-
-Functione1481: ; e1481
- ld a, [wcf66]
- ld hl, Unknown_e148f
- add l
- ld l, a
- ld a, $0
- adc h
- ld h, a
- ld a, [hl]
- ret
-; e148f
-
-Unknown_e148f: ; e148f
- db $e0
- db $00, $03, $06, $09
- db $24, $27, $2a, $2d
- db $48, $4b, $4e, $51
- db $6c, $6f, $72, $75
-; e14a0
-
-Functione14a0: ; e14a0
- ld hl, Unknown_e14b5
- ld de, wc6d0
- ld c, $24
-.asm_e14a8
- ld a, [de]
- cp [hl]
- jr nz, .asm_e14b3
- inc de
- inc hl
- dec c
- jr nz, .asm_e14a8
- scf
- ret
-
-.asm_e14b3
- and a
- ret
-; e14b5
-
-Unknown_e14b5: ; e14b5
- db $00, $00, $00, $00, $00, $00
- db $00, $01, $02, $03, $04, $00
- db $00, $05, $06, $07, $08, $00
- db $00, $09, $0a, $0b, $0c, $00
- db $00, $0d, $0e, $0f, $10, $00
- db $00, $00, $00, $00, $00, $00
-; e14d9
-
-Functione14d9: ; e14d9
- call Functione1481
- ld [DefaultFlypoint], a
- xor a
- call Functione1463
- ld a, [hli]
- ld b, [hl]
- ld c, a
- ld a, [DefaultFlypoint]
- cp $e0
- jr z, .asm_e14f2
- ld hl, Unknown_e150f
- jr .asm_e14f5
-
-.asm_e14f2
- ld hl, Unknown_e1534
-
-.asm_e14f5
- ld de, Sprites
-.asm_e14f8
- ld a, [hli]
- cp $ff
- ret z
- add b
- ld [de], a
- inc de
- ld a, [hli]
- add c
- ld [de], a
- inc de
- ld a, [DefaultFlypoint]
- add [hl]
- ld [de], a
- inc hl
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- jr .asm_e14f8
-; e150f
-
-Unknown_e150f: ; e150f
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $02, $00
- db $fc, $f4, $0c, $00
- db $fc, $fc, $0d, $00
- db $fc, $04, $0e, $00
- db $04, $f4, $18, $00
- db $04, $fc, $19, $00
- db $04, $04, $1a, $00
- db $ff
-
-Unknown_e1534: ; e1534
- db $f4, $f4, $00, $00
- db $f4, $fc, $01, $00
- db $f4, $04, $00, $20
- db $fc, $f4, $02, $00
- db $fc, $fc, $03, $00
- db $fc, $04, $02, $20
- db $04, $f4, $00, $40
- db $04, $fc, $01, $40
- db $04, $04, $00, $60
- db $ff
-
-Unknown_e1559: ; e1559
-
-macro_e1559: macro
- db \1, \2
- dwcoord \3, \4
- db \5, \6
-endm
-
- macro_e1559 $1c, $1c, 1, 0, $ee, $00
- macro_e1559 $34, $1c, 4, 0, $ee, $00
- macro_e1559 $4c, $1c, 7, 0, $ee, $00
- macro_e1559 $64, $1c, 10, 0, $ee, $00
- macro_e1559 $7c, $1c, 13, 0, $ee, $00
- macro_e1559 $94, $1c, 16, 0, $ee, $00
- macro_e1559 $1c, $34, 1, 3, $ee, $00
- macro_e1559 $34, $34, 4, 3, $ef, $00
- macro_e1559 $4c, $34, 7, 3, $ef, $00
- macro_e1559 $64, $34, 10, 3, $ef, $00
- macro_e1559 $7c, $34, 13, 3, $ef, $00
- macro_e1559 $94, $34, 16, 3, $ee, $00
- macro_e1559 $1c, $4c, 1, 6, $ee, $00
- macro_e1559 $34, $4c, 4, 6, $ef, $00
- macro_e1559 $4c, $4c, 7, 6, $ef, $00
- macro_e1559 $64, $4c, 10, 6, $ef, $00
- macro_e1559 $7c, $4c, 13, 6, $ef, $00
- macro_e1559 $94, $4c, 16, 6, $ee, $00
- macro_e1559 $1c, $64, 1, 9, $ee, $00
- macro_e1559 $34, $64, 4, 9, $ef, $00
- macro_e1559 $4c, $64, 7, 9, $ef, $00
- macro_e1559 $64, $64, 10, 9, $ef, $00
- macro_e1559 $7c, $64, 13, 9, $ef, $00
- macro_e1559 $94, $64, 16, 9, $ee, $00
- macro_e1559 $1c, $7c, 1, 12, $ee, $00
- macro_e1559 $34, $7c, 4, 12, $ef, $00
- macro_e1559 $4c, $7c, 7, 12, $ef, $00
- macro_e1559 $64, $7c, 10, 12, $ef, $00
- macro_e1559 $7c, $7c, 13, 12, $ef, $00
- macro_e1559 $94, $7c, 16, 12, $ee, $00
- macro_e1559 $1c, $94, 1, 15, $ee, $00
- macro_e1559 $34, $94, 4, 15, $ee, $00
- macro_e1559 $4c, $94, 7, 15, $ee, $00
- macro_e1559 $64, $94, 10, 15, $ee, $00
- macro_e1559 $7c, $94, 13, 15, $ee, $00
- macro_e1559 $94, $94, 16, 15, $ee, $00
-
-Functione1631: ; e1631
- ld hl, VTiles2
- ld de, VTiles0
- ld b, $6
-.asm_e1639
- push bc
- push hl
- push hl
- call Functione1654
- pop hl
- ld bc, $0008
- add hl, bc
- call Functione1654
- pop hl
- ld bc, $0060
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_e1639
- call Functione16c7
- ret
-; e1654
-
-Functione1654: ; e1654
- ld c, $6
-.asm_e1656
- push bc
- push hl
- push hl
- ld c, $4
-.asm_e165b
- push bc
- ld a, [hli]
- and $f0
- swap a
- call Functione16aa
- ld c, a
- ld a, [hli]
- and $f0
- swap a
- call Functione16aa
- ld b, a
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- pop bc
- dec c
- jr nz, .asm_e165b
- pop hl
- ld c, $4
-.asm_e1681
- push bc
- ld a, [hli]
- and $f
- call Functione16aa
- ld c, a
- ld a, [hli]
- and $f
- call Functione16aa
- ld b, a
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- ld a, c
- ld [de], a
- inc de
- ld a, b
- ld [de], a
- inc de
- pop bc
- dec c
- jr nz, .asm_e1681
- pop hl
- ld bc, $0010
- add hl, bc
- pop bc
- dec c
- jr nz, .asm_e1656
- ret
-; e16aa
-
-Functione16aa: ; e16aa
- push hl
- ld hl, Unknown_e16b7
- add l
- ld l, a
- ld a, 0
- adc h
- ld h, a
- ld a, [hl]
- pop hl
- ret
-; e16b7
-
-Unknown_e16b7: ; e16b7
- db $00, $03, $0c, $0f
- db $30, $33, $3c, $3f
- db $c0, $c3, $cc, $cf
- db $f0, $f3, $fc, $ff
-; e16c7
-
-Functione16c7: ; e16c7
- ld hl, Unknown_e1703
- ld a, $8
-.asm_e16cc
- push af
- push hl
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- call Functione16e2
- pop hl
-rept 4
- inc hl
-endr
- pop af
- dec a
- jr nz, .asm_e16cc
- ret
-; e16e2
-
-Functione16e2: ; e16e2
- lb bc, 4, 4
-.asm_e16e5
- push bc
-.asm_e16e6
- push de
- push hl
- ld b, $10
-.asm_e16ea
- ld a, [de]
- or [hl]
- ld [hli], a
- inc de
- dec b
- jr nz, .asm_e16ea
- pop hl
- ld de, $0030
- add hl, de
- pop de
- dec c
- jr nz, .asm_e16e6
- ld bc, $0180
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_e16e5
- ret
-; e1703
-
-Unknown_e1703: ; e1703
- dw GFX_e1723 + $00, $8000
- dw GFX_e1723 + $10, $8010
- dw GFX_e1723 + $20, $8020
- dw GFX_e1723 + $30, $80c0
- dw GFX_e1723 + $40, $80e0
- dw GFX_e1723 + $50, $8180
- dw GFX_e1723 + $60, $8190
- dw GFX_e1723 + $70, $81a0
-; e1723
-
-GFX_e1723: ; e1723
-INCBIN "gfx/unknown/0e1723.2bpp"
-
-Functione17a3: ; e17a3
- ld a, [ScriptVar]
- and 3
- ld e, a
- ld d, 0
- ld hl, Unknown_e17bd
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, VTiles2
- call Decompress
- call Functione1631
- ret
-; e17bd
-
-Unknown_e17bd: ; e17bd
- dw LZ_e1bab
- dw LZ_e1c9b
- dw LZ_e19fb
- dw LZ_e18ab
-; e17c5
-
-GFX_e17c5: ; e17c5
-INCBIN "gfx/unknown/0e17c5.2bpp"
-
-LZ_e1805: ; e1805
-INCBIN "gfx/unknown/0e1805.2bpp.lz"
-
-LZ_e18ab: ; e18ab
-INCBIN "gfx/unknown/0e18ab.2bpp.lz"
-
-LZ_e19fb: ; e19fb
-INCBIN "gfx/unknown/0e19fb.2bpp.lz"
-
-LZ_e1bab: ; e1bab
-INCBIN "gfx/unknown/0e1bab.2bpp.lz"
-
-LZ_e1c9b: ; e1c9b
-INCBIN "gfx/unknown/0e1c9b.2bpp.lz"
-
-_DummyGame: ; e1e5b (38:5e5b)
- call Functione1e67
- call DelayFrame
-.asm_e1e61
- call Functione1ebb
- jr nc, .asm_e1e61
- ret
-
-Functione1e67: ; e1e67 (38:5e67)
- call DisableLCD
- ld b, $8
- call GetSGBLayout
- callab Function8cf53
- ld hl, LZ_e2221
- ld de, VTiles2 tile $00
- call Decompress
- ld hl, Unknown_e00ed
- ld de, VTiles0 tile $00
- ld bc, $40
- ld a, BANK(Unknown_e00ed)
- call FarCopyBytes
- ld a, $8
- ld hl, wc300
- ld [hli], a
- ld [hl], $0
- hlcoord 0, 0
- ld bc, SCREEN_HEIGHT * SCREEN_WIDTH
- xor a
- call ByteFill
- xor a
- ld [hSCY], a ; $ff00+$d0
- ld [hSCX], a ; $ff00+$cf
- ld [rWY], a ; $ff00+$4a
- ld [wJumptableIndex], a
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ld a, $e3
- ld [rLCDC], a ; $ff00+$40
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $e0
- call Functioncf8
- ret
-
-Functione1ebb: ; e1ebb (38:5ebb)
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e1ed0
- call Functione1ed2
- callab Function8cf69
- call DelayFrame
- and a
- ret
-.asm_e1ed0
- scf
- ret
-
-Functione1ed2: ; e1ed2 (38:5ed2)
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_e1ee1
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e1ee1 (38:5ee1)
-
-Jumptable_e1ee1: ; e1ee1
- dw Functione1ef3
- dw Functione1efb
- dw Functione1f1c
- dw Functione1f42
- dw Functione1f61
- dw Functione1f8b
- dw Functione1fba
- dw Functione1fcc
- dw Functione2000
-; e1ef3
-
-Functione1ef3: ; e1ef3
- call Functione2152
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e1efb
-
-Functione1efb: ; e1efb
- call Functione00ed
- jr nc, .asm_e1f06
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.asm_e1f06
- call Functione209d
- ld hl, wJumptableIndex
- inc [hl]
- xor a
- ld [wc708], a
- ld hl, wc703
-rept 4
- ld [hli], a
-endr
- ld [hl], a
- ld [wc709], a
-
-Functione1f1c: ; e1f1c
- ld hl, wc708
- ld a, [hl]
- cp $2d
- jr nc, .asm_e1f30
- inc [hl]
- call Functione2183
- xor a
- ld [wc6fd], a
- call Functione2128
- ret
-
-.asm_e1f30
- ld de, $341c
- ld a, $c
- call Function3b2a
- ld a, $5
- ld [wc702], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e1f42
-
-Functione1f42: ; e1f42
- ld a, [wc702]
- hlcoord 17, 0
- add $f6
- ld [hl], a
- ld hl, wc702
- ld a, [hl]
- and a
- jr nz, .asm_e1f58
- ld a, $7
- ld [wJumptableIndex], a
- ret
-
-.asm_e1f58
- dec [hl]
- xor a
- ld [wcf64], a
- ld hl, wJumptableIndex
- inc [hl]
-
-Functione1f61: ; e1f61
- ld a, [wcf64]
- and a
- ret z
- dec a
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- cp $ff
- ret z
- ld [wc6fd], a
- ld [wc6fe], a
- ld a, e
- ld [EnemyScreens], a
- call Functione2183
- call Functione2128
- xor a
- ld [wcf64], a
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; e1f8b
-
-Functione1f8b: ; e1f8b
- ld a, [wcf64]
- and a
- ret z
- dec a
- ld hl, EnemyScreens
- cp [hl]
- ret z
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- cp $ff
- ret z
- ld [wc6fd], a
- ld [PlayerScreens], a
- ld a, e
- ld [wc701], a
- call Functione2183
- call Functione2128
- ld a, $40
- ld [wc708], a
- ld hl, wJumptableIndex
- inc [hl]
-
-Functione1fba: ; e1fba
- ld hl, wc708
- ld a, [hl]
- and a
- jr z, .asm_e1fc3
- dec [hl]
- ret
-
-.asm_e1fc3
- call Functione2010
- ld a, $3
- ld [wJumptableIndex], a
- ret
-; e1fcc
-
-Functione1fcc: ; e1fcc
- ld a, [hJoypadPressed]
- and A_BUTTON
- ret z
- xor a
- ld [wc708], a
-.asm_e1fd5
- ld hl, wc708
- ld a, [hl]
- cp $2d
- jr nc, .asm_e1ff9
- inc [hl]
- push af
- call Functione2183
- pop af
- push hl
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld a, [hl]
- pop hl
- cp $ff
- jr z, .asm_e1fd5
- ld [wc6fd], a
- call Functione2128
- jr .asm_e1fd5
-
-.asm_e1ff9
- call Functiona80
- ld hl, wJumptableIndex
- inc [hl]
-
-Functione2000: ; e2000
- call Functione00ed
- jr nc, .asm_e200b
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-.asm_e200b
- xor a
- ld [wJumptableIndex], a
- ret
-; e2010
-
-Functione2010: ; e2010
- ld hl, wc6fe
- ld a, [hli]
- cp [hl]
- jr nz, .asm_e2066
- ld a, [EnemyScreens]
- call Functione2183
- call Functione2142
- ld a, [wc701]
- call Functione2183
- call Functione2142
- ld a, [EnemyScreens]
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld [hl], $ff
- ld a, [wc701]
- ld e, a
- ld d, $0
- ld hl, wc6d0
- add hl, de
- ld [hl], $ff
- ld hl, wc703
-.asm_e2044
- ld a, [hli]
- and a
- jr nz, .asm_e2044
- dec hl
- ld a, [wc6fe]
- ld [hl], a
- ld [wc6fd], a
- ld hl, wc709
- ld e, [hl]
-rept 2
- inc [hl]
-endr
- ld d, $0
- hlcoord 5, 0
- add hl, de
- call Functione2128
- ld hl, UnknownText_0xe2083
- call PrintText
- ret
-
-.asm_e2066
- xor a
- ld [wc6fd], a
- ld a, [EnemyScreens]
- call Functione2183
- call Functione2128
- ld a, [wc701]
- call Functione2183
- call Functione2128
- ld hl, UnknownText_0xe2098
- call PrintText
- ret
-; e2083
-
-UnknownText_0xe2083: ; 0xe2083
- start_asm
-; 0xe2084
-
-Functione2084: ; e2084
- push bc
- hlcoord 2, 13
- call Functione2128
- ld hl, UnknownText_0xe2093
- pop bc
-rept 3
- inc bc
-endr
- ret
-; e2093
-
-UnknownText_0xe2093: ; 0xe2093
- ; , yeah!
- text_jump UnknownText_0x1c1a5b
- db "@"
-; 0xe2098
-
-UnknownText_0xe2098: ; 0xe2098
- ; Darn…
- text_jump UnknownText_0x1c1a65
- db "@"
-; 0xe209d
-
-Functione209d: ; e209d
- ld hl, wc6d0
- ld bc, $002d
- xor a
- call ByteFill
- call Functione2101
- ld c, $2
- ld b, [hl]
- call Functione20e5
- ld c, $8
- ld b, [hl]
- call Functione20e5
- ld c, $4
- ld b, [hl]
- call Functione20e5
- ld c, $7
- ld b, [hl]
- call Functione20e5
- ld c, $3
- ld b, [hl]
- call Functione20e5
- ld c, $6
- ld b, [hl]
- call Functione20e5
- ld c, $1
- ld b, [hl]
- call Functione20e5
- ld c, $5
- ld hl, wc6d0
- ld b, $2d
-.asm_e20db
- ld a, [hl]
- and a
- jr nz, .asm_e20e0
- ld [hl], c
-
-.asm_e20e0
- inc hl
- dec b
- jr nz, .asm_e20db
- ret
-; e20e5
-
-Functione20e5: ; e20e5
- push hl
- ld de, wc6d0
-.asm_e20e9
- call Random
- and $3f
- cp $2d
- jr nc, .asm_e20e9
- ld l, a
- ld h, $0
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_e20e9
- ld [hl], c
- dec b
- jr nz, .asm_e20e9
- pop hl
- inc hl
- ret
-; e2101
-
-Functione2101: ; e2101
- ld a, [wcfa9]
- dec a
- ld l, a
- ld h, 0
-rept 3
- add hl, hl
-endr
- ld de, Unknown_e2110
- add hl, de
- ret
-; e2110
-
-Unknown_e2110: ; e2110
- db $02, $03, $06, $06, $06, $08, $08, $06
- db $02, $02, $04, $06, $06, $08, $08, $09
- db $02, $02, $02, $04, $07, $08, $08, $0c
-; e2128
-
-Functione2128: ; e2128
- ld a, [wc6fd]
- sla a
- sla a
- add $4
- ld [hli], a
- inc a
- ld [hld], a
- inc a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hli], a
- inc a
- ld [hl], a
- ld c, $3
- call DelayFrames
- ret
-; e2142
-
-Functione2142: ; e2142
- ld a, $1
- ld [hli], a
- ld [hld], a
- ld bc, SCREEN_WIDTH
- add hl, bc
- ld [hli], a
- ld [hl], a
- ld c, $3
- call DelayFrames
- ret
-; e2152
-
-Functione2152: ; e2152
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, $1
- call ByteFill
- hlcoord 0, 0
- ld de, String_e2177
- call PlaceString
- hlcoord 15, 0
- ld de, String_e217d
- call PlaceString
- ld hl, UnknownText_0xe2176
- call PrintText
- ret
-; e2176
-
-UnknownText_0xe2176: ; 0xe2176
- db "@"
-; 0xe2177
-
-String_e2177: db "とったもの@"
-String_e217d: db "あと かい@"
-; e2183
-
-Functione2183: ; e2183
- ld d, $0
-.asm_e2185
- sub $9
- jr c, .asm_e218c
- inc d
- jr .asm_e2185
-
-.asm_e218c
- add $9
- ld e, a
- hlcoord 1, 2
- ld bc, $0028
-.asm_e2195
- ld a, d
- and a
- jr z, .asm_e219d
- add hl, bc
- dec d
- jr .asm_e2195
-
-.asm_e219d
- sla e
- add hl, de
- ret
-; e21a1
-
-Functione21a1: ; e21a1 (38:61a1)
- ld a, [wJumptableIndex]
- cp $7
- jr nc, .asm_e21c8
- call JoyTextDelay
- ld hl, hJoypadPressed ; $ffa3
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e21cf
- ld a, [hl]
- and D_LEFT
- jr nz, .asm_e21d9
- ld a, [hl]
- and D_RIGHT
- jr nz, .asm_e21e9
- ld a, [hl]
- and D_UP
- jr nz, .asm_e21fa
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_e220d
- ret
-.asm_e21c8
- ld hl, $0
- add hl, bc
- ld [hl], $0
- ret
-.asm_e21cf
- ld hl, $c
- add hl, bc
- ld a, [hl]
- inc a
- ld [wcf64], a
- ret
-.asm_e21d9
- ld hl, $6
- add hl, bc
- ld a, [hl]
- and a
- ret z
- sub $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- dec [hl]
- ret
-.asm_e21e9
- ld hl, $6
- add hl, bc
- ld a, [hl]
- cp $80
- ret z
- add $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- inc [hl]
- ret
-.asm_e21fa
- ld hl, $7
- add hl, bc
- ld a, [hl]
- and a
- ret z
- sub $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld a, [hl]
- sub $9
- ld [hl], a
- ret
-.asm_e220d
- ld hl, $7
- add hl, bc
- ld a, [hl]
- cp $40
- ret z
- add $10
- ld [hl], a
- ld hl, $c
- add hl, bc
- ld a, [hl]
- add $9
- ld [hl], a
- ret
-; e2221 (38:6221)
-
-LZ_e2221: ; e2221
-INCBIN "gfx/unknown/0e2221.2bpp.lz"
-
-Functione2391: ; e2391 (38:6391)
- 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 [$ffde], a
- call Functione2963
- xor a
- ld [wcb2e], a
- call DelayFrame
-.asm_e23b4
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e23c6
- call Functione23d5
- call DelayFrame
- jr .asm_e23b4
-.asm_e23c6
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-
-Functione23d5: ; e23d5 (38:63d5)
- ld a, [wJumptableIndex]
- ld hl, Jumptable_e23df
- call Functione33df
- jp [hl]
-
-Jumptable_e23df: ; e23df (38:63df)
- dw Functione23e9
- dw Functione241a
- dw Functione245d
- dw Functione247d
- dw Functione2992
-
-
-Functione23e9: ; e23e9 (38:63e9)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call ClearSprites
- call Functione2d30
- call Functione2a8e
- ld de, PCString_ChooseaPKMN
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call PCMonInfo
- ld a, $ff
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- call WaitBGMap
- call Functione2e01
- call Functione298d
- ret
-
-Functione241a: ; e241a (38:641a)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e2457
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e2443
- call Functione29b5
- and a
- ret z
- call Functione2e01
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functione2c2c
- call PCMonInfo
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- call DelayFrame
- call DelayFrame
- ret
-.asm_e2443
- call Functione2def
- and a
- ret z
- cp $ff
- jr z, .asm_e2457
- ld a, $2
- ld [wJumptableIndex], a
- ret
-; e2452 (38:6452)
-
-.asm_e2452
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e2457
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-Functione245d: ; e245d (38:645d)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call ClearSprites
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ld de, PCString_WhatsUp
- call Functione2a6e
- ld a, $1
- ld [wcfa9], a
- call Functione298d
- ret
-
-Functione247d: ; e247d (38:647d)
- ld hl, BillsPCDepositMenuDataHeader
- call CopyMenuDataHeader
- ld a, [wcfa9]
- call Function1d4b
- call InterpretMenu2
- jp c, BillsPCDepositFuncCancel
- ld a, [wcfa9]
- dec a
- and $3
- ld e, a
- ld d, 0
- ld hl, BillsPCDepositJumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-BillsPCDepositJumptable: ; e24a1 (38:64a1)
- dw BillsPCDepositFuncDeposit ; Deposit Pokemon
- dw BillsPCDepositFuncStats ; Pokemon Stats
- dw BillsPCDepositFuncRelease ; Release Pokemon
- dw BillsPCDepositFuncCancel ; Cancel
-
-
-BillsPCDepositFuncDeposit: ; e24a9 (38:64a9)
- call Functione2f18
- jp c, BillsPCDepositFuncCancel
- call Functione307c
- jr c, .asm_e24c1
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ret
-.asm_e24c1
- ld de, PCString_WhatsUp
- call Functione2a6e
- ret
-
-BillsPCDepositFuncStats: ; e24c8 (38:64c8)
- call LoadMenuDataHeader_0x1d75
- call Functione2f7e
- call ExitMenu
- call PCMonInfo
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ret
-
-BillsPCDepositFuncRelease: ; e24e0 (38:64e0)
- call Functione2f18
- jr c, BillsPCDepositFuncCancel
- call Functione2f5f
- jr c, BillsPCDepositFuncCancel
- ld a, [wcfa9]
- push af
- ld de, PCString_ReleasePKMN
- call Functione2a6e
- call LoadMenuDataHeader_0x1d75
- lb bc, 14, 11
- call PlaceYesNoBox
- ld a, [wcfa9]
- dec a
- call ExitMenu
- and a
- jr nz, .asm_e252c
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- xor a
- ld [wd10b], a
- callba Functione039
- call Functione3180
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- pop af
- ret
-.asm_e252c
- ld de, PCString_WhatsUp
- call Functione2a6e
- pop af
- ld [wcfa9], a
- ret
-
-BillsPCDepositFuncCancel: ; e2537 (38:6537)
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e253d (38:653d)
-
-BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d)
- db $40 ; flags
- db 04, 09 ; start coords
- db 13, 19 ; end coords
- dw BillsPCDepositMenuData
- db 1 ; default option
-; 0xe2545
-
-BillsPCDepositMenuData: ; 0xe2545 (38:6545)
- db $80 ; flags
- db 4 ; items
- db "DEPOSIT@"
- db "STATS@"
- db "RELEASE@"
- db "CANCEL@"
-; 0xe2564 (38:6564)
-
-Functione2564: ; e2564
- hlcoord 0, 0
- ld b, $4
- ld c, $8
- call ClearBox
- hlcoord 0, 4
- ld b, $a
- ld c, $9
- call ClearBox
- hlcoord 0, 14
- ld b, $2
- ld c, $8
- call ClearBox
- ret
-; e2583
-
-Functione2583: ; e2583 (38:6583)
- 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 [$ffde], a
- call Functione2963
- ld a, $f
- ld [wcb2e], a
- call DelayFrame
-.asm_e25a7
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e25b9
- call Functione25c8
- call DelayFrame
- jr .asm_e25a7
-.asm_e25b9
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-
-Functione25c8: ; e25c8 (38:65c8)
- ld a, [wJumptableIndex]
- ld hl, .jumptable
- call Functione33df
- jp [hl]
-
-.jumptable: ; e25d2 (38:65d2)
- dw Functione25dc
- dw Functione2612
- dw Functione2655
- dw BillsPC_Withdraw
- dw Functione2992
-
-
-Functione25dc: ; e25dc (38:65dc)
- ld a, $f
- ld [wcb2e], a
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call ClearSprites
- call Functione2d30
- call Functione2a8e
- ld de, PCString_ChooseaPKMN
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call PCMonInfo
- ld a, $ff
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- call WaitBGMap
- call Functione2e01
- call Functione298d
- ret
-
-Functione2612: ; e2612 (38:6612)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e264f
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e263b
- call Functione29b5
- and a
- ret z
- call Functione2e01
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functione2c2c
- call PCMonInfo
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- call DelayFrame
- call DelayFrame
- ret
-.asm_e263b
- call Functione2def
- and a
- ret z
- cp $ff
- jr z, .asm_e264f
- ld a, $2
- ld [wJumptableIndex], a
- ret
-; e264a (38:664a)
-
-.asm_e264a
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e264f
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; e2655
-
-Functione2655: ; e2655 (38:6655)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call ClearSprites
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ld de, PCString_WhatsUp
- call Functione2a6e
- ld a, $1
- ld [wcfa9], a
- call Functione298d
- ret
-
-BillsPC_Withdraw: ; e2675 (38:6675)
- ld hl, .MenuDataHeader
- call CopyMenuDataHeader
- ld a, [wcfa9]
- call Function1d4b
- call InterpretMenu2
- jp c, .cancel
- ld a, [wcfa9]
- dec a
- and 3
- ld e, a
- ld d, 0
- ld hl, .jumptable
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-.jumptable: ; e2699 (38:6699) #mark
- dw .withdraw ; Withdraw
- dw .stats ; Stats
- dw .release ; Release
- dw .cancel ; Cancel
-
-
-.withdraw: ; e26a1 (38:66a1)
- call Functione2f18
- jp c, .cancel
- call TryWithdrawPokemon
- jr c, .FailedWithdraw
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ret
-.FailedWithdraw
- ld de, PCString_WhatsUp
- call Functione2a6e
- ret
-
-.stats: ; e26c0 (38:66c0)
- call LoadMenuDataHeader_0x1d75
- call Functione2f7e
- call ExitMenu
- call PCMonInfo
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ret
-
-.release: ; e26d8 (38:66d8)
- ld a, [wcfa9]
- push af
- call Functione2f5f
- jr c, .FailedRelease
- ld de, PCString_ReleasePKMN
- call Functione2a6e
- call LoadMenuDataHeader_0x1d75
- lb bc, 14, 11
- call PlaceYesNoBox
- ld a, [wcfa9]
- dec a
- call ExitMenu
- and a
- jr nz, .FailedRelease
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld a, $1
- ld [wd10b], a
- callba Functione039
- call Functione3180
- ld a, $0
- ld [wJumptableIndex], a
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- pop af
- ret
-.FailedRelease
- ld de, PCString_WhatsUp
- call Functione2a6e
- pop af
- ld [wcfa9], a
- ret
-
-.cancel: ; e272b (38:672b)
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e2731 (38:6731)
-
-.MenuDataHeader: ; 0xe2731
- db $40 ; flags
- db 04, 09 ; start coords
- db 13, 19 ; end coords
- dw .MenuData
- db 1 ; default option
-; 0xe2739
-
-.MenuData: ; 0xe2739
- db $80 ; flags
- db 4 ; items
- db "WITHDRAW@"
- db "STATS@"
- db "RELEASE@"
- db "CANCEL@"
-; 0xe2759
-
-Functione2759: ; e2759
- 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 [$ffde], a
- call Functione2963
- ld a, [wCurBox]
- and $f
- inc a
- ld [wcb2e], a
- call DelayFrame
-.asm_e2781
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_e2793
- call Functione27a2
- call DelayFrame
- jr .asm_e2781
-
-.asm_e2793
- call ClearSprites
- pop af
- ld [hInMenu], a
- pop af
- ld [VramState], a
- pop af
- ld [Options], a
- ret
-; e27a2
-
-Functione27a2: ; e27a2
- ld a, [wJumptableIndex]
- ld hl, Jumptable_e27ac
- call Functione33df
- jp [hl]
-; e27ac
-
-Jumptable_e27ac: ; e27ac
- dw Functione27ba
- dw Functione27eb
- dw Functione283d
- dw Functione285d
- dw Functione28df
- dw Functione2903
- dw Functione2992
-; e27ba
-
-Functione27ba: ; e27ba
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2d30
- ld de, PCString_ChooseaPKMN
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call Functione2a80
- call PCMonInfo
- ld a, $ff
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- call WaitBGMap
- call Functione2e01
- call Functione298d
- ret
-; e27eb
-
-Functione27eb: ; e27eb
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e2837
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e2823
- call Functione29d0
- jr c, .asm_e2816
- and a
- ret z
- call Functione2e01
- xor a
- ld [hBGMapMode], a
- call Functione2c2c
- call PCMonInfo
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ret
-
-.asm_e2816
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-.asm_e2823
- call Functione2def
- and a
- ret z
- cp $ff
- jr z, .asm_e2837
- ld a, $2
- ld [wJumptableIndex], a
- ret
-
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e2837
- ld a, $6
- ld [wJumptableIndex], a
- ret
-; e283d
-
-Functione283d: ; e283d
- xor a
- ld [hBGMapMode], a
- call ClearSprites
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ld de, PCString_WhatsUp
- call Functione2a6e
- ld a, $1
- ld [wcfa9], a
- call Functione298d
- ret
-; e285d
-
-Functione285d: ; e285d
- ld hl, MenuDataHeader_0xe28c3
- call CopyMenuDataHeader
- ld a, [wcfa9]
- call Function1d4b
- call InterpretMenu2
- jp c, Functione28bd
- ld a, [wcfa9]
- dec a
- and 3
- ld e, a
- ld d, 0
- ld hl, Jumptable_e2881
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; e2881
-
-Jumptable_e2881: ; e2881
- dw Functione2887
- dw Functione28a5
- dw Functione28bd
-; e2887
-
-Functione2887: ; e2887
- call Functione2f18
- jp c, Functione28bd
- ld a, [wcb2a]
- ld [wcb2f], a
- ld a, [wcb2b]
- ld [wcb30], a
- ld a, [wcb2e]
- ld [wcb31], a
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; e28a5
-
-Functione28a5: ; e28a5
- call LoadMenuDataHeader_0x1d75
- call Functione2f7e
- call ExitMenu
- call PCMonInfo
- call Functione2def
- ld [CurPartySpecies], a
- ld a, $17
- call Functione33d0
- ret
-; e28bd
-
-Functione28bd: ; e28bd
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e28c3
-
-MenuDataHeader_0xe28c3: ; 0xe28c3
- db $40 ; flags
- db 04, 09 ; start coords
- db 13, 19 ; end coords
- dw MenuData2_0xe28cb
- db 1 ; default option
-; 0xe28cb
-
-MenuData2_0xe28cb: ; 0xe28cb
- db $80 ; flags
- db 3 ; items
- db "MOVE@"
- db "STATS@"
- db "CANCEL@"
-; 0xe28df
-
-Functione28df: ; e28df
- xor a
- ld [hBGMapMode], a
- call Functione2d30
- ld de, PCString_MoveToWhere
- call Functione2a6e
- ld a, $5
- ld [wcb2d], a
- call Functione2c2c
- call Functione2a80
- call ClearSprites
- call Functione2e8c
- call WaitBGMap
- call Functione298d
- ret
-; e2903
-
-Functione2903: ; e2903
- ld hl, hJoyPressed
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_e294b
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_e2938
- call Functione29f4
- jr c, .asm_e292b
- and a
- ret z
- call Functione2e8c
- xor a
- ld [hBGMapMode], a
- call Functione2c2c
- ld a, $1
- ld [hBGMapMode], a
- call DelayFrame
- call DelayFrame
- ret
-
-.asm_e292b
- xor a
- ld [wcb2b], a
- ld [wcb2a], a
- ld a, $4
- ld [wJumptableIndex], a
- ret
-
-.asm_e2938
- call Functione2ee5
- jr c, .asm_e2946
- call Functione31e7
- ld a, $0
- ld [wJumptableIndex], a
- ret
-
-.asm_e2946
- ld hl, wJumptableIndex
- dec [hl]
- ret
-
-.asm_e294b
- ld a, [wcb2f]
- ld [wcb2a], a
- ld a, [wcb30]
- ld [wcb2b], a
- ld a, [wcb31]
- ld [wcb2e], a
- ld a, $0
- ld [wJumptableIndex], a
- ret
-; e2963
-
-Functione2963: ; e2963 (38:6963)
- call WhiteBGMap
- call ClearSprites
- call ClearTileMap
- call Functione33e8
- ld hl, OverworldMap
- ld bc, $338
- xor a
- call ByteFill
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcb2b], a
- ld [wcb2a], a
- ret
-
-Functione298d: ; e298d (38:698d)
- ld hl, wJumptableIndex
- inc [hl]
- ret
-
-Functione2992: ; e2992 (38:6992)
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Functione2998: ; e2998 (38:6998)
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- and a
- jr z, .asm_e29b2
- dec a
- cp $1
- jr z, .asm_e29b2
- ld e, a
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-.asm_e29b2
- jp Functione2a65
-
-Functione29b5: ; e29b5 (38:69b5)
- ld hl, hJoyLast
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- ld e, a
- and a
- jr z, .asm_e29cd
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-.asm_e29cd
- jp Functione2a65
-; e29d0 (38:69d0)
-
-Functione29d0: ; e29d0
- ld hl, hJoyLast
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- ld e, a
- and a
- jr z, .asm_e29e8
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-
-.asm_e29e8
- ld a, [hl]
- and D_LEFT
- jr nz, Functione2a48
- ld a, [hl]
- and D_RIGHT
- jr nz, Functione2a56
- jr Functione2a65
-
-Functione29f4: ; e29f4
- ld hl, hJoyLast
- ld a, [wcb2d]
- ld d, a
- ld a, [wcb2c]
- ld e, a
- and a
- jr z, .asm_e2a0c
-
- ld a, [hl]
- and D_UP
- jr nz, Functione2a18
- ld a, [hl]
- and D_DOWN
- jr nz, Functione2a2c
-
-.asm_e2a0c
- ld a, [hl]
- and D_LEFT
- jr nz, Functione2a48
- ld a, [hl]
- and D_RIGHT
- jr nz, Functione2a56
- jr Functione2a65
-
-Functione2a18: ; e2a18 (38:6a18)
- ld hl, wcb2b
- ld a, [hl]
- and a
- jr z, .asm_e2a22
- dec [hl]
- jr Functione2a68
-
-.asm_e2a22
- ld hl, wcb2a
- ld a, [hl]
- and a
- jr z, Functione2a65
- dec [hl]
- jr Functione2a68
-
-Functione2a2c: ; e2a2c (38:6a2c)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- inc a
- cp e
- jr nc, Functione2a65
-
- ld hl, wcb2b
- ld a, [hl]
- inc a
- cp d
- jr nc, .asm_e2a42
- inc [hl]
- jr Functione2a68
-
-.asm_e2a42
- ld hl, wcb2a
- inc [hl]
- jr Functione2a68
-; e2a48 (38:6a48)
-
-Functione2a48: ; e2a48
- ld hl, wcb2e
- ld a, [hl]
- and a
- jr z, .asm_e2a52
- dec [hl]
- jr Functione2a6c
-
-.asm_e2a52
- ld [hl], $e
- jr Functione2a6c
-
-Functione2a56: ; e2a56
- ld hl, wcb2e
- ld a, [hl]
- cp $e
- jr z, .asm_e2a61
- inc [hl]
- jr Functione2a6c
-
-.asm_e2a61
- ld [hl], $0
- jr Functione2a6c
-
-Functione2a65: ; e2a65 (38:6a65)
- xor a
- and a
- ret
-
-Functione2a68: ; e2a68 (38:6a68)
- ld a, $1
- and a
- ret
-; e2a6c (38:6a6c)
-
-Functione2a6c: ; e2a6c
- scf
- ret
-; e2a6e
-
-Functione2a6e: ; e2a6e (38:6a6e)
- push de
- hlcoord 0, 15
- ld bc, $112
- call TextBox
- pop de
- hlcoord 1, 16
- call PlaceString
- ret
-; e2a80 (38:6a80)
-
-Functione2a80: ; e2a80
- call Functione2a8e
- hlcoord 8, 1
- ld [hl], $5f
- hlcoord 19, 1
- ld [hl], $5e
- ret
-; e2a8e
-
-Functione2a8e: ; e2a8e (38:6a8e)
- hlcoord 8, 0
- lb bc, 1, 10
- call TextBox
-
- ld a, [wcb2e]
- and a
- jr z, .party
-
- cp NUM_BOXES + 1
- jr nz, .gotbox
-
- ld a, [wCurBox]
- inc a
-.gotbox
- dec a
- ld hl, wBoxNames
- ld bc, 9
- call AddNTimes
- ld e, l
- ld d, h
- jr .print
-
-.party
- ld de, String_e2abd
-.print
- hlcoord 10, 1
- call PlaceString
- ret
-; e2abd (38:6abd)
-
-String_e2abd:
- db "PARTY <PK><MN>@"
-; e2ac6
-
-PCMonInfo: ; e2ac6 (38:6ac6)
-; Display a monster's pic and
-; attributes when highlighting
-; it in a PC menu.
-
-; Includes the neat cascading
-; effect when showing the pic.
-
-; Example: Species, level, gender,
-; whether it's holding an item.
-
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
-
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
-
- call Functione2def
- and a
- ret z
- cp $ff
- ret z
-
- ld [wd265], a
- hlcoord 1, 4
- xor a
- ld b, 7
-.asm_e2ae9
- ld c, 7
- push af
- push hl
-.asm_e2aed
- ld [hli], a
- add 7
- dec c
- jr nz, .asm_e2aed
- pop hl
- ld de, 20
- add hl, de
- pop af
- inc a
- dec b
- jr nz, .asm_e2ae9
-
- call Functione2b6d
- ld a, [wd265]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- call GetBaseData
- ld de, VTiles2 tile $00
- predef GetFrontpic
- xor a
- ld [wcb32], a
- ld a, [CurPartySpecies]
- ld [wd265], a
-
- cp EGG
- ret z
-
- call GetBasePokemonName
- hlcoord 1, 14
- call PlaceString
-
- hlcoord 1, 12
- call PrintLevel
-
- ld a, $3
- ld [MonType], a
- callba GetGender
- jr c, .asm_e2b4f
- ld a, "♂"
- jr nz, .printgender
- ld a, "♀"
-.printgender
- hlcoord 5, 12
- ld [hl], a
-.asm_e2b4f
-
- ld a, [TempMonItem]
- and a
- ret z
-
- ld d, a
- callab ItemIsMail
- jr c, .mail
- ld a, $5d ; item icon
- jr .printitem
-.mail
- ld a, $1
- ld [wcb32], a
- ld a, $5c ; mail icon
-.printitem
- hlcoord 7, 12
- ld [hl], a
- ret
-
-Functione2b6d: ; e2b6d (38:6b6d)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld e, a
- ld d, $0
- ld hl, wc801
-rept 3
- add hl, de
-endr
- ld a, [hl]
- and a
- jr z, .asm_e2bc6
- cp $f
- jr z, .asm_e2bf5
- ld b, a
- call Functione3396
- ld a, b
- call GetSRAMBank
- push hl
- ld bc, $35
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonLevel], a
- pop hl
- push hl
- ld bc, $17
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonItem], a
- pop hl
- ld bc, $2b
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- call CloseSRAM
- ret
-.asm_e2bc6
- ld hl, PartyMon1Level
- ld bc, $30
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonLevel], a
- ld hl, PartyMon1Item
- ld bc, $30
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonItem], a
- ld hl, PartyMon1DVs
- ld bc, $30
- ld a, e
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- ret
-
-.asm_e2bf5
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxMon1Level
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonLevel], a
-
- ld hl, sBoxMon1Item
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- ld [TempMonItem], a
-
- ld hl, sBoxMon1DVs
- ld bc, $20
- ld a, e
- call AddNTimes
- ld de, TempMonDVs
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
-
- call CloseSRAM
- ret
-
-Functione2c2c: ; e2c2c (38:6c2c)
- hlcoord 8, 2
- lb bc, 10, 10
- call TextBox
-
- hlcoord 8, 2
- ld [hl], "└"
- hlcoord 19, 2
- ld [hl], "┘"
-
- ld a, [wcb2a]
- ld e, a
- ld d, 0
- ld hl, OverworldMap
-rept 3
- add hl, de
-endr
- ld e, l
- ld d, h
- hlcoord 9, 4
- ld a, [wcb2d]
-.asm_e2c53
- push af
- push de
- push hl
- call Functione2c6e
- pop hl
- ld de, $28
- add hl, de
- pop de
-rept 3
- inc de
-endr
- pop af
- dec a
- jr nz, .asm_e2c53
- ret
-; e2c67 (38:6c67)
-
-String_e2c67:
- db "CANCEL@"
-; e2c6e
-
-Functione2c6e: ; e2c6e (38:6c6e)
- ld a, [de]
- and a
- ret z
- cp $ff
- jr nz, .asm_e2c7c
- ld de, String_e2c67
- call PlaceString
- ret
-.asm_e2c7c
- inc de
- ld a, [de]
- ld b, a
- inc de
- ld a, [de]
- ld e, a
- ld a, b
- and a
- jr z, .asm_e2cc8
- cp $f
- jr z, .asm_e2cf1
- push hl
- call Functione3396
- ld a, b
- call GetSRAMBank
- push hl
- ld bc, $16
- add hl, bc
- ld bc, $20
- ld a, e
- call AddNTimes
- ld a, [hl]
- pop hl
- and a
- jr z, .asm_e2cc2
- ld bc, $372
- add hl, bc
- ld bc, $b
- ld a, e
- call AddNTimes
- ld de, StringBuffer1
- ld bc, $b
- call CopyBytes
- call CloseSRAM
- pop hl
- ld de, StringBuffer1
- call PlaceString
- ret
-.asm_e2cc2
- call CloseSRAM
- pop hl
- jr .asm_e2d23
-.asm_e2cc8
- push hl
- ld hl, PartySpecies
- ld d, $0
- add hl, de
- ld a, [hl]
- and a
- jr z, .asm_e2cee
- ld hl, PartyMonNicknames
- ld bc, $b
- ld a, e
- call AddNTimes
- ld de, StringBuffer1
- ld bc, $b
- call CopyBytes
- pop hl
- ld de, StringBuffer1
- call PlaceString
- ret
-.asm_e2cee
- pop hl
- jr .asm_e2d23
-.asm_e2cf1
- push hl
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxSpecies
- ld d, $0
- add hl, de
- ld a, [hl]
- and a
- jr z, .asm_e2d1f
- ld hl, sBoxMonNicknames
- ld bc, PKMN_NAME_LENGTH
- ld a, e
- call AddNTimes
- ld de, StringBuffer1
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
- call CloseSRAM
- pop hl
- ld de, StringBuffer1
- call PlaceString
- ret
-.asm_e2d1f
- call CloseSRAM
- pop hl
-.asm_e2d23
- ld de, String_e2d2a
- call PlaceString
- ret
-; e2d2a (38:6d2a)
-
-String_e2d2a:
- db "-----@"
-; e2d30
-
-Functione2d30: ; e2d30 (38:6d30)
- xor a
- ld hl, OverworldMap
- ld bc, $5a
- call ByteFill
- ld de, OverworldMap
- xor a
- ld [wd003], a
- ld [wd004], a
- ld a, [wcb2e]
- and a
- jr z, .asm_e2d87
- cp $f
- jr z, .asm_e2db7
- ld b, a
- call Functione3396
- ld a, b
- call GetSRAMBank
- inc hl
-.asm_e2d57
- ld a, [hl]
- cp $ff
- jr z, .asm_e2d79
- and a
- jr z, .asm_e2d79
- ld [de], a
- inc de
- ld a, [wcb2e]
- ld [de], a
- inc de
- ld a, [wd003]
- ld [de], a
- inc a
- ld [wd003], a
- inc de
- inc hl
- ld a, [wd004]
- inc a
- ld [wd004], a
- jr .asm_e2d57
-.asm_e2d79
- call CloseSRAM
- ld a, $ff
- ld [de], a
- ld a, [wd004]
- inc a
- ld [wcb2c], a
- ret
-.asm_e2d87
- ld hl, PartySpecies
-.asm_e2d8a
- ld a, [hl]
- cp $ff
- jr z, .asm_e2dac
- and a
- jr z, .asm_e2dac
- ld [de], a
- inc de
- ld a, [wcb2e]
- ld [de], a
- inc de
- ld a, [wd003]
- ld [de], a
- inc a
- ld [wd003], a
- inc de
- inc hl
- ld a, [wd004]
- inc a
- ld [wd004], a
- jr .asm_e2d8a
-.asm_e2dac
- ld a, $ff
- ld [de], a
- ld a, [wd004]
- inc a
- ld [wcb2c], a
- ret
-.asm_e2db7
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxSpecies
-.asm_e2dbf
- ld a, [hl]
- cp $ff
- jr z, .asm_e2de1
- and a
- jr z, .asm_e2de1
- ld [de], a
- inc de
- ld a, [wcb2e]
- ld [de], a
- inc de
- ld a, [wd003]
- ld [de], a
- inc a
- ld [wd003], a
- inc de
- inc hl
- ld a, [wd004]
- inc a
- ld [wd004], a
- jr .asm_e2dbf
-.asm_e2de1
- call CloseSRAM
- ld a, $ff
- ld [de], a
- ld a, [wd004]
- inc a
- ld [wcb2c], a
- ret
-
-Functione2def: ; e2def (38:6def)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld e, a
- ld d, $0
- ld hl, OverworldMap
-rept 3
- add hl, de
-endr
- ld a, [hl]
- ret
-
-Functione2e01: ; e2e01 (38:6e01)
- ld a, [wcb2c]
- and a
- jr nz, .asm_e2e0b
- call ClearSprites
- ret
-.asm_e2e0b
- ld hl, Unknown_e2e2b
- ld de, Sprites
-.done1
- ld a, [hl]
- cp $ff
- ret z
- ld a, [wcb2b]
- and $7
- swap a
- 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
- ld a, [hli]
- ld [de], a
- inc de
- jr .done1
-; e2e2b (38:6e2b)
-
-Unknown_e2e2b: ; e2e2b
- db $26, $50, $00, $00
- db $26, $58, $00, $00
- db $26, $60, $00, $00
- db $26, $68, $00, $00
- db $26, $70, $00, $00
- db $26, $78, $00, $00
- db $26, $80, $00, $00
- db $26, $88, $00, $00
- db $26, $90, $00, $00
- db $26, $97, $00, $00
- db $39, $50, $00, $40
- db $39, $58, $00, $40
- db $39, $60, $00, $40
- db $39, $68, $00, $40
- db $39, $70, $00, $40
- db $39, $78, $00, $40
- db $39, $80, $00, $40
- db $39, $88, $00, $40
- db $39, $90, $00, $40
- db $39, $97, $00, $40
- db $2e, $4e, $01, $00
- db $31, $4e, $01, $40
- db $2e, $99, $01, $20
- db $31, $99, $01, $60
- db $ff
-; e2e8c
-
-Functione2e8c: ; e2e8c
- ld hl, Unknown_e2eac
- ld de, Sprites
-.asm_e2e92
- ld a, [hl]
- cp $ff
- ret z
- ld a, [wcb2b]
- and $7
- swap a
- 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
- ld a, [hli]
- ld [de], a
- inc de
- jr .asm_e2e92
-; e2eac
-
-Unknown_e2eac: ; e2eac
- db $27, $50, $06, $00
- db $2b, $58, $00, $40
- db $2b, $60, $00, $40
- db $2b, $68, $00, $40
- db $2b, $70, $00, $40
- db $2b, $78, $00, $40
- db $2b, $80, $00, $40
- db $2b, $88, $00, $40
- db $2b, $90, $00, $40
- db $27, $98, $07, $00
- db $ff
-; e2ed5
-
-Functione2ed5: ; e2ed5
-.asm_e2ed5
- push bc
- push hl
-.asm_e2ed7
- ld [hli], a
- dec c
- jr nz, .asm_e2ed7
- pop hl
- ld bc, SCREEN_WIDTH
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_e2ed5
- ret
-; e2ee5
-
-Functione2ee5: ; e2ee5
- ld hl, wcb2e
- ld a, [wcb31]
- cp [hl]
- jr z, .asm_e2f00
- ld a, [wcb2e]
- and a
- jr z, .asm_e2ef8
- ld e, $15
- jr .asm_e2efa
-
-.asm_e2ef8
- ld e, $7
-
-.asm_e2efa
- ld a, [wcb2c]
- cp e
- jr nc, .asm_e2f02
-
-.asm_e2f00
- and a
- ret
-
-.asm_e2f02
- ld de, PCString_TheresNoRoom
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-; e2f18
-
-Functione2f18: ; e2f18 (38:6f18)
- ld a, [wcb2e]
- and a
- jr nz, .Okay
- ld a, [wcb2c]
- cp $3
- jr c, .ItsYourLastPokemon
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- callba CheckCurPartyMonFainted
- jr c, .AllOthersFainted
- ld a, [wcb32]
- and a
- jr nz, .HasMail
-.Okay
- and a
- ret
-.HasMail
- ld de, PCString_RemoveMail
- jr .NotOkay
-.AllOthersFainted
- ld de, PCString_NoMoreUsablePKMN
- jr .NotOkay
-.ItsYourLastPokemon
- ld de, PCString_ItsYourLastPKMN
-.NotOkay
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-Functione2f5f: ; e2f5f (38:6f5f)
- ld a, [CurPartySpecies]
- cp EGG
- jr z, .asm_e2f68
- and a
- ret
-.asm_e2f68
- ld de, PCString_NoReleasingEGGS
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-Functione2f7e: ; e2f7e (38:6f7e)
- call LowVolume
- call Functione2fd6
- ld a, $3
- ld [MonType], a
- predef StatsScreenInit
- call Functione33e8
- call MaxVolume
- ret
-
-Functione2f95: ; e2f95 (38:6f95)
- ld hl, hJoyPressed ; $ffa7
- ld a, [hl]
- and A_BUTTON | B_BUTTON | D_RIGHT + D_LEFT
- ld [wcf73], a
- jr nz, .asm_e2fd0
- ld a, [hl]
- and D_DOWN | D_UP
- ld [wcf73], a
- jr nz, .asm_e2faa
- jr .asm_e2fd0
-.asm_e2faa
- call Functione2998
- and a
- jr z, .asm_e2fd1
- call Functione2def
- ld [wd265], a
- call Functione2b6d
- ld a, [wd265]
- ld [CurPartySpecies], a
- ld [CurSpecies], a
- ld hl, TempMonDVs
- predef GetUnownLetter
- call GetBaseData
- call Functione2fd6
-.asm_e2fd0
- ret
-.asm_e2fd1
- xor a
- ld [wcf73], a
- ret
-
-Functione2fd6: ; e2fd6 (38:6fd6)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld a, [wcb2e]
- and a
- jr z, .asm_e3020
- cp $f
- jr nz, .asm_e3048
- ld a, BANK(sBox)
- call GetSRAMBank
- ld hl, sBoxSpecies
- call Functione3357
- ld hl, sBoxMonNicknames
- call Functione3363
- ld hl, sBoxMonOT
- call Functione3376
- ld hl, sBoxMons
- ld bc, sBoxMon2 - sBoxMon1
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd018
- ld bc, $30
- call CopyBytes
- call CloseSRAM
- callba Function5088b
- ret
-.asm_e3020
- ld hl, PartySpecies
- call Functione3357
- ld hl, PartyMonNicknames
- call Functione3363
- ld hl, PartyMonOT
- call Functione3376
- ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species)
- ld bc, $30
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd018
- ld bc, $30
- call CopyBytes
- ret
-.asm_e3048
- ld b, a
- call Functione3396
- ld a, b
- call GetSRAMBank
- push hl
- inc hl
- call Functione3357
- pop hl
- push hl
- ld bc, $372
- add hl, bc
- call Functione3363
- pop hl
- push hl
- ld bc, $296
- add hl, bc
- call Functione3376
- pop hl
- ld bc, $16
- add hl, bc
- ld bc, $20
- call Functione3389
- call CloseSRAM
- callba Function5088b
- ret
-
-Functione307c: ; e307c (38:707c)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld hl, PartyMonNicknames
- ld a, [CurPartyMon]
- call GetNick
- ld a, $1
- ld [wd10b], a
- predef SentGetPkmnIntoFromBox
- jr c, .asm_boxisfull
- xor a
- ld [wd10b], a
- callba Functione039
- ld a, [CurPartySpecies]
- call PlayCry
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
- hlcoord 0, 15
- ld bc, $112
- call TextBox
- call WaitBGMap
- hlcoord 1, 16
- ld de, PCString_Stored
- call PlaceString
- ld l, c
- ld h, b
- ld de, StringBuffer1
- call PlaceString
- ld a, "!"
- ld [bc], a
- ld c, 50
- call DelayFrames
- and a
- ret
-
-.asm_boxisfull
- ld de, PCString_BoxFull
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-TryWithdrawPokemon: ; e30fa (38:70fa)
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- ld a, BANK(sBoxMonNicknames)
- call GetSRAMBank
- ld a, [CurPartyMon]
- ld hl, sBoxMonNicknames
- call GetNick
- call CloseSRAM
- xor a
- ld [wd10b], a
- predef SentGetPkmnIntoFromBox
- jr c, .PartyFull
- ld a, $1
- ld [wd10b], a
- callba Functione039
- ld a, [CurPartySpecies]
- call PlayCry
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
- hlcoord 0, 15
- ld bc, $112
- call TextBox
- call WaitBGMap
- hlcoord 1, 16
- ld de, PCString_Got
- call PlaceString
- ld l, c
- ld h, b
- ld de, StringBuffer1
- call PlaceString
- ld a, $e7
- ld [bc], a
- ld c, 50
- call DelayFrames
- and a
- ret
-
-.PartyFull
- ld de, PCString_PartyFull
- call Functione2a6e
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- scf
- ret
-
-
-Functione3180: ; e3180 (38:7180)
- hlcoord 0, 0
- lb bc, 15, 8
- call ClearBox
- hlcoord 8, 14
- lb bc, 1, 3
- call ClearBox
- hlcoord 0, 15
- ld bc, $112
- call TextBox
-
- call WaitBGMap
- ld a, [CurPartySpecies]
- call GetCryIndex
- jr c, .asm_e31ab
- ld e, c
- ld d, b
- call PlayCryHeader
-.asm_e31ab
-
- ld a, [CurPartySpecies]
- ld [wd265], a
- call GetPokemonName
- hlcoord 1, 16
- ld de, PCString_ReleasedPKMN
- call PlaceString
- ld c, 80
- call DelayFrames
- hlcoord 0, 15
- ld bc, $112
- call TextBox
- hlcoord 1, 16
- ld de, PCString_Bye
- call PlaceString
- ld l, c
- ld h, b
- inc hl
- ld de, StringBuffer1
- call PlaceString
- ld l, c
- ld h, b
- ld [hl], $e7
- ld c, 50
- call DelayFrames
- ret
-; e31e7 (38:71e7)
-
-Functione31e7: ; e31e7
- push hl
- push de
- push bc
- push af
- hlcoord 0, 15
- ld bc, $0112
- call TextBox
- hlcoord 1, 16
- ld de, String_e3233
- call PlaceString
- ld c, 20
- call DelayFrames
- pop af
- pop bc
- pop de
- pop hl
- ld a, [wCurBox]
- push af
- ld bc, 0
- ld a, [wcb31]
- and a
- jr nz, .asm_e3215
- set 0, c
-
-.asm_e3215
- ld a, [wcb2e]
- and a
- jr nz, .asm_e321d
- set 1, c
-
-.asm_e321d
- ld hl, Jumptable_e3245
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld de, Functione322a
- push de
- jp [hl]
-; e322a
-
-Functione322a: ; e322a
- pop af
- ld e, a
- callba Function14ad5
- ret
-; e3233
-
-String_e3233:
- db "Saving… Leave ON!@"
-; e3245
-
-Jumptable_e3245: ; e3245
- dw Functione324d
- dw Functione3267
- dw Functione327d
- dw Functione3284
-; e324d
-
-Functione324d: ; e324d
- ld hl, wcb31
- ld a, [wcb2e]
- cp [hl]
- jr z, .asm_e325d
- call Functione32b0
- call Functione32fa
- ret
-
-.asm_e325d
- call Functione32b0
- call Functione328e
- call Functione32fa
- ret
-; e3267
-
-Functione3267: ; e3267
- call Functione3316
- ld a, $1
- ld [wc2cd], a
- callba SaveGameData
- xor a
- ld [wc2cd], a
- call Functione32fa
- ret
-; e327d
-
-Functione327d: ; e327d
- call Functione32b0
- call Functione3346
- ret
-; e3284
-
-Functione3284: ; e3284
- call Functione3316
- call Functione328e
- call Functione3346
- ret
-; e328e
-
-Functione328e: ; e328e
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld e, a
- ld a, [wcb30]
- ld hl, wcb2f
- add [hl]
- cp e
- ret nc
- ld hl, wcb2b
- ld a, [hl]
- and a
- jr z, .asm_e32a8
- dec [hl]
- ret
-
-.asm_e32a8
- ld hl, wcb2a
- ld a, [hl]
- and a
- ret z
- dec [hl]
- ret
-; e32b0
-
-Functione32b0: ; e32b0
- ld a, [wcb31]
- dec a
- ld e, a
- callba Function14ac2
- ld a, [wcb30]
- ld hl, wcb2f
- add [hl]
- ld [CurPartyMon], a
- ld a, $1
- call GetSRAMBank
- ld hl, sBoxSpecies
- call Functione3357
- ld hl, sBoxMonNicknames
- call Functione3363
- ld hl, sBoxMonOT
- call Functione3376
- ld hl, sBoxMons
- ld bc, sBoxMon1End - sBoxMon1
- call Functione3389
- call CloseSRAM
- callba Function5088b
- ld a, $1
- ld [wd10b], a
- callba Functione039
- ret
-; e32fa
-
-Functione32fa: ; e32fa
- ld a, [wcb2e]
- dec a
- ld e, a
- callba Function14ac2
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- callba Function51322
- ret
-; e3316
-
-Functione3316: ; e3316
- ld a, [wcb30]
- ld hl, wcb2f
- add [hl]
- ld [CurPartyMon], a
- ld hl, PartySpecies
- call Functione3357
- ld hl, PartyMonNicknames
- call Functione3363
- ld hl, PartyMonOT
- call Functione3376
- ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
- call Functione3389
- xor a
- ld [wd10b], a
- callba Functione039
- ret
-; e3346
-
-Functione3346: ; e3346
- ld a, [wcb2b]
- ld hl, wcb2a
- add [hl]
- ld [CurPartyMon], a
- callba Function5138b
- ret
-; e3357
-
-Functione3357: ; e3357 (38:7357)
- ld a, [CurPartyMon]
- ld c, a
- ld b, $0
- add hl, bc
- ld a, [hl]
- ld [CurPartySpecies], a
- ret
-
-Functione3363: ; e3363 (38:7363)
- ld bc, $b
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, DefaultFlypoint
- ld bc, $b
- call CopyBytes
- ret
-
-Functione3376: ; e3376 (38:7376)
- ld bc, $b
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd00d
- ld bc, $b
- call CopyBytes
- ret
-
-Functione3389: ; e3389 (38:7389)
- ld a, [CurPartyMon]
- call AddNTimes
- ld de, wd018
- call CopyBytes
- ret
-
-Functione3396: ; e3396 (38:7396)
- dec b
- ld c, b
- ld b, 0
- ld hl, Unknown_e33a6
-rept 3
- add hl, bc
-endr
- ld a, [hli]
- ld b, a
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-; e33a6 (38:73a6)
-
-Unknown_e33a6: ; e33a6
- ; bank, address
- dbw BANK(sBox1), sBox1
- dbw BANK(sBox2), sBox2
- dbw BANK(sBox3), sBox3
- dbw BANK(sBox4), sBox4
- dbw BANK(sBox5), sBox5
- dbw BANK(sBox6), sBox6
- dbw BANK(sBox7), sBox7
- dbw BANK(sBox8), sBox8
- dbw BANK(sBox9), sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-; e33d0
-
-Functione33d0: ; e33d0 (38:73d0)
- ld b, a
- call GetSGBLayout
- ld a, $e4
- call DmgToCgbBGPals
- ld a, $fc
- call Functioncf8
- ret
-
-Functione33df: ; e33df (38:73df)
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ret
-
-Functione33e8: ; e33e8 (38:73e8)
- call DisableLCD
- ld hl, VTiles2 tile $00
- ld bc, $310
- xor a
- call ByteFill
- call Functione51
- call LoadFontsBattleExtra
- ld hl, PCMailGFX
- ld de, VTiles2 tile $5c
- ld bc, $40
- call CopyBytes
- ld hl, PCSelectLZ
- ld de, VTiles0 tile $00
- call Decompress
- ld a, 6
- call SkipMusic
- call EnableLCD
- ret
-; e3419 (38:7419)
-
-PCSelectLZ: INCBIN "gfx/pc.2bpp.lz"
-PCMailGFX: INCBIN "gfx/pc_mail.2bpp"
-; e34dd
-
-PCString_ChooseaPKMN: db "Choose a <PK><MN>.@"
-PCString_WhatsUp: db "What's up?@"
-PCString_ReleasePKMN: db "Release <PK><MN>?@"
-PCString_MoveToWhere: db "Move to where?@"
-PCString_ItsYourLastPKMN: db "It's your last <PK><MN>!@"
-PCString_TheresNoRoom: db "There's no room!@"
-PCString_NoMoreUsablePKMN: db "No more usable <PK><MN>!@"
-PCString_RemoveMail: db "Remove MAIL.@"
-PCString_ReleasedPKMN: db "Released <PK><MN>.@"
-PCString_Bye: db "Bye,@"
-PCString_Stored: db "Stored @"
-PCString_Got: db "Got @"
-PCString_Non: db "Non.@"
-PCString_BoxFull: db "The BOX is full.@"
-PCString_PartyFull: db "The party's full!@"
-PCString_NoReleasingEGGS: db "No releasing EGGS!@"
-; e35aa
-
-Functione35aa: ; e35aa (38:75aa)
- call LoadMenuDataHeader_0x1d75
- call Functione35e2
-.loop
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- call Functione36cf
- call Functione379c
- ld hl, Functione35aa_menudataheader
- call CopyMenuDataHeader
- xor a
- ld [wd0e4], a
- hlcoord 0, 4
- lb bc, 8, 9
- call TextBox
- call Function350c
- ld a, [wcf73]
- cp $2
- jr z, .done
- call Functione37af
- call Functione36f9
- jr .loop
-.done
- call WriteBackup
- ret
-
-Functione35e2: ; e35e2 (38:75e2)
- xor a
- ld [hBGMapMode], a ; $ff00+$d4
- hlcoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- ld a, " "
- call ByteFill
- ret
-; e35f1 (38:75f1)
-
-Functione35aa_menudataheader: ; 0xe35f1
- db $40 ; flags
- db 05, 01 ; start coords
- db 12, 09 ; end coords
- dw .menudata2
- db 1 ; default option
-; 0xe35f9
-
-.menudata2: ; 0xe35f9
- db $22 ; flags
- db 4, 0
- db 1
- dba .boxes
- dba .boxnames
- dba NULL
- dba Functione3632
-; e3609
-
-.boxes: ; e3609
- db 14
- db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
- db -1
-; e3619
-
-.boxnames: ; e3619
- push de
- ld a, [MenuSelection]
- dec a
- call Functione3626
- pop hl
- call PlaceString
- ret
-; e3626
-
-Functione3626: ; e3626 (38:7626)
- ld bc, 9
- ld hl, wBoxNames
- call AddNTimes
- ld d, h
- ld e, l
- ret
-; e3632 (38:7632)
-
-Functione3632: ; e3632
- hlcoord 11, 7
- lb bc, 5, 7
- call TextBox
- ld a, [MenuSelection]
- cp -1
- ret z
- hlcoord 12, 9
- ld de, String_e3663
- call PlaceString
- call GetBoxCount
- ld [wd265], a
- hlcoord 13, 11
- ld de, wd265
- lb bc, 1, 2
- call PrintNum
- ld de, String_e3668
- call PlaceString
- ret
-; e3663
-
-String_e3663: ; e3663
- db "#MON@"
-; e3668
-
-String_e3668: ; e3668
- db "/"
- db "0" + MONS_PER_BOX / 10 ; "2"
- db "0" + MONS_PER_BOX % 10 ; "0"
- db "@"
-; e366c
-
-GetBoxCount: ; e366c (38:766c)
- ld a, [wCurBox]
- ld c, a
- ld a, [MenuSelection]
- dec a
- cp c
- jr z, .activebox
- ld c, a
- ld b, 0
- ld hl, .boxbanks
-rept 3
- add hl, bc
-endr
- ld a, [hli]
- ld b, a
- call GetSRAMBank
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- call CloseSRAM
- ld c, a
- ld a, [wSavedAtLeastOnce]
- and a
- jr z, .newfile
- ld a, c
- ret
-
-.newfile
- xor a
- ret
-
-.activebox
- ld a, BANK(sBoxCount)
- ld b, a
- call GetSRAMBank
- ld hl, sBoxCount
- ld a, [hl]
- call CloseSRAM
- ret
-; e36a5 (38:76a5)
-
-.boxbanks: ; e36a5
- dbw BANK(sBox1), sBox1
- dbw BANK(sBox2), sBox2
- dbw BANK(sBox3), sBox3
- dbw BANK(sBox4), sBox4
- dbw BANK(sBox5), sBox5
- dbw BANK(sBox6), sBox6
- dbw BANK(sBox7), sBox7
- dbw BANK(sBox8), sBox8
- dbw BANK(sBox9), sBox9
- dba sBox10
- dba sBox11
- dba sBox12
- dba sBox13
- dba sBox14
-; e36cf
-
-Functione36cf: ; e36cf (38:76cf)
- hlcoord 0, 0
- ld b, $2
- ld c, $12
- call TextBox
- hlcoord 1, 2
- ld de, String_e36f1
- call PlaceString
- ld a, [wCurBox]
- and $f
- call Functione3626
- hlcoord 11, 2
- call PlaceString
- ret
-; e36f1 (38:76f1)
-
-String_e36f1: ; e36f1
- db "CURRENT@"
-; e36f9
-
-Functione36f9: ; e36f9 (38:76f9)
- ld hl, MenuDataHeader_0xe377b
- call LoadMenuDataHeader
- call InterpretMenu2
- call ExitMenu
- ret c
- ld a, [wcfa9]
- cp $1
- jr z, .asm_e3734
- cp $2
- jr z, .asm_e3745
- cp $3
- jr z, .asm_e3717
- and a
- ret
-
-.asm_e3717
- call GetBoxCount
- and a
- jr z, .asm_e372f
- ld e, l
- ld d, h
- ld a, [MenuSelection]
- dec a
- ld c, a
- callba Function844bc
- call Functione35e2
- and a
- ret
-
-.asm_e372f
- call Functione37be
- and a
- ret
-
-.asm_e3734
- ld a, [MenuSelection]
- dec a
- ld e, a
- ld a, [wCurBox]
- cp e
- ret z
- callba Function14a83
- ret
-
-.asm_e3745
- ld b, $4
- ld de, DefaultFlypoint
- callba Function116c1
- call ClearTileMap
- call Functione51
- call LoadFontsBattleExtra
- ld a, [MenuSelection]
- dec a
- call Functione3626
- ld e, l
- ld d, h
- ld hl, DefaultFlypoint
- ld c, $8
- call InitString
- ld a, [MenuSelection]
- dec a
- call Functione3626
- ld de, DefaultFlypoint
- call CopyName2
- ret
-; e3778 (38:7778)
-
- hlcoord 11, 7 ; XXX
-
-MenuDataHeader_0xe377b: ; 0xe377b
- db $40 ; flags
- db 04, 11 ; start coords
- db 13, 19 ; end coords
- dw MenuData2_0xe3783
- db 1 ; default option
-; 0xe3783
-
-MenuData2_0xe3783: ; 0xe3783
- db $80 ; flags
- db 4 ; items
- db "SWITCH@"
- db "NAME@"
- db "PRINT@"
- db "QUIT@"
-; 0xe379c
-
-Functione379c: ; e379c (38:779c)
- ld de, String_e37a1
- jr Functione37e3
-; e37a1 (38:77a1)
-
-String_e37a1: ; e37a1
- db "Choose a BOX.@"
-; e37af
-
-Functione37af: ; e37af (38:77af)
- ld de, String_e37b4
- jr Functione37e3
-; e37b4 (38:77b4)
-
-String_e37b4: ; e37b4
- db "What's up?@"
-; e37be
-
-Functione37be: ; e37be (38:77be)
- ld de, String_e37d3
- call Functione37e3
- ld de, SFX_WRONG
- call WaitPlaySFX
- call WaitSFX
- ld c, 50
- call DelayFrames
- ret
-; e37d3 (38:77d3)
-
-String_e37d3: ; e37d3
- db "There's no #MON.@"
-; e37e3
-
-Functione37e3: ; e37e3 (38:77e3)
- push de
- hlcoord 0, 14
- ld bc, $212
- call TextBox
- pop de
- hlcoord 1, 16
- call PlaceString
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-
+INCLUDE "engine/card_flip.asm"
+INCLUDE "engine/dummy_game.asm"
+INCLUDE "engine/billspc.asm"
SECTION "bank39", ROMX, BANK[$39]
@@ -72414,7 +47606,7 @@ _OptionsMenu: ; e41d0
ld a, [hl]
push af
ld [hl], $1
- call WhiteBGMap
+ call ClearBGPalettes
hlcoord 0, 0
ld b, $10
ld c, $12
@@ -72456,7 +47648,7 @@ _OptionsMenu: ; e41d0
.asm_e422a
call Functione455c
- ld c, $3
+ ld c, 3
call DelayFrames
jr .asm_e4217
@@ -72824,7 +48016,7 @@ GetPrinterSetting: ; e4491
.IsLight
ld c, $1
- ld de, $0040 ;the 2 values next to this setting
+ ld de, $40 ;the 2 values next to this setting
ret
.IsDark
@@ -72911,7 +48103,7 @@ Functione4512: ; e4512
hlcoord 16, 15 ;where on the screen the number is drawn
add "1"
ld [hl], a
- call Functione5f
+ call LoadFontsExtra
and a
ret
; e4520
@@ -72985,7 +48177,7 @@ Functione455c: ; e455c
dec c
jr nz, .asm_e4564
hlcoord 1, 2
- ld bc, $0028
+ ld bc, $28
ld a, [wJumptableIndex]
call AddNTimes
ld [hl], $ed
@@ -72996,7 +48188,7 @@ Functione455c: ; e455c
Functione4579: ; e4579
ld de, MUSIC_NONE
call PlayMusic
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
ld a, VBGMap0 / $100
ld [hBGMapAddress + 1], a
@@ -73015,30 +48207,30 @@ Functione4579: ; e4579
call DelayFrames
callab Copyright
call WaitBGMap
- ld c, $64
+ ld c, 100
call DelayFrames
call ClearTileMap
callba GBCOnlyScreen
call Functione45e8
-.asm_e45c0
+.joy_loop
call JoyTextDelay
ld a, [hJoyLast]
and BUTTONS
- jr nz, .asm_e45de
+ jr nz, .pressed_button
ld a, [wJumptableIndex]
bit 7, a
- jr nz, .asm_e45e3
- call Functione4670
+ jr nz, .finish
+ call PlaceGameFreakPresents
callba Function8cf69
call DelayFrame
- jr .asm_e45c0
+ jr .joy_loop
-.asm_e45de
+.pressed_button
call Functione465e
scf
ret
-.asm_e45e3
+.finish
call Functione465e
and a
ret
@@ -73059,11 +48251,11 @@ Functione45e8: ; e45e8
call FarDecompress
ld hl, VTiles0
ld de, w6_d000
- ld bc, $0180
+ ld bc, $180
call Request2bpp
ld hl, VTiles1
ld de, w6_d000 + $800
- ld bc, $0180
+ ld bc, $180
call Request2bpp
pop af
ld [rSVBK], a
@@ -73071,13 +48263,13 @@ Functione45e8: ; e45e8
ld de, $5458
ld a, $3
call Function3b2a
- ld hl, $0007
+ ld hl, $7
add hl, bc
ld [hl], $a0
- ld hl, $000c
+ ld hl, $c
add hl, bc
ld [hl], $60
- ld hl, $000d
+ ld hl, $d
add hl, bc
ld [hl], $30
xor a
@@ -73099,16 +48291,16 @@ Functione465e: ; e465e
callba Function8cf53
call ClearTileMap
call ClearSprites
- ld c, $10
+ ld c, 16
call DelayFrames
ret
; e4670
-Functione4670: ; e4670
+PlaceGameFreakPresents: ; e4670
ld a, [wJumptableIndex]
ld e, a
ld d, 0
- ld hl, Jumptable_e467f
+ ld hl, .jumptable
rept 2
add hl, de
endr
@@ -73118,38 +48310,38 @@ endr
jp [hl]
; e467f
-Jumptable_e467f: ; e467f
- dw Functione468c
- dw Functione468d
- dw Functione46ba
- dw Functione46dd
+.jumptable: ; e467f
+ dw PlaceGameFreakPresents_0
+ dw PlaceGameFreakPresents_1
+ dw PlaceGameFreakPresents_2
+ dw PlaceGameFreakPresents_3
; e4687
-Functione4687: ; e4687
+PlaceGameFreakPresents_AdvanceIndex: ; e4687
ld hl, wJumptableIndex
inc [hl]
ret
; e468c
-Functione468c: ; e468c
+PlaceGameFreakPresents_0: ; e468c
ret
; e468d
-Functione468d: ; e468d
+PlaceGameFreakPresents_1: ; e468d
ld hl, wcf65
ld a, [hl]
cp $20
- jr nc, .asm_e4697
+ jr nc, .PlaceGameFreak
inc [hl]
ret
-.asm_e4697
+.PlaceGameFreak
ld [hl], 0
ld hl, .GAME_FREAK
decoord 5, 10
ld bc, .end - .GAME_FREAK
call CopyBytes
- call Functione4687
+ call PlaceGameFreakPresents_AdvanceIndex
ld de, SFX_GAME_FREAK_PRESENTS
call PlaySFX
ret
@@ -73162,21 +48354,21 @@ Functione468d: ; e468d
db "@"
; e46ba
-Functione46ba: ; e46ba
+PlaceGameFreakPresents_2: ; e46ba
ld hl, wcf65
ld a, [hl]
cp $40
- jr nc, .asm_e46c4
+ jr nc, .place_presents
inc [hl]
ret
-.asm_e46c4
+.place_presents
ld [hl], 0
ld hl, .presents
decoord 7,11
ld bc, .end - .presents
call CopyBytes
- call Functione4687
+ call PlaceGameFreakPresents_AdvanceIndex
ret
; e46d6
@@ -73186,15 +48378,15 @@ Functione46ba: ; e46ba
db "@"
; e46dd
-Functione46dd: ; e46dd
+PlaceGameFreakPresents_3: ; e46dd
ld hl, wcf65
ld a, [hl]
cp $80
- jr nc, .asm_e46e7
+ jr nc, .finish
inc [hl]
ret
-.asm_e46e7
+.finish
ld hl, wJumptableIndex
set 7, [hl]
ret
@@ -73309,24 +48501,24 @@ GameFreakLogoScene4: ; e4776 (39:4776)
rept 2
add hl, de
endr
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, [hli]
ld [OBPals + 12], a
ld a, [hli]
ld [OBPals + 13], a
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
.asm_e47a3
ld hl, $b
add hl, bc
inc [hl]
- call Functione4687
+ call PlaceGameFreakPresents_AdvanceIndex
GameFreakLogoScene5: ; e47ab (39:47ab)
ret
@@ -73386,7 +48578,7 @@ CrystalIntro: ; e48ac
call PlayMusic
.done
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@@ -73411,7 +48603,7 @@ Functione4901: ; e4901
ld a, $1
ld [hInMenu], a
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld [wJumptableIndex], a
ret
; e490f
@@ -73473,14 +48665,14 @@ IntroScene1: ; e495b (39:495b)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap001
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroUnownsGFX
ld de, VTiles2 tile $00
call Functione54c2
@@ -73490,12 +48682,12 @@ IntroScene1: ; e495b (39:495b)
ld hl, IntroTilemap002
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_365ad
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_365ad
@@ -73503,14 +48695,14 @@ IntroScene1: ; e495b (39:495b)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
call Functione549e
xor a
@@ -73549,26 +48741,26 @@ IntroScene3: ; e49fd (39:49fd)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap003
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroBackgroundGFX
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap004
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_e5edd
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_e5edd
@@ -73576,14 +48768,14 @@ IntroScene3: ; e49fd (39:49fd)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
call Functione5516
call Functione549e
xor a
@@ -73610,15 +48802,15 @@ IntroScene5: ; e4a7a (39:4a7a)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hBGMapMode], a
+ ld [hLCDStatCustom], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap005
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroUnownsGFX
ld de, VTiles2 tile $00
call Functione54c2
@@ -73628,12 +48820,12 @@ IntroScene5: ; e4a7a (39:4a7a)
ld hl, IntroTilemap006
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_365ad
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_365ad
@@ -73641,14 +48833,14 @@ IntroScene5: ; e4a7a (39:4a7a)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
call Functione549e
xor a
@@ -73705,9 +48897,9 @@ IntroScene7: ; e4b3f (39:4b3f)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap003
ld de, VBGMap0 tile $00
call Functione54fa
@@ -73715,7 +48907,7 @@ IntroScene7: ; e4b3f (39:4b3f)
ld de, VTiles0 tile $00
call Functione54c2
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroSuicuneRunGFX
ld de, VTiles0 tile $00
call Functione54de
@@ -73725,12 +48917,12 @@ IntroScene7: ; e4b3f (39:4b3f)
ld hl, IntroTilemap004
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_e5edd
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_e5edd
@@ -73738,14 +48930,14 @@ IntroScene7: ; e4b3f (39:4b3f)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
call Functione5516
callba Function8cf53
ld de, $6cd8
@@ -73790,7 +48982,7 @@ IntroScene8: ; e4bd3 (39:4bd3)
IntroScene9: ; e4c04 (39:4c04)
; Set up the next scene (same bg).
xor a
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
call ClearSprites
hlcoord 0, 0, AttrMap
ld bc, $f0
@@ -73803,18 +48995,18 @@ IntroScene9: ; e4c04 (39:4c04)
ld a, $3
call ByteFill
ld a, $2
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
call DelayFrame
call DelayFrame
call DelayFrame
ld a, $c
- ld [hBGMapAddress], a ; $ff00+$d6
+ ld [hBGMapAddress], a
call DelayFrame
call DelayFrame
call DelayFrame
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld [hBGMapAddress], a ; $ff00+$d6
+ ld [hBGMapMode], a
+ ld [hBGMapAddress], a
ld [wc3c0], a
xor a
ld [wcf64], a
@@ -73860,27 +49052,27 @@ IntroScene11: ; e4c86 (39:4c86)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hBGMapMode], a
+ ld [hLCDStatCustom], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap007
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroUnownsGFX
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap008
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_365ad
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_365ad
@@ -73888,14 +49080,14 @@ IntroScene11: ; e4c86 (39:4c86)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
call Functione549e
xor a
@@ -73983,14 +49175,14 @@ IntroScene13: ; e4d6d (39:4d6d)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap003
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroSuicuneRunGFX
ld de, VTiles0 tile $00
call Functione54de
@@ -74000,12 +49192,12 @@ IntroScene13: ; e4d6d (39:4d6d)
ld hl, IntroTilemap004
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_e5edd
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_e5edd
@@ -74013,14 +49205,14 @@ IntroScene13: ; e4d6d (39:4d6d)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
lb de, $6c, $58
ld a, $26
@@ -74038,9 +49230,9 @@ IntroScene13: ; e4d6d (39:4d6d)
IntroScene14: ; e4dfa (39:4dfa)
; Suicune runs then jumps.
- ld a, [hSCX] ; $ff00+$cf
+ ld a, [hSCX]
sub 10
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld hl, wcf64
ld a, [hl]
inc [hl]
@@ -74087,14 +49279,14 @@ IntroScene15: ; e4e40 (39:4e40)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap009
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroSuicuneJumpGFX
ld de, VTiles2 tile $00
call Functione54c2
@@ -74109,12 +49301,12 @@ IntroScene15: ; e4e40 (39:4e40)
ld de, VBGMap0 tile $00
call Functione54fa
call Functione541b
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_e77dd
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_e77dd
@@ -74122,15 +49314,15 @@ IntroScene15: ; e4e40 (39:4e40)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld a, $90
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
call Functione549e
lb de, $40, $28
@@ -74153,11 +49345,11 @@ IntroScene16: ; e4edc (39:4edc)
cp $80
jr nc, .done
call Functione5441
- ld a, [hSCY] ; $ff00+$d0
+ ld a, [hSCY]
and a
ret z
add 8
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCY], a
ret
.done
call NextIntroScene
@@ -74169,26 +49361,26 @@ IntroScene17: ; e4ef5 (39:4ef5)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap011
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroSuicuneCloseGFX
ld de, VTiles1 tile $00
call Functione54de
ld hl, IntroTilemap012
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_e6d6d
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_e6d6d
@@ -74196,14 +49388,14 @@ IntroScene17: ; e4ef5 (39:4ef5)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
call Functione549e
xor a
@@ -74219,11 +49411,11 @@ IntroScene18: ; e4f67 (39:4f67)
inc [hl]
cp $60
jr nc, .done
- ld a, [hSCX] ; $ff00+$cf
+ ld a, [hSCX]
cp $60
ret z
add 8
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ret
.done
call NextIntroScene
@@ -74235,14 +49427,14 @@ IntroScene19: ; e4f7e (39:4f7e)
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap013
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroSuicuneBackGFX
ld de, VTiles2 tile $00
call Functione54c2
@@ -74257,12 +49449,12 @@ IntroScene19: ; e4f7e (39:4f7e)
ld de, VBGMap0 tile $00
call Functione54fa
call Functione541b
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_e77dd
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_e77dd
@@ -74270,15 +49462,15 @@ IntroScene19: ; e4f7e (39:4f7e)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
ld a, $d8
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
ld hl, wc300
xor a
@@ -74307,9 +49499,9 @@ IntroScene20: ; e5019 (39:5019)
jr nc, .asm_e5032
cp $28
ret nc
- ld a, [hSCY] ; $ff00+$d0
+ ld a, [hSCY]
inc a
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCY], a
ret
.asm_e5032
@@ -74344,10 +49536,10 @@ IntroScene20: ; e5019 (39:5019)
IntroScene21: ; e505d (39:505d)
; Suicune gets more distant and turns black.
call Functione5451
- ld c, $3
+ ld c, 3
call DelayFrames
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld [wcf64], a
ld [wcf65], a
call NextIntroScene
@@ -74407,30 +49599,30 @@ IntroScene25: ; e50ad (39:50ad)
IntroScene26: ; e50bb (39:50bb)
; Load the final scene.
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroTilemap015
ld de, VBGMap0 tile $00
call Functione54fa
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, IntroCrystalUnownsGFX
ld de, VTiles2 tile $00
call Functione54c2
ld hl, IntroTilemap017
ld de, VBGMap0 tile $00
call Functione54fa
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_e679d
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
ld hl, Palette_e679d
@@ -74438,14 +49630,14 @@ IntroScene26: ; e50bb (39:50bb)
ld bc, $80
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
xor a
- ld [hSCX], a ; $ff00+$cf
- ld [hSCY], a ; $ff00+$d0
+ ld [hSCX], a
+ ld [hSCY], a
ld a, $7
- ld [hWX], a ; $ff00+$d1
+ ld [hWX], a
ld a, $90
- ld [hWY], a ; $ff00+$d2
+ ld [hWY], a
callba Function8cf53
call Functione549e
xor a
@@ -74496,7 +49688,7 @@ IntroScene28: ; e5152 (39:5152)
ret
.clear
- call WhiteBGMap
+ call ClearBGPalettes
ret
.done
@@ -74512,10 +49704,10 @@ Functione5172: ; e5172 (39:5172)
ld a, $0
adc h
ld h, a
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld de, BGPals
ld b, $8
.asm_e5187
@@ -74531,9 +49723,9 @@ Functione5172: ; e5172 (39:5172)
dec b
jr nz, .asm_e5187
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
; e519c (39:519c)
@@ -74642,10 +49834,10 @@ endr
.asm_e523e
ld c, a
ld b, $0
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
push hl
push bc
ld hl, BGPals
@@ -74694,9 +49886,9 @@ endr
ld a, d
ld [hli], a
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
; e5288 (39:5288)
@@ -74741,10 +49933,10 @@ rept 3
add a
endr
ld c, a
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
push bc
ld de, BGPals
ld a, c
@@ -74756,7 +49948,7 @@ endr
ld bc, $8
call CopyBytes
pop bc
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, c
add e
ld e, a
@@ -74766,9 +49958,9 @@ endr
ld bc, $8
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
; e538d (39:538d)
@@ -74801,10 +49993,10 @@ endr
add a
ld c, a
ld b, $0
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
push hl
ld hl, Palette_e53db
add hl, bc
@@ -74828,9 +50020,9 @@ endr
ld a, d
ld [hli], a
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
; e53db (39:53db)
@@ -74853,15 +50045,15 @@ endr
; e541b
Functione541b: ; e541b (39:541b)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $6
- ld [rSVBK], a ; $ff00+$70
- ld hl, Unkn1Pals
+ ld [rSVBK], a
+ ld hl, w6_d000
decoord 0, 0
- ld b, $12
+ ld b, SCREEN_HEIGHT
.asm_e542a
- ld c, $14
+ ld c, SCREEN_WIDTH
.asm_e542c
ld a, [hli]
ld [de], a
@@ -74877,7 +50069,7 @@ Functione541b: ; e541b (39:541b)
dec b
jr nz, .asm_e542a
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
Functione5441: ; e5441 (39:5441)
@@ -74889,7 +50081,7 @@ Functione5441: ; e5441 (39:5441)
ret
.asm_e544d
xor a
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
Functione5451: ; e5451 (39:5451)
@@ -74910,7 +50102,7 @@ Functione5451: ; e5451 (39:5451)
or b
jr nz, .asm_e5457
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
ret
Functione546d: ; e546d (39:546d)
@@ -74927,9 +50119,9 @@ Functione546d: ; e546d (39:546d)
ld [Requested2bppSource], a
ld a, [hli]
ld [Requested2bppSource + 1], a
- ld a, $9090 % $100
+ ld a, (VTiles2 tile $09) % $100
ld [Requested2bppDest], a
- ld a, $9090 / $100
+ ld a, (VTiles2 tile $09) / $100
ld [Requested2bppDest + 1], a
ld a, $4
ld [Requested2bpp], a
@@ -74945,94 +50137,94 @@ Unknown_e5496: ; e5496
Functione549e: ; e549e (39:549e)
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
ret
Functione54a3: ; e54a3 (39:54a3)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, BGPals
ld bc, $80
xor a
call ByteFill
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $1
- ld [hCGBPalUpdate], a ; $ff00+$e5
+ ld [hCGBPalUpdate], a
call DelayFrame
call DelayFrame
ret
Functione54c2: ; e54c2 (39:54c2)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $6
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
push de
- ld de, Unkn1Pals
+ ld de, w6_d000
call Decompress
pop hl
- ld de, Unkn1Pals
+ ld de, w6_d000
ld bc, $180
call Request2bpp
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
Functione54de: ; e54de (39:54de)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $6
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
push de
- ld de, Unkn1Pals
+ ld de, w6_d000
call Decompress
pop hl
- ld de, Unkn1Pals
+ ld de, w6_d000
ld bc, $1ff
call Request2bpp
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
Functione54fa: ; e54fa (39:54fa)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $6
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
push de
- ld de, Unkn1Pals
+ ld de, w6_d000
call Decompress
pop hl
- ld de, Unkn1Pals
+ ld de, w6_d000
ld bc, $140
call Request2bpp
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
Functione5516: ; e5516 (39:5516)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, LYOverrides
ld bc, $90
xor a
call ByteFill
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, $43
- ld [hLCDStatCustom], a ; $ff00+$c6
+ ld [hLCDStatCustom], a
ret
Functione552f: ; e552f (39:552f)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld a, [wcf64]
and $1
jr z, .asm_e5548
@@ -75050,9 +50242,9 @@ endr
ld bc, $31
call ByteFill
ld a, [LYOverrides + 0]
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCX], a
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
IntroSuicuneRunGFX: ; e555d
@@ -75537,44 +50729,44 @@ GFX_f8aa0: ; f8aa0
INCBIN "gfx/unknown/0f8aa0.2bpp"
; f8ac0
-GFX_f8ac0: ; f8ac0
-INCBIN "gfx/unknown/0f8ac0.2bpp"
+EnemyHPBarBorderGFX: ; f8ac0
+INCBIN "gfx/battle/enemy_hp_bar_border.1bpp"
; f8ae0
-GFX_f8ae0: ; f8ae0
-INCBIN "gfx/unknown/0f8ae0.2bpp"
+HPExpBarBorderGFX: ; f8ae0
+INCBIN "gfx/battle/hp_exp_bar_border.1bpp"
; f8b10
-GFX_f8b10: ; f8b10
-INCBIN "gfx/unknown/0f8b10.2bpp"
+ExpBarGFX: ; f8b10
+INCBIN "gfx/battle/expbar.2bpp"
; f8ba0
TownMapGFX: ; f8ba0
INCBIN "gfx/misc/town_map.2bpp.lz"
; f8ea4
-GFX_f8ea4: ; f8ea4
+GFX_f8ea4: ; unused
INCBIN "gfx/unknown/0f8ea4.2bpp"
; f8f24
-GFX_f8f24: ; f8f24
-INCBIN "gfx/unknown/0f8f24.2bpp"
+OverworldPhoneIconGFX: ; f8f24
+INCBIN "gfx/mobile/overworld_phone_icon.2bpp"
; f8f34
-GFX_f8f34: ; f8f34
+GFX_f8f34: ; unused
INCBIN "gfx/unknown/0f8f34.2bpp"
; f9204
-GFX_f9204: ; f9204
-INCBIN "gfx/unknown/0f9204.2bpp"
+TextBoxSpaceGFX: ; f9204
+INCBIN "gfx/frames/space.2bpp"
; f9214
-GFX_f9214: ; f9214
-INCBIN "gfx/unknown/0f9214.2bpp"
+MobilePhoneTilesGFX: ; f9214
+INCBIN "gfx/mobile/phone_tiles.2bpp"
; f9344
-GFX_f9344: ; f9344
-INCBIN "gfx/unknown/0f9344.2bpp"
+MapEntryFrameGFX: ; f9344
+INCBIN "gfx/frames/map_entry_sign.2bpp"
; f9424
GFX_f9424: ; f9424
@@ -75585,74 +50777,74 @@ Footprints: ; f9434
INCBIN "gfx/misc/footprints.1bpp"
; fb434
+; This and the following two functions are unreferenced.
Unknown_fb434:
db 0
Functionfb435: ; 4b435
ld a, [Unknown_fb434]
and a
- jp nz, Functionddc
+ jp nz, Get1bpp_2
jp Get1bpp
; fb43f
Functionfb43f: ; fb43f
ld a, [Unknown_fb434]
and a
- jp nz, Functiondc9
+ jp nz, Get2bpp_2
jp Get2bpp
+; End unreferenced block
; fb449
-Functionfb449:: ; fb449
+_LoadStandardFont:: ; fb449
ld de, Font
ld hl, VTiles1
- lb bc, BANK(Font), $400 / 8
+ lb bc, BANK(Font), $80
ld a, [rLCDC]
bit 7, a
jp z, Copy1bpp
ld de, Font
ld hl, VTiles1
- lb bc, BANK(Font), $100 / 8
- call Functionddc
- ld de, Font + $100
- ld hl, VTiles1 + $200
- lb bc, BANK(Font), $100 / 8
- call Functionddc
- ld de, Font + $200
- ld hl, VTiles1 + $400
- lb bc, BANK(Font), $100 / 8
- call Functionddc
- ld de, Font + $300
- ld hl, VTiles1 + $600
- lb bc, BANK(Font), $100 / 8
- call Functionddc
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
+ ld de, Font + $20 * LEN_1BPP_TILE
+ ld hl, VTiles1 tile $20
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
+ ld de, Font + $40 * LEN_1BPP_TILE
+ ld hl, VTiles1 tile $40
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
+ ld de, Font + $60 * LEN_1BPP_TILE
+ ld hl, VTiles1 tile $60
+ lb bc, BANK(Font), $20
+ call Get1bpp_2
ret
; fb48a
-
-
-Functionfb48a:: ; fb48a
- ld de, GFX_f9214
+_LoadFontsExtra1:: ; fb48a
+ ld de, MobilePhoneTilesGFX
ld hl, VTiles2 tile $60
- lb bc, BANK(GFX_f9214), 1
- call Functionddc
- ld de, GFX_f8f24
+ lb bc, BANK(MobilePhoneTilesGFX), 1
+ call Get1bpp_2
+ ld de, OverworldPhoneIconGFX
ld hl, VTiles2 tile $62
- lb bc, BANK(GFX_f8f24), 1
- call Functiondc9
- ld de, FontExtra + $30
+ lb bc, BANK(OverworldPhoneIconGFX), 1
+ call Get2bpp_2
+ ld de, FontExtra + 3 * LEN_2BPP_TILE
ld hl, VTiles2 tile $63
lb bc, BANK(FontExtra), $16
- call Functiondc9
- jr Functionfb4cc
+ call Get2bpp_2
+ jr LoadFrame
; fb4b0
-Functionfb4b0:: ; fb4b0
+_LoadFontsExtra2:: ; fb4b0
ld de, GFX_f9424
ld hl, VTiles2 tile $61
ld b, BANK(GFX_f9424)
ld c, 1
- call Functiondc9
+ call Get2bpp_2
ret
; fb4be
@@ -75660,86 +50852,88 @@ _LoadFontsBattleExtra:: ; fb4be
ld de, FontBattleExtra
ld hl, VTiles2 tile $60
lb bc, BANK(FontBattleExtra), $19
- call Functiondc9
- jr Functionfb4cc
+ call Get2bpp_2
+ jr LoadFrame
; fb4cc
-Functionfb4cc: ; fb4cc
+LoadFrame: ; fb4cc
ld a, [TextBoxFrame]
and 7
- ld bc, $0030
+ ld bc, TILES_PER_FRAME * LEN_1BPP_TILE
ld hl, Frames
call AddNTimes
ld d, h
ld e, l
ld hl, VTiles2 tile $79
- lb bc, BANK(Frames), 6
- call Functionddc
+ lb bc, BANK(Frames), TILES_PER_FRAME
+ call Get1bpp_2
ld hl, VTiles2 tile $7f
- ld de, GFX_f9204
- lb bc, BANK(GFX_f9204), 1
- call Functionddc
+ ld de, TextBoxSpaceGFX
+ lb bc, BANK(TextBoxSpaceGFX), 1
+ call Get1bpp_2
ret
; fb4f2
-Functionfb4f2: ; fb4f2
+LoadBattleFontsHPBar: ; fb4f2
ld de, FontBattleExtra
ld hl, VTiles2 tile $60
lb bc, BANK(FontBattleExtra), $c
- call Functiondc9
+ call Get2bpp_2
ld hl, VTiles2 tile $70
- ld de, FontBattleExtra + $100
+ ld de, FontBattleExtra + $10 * LEN_2BPP_TILE
lb bc, BANK(FontBattleExtra), 3
- call Functiondc9
- call Functionfb4cc
+ call Get2bpp_2
+ call LoadFrame
-Functionfb50d: ; fb50d
- ld de, GFX_f8ac0
+LoadHPBar: ; fb50d
+ ld de, EnemyHPBarBorderGFX
ld hl, VTiles2 tile $6c
- lb bc, BANK(GFX_f8ac0), 4
- call Functionddc
- ld de, GFX_f8ae0
+ lb bc, BANK(EnemyHPBarBorderGFX), 4
+ call Get1bpp_2
+ ld de, HPExpBarBorderGFX
ld hl, VTiles2 tile $73
- lb bc, BANK(GFX_f8ae0), 6
- call Functionddc
- ld de, GFX_f8b10
+ lb bc, BANK(HPExpBarBorderGFX), 6
+ call Get1bpp_2
+ ld de, ExpBarGFX
ld hl, VTiles2 tile $55
- lb bc, BANK(GFX_f8b10), 9
- call Functiondc9
- ld de, GFX_f9214 + $90
+ lb bc, BANK(ExpBarGFX), 9
+ call Get2bpp_2
+ ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE
ld hl, VTiles2 tile $5e
- lb bc, BANK(GFX_f9214), 2
- call Functiondc9
+ lb bc, BANK(MobilePhoneTilesGFX), 2
+ call Get2bpp_2
ret
; fb53e
Functionfb53e: ; fb53e
call _LoadFontsBattleExtra
- ld de, GFX_f8ac0
+ ld de, EnemyHPBarBorderGFX
ld hl, VTiles2 tile $6c
- lb bc, BANK(GFX_f8ac0), 4
- call Functionddc
- ld de, GFX_f8ae0
+ lb bc, BANK(EnemyHPBarBorderGFX), 4
+ call Get1bpp_2
+ ld de, HPExpBarBorderGFX
ld hl, VTiles2 tile $78
- lb bc, BANK(GFX_f8ae0), 1
- call Functionddc
- ld de, GFX_f8ae0 + $18
+ lb bc, BANK(HPExpBarBorderGFX), 1
+ call Get1bpp_2
+ ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE
ld hl, VTiles2 tile $76
- lb bc, BANK(GFX_f8ae0), 2
- call Functionddc
- ld de, GFX_f8b10
+ lb bc, BANK(HPExpBarBorderGFX), 2
+ call Get1bpp_2
+ ld de, ExpBarGFX
ld hl, VTiles2 tile $55
- lb bc, BANK(GFX_f8b10), 8
- call Functiondc9
+ lb bc, BANK(ExpBarGFX), 8
+ call Get2bpp_2
Functionfb571: ; fb571
ld de, GFX_f89b0
ld hl, VTiles2 tile $31
lb bc, BANK(GFX_f89b0), $11
- call Functiondc9
+ call Get2bpp_2
ret
; fb57e
+; These functions seem to be related to backwards compatibility
+
Functionfb57e: ; fb57e
ld a, [wd003]
ld hl, OTPartyMon1Species
@@ -75761,7 +50955,7 @@ Functionfb57e: ; fb57e
.asm_fb59c
ld b, h
ld c, l
- ld hl, OTPartyMon1Level - OTPartyMon1
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
cp 101
@@ -75807,7 +51001,7 @@ endr
; fb5dd
Functionfb5dd: ; fb5dd
- ld a, [DefaultFlypoint]
+ ld a, [wd002]
ld d, a
ld a, [PartyCount]
ld b, a
@@ -76079,12 +51273,12 @@ PlaySlowCry: ; fb841
; fb877
Functionfb877: ; fb877
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
call LowVolume
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call UpdateSprites
call ClearSprites
@@ -76096,11 +51290,11 @@ Functionfb877: ; fb877
xor a
ld [wPokedexStatus], a
callba Function41a7f
- call Functiona80
+ call WaitPressAorB_BlinkCursor
ld a, $1
ld [wPokedexStatus], a
callba Function4424d
- call Functiona80
+ call WaitPressAorB_BlinkCursor
pop af
ld [wPokedexStatus], a
call MaxVolume
@@ -76110,17 +51304,17 @@ Functionfb877: ; fb877
ld [hSCX], a
call Functionfb8c8
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; fb8c8
Functionfb8c8: ; fb8c8
call ClearTileMap
- call Functione5f
- call Functione51
+ call LoadFontsExtra
+ call LoadStandardFont
callba Function40ab2
call Function3200
- callba Function3da97
+ callba GetEnemyMonDVs
ld a, [hli]
ld [TempMonDVs], a
ld a, [hl]
@@ -76713,7 +51907,7 @@ Functionfcc63: ; fcc63
call Functionfcdf4
ld hl, PartyMonOT
- ld bc, $000b
+ ld bc, NAME_LENGTH
call Functionfcdd7
ld de, wc6f2
call Functionfcdf4
@@ -76723,19 +51917,19 @@ Functionfcc63: ; fcc63
call Functionfcdf4
ld hl, PartyMon1ID
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Functionfcdd7
ld de, wc6ff
call Functionfce0f
ld hl, PartyMon1DVs
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Functionfcdd7
ld de, wc6fd
call Functionfce0f
ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Functionfcdd7
ld b, h
ld c, l
@@ -76751,10 +51945,10 @@ Functionfcc63: ; fcc63
jr c, .asm_fcce6
ld a, 2
.asm_fcce6
- ld [wc733], a
+ ld [wEnemyCharging], a
ld hl, PartyMon1Level
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Functionfcdd7
ld a, [hl]
ld [CurPartyLevel], a
@@ -76762,7 +51956,7 @@ Functionfcc63: ; fcc63
ld [CurPartySpecies], a
xor a
ld [MonType], a
- ld [wd10b], a
+ ld [wPokemonWithdrawDepositParameter], a
callab Functione039
predef TryAddMonToParty
@@ -76774,7 +51968,7 @@ Functionfcc63: ; fcc63
jr c, .asm_fcd1c
ld b, 1
.asm_fcd1c
- callba SetPkmnCaughtData
+ callba SetPartymonCaughtData
ld e, TRADE_NICK
call GetTradeAttribute
@@ -76797,38 +51991,38 @@ Functionfcc63: ; fcc63
call Functionfcdf4
ld hl, PartyMonOT
- ld bc, $000b
+ ld bc, NAME_LENGTH
call Functionfcdde
ld hl, wc724
call Functionfcdf4
ld e, TRADE_DVS
call GetTradeAttribute
- ld de, wc72f
+ ld de, wEnemyTrappingMove
call Functionfce0f
ld hl, PartyMon1DVs
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Functionfcdde
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
call Functionfce0f
ld e, TRADE_OT_ID
call GetTradeAttribute
- ld de, wc732
+ ld de, wPlayerCharging
call Functionfce15
ld hl, PartyMon1ID
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Functionfcdde
- ld hl, wc731
+ ld hl, wEnemyWrapCount
call Functionfce0f
ld e, TRADE_ITEM
call GetTradeAttribute
push hl
ld hl, PartyMon1Item
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call Functionfcdde
pop hl
ld a, [hl]
@@ -76896,13 +52090,13 @@ Functionfcde8: ; fcde8
; fcdf4
Functionfcdf4: ; fcdf4
- ld bc, $000b
+ ld bc, NAME_LENGTH
call CopyBytes
ret
; fcdfb
Functionfcdfb: ; fcdfb
- ld bc, $0004
+ ld bc, 4
call CopyBytes
ld a, $50
ld [de], a
@@ -76910,7 +52104,7 @@ Functionfcdfb: ; fcdfb
; fce05
Functionfce05: ; fce05
- ld bc, $0003
+ ld bc, 3
call CopyBytes
ld a, $50
ld [de], a
@@ -77240,7 +52434,7 @@ CheckBalance_MomItem2: ; fd044
ld [hMoneyTemp + 1], a
ld a, [hli]
ld [hMoneyTemp + 2], a
- ld de, wd851
+ ld de, wMomsMoney
ld bc, hMoneyTemp
callba CompareMoney
jr nc, .have_enough_money
@@ -77261,7 +52455,7 @@ CheckBalance_MomItem2: ; fd044
ld [hl], (2300 % $100) ; $fc
.loop
ld de, wdc19
- ld bc, wd851
+ ld bc, wMomsMoney
callba CompareMoney
jr z, .exact
jr nc, .less_than
@@ -77297,10 +52491,10 @@ MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6)
ld a, [hli]
ld [hMoneyTemp], a
ld a, [hli]
- ld [$ffc4], a
+ ld [hMoneyTemp + 1], a
ld a, [hli]
- ld [$ffc5], a
- ld de, wd851
+ ld [hMoneyTemp + 2], a
+ ld de, wMomsMoney
ld bc, hMoneyTemp
callba TakeMoney
ret
@@ -77501,7 +52695,7 @@ Function104033: ; 104033
ld hl, w6_d000
call Function10425f
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, w6_d000
call Function10419d
ret
@@ -77517,7 +52711,7 @@ Function10404d: ; 10404d
ld hl, w6_d400
call Function104263
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, w6_d400
call Function10419d
ret
@@ -77537,18 +52731,18 @@ Function104067: ; 104067
call Function10425f
call DelayFrame
di
- ld a, [rVBK] ; $ff00+$4f
+ ld a, [rVBK]
push af
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, w6_d400
call Function1041ad
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, w6_d000
call Function1041ad
pop af
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ei
ret
@@ -77593,7 +52787,7 @@ Function1040da: ; 1040da
ld [rVBK], a
ld a, $3
ld [rSVBK], a
- ld de, $d800
+ ld de, w3_d800
ld a, [hBGMapAddress + 1]
ld [rHDMA1], a
ld a, [hBGMapAddress]
@@ -77618,7 +52812,7 @@ Function104101: ; 104101
ld [rVBK], a
ld a, $3
ld [rSVBK], a
- ld hl, $d800
+ ld hl, w3_d800
call Function10419d
ret
; 104110
@@ -77637,18 +52831,18 @@ Function104116: ; 104116
call Function10425f
call DelayFrame
di
- ld a, [rVBK] ; $ff00+$4f
+ ld a, [rVBK]
push af
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, w6_d400
call Function1041b7
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, w6_d000
call Function1041b7
pop af
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ei
ret
; 104148
@@ -77680,11 +52874,11 @@ Function10414e: ; 10414e
Function104177: ; 104177
ld a, [hBGMapMode]
push af
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
ld [hBGMapMode], a
- ld [$ffde], a
+ ld [hMapAnims], a
ld a, [rSVBK]
push af
ld a, 6
@@ -77697,7 +52891,7 @@ Function104177: ; 104177
pop af
ld [rSVBK], a
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
pop af
ld [hBGMapMode], a
ret
@@ -77711,12 +52905,12 @@ Function10419c: ; 10419c
Function10419d: ; 10419d (41:419d)
call Function10424e
ld a, $23
- ld [hDMATransfer], a ; $ff00+$e8
+ ld [hDMATransfer], a
Function1041a4: ; 104a14
.asm_1041a4
call DelayFrame
- ld a, [hDMATransfer] ; $ff00+$e8
+ ld a, [hDMATransfer]
and a
jr nz, .asm_1041a4
ret
@@ -77724,7 +52918,7 @@ Function1041a4: ; 104a14
Function1041ad: ; 1041ad (41:41ad)
ld a, [hBGMapAddress + 1]
ld d, a
- ld a, [hBGMapAddress] ; $ff00+$d6
+ ld a, [hBGMapAddress]
ld e, a
ld c, $24
jr Function104209
@@ -77732,7 +52926,7 @@ Function1041ad: ; 1041ad (41:41ad)
Function1041b7: ; 1041b7 (41:41b7)
ld a, [hBGMapAddress + 1]
ld d, a
- ld a, [hBGMapAddress] ; $ff00+$d6
+ ld a, [hBGMapAddress]
ld e, a
ld c, $24
jr asm_104205
@@ -77848,14 +53042,14 @@ asm_10420b:
Function10424e: ; 10424e (41:424e)
ld a, h
- ld [rHDMA1], a ; $ff00+$51
+ ld [rHDMA1], a
ld a, l
- ld [rHDMA2], a ; $ff00+$52
+ ld [rHDMA2], a
ld a, [hBGMapAddress + 1]
and $1f
- ld [rHDMA3], a ; $ff00+$53
- ld a, [hBGMapAddress] ; $ff00+$d6
- ld [rHDMA4], a ; $ff00+$54
+ ld [rHDMA3], a
+ ld a, [hBGMapAddress]
+ ld [rHDMA4], a
ret
Function10425f: ; 10425f (41:425f)
@@ -77902,7 +53096,8 @@ Function104265: ; 104265 (41:4265)
ret
-Function104284:: ; 104284
+_Get2bpp:: ; 104284
+ ; 2bpp when [rLCDC] & $80
; switch to WRAM bank 6
ld a, [rSVBK]
push af
@@ -77944,24 +53139,25 @@ endr
ret
; 1042b2
-Function1042b2:: ; 1042b2
+_Get1bpp:: ; 1042b2
+ ; 1bpp when [rLCDC] & $80
.loop
ld a, c
cp $10
- jp c, .asm_1042d6
- jp z, .asm_1042d6
+ jp c, .bankswitch
+ jp z, .bankswitch
push bc
push hl
push de
ld c, $10
- call .asm_1042d6
+ call .bankswitch
pop de
- ld hl, $0080
+ ld hl, $80
add hl, de
ld d, h
ld e, l
pop hl
- ld bc, $100
+ lb bc, 1, 0
add hl, bc
pop bc
ld a, c
@@ -77970,34 +53166,40 @@ Function1042b2:: ; 1042b2
jr .loop
; 1042d6
-.asm_1042d6: ; 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
rept 3
- add hl, hl
+ add hl, hl ; multiply by 8
endr
ld c, l
ld b, h
ld h, d
ld l, e
ld de, w6_d000
- call Functiondef
+ call FarCopyBytesDouble_DoubleBankSwitch
+
pop hl
pop bc
+
push bc
call DelayFrame
pop bc
+
ld d, h
ld e, l
ld hl, w6_d000
call Function104209
+
pop af
ld [rSVBK], a
ret
@@ -78016,13 +53218,13 @@ Function104309:
decoord 0, 0, AttrMap
call Function10433a
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld c, $8
ld hl, w6_d000 + $80
ld de, VBGMap1 tile $00
call Function104209
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld c, $8
ld hl, w6_d000
ld de, VBGMap1 tile $00
@@ -78058,7 +53260,10 @@ HeartEmote: INCBIN "gfx/emotes/heart.2bpp"
BoltEmote: INCBIN "gfx/emotes/bolt.2bpp"
SleepEmote: INCBIN "gfx/emotes/sleep.2bpp"
FishEmote: INCBIN "gfx/emotes/fish.2bpp"
-FishingRodGFX: INCBIN "gfx/misc/fishing.2bpp"
+FishingRodGFX1: INCBIN "gfx/misc/fishing1.2bpp"
+FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp"
+FishingRodGFX3: INCBIN "gfx/misc/fishing3.2bpp"
+FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp"
RunCallback_05_03: ; 1045b0
@@ -78111,22 +53316,22 @@ EnterWestConnection: ; 1045ed
ld h, [hl]
ld l, a
srl c
- jr z, .asm_10461e
+ jr z, .skip_to_load
ld a, [WestConnectedMapWidth]
add 6
ld e, a
ld d, 0
-.asm_10461a
+.loop
add hl, de
dec c
- jr nz, .asm_10461a
+ jr nz, .loop
-.asm_10461e
+.skip_to_load
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
jp EnteredConnection
; 104629
@@ -78148,22 +53353,22 @@ EnterEastConnection: ; 104629
ld h, [hl]
ld l, a
srl c
- jr z, .asm_10465a
+ jr z, .skip_to_load
ld a, [EastConnectedMapWidth]
add 6
ld e, a
ld d, 0
-.asm_104656
+.loop
add hl, de
dec c
- jr nz, .asm_104656
+ jr nz, .loop
-.asm_10465a
+.skip_to_load
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
jp EnteredConnection
; 104665
@@ -78190,7 +53395,7 @@ EnterNorthConnection: ; 104665
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
jp EnteredConnection
; 104696
@@ -78217,7 +53422,7 @@ EnterSouthConnection: ; 104696
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
; fallthrough
; 1046c4
@@ -78301,7 +53506,7 @@ LoadMapTimeOfDay: ; 104750
ld [wc2ce], a
callba Function8c0e5
callba Function8c001
- call Function2173
+ call OverworldTextModeSwitch
call Function104770
call Function1047a3
ret
@@ -78311,21 +53516,21 @@ Function104770: ; 104770 (41:4770)
ld [wd153], a
xor a
ld [wd152], a
- ld [hSCY], a ; $ff00+$d0
- ld [hSCX], a ; $ff00+$cf
+ ld [hSCY], a
+ ld [hSCX], a
callba Function5958
- ld a, [rVBK] ; $ff00+$4f
+ ld a, [rVBK]
push af
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
xor a
- ld bc, $400
+ lb bc, 4, 0
ld hl, VBGMap0 tile $00
call ByteFill
pop af
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld a, $60
- ld bc, $400
+ lb bc, 4, 0
ld hl, VBGMap0 tile $00
call ByteFill
ret
@@ -78333,12 +53538,12 @@ Function104770: ; 104770 (41:4770)
Function1047a3: ; 1047a3 (41:47a3)
decoord 0, 0
call Function1047b4
- ld a, [hCGB] ; $ff00+$e6
+ ld a, [hCGB]
and a
ret z
decoord 0, 0, AttrMap
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
Function1047b4: ; 1047b4 (41:47b4)
ld hl, VBGMap0 tile $00
@@ -78358,18 +53563,18 @@ Function1047b4: ; 1047b4 (41:47b4)
dec b
jr nz, .asm_1047bb
ld a, $0
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ret
LoadGraphics: ; 1047cf
call LoadTilesetHeader
call Function2821
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
xor a
- ld [hTileAnimFrame], a ; $ff00+$df
- callba Function14168
- call Functione5f
+ ld [hTileAnimFrame], a
+ callba RefreshSprites
+ call LoadFontsExtra
callba Function106594
ret
@@ -78383,14 +53588,14 @@ RefreshMapSprites: ; 1047f0
callba ReturnFromMapSetupScript
call Function2914
callba Function579d
- callba Function154f7
+ callba CheckReplaceKrisSprite
ld hl, wPlayerSpriteSetupFlags
bit 6, [hl]
- jr nz, .asm_104817
+ jr nz, .skip
ld hl, VramState
set 0, [hl]
call Function2e31
-.asm_104817
+.skip
ld a, [wPlayerSpriteSetupFlags]
and $1c
ld [wPlayerSpriteSetupFlags], a
@@ -78410,6 +53615,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
jr z, .right
and a
ret
+
.down
ld a, [PlayerMapY]
sub 4
@@ -78420,6 +53626,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
jr z, .ok
and a
ret
+
.up
ld a, [PlayerMapY]
sub 4
@@ -78427,6 +53634,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
jr z, .ok
and a
ret
+
.left
ld a, [PlayerMapX]
sub $4
@@ -78434,6 +53642,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
jr z, .ok
and a
ret
+
.right
ld a, [PlayerMapX]
sub 4
@@ -78444,6 +53653,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820)
jr z, .ok
and a
ret
+
.ok
scf
ret
@@ -78453,16 +53663,16 @@ GetCoordOfUpperLeftCorner:: ; 10486d
ld hl, OverworldMap
ld a, [XCoord]
bit 0, a
- jr nz, .asm_10487d
+ jr nz, .increment_then_halve1
srl a
add $1
- jr .asm_104881
+ jr .resume
-.asm_10487d
+.increment_then_halve1
add $1
srl a
-.asm_104881
+.resume
ld c, a
ld b, $0
add hl, bc
@@ -78472,21 +53682,21 @@ GetCoordOfUpperLeftCorner:: ; 10486d
ld b, $0
ld a, [YCoord]
bit 0, a
- jr nz, .asm_10489a
+ jr nz, .increment_then_halve2
srl a
add $1
- jr .asm_10489e
+ jr .resume2
-.asm_10489a
+.increment_then_halve2
add $1
srl a
-.asm_10489e
+.resume2
call AddNTimes
ld a, l
ld [wd194], a
ld a, h
- ld [wd195], a
+ ld [wd194 + 1], a
ld a, [YCoord]
and $1
ld [wd196], a
@@ -78512,14 +53722,14 @@ DoMysteryGift: ; 1048ba (41:48ba)
ld [wca01], a
ld a, $14
ld [wca02], a
- ld a, [rIE] ; $ff00+$ff
+ ld a, [rIE]
push af
call Function104a95
ld d, a
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
pop af
- ld [rIE], a ; $ff00+$ff
+ ld [rIE], a
push de
call ClearTileMap
call EnableLCD
@@ -78559,9 +53769,9 @@ DoMysteryGift: ; 1048ba (41:48ba)
cp $4
jr z, .asm_104963
call Function104a71
- callba Function10619d
+ callba RestoreMobileEventIndex
callba MobileFn_1060a9
- callba Function106187
+ callba BackupMobileEventIndex
.asm_104963
ld a, [wc90f]
and a
@@ -78586,7 +53796,7 @@ DoMysteryGift: ; 1048ba (41:48ba)
call GetMysteryGiftBank
ld a, [wc910]
ld c, a
- callba MysteryGiftGetItem
+ callba MysteryGiftGetItemHeldEffect
ld a, c
ld [s0_abe4], a
ld [wNamedObjectIndexBuffer], a
@@ -78614,7 +53824,7 @@ Function1049c2: ; 1049c2 (41:49c2)
Function1049c5: ; 1049c5 (41:49c5)
call PrintText
ld a, $e3
- ld [rLCDC], a ; $ff00+$40
+ ld [rLCDC], a
ret
; 1049cd (41:49cd)
@@ -78740,12 +53950,12 @@ Function104a95: ; 104a95 (41:4a95)
.asm_104a9f
call Function104d96
call Function104ddd
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $10
jp z, Function104bd0
cp $6c
jr nz, .asm_104a9f
- ld a, [$ffbb]
+ ld a, [hPrintNum9]
cp $2
jr z, Function104b22
ld hl, $ffb3
@@ -78756,10 +53966,10 @@ Function104a95: ; 104a95 (41:4a95)
jp nz, Function104bd0
jr asm_104b0a
.asm_104ac8
- ld a, [rLY] ; $ff00+$44
+ ld a, [rLY]
cp $90
jr c, .asm_104ac8
- ld c, $56
+ ld c, rRP % $100
ld a, $c0
ld [$ff00+c], a
ld b, $f0
@@ -78767,19 +53977,19 @@ Function104a95: ; 104a95 (41:4a95)
push bc
call Function105038
ld b, $2
- ld c, $56
+ ld c, rRP % $100
.asm_104add
ld a, [$ff00+c]
and b
ld b, a
- ld a, [rLY] ; $ff00+$44
+ ld a, [rLY]
cp $90
jr nc, .asm_104add
.asm_104ae6
ld a, [$ff00+c]
and b
ld b, a
- ld a, [rLY] ; $ff00+$44
+ ld a, [rLY]
cp $90
jr c, .asm_104ae6
ld a, b
@@ -78788,11 +53998,11 @@ Function104a95: ; 104a95 (41:4a95)
jr z, .asm_104a9f
or a
jr nz, .asm_104a9f
- ld a, [$ffc4]
+ ld a, [hMoneyTemp + 1]
bit 1, a
jr z, .asm_104ad5
ld a, $10
- ld [$ffbc], a
+ ld [hPrintNum10], a
jp Function104bd0
Function104b04: ; 104b04 (41:4b04)
@@ -78829,7 +54039,7 @@ Function104b40: ; 104b40 (41:4b40)
Function104b49: ; 104b49 (41:4b49)
call Function105033
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
ld a, [$ffb3]
@@ -78844,7 +54054,7 @@ Function104b49: ; 104b49 (41:4b49)
call Function104d4e
ret nz
call Function10502e
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
call Function104d43
@@ -78855,7 +54065,7 @@ Function104b49: ; 104b49 (41:4b49)
call Function104d56
ret nz
call Function105033
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
@@ -78867,7 +54077,7 @@ Function104b88: ; 104b88 (41:4b88)
call Function104d4e
ret nz
call Function10502e
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
call Function104d43
@@ -78877,7 +54087,7 @@ Function104b88: ; 104b88 (41:4b88)
call Function104d56
ret nz
call Function105033
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
ld a, [$ffb3]
@@ -78891,13 +54101,13 @@ Function104b88: ; 104b88 (41:4b88)
call Function104d4e
ret nz
call Function10502e
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
Function104bd0: ; 104bd0 (41:4bd0)
nop
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $10
jr z, .asm_104c18
cp $6c
@@ -78916,7 +54126,7 @@ Function104bd0: ; 104bd0 (41:4bd0)
call Function1050fb
ld a, $26
ld [wca02], a
- ld a, [$ffbb]
+ ld a, [hPrintNum9]
cp $2
jr z, .asm_104c10
call Function104d43
@@ -78927,14 +54137,14 @@ Function104bd0: ; 104bd0 (41:4bd0)
jr nz, Function104bd0
jp Function104b22
.asm_104c18
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
push af
call Function104da0
xor a
- ld [rIF], a ; $ff00+$f
- ld a, [rIE] ; $ff00+$ff
+ ld [rIF], a
+ ld a, [rIE]
or $1
- ld [rIE], a ; $ff00+$ff
+ ld [rIE], a
ei
call DelayFrame
pop af
@@ -78947,12 +54157,12 @@ Function104c2d: ; 104c2d (41:4c2d)
.asm_104c37
call Function104d96
call Function104ddd
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $10
jp z, Function104d1c
cp $6c
jr nz, .asm_104c37
- ld a, [$ffbb]
+ ld a, [hPrintNum9]
cp $2
jr z, .asm_104c6c
call Function104c8a
@@ -78983,7 +54193,7 @@ Function104c8a: ; 104c8a (41:4c8a)
call Function104d56
ret nz
call Function105033
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
ld a, [$ffb3]
@@ -78998,7 +54208,7 @@ Function104c8a: ; 104c8a (41:4c8a)
call Function104d4e
ret nz
call Function10502e
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
call Function104d43
@@ -79009,7 +54219,7 @@ Function104c8a: ; 104c8a (41:4c8a)
call Function104d56
ret nz
call Function105033
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
@@ -79021,7 +54231,7 @@ Function104cd2: ; 104cd2 (41:4cd2)
call Function104d4e
ret nz
call Function10502e
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
call Function104d43
@@ -79031,7 +54241,7 @@ Function104cd2: ; 104cd2 (41:4cd2)
call Function104d56
ret nz
call Function105033
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret nz
ld a, [$ffb3]
@@ -79046,20 +54256,20 @@ Function104cd2: ; 104cd2 (41:4cd2)
call Function104d4e
ret nz
call Function10502e
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
Function104d1c: ; 104d1c (41:4d1c)
nop
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
push af
call Function104da0
xor a
- ld [rIF], a ; $ff00+$f
- ld a, [rIE] ; $ff00+$ff
+ ld [rIF], a
+ ld a, [rIE]
or $1
- ld [rIE], a ; $ff00+$ff
+ ld [rIE], a
ei
call DelayFrame
pop af
@@ -79067,42 +54277,42 @@ Function104d1c: ; 104d1c (41:4d1c)
Function104d32: ; 104d32 (41:4d32)
ld a, $80
- ld [$ffbc], a
+ ld [hPrintNum10], a
and a
ret
Function104d38: ; 104d38 (41:4d38)
call Function104d96
call Function104e46
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
Function104d43: ; 104d43 (41:4d43)
call Function104d96
call Function104dfe
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
Function104d4e: ; 104d4e (41:4d4e)
call Function104e93
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
Function104d56: ; 104d56 (41:4d56)
call Function104f57
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
cp $6c
ret
Function104d5e: ; 104d5e (41:4d5e)
call Function104d74
ld a, $4
- ld [rIE], a ; $ff00+$ff
+ ld [rIE], a
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
call Function104d96
xor a
ld b, a
@@ -79115,46 +54325,46 @@ Function104d5e: ; 104d5e (41:4d5e)
Function104d74: ; 104d74 (41:4d74)
xor a
- ld [rTAC], a ; $ff00+$7
+ ld [rTAC], a
ld a, $fe
- ld [rTMA], a ; $ff00+$6
- ld [rTIMA], a ; $ff00+$5
+ ld [rTMA], a
+ ld [rTIMA], a
ld a, $2
- ld [rTAC], a ; $ff00+$7
+ ld [rTAC], a
or $4
- ld [rTAC], a ; $ff00+$7
+ ld [rTAC], a
ret
Function104d86: ; 104d86 (41:4d86)
xor a
- ld [rTAC], a ; $ff00+$7
- ld [rTMA], a ; $ff00+$6
- ld [rTIMA], a ; $ff00+$5
+ ld [rTAC], a
+ ld [rTMA], a
+ ld [rTIMA], a
ld a, $2
- ld [rTAC], a ; $ff00+$7
+ ld [rTAC], a
or $4
- ld [rTAC], a ; $ff00+$7
+ ld [rTAC], a
ret
Function104d96: ; 104d96 (41:4d96)
ld a, $c0
call Function104e8c
ld a, $1
- ld [$ffbb], a
+ ld [hPrintNum9], a
ret
Function104da0: ; 104da0 (41:4da0)
xor a
call Function104e8c
ld a, $2
- ld [rTAC], a ; $ff00+$7
+ ld [rTAC], a
ret
Function104da9: ; 104da9 (41:4da9)
inc d
ret z
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
halt
ld a, [$ff00+c]
bit 1, a
@@ -79166,7 +54376,7 @@ Function104db7: ; 104db7 (41:4db7)
inc d
ret z
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
halt
ld a, [$ff00+c]
bit 1, a
@@ -79181,7 +54391,7 @@ Function104dc5: ; 104dc5 (41:4dc5)
dec d
ret z
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
halt
jr .asm_104dc8
@@ -79192,7 +54402,7 @@ Function104dd1: ; 104dd1 (41:4dd1)
dec d
ret z
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
halt
jr .asm_104dd4
@@ -79200,16 +54410,16 @@ Function104ddd: ; 104ddd (41:4ddd)
ld d, $0
ld e, d
ld a, $1
- ld [$ffbb], a
+ ld [hPrintNum9], a
.asm_104de4
call Function105038
ld b, $2
- ld c, $56
- ld a, [$ffc4]
+ ld c, rRP % $100
+ ld a, [hMoneyTemp + 1]
bit 1, a
jr z, .asm_104df6
ld a, $10
- ld [$ffbc], a
+ ld [hPrintNum10], a
ret
.asm_104df6
bit 0, a
@@ -79219,7 +54429,7 @@ Function104ddd: ; 104ddd (41:4ddd)
jr nz, .asm_104de4
Function104dfe: ; 104dfe (41:4dfe)
- ld c, $56
+ ld c, rRP % $100
ld d, $0
ld e, d
call Function104db7
@@ -79232,7 +54442,7 @@ Function104dfe: ; 104dfe (41:4dfe)
call Function104da9
jp z, Function104f42
ld a, $6c
- ld [$ffbc], a
+ ld [hPrintNum10], a
ld d, $3d
call Function104dd1
ld d, $5
@@ -79258,7 +54468,7 @@ asm_104e3a: ; 104e3a (41:4e3a)
Function104e46: ; 104e46 (41:4e46)
ld a, $2
- ld [$ffbb], a
+ ld [hPrintNum9], a
ld c, $56
ld d, $0
ld e, d
@@ -79285,19 +54495,19 @@ Function104e46: ; 104e46 (41:4e46)
ld d, $3d
call Function104dd1
ld a, $6c
- ld [$ffbc], a
+ ld [hPrintNum10], a
ret
Function104e8c: ; 104e8c (41:4e8c)
- ld [rRP], a ; $ff00+$56
+ ld [rRP], a
ld a, $ff
- ld [$ffbc], a
+ ld [hPrintNum10], a
ret
Function104e93: ; 104e93 (41:4e93)
xor a
- ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
- ld [hMathBuffer], a ; $ff00+$b8
+ ld [hDivisor], a
+ ld [hMathBuffer], a
push hl
push bc
ld c, $56
@@ -79313,21 +54523,21 @@ Function104e93: ; 104e93 (41:4e93)
pop bc
pop hl
call Function104ed6
- ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier)
- ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand)
- ld a, [hMathBuffer] ; $ff00+$b8
+ ld a, [hDivisor]
+ ld [hQuotient], a
+ ld a, [hMathBuffer]
ld [$ffb5], a
push hl
ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
ld b, $2
call Function104ed6
- ld hl, $ffbc
+ ld hl, hPrintNum10
ld b, $1
call Function104faf
- ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand)
- ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
+ ld a, [hQuotient]
+ ld [hDivisor], a
ld a, [$ffb5]
- ld [hMathBuffer], a ; $ff00+$b8
+ ld [hMathBuffer], a
pop hl
ret
@@ -79343,7 +54553,7 @@ Function104ed6: ; 104ed6 (41:4ed6)
cpl
ld b, a
ld a, $f4
- ld [rTMA], a ; $ff00+$6
+ ld [rTMA], a
.asm_104eee
inc b
jr z, .asm_104f2e
@@ -79351,18 +54561,18 @@ Function104ed6: ; 104ed6 (41:4ed6)
ld [$ffb6], a
ld a, [hli]
ld e, a
- ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier)
+ ld a, [hDivisor]
add e
- ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
- ld a, [hMathBuffer] ; $ff00+$b8
+ ld [hDivisor], a
+ ld a, [hMathBuffer]
adc $0
- ld [hMathBuffer], a ; $ff00+$b8
+ ld [hMathBuffer], a
.asm_104f02
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
halt
ld a, $c1
- ld [rRP], a ; $ff00+$56
+ ld [rRP], a
ld d, $1
ld a, e
rlca
@@ -79370,15 +54580,15 @@ Function104ed6: ; 104ed6 (41:4ed6)
jr nc, .asm_104f13
inc d
.asm_104f13
- ld a, [rTIMA] ; $ff00+$5
+ ld a, [rTIMA]
cp $f8
jr c, .asm_104f13
ld a, $c0
- ld [rRP], a ; $ff00+$56
+ ld [rRP], a
dec d
jr z, .asm_104f25
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
halt
.asm_104f25
ld a, [$ffb6]
@@ -79388,9 +54598,9 @@ Function104ed6: ; 104ed6 (41:4ed6)
jr .asm_104f02
.asm_104f2e
ld a, $fe
- ld [rTMA], a ; $ff00+$6
+ ld [rTMA], a
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
halt
ld d, $5
call Function104dc5
@@ -79399,27 +54609,27 @@ Function104ed6: ; 104ed6 (41:4ed6)
ret
Function104f42: ; 104f42 (41:4f42)
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
or $2
- ld [$ffbc], a
+ ld [hPrintNum10], a
ret
Function104f49: ; 104f49 (41:4f49)
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
or $1
- ld [$ffbc], a
+ ld [hPrintNum10], a
ret
Function104f50: ; 104f50 (41:4f50)
- ld a, [$ffbc]
+ ld a, [hPrintNum10]
or $80
- ld [$ffbc], a
+ ld [hPrintNum10], a
ret
Function104f57: ; 104f57 (41:4f57)
xor a
- ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
- ld [hMathBuffer], a ; $ff00+$b8
+ ld [hDivisor], a
+ ld [hMathBuffer], a
push bc
push hl
ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand)
@@ -79432,13 +54642,13 @@ Function104f57: ; 104f57 (41:4f57)
pop af
cp b
jp c, Function104f50
- ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand)
+ ld a, [hQuotient]
cp $5a
jp nz, Function104f50
call Function104faf
- ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier)
+ ld a, [hDivisor]
ld d, a
- ld a, [hMathBuffer] ; $ff00+$b8
+ ld a, [hMathBuffer]
ld e, a
push hl
push de
@@ -79457,19 +54667,19 @@ Function104f57: ; 104f57 (41:4f57)
push de
ld d, $3d
call Function104dd1
- ld hl, $ffbc
+ ld hl, hPrintNum10
ld b, $1
call Function104ed6
pop de
pop hl
ld a, d
- ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
+ ld [hDivisor], a
ld a, e
- ld [hMathBuffer], a ; $ff00+$b8
+ ld [hMathBuffer], a
ret
Function104faf: ; 104faf (41:4faf)
- ld c, $56
+ ld c, rRP % $100
ld d, $0
call Function104db7
jp z, Function104f42
@@ -79483,7 +54693,7 @@ Function104faf: ; 104faf (41:4faf)
cpl
ld b, a
xor a
- ld [$ffc5], a
+ ld [hMoneyTemp + 2], a
call Function104d86
.asm_104fd2
inc b
@@ -79506,10 +54716,10 @@ Function104faf: ; 104faf (41:4faf)
bit 1, a
jr nz, .asm_104fe5
.asm_104fed
- ld a, [$ffc5]
+ ld a, [hMoneyTemp + 2]
ld d, a
- ld a, [rTIMA] ; $ff00+$5
- ld [$ffc5], a
+ ld a, [rTIMA]
+ ld [hMoneyTemp + 2], a
sub d
cp $12
jr c, .asm_104ffd
@@ -79529,17 +54739,17 @@ Function104faf: ; 104faf (41:4faf)
.asm_10500b
ld a, e
ld [hli], a
- ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier)
+ ld a, [hDivisor]
add e
- ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier)
- ld a, [hMathBuffer] ; $ff00+$b8
+ ld [hDivisor], a
+ ld a, [hMathBuffer]
adc $0
- ld [hMathBuffer], a ; $ff00+$b8
+ ld [hMathBuffer], a
jr .asm_104fd2
.asm_10501a
call Function104d74
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
ld d, $0
call Function104da9
jp z, Function104f42
@@ -79557,18 +54767,18 @@ Function105033: ; 105033 (41:5033)
Function105038: ; 105038 (41:5038)
ld a, $20
- ld [rJOYP], a ; $ff00+$0
+ ld [rJOYP], a
rept 2
- ld a, [rJOYP] ; $ff00+$0
+ ld a, [rJOYP]
endr
cpl
and $f
swap a
ld b, a
ld a, $10
- ld [rJOYP], a ; $ff00+$0
+ ld [rJOYP], a
rept 6
- ld a, [rJOYP] ; $ff00+$0
+ ld a, [rJOYP]
endr
cpl
and $f
@@ -79577,11 +54787,11 @@ endr
ld a, [hMoneyTemp]
xor c
and c
- ld [$ffc4], a
+ ld [hMoneyTemp + 1], a
ld a, c
ld [hMoneyTemp], a
ld a, $30
- ld [rJOYP], a ; $ff00+$0
+ ld [rJOYP], a
ret
Function105069: ; 105069 (41:5069)
@@ -79707,17 +54917,17 @@ Function10510b: ; 10510b (41:510b)
cp EGG
jr z, .asm_10513e
push hl
- ld hl, PartyMon1Level - PartyMon1
+ ld hl, MON_LEVEL
add hl, bc
ld a, [hl]
ld [de], a
inc de
- ld hl, PartyMon1Species - PartyMon1
+ ld hl, MON_SPECIES
add hl, bc
ld a, [hl]
ld [de], a
inc de
- ld hl, PartyMon1Moves - PartyMon1
+ ld hl, MON_MOVES
add hl, bc
push bc
ld bc, NUM_MOVES
@@ -79726,7 +54936,7 @@ Function10510b: ; 10510b (41:510b)
pop hl
.asm_10513e
push hl
- ld hl, PartyMon2 - PartyMon1
+ ld hl, PARTYMON_STRUCT_LENGTH
add hl, bc
ld b, h
ld c, l
@@ -79740,7 +54950,7 @@ Function10510b: ; 10510b (41:510b)
jp CloseSRAM
Function105153: ; 105153 (41:5153)
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
ld hl, MysteryGiftGFX
ld de, VTiles2 tile $00
@@ -79893,21 +55103,21 @@ Function105688: ; 105688 (41:5688)
call Function1050fb
ld a, $24
ld [wca02], a
- ld a, [rIE] ; $ff00+$ff
+ ld a, [rIE]
push af
call Function104c2d
ld d, a
xor a
- ld [rIF], a ; $ff00+$f
+ ld [rIF], a
pop af
- ld [rIE], a ; $ff00+$ff
+ ld [rIE], a
ld a, d
cp $10
jp z, Function105712
cp $6c
jp nz, Function10571a
call Function1056eb
- ld c, $3c
+ ld c, 60
call DelayFrames
call Function105777
ld hl, Text_10575e
@@ -79945,7 +55155,7 @@ endr
dec c
ret z
push bc
- ld c, $4
+ ld c, 4
call DelayFrames
pop bc
jr .asm_1056ed
@@ -79964,15 +55174,15 @@ Function10571a: ; 10571a (41:571a)
asm_105726: ; 105726 (41:5726)
call PrintText
ld a, $e3
- ld [rLCDC], a ; $ff00+$40
+ ld [rLCDC], a
ret
; 10572e (41:572e)
String_10572e: ; 10572e
- db "エーボタン", $1f, "おすと"
+ db "エーボタン¯おすと"
next "つうしん", $4a, "おこなわれるよ!"
- next "ビーボタン", $1f, "おすと"
- next "つうしん", $1f, "ちゅうし します"
+ next "ビーボタン¯おすと"
+ next "つうしん¯ちゅうし します"
db "@"
; 10575e
@@ -80039,12 +55249,12 @@ Function10578c: ; 10578c (41:578c)
ret
Function1057d7: ; 1057d7 (41:57d7)
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
ld hl, MysteryGiftJP_GFX
ld de, VTiles2 tile $00
ld a, BANK(MysteryGiftJP_GFX)
- ld bc, $400
+ lb bc, 4, 0
call FarCopyBytes
ld hl, MysteryGiftJP_GFX + $400
ld de, VTiles0 tile $00
@@ -80236,7 +55446,7 @@ UsedMoveText: ; 105db9
ld [wd265], a
push hl
- callba Function34548
+ callba CheckUserIsCharging
pop hl
jr nz, .grammar
@@ -80551,1094 +55761,7 @@ UpdateUsedMoves: ; 105ed0
ret
; 105ef6
-
-
-SECTION "bank41_2", ROMX, BANK[$41]
-
-Mobile_HallOfFame2:: mobile ; 0x105ef6
- ld a, $5
- call GetSRAMBank
- ld hl, GameTimeHours
- ld de, $a001
- ld bc, $0004
- call CopyBytes
- ld hl, $a010
- ld de, $a005
- ld bc, $0004
- call CopyBytes
- ld hl, $a039
- ld de, $a009
- ld bc, $0004
- call CopyBytes
- ld hl, $a01b
- ld de, $a00d
- ld bc, $0003
- call CopyBytes
- call Function106162
- call CloseSRAM
- ret
-; 105f33
-
-MagikarpLength_Mobile: mobile ; 105f33
- ld a, $5
- call GetSRAMBank
- ld de, Buffer1
- ld hl, $a07b
- ld a, [de]
- cp [hl]
- jr z, .asm_105f47
- jr nc, .asm_105f4f
- jr .asm_105f55
-
-.asm_105f47
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- dec hl
- dec de
- jr c, .asm_105f55
-
-.asm_105f4f
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- dec de
- ld [hl], a
-
-.asm_105f55
- ld hl, $a07d
- ld a, [hli]
- or [hl]
- dec hl
- jr z, .asm_105f6d
- ld a, [de]
- cp [hl]
- jr z, .asm_105f65
- jr c, .asm_105f6d
- jr .asm_105f72
-
-.asm_105f65
- inc hl
- inc de
- ld a, [de]
- cp [hl]
- jr nc, .asm_105f72
- dec hl
- dec de
-
-.asm_105f6d
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
-
-.asm_105f72
- call Function106162
- call CloseSRAM
- ret
-; 105f79
-
-MobileFn_105f79: mobile ; 105f79
- ld a, $5
- call GetSRAMBank
- ld a, [hProduct]
- ld hl, $a07f
- cp [hl]
- jr z, .asm_105f8b
- jr nc, .asm_105f92
- jr .asm_105f98
-
-.asm_105f8b
- inc hl
- ld a, [hMultiplicand]
- cp [hl]
- jr c, .asm_105f98
- dec hl
-
-.asm_105f92
- ld a, [hProduct]
- ld [hli], a
- ld a, [hMultiplicand]
- ld [hl], a
-
-.asm_105f98
- call Function106162
- call CloseSRAM
- ret
-; 105f9f
-
-MobileFn_105f9f: mobile ; 105f9f
- ld a, $5
- call GetSRAMBank
- ld hl, $a070
- inc [hl]
- jr nz, .asm_105fae
- dec hl
- inc [hl]
- inc hl
-
-.asm_105fae
- dec hl
- ld a, [$a071]
- cp [hl]
- jr z, .asm_105fb9
- jr c, .asm_105fc1
- jr .asm_105fc9
-
-.asm_105fb9
- inc hl
- ld a, [$a072]
- cp [hl]
- jr nc, .asm_105fc9
- dec hl
-
-.asm_105fc1
- ld a, [hli]
- ld [$a071], a
- ld a, [hl]
- ld [$a072], a
-
-.asm_105fc9
- call Function106162
- call CloseSRAM
- ret
-; 105fd0
-
-MobileFn_105fd0: mobile ; 105fd0
- ld a, $5
- call GetSRAMBank
- ld hl, $a06f
- xor a
- ld [hli], a
- ld [hl], a
- call Function106162
- call CloseSRAM
- ret
-; 105fe3
-
-MobileFn_105fe3: mobile ; 105fe3
- ld a, $5
- call GetSRAMBank
- ld hl, $a076
- ld a, e
- add [hl]
- ld [hld], a
- ld a, d
- adc [hl]
- ld [hld], a
- jr nc, .asm_106001
- inc [hl]
- jr nz, .asm_106001
- dec hl
- inc [hl]
- jr nz, .asm_106001
- ld a, $ff
-rept 3
- ld [hli], a
-endr
- ld [hl], a
-
-.asm_106001
- call Function106162
- call CloseSRAM
- ret
-; 106008
-
-MobileFn_106008: mobile ; 106008
- ld a, $5
- call GetSRAMBank
- ld hl, $a07a
- 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, .asm_106027
- inc [hl]
- jr nz, .asm_106027
- ld a, $ff
-rept 3
- ld [hli], a
-endr
- ld [hl], a
-
-.asm_106027
- call Function106162
- call CloseSRAM
- ret
-; 10602e
-
-MobileFn_10602e: mobile ; 10602e (41:602e)
- ld hl, $a010
- jp Function106117
-
-MobileFn_106035: mobile ; 106035
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- and a
- call CloseSRAM
- ret nz
- ld hl, $a014
- jp Function106123
-
-MobileFn_106049: mobile ; 106049
- ld hl, $a018
- jp Function10611d
-
-MobileFn_106050: mobile ; 106050
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- ret z
- ld hl, $a01b
- jp Function10611d
-
-MobileFn_10605d: mobile ; 10605d
- ld a, [BattleType]
- cp BATTLETYPE_TUTORIAL
- ret z
- ld hl, $a01e
- jp Function10611d
-
-MobileFn_10606a: mobile ; 10606a
- ld hl, $a021
- jp Function10611d
-
-MobileFn_106071: mobile ; 106071
- ld hl, $a024
- jp Function10611d
-
-Mobile_HallOfFame:: mobile ; 0x106078
- ld hl, $a027
- jp Function10611d
-
-MobileFn_10607f: mobile ; 10607f (41:607f)
- ld hl, $a02a
- jp Function10611d
-
-MobileFn_106086: mobile ; 106086
- ld hl, $a02d
- jp Function10611d
-
-MobileFn_10608d: mobile ; 10608d (41:608d)
- ld hl, $a030
- jp Function10611d
-
-MobileFn_106094: mobile ; 106094
- ld hl, $a033
- jp Function10611d
-
-MobileFn_10609b: mobile ; 10609b
- ld hl, $a036
- jp Function10611d
-
-Mobile_HealParty: mobile ; 1060a2
- ld hl, $a039
- jp Function10611d
-
-MobileFn_1060a9: mobile ; 1060a9 (41:60a9)
- ld hl, $a03c
- jr Function10611d
-
-MobileFn_1060af: mobile ; 1060af
- ld hl, $a03f
- jr Function10611d
-
-MobileFn_1060b5: mobile ; 1060b5
- ld hl, $a042
- jr Function10611d
-
-MobileFn_1060bb: mobile ; 1060bb
- ld hl, $a045
- jr Function10611d
-
-MobileFn_1060c1: mobile ; 1060c1
- ld hl, $a048
- jr Function10611d
-
-MobileFn_1060c7: mobile ; 1060c7
- ld hl, $a04b
- jr Function10611d
-
-MobileFn_1060cd: mobile ; 1060cd
- ld hl, $a04e
- jr Function106123
-
-MobileFn_1060d3: mobile ; 1060d3
- ld hl, $a051
- jr Function10611d
-
-MobileFn_1060d9: mobile ; 1060df
- ld hl, $a054
- jr Function10611d
-
-MobileFn_1060df: mobile ; 1060df
- ld hl, $a057
- jr Function10611d
-
-MobileFn_1060e5: mobile ; 1060e5
- ld a, [hBattleTurn]
- and a
- ret nz
- ld hl, $a05a
- jr Function10611d
-
-MobileFn_1060ef: mobile ; 1060ef
- ld hl, $a05d
- jr Function10611d
-
-MobileFn_1060f5: mobile ; 1060f5
- ld hl, $a060
- jr Function10611d
-
-MobileFn_1060fb: mobile ; 1060fb
- ld hl, $a063
- jr Function10611d
-
-MobileFn_106101: mobile ; 106101
- ld hl, $a066
- jr Function10611d
-; 106107
-
-MobileFn_106107: mobile ; 106107
- ld hl, $a069
- jr Function10611d
-; 10610d
-
-MobileFn_10610d: mobile ; 10610d
- ld a, [hBattleTurn]
- and a
- ret nz
- ld hl, $a06c
- jr Function10611d
-; 106117
-
-Function106117: ; 106117
- push bc
- ld bc, 3
- jr Function10612d
-; 10611d
-
-Function10611d: ; 10611d
- push bc
- ld bc, 2
- jr Function10612d
-; 106123
-
-Function106123: ; 106123
- push bc
- ld bc, 1
- jr Function10612d
-; 106129
-
-Function106129: ; 106129
- push bc
- ld bc, 0
-
-Function10612d: ; 10612d
- ld a, $5
- 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 Function106162
- call CloseSRAM
- pop bc
- ret
-; 106155
-
-MobileFn_106155: mobile ; 106155
- ld a, $5
- call GetSRAMBank
- call Function106162
- call CloseSRAM
- ret
-; 106162
-
-Function106162: ; 106162
- push de
- call Function10616e
- ld hl, $a081
- ld [hl], d
- inc hl
- ld [hl], e
- pop de
- ret
-; 10616e
-
-Function10616e: ; 10616e
- push bc
- ld hl, $a001
- ld bc, $0080
- 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
-
-
-Function106187: ; 106187
- ld a, BANK(s1_be3c)
- call GetSRAMBank
- ld a, [s1_be3c]
- push af
- ld a, BANK(s1_be44)
- call GetSRAMBank
- pop af
- ld [s1_be44], a
- call CloseSRAM
- ret
-; 10619d
-
-
-Function10619d: ; 10619d (41:619d)
- ld a, BANK(s1_be44)
- call GetSRAMBank
- ld a, [s1_be44]
- push af
- ld a, BANK(s1_be3c)
- call GetSRAMBank
- pop af
- ld [s1_be3c], a
- call CloseSRAM
- ret
-; 1061b3 (41:61b3)
-
-Function1061b3: ; 1061b3
- call Function10616e
- ld hl, $a081
- ld a, d
- cp [hl]
- ret nz
- inc hl
- ld a, e
- cp [hl]
- ret
-; 1061c0
-
-Function1061c0: ; 1061c0 (41:61c0)
- ld a, BANK(s1_be3c)
- call GetSRAMBank
- xor a
- ld [s1_be3c], a
- call CloseSRAM
- ret
-; 1061cd (41:61cd)
-
-Function1061cd: ; 1061cd
- ld hl, $a001
- ld bc, $0082
- xor a
- call ByteFill
- ld hl, $a07d
- ld a, $3
- ld [hli], a
- ld [hl], $e8
- call Function106162
- ld hl, $a001
- ld de, $a084
- ld bc, $0082
- call CopyBytes
- ret
-; 1061ef
-
-
-Function1061ef:: ; 1061ef
- push bc
- xor a
- ld [hProduct], a
- ld [hMultiplicand], a
- ld [$ffb5], a
- ld a, b
- and $f
- cp $1
- jr z, .asm_106212
- cp $2
- jr z, .asm_10620e
- cp $3
- jr z, .asm_10620a
- ld a, [de]
- ld [hProduct], a
- inc de
-
-.asm_10620a
- ld a, [de]
- ld [hMultiplicand], a
- inc de
-
-.asm_10620e
- ld a, [de]
- ld [$ffb5], a
- inc de
-
-.asm_106212
- ld a, [de]
- ld [$ffb6], a
- inc de
- push de
- xor a
- ld [$ffbb], a
- ld a, b
- ld [$ffbc], a
- ld a, c
- cp 2
- jr z, .asm_10626a
- ld de, ._2
- cp 3
- jr z, .asm_106256
- ld de, ._3
- cp 4
- jr z, .asm_106256
- ld de, ._4
- cp 5
- jr z, .asm_106256
- ld de, ._5
- cp 6
- jr z, .asm_106256
- ld de, ._6
- cp 7
- jr z, .asm_106256
- ld de, ._7
- cp 8
- jr z, .asm_106256
- ld de, ._8
- cp 9
- jr z, .asm_106256
- ld de, ._9
-
-.asm_106256
-rept 3
- inc de
-endr
-rept 2
- dec a
-endr
-.asm_10625b
- push af
- call Function1062b2
- call Function1062ff
-rept 4
- inc de
-endr
- pop af
- dec a
- jr nz, .asm_10625b
-
-.asm_10626a
- ld c, 0
- ld a, [$ffb6]
-.asm_10626e
- cp 10
- jr c, .asm_106277
- sub 10
- inc c
- jr .asm_10626e
-
-.asm_106277
- ld b, a
- ld a, [$ffbb]
- or c
- ld [$ffbb], a
- jr nz, .asm_106284
- call Function1062f7
- jr .asm_106288
-
-.asm_106284
- ld a, "0"
- add c
- ld [hl], a
-
-.asm_106288
- 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, [$ffb6]
- sub b
- ld [$ffba], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [$ffb5]
- sbc b
- ld [$ffb9], a
- ld a, [de]
- dec de
- ld b, a
- ld a, [hMultiplicand]
- sbc b
- ld [hMathBuffer], a
- ld a, [de]
-rept 3
- inc de
-endr
- ld b, a
- ld a, [hProduct]
- sbc b
- ld [hMultiplier], a
- jr c, .asm_1062eb
- ld a, [hMultiplier]
- ld [hProduct], a
- ld a, [hMathBuffer]
- ld [hMultiplicand], a
- ld a, [$ffb9]
- ld [$ffb5], a
- ld a, [$ffba]
- ld [$ffb6], a
- inc c
- jr .asm_1062b4
-
-.asm_1062eb
- ld a, [$ffbb]
- or c
- jr z, Function1062f7
- ld a, $f6
- add c
- ld [hl], a
- ld [$ffbb], a
- ret
-
-Function1062f7:
- ld a, [$ffbc]
- bit 7, a
- ret z
-
- ld [hl], $f6
- ret
-; 1062ff
-
-Function1062ff: ; 1062ff
- ld a, [$ffbc]
- bit 7, a
- jr nz, .asm_10630d
- bit 6, a
- jr z, .asm_10630d
- ld a, [$ffbb]
- and a
- ret z
-
-.asm_10630d
- inc hl
- ret
-; 10630f
-
-Function10630f: ; 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
-
-Function10632f: ; 10632f
- or a
- mobile
-
- 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, .asm_106359
- and a
- jr z, .asm_106359
- and $8f
- cp c
- jr nz, .asm_106359
- ld c, a
- scf
- ret
-
-.asm_106359
- xor a
- ld c, a
- ret
-; 10635c
-
-Function10635c: ; 10635c
- ld a, [wcd25]
- bit 7, a
- ret nz
- ld a, [wcd25]
- ld hl, Jumptable_10636a
- rst JumpTable
- ret
-; 10636a
-
-Jumptable_10636a: ; 10636a
- dw Function10637c
- dw Function106392
- dw Function1063cc
- dw Function1063d8
- dw Function1063e5
- dw Function1063f3
- dw Function106403
- dw Function106442
- dw Function106453
-; 10637c
-
-Function10637c: ; 10637c
- ld de, wcd30
- ld hl, $0041
- ld bc, $0041
- ld a, $40
- call Function3e32
- ld a, [wcd25]
- inc a
- ld [wcd25], 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 Function10632f
- ld a, c
- and a
- jr nz, .asm_1063b4
- ld a, $b
- ld [wcf64], a
- ld a, $7
- ld [wcd25], a
- ret
-
-.asm_1063b4
- ld a, $7
- ld [wcf64], a
- ld a, $7
- ld [wcd25], a
- ret
-
-.asm_1063bf
- ld a, $1
- ld [wcf64], a
- ld a, [wcd25]
- inc a
- ld [wcd25], a
- ret
-; 1063cc
-
-Function1063cc: ; 1063cc
- ld a, $78
- ld [wcd42], a
- ld a, [wcd25]
- inc a
- ld [wcd25], a
-
-Function1063d8: ; 1063d8
- ld hl, wcd42
- dec [hl]
- ret nz
- ld a, [wcd25]
- inc a
- ld [wcd25], a
- ret
-; 1063e5
-
-Function1063e5: ; 1063e5
- ld a, [wcf64]
- cp $3
- ret nz
- ld a, [wcd25]
- inc a
- ld [wcd25], a
- ret
-; 1063f3
-
-Function1063f3: ; 1063f3
- ld de, wcd31
- ld a, $32
- call Function3e32
- ld a, [wcd25]
- inc a
- ld [wcd25], 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, [wcd25]
- inc a
- ld [wcd25], a
- ret
-
-.asm_106426
- call Function10632f
- ld a, c
- and a
- jr z, .asm_106435
- ld a, [wcd25]
- inc a
- ld [wcd25], a
- ret
-
-.asm_106435
- ld c, $0
- call MobileFn_106314
- ld a, [wcd25]
- inc a
- ld [wcd25], a
- ret
-; 106442
-
-Function106442: ; 106442
- ld a, $36
- call Function3e32
- xor a
- ld [hMobile], a
- ld [$ffc9], a
- ld a, [wcd25]
- inc a
- ld [wcd25], a
-
-Function106453: ; 106453
- ld a, [wcd25]
- set 7, a
- ld [wcd25], a
- nop
- ld a, $4
- ld [wcf64], a
- ret
-; 106462
-
-Function106462: ; 106462
- ret
-; 106463
-
-Function106463: ; 106463
- ret
-; 106464
-
-Function106464:: ; 106464
- ld de, GFX_f9214
- ld hl, VTiles2 tile $60
- lb bc, BANK(GFX_f9214), 1
- call Get2bpp
- ld de, GFX_f9424
- ld hl, VTiles2 tile $61
- lb bc, BANK(GFX_f9424), 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 Functionfb4cc
- ret
-; 10649b
-
-Function10649b: ; 10649b
- ld a, [TextBoxFrame]
- and $7
- ld bc, $0030
- 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, GFX_f9204
- ld c, $1
- ld b, BANK(GFX_f9204)
- 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, w6_d000
- 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, GFX_f9214 + $20
- lb bc, BANK(GFX_f9214), $11
- call Get2bpp
- ret
-; 106514
-
-GFX_106514:
-INCBIN "gfx/unknown/106514.2bpp"
-
-
-Function106594:: ; 106594
- ld de, GFX_1065ad
- ld hl, VTiles1
- lb bc, BANK(GFX_1065ad), $80
- call Get2bpp
- ld de, GFX_1065ad + $800
- ld hl, VTiles2 tile $7f
- lb bc, BANK(GFX_1065ad), 1
- call Get2bpp
- ret
-; 1065ad
-
-GFX_1065ad:
-INCBIN "gfx/unknown/1065ad.2bpp"
-
+INCLUDE "misc/mobile_41.asm"
INCLUDE "misc/mobile_42.asm"
@@ -81657,7 +55780,19 @@ INCLUDE "engine/title.asm"
INCLUDE "misc/mobile_45.asm"
+INCLUDE "misc/mobile_46.asm"
+SECTION "bank47", ROMX, BANK[$47]
+
+INCLUDE "misc/battle_tower_47.asm"
+
+SECTION "bank5B", ROMX, BANK[$5B]
+
+INCLUDE "misc/mobile_5b.asm"
+
+SECTION "bank5C", ROMX, BANK[$5C]
+
+INCLUDE "misc/mobile_5c.asm"
SECTION "bank5D", ROMX, BANK[$5D]
@@ -81666,14 +55801,14 @@ INCLUDE "text/phone/extra3.asm"
SECTION "bank5E", ROMX, BANK[$5E]
-Function178000:
+_UpdateBattleHUDs:
callba DrawPlayerHUD
ld hl, PlayerHPPal
call SetHPPal
callba DrawEnemyHUD
ld hl, EnemyHPPal
call SetHPPal
- callba Function3ee27
+ callba FinishBattleAnim
ret
; 17801f (5e:401f)
@@ -81748,7 +55883,7 @@ INCBIN "gfx/misc/unown_font.2bpp"
Function1dc1b0: ; 1dc1b0
hlcoord 0, 0
ld de, wca90
- ld bc, $0154
+ ld bc, 17 * SCREEN_WIDTH
call CopyBytes
ld hl, wcab5
ld a, $62
@@ -81799,8 +55934,8 @@ Function1dc1b0: ; 1dc1b0
Function1dc213: ; 1dc213
ld hl, wca90
- ld bc, $00a0
- ld a, $7f
+ ld bc, $a0
+ ld a, " "
call ByteFill
ld hl, wca90
ld a, $36
@@ -81880,7 +56015,7 @@ String_1dc34c:
; 1dc381
Function1dc381: ; 1dc381
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a
@@ -81906,14 +56041,14 @@ Function1dc381: ; 1dc381
ld [MonType], a
callba CopyPkmnToTempMon
hlcoord 0, 7
- ld b, $9
- ld c, $12
+ ld b, 9
+ ld c, 18
call TextBox
hlcoord 8, 2
ld a, [TempMonLevel]
call Function383d
hlcoord 12, 2
- ld [hl], $71
+ ld [hl], "◀" ; Filled left triangle
inc hl
ld de, TempMonMaxHP
lb bc, 2, 3
@@ -81926,14 +56061,14 @@ Function1dc381: ; 1dc381
hlcoord 8, 4
call PlaceString
hlcoord 9, 6
- ld [hl], $f3
+ ld [hl], "/"
call GetPokemonName
hlcoord 10, 6
call PlaceString
hlcoord 8, 0
- ld [hl], $74
+ ld [hl], "№"
inc hl
- ld [hl], $e8
+ ld [hl], "."
inc hl
ld de, wd265
lb bc, PRINTNUM_LEADINGZEROS | 1, 3
@@ -81971,7 +56106,7 @@ Function1dc381: ; 1dc381
.asm_1dc469
hlcoord 0, 0
- call Function378b
+ call _PrepMonFrontpic
call WaitBGMap
ld b, $3
call GetSGBLayout
@@ -81980,7 +56115,7 @@ Function1dc381: ; 1dc381
; 1dc47b
Function1dc47b: ; 1dc47b
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call ClearSprites
xor a
@@ -82038,7 +56173,7 @@ Function1dc507: ; 1dc507
; 1dc50e
Function1dc50e: ; 1dc50e
- ld bc, $000b
+ ld bc, NAME_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld e, l
@@ -82064,20 +56199,20 @@ Function1dc51a: ; 1dc51a
Function1dc52c: ; 1dc52c
callba GetGender
- ld a, $7f
- jr c, .asm_1dc53c
- ld a, $ef
- jr nz, .asm_1dc53c
- ld a, $f5
+ ld a, " "
+ jr c, .got_gender
+ ld a, "♂"
+ jr nz, .got_gender
+ ld a, "♀"
-.asm_1dc53c
+.got_gender
hlcoord 17, 2
ld [hl], a
ld bc, TempMonDVs
callba CheckShininess
ret nc
hlcoord 18, 2
- ld [hl], $3f
+ ld [hl], "<SHINY>"
ret
; 1dc550
@@ -82088,7 +56223,7 @@ String1dc554: ; 1dc554
db "MOVE@"
String1dc559: ; 1dc559
- db $73, "№.@"
+ db "<ID>№.@"
String1dc55d: ; 1dc55d
db "ATTACK"
@@ -82134,30 +56269,32 @@ Function1dd6a9: ; 1dd6a9
ret
; 1dd6bb
-Function1dd6bb: ; 1dd6bb (77:56bb)
+PrintHoursMins ; 1dd6bb (77:56bb)
+; Hours in b, minutes in c
ld a, b
cp 12
push af
- jr c, .asm_1dd6c7
- jr z, .asm_1dd6cc
- sub $c
- jr .asm_1dd6cc
-.asm_1dd6c7
+ jr c, .AM
+ jr z, .PM
+ sub 12
+ jr .PM
+.AM
or a
- jr nz, .asm_1dd6cc
- ld a, $c
-.asm_1dd6cc
+ 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], $7f
+ ld [hl], " "
lb bc, 1, 2
call PrintNum
- ld [hl], $9c
+ ld [hl], ":"
inc hl
ld d, h
ld e, l
@@ -82171,9 +56308,9 @@ Function1dd6bb: ; 1dd6bb (77:56bb)
pop bc
ld de, String_AM
pop af
- jr c, .asm_1dd6f7
+ jr c, .place_am_pm
ld de, String_PM
-.asm_1dd6f7
+.place_am_pm
inc hl
call PlaceString
ret
@@ -82198,7 +56335,7 @@ Function1ddf26: ; 1ddf26 (77:5f26)
ld hl, LZ_1ddf33
ld de, VTiles2 tile $31
lb bc, BANK(LZ_1ddf33), $3a
- call Functione73
+ call DecompressRequest2bpp
ret
; 1ddf33 (77:5f33)
@@ -82220,7 +56357,7 @@ INCBIN "gfx/unknown/1de0e1.2bpp.lz"
Function1de171: ; 1de171 (77:6171)
ld a, $32
hlcoord 0, 17
- lb bc, 0, 12
+ ld bc, 12
call ByteFill
hlcoord 0, 1
lb bc, 15, 11
@@ -82440,7 +56577,7 @@ INCBIN "gfx/misc/pokegear.2bpp.lz"
Function1de5c8: ; 1de5c8
ld c, $0
- ld hl, $0029
+ ld hl, $29
add hl, de
ld a, [hli]
cp $84
@@ -82571,9 +56708,7 @@ INCLUDE "text/battle_tower.asm"
SECTION "bank7C", ROMX, BANK[$7C]
-BattleTowerTrainerData:: ; What exactly it is, I don't know
-; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied)
-INCBIN "unknown/1f0000.bin"
+INCLUDE "data/battle_tower_2.asm"
SECTION "bank7D", ROMX, BANK[$7D]
diff --git a/maps/AzaleaGym.asm b/maps/AzaleaGym.asm
index cd22312ae..3efc3a376 100644
--- a/maps/AzaleaGym.asm
+++ b/maps/AzaleaGym.asm
@@ -34,7 +34,7 @@ BugsyScript:
setevent EVENT_BEAT_BUG_CATCHER_JOSH
writetext BugsyText_HiveBadgeSpeech
keeptextopen
- verbosegiveitem TM_FURY_CUTTER, 1
+ verbosegiveitem TM_FURY_CUTTER
iffalse .NoRoomForFuryCutter
setevent EVENT_GOT_TM49_FURY_CUTTER
writetext BugsyText_FuryCutterSpeech
@@ -371,8 +371,8 @@ AzaleaGym_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugsyScript, -1
- person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherbenny, -1
+ person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugsyScript, -1
+ person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherbenny, -1
person_event SPRITE_BUG_CATCHER, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherAl, -1
person_event SPRITE_BUG_CATCHER, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherJosh, -1
person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay1, -1
diff --git a/maps/AzaleaPokeCenter1F.asm b/maps/AzaleaPokeCenter1F.asm
index 9ef009d48..821becf39 100644
--- a/maps/AzaleaPokeCenter1F.asm
+++ b/maps/AzaleaPokeCenter1F.asm
@@ -93,4 +93,4 @@ AzaleaPokeCenter1F_MapEventHeader:
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18db28, -1
person_event SPRITE_GENTLEMAN, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GentlemanScript_0x18db2b, -1
person_event SPRITE_FISHING_GURU, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x18db2e, -1
- person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, PokefanFScript_0x18db31, -1
+ person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, PokefanFScript_0x18db31, -1
diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm
index bbc574c4b..493437e7f 100644
--- a/maps/AzaleaTown.asm
+++ b/maps/AzaleaTown.asm
@@ -155,7 +155,7 @@ UnknownScript_0x1980e5:
keeptextopen
writetext UnknownText_0x198628
closetext
- verbosegiveitem GS_BALL, 1
+ verbosegiveitem GS_BALL
spriteface $d, LEFT
setflag ENGINE_HAVE_EXAMINED_GS_BALL
clearevent EVENT_ILEX_FOREST_LASS
@@ -482,14 +482,14 @@ AzaleaTown_MapEventHeader:
.PersonEvents:
db 12
person_event SPRITE_AZALEA_ROCKET, 9, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET
- person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, GrampsScript_0x1980b1, -1
+ person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, GrampsScript_0x1980b1, -1
person_event SPRITE_TEACHER, 13, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x1980c5, -1
person_event SPRITE_YOUNGSTER, 9, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1980c8, -1
- person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
- person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, WhiteApricornTree, -1
+ person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES
+ person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, WhiteApricornTree, -1
person_event SPRITE_AZALEA_ROCKET, 10, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN
person_event SPRITE_AZALEA_ROCKET, 16, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS
person_event SPRITE_KURT_OUTSIDE, 5, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT
diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm
index 83b8e002b..a6788486e 100644
--- a/maps/BattleTower1F.asm
+++ b/maps/BattleTower1F.asm
@@ -3,22 +3,22 @@ BattleTower1F_MapScriptHeader:
db 2
; triggers
- dw UnknownScript_0x9e39d, 0
- dw UnknownScript_0x9e3d3, 0
+ dw .Trigger0, 0
+ dw .Trigger1, 0
.MapCallbacks:
db 0
-UnknownScript_0x9e39d:
- writebyte $9
- special Function170687
- iffalse UnknownScript_0x9e3d1
- writebyte $2
- special Function170687
- if_equal $0, UnknownScript_0x9e3d1
- if_equal $2, UnknownScript_0x9e3c4
- if_equal $3, UnknownScript_0x9e3d1
- if_equal $4, UnknownScript_0x9e3d1
+.Trigger0:
+ writebyte BATTLE_TOWER_ACTION_09
+ special BattleTowerAction
+ iffalse .SkipEverything
+ writebyte BATTLE_TOWER_ACTION_02
+ special BattleTowerAction
+ if_equal $0, .SkipEverything
+ if_equal $2, .priorityjump1
+ if_equal $3, .SkipEverything
+ if_equal $4, .SkipEverything
loadfont
writetext UnknownText_0x9f037
closetext
@@ -26,17 +26,15 @@ UnknownScript_0x9e39d:
priorityjump UnknownScript_0x9e44e
end
-UnknownScript_0x9e3c4:
+.priorityjump1:
priorityjump UnknownScript_0x9e555
-
-UnknownScript_0x9e3c7:
- writebyte $4
- special Function170687
- writebyte $6
- special Function170687
-UnknownScript_0x9e3d1:
+ writebyte BATTLE_TOWER_ACTION_04
+ special BattleTowerAction
+ writebyte BATTLE_TOWER_ACTION_06
+ special BattleTowerAction
+.SkipEverything:
dotrigger $1
-UnknownScript_0x9e3d3:
+.Trigger1:
end
MapBattleTower1FSignpost0Script:
@@ -51,14 +49,14 @@ UnknownScript_0x9e3e0:
end
ReceptionistScript_0x9e3e2:
- writebyte $2
- special Function170687
- if_equal $3, BattleTowerBattleRoomScript_0x9f4e4
+ writebyte BATTLE_TOWER_ACTION_02
+ special BattleTowerAction
+ if_equal $3, BattleTowerBattleRoomScript_0x9f4e4 ; maps/BattleTowerBattleRoom.asm
loadfont
writetext Text_BattleTowerWelcomesYou
keeptextopen
- writebyte $0
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_00
+ special BattleTowerAction
if_not_equal $0, Script_Menu_ChallengeExplanationCancel
jump Script_BattleTowerIntroductionYesNo
@@ -71,8 +69,8 @@ Script_Menu_ChallengeExplanationCancel: ; 0x9e3fc
jump UnknownScript_0x9e4b0
Script_ChoseChallenge: ; 0x9e40f
- writebyte $1a
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_1A ; ResetBattleTowerTrainerSRAM
+ special BattleTowerAction
special SpecialCheckForBattleTowerRules
if_not_equal $0, Script_CloseText
writetext Text_SaveBeforeEnteringBattleRoom
@@ -82,24 +80,24 @@ Script_ChoseChallenge: ; 0x9e40f
special Special_TryQuickSave
iffalse Script_Menu_ChallengeExplanationCancel
dotrigger $1
- writebyte $1
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_01
+ special BattleTowerAction
special Function1700b0
if_equal $a, Script_Menu_ChallengeExplanationCancel
if_not_equal $0, UnknownScript_0x9e550
- writebyte $11
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_11
+ special BattleTowerAction
writetext Text_RightThisWayToYourBattleRoom
closetext
loadmovesprites
- writebyte $1e
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_1E
+ special BattleTowerAction
jump UnknownScript_0x9e454
UnknownScript_0x9e44e:
loadmovesprites
- writebyte $8
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_08
+ special BattleTowerAction
UnknownScript_0x9e454:
musicfadeout MUSIC_NONE, $8
domaptrigger BATTLE_TOWER_BATTLE_ROOM, $0
@@ -107,8 +105,8 @@ UnknownScript_0x9e454:
domaptrigger BATTLE_TOWER_HALLWAY, $0
follow $2, PLAYER
applymovement $2, MovementData_0x9e571
- writebyte $a
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_0A
+ special BattleTowerAction
warpsound
disappear $2
stopfollow
@@ -117,16 +115,16 @@ UnknownScript_0x9e454:
end
Script_GivePlayerHisPrize: ; 0x9e47a
- writebyte $1c
- special Function170687
- writebyte $1b
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_1C
+ special BattleTowerAction
+ writebyte BATTLE_TOWER_ACTION_1B
+ special BattleTowerAction
if_equal $12, Script_YourPackIsStuffedFull
itemtotext $0, $1
- giveitem $ff, $5
+ giveitem ITEM_FROM_MEM, 5
writetext Text_PlayerGotFive
- writebyte $1d
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_1D
+ special BattleTowerAction
loadmovesprites
end
@@ -143,8 +141,8 @@ Script_BattleTowerIntroductionYesNo: ; 0x9e49e
Script_BattleTowerExplanation: ; 0x9e4a5
writetext Text_BattleTowerIntroduction_2
UnknownScript_0x9e4a8:
- writebyte $1
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_01
+ special BattleTowerAction
jump Script_Menu_ChallengeExplanationCancel
UnknownScript_0x9e4b0:
@@ -170,8 +168,8 @@ UnknownScript_0x9e4be:
iffalse Script_Menu_ChallengeExplanationCancel
special Special_TryQuickSave
iffalse Script_Menu_ChallengeExplanationCancel
- writebyte $1
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_01
+ special BattleTowerAction
special Function1700ba
if_equal $a, Script_Menu_ChallengeExplanationCancel
if_not_equal $0, UnknownScript_0x9e550
@@ -184,16 +182,16 @@ UnknownScript_0x9e4be:
end
UnknownScript_0x9e4ea:
- writebyte $18
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_18
+ special BattleTowerAction
if_not_equal $0, Script_APkmnLevelExceeds
- writebyte $19
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_19
+ special BattleTowerAction
if_not_equal $0, Script_MayNotEnterABattleRoomUnderL70
special SpecialCheckForBattleTowerRules
if_not_equal $0, Script_CloseText
- writebyte $5
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_05
+ special BattleTowerAction
if_equal $0, UnknownScript_0x9e512
writetext UnknownText_0x9ecb0
jump UnknownScript_0x9e515
@@ -210,10 +208,10 @@ UnknownScript_0x9e515:
special Special_TryQuickSave
iffalse Script_Menu_ChallengeExplanationCancel
dotrigger $1
- writebyte $6
- special Function170687
- writebyte $12
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_06
+ special BattleTowerAction
+ writebyte BATTLE_TOWER_ACTION_12
+ special BattleTowerAction
writetext Text_RightThisWayToYourBattleRoom
closetext
jump UnknownScript_0x9e44e
@@ -813,5 +811,5 @@ BattleTower1F_MapEventHeader:
person_event SPRITE_RECEPTIONIST, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x9e3e2, -1
person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x9e55d, -1
person_event SPRITE_COOLTRAINER_F, 9, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x9e568, -1
- person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x9e56b, -1
+ person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x9e56b, -1
person_event SPRITE_GRANNY, 3, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GrannyScript_0x9e56e, -1
diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm
index 82966d56a..e22057abf 100644
--- a/maps/BattleTowerBattleRoom.asm
+++ b/maps/BattleTowerBattleRoom.asm
@@ -27,13 +27,13 @@ Script_BattleRoomLoop: ; 0x9f425
waitbutton
applymovement $2, MovementData_0x9e592
loadfont
- storetext 1
+ battletowertext 1
keeptextopen
loadmovesprites
- special Function170215 ; calls predef startbattle
- special FadeBlackBGMap
+ special BattleTowerBattle ; calls predef startbattle
+ special FadeOutPalettes
reloadmap
- if_not_equal $0, UnknownScript_0x9f4c2
+ if_not_equal $0, Script_FailedBattleTowerChallenge
copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64
if_equal BATTLETOWER_NROFTRAINERS, Script_BeatenAllTrainers
applymovement $2, MovementData_0x9e597
@@ -46,10 +46,10 @@ Script_BattleRoomLoop: ; 0x9f425
closetext
loadmovesprites
playmusic MUSIC_HEAL
- special FadeBlackBGMap
+ special FadeOutPalettes
special LoadMapPalettes
pause 60
- special FadeInBGMap
+ special FadeInPalettes
special RestartMapMusic
loadfont
writetext Text_NextUpOpponentNo
@@ -65,36 +65,36 @@ Script_DontBattleNextOpponent: ; 0x9f483
writetext Text_SaveAndEndTheSession
yesorno
iffalse Script_DontSaveAndEndTheSession
- writebyte $7
- special Function170687
- writebyte $1f
- special Function170687
- writebyte $3
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_07
+ special BattleTowerAction
+ writebyte BATTLE_TOWER_ACTION_1F
+ special BattleTowerAction
+ writebyte BATTLE_TOWER_ACTION_03
+ special BattleTowerAction
playsound SFX_SAVE
waitbutton
- special FadeBlackBGMap
+ special FadeOutPalettes
special Reset
Script_DontSaveAndEndTheSession: ; 0x9f4a3
writetext Text_CancelYourBattleRoomChallenge
yesorno
iffalse Script_ContinueAndBattleNextOpponent
- writebyte $4
- special Function170687
- writebyte $6
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_04
+ special BattleTowerAction
+ writebyte BATTLE_TOWER_ACTION_06
+ special BattleTowerAction
loadmovesprites
- special FadeBlackBGMap
- warpfacing $1, BATTLE_TOWER_1F, $7, $7
+ special FadeOutPalettes
+ warpfacing UP, BATTLE_TOWER_1F, $7, $7
loadfont
jump UnknownScript_0x9e4b0
-UnknownScript_0x9f4c2:
+Script_FailedBattleTowerChallenge:
pause 60
special Special_BattleTowerFade
- warpfacing $1, BATTLE_TOWER_1F, $7, $7
- writebyte $4
- special Function170687
+ warpfacing UP, BATTLE_TOWER_1F, $7, $7
+ writebyte BATTLE_TOWER_ACTION_04
+ special BattleTowerAction
loadfont
writetext Text_ThanksForVisiting
closetext
@@ -104,15 +104,15 @@ UnknownScript_0x9f4c2:
Script_BeatenAllTrainers: ; 0x9f4d9
pause 60
special Special_BattleTowerFade
- warpfacing $1, BATTLE_TOWER_1F, $7, $7
+ warpfacing UP, BATTLE_TOWER_1F, $7, $7
BattleTowerBattleRoomScript_0x9f4e4:
loadfont
writetext Text_CongratulationsYouveBeatenAllTheTrainers
jump Script_GivePlayerHisPrize
UnknownScript_0x9f4eb:
- writebyte $4
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_04
+ special BattleTowerAction
loadfont
writetext Text_TooMuchTimeElapsedNoRegister
closetext
@@ -120,10 +120,10 @@ UnknownScript_0x9f4eb:
end
UnknownScript_0x9f4f7:
- writebyte $4
- special Function170687
- writebyte $6
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_04
+ special BattleTowerAction
+ writebyte BATTLE_TOWER_ACTION_06
+ special BattleTowerAction
loadfont
writetext Text_ThanksForVisiting
writetext Text_WeHopeToServeYouAgain
diff --git a/maps/BattleTowerElevator.asm b/maps/BattleTowerElevator.asm
index 8ba599340..944f15988 100644
--- a/maps/BattleTowerElevator.asm
+++ b/maps/BattleTowerElevator.asm
@@ -20,8 +20,8 @@ UnknownScript_0x9f568:
follow $2, PLAYER
applymovement $2, MovementData_0x9f58f
applymovement PLAYER, MovementData_0x9f592
- writebyte $a
- special Function170687
+ writebyte BATTLE_TOWER_ACTION_0A
+ special BattleTowerAction
playsound SFX_ELEVATOR
earthquake 60
waitbutton
diff --git a/maps/BattleTowerHallway.asm b/maps/BattleTowerHallway.asm
index d0b80362f..8e5ed3743 100644
--- a/maps/BattleTowerHallway.asm
+++ b/maps/BattleTowerHallway.asm
@@ -3,29 +3,29 @@ BattleTowerHallway_MapScriptHeader:
db 2
; triggers
- dw UnknownScript_0x9f5bb, 0
- dw UnknownScript_0x9f5c0, 0
+ dw .Trigger0, 0
+ dw .Trigger1, 0
.MapCallbacks:
db 0
-UnknownScript_0x9f5bb:
- priorityjump UnknownScript_0x9f5c1
+.Trigger0:
+ priorityjump .ChooseBattleRoom
dotrigger $1
-UnknownScript_0x9f5c0:
+.Trigger1:
end
-UnknownScript_0x9f5c1:
+.ChooseBattleRoom:
follow $2, PLAYER
- callasm Function_0x9f5cb
- jump Script_WalkToChosenBattleRoom
+ callasm .asm_load_battle_room
+ jump .WalkToChosenBattleRoom
-Function_0x9f5cb:
+.asm_load_battle_room:
ld a, [rSVBK]
push af
- ld a, 3
+ ld a, BANK(wBTChoiceOfLvlGroup)
ld [rSVBK], a
ld a, [wBTChoiceOfLvlGroup]
ld [ScriptVar], a
@@ -38,35 +38,35 @@ Function_0x9f5cb:
; enter different rooms for different levels to battle against
; at least it should look like that
; because all warps lead to the same room
-Script_WalkToChosenBattleRoom: ; 0x9f5dc
- if_equal 3, Script_WalkToBattleRoomL30L40
- if_equal 4, Script_WalkToBattleRoomL30L40
- if_equal 5, Script_WalkToBattleRoomL50L60
- if_equal 6, Script_WalkToBattleRoomL50L60
- if_equal 7, Script_WalkToBattleRoomL70L80
- if_equal 8, Script_WalkToBattleRoomL70L80
- if_equal 9, Script_WalkToBattleRoomL90L100
- if_equal 10, Script_WalkToBattleRoomL90L100
+.WalkToChosenBattleRoom: ; 0x9f5dc
+ if_equal 3, .L30L40
+ if_equal 4, .L30L40
+ if_equal 5, .L50L60
+ if_equal 6, .L50L60
+ if_equal 7, .L70L80
+ if_equal 8, .L70L80
+ if_equal 9, .L90L100
+ if_equal 10, .L90L100
applymovement $2, MovementData_0x9e57a
- jump Script_PlayerEntersBattleRoom
+ jump .EnterBattleRoom
-Script_WalkToBattleRoomL30L40: ; 0x9f603
+.L30L40: ; 0x9f603
applymovement $2, MovementData_0x9e57c
- jump Script_PlayerEntersBattleRoom
+ jump .EnterBattleRoom
-Script_WalkToBattleRoomL50L60: ; 0x9f60a
+.L50L60: ; 0x9f60a
applymovement $2, MovementData_0x9e586
- jump Script_PlayerEntersBattleRoom
+ jump .EnterBattleRoom
-Script_WalkToBattleRoomL70L80: ; 0x9f611
+.L70L80: ; 0x9f611
applymovement $2, MovementData_0x9e584
- jump Script_PlayerEntersBattleRoom
+ jump .EnterBattleRoom
-Script_WalkToBattleRoomL90L100: ; 0x9f618
+.L90L100: ; 0x9f618
applymovement $2, MovementData_0x9e582
- jump Script_PlayerEntersBattleRoom
+ jump .EnterBattleRoom
-Script_PlayerEntersBattleRoom: ; 0x9f61f
+.EnterBattleRoom: ; 0x9f61f
faceperson PLAYER, $2
loadfont
writetext Text_PleaseStepThisWay
diff --git a/maps/BattleTowerOutside.asm b/maps/BattleTowerOutside.asm
index e2f82f492..6e58f3400 100644
--- a/maps/BattleTowerOutside.asm
+++ b/maps/BattleTowerOutside.asm
@@ -143,6 +143,6 @@ BattleTowerOutside_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_STANDING_YOUNGSTER, 12, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x9f85f, -1
- person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x9f862, -1
+ person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x9f862, -1
person_event SPRITE_SAILOR, 18, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
- person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1
+ person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1
diff --git a/maps/BillsHouse.asm b/maps/BillsHouse.asm
index f049e96e3..f5077287b 100644
--- a/maps/BillsHouse.asm
+++ b/maps/BillsHouse.asm
@@ -117,7 +117,7 @@ UnknownScript_0x18963b:
checkevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x189592
scall UnknownScript_0x1896b5
- verbosegiveitem EVERSTONE, 1
+ verbosegiveitem EVERSTONE
iffalse UnknownScript_0x1896cc
setevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA
setevent EVENT_GAVE_KURT_APRICORNS
@@ -128,7 +128,7 @@ UnknownScript_0x189652:
checkevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x1895b3
scall UnknownScript_0x1896b5
- verbosegiveitem LEAF_STONE, 1
+ verbosegiveitem LEAF_STONE
iffalse UnknownScript_0x1896cc
setevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA
setevent EVENT_GAVE_KURT_APRICORNS
@@ -139,7 +139,7 @@ UnknownScript_0x189669:
checkevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x1895d4
scall UnknownScript_0x1896b5
- verbosegiveitem WATER_STONE, 1
+ verbosegiveitem WATER_STONE
iffalse UnknownScript_0x1896cc
setevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA
setevent EVENT_GAVE_KURT_APRICORNS
@@ -150,7 +150,7 @@ UnknownScript_0x189680:
checkevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
iftrue UnknownScript_0x18961a
scall UnknownScript_0x1896b5
- verbosegiveitem FIRE_STONE, 1
+ verbosegiveitem FIRE_STONE
iffalse UnknownScript_0x1896cc
setevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA
setevent EVENT_GAVE_KURT_APRICORNS
@@ -159,7 +159,7 @@ UnknownScript_0x189680:
UnknownScript_0x189697:
scall UnknownScript_0x1896b5
- verbosegiveitem THUNDERSTONE, 1
+ verbosegiveitem THUNDERSTONE
iffalse UnknownScript_0x1896cc
setevent EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA
loadmovesprites
diff --git a/maps/BlackthornCity.asm b/maps/BlackthornCity.asm
index 889f4e374..1c396777f 100644
--- a/maps/BlackthornCity.asm
+++ b/maps/BlackthornCity.asm
@@ -93,7 +93,7 @@ SantosScript:
.MetSantos
writetext SantosGivesGiftText
keeptextopen
- verbosegiveitem SPELL_TAG, 1
+ verbosegiveitem SPELL_TAG
iffalse SantosDoneScript
setevent EVENT_GOT_SPELL_TAG_FROM_SANTOS
writetext SantosGaveGiftText
diff --git a/maps/BlackthornDodrioTradeHouse.asm b/maps/BlackthornDodrioTradeHouse.asm
index 71bdd2937..e0d2557d9 100644
--- a/maps/BlackthornDodrioTradeHouse.asm
+++ b/maps/BlackthornDodrioTradeHouse.asm
@@ -35,4 +35,4 @@ BlackthornDodrioTradeHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Emy, -1
+ person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Emy, -1
diff --git a/maps/BlackthornDragonSpeechHouse.asm b/maps/BlackthornDragonSpeechHouse.asm
index afa9f8b36..0686184de 100644
--- a/maps/BlackthornDragonSpeechHouse.asm
+++ b/maps/BlackthornDragonSpeechHouse.asm
@@ -58,5 +58,5 @@ BlackthornDragonSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x195949, -1
- person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, EkansScript_0x19594c, -1
+ person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x195949, -1
+ person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, EkansScript_0x19594c, -1
diff --git a/maps/BlackthornGym1F.asm b/maps/BlackthornGym1F.asm
index ca810cf23..5bd21b7bc 100644
--- a/maps/BlackthornGym1F.asm
+++ b/maps/BlackthornGym1F.asm
@@ -62,7 +62,7 @@ UnknownScript_0x194e69:
iftrue UnknownScript_0x194e94
writetext UnknownText_0x195196
keeptextopen
- giveitem TM_DRAGONBREATH, $1
+ giveitem TM_DRAGONBREATH
iffalse UnknownScript_0x194e8e
itemtotext TM_DRAGONBREATH, $0
writetext UnknownText_0x1951bf
diff --git a/maps/BlackthornGym2F.asm b/maps/BlackthornGym2F.asm
index 77624204f..b24b0c662 100644
--- a/maps/BlackthornGym2F.asm
+++ b/maps/BlackthornGym2F.asm
@@ -147,9 +147,9 @@ BlackthornGym2F_MapEventHeader:
db 8
person_event SPRITE_COOLTRAINER_M, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermCody, -1
person_event SPRITE_COOLTRAINER_F, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfFran, -1
- person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1
- person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2
- person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3
- person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
- person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
- person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
+ person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1
+ person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2
+ person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3
+ person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
+ person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
+ person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1
diff --git a/maps/BlackthornPokeCenter1F.asm b/maps/BlackthornPokeCenter1F.asm
index a5d6017f2..6d1656043 100644
--- a/maps/BlackthornPokeCenter1F.asm
+++ b/maps/BlackthornPokeCenter1F.asm
@@ -63,5 +63,5 @@ BlackthornPokeCenter1F_MapEventHeader:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x195b79, -1
person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x195b7c, -1
- person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x195b7f, -1
+ person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x195b7f, -1
person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x195b82, -1
diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm
index bf458b5b6..1540239bc 100644
--- a/maps/BluesHouse.asm
+++ b/maps/BluesHouse.asm
@@ -30,10 +30,10 @@ UnknownScript_0x19b0de:
writetext UnknownText_0x19b266
closetext
loadmovesprites
- special FadeBlackBGMap
+ special FadeOutPalettes
playmusic MUSIC_HEAL
pause 60
- special FadeInBGMap
+ special FadeInPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x19b296
@@ -158,4 +158,4 @@ BluesHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, DaisyScript_0x19b0d0, -1
+ person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, DaisyScript_0x19b0d0, -1
diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm
index 6c1136b33..b318e2e39 100644
--- a/maps/BurnedTower1F.asm
+++ b/maps/BurnedTower1F.asm
@@ -309,8 +309,8 @@ BurnedTower1F_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, BurnedTower1FRock, -1
- person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE
+ person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, BurnedTower1FRock, -1
+ person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE
person_event SPRITE_SILVER, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER
- person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY
- person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP
+ person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY
+ person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP
diff --git a/maps/BurnedTowerB1F.asm b/maps/BurnedTowerB1F.asm
index c3c0e387b..d90ca49b3 100644
--- a/maps/BurnedTowerB1F.asm
+++ b/maps/BurnedTowerB1F.asm
@@ -251,12 +251,12 @@ BurnedTowerB1F_MapEventHeader:
.PersonEvents:
db 9
- person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BurnedTowerB1FBoulder, -1
- person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
- person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
- person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BurnedTowerB1FBoulder, -1
+ person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
+ person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1
person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2
- person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE
+ person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE
person_event SPRITE_SUPER_NERD, 12, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER
diff --git a/maps/CeladonCafe.asm b/maps/CeladonCafe.asm
index 7f2bb2208..dd626fe31 100644
--- a/maps/CeladonCafe.asm
+++ b/maps/CeladonCafe.asm
@@ -86,7 +86,7 @@ EatathonContestPoster:
CeladonCafeTrashcan:
checkevent EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE
iftrue .TrashEmpty
- giveitem LEFTOVERS, $1
+ giveitem LEFTOVERS
iffalse .PackFull
loadfont
itemtotext LEFTOVERS, $0
diff --git a/maps/CeladonCity.asm b/maps/CeladonCity.asm
index 3da01c1bc..798b6ca2a 100644
--- a/maps/CeladonCity.asm
+++ b/maps/CeladonCity.asm
@@ -258,11 +258,11 @@ CeladonCity_MapEventHeader:
.PersonEvents:
db 9
person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a9f43, -1
- person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonCityPoliwrath, -1
+ person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonCityPoliwrath, -1
person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x1a9f50, -1
person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x1a9f53, -1
person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrampsScript_0x1a9f56, -1
person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a9f59, -1
person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9f5c, -1
- person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a9f5f, -1
+ person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a9f5f, -1
person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x1a9f62, -1
diff --git a/maps/CeladonDeptStore1F.asm b/maps/CeladonDeptStore1F.asm
index 24149a093..e87450176 100644
--- a/maps/CeladonDeptStore1F.asm
+++ b/maps/CeladonDeptStore1F.asm
@@ -90,5 +90,5 @@ CeladonDeptStore1F_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x709e0, -1
- person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x709e3, -1
+ person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x709e3, -1
person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x709e6, -1
diff --git a/maps/CeladonDeptStore3F.asm b/maps/CeladonDeptStore3F.asm
index c98f2868c..f28dd9171 100644
--- a/maps/CeladonDeptStore3F.asm
+++ b/maps/CeladonDeptStore3F.asm
@@ -111,4 +111,4 @@ CeladonDeptStore3F_MapEventHeader:
person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x70d31, -1
person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x70d34, -1
person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GameboyKidScript_0x70d3f, -1
- person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x70d4a, -1
+ person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x70d4a, -1
diff --git a/maps/CeladonDeptStore5F.asm b/maps/CeladonDeptStore5F.asm
index 8ac74edff..e7abd43e1 100644
--- a/maps/CeladonDeptStore5F.asm
+++ b/maps/CeladonDeptStore5F.asm
@@ -86,6 +86,6 @@ CeladonDeptStore5F_MapEventHeader:
db 5
person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x71004, -1
person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x7100c, -1
- person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x71014, -1
- person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x71017, -1
+ person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x71014, -1
+ person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x71017, -1
person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x7101a, -1
diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm
index ee9013f0c..2ab328324 100644
--- a/maps/CeladonDeptStore6F.asm
+++ b/maps/CeladonDeptStore6F.asm
@@ -36,7 +36,7 @@ CeladonVendingMachine:
.FreshWater
checkmoney $0, 200
if_equal $2, .NotEnoughMoney
- giveitem FRESH_WATER, $1
+ giveitem FRESH_WATER
iffalse .NotEnoughSpace
takemoney $0, 200
itemtotext FRESH_WATER, $0
@@ -45,7 +45,7 @@ CeladonVendingMachine:
.SodaPop
checkmoney $0, 300
if_equal $2, .NotEnoughMoney
- giveitem SODA_POP, $1
+ giveitem SODA_POP
iffalse .NotEnoughSpace
takemoney $0, 300
itemtotext SODA_POP, $0
@@ -54,7 +54,7 @@ CeladonVendingMachine:
.Lemonade
checkmoney $0, 350
if_equal $2, .NotEnoughMoney
- giveitem LEMONADE, $1
+ giveitem LEMONADE
iffalse .NotEnoughSpace
takemoney $0, 350
itemtotext LEMONADE, $0
@@ -169,4 +169,4 @@ CeladonDeptStore6F_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7117a, -1
- person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_02, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7117d, -1
+ person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7117d, -1
diff --git a/maps/CeladonGameCornerPrizeRoom.asm b/maps/CeladonGameCornerPrizeRoom.asm
index bdea5f770..781833311 100644
--- a/maps/CeladonGameCornerPrizeRoom.asm
+++ b/maps/CeladonGameCornerPrizeRoom.asm
@@ -35,7 +35,7 @@ CeladonPrizeRoom_tmcounterloop:
itemtotext TM_DOUBLE_TEAM, $0
scall CeladonPrizeRoom_askbuy
iffalse CeladonPrizeRoom_cancel
- giveitem TM_DOUBLE_TEAM, 1
+ giveitem TM_DOUBLE_TEAM
iffalse CeladonPrizeRoom_notenoughroom
takecoins 1500
jump CeladonPrizeRoom_purchased
@@ -46,7 +46,7 @@ CeladonPrizeRoom_tmcounterloop:
itemtotext TM_PSYCHIC, $0
scall CeladonPrizeRoom_askbuy
iffalse CeladonPrizeRoom_cancel
- giveitem TM_PSYCHIC, 1
+ giveitem TM_PSYCHIC
iffalse CeladonPrizeRoom_notenoughroom
takecoins 3500
jump CeladonPrizeRoom_purchased
@@ -57,7 +57,7 @@ CeladonPrizeRoom_tmcounterloop:
itemtotext TM_HYPER_BEAM, $0
scall CeladonPrizeRoom_askbuy
iffalse CeladonPrizeRoom_cancel
- giveitem TM_HYPER_BEAM, 1
+ giveitem TM_HYPER_BEAM
iffalse CeladonPrizeRoom_notenoughroom
takecoins 7500
jump CeladonPrizeRoom_purchased
diff --git a/maps/CeladonGym.asm b/maps/CeladonGym.asm
index db63741b8..f8c53a138 100644
--- a/maps/CeladonGym.asm
+++ b/maps/CeladonGym.asm
@@ -32,7 +32,7 @@ ErikaScript_0x72a6a:
iftrue UnknownScript_0x72aae
writetext UnknownText_0x72cb0
keeptextopen
- verbosegiveitem TM_GIGA_DRAIN, 1
+ verbosegiveitem TM_GIGA_DRAIN
iffalse UnknownScript_0x72aae
setevent EVENT_GOT_TM19_GIGA_DRAIN
UnknownScript_0x72aae:
diff --git a/maps/CeladonMansion1F.asm b/maps/CeladonMansion1F.asm
index 793c071ef..c900741f1 100644
--- a/maps/CeladonMansion1F.asm
+++ b/maps/CeladonMansion1F.asm
@@ -91,7 +91,7 @@ CeladonMansion1F_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CeladonMansionManager, -1
- person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FMeowth, -1
- person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FClefairy, -1
- person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_16, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonMansion1FNidoranF, -1
+ person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CeladonMansionManager, -1
+ person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FMeowth, -1
+ person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FClefairy, -1
+ person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonMansion1FNidoranF, -1
diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm
index 341779351..f8dbc5a49 100644
--- a/maps/CeladonMansion3F.asm
+++ b/maps/CeladonMansion3F.asm
@@ -206,7 +206,7 @@ CeladonMansion3F_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x71670, -1
+ person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x71670, -1
person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x71696, -1
person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x716bc, -1
person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x716bf, -1
diff --git a/maps/CeladonMansionRoofHouse.asm b/maps/CeladonMansionRoofHouse.asm
index 46a5b6124..25c3a0dbe 100644
--- a/maps/CeladonMansionRoofHouse.asm
+++ b/maps/CeladonMansionRoofHouse.asm
@@ -22,7 +22,7 @@ PharmacistScript_0x71afd:
UnknownScript_0x71b14:
writetext UnknownText_0x71ba3
keeptextopen
- verbosegiveitem TM_CURSE, 1
+ verbosegiveitem TM_CURSE
iffalse UnknownScript_0x71b25
setevent EVENT_GOT_TM03_CURSE
UnknownScript_0x71b21:
diff --git a/maps/CeruleanCity.asm b/maps/CeruleanCity.asm
index 2f45c8f2c..09b27c93e 100644
--- a/maps/CeruleanCity.asm
+++ b/maps/CeruleanCity.asm
@@ -299,9 +299,9 @@ CeruleanCity_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x184009, -1
- person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x18401d, -1
- person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, CeruleanCitySlowbro, -1
+ person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x184009, -1
+ person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x18401d, -1
+ person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CeruleanCitySlowbro, -1
person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18402a, -1
person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18404a, -1
- person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_03, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x184064, -1
+ person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x184064, -1
diff --git a/maps/CeruleanGym.asm b/maps/CeruleanGym.asm
index a272b6472..10c00d18a 100644
--- a/maps/CeruleanGym.asm
+++ b/maps/CeruleanGym.asm
@@ -176,8 +176,8 @@ MovementData_0x1884eb:
jump_step_up
db $38 ; movement
remove_fixed_facing
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
step_down
step_down
step_end
diff --git a/maps/CeruleanPokeCenter1F.asm b/maps/CeruleanPokeCenter1F.asm
index ef0248bd3..5c72966a0 100644
--- a/maps/CeruleanPokeCenter1F.asm
+++ b/maps/CeruleanPokeCenter1F.asm
@@ -77,4 +77,4 @@ CeruleanPokeCenter1F_MapEventHeader:
db 3
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18820f, -1
person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SuperNerdScript_0x188212, -1
- person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x18821e, -1
+ person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x18821e, -1
diff --git a/maps/CeruleanPoliceStation.asm b/maps/CeruleanPoliceStation.asm
index dd497e881..c4fe89f31 100644
--- a/maps/CeruleanPoliceStation.asm
+++ b/maps/CeruleanPoliceStation.asm
@@ -57,4 +57,4 @@ CeruleanPoliceStation_MapEventHeader:
db 3
person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x18804a, -1
person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x18804d, -1
- person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, DiglettScript_0x188050, -1
+ person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, DiglettScript_0x188050, -1
diff --git a/maps/CeruleanTradeSpeechHouse.asm b/maps/CeruleanTradeSpeechHouse.asm
index 352573506..85c166b1c 100644
--- a/maps/CeruleanTradeSpeechHouse.asm
+++ b/maps/CeruleanTradeSpeechHouse.asm
@@ -65,6 +65,6 @@ CeruleanTradeSpeechHouse_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrannyScript_0x188133, -1
- person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_02, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x188136, -1
- person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, RhydonScript_0x188139, -1
- person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ZubatScript_0x188143, -1
+ person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x188136, -1
+ person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, RhydonScript_0x188139, -1
+ person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ZubatScript_0x188143, -1
diff --git a/maps/CharcoalKiln.asm b/maps/CharcoalKiln.asm
index cc6a4107e..0f2fc3a43 100644
--- a/maps/CharcoalKiln.asm
+++ b/maps/CharcoalKiln.asm
@@ -44,7 +44,7 @@ CharcoalKilnApprentice:
.Thanks
writetext CharcoalKilnApprenticeText2
keeptextopen
- verbosegiveitem CHARCOAL, 1
+ verbosegiveitem CHARCOAL
iffalse .Done
setevent EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN
loadmovesprites
@@ -163,6 +163,6 @@ CharcoalKiln_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS
- person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE
- person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_16, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D
+ person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS
+ person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE
+ person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D
diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm
index 0aec4b65e..af98e3735 100644
--- a/maps/CherrygroveCity.asm
+++ b/maps/CherrygroveCity.asm
@@ -213,7 +213,7 @@ MysticWaterGuy:
iftrue UnknownScript_0x19c183
writetext UnknownText_0x19c766
keeptextopen
- verbosegiveitem MYSTIC_WATER, 1
+ verbosegiveitem MYSTIC_WATER
iffalse UnknownScript_0x19c187
setevent EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE
UnknownScript_0x19c183:
@@ -571,7 +571,7 @@ CherrygroveCity_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_GRAMPS, 6, 32, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE
- person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY
+ person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY
person_event SPRITE_TEACHER, 12, 27, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x19c146, -1
person_event SPRITE_YOUNGSTER, 7, 23, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19c15a, -1
person_event SPRITE_FISHER, 12, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, MysticWaterGuy, -1
diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm
index 7829b0960..f2ce88737 100644
--- a/maps/CianwoodCity.asm
+++ b/maps/CianwoodCity.asm
@@ -89,7 +89,7 @@ PokefanFScript_0x1a0084:
UnknownScript_0x1a009c:
writetext UnknownText_0x1a01e3
keeptextopen
- verbosegiveitem HM_FLY, 1
+ verbosegiveitem HM_FLY
iffalse UnknownScript_0x1a00b1
setevent EVENT_GOT_HM02_FLY
writetext UnknownText_0x1a021d
@@ -401,15 +401,15 @@ CianwoodCity_MapEventHeader:
.PersonEvents:
db 12
- person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, StandingYoungsterScript_0x1a00b3, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, StandingYoungsterScript_0x1a00b3, -1
person_event SPRITE_POKEFAN_M, 33, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x1a00b6, -1
person_event SPRITE_LASS, 42, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, LassScript_0x1a00b9, -1
- person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
- person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
+ person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1
person_event SPRITE_POKEFAN_F, 46, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanFScript_0x1a0084, -1
person_event SPRITE_SUPER_NERD, 21, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE
- person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
+ person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY
diff --git a/maps/CianwoodCityPhotoStudio.asm b/maps/CianwoodCityPhotoStudio.asm
index 2717d7e5b..33644d8fe 100644
--- a/maps/CianwoodCityPhotoStudio.asm
+++ b/maps/CianwoodCityPhotoStudio.asm
@@ -13,7 +13,7 @@ FishingGuruScript_0x9e0e0:
iffalse UnknownScript_0x9e0f3
writetext UnknownText_0x9e142
closetext
- special Function16dc7
+ special PhotoStudio
closetext
loadmovesprites
end
diff --git a/maps/CianwoodGym.asm b/maps/CianwoodGym.asm
index 26f4654a3..f1cde441e 100644
--- a/maps/CianwoodGym.asm
+++ b/maps/CianwoodGym.asm
@@ -49,7 +49,7 @@ ChuckScript_0x9d60f:
setevent EVENT_BEAT_BLACKBELT_LUNG
writetext UnknownText_0x9d84d
keeptextopen
- verbosegiveitem TM_DYNAMICPUNCH, 1
+ verbosegiveitem TM_DYNAMICPUNCH
iffalse UnknownScript_0x9d67f
setevent EVENT_GOT_TM01_DYNAMICPUNCH
writetext UnknownText_0x9d8da
@@ -318,7 +318,7 @@ CianwoodGym_MapEventHeader:
person_event SPRITE_BLACK_BELT, 12, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltLao, -1
person_event SPRITE_BLACK_BELT, 9, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltNob, -1
person_event SPRITE_BLACK_BELT, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBlackbeltLung, -1
- person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
- person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
- person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
- person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
+ person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1
diff --git a/maps/CianwoodPharmacy.asm b/maps/CianwoodPharmacy.asm
index 56f49f2a0..f9e776d38 100644
--- a/maps/CianwoodPharmacy.asm
+++ b/maps/CianwoodPharmacy.asm
@@ -20,7 +20,7 @@ CianwoodPharmacist:
iffalse .Mart
writetext PharmacistGiveSecretpotionText
keeptextopen
- giveitem SECRETPOTION, 1
+ giveitem SECRETPOTION
writetext ReceivedSecretpotionText
playsound SFX_KEY_ITEM
waitbutton
diff --git a/maps/CinnabarIsland.asm b/maps/CinnabarIsland.asm
index d21edb95d..fa39a5ba5 100644
--- a/maps/CinnabarIsland.asm
+++ b/maps/CinnabarIsland.asm
@@ -146,4 +146,4 @@ CinnabarIsland_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
+ person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR
diff --git a/maps/Colosseum.asm b/maps/Colosseum.asm
index 52feffa09..4e9db3be0 100644
--- a/maps/Colosseum.asm
+++ b/maps/Colosseum.asm
@@ -49,7 +49,7 @@ ColosseumScript_Initialize:
MapColosseumSignpost1Script:
special Special_Colosseum
- newloadmap $f8
+ newloadmap MAPSETUP_LINKRETURN
end
ChrisScript_0x193499:
diff --git a/maps/CopycatsHouse1F.asm b/maps/CopycatsHouse1F.asm
index 80f355d58..1e4cce6d3 100644
--- a/maps/CopycatsHouse1F.asm
+++ b/maps/CopycatsHouse1F.asm
@@ -87,4 +87,4 @@ CopycatsHouse1F_MapEventHeader:
db 3
person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x18ad13, -1
person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PokefanFScript_0x18ad16, -1
- person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ClefairyScript_0x18ad2a, -1
+ person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ClefairyScript_0x18ad2a, -1
diff --git a/maps/CopycatsHouse2F.asm b/maps/CopycatsHouse2F.asm
index 7f82335ca..255b606e4 100644
--- a/maps/CopycatsHouse2F.asm
+++ b/maps/CopycatsHouse2F.asm
@@ -106,7 +106,7 @@ Copycat:
loadfont
writetext UnknownText_0x18b17f
keeptextopen
- takeitem LOST_ITEM, 1
+ takeitem LOST_ITEM
setevent EVENT_RETURNED_LOST_ITEM_TO_COPYCAT
clearevent EVENT_COPYCATS_HOUSE_2F_DOLL
jump .Part14
@@ -116,7 +116,7 @@ Copycat:
.Part14
writetext UnknownText_0x18b1e2
keeptextopen
- verbosegiveitem PASS, 1
+ verbosegiveitem PASS
iffalse .Part22
setevent EVENT_GOT_PASS_FROM_COPYCAT
writetext UnknownText_0x18b214
@@ -374,7 +374,7 @@ CopycatsHouse2F_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Copycat, EVENT_COPYCAT_1
- person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CopycatsDodrio, -1
+ person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CopycatsDodrio, -1
person_event SPRITE_FAIRY, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL
person_event SPRITE_MONSTER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CopycatsHouse2FDoll, -1
person_event SPRITE_BIRD, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopycatsHouse2FDoll, -1
diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm
index 397b2beea..bf852a2e5 100644
--- a/maps/DanceTheatre.asm
+++ b/maps/DanceTheatre.asm
@@ -96,7 +96,7 @@ UnknownScript_0x994ff:
UnknownScript_0x99505:
writetext UnknownText_0x9991a
keeptextopen
- verbosegiveitem HM_SURF, 1
+ verbosegiveitem HM_SURF
setevent EVENT_GOT_HM03_SURF
writetext UnknownText_0x9999b
closetext
@@ -345,12 +345,12 @@ DanceTheatre_MapEventHeader:
.PersonEvents:
db 9
- person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlNaoko2, -1
- person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlSayo, -1
- person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerKimono_girlZuki, -1
- person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlKuni, -1
- person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlMiki, -1
+ person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlNaoko2, -1
+ person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlSayo, -1
+ person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerKimono_girlZuki, -1
+ person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlKuni, -1
+ person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlMiki, -1
person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x994c6, -1
- person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RhydonScript_0x9951b, -1
+ person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RhydonScript_0x9951b, -1
person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x99525, -1
person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99528, -1
diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm
index d5ccaf8ba..5f06e6b88 100644
--- a/maps/DarkCaveBlackthornEntrance.asm
+++ b/maps/DarkCaveBlackthornEntrance.asm
@@ -12,7 +12,7 @@ PharmacistScript_0x18c720:
iftrue UnknownScript_0x18c735
writetext UnknownText_0x18c73f
keeptextopen
- verbosegiveitem BLACKGLASSES, 1
+ verbosegiveitem BLACKGLASSES
iffalse UnknownScript_0x18c739
setevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE
UnknownScript_0x18c735:
@@ -73,6 +73,6 @@ DarkCaveBlackthornEntrance_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x18c720, -1
- person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
- person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
+ person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x18c720, -1
+ person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE
+ person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE
diff --git a/maps/DarkCaveVioletEntrance.asm b/maps/DarkCaveVioletEntrance.asm
index 2ffb84f35..71c1be49a 100644
--- a/maps/DarkCaveVioletEntrance.asm
+++ b/maps/DarkCaveVioletEntrance.asm
@@ -43,11 +43,11 @@ DarkCaveVioletEntrance_MapEventHeader:
.PersonEvents:
db 8
- person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
- person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
- person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
- person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
- person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT
+ person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION
+ person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1
+ person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT
diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm
index 7fb28360a..62a506089 100644
--- a/maps/DragonsDenB1F.asm
+++ b/maps/DragonsDenB1F.asm
@@ -49,7 +49,7 @@ UnknownScript_0x18c8b8:
loadfont
writetext UnknownText_0x18c9bf
keeptextopen
- giveitem TM_DRAGONBREATH, $1
+ giveitem TM_DRAGONBREATH
iffalse UnknownScript_0x18c8f4
itemtotext TM_DRAGONBREATH, $0
writetext UnknownText_0x18c9fb
@@ -122,7 +122,7 @@ TwinsLeaandpia2Script:
end
PokeBallScript_0x18c95a:
- giveitem DRAGON_FANG, $1
+ giveitem DRAGON_FANG
iffalse UnknownScript_0x18c970
disappear $2
loadfont
@@ -419,12 +419,12 @@ DragonsDenB1F_MapEventHeader:
.PersonEvents:
db 9
- person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG
+ person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG
person_event SPRITE_CLAIR, 30, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR
- person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN
+ person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN
person_event SPRITE_COOLTRAINER_M, 8, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermDarin, -1
person_event SPRITE_COOLTRAINER_F, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCara, -1
person_event SPRITE_TWIN, 17, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia1, -1
person_event SPRITE_TWIN, 18, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia2, -1
- person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM
- person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM
+ person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER
diff --git a/maps/EarlsPokemonAcademy.asm b/maps/EarlsPokemonAcademy.asm
index 64128c160..8a00ae5be 100644
--- a/maps/EarlsPokemonAcademy.asm
+++ b/maps/EarlsPokemonAcademy.asm
@@ -105,7 +105,7 @@ AcademyBlackboard:
db $80 ; flags
dn 3, 2 ; rows, columns
db 5 ; spacing
- dbw BANK(.Text), .Text
+ dba .Text
dbw $1a, 0
.Text
@@ -430,4 +430,4 @@ EarlsPokemonAcademy_MapEventHeader:
person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x68a86, -1
person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x68a91, -1
person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x68a9c, -1
- person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, AcademyNotebook, -1
+ person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, AcademyNotebook, -1
diff --git a/maps/EcruteakCity.asm b/maps/EcruteakCity.asm
index 31a8bf811..4c8408dcc 100644
--- a/maps/EcruteakCity.asm
+++ b/maps/EcruteakCity.asm
@@ -290,10 +290,10 @@ EcruteakCity_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a4009, -1
- person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a400c, -1
+ person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a4009, -1
+ person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a400c, -1
person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1a4012, -1
person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a4015, -1
person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a4029, -1
- person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a403d, -1
- person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
+ person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a403d, -1
+ person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS
diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm
index 4cd1a2a58..caf60826f 100644
--- a/maps/EcruteakGym.asm
+++ b/maps/EcruteakGym.asm
@@ -48,7 +48,7 @@ MortyScript_0x99d58:
setevent EVENT_BEAT_MEDIUM_GRACE
writetext UnknownText_0x9a059
keeptextopen
- verbosegiveitem TM_SHADOW_BALL, 1
+ verbosegiveitem TM_SHADOW_BALL
iffalse UnknownScript_0x99db5
setevent EVENT_GOT_TM30_SHADOW_BALL
writetext UnknownText_0x9a0ec
@@ -84,7 +84,7 @@ UnknownScript_0x99dc6:
follow PLAYER, $8
applymovement PLAYER, MovementData_0x99e5f
stopfollow
- special FadeBlackBGMap
+ special FadeOutPalettes
playsound SFX_ENTER_DOOR
waitbutton
warp ECRUTEAK_CITY, $6, $1b
diff --git a/maps/EcruteakHouse.asm b/maps/EcruteakHouse.asm
index f04446014..724cf79a9 100644
--- a/maps/EcruteakHouse.asm
+++ b/maps/EcruteakHouse.asm
@@ -300,5 +300,5 @@ EcruteakHouse_MapEventHeader:
db 4
person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1
person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2
- person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
- person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+ person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
+ person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE
diff --git a/maps/EcruteakItemfinderHouse.asm b/maps/EcruteakItemfinderHouse.asm
index 35a33bd4b..1be31c113 100644
--- a/maps/EcruteakItemfinderHouse.asm
+++ b/maps/EcruteakItemfinderHouse.asm
@@ -15,7 +15,7 @@ CooltrainerMScript_0x9a5fb:
iffalse UnknownScript_0x9a61a
writetext UnknownText_0x9a6b5
keeptextopen
- verbosegiveitem ITEMFINDER, 1
+ verbosegiveitem ITEMFINDER
setevent EVENT_GOT_ITEMFINDER
UnknownScript_0x9a614:
writetext UnknownText_0x9a70e
@@ -177,4 +177,4 @@ EcruteakItemfinderHouse_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_COOLTRAINER_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x9a5fb, -1
- person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x9a620, -1
+ person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x9a620, -1
diff --git a/maps/EcruteakLugiaSpeechHouse.asm b/maps/EcruteakLugiaSpeechHouse.asm
index bf0aa5d5e..15454ce94 100644
--- a/maps/EcruteakLugiaSpeechHouse.asm
+++ b/maps/EcruteakLugiaSpeechHouse.asm
@@ -58,5 +58,5 @@ EcruteakLugiaSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x99334, -1
+ person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x99334, -1
person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x99337, -1
diff --git a/maps/EcruteakPokeCenter1F.asm b/maps/EcruteakPokeCenter1F.asm
index 0cde69101..16fde129e 100644
--- a/maps/EcruteakPokeCenter1F.asm
+++ b/maps/EcruteakPokeCenter1F.asm
@@ -220,7 +220,7 @@ EcruteakPokeCenter1F_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x98eb0, -1
- person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x98eb3, -1
- person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x98ebf, -1
+ person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x98eb3, -1
+ person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x98ebf, -1
person_event SPRITE_GYM_GUY, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x98ec2, -1
person_event SPRITE_BILL, 7, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL
diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm
index 11ab81dfb..33e954102 100644
--- a/maps/ElmsLab.asm
+++ b/maps/ElmsLab.asm
@@ -327,7 +327,7 @@ ElmAfterTheftScript:
keeptextopen
writetext ElmAfterTheftText2
closetext
- takeitem MYSTERY_EGG, 1
+ takeitem MYSTERY_EGG
scall ElmJumpBackScript1
writetext ElmAfterTheftText3
closetext
@@ -379,7 +379,7 @@ ShowElmTogepiScript:
ElmGiveEverstoneScript:
writetext ElmGiveEverstoneText1
keeptextopen
- verbosegiveitem EVERSTONE, 1
+ verbosegiveitem EVERSTONE
iffalse ElmScript_NoRoomForEverstone
writetext ElmGiveEverstoneText2
closetext
@@ -397,7 +397,7 @@ ElmScript_NoRoomForEverstone:
ElmGiveMasterBallScript:
writetext ElmGiveMasterBallText1
keeptextopen
- verbosegiveitem MASTER_BALL, 1
+ verbosegiveitem MASTER_BALL
iffalse .notdone
setevent EVENT_GOT_MASTER_BALL_FROM_ELM
writetext ElmGiveMasterBallText2
@@ -409,7 +409,7 @@ ElmGiveMasterBallScript:
ElmGiveTicketScript:
writetext ElmGiveTicketText1
keeptextopen
- verbosegiveitem S_S_TICKET, 1
+ verbosegiveitem S_S_TICKET
setevent EVENT_GOT_SS_TICKET_FROM_ELM
writetext ElmGiveTicketText2
closetext
@@ -472,7 +472,7 @@ AideScript_GivePotions:
loadfont
writetext AideText_GiveYouPotions
keeptextopen
- verbosegiveitem POTION, 1
+ verbosegiveitem POTION
writetext AideText_AlwaysBusy
closetext
loadmovesprites
@@ -499,7 +499,7 @@ AideScript_GiveYouBalls:
keeptextopen
itemtotext POKE_BALL, $1
scall AideScript_ReceiveTheBalls
- giveitem POKE_BALL, $5
+ giveitem POKE_BALL, 5
writetext AideText_ExplainBalls
keeptextopen
itemnotify
@@ -1409,8 +1409,8 @@ ElmsLab_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_ELM, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ProfElmScript, -1
- person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB
- person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
- person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
- person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
+ person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB
+ person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB
+ person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB
+ person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB
person_event SPRITE_OFFICER, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopScript, EVENT_COP_IN_ELMS_LAB
diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm
index 832ab3d1d..bf7ff442b 100644
--- a/maps/FastShip1F.asm
+++ b/maps/FastShip1F.asm
@@ -64,7 +64,7 @@ SailorScript_0x75160:
loadmovesprites
scall .LetThePlayerOut
playsound SFX_EXIT_BUILDING
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY
domaptrigger VERMILION_PORT, $1
@@ -77,7 +77,7 @@ SailorScript_0x75160:
loadmovesprites
scall .LetThePlayerOut
playsound SFX_EXIT_BUILDING
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY
domaptrigger OLIVINE_PORT, $1
diff --git a/maps/FastShipB1F.asm b/maps/FastShipB1F.asm
index ddb2586a0..145f890d4 100644
--- a/maps/FastShipB1F.asm
+++ b/maps/FastShipB1F.asm
@@ -463,8 +463,8 @@ FastShipB1F_MapEventHeader:
person_event SPRITE_SUPER_NERD, 9, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
person_event SPRITE_SAILOR, 4, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
person_event SPRITE_FISHER, 8, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
person_event SPRITE_SAILOR, 4, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
person_event SPRITE_TEACHER, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
diff --git a/maps/FastShipCabins_NNW_NNE_NE.asm b/maps/FastShipCabins_NNW_NNE_NE.asm
index cb9643a7e..f0c972aba 100644
--- a/maps/FastShipCabins_NNW_NNE_NE.asm
+++ b/maps/FastShipCabins_NNW_NNE_NE.asm
@@ -278,10 +278,10 @@ FastShipCabins_NNW_NNE_NE_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
person_event SPRITE_COOLTRAINER_F, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
person_event SPRITE_SUPER_NERD, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
person_event SPRITE_POKEFAN_M, 17, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
- person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR
+ person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
person_event SPRITE_PHARMACIST, 30, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
index 70ac3449e..3c823caaf 100644
--- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
+++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm
@@ -87,7 +87,7 @@ GentlemanScript_0x75f1f:
UnknownScript_0x75f37:
writetext UnknownText_0x7619b
keeptextopen
- verbosegiveitem METAL_COAT, 1
+ verbosegiveitem METAL_COAT
iffalse UnknownScript_0x75f44
setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
UnknownScript_0x75f44:
@@ -106,7 +106,7 @@ UnknownScript_0x75f44:
UnknownScript_0x75f58:
writetext UnknownText_0x7619b
keeptextopen
- verbosegiveitem METAL_COAT, 1
+ verbosegiveitem METAL_COAT
iffalse UnknownScript_0x75f65
setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA
UnknownScript_0x75f65:
@@ -473,12 +473,12 @@ FastShipCabins_SE_SSE_CaptainsCabin_MapEventHeader:
db 11
person_event SPRITE_CAPTAIN, 25, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CaptainScript_0x75ea7, -1
person_event SPRITE_GENTLEMAN, 17, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN
- person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
- person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
+ person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1
+ person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2
person_event SPRITE_POKEFAN_M, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
person_event SPRITE_TWIN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
person_event SPRITE_SUPER_NERD, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
person_event SPRITE_POKEFAN_F, 5, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
diff --git a/maps/FastShipCabins_SW_SSW_NW.asm b/maps/FastShipCabins_SW_SSW_NW.asm
index 9fdcdbb43..7a0b5d3a6 100644
--- a/maps/FastShipCabins_SW_SSW_NW.asm
+++ b/maps/FastShipCabins_SW_SSW_NW.asm
@@ -239,7 +239,7 @@ FastShipCabins_SW_SSW_NW_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
- person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
- person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
- person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP
+ person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
+ person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
+ person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
diff --git a/maps/FightingDojo.asm b/maps/FightingDojo.asm
index 595de0dca..e8c91b9d9 100644
--- a/maps/FightingDojo.asm
+++ b/maps/FightingDojo.asm
@@ -58,4 +58,4 @@ FightingDojo_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_BLACK_BELT, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x189b61, -1
- person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND
+ person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND
diff --git a/maps/FuchsiaCity.asm b/maps/FuchsiaCity.asm
index 297cd63b8..a2fdd770a 100644
--- a/maps/FuchsiaCity.asm
+++ b/maps/FuchsiaCity.asm
@@ -154,7 +154,7 @@ FuchsiaCity_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x194b22, -1
- person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x194b25, -1
- person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x194b28, -1
- person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194b43, -1
+ person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x194b22, -1
+ person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x194b25, -1
+ person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x194b28, -1
+ person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194b43, -1
diff --git a/maps/FuchsiaGym.asm b/maps/FuchsiaGym.asm
index d69a3f435..e28079fec 100644
--- a/maps/FuchsiaGym.asm
+++ b/maps/FuchsiaGym.asm
@@ -42,7 +42,7 @@ UnknownScript_0x195e02:
iftrue UnknownScript_0x195e15
writetext UnknownText_0x196002
keeptextopen
- verbosegiveitem TM_TOXIC, 1
+ verbosegiveitem TM_TOXIC
iffalse UnknownScript_0x195e15
setevent EVENT_GOT_TM06_TOXIC
UnknownScript_0x195e15:
@@ -391,9 +391,9 @@ FuchsiaGym_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineScript_0x195db9, -1
- person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym1Script_0x195e1b, -1
- person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym2Script_0x195e55, -1
- person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym3Script_0x195e8f, -1
- person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym4Script_0x195ec9, -1
+ person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineScript_0x195db9, -1
+ person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym1Script_0x195e1b, -1
+ person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym2Script_0x195e55, -1
+ person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym3Script_0x195e8f, -1
+ person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym4Script_0x195ec9, -1
person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuchsiaGymGuyScript, -1
diff --git a/maps/GoldenrodBikeShop.asm b/maps/GoldenrodBikeShop.asm
index db9dfdbba..42b8cfabd 100644
--- a/maps/GoldenrodBikeShop.asm
+++ b/maps/GoldenrodBikeShop.asm
@@ -19,7 +19,7 @@ ClerkScript_0x54750:
writetext UnknownText_0x547f8
keeptextopen
waitbutton
- giveitem BICYCLE, 1
+ giveitem BICYCLE
writetext UnknownText_0x54848
playsound SFX_KEY_ITEM
waitbutton
diff --git a/maps/GoldenrodBillsHouse.asm b/maps/GoldenrodBillsHouse.asm
index 479498103..03647f81d 100644
--- a/maps/GoldenrodBillsHouse.asm
+++ b/maps/GoldenrodBillsHouse.asm
@@ -259,4 +259,4 @@ GoldenrodBillsHouse_MapEventHeader:
db 3
person_event SPRITE_BILL, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BillsHouseBill, EVENT_MET_BILL
person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BillsMom, -1
- person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BillsSister, -1
+ person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BillsSister, -1
diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm
index 08c965080..83f6fa797 100644
--- a/maps/GoldenrodCity.asm
+++ b/maps/GoldenrodCity.asm
@@ -582,10 +582,10 @@ GoldenrodCity_MapEventHeader:
.PersonEvents:
db 15
person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
- person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS
+ person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS
person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT
@@ -595,4 +595,4 @@ GoldenrodCity_MapEventHeader:
person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
+ person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR
diff --git a/maps/GoldenrodDeptStore1F.asm b/maps/GoldenrodDeptStore1F.asm
index b131b2bcc..ef42c651b 100644
--- a/maps/GoldenrodDeptStore1F.asm
+++ b/maps/GoldenrodDeptStore1F.asm
@@ -96,4 +96,4 @@ GoldenrodDeptStore1F_MapEventHeader:
person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x55981, -1
person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x55987, -1
person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x5598a, -1
- person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x55984, -1
+ person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x55984, -1
diff --git a/maps/GoldenrodDeptStore2F.asm b/maps/GoldenrodDeptStore2F.asm
index 03d53c0f0..6f59e8523 100644
--- a/maps/GoldenrodDeptStore2F.asm
+++ b/maps/GoldenrodDeptStore2F.asm
@@ -117,4 +117,4 @@ GoldenrodDeptStore2F_MapEventHeader:
person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b65, -1
person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x55b6d, -1
person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x55b70, -1
- person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x55b73, -1
+ person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x55b73, -1
diff --git a/maps/GoldenrodDeptStore3F.asm b/maps/GoldenrodDeptStore3F.asm
index ca87e0a03..522798fa1 100644
--- a/maps/GoldenrodDeptStore3F.asm
+++ b/maps/GoldenrodDeptStore3F.asm
@@ -72,5 +72,5 @@ GoldenrodDeptStore3F_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55db8, -1
- person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_0A, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x55dc0, -1
+ person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x55dc0, -1
person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, RockerScript_0x55dc3, -1
diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm
index fc715179d..4bfa0e907 100644
--- a/maps/GoldenrodDeptStore5F.asm
+++ b/maps/GoldenrodDeptStore5F.asm
@@ -70,7 +70,7 @@ ReceptionistScript_0x560ce:
.VeryHappy:
writetext UnknownText_0x5615a
keeptextopen
- verbosegiveitem TM_RETURN, 1
+ verbosegiveitem TM_RETURN
iffalse .Done
setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
loadmovesprites
@@ -85,7 +85,7 @@ ReceptionistScript_0x560ce:
.NotVeryHappy:
writetext UnknownText_0x561d8
keeptextopen
- verbosegiveitem TM_FRUSTRATION, 1
+ verbosegiveitem TM_FRUSTRATION
iffalse .Done
setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT
loadmovesprites
@@ -233,8 +233,8 @@ GoldenrodDeptStore5F_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5609c, -1
- person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, LassScript_0x56130, -1
- person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x56133, -1
- person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, PokefanMScript_0x5613a, -1
+ person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x56130, -1
+ person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x56133, -1
+ person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, PokefanMScript_0x5613a, -1
person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56118, -1
person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY
diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm
index c4f75766b..8619a516e 100644
--- a/maps/GoldenrodDeptStore6F.asm
+++ b/maps/GoldenrodDeptStore6F.asm
@@ -22,7 +22,7 @@ GoldenrodVendingMachine:
.FreshWater
checkmoney $0, 200
if_equal $2, .NotEnoughMoney
- giveitem FRESH_WATER, $1
+ giveitem FRESH_WATER
iffalse .NotEnoughSpace
takemoney $0, 200
itemtotext FRESH_WATER, $0
@@ -31,7 +31,7 @@ GoldenrodVendingMachine:
.SodaPop
checkmoney $0, 300
if_equal $2, .NotEnoughMoney
- giveitem SODA_POP, $1
+ giveitem SODA_POP
iffalse .NotEnoughSpace
takemoney $0, 300
itemtotext SODA_POP, $0
@@ -40,7 +40,7 @@ GoldenrodVendingMachine:
.Lemonade
checkmoney $0, 350
if_equal $2, .NotEnoughMoney
- giveitem LEMONADE, $1
+ giveitem LEMONADE
iffalse .NotEnoughSpace
takemoney $0, 350
itemtotext LEMONADE, $0
diff --git a/maps/GoldenrodDeptStoreB1F.asm b/maps/GoldenrodDeptStoreB1F.asm
index 69c4141d1..e17bb5368 100644
--- a/maps/GoldenrodDeptStoreB1F.asm
+++ b/maps/GoldenrodDeptStoreB1F.asm
@@ -121,11 +121,11 @@ GoldenrodDeptStoreB1F_MapEventHeader:
.PersonEvents:
db 8
- person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER
- person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
- person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
- person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER
+ person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN
+ person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL
+ person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL
person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BlackBeltScript_0x7d7b0, -1
- person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackBeltScript_0x7d7b3, -1
+ person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackBeltScript_0x7d7b3, -1
person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x7d7b6, -1
- person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MachopScript_0x7d7b9, -1
+ person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MachopScript_0x7d7b9, -1
diff --git a/maps/GoldenrodDeptStoreRoof.asm b/maps/GoldenrodDeptStoreRoof.asm
index 3a20e8b3d..234a3adfc 100644
--- a/maps/GoldenrodDeptStoreRoof.asm
+++ b/maps/GoldenrodDeptStoreRoof.asm
@@ -228,8 +228,8 @@ GoldenrodDeptStoreRoof_MapEventHeader:
person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF
person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56746, -1
person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x56749, -1
- person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
+ person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON
person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON
person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF
- person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
+ person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF
person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF
diff --git a/maps/GoldenrodFlowerShop.asm b/maps/GoldenrodFlowerShop.asm
index 6a9a6ee69..51f574688 100644
--- a/maps/GoldenrodFlowerShop.asm
+++ b/maps/GoldenrodFlowerShop.asm
@@ -20,7 +20,7 @@ FlowerShopTeacherScript:
loadfont
writetext UnknownText_0x554c2
keeptextopen
- verbosegiveitem SQUIRTBOTTLE, 1
+ verbosegiveitem SQUIRTBOTTLE
setevent EVENT_GOT_SQUIRTBOTTLE
loadmovesprites
setevent EVENT_FLORIA_AT_SUDOWOODO
@@ -173,4 +173,4 @@ GoldenrodFlowerShop_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FlowerShopTeacherScript, -1
- person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP
+ person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP
diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm
index 1f5bdefc8..fc635d694 100644
--- a/maps/GoldenrodGameCorner.asm
+++ b/maps/GoldenrodGameCorner.asm
@@ -64,7 +64,7 @@ UnknownScript_0x56c4d:
itemtotext TM_THUNDER, $0
scall UnknownScript_0x56ca1
iffalse UnknownScript_0x56cbd
- giveitem TM_THUNDER, $1
+ giveitem TM_THUNDER
iffalse UnknownScript_0x56cb7
takecoins 5500
jump UnknownScript_0x56ca6
@@ -75,7 +75,7 @@ UnknownScript_0x56c69:
itemtotext TM_BLIZZARD, $0
scall UnknownScript_0x56ca1
iffalse UnknownScript_0x56cbd
- giveitem TM_BLIZZARD, $1
+ giveitem TM_BLIZZARD
iffalse UnknownScript_0x56cb7
takecoins 5500
jump UnknownScript_0x56ca6
@@ -86,7 +86,7 @@ UnknownScript_0x56c85:
itemtotext TM_FIRE_BLAST, $0
scall UnknownScript_0x56ca1
iffalse UnknownScript_0x56cbd
- giveitem TM_FIRE_BLAST, $1
+ giveitem TM_FIRE_BLAST
iffalse UnknownScript_0x56cb7
takecoins 5500
jump UnknownScript_0x56ca6
@@ -487,7 +487,7 @@ GoldenrodGameCorner_MapEventHeader:
person_event SPRITE_POKEFAN_M, 10, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56dfc, -1
person_event SPRITE_COOLTRAINER_M, 8, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x56e07, -1
person_event SPRITE_POKEFAN_F, 6, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56e12, -1
- person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_02, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x56e1d, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x56e1d, -1
person_event SPRITE_GENTLEMAN, 10, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x56e20, -1
- person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56e2b, -1
+ person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56e2b, -1
person_event SPRITE_POKEFAN_M, 10, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR
diff --git a/maps/GoldenrodGym.asm b/maps/GoldenrodGym.asm
index bdaed919b..ba9d1a5b1 100644
--- a/maps/GoldenrodGym.asm
+++ b/maps/GoldenrodGym.asm
@@ -60,7 +60,7 @@ WhitneyScript_0x5400c:
UnknownScript_0x54064:
writetext UnknownText_0x5428b
keeptextopen
- verbosegiveitem TM_ATTRACT, 1
+ verbosegiveitem TM_ATTRACT
iffalse UnknownScript_0x5407b
setevent EVENT_GOT_TM45_ATTRACT
writetext UnknownText_0x54302
diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm
index cdf7a8c1d..d95cfb934 100644
--- a/maps/GoldenrodMagnetTrainStation.asm
+++ b/maps/GoldenrodMagnetTrainStation.asm
@@ -35,7 +35,7 @@ OfficerScript_0x550ec:
writebyte $0
special Special_MagnetTrain
warpcheck
- newloadmap $f9
+ newloadmap MAPSETUP_TRAIN
applymovement PLAYER, .MovementBoardTheTrain
wait $14
end
@@ -183,4 +183,4 @@ GoldenrodMagnetTrainStation_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x550ec, -1
- person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
+ person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN
diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm
index 4b6299ffe..a41d3e739 100644
--- a/maps/GoldenrodPokeCenter1F.asm
+++ b/maps/GoldenrodPokeCenter1F.asm
@@ -8,15 +8,15 @@ GoldenrodPokeCenter1F_MapScriptHeader:
NurseScript_0x60f91:
jumpstd pokecenternurse
-UnknownScript_0x60f94:
- writebyte $b
- special Function170687
- if_equal $b, UnknownScript_0x60f9e
+GoldenrodPokeCenter1F_GSBallTriggerLeft:
+ writebyte BATTLE_TOWER_ACTION_0B
+ special BattleTowerAction
+ if_equal MOBILE_EVENT_OBJECT_GS_BALL, .gsball
end
-UnknownScript_0x60f9e:
+.gsball:
checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
- iftrue UnknownScript_0x60fd8
+ iftrue .cancel
playsound SFX_EXIT_BUILDING
moveperson $3, $0, $7
disappear $3
@@ -27,7 +27,7 @@ UnknownScript_0x60f9e:
loadfont
writetext UnknownText_0x622f0
closetext
- verbosegiveitem GS_BALL, 1
+ verbosegiveitem GS_BALL
setevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
setevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
writetext UnknownText_0x62359
@@ -37,18 +37,18 @@ UnknownScript_0x60f9e:
special RestartMapMusic
disappear $3
playsound SFX_EXIT_BUILDING
-UnknownScript_0x60fd8:
+.cancel:
end
-UnknownScript_0x60fd9:
- writebyte $b
- special Function170687
- if_equal $b, UnknownScript_0x60fe3
+GoldenrodPokeCenter1F_GSBallTriggerRight:
+ writebyte BATTLE_TOWER_ACTION_0B
+ special BattleTowerAction
+ if_equal MOBILE_EVENT_OBJECT_GS_BALL, .gsball
end
-UnknownScript_0x60fe3:
+.gsball:
checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
- iftrue UnknownScript_0x6101d
+ iftrue .cancel
playsound SFX_EXIT_BUILDING
moveperson $3, $0, $7
disappear $3
@@ -59,7 +59,7 @@ UnknownScript_0x60fe3:
loadfont
writetext UnknownText_0x622f0
closetext
- verbosegiveitem GS_BALL, 1
+ verbosegiveitem GS_BALL
setevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER
setevent EVENT_CAN_GIVE_GS_BALL_TO_KURT
writetext UnknownText_0x62359
@@ -69,7 +69,7 @@ UnknownScript_0x60fe3:
special RestartMapMusic
disappear $3
playsound SFX_EXIT_BUILDING
-UnknownScript_0x6101d:
+.cancel:
end
GameboyKidScript_0x6101e:
@@ -86,13 +86,13 @@ PokefanFScript_0x61024:
writetext UnknownText_0x6248c
yesorno
iffalse UnknownScript_0x6104b
- takeitem EON_MAIL, 1
+ takeitem EON_MAIL
iffalse UnknownScript_0x6104b
writetext UnknownText_0x62549
closetext
writetext UnknownText_0x624a4
closetext
- verbosegiveitem REVIVE, 1
+ verbosegiveitem REVIVE
iffalse UnknownScript_0x61051
writetext UnknownText_0x624e9
closetext
@@ -106,7 +106,7 @@ UnknownScript_0x6104b:
end
UnknownScript_0x61051:
- giveitem EON_MAIL, $1
+ giveitem EON_MAIL
writetext UnknownText_0x6252a
closetext
loadmovesprites
@@ -810,8 +810,8 @@ GoldenrodPokeCenter1F_MapEventHeader:
.XYTriggers:
db 2
- xy_trigger 0, $7, $3, $0, UnknownScript_0x60f94, $0, $0
- xy_trigger 0, $7, $4, $0, UnknownScript_0x60fd9, $0, $0
+ xy_trigger 0, $7, $3, $0, GoldenrodPokeCenter1F_GSBallTriggerLeft, $0, $0
+ xy_trigger 0, $7, $4, $0, GoldenrodPokeCenter1F_GSBallTriggerRight, $0, $0
.Signposts:
db 0
diff --git a/maps/IcePath1F.asm b/maps/IcePath1F.asm
index cf45742c0..ca6777565 100644
--- a/maps/IcePath1F.asm
+++ b/maps/IcePath1F.asm
@@ -33,6 +33,6 @@ IcePath1F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL
- person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP
- person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN
+ person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL
+ person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP
+ person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN
diff --git a/maps/IcePathB1F.asm b/maps/IcePathB1F.asm
index 09965dd42..4374f4c64 100644
--- a/maps/IcePathB1F.asm
+++ b/maps/IcePathB1F.asm
@@ -107,8 +107,8 @@ IcePathB1F_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1
- person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2
- person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3
- person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4
- person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON
+ person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1
+ person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2
+ person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3
+ person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4
+ person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON
diff --git a/maps/IcePathB2FBlackthornSide.asm b/maps/IcePathB2FBlackthornSide.asm
index a8ec76b70..651538e9e 100644
--- a/maps/IcePathB2FBlackthornSide.asm
+++ b/maps/IcePathB2FBlackthornSide.asm
@@ -30,4 +30,4 @@ IcePathB2FBlackthornSide_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
+ person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST
diff --git a/maps/IcePathB2FMahoganySide.asm b/maps/IcePathB2FMahoganySide.asm
index f4d885ec5..7f8c01649 100644
--- a/maps/IcePathB2FMahoganySide.asm
+++ b/maps/IcePathB2FMahoganySide.asm
@@ -45,9 +45,9 @@ IcePathB2FMahoganySide_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A
- person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A
- person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A
- person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A
- person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL
- person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION
+ person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A
+ person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A
+ person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A
+ person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A
+ person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION
diff --git a/maps/IcePathB3F.asm b/maps/IcePathB3F.asm
index 186bad318..636f2ae47 100644
--- a/maps/IcePathB3F.asm
+++ b/maps/IcePathB3F.asm
@@ -28,5 +28,5 @@ IcePathB3F_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE
- person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, IcePathB3FRock, -1
+ person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE
+ person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, IcePathB3FRock, -1
diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm
index bf625052e..e1aaa43da 100644
--- a/maps/IlexForest.asm
+++ b/maps/IlexForest.asm
@@ -339,7 +339,7 @@ BlackBeltScript_0x6edae:
iftrue UnknownScript_0x6edd8
writetext UnknownText_0x6f099
keeptextopen
- verbosegiveitem HM_CUT, 1
+ verbosegiveitem HM_CUT
setevent EVENT_GOT_HM01_CUT
writetext UnknownText_0x6f141
closetext
@@ -365,7 +365,7 @@ RockerScript_0x6edde:
iftrue UnknownScript_0x6edf3
writetext UnknownText_0x6f21b
keeptextopen
- verbosegiveitem TM_HEADBUTT, 1
+ verbosegiveitem TM_HEADBUTT
iffalse UnknownScript_0x6edf7
setevent EVENT_GOT_TM02_HEADBUTT
UnknownScript_0x6edf3:
@@ -439,7 +439,7 @@ UnknownScript_0x6ee38:
end
UnknownScript_0x6ee42:
- takeitem GS_BALL, 1
+ takeitem GS_BALL
clearevent EVENT_FOREST_IS_RESTLESS
setevent EVENT_AZALEA_TOWN_KURT
disappear $8
@@ -572,8 +572,8 @@ MovementData_0x6eed2:
big_step_down
fix_facing
jump_step_up
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
remove_fixed_facing
big_step_up
big_step_up
@@ -664,8 +664,8 @@ MovementData_0x6ef23:
big_step_left
fix_facing
jump_step_right
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
remove_fixed_facing
big_step_left
big_step_left
@@ -694,8 +694,8 @@ MovementData_0x6ef3d:
big_step_left
fix_facing
jump_step_right
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
remove_fixed_facing
big_step_right
big_step_right
@@ -950,14 +950,14 @@ IlexForest_MapEventHeader:
.PersonEvents:
db 11
- person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD
+ person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD
person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE
person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER
person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x6edde, -1
- person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
+ person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE
person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT
person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS
person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerBug_catcherWayne, -1
- person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
- person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
- person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER
+ person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK
+ person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE
+ person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER
diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm
index a294c50ce..e0e56981c 100644
--- a/maps/IndigoPlateauPokeCenter1F.asm
+++ b/maps/IndigoPlateauPokeCenter1F.asm
@@ -154,7 +154,7 @@ TeleportGuyScript:
closetext
loadmovesprites
playsound SFX_WARP_TO
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
warp NEW_BARK_TOWN, $d, $6
end
@@ -321,7 +321,7 @@ IndigoPlateauPokeCenter1F_MapEventHeader:
db 6
person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18012c, -1
person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18012f, -1
- person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x180136, -1
+ person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x180136, -1
person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL
person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeleportGuyScript, EVENT_TELEPORT_GUY
- person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, AbraScript, EVENT_TELEPORT_GUY
+ person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, AbraScript, EVENT_TELEPORT_GUY
diff --git a/maps/KrissHouse2F.asm b/maps/KrissHouse2F.asm
index 7ef69377f..e344f7f4d 100644
--- a/maps/KrissHouse2F.asm
+++ b/maps/KrissHouse2F.asm
@@ -134,7 +134,7 @@ KrissHouse2F_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE
- person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1
- person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2
- person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_21, 0, 0, -1, -1, 0, 0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL
+ person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE
+ person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1
+ person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2
+ person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, 0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL
diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm
index 36eebd1cd..9d8a16753 100644
--- a/maps/KurtsHouse.asm
+++ b/maps/KurtsHouse.asm
@@ -66,7 +66,7 @@ KurtScript_0x18e178:
.ClearedSlowpokeWell:
writetext UnknownText_0x18e615
keeptextopen
- verbosegiveitem LURE_BALL, 1
+ verbosegiveitem LURE_BALL
iffalse .NoRoomForBall
setevent EVENT_KURT_GAVE_YOU_LURE_BALL
.GotLureBall:
@@ -192,7 +192,7 @@ KurtScript_0x18e178:
iftrue KurtMakingBallsScript
writetext UnknownText_0x18e7fb
keeptextopen
- verbosegiveitem2 LEVEL_BALL, $16
+ verbosegiveitem2 LEVEL_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_RED_APRICORN
jump ._ThatTurnedOutGreat
@@ -202,7 +202,7 @@ KurtScript_0x18e178:
iftrue KurtMakingBallsScript
writetext UnknownText_0x18e7fb
keeptextopen
- verbosegiveitem2 LURE_BALL, $16
+ verbosegiveitem2 LURE_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_BLU_APRICORN
jump ._ThatTurnedOutGreat
@@ -212,7 +212,7 @@ KurtScript_0x18e178:
iftrue KurtMakingBallsScript
writetext UnknownText_0x18e7fb
keeptextopen
- verbosegiveitem2 MOON_BALL, $16
+ verbosegiveitem2 MOON_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_YLW_APRICORN
jump ._ThatTurnedOutGreat
@@ -222,7 +222,7 @@ KurtScript_0x18e178:
iftrue KurtMakingBallsScript
writetext UnknownText_0x18e7fb
keeptextopen
- verbosegiveitem2 FRIEND_BALL, $16
+ verbosegiveitem2 FRIEND_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_GRN_APRICORN
jump ._ThatTurnedOutGreat
@@ -232,7 +232,7 @@ KurtScript_0x18e178:
iftrue KurtMakingBallsScript
writetext UnknownText_0x18e7fb
keeptextopen
- verbosegiveitem2 FAST_BALL, $16
+ verbosegiveitem2 FAST_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_WHT_APRICORN
jump ._ThatTurnedOutGreat
@@ -242,7 +242,7 @@ KurtScript_0x18e178:
iftrue KurtMakingBallsScript
writetext UnknownText_0x18e7fb
keeptextopen
- verbosegiveitem2 HEAVY_BALL, $16
+ verbosegiveitem2 HEAVY_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_BLK_APRICORN
jump ._ThatTurnedOutGreat
@@ -252,7 +252,7 @@ KurtScript_0x18e178:
iftrue KurtMakingBallsScript
writetext UnknownText_0x18e7fb
keeptextopen
- verbosegiveitem2 LOVE_BALL, $16
+ verbosegiveitem2 LOVE_BALL, VAR_KURT_APRICORNS
iffalse .NoRoomForBall
clearevent EVENT_GAVE_KURT_PNK_APRICORN
jump ._ThatTurnedOutGreat
@@ -266,7 +266,7 @@ KurtScript_0x18e178:
closetext
loadmovesprites
setevent EVENT_GAVE_GS_BALL_TO_KURT
- takeitem GS_BALL, 1
+ takeitem GS_BALL
setflag ENGINE_KURT_MAKING_BALLS
end
@@ -697,7 +697,7 @@ KurtsHouse_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_KURT, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1
- person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
- person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE
+ person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1
+ person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE
person_event SPRITE_KURT, 3, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2
person_event SPRITE_TWIN, 4, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2
diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm
index 3ecc820cb..d2bea4ddd 100644
--- a/maps/LakeofRage.asm
+++ b/maps/LakeofRage.asm
@@ -85,7 +85,7 @@ GyaradosScript_0x70063:
UnknownScript_0x7007a:
returnafterbattle
loadfont
- giveitem RED_SCALE, $1
+ giveitem RED_SCALE
waitbutton
writetext UnknownText_0x703df
playsound SFX_ITEM
@@ -195,7 +195,7 @@ WesleyScript:
.MetWesley
writetext WesleyGivesGiftText
keeptextopen
- verbosegiveitem BLACKBELT, 1
+ verbosegiveitem BLACKBELT
iffalse WesleyDoneScript
setevent EVENT_GOT_BLACKBELT_FROM_WESLEY
writetext WesleyGaveGiftText
@@ -517,7 +517,7 @@ LakeofRage_MapEventHeader:
person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS
person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS
person_event SPRITE_COOLTRAINER_F, 7, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS
- person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS
+ person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS
person_event SPRITE_SUPER_NERD, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY
- person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER
- person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT
+ person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER
+ person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT
diff --git a/maps/LakeofRageHiddenPowerHouse.asm b/maps/LakeofRageHiddenPowerHouse.asm
index fcbfc4e5a..a5d4dd2a0 100644
--- a/maps/LakeofRageHiddenPowerHouse.asm
+++ b/maps/LakeofRageHiddenPowerHouse.asm
@@ -12,7 +12,7 @@ HiddenPowerGuy:
iftrue .AlreadyGotItem
writetext HiddenPowerGuyText1
keeptextopen
- verbosegiveitem TM_HIDDEN_POWER, 1
+ verbosegiveitem TM_HIDDEN_POWER
iffalse .Done
setevent EVENT_GOT_TM10_HIDDEN_POWER
writetext HiddenPowerGuyText2
@@ -83,4 +83,4 @@ LakeofRageHiddenPowerHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, HiddenPowerGuy, -1
+ person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, HiddenPowerGuy, -1
diff --git a/maps/LakeofRageMagikarpHouse.asm b/maps/LakeofRageMagikarpHouse.asm
index b19769b8e..5dcf7e4f8 100644
--- a/maps/LakeofRageMagikarpHouse.asm
+++ b/maps/LakeofRageMagikarpHouse.asm
@@ -50,7 +50,7 @@ UnknownScript_0x19a6e0:
UnknownScript_0x19a6fe:
writetext UnknownText_0x19a977
keeptextopen
- verbosegiveitem ELIXER, 1
+ verbosegiveitem ELIXER
iffalse UnknownScript_0x19a711
writetext UnknownText_0x19a9c3
closetext
@@ -221,4 +221,4 @@ LakeofRageMagikarpHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x19a6ae, -1
+ person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x19a6ae, -1
diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm
index 0b8fa2d02..3929e6f35 100644
--- a/maps/LancesRoom.asm
+++ b/maps/LancesRoom.asm
@@ -125,9 +125,9 @@ LanceScript_0x180e7b:
pause 30
loadmovesprites
applymovement $3, MovementData_0x180f5b
- special FadeBlackBGMap
+ special FadeOutPalettes
pause 15
- warpfacing $1, HALL_OF_FAME, $4, $d
+ warpfacing UP, HALL_OF_FAME, $4, $d
end
MovementData_0x180f33:
diff --git a/maps/LavRadioTower1F.asm b/maps/LavRadioTower1F.asm
index 2a9e31a65..47d189725 100644
--- a/maps/LavRadioTower1F.asm
+++ b/maps/LavRadioTower1F.asm
@@ -235,6 +235,6 @@ LavRadioTower1F_MapEventHeader:
db 5
person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x7ee63, -1
person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x7ee66, -1
- person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x7ee69, -1
+ person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x7ee69, -1
person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7ee6c, -1
person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7eea2, -1
diff --git a/maps/LavenderMart.asm b/maps/LavenderMart.asm
index 4271669ad..7cadf2ecc 100644
--- a/maps/LavenderMart.asm
+++ b/maps/LavenderMart.asm
@@ -61,4 +61,4 @@ LavenderMart_MapEventHeader:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x7eb1c, -1
person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x7eb23, -1
- person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x7eb26, -1
+ person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x7eb26, -1
diff --git a/maps/MahoganyGym.asm b/maps/MahoganyGym.asm
index 7888001fd..a9b6d05ed 100644
--- a/maps/MahoganyGym.asm
+++ b/maps/MahoganyGym.asm
@@ -35,7 +35,7 @@ PryceScript_0x199a9e:
setevent EVENT_BEAT_BOARDER_DOUGLAS
writetext UnknownText_0x199d55
keeptextopen
- verbosegiveitem TM_ICY_WIND, 1
+ verbosegiveitem TM_ICY_WIND
iffalse UnknownScript_0x199af4
setevent EVENT_GOT_TM16_ICY_WIND
writetext UnknownText_0x199def
@@ -387,5 +387,5 @@ MahoganyGym_MapEventHeader:
person_event SPRITE_ROCKER, 17, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderRonald, -1
person_event SPRITE_BUENA, 17, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerSkierClarissa, -1
person_event SPRITE_ROCKER, 9, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderBrad, -1
- person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderDouglas, -1
+ person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderDouglas, -1
person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MahoganyGymGuyScript, -1
diff --git a/maps/MahoganyMart1F.asm b/maps/MahoganyMart1F.asm
index 95ad194dc..82e828473 100644
--- a/maps/MahoganyMart1F.asm
+++ b/maps/MahoganyMart1F.asm
@@ -237,7 +237,7 @@ MahoganyMart1F_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_PHARMACIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_LANCE, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
person_event SPRITE_DRAGON, 6, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE
person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS
diff --git a/maps/MahoganyPokeCenter1F.asm b/maps/MahoganyPokeCenter1F.asm
index 0314d2fc2..ce1230329 100644
--- a/maps/MahoganyPokeCenter1F.asm
+++ b/maps/MahoganyPokeCenter1F.asm
@@ -66,6 +66,6 @@ MahoganyPokeCenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19a356, -1
- person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x19a359, -1
+ person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x19a359, -1
person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19a35c, -1
person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x19a35f, -1
diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm
index f7c1bcc08..ce93c18a8 100644
--- a/maps/MahoganyTown.asm
+++ b/maps/MahoganyTown.asm
@@ -56,7 +56,7 @@ UnknownScript_0x190040:
iffalse UnknownScript_0x190072
checkmoney $0, 300
if_equal $2, UnknownScript_0x19006c
- giveitem RAGECANDYBAR, $1
+ giveitem RAGECANDYBAR
iffalse UnknownScript_0x190078
waitbutton
playsound SFX_TRANSACTION
diff --git a/maps/ManiasHouse.asm b/maps/ManiasHouse.asm
index f5e42063f..51c33b76c 100644
--- a/maps/ManiasHouse.asm
+++ b/maps/ManiasHouse.asm
@@ -212,4 +212,4 @@ ManiasHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, ManiaScript, -1
+ person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ManiaScript, -1
diff --git a/maps/MobileBattleRoom.asm b/maps/MobileBattleRoom.asm
index ba54d2a5d..c672c3b69 100644
--- a/maps/MobileBattleRoom.asm
+++ b/maps/MobileBattleRoom.asm
@@ -35,11 +35,11 @@ MapMobileBattleRoomSignpost0Script:
writetext MobileBattleRoom_HealText
pause 20
loadmovesprites
- special FadeBlackBGMap
+ special FadeOutPalettes
playmusic MUSIC_HEAL
special LoadMapPalettes
pause 60
- special FadeInBGMap
+ special FadeInPalettes
special RestartMapMusic
refreshscreen $0
.two_:
diff --git a/maps/MountMoonSquare.asm b/maps/MountMoonSquare.asm
index 17ebdb9b3..e1d364efd 100644
--- a/maps/MountMoonSquare.asm
+++ b/maps/MountMoonSquare.asm
@@ -157,4 +157,4 @@ MountMoonSquare_MapEventHeader:
db 3
person_event SPRITE_FAIRY, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
person_event SPRITE_FAIRY, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY
- person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK
+ person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK
diff --git a/maps/MountMortar1FInside.asm b/maps/MountMortar1FInside.asm
index 81745abdd..36c30f601 100644
--- a/maps/MountMortar1FInside.asm
+++ b/maps/MountMortar1FInside.asm
@@ -127,13 +127,13 @@ MountMortar1FInside_MapEventHeader:
.PersonEvents:
db 10
- person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, MountMortar1FBoulder, -1
- person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
- person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
- person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION
- person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET
+ person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortar1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE
+ person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION
+ person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET
person_event SPRITE_SUPER_NERD, 43, 33, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacMiller, -1
- person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdMarkus, -1
- person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON
- person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL
+ person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdMarkus, -1
+ person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON
+ person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL
diff --git a/maps/MountMortar1FOutside.asm b/maps/MountMortar1FOutside.asm
index 2a4238f0e..e1fd49999 100644
--- a/maps/MountMortar1FOutside.asm
+++ b/maps/MountMortar1FOutside.asm
@@ -40,5 +40,5 @@ MountMortar1FOutside_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER
- person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE
+ person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER
+ person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE
diff --git a/maps/MountMortar2FInside.asm b/maps/MountMortar2FInside.asm
index 2b86c064a..1919737bd 100644
--- a/maps/MountMortar2FInside.asm
+++ b/maps/MountMortar2FInside.asm
@@ -76,10 +76,10 @@ MountMortar2FInside_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
- person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
- person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
- person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
- person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER
- person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE
- person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdHugh, -1
+ person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION
+ person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY
+ person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL
+ person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE
+ person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER
+ person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE
+ person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdHugh, -1
diff --git a/maps/MountMortarB1F.asm b/maps/MountMortarB1F.asm
index a2363a7f5..ba89f111b 100644
--- a/maps/MountMortarB1F.asm
+++ b/maps/MountMortarB1F.asm
@@ -144,10 +144,10 @@ MountMortarB1F_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION
- person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS
- person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, MountMortarB1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS
+ person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortarB1FBoulder, -1
person_event SPRITE_BLACK_BELT, 4, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BlackBeltScript_0x7e1f6, -1
- person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER
- person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP
+ person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER
+ person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP
diff --git a/maps/MrFujisHouse.asm b/maps/MrFujisHouse.asm
index 9f7733307..dda963a8a 100644
--- a/maps/MrFujisHouse.asm
+++ b/maps/MrFujisHouse.asm
@@ -92,7 +92,7 @@ MrFujisHouse_MapEventHeader:
.PersonEvents:
db 5
person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x7e8ca, -1
- person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, LassScript_0x7e8cd, -1
- person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, MrFujisPsyduck, -1
- person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MrFujisNidorino, -1
- person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MrFujisPidgey, -1
+ person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x7e8cd, -1
+ person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, MrFujisPsyduck, -1
+ person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MrFujisNidorino, -1
+ person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MrFujisPidgey, -1
diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm
index 604b74022..d66ad7506 100644
--- a/maps/MrPokemonsHouse.asm
+++ b/maps/MrPokemonsHouse.asm
@@ -28,7 +28,7 @@ UnknownScript_0x196e56:
writetext UnknownText_0x196fa8
keeptextopen
waitbutton
- giveitem MYSTERY_EGG, $1
+ giveitem MYSTERY_EGG
writetext UnknownText_0x196fd2
playsound SFX_KEY_ITEM
waitbutton
@@ -69,9 +69,9 @@ UnknownScript_0x196eb0:
writetext UnknownText_0x197476
yesorno
iffalse UnknownScript_0x196ec3
- verbosegiveitem EXP_SHARE, 1
+ verbosegiveitem EXP_SHARE
iffalse UnknownScript_0x196ec7
- takeitem RED_SCALE, 1
+ takeitem RED_SCALE
jump UnknownScript_0x196eaa
UnknownScript_0x196ec3:
diff --git a/maps/MrPsychicsHouse.asm b/maps/MrPsychicsHouse.asm
index 0ab0c8f67..703e425d4 100644
--- a/maps/MrPsychicsHouse.asm
+++ b/maps/MrPsychicsHouse.asm
@@ -12,7 +12,7 @@ MrPsychic:
iftrue .AlreadyGotItem
writetext MrPsychicText1
keeptextopen
- verbosegiveitem TM_PSYCHIC, 1
+ verbosegiveitem TM_PSYCHIC
iffalse .Done
setevent EVENT_GOT_TM29_PSYCHIC
.AlreadyGotItem
diff --git a/maps/NationalPark.asm b/maps/NationalPark.asm
index 8010c3d08..b556ef134 100644
--- a/maps/NationalPark.asm
+++ b/maps/NationalPark.asm
@@ -18,7 +18,7 @@ TeacherScript_0x5c008:
iftrue UnknownScript_0x5c01d
writetext UnknownText_0x5c265
keeptextopen
- verbosegiveitem QUICK_CLAW, 1
+ verbosegiveitem QUICK_CLAW
iffalse UnknownScript_0x5c021
setevent EVENT_GOT_QUICK_CLAW
UnknownScript_0x5c01d:
@@ -216,7 +216,7 @@ UnknownScript_0x5c163:
UnknownScript_0x5c177:
scall UnknownScript_0x5c1a7
- verbosegiveitem NUGGET, 1
+ verbosegiveitem NUGGET
iffalse UnknownScript_0x5c186
clearflag ENGINE_BEVERLY_HAS_NUGGET
jump UnknownScript_0x5c19b
@@ -526,12 +526,12 @@ NationalPark_MapEventHeader:
person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5c008, -1
person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x5c023, -1
person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c026, -1
- person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, TeacherScript_0x5c029, -1
- person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, GrowlitheScript_0x5c02c, -1
- person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJack1, -1
- person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanfBeverly1, -1
- person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanmWilliam, -1
- person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassKrise, -1
- person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL
+ person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, TeacherScript_0x5c029, -1
+ person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, GrowlitheScript_0x5c02c, -1
+ person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJack1, -1
+ person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanfBeverly1, -1
+ person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanmWilliam, -1
+ person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassKrise, -1
+ person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL
person_event SPRITE_GAMEBOY_KID, 6, 26, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x5c037, -1
- person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG
+ person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG
diff --git a/maps/NationalParkBugContest.asm b/maps/NationalParkBugContest.asm
index 1fd9e2798..5796a70d0 100644
--- a/maps/NationalParkBugContest.asm
+++ b/maps/NationalParkBugContest.asm
@@ -230,15 +230,15 @@ NationalParkBugContest_MapEventHeader:
.PersonEvents:
db 12
- person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A
- person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A
+ person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A
+ person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A
person_event SPRITE_ROCKER, 18, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A
person_event SPRITE_POKEFAN_M, 13, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A
- person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A
- person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_02, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A
+ person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A
+ person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A
person_event SPRITE_LASS, 23, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A
- person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A
- person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A
- person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_02, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A
- person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL
- person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG
+ person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A
+ person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A
+ person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A
+ person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL
+ person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG
diff --git a/maps/NewBarkTown.asm b/maps/NewBarkTown.asm
index c3477f179..059746efe 100644
--- a/maps/NewBarkTown.asm
+++ b/maps/NewBarkTown.asm
@@ -305,6 +305,6 @@ NewBarkTown_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_03, 0, 1, -1, -1, 0, 0, 0, TeacherScript_0x1a806f, -1
+ person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, 0, 0, 0, TeacherScript_0x1a806f, -1
person_event SPRITE_FISHER, 9, 12, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a809b, -1
person_event SPRITE_SILVER, 2, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN
diff --git a/maps/OaksLab.asm b/maps/OaksLab.asm
index 9861ae8be..8c349ae45 100644
--- a/maps/OaksLab.asm
+++ b/maps/OaksLab.asm
@@ -286,4 +286,4 @@ OaksLab_MapEventHeader:
person_event SPRITE_OAK, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, Oak, -1
person_event SPRITE_SCIENTIST, 8, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b40f, -1
person_event SPRITE_SCIENTIST, 9, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b412, -1
- person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b415, -1
+ person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b415, -1
diff --git a/maps/OlivineCafe.asm b/maps/OlivineCafe.asm
index a23b89266..799b6bac6 100644
--- a/maps/OlivineCafe.asm
+++ b/maps/OlivineCafe.asm
@@ -12,7 +12,7 @@ SailorScript_0x9c8c1:
iftrue UnknownScript_0x9c8d3
writetext UnknownText_0x9c8df
keeptextopen
- verbosegiveitem HM_STRENGTH, 1
+ verbosegiveitem HM_STRENGTH
setevent EVENT_GOT_HM04_STRENGTH
UnknownScript_0x9c8d3:
writetext UnknownText_0x9c965
diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm
index 966063893..9b431973f 100644
--- a/maps/OlivineCity.asm
+++ b/maps/OlivineCity.asm
@@ -321,6 +321,6 @@ OlivineCity_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, SailorScript_0x1a88a3, -1
- person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x1a88a6, -1
- person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, SailorScript_0x1a88ba, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x1a88a6, -1
+ person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SailorScript_0x1a88ba, -1
person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY
diff --git a/maps/OlivineGoodRodHouse.asm b/maps/OlivineGoodRodHouse.asm
index 87fc6219a..52a969d1c 100644
--- a/maps/OlivineGoodRodHouse.asm
+++ b/maps/OlivineGoodRodHouse.asm
@@ -15,7 +15,7 @@ GoodRodGuru:
iffalse .DontWantIt
writetext GiveGoodRodText
keeptextopen
- verbosegiveitem GOOD_ROD, 1
+ verbosegiveitem GOOD_ROD
writetext GaveGoodRodText
closetext
loadmovesprites
diff --git a/maps/OlivineGym.asm b/maps/OlivineGym.asm
index 8b259b46b..ecdcf8e33 100644
--- a/maps/OlivineGym.asm
+++ b/maps/OlivineGym.asm
@@ -30,7 +30,7 @@ JasmineScript_0x9c12f:
iftrue UnknownScript_0x9c172
writetext UnknownText_0x9c354
keeptextopen
- verbosegiveitem TM_IRON_TAIL, 1
+ verbosegiveitem TM_IRON_TAIL
iffalse UnknownScript_0x9c176
setevent EVENT_GOT_TM23_IRON_TAIL
writetext UnknownText_0x9c3a5
diff --git a/maps/OlivineHouseBeta.asm b/maps/OlivineHouseBeta.asm
index 301a076ad..9fdf16e59 100644
--- a/maps/OlivineHouseBeta.asm
+++ b/maps/OlivineHouseBeta.asm
@@ -54,5 +54,5 @@ OlivineHouseBeta_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c58f, -1
+ person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c58f, -1
person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, RhydonScript_0x9c592, -1
diff --git a/maps/OlivineLighthouse2F.asm b/maps/OlivineLighthouse2F.asm
index 3062d615f..0b84dad11 100644
--- a/maps/OlivineLighthouse2F.asm
+++ b/maps/OlivineLighthouse2F.asm
@@ -94,7 +94,7 @@ UnknownScript_0x5afc7:
checkevent EVENT_GOT_PROTEIN_FROM_HUEY
iftrue UnknownScript_0x5b03e
scall UnknownScript_0x5b076
- verbosegiveitem PROTEIN, 1
+ verbosegiveitem PROTEIN
iffalse UnknownScript_0x5b06f
setevent EVENT_GOT_PROTEIN_FROM_HUEY
jump UnknownScript_0x5b05f
@@ -106,7 +106,7 @@ UnknownScript_0x5b03f:
loadfont
writetext UnknownText_0x5b1b6
closetext
- verbosegiveitem PROTEIN, 1
+ verbosegiveitem PROTEIN
iffalse UnknownScript_0x5b06f
clearevent EVENT_HUEY_PROTEIN
setevent EVENT_GOT_PROTEIN_FROM_HUEY
diff --git a/maps/OlivineLighthouse3F.asm b/maps/OlivineLighthouse3F.asm
index 266c38cc7..d94095e8a 100644
--- a/maps/OlivineLighthouse3F.asm
+++ b/maps/OlivineLighthouse3F.asm
@@ -133,4 +133,4 @@ OlivineLighthouse3F_MapEventHeader:
person_event SPRITE_SAILOR, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSailorTerrell, -1
person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerGentlemanPreston, -1
person_event SPRITE_YOUNGSTER, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperTheo, -1
- person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER
+ person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER
diff --git a/maps/OlivineLighthouse5F.asm b/maps/OlivineLighthouse5F.asm
index e27b30593..024e1a739 100644
--- a/maps/OlivineLighthouse5F.asm
+++ b/maps/OlivineLighthouse5F.asm
@@ -107,8 +107,8 @@ OlivineLighthouse5F_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorErnest, -1
+ person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorErnest, -1
person_event SPRITE_YOUNGSTER, 3, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerBird_keeperDenis, -1
- person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY
- person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL
- person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER
+ person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY
+ person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL
+ person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER
diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm
index 8f491ebcf..c9bb683e7 100644
--- a/maps/OlivineLighthouse6F.asm
+++ b/maps/OlivineLighthouse6F.asm
@@ -27,7 +27,7 @@ UnknownScript_0x60bab:
iffalse UnknownScript_0x60c25
writetext UnknownText_0x60dc3
keeptextopen
- takeitem SECRETPOTION, 1
+ takeitem SECRETPOTION
writetext UnknownText_0x60dea
closetext
loadmovesprites
@@ -42,9 +42,9 @@ UnknownScript_0x60bab:
loadmovesprites
special RestartMapMusic
cry AMPHAROS
- special FadeBlackBGMap
+ special FadeOutPalettes
pause 10
- special FadeInBGMap
+ special FadeInPalettes
loadfont
writetext UnknownText_0x60f3d
closetext
@@ -116,10 +116,10 @@ UnknownScript_0x60c51:
cry AMPHAROS
closetext
loadmovesprites
- special FadeBlackBGMap
- special FadeInBGMap
- special FadeBlackBGMap
- special FadeInBGMap
+ special FadeOutPalettes
+ special FadeInPalettes
+ special FadeOutPalettes
+ special FadeInPalettes
end
ItemFragment_0x60c66:
@@ -131,8 +131,8 @@ MovementData_0x60c68:
slow_step_right
slow_step_up
slow_step_up
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
step_end
MovementData_0x60c70:
@@ -153,7 +153,7 @@ MovementData_0x60c79:
slow_step_up
slow_step_up
slow_step_up
- accelerate_last
+ step_sleep_8
step_end
UnknownText_0x60c81:
@@ -272,4 +272,4 @@ OlivineLighthouse6F_MapEventHeader:
db 3
person_event SPRITE_JASMINE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE
person_event SPRITE_MONSTER, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MonsterScript_0x60c3a, -1
- person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION
+ person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION
diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm
index 35343fa91..51af0670d 100644
--- a/maps/OlivinePort.asm
+++ b/maps/OlivinePort.asm
@@ -39,7 +39,7 @@ SailorScript_0x748c0:
waitbutton
applymovement PLAYER, MovementData_0x74a30
playsound SFX_EXIT_BUILDING
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
checkevent EVENT_FAST_SHIP_FIRST_TIME
iffalse UnknownScript_0x7490a
diff --git a/maps/OlivinePunishmentSpeechHouse.asm b/maps/OlivinePunishmentSpeechHouse.asm
index 2d9b83298..cfe7a6b96 100644
--- a/maps/OlivinePunishmentSpeechHouse.asm
+++ b/maps/OlivinePunishmentSpeechHouse.asm
@@ -54,5 +54,5 @@ OlivinePunishmentSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDad, -1
+ person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDad, -1
person_event SPRITE_LASS, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDaughter, -1
diff --git a/maps/OlivineVoltorbHouse.asm b/maps/OlivineVoltorbHouse.asm
index f7a917a04..b812c0181 100644
--- a/maps/OlivineVoltorbHouse.asm
+++ b/maps/OlivineVoltorbHouse.asm
@@ -35,4 +35,4 @@ OlivineVoltorbHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Tim, -1
+ person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Tim, -1
diff --git a/maps/PalletTown.asm b/maps/PalletTown.asm
index e380fc41b..dbff72a67 100644
--- a/maps/PalletTown.asm
+++ b/maps/PalletTown.asm
@@ -89,5 +89,5 @@ PalletTown_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, TeacherScript_0x1ac6d5, -1
+ person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, TeacherScript_0x1ac6d5, -1
person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1ac6d8, -1
diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm
index 47f0cbbd2..56a1cfcf1 100644
--- a/maps/PewterCity.asm
+++ b/maps/PewterCity.asm
@@ -25,7 +25,7 @@ GrampsScript_0x18c00f:
iftrue UnknownScript_0x18c023
writetext UnknownText_0x18c0c6
keeptextopen
- verbosegiveitem SILVER_WING, 1
+ verbosegiveitem SILVER_WING
setevent EVENT_GOT_SILVER_WING
loadmovesprites
end
@@ -174,8 +174,8 @@ PewterCity_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18c009, -1
- person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18c00c, -1
+ person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18c009, -1
+ person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18c00c, -1
person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x18c00f, -1
- person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c03e, -1
- person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c040, -1
+ person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c03e, -1
+ person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c040, -1
diff --git a/maps/PewterMart.asm b/maps/PewterMart.asm
index a830fa962..e88de05f6 100644
--- a/maps/PewterMart.asm
+++ b/maps/PewterMart.asm
@@ -59,4 +59,4 @@ PewterMart_MapEventHeader:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x1a2dcb, -1
person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, YoungsterScript_0x1a2dd2, -1
- person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a2dd5, -1
+ person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a2dd5, -1
diff --git a/maps/PewterNidoranSpeechHouse.asm b/maps/PewterNidoranSpeechHouse.asm
index a7cbef0fe..9e4b95306 100644
--- a/maps/PewterNidoranSpeechHouse.asm
+++ b/maps/PewterNidoranSpeechHouse.asm
@@ -42,4 +42,4 @@ PewterNidoranSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1a2807, -1
- person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x1a280a, -1
+ person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x1a280a, -1
diff --git a/maps/PewterPokeCenter1F.asm b/maps/PewterPokeCenter1F.asm
index 5284f784d..f6379e60f 100644
--- a/maps/PewterPokeCenter1F.asm
+++ b/maps/PewterPokeCenter1F.asm
@@ -80,6 +80,6 @@ PewterPokeCenter1F_MapEventHeader:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1a2ee7, -1
person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a2eea, -1
- person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x1a2eed, -1
+ person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x1a2eed, -1
person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x1a2ef7, -1
person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1a2efa, -1
diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm
index 93fc07a2f..9c3a858a9 100644
--- a/maps/PokeCenter2F.asm
+++ b/maps/PokeCenter2F.asm
@@ -435,7 +435,7 @@ PokeCenter2F_CheckGender:
special Functionc225
applymovement PLAYER, MovementData_0x192d1c
setflag ENGINE_KRIS_IN_CABLE_CLUB
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
loadfont
writetext Text_LikeTheLook
closetext
@@ -461,7 +461,7 @@ Script_CleanUpFemaleFlagAfterTrade:
writebyte $90
special Functionc225
applymovement PLAYER, MovementData_0x192d1c
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
applymovement PLAYER, MovementData_0x192d2a
applymovement $2, MovementData_0x192cfe
end
@@ -483,7 +483,7 @@ Script_CleanUpFemaleFlagAfterBattle:
writebyte $90
special Functionc225
applymovement PLAYER, MovementData_0x192d1c
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
applymovement PLAYER, MovementData_0x192d2a
applymovement $3, MovementData_0x192cfe
end
@@ -544,7 +544,7 @@ TimeCapsuleScript_CheckPlayerGender:
applymovement PLAYER, MovementData_0x192d22
faceperson PLAYER, $4
setflag ENGINE_KRIS_IN_CABLE_CLUB
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
loadfont
writetext Text_LikeTheLook
closetext
@@ -571,7 +571,7 @@ Script_LeftTimeCapsule:
writebyte $90
special Functionc225
applymovement PLAYER, MovementData_0x192d1c
- special Special_ReplaceKrisSprite
+ special ReplaceKrisSprite
applymovement PLAYER, MovementData_0x192cfc
applymovement $4, MovementData_0x192d01
.Done:
diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm
index 330e02ebc..581b95050 100644
--- a/maps/PokemonFanClub.asm
+++ b/maps/PokemonFanClub.asm
@@ -20,7 +20,7 @@ GentlemanScript_0x1917e9:
UnknownScript_0x191802:
writetext UnknownText_0x191a3d
keeptextopen
- verbosegiveitem RARE_CANDY, 1
+ verbosegiveitem RARE_CANDY
iffalse UnknownScript_0x19181f
setevent EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT
writetext UnknownText_0x191a72
@@ -69,7 +69,7 @@ UnknownScript_0x191844:
writetext UnknownText_0x191c5a
keeptextopen
waitbutton
- giveitem LOST_ITEM, $1
+ giveitem LOST_ITEM
iffalse UnknownScript_0x191865
disappear $6
writetext UnknownText_0x191d0a
@@ -312,4 +312,4 @@ PokemonFanClub_MapEventHeader:
person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x191824, -1
person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x19186b, -1
person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL
- person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OddishScript_0x191871, -1
+ person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OddishScript_0x191871, -1
diff --git a/maps/PowerPlant.asm b/maps/PowerPlant.asm
index ac334e530..bbe11d568 100644
--- a/maps/PowerPlant.asm
+++ b/maps/PowerPlant.asm
@@ -154,7 +154,7 @@ UnknownScript_0x188e8d:
UnknownScript_0x188e93:
writetext UnknownText_0x18936e
keeptextopen
- takeitem MACHINE_PART, 1
+ takeitem MACHINE_PART
setevent EVENT_RETURNED_MACHINE_PART
clearevent EVENT_SAFFRON_TRAIN_STATION_POPULATION
setevent EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH
@@ -166,7 +166,7 @@ UnknownScript_0x188eac:
iftrue UnknownScript_0x188ec5
writetext UnknownText_0x1893c4
keeptextopen
- verbosegiveitem TM_ZAP_CANNON, 1
+ verbosegiveitem TM_ZAP_CANNON
iffalse UnknownScript_0x188ec3
setevent EVENT_GOT_TM07_ZAP_CANNON
writetext UnknownText_0x1893f4
@@ -402,7 +402,7 @@ PowerPlant_MapEventHeader:
.PersonEvents:
db 7
person_event SPRITE_OFFICER, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188df5, -1
- person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e15, -1
+ person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e15, -1
person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e29, -1
person_event SPRITE_OFFICER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188e3d, -1
person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e51, -1
diff --git a/maps/RadioTower1F.asm b/maps/RadioTower1F.asm
index dd3d4e2d0..84630c3b2 100644
--- a/maps/RadioTower1F.asm
+++ b/maps/RadioTower1F.asm
@@ -65,7 +65,7 @@ GentlemanScript_0x5cd3d:
playsound SFX_1ST_PLACE
waitbutton
keeptextopen
- giveitem MASTER_BALL, 1
+ giveitem MASTER_BALL
iffalse .BagFull
itemnotify
setflag ENGINE_LUCKY_NUMBER_SHOW
@@ -76,7 +76,7 @@ GentlemanScript_0x5cd3d:
playsound SFX_2ND_PLACE
waitbutton
keeptextopen
- giveitem EXP_SHARE, 1
+ giveitem EXP_SHARE
iffalse .BagFull
itemnotify
setflag ENGINE_LUCKY_NUMBER_SHOW
@@ -87,7 +87,7 @@ GentlemanScript_0x5cd3d:
playsound SFX_3RD_PLACE
waitbutton
keeptextopen
- giveitem PP_UP, 1
+ giveitem PP_UP
iffalse .BagFull
itemnotify
setflag ENGINE_LUCKY_NUMBER_SHOW
diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm
index bf99ee5fb..7efe8bf1e 100644
--- a/maps/RadioTower2F.asm
+++ b/maps/RadioTower2F.asm
@@ -151,7 +151,7 @@ UnknownScript_0x5d800:
writetext UnknownText_0x5dcf4
keeptextopen
setevent EVENT_MET_BUENA
- verbosegiveitem BLUE_CARD, 1
+ verbosegiveitem BLUE_CARD
UnknownScript_0x5d80a:
writetext UnknownText_0x5de10
closetext
@@ -728,6 +728,6 @@ RadioTower2F_MapEventHeader:
person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS
person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x5d715, -1
+ person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x5d715, -1
person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Buena, -1
person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS
diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm
index 164a22c6b..8e3bdaf26 100644
--- a/maps/RadioTower3F.asm
+++ b/maps/RadioTower3F.asm
@@ -61,7 +61,7 @@ UnknownScript_0x5e584:
UnknownScript_0x5e58a:
writetext UnknownText_0x5e7e2
keeptextopen
- verbosegiveitem TM_SUNNY_DAY, 1
+ verbosegiveitem TM_SUNNY_DAY
iffalse UnknownScript_0x5e5a1
writetext UnknownText_0x5e821
closetext
@@ -344,8 +344,8 @@ RadioTower3F_MapEventHeader:
.PersonEvents:
db 7
person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GymGuyScript_0x5e556, -1
- person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5e56a, -1
+ person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GymGuyScript_0x5e556, -1
+ person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5e56a, -1
person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 6, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm
index 2fb0b6875..cdfe97692 100644
--- a/maps/RadioTower4F.asm
+++ b/maps/RadioTower4F.asm
@@ -23,7 +23,7 @@ TeacherScript_0x5eb85:
UnknownScript_0x5eb99:
writetext UnknownText_0x5ecab
keeptextopen
- verbosegiveitem PINK_BOW, 1
+ verbosegiveitem PINK_BOW
iffalse UnknownScript_0x5ebb0
writetext UnknownText_0x5ecef
closetext
@@ -258,9 +258,9 @@ RadioTower4F_MapEventHeader:
.PersonEvents:
db 7
person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5eb85, -1
- person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrowlitheScript_0x5ebb2, -1
- person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_1F, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5eb85, -1
+ person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrowlitheScript_0x5ebb2, -1
+ person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, 0, 2, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET_GIRL, 4, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_SCIENTIST, 2, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm
index a7516aa10..31a94eeb5 100644
--- a/maps/RadioTower5F.asm
+++ b/maps/RadioTower5F.asm
@@ -40,7 +40,7 @@ UnknownScript_0x60011:
loadfont
writetext UnknownText_0x60246
keeptextopen
- verbosegiveitem BASEMENT_KEY, 1
+ verbosegiveitem BASEMENT_KEY
loadmovesprites
dotrigger $1
setevent EVENT_BEAT_ROCKET_EXECUTIVEM_3
@@ -117,7 +117,7 @@ UnknownScript_0x6006e:
loadfont
writetext UnknownText_0x605b2
keeptextopen
- verbosegiveitem CLEAR_BELL, 1
+ verbosegiveitem CLEAR_BELL
writetext UnknownText_0x6062c
closetext
loadmovesprites
@@ -439,8 +439,8 @@ RadioTower5F_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, Director, -1
+ person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, Director, -1
person_event SPRITE_ROCKET, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET_GIRL, 2, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKER, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER
- person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL
diff --git a/maps/RockTunnel1F.asm b/maps/RockTunnel1F.asm
index 71c3938e9..8843ee243 100644
--- a/maps/RockTunnel1F.asm
+++ b/maps/RockTunnel1F.asm
@@ -42,5 +42,5 @@ RockTunnel1F_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER
- person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
+ person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER
+ person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING
diff --git a/maps/RockTunnelB1F.asm b/maps/RockTunnelB1F.asm
index b2f9d1efa..99722d62f 100644
--- a/maps/RockTunnelB1F.asm
+++ b/maps/RockTunnelB1F.asm
@@ -38,6 +38,6 @@ RockTunnelB1F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON
- person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP
- person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE
+ person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON
+ person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP
+ person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE
diff --git a/maps/Route1.asm b/maps/Route1.asm
index 7416bd196..1708caa9f 100644
--- a/maps/Route1.asm
+++ b/maps/Route1.asm
@@ -92,5 +92,5 @@ Route1_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_YOUNGSTER, 12, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSchoolboyDanny, -1
- person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfQuinn, -1
- person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac581, -1
+ person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfQuinn, -1
+ person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac581, -1
diff --git a/maps/Route10PokeCenter1F.asm b/maps/Route10PokeCenter1F.asm
index 4087447d2..cea3cbd7a 100644
--- a/maps/Route10PokeCenter1F.asm
+++ b/maps/Route10PokeCenter1F.asm
@@ -94,5 +94,5 @@ Route10PokeCenter1F_MapEventHeader:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x188bd4, -1
person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x188bd7, -1
- person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x188bda, -1
+ person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x188bda, -1
person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x188bee, -1
diff --git a/maps/Route10South.asm b/maps/Route10South.asm
index 88c71fc00..477d03c20 100644
--- a/maps/Route10South.asm
+++ b/maps/Route10South.asm
@@ -89,4 +89,4 @@ Route10South_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_POKEFAN_M, 3, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerJim, -1
- person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmRobert, -1
+ person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmRobert, -1
diff --git a/maps/Route11.asm b/maps/Route11.asm
index 6c16ef7b1..0ec066825 100644
--- a/maps/Route11.asm
+++ b/maps/Route11.asm
@@ -156,8 +156,8 @@ Route11_MapEventHeader:
.PersonEvents:
db 5
- person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterOwen, -1
+ person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterOwen, -1
person_event SPRITE_YOUNGSTER, 4, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterJason, -1
person_event SPRITE_YOUNGSTER, 7, 28, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicHerman, -1
- person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFidel, -1
- person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x68055, -1
+ person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFidel, -1
+ person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x68055, -1
diff --git a/maps/Route12.asm b/maps/Route12.asm
index 251128b38..f5632d2ca 100644
--- a/maps/Route12.asm
+++ b/maps/Route12.asm
@@ -178,9 +178,9 @@ Route12_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherMartin, -1
+ person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherMartin, -1
person_event SPRITE_FISHER, 23, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherStephen, -1
person_event SPRITE_FISHER, 38, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerFisherBarney, -1
person_event SPRITE_FISHER, 7, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherKyle, -1
- person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM
- person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET
+ person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM
+ person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET
diff --git a/maps/Route12SuperRodHouse.asm b/maps/Route12SuperRodHouse.asm
index c4b21e728..4fd67e033 100644
--- a/maps/Route12SuperRodHouse.asm
+++ b/maps/Route12SuperRodHouse.asm
@@ -15,7 +15,7 @@ FishingGuruScript_0x7f484:
iffalse UnknownScript_0x7f4a6
writetext UnknownText_0x7f52f
keeptextopen
- verbosegiveitem SUPER_ROD, 1
+ verbosegiveitem SUPER_ROD
iffalse UnknownScript_0x7f4aa
setevent EVENT_GOT_SUPER_ROD
UnknownScript_0x7f4a0:
diff --git a/maps/Route14.asm b/maps/Route14.asm
index 9c4698b1c..ed68dd97f 100644
--- a/maps/Route14.asm
+++ b/maps/Route14.asm
@@ -125,6 +125,6 @@ Route14_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_POKEFAN_M, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmCarter, -1
- person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRoy, -1
- person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmTrevor, -1
+ person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRoy, -1
+ person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmTrevor, -1
person_event SPRITE_TEACHER, 5, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 4, TeacherScript_0x1ad47f, -1
diff --git a/maps/Route15.asm b/maps/Route15.asm
index 0aeea3666..0dbcfd80e 100644
--- a/maps/Route15.asm
+++ b/maps/Route15.asm
@@ -215,5 +215,5 @@ Route15_MapEventHeader:
person_event SPRITE_YOUNGSTER, 10, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJohnny, -1
person_event SPRITE_YOUNGSTER, 10, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyBilly, -1
person_event SPRITE_TEACHER, 12, 30, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerTeacherColette, -1
- person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherHillary, -1
- person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP
+ person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherHillary, -1
+ person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP
diff --git a/maps/Route17.asm b/maps/Route17.asm
index 925748ae6..3c7166198 100644
--- a/maps/Route17.asm
+++ b/maps/Route17.asm
@@ -150,7 +150,7 @@ Route17_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerRiley, -1
+ person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerRiley, -1
person_event SPRITE_BIKER, 68, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBikerJoel, -1
- person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBikerGlenn, -1
+ person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBikerGlenn, -1
person_event SPRITE_BIKER, 80, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerCharles, -1
diff --git a/maps/Route18.asm b/maps/Route18.asm
index f11e06b5d..bbdb33ca0 100644
--- a/maps/Route18.asm
+++ b/maps/Route18.asm
@@ -91,5 +91,5 @@ Route18_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBoris, -1
+ person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBoris, -1
person_event SPRITE_YOUNGSTER, 6, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBob, -1
diff --git a/maps/Route19.asm b/maps/Route19.asm
index 029ebbede..824d2c2f4 100644
--- a/maps/Route19.asm
+++ b/maps/Route19.asm
@@ -248,8 +248,8 @@ Route19_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_SWIMMER_GIRL, 23, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerSwimmerfDawn, -1
- person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermHarold, -1
- person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermJerome, -1
+ person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermHarold, -1
+ person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermJerome, -1
person_event SPRITE_SWIMMER_GUY, 23, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerSwimmermTucker, -1
person_event SPRITE_FISHER, 5, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 1, FisherScript_0x19ea4d, -1
person_event SPRITE_FISHER, 5, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, FisherScript_0x19ea61, -1
diff --git a/maps/Route2.asm b/maps/Route2.asm
index c122fd9a1..0731b5820 100644
--- a/maps/Route2.asm
+++ b/maps/Route2.asm
@@ -163,10 +163,10 @@ Route2_MapEventHeader:
.PersonEvents:
db 8
person_event SPRITE_BUG_CATCHER, 45, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherRob, -1
- person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherEd, -1
+ person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherEd, -1
person_event SPRITE_BUG_CATCHER, 40, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherDoug, -1
- person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT
- person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION
- person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS
- person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER
- person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac306, -1
+ person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT
+ person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION
+ person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS
+ person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER
+ person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac306, -1
diff --git a/maps/Route20.asm b/maps/Route20.asm
index a0947ab7a..3d821258a 100644
--- a/maps/Route20.asm
+++ b/maps/Route20.asm
@@ -127,6 +127,6 @@ Route20_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNicole, -1
- person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfLori, -1
- person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCameron, -1
+ person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNicole, -1
+ person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfLori, -1
+ person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCameron, -1
diff --git a/maps/Route21.asm b/maps/Route21.asm
index 9c01de42d..852fc28cf 100644
--- a/maps/Route21.asm
+++ b/maps/Route21.asm
@@ -99,6 +99,6 @@ Route21_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNikki, -1
+ person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNikki, -1
person_event SPRITE_SWIMMER_GUY, 30, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSeth, -1
person_event SPRITE_FISHER, 22, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherArnold, -1
diff --git a/maps/Route24.asm b/maps/Route24.asm
index 7db0d2926..2d8efbb8f 100644
--- a/maps/Route24.asm
+++ b/maps/Route24.asm
@@ -130,4 +130,4 @@ Route24_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET
+ person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET
diff --git a/maps/Route25.asm b/maps/Route25.asm
index a99538b90..8fdad8bda 100644
--- a/maps/Route25.asm
+++ b/maps/Route25.asm
@@ -153,7 +153,7 @@ CooltrainerMScript_0x19efac:
iftrue UnknownScript_0x19efc7
writetext UnknownText_0x19f43b
keeptextopen
- verbosegiveitem NUGGET, 1
+ verbosegiveitem NUGGET
iffalse UnknownScript_0x19efde
setevent EVENT_CLEARED_NUGGET_BRIDGE
UnknownScript_0x19efc7:
@@ -449,4 +449,4 @@ Route25_MapEventHeader:
person_event SPRITE_LASS, 11, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassShannon, -1
person_event SPRITE_SUPER_NERD, 7, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerSupernerdPat, -1
person_event SPRITE_COOLTRAINER_M, 8, 37, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x19efac, -1
- person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN
+ person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN
diff --git a/maps/Route26.asm b/maps/Route26.asm
index 913910eb2..50a54ad75 100644
--- a/maps/Route26.asm
+++ b/maps/Route26.asm
@@ -423,9 +423,9 @@ Route26_MapEventHeader:
db 8
person_event SPRITE_COOLTRAINER_M, 24, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermJake, -1
person_event SPRITE_COOLTRAINER_M, 38, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermGaven3, -1
- person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJoyce, -1
+ person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJoyce, -1
person_event SPRITE_COOLTRAINER_F, 8, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfBeth1, -1
person_event SPRITE_YOUNGSTER, 79, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicRichard, -1
person_event SPRITE_FISHER, 92, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherScott, -1
- person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a4ec2, -1
- person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER
+ person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a4ec2, -1
+ person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER
diff --git a/maps/Route26DayofWeekSiblingsHouse.asm b/maps/Route26DayofWeekSiblingsHouse.asm
index 936261bbe..294394016 100644
--- a/maps/Route26DayofWeekSiblingsHouse.asm
+++ b/maps/Route26DayofWeekSiblingsHouse.asm
@@ -84,4 +84,4 @@ Route26DayofWeekSiblingsHouse_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x7b1e4, -1
+ person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x7b1e4, -1
diff --git a/maps/Route27.asm b/maps/Route27.asm
index 6a1f52f8d..98319f426 100644
--- a/maps/Route27.asm
+++ b/maps/Route27.asm
@@ -119,7 +119,7 @@ UnknownScript_0x1a08ff:
UnknownScript_0x1a0945:
scall UnknownScript_0x1a0973
- verbosegiveitem STAR_PIECE, 1
+ verbosegiveitem STAR_PIECE
iffalse UnknownScript_0x1a0954
clearflag ENGINE_JOSE_HAS_STAR_PIECE
jump UnknownScript_0x1a0963
@@ -482,9 +482,9 @@ Route27_MapEventHeader:
person_event SPRITE_COOLTRAINER_M, 7, 48, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermBlake, -1
person_event SPRITE_COOLTRAINER_M, 6, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermBrian, -1
person_event SPRITE_COOLTRAINER_F, 10, 72, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfReena, -1
- person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfMegan, -1
+ person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfMegan, -1
person_event SPRITE_YOUNGSTER, 7, 65, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicGilbert, -1
person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperJose2, -1
- person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM
- person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY
- person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 3, FisherScript_0x1a089c, -1
+ person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM
+ person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY
+ person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 3, FisherScript_0x1a089c, -1
diff --git a/maps/Route27SandstormHouse.asm b/maps/Route27SandstormHouse.asm
index 04f3a155d..a219b935d 100644
--- a/maps/Route27SandstormHouse.asm
+++ b/maps/Route27SandstormHouse.asm
@@ -19,7 +19,7 @@ SandstormHouseWoman:
.Loyal
writetext SandstormHouseWomanLoyalText
keeptextopen
- verbosegiveitem TM_SANDSTORM, 1
+ verbosegiveitem TM_SANDSTORM
iffalse .Done
setevent EVENT_GOT_TM37_SANDSTORM
.AlreadyGotItem
diff --git a/maps/Route28FamousSpeechHouse.asm b/maps/Route28FamousSpeechHouse.asm
index add88ec34..c2c63ba71 100644
--- a/maps/Route28FamousSpeechHouse.asm
+++ b/maps/Route28FamousSpeechHouse.asm
@@ -18,7 +18,7 @@ Celebrity:
iftrue .AlreadyGotItem
writetext CelebrityText1
keeptextopen
- verbosegiveitem TM_STEEL_WING, 1
+ verbosegiveitem TM_STEEL_WING
iffalse .Done
setevent EVENT_GOT_TM47_STEEL_WING
.Done
@@ -88,4 +88,4 @@ Route28FamousSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Celebrity, -1
- person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CelebritysFearow, -1
+ person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CelebritysFearow, -1
diff --git a/maps/Route29.asm b/maps/Route29.asm
index a50f02aba..f8a26bffe 100644
--- a/maps/Route29.asm
+++ b/maps/Route29.asm
@@ -176,7 +176,7 @@ TuscanyScript:
.MetTuscany
writetext TuscanyGivesGiftText
keeptextopen
- verbosegiveitem PINK_BOW, 1
+ verbosegiveitem PINK_BOW
iffalse TuscanyDoneScript
setevent EVENT_GOT_PINK_BOW_FROM_TUSCANY
writetext TuscanyGaveGiftText
@@ -430,11 +430,11 @@ Route29_MapEventHeader:
.PersonEvents:
db 8
- person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a0ff1, -1
+ person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a0ff1, -1
person_event SPRITE_YOUNGSTER, 16, 27, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a1028, -1
person_event SPRITE_TEACHER, 11, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a102b, -1
- person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1089, -1
+ person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1089, -1
person_event SPRITE_FISHER, 3, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x1a102e, -1
person_event SPRITE_COOLTRAINER_M, 4, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a1031, -1
- person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY
- person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION
+ person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY
+ person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION
diff --git a/maps/Route2NuggetSpeechHouse.asm b/maps/Route2NuggetSpeechHouse.asm
index e020d41a2..143897a9d 100644
--- a/maps/Route2NuggetSpeechHouse.asm
+++ b/maps/Route2NuggetSpeechHouse.asm
@@ -12,7 +12,7 @@ FisherScript_0x9b847:
iftrue .GotItem
writetext UnknownText_0x9b865
keeptextopen
- verbosegiveitem NUGGET, 1
+ verbosegiveitem NUGGET
iffalse .Done
setevent EVENT_GOT_NUGGET_FROM_GUY
.GotItem
diff --git a/maps/Route3.asm b/maps/Route3.asm
index 4d8899970..7e482ceb8 100644
--- a/maps/Route3.asm
+++ b/maps/Route3.asm
@@ -145,5 +145,5 @@ Route3_MapEventHeader:
db 4
person_event SPRITE_FISHER, 12, 26, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherOtis, -1
person_event SPRITE_YOUNGSTER, 7, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterWarren, -1
- person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterJimmy, -1
- person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerFirebreatherBurt, -1
+ person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterJimmy, -1
+ person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerFirebreatherBurt, -1
diff --git a/maps/Route30.asm b/maps/Route30.asm
index 362337b8b..a6c0fc7b3 100644
--- a/maps/Route30.asm
+++ b/maps/Route30.asm
@@ -117,7 +117,7 @@ UnknownScript_0x1a16e0:
checkevent EVENT_GOT_HP_UP_FROM_JOEY
iftrue UnknownScript_0x1a176e
scall UnknownScript_0x1a17a6
- verbosegiveitem HP_UP, 1
+ verbosegiveitem HP_UP
iffalse UnknownScript_0x1a179f
setevent EVENT_GOT_HP_UP_FROM_JOEY
jump UnknownScript_0x1a178f
@@ -129,7 +129,7 @@ UnknownScript_0x1a176f:
loadfont
writetext UnknownText_0x1a1bc0
closetext
- verbosegiveitem HP_UP, 1
+ verbosegiveitem HP_UP
iffalse UnknownScript_0x1a179f
clearevent EVENT_JOEY_HP_UP
setevent EVENT_GOT_HP_UP_FROM_JOEY
@@ -423,7 +423,7 @@ Route30_MapEventHeader:
person_event SPRITE_YOUNGSTER, 30, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a17d2, -1
person_event SPRITE_MONSTER, 24, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
person_event SPRITE_MONSTER, 25, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE
- person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f7, -1
- person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f9, -1
+ person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f7, -1
+ person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f9, -1
person_event SPRITE_COOLTRAINER_F, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x1a17e6, -1
- person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE
+ person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE
diff --git a/maps/Route30BerrySpeechHouse.asm b/maps/Route30BerrySpeechHouse.asm
index baf20ad5b..177f93781 100644
--- a/maps/Route30BerrySpeechHouse.asm
+++ b/maps/Route30BerrySpeechHouse.asm
@@ -12,7 +12,7 @@ PokefanMScript_0x196d64:
iftrue UnknownScript_0x196d79
writetext UnknownText_0x196d82
keeptextopen
- verbosegiveitem BERRY, 1
+ verbosegiveitem BERRY
iffalse UnknownScript_0x196d7d
setevent EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE
UnknownScript_0x196d79:
diff --git a/maps/Route31.asm b/maps/Route31.asm
index a68f1af06..0273a9669 100644
--- a/maps/Route31.asm
+++ b/maps/Route31.asm
@@ -120,19 +120,19 @@ UnknownScript_0x1a5507:
checkevent EVENT_WADE_HAS_BITTER_BERRY
iftrue .BitterBerry
.Berry
- verbosegiveitem BERRY, 1
+ verbosegiveitem BERRY
iffalse .PackFull
jump .Done
.Psncureberry
- verbosegiveitem PSNCUREBERRY, 1
+ verbosegiveitem PSNCUREBERRY
iffalse .PackFull
jump .Done
.Przcureberry
- verbosegiveitem PRZCUREBERRY, 1
+ verbosegiveitem PRZCUREBERRY
iffalse .PackFull
jump .Done
.BitterBerry
- verbosegiveitem BITTER_BERRY, 1
+ verbosegiveitem BITTER_BERRY
iffalse .PackFull
.Done
clearflag ENGINE_WADE_HAS_ITEM
@@ -201,7 +201,7 @@ UnknownScript_0x1a5584:
writetext UnknownText_0x1a57ba
keeptextopen
setevent EVENT_GAVE_KENYA
- verbosegiveitem TM_NIGHTMARE, 1
+ verbosegiveitem TM_NIGHTMARE
iffalse UnknownScript_0x1a55b3
setevent EVENT_GOT_TM50_NIGHTMARE
UnknownScript_0x1a55af:
@@ -431,9 +431,9 @@ Route31_MapEventHeader:
.PersonEvents:
db 7
person_event SPRITE_FISHER, 7, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1a5570, -1
- person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a55ed, -1
+ person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a55ed, -1
person_event SPRITE_BUG_CATCHER, 13, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherWade1, -1
- person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x1a55f6, -1
- person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a55f9, -1
- person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION
- person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL
+ person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x1a55f6, -1
+ person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a55f9, -1
+ person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION
+ person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL
diff --git a/maps/Route31VioletGate.asm b/maps/Route31VioletGate.asm
index 0d05cd14d..0ea2105cf 100644
--- a/maps/Route31VioletGate.asm
+++ b/maps/Route31VioletGate.asm
@@ -43,4 +43,4 @@ Route31VioletGate_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x197634, -1
- person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x197637, -1
+ person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x197637, -1
diff --git a/maps/Route32.asm b/maps/Route32.asm
index a3d9ecdb6..2387b8153 100644
--- a/maps/Route32.asm
+++ b/maps/Route32.asm
@@ -57,7 +57,7 @@ UnknownScript_0x190489:
UnknownScript_0x19048f:
writetext UnknownText_0x190925
keeptextopen
- verbosegiveitem MIRACLE_SEED, 1
+ verbosegiveitem MIRACLE_SEED
iffalse UnknownScript_0x1904a9
setevent EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32
jump UnknownScript_0x1904a5
@@ -98,7 +98,7 @@ FisherScript_0x1904ce:
iftrue UnknownScript_0x1904e3
writetext UnknownText_0x191133
keeptextopen
- verbosegiveitem TM_ROAR, 1
+ verbosegiveitem TM_ROAR
iffalse UnknownScript_0x1904e7
setevent EVENT_GOT_TM05_ROAR
UnknownScript_0x1904e3:
@@ -455,7 +455,7 @@ FriedaScript:
.MetFrieda
writetext FriedaGivesGiftText
keeptextopen
- verbosegiveitem POISON_BARB, 1
+ verbosegiveitem POISON_BARB
iffalse FriedaDoneScript
setevent EVENT_GOT_POISON_BARB_FROM_FRIEDA
writetext FriedaGaveGiftText
@@ -950,13 +950,13 @@ Route32_MapEventHeader:
person_event SPRITE_FISHER, 56, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherRalph1, -1
person_event SPRITE_FISHER, 48, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherHenry, -1
person_event SPRITE_YOUNGSTER, 22, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterAlbert, -1
- person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterGordon, -1
+ person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterGordon, -1
person_event SPRITE_YOUNGSTER, 45, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperRoland, -1
person_event SPRITE_LASS, 30, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerLiz1, -1
person_event SPRITE_COOLTRAINER_M, 8, 19, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x19046f, -1
person_event SPRITE_YOUNGSTER, 82, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperPeter, -1
person_event SPRITE_FISHER, 70, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL
+ person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL
person_event SPRITE_FISHER, 13, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904ce, -1
person_event SPRITE_LASS, 67, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY
- person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL
+ person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL
diff --git a/maps/Route32PokeCenter1F.asm b/maps/Route32PokeCenter1F.asm
index 0fea8bd1c..eaff59e08 100644
--- a/maps/Route32PokeCenter1F.asm
+++ b/maps/Route32PokeCenter1F.asm
@@ -18,7 +18,7 @@ FishingGuruScript_0x69b55:
iffalse UnknownScript_0x69b74
writetext UnknownText_0x69be8
keeptextopen
- verbosegiveitem OLD_ROD, 1
+ verbosegiveitem OLD_ROD
writetext UnknownText_0x69c1b
closetext
loadmovesprites
diff --git a/maps/Route33.asm b/maps/Route33.asm
index c1746ce7f..37f445ba3 100644
--- a/maps/Route33.asm
+++ b/maps/Route33.asm
@@ -206,6 +206,6 @@ Route33_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerAnthony, -1
- person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1ac002, -1
- person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac0ea, -1
+ person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerAnthony, -1
+ person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1ac002, -1
+ person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac0ea, -1
diff --git a/maps/Route34.asm b/maps/Route34.asm
index 39edd9560..81e5d7024 100644
--- a/maps/Route34.asm
+++ b/maps/Route34.asm
@@ -293,7 +293,7 @@ UnknownScript_0x7819f:
UnknownScript_0x78213:
scall UnknownScript_0x78244
- verbosegiveitem LEAF_STONE, 1
+ verbosegiveitem LEAF_STONE
iffalse UnknownScript_0x78225
clearflag ENGINE_GINA_HAS_LEAF_STONE
setevent EVENT_GINA_GAVE_LEAF_STONE
@@ -450,7 +450,7 @@ CooltrainerfKateScript:
iftrue UnknownScript_0x78319
writetext UnknownText_0x788e2
keeptextopen
- verbosegiveitem SOFT_SAND, 1
+ verbosegiveitem SOFT_SAND
iffalse UnknownScript_0x7831d
setevent EVENT_GOT_SOFT_SAND_FROM_KATE
UnknownScript_0x78319:
@@ -780,11 +780,11 @@ Route34_MapEventHeader:
person_event SPRITE_YOUNGSTER, 20, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterIan, -1
person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerGina1, -1
person_event SPRITE_OFFICER, 11, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7824c, -1
- person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmBrandon, -1
+ person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmBrandon, -1
person_event SPRITE_GRAMPS, 16, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34
- person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_16, 2, 2, -1, -1, 0, 0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1
- person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_16, 2, 2, -1, -1, 0, 0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2
+ person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1
+ person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2
person_event SPRITE_COOLTRAINER_F, 48, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfIrene, -1
person_event SPRITE_COOLTRAINER_F, 48, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJenn, -1
person_event SPRITE_COOLTRAINER_F, 51, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfKate, -1
- person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET
+ person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET
diff --git a/maps/Route34IlexForestGate.asm b/maps/Route34IlexForestGate.asm
index 3468c7120..2144132ae 100644
--- a/maps/Route34IlexForestGate.asm
+++ b/maps/Route34IlexForestGate.asm
@@ -48,7 +48,7 @@ TeacherScript_0x62d63:
iftrue UnknownScript_0x62d7e
writetext UnknownText_0x62d9d
keeptextopen
- verbosegiveitem TM_SWEET_SCENT, 1
+ verbosegiveitem TM_SWEET_SCENT
iffalse UnknownScript_0x62d82
setevent EVENT_GOT_TM12_SWEET_SCENT
UnknownScript_0x62d7e:
@@ -153,6 +153,6 @@ Route34IlexForestGate_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER
- person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ButterfreeScript_0x62d8a, -1
+ person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ButterfreeScript_0x62d8a, -1
person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS
person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY
diff --git a/maps/Route35.asm b/maps/Route35.asm
index 715dbc187..2ec57fe28 100644
--- a/maps/Route35.asm
+++ b/maps/Route35.asm
@@ -469,14 +469,14 @@ Route35_MapEventHeader:
.PersonEvents:
db 11
- person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperIvan, -1
+ person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperIvan, -1
person_event SPRITE_YOUNGSTER, 20, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperElliot, -1
person_event SPRITE_LASS, 20, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerBrooke, -1
- person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerKim, -1
+ person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerKim, -1
person_event SPRITE_YOUNGSTER, 28, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerBird_keeperBryan, -1
- person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherWalt, -1
+ person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherWalt, -1
person_event SPRITE_BUG_CATCHER, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherArnie1, -1
- person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerJugglerIrwin, -1
+ person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerJugglerIrwin, -1
person_event SPRITE_OFFICER, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x19ca49, -1
- person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19ca7e, -1
- person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT
+ person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19ca7e, -1
+ person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT
diff --git a/maps/Route35Goldenrodgate.asm b/maps/Route35Goldenrodgate.asm
index 8e855aaec..9c735e599 100644
--- a/maps/Route35Goldenrodgate.asm
+++ b/maps/Route35Goldenrodgate.asm
@@ -49,7 +49,7 @@ OfficerScript_0x69d37:
.questcomplete:
writetext UnknownText_0x69f8b
keeptextopen
- verbosegiveitem HP_UP, 1
+ verbosegiveitem HP_UP
iffalse .bagfull
setevent EVENT_GOT_HP_UP_FROM_RANDY
.gothpup:
@@ -211,4 +211,4 @@ Route35Goldenrodgate_MapEventHeader:
db 3
person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x69d37, -1
person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x69dc6, -1
- person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x69dda, -1
+ person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x69dda, -1
diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm
index e061aff66..c95707c78 100644
--- a/maps/Route35NationalParkgate.asm
+++ b/maps/Route35NationalParkgate.asm
@@ -75,9 +75,9 @@ Route35NationalParkgate_GoBackIn:
loadmovesprites
scall Route35NationalParkgate_EnterContest
playsound SFX_ENTER_DOOR
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
- warpfacing $1, NATIONAL_PARK_BUG_CONTEST, $a, $2f
+ warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f
end
OfficerScript_0x6a204:
@@ -96,7 +96,7 @@ OfficerScript_0x6a204:
iffalse Route35NationalParkgate_DeclinedToParticipate
checkcode VAR_PARTYCOUNT
if_greater_than $1, Route35NationalParkgate_LeaveTheRestBehind
- special CheckFirstMonFainted
+ special ContestDropOffMons
clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
Route35NationalParkgate_OkayToProceed:
setflag ENGINE_BUG_CONTEST_TIMER
@@ -112,10 +112,10 @@ Route35NationalParkgate_OkayToProceed:
special Special_GiveParkBalls
scall Route35NationalParkgate_EnterContest
playsound SFX_ENTER_DOOR
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
special Special_SelectRandomBugContestContestants
- warpfacing $1, NATIONAL_PARK_BUG_CONTEST, $a, $2f
+ warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f
end
Route35NationalParkgate_EnterContest:
@@ -140,7 +140,7 @@ Route35NationalParkgate_LessThanFullParty: ; 6a27d
writetext UnknownText_0x6a4c6
yesorno
iffalse Route35NationalParkgate_DeclinedToLeaveMonsBehind
- special CheckFirstMonFainted
+ special ContestDropOffMons
iftrue Route35NationalParkgate_FirstMonIsFainted
setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
writetext UnknownText_0x6a537
@@ -459,5 +459,5 @@ Route35NationalParkgate_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY
- person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
+ person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER
person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY
diff --git a/maps/Route36.asm b/maps/Route36.asm
index e7693cfbe..8c7dda3b6 100644
--- a/maps/Route36.asm
+++ b/maps/Route36.asm
@@ -90,7 +90,7 @@ UnknownScript_0x19407b:
disappear $4
variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN
special RunCallback_04
- special Function14168
+ special RefreshSprites
end
LassScript_0x19408c:
@@ -135,7 +135,7 @@ FisherScript_0x1940b9:
UnknownScript_0x1940cd:
writetext UnknownText_0x1944d0
keeptextopen
- verbosegiveitem TM_ROCK_SMASH, 1
+ verbosegiveitem TM_ROCK_SMASH
iffalse UnknownScript_0x1940de
setevent EVENT_GOT_TM08_ROCK_SMASH
UnknownScript_0x1940da:
@@ -254,7 +254,7 @@ UnknownScript_0x194140:
UnknownScript_0x1941b4:
scall UnknownScript_0x1941e5
- verbosegiveitem FIRE_STONE, 1
+ verbosegiveitem FIRE_STONE
iffalse UnknownScript_0x1941c6
clearflag ENGINE_ALAN_HAS_FIRE_STONE
setevent EVENT_ALAN_GAVE_FIRE_STONE
@@ -325,7 +325,7 @@ ArthurScript:
.MetArthur
writetext ArthurGivesGiftText
keeptextopen
- verbosegiveitem HARD_STONE, 1
+ verbosegiveitem HARD_STONE
iffalse ArthurDoneScript
setevent EVENT_GOT_HARD_STONE_FROM_ARTHUR
writetext ArthurGaveGiftText
@@ -681,10 +681,10 @@ Route36_MapEventHeader:
db 9
person_event SPRITE_YOUNGSTER, 13, 20, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicMark, -1
person_event SPRITE_YOUNGSTER, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSchoolboyAlan1, -1
- person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_17, 0, 0, -1, -1, 0, 0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO
+ person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, 0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO
person_event SPRITE_LASS, 8, 51, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, LassScript_0x1940e0, -1
person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1940b9, -1
- person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194247, -1
- person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
+ person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194247, -1
+ person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY
person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO
- person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36
+ person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36
diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm
index 87d6cf897..4ae506977 100644
--- a/maps/Route36NationalParkgate.asm
+++ b/maps/Route36NationalParkgate.asm
@@ -83,9 +83,9 @@ Route36NationalParkgate_MapScriptHeader:
loadmovesprites
spriteface PLAYER, LEFT
playsound SFX_EXIT_BUILDING
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
- warpfacing $2, NATIONAL_PARK_BUG_CONTEST, $21, $12
+ warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12
end
.CopyContestants:
@@ -148,7 +148,7 @@ Route36OfficerScriptContest:
iffalse .DecidedNotToJoinContest
checkcode VAR_PARTYCOUNT
if_greater_than $1, .LeaveMonsWithOfficer
- special CheckFirstMonFainted
+ special ContestDropOffMons
clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
.ResumeStartingContest:
setflag ENGINE_BUG_CONTEST_TIMER
@@ -166,10 +166,10 @@ Route36OfficerScriptContest:
special Special_GiveParkBalls
spriteface PLAYER, LEFT
playsound SFX_EXIT_BUILDING
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
special Special_SelectRandomBugContestContestants
- warpfacing $2, NATIONAL_PARK_BUG_CONTEST, $21, $12
+ warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12
end
.LeaveMonsWithOfficer:
@@ -183,7 +183,7 @@ Route36OfficerScriptContest:
writetext UnknownText_0x6afb0
yesorno
iffalse .RefusedToLeaveMons
- special CheckFirstMonFainted
+ special ContestDropOffMons
iftrue .FirstMonIsFainted
setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER
writetext UnknownText_0x6b021
@@ -241,7 +241,7 @@ Route36Officer_ContestHasConcluded:
.Sunstone:
writetext UnknownText_0x6b97f
keeptextopen
- verbosegiveitem SUN_STONE, 1
+ verbosegiveitem SUN_STONE
iffalse .BagFull
clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE
loadmovesprites
@@ -250,7 +250,7 @@ Route36Officer_ContestHasConcluded:
.Everstone:
writetext UnknownText_0x6b97f
keeptextopen
- verbosegiveitem EVERSTONE, 1
+ verbosegiveitem EVERSTONE
iffalse .BagFull
clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE
loadmovesprites
@@ -259,7 +259,7 @@ Route36Officer_ContestHasConcluded:
.GoldBerry:
writetext UnknownText_0x6b97f
keeptextopen
- verbosegiveitem GOLD_BERRY, 1
+ verbosegiveitem GOLD_BERRY
iffalse .BagFull
clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY
loadmovesprites
@@ -268,7 +268,7 @@ Route36Officer_ContestHasConcluded:
.Berry:
writetext UnknownText_0x6b97f
keeptextopen
- verbosegiveitem BERRY, 1
+ verbosegiveitem BERRY
iffalse .BagFull
clearevent EVENT_CONTEST_OFFICER_HAS_BERRY
loadmovesprites
diff --git a/maps/Route36RuinsofAlphgate.asm b/maps/Route36RuinsofAlphgate.asm
index 07df38992..a528a44d5 100644
--- a/maps/Route36RuinsofAlphgate.asm
+++ b/maps/Route36RuinsofAlphgate.asm
@@ -50,4 +50,4 @@ Route36RuinsofAlphgate_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x6aa1a, -1
- person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_02, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x6aa1d, -1
+ person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x6aa1d, -1
diff --git a/maps/Route37.asm b/maps/Route37.asm
index d2dc3e11f..b0b301355 100644
--- a/maps/Route37.asm
+++ b/maps/Route37.asm
@@ -74,7 +74,7 @@ SunnyScript:
writetext SunnyGivesGiftText2
keeptextopen
.next
- verbosegiveitem MAGNET, 1
+ verbosegiveitem MAGNET
iffalse SunnyDoneScript
setevent EVENT_GOT_MAGNET_FROM_SUNNY
writetext SunnyGaveGiftText
@@ -251,8 +251,8 @@ Route37_MapEventHeader:
db 7
person_event SPRITE_WEIRD_TREE, 12, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne1, -1
person_event SPRITE_WEIRD_TREE, 12, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne2, -1
- person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicGreg, -1
- person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e09, -1
- person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY
- person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0b, -1
- person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0d, -1
+ person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicGreg, -1
+ person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e09, -1
+ person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY
+ person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0b, -1
+ person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0d, -1
diff --git a/maps/Route38.asm b/maps/Route38.asm
index 54e209a16..3236dec8f 100644
--- a/maps/Route38.asm
+++ b/maps/Route38.asm
@@ -6,9 +6,9 @@ Route38_MapScriptHeader:
db 0
TrainerBird_keeperToby:
- trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, Bird_keeperTobyScript
+ trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, .script
-Bird_keeperTobyScript:
+.script:
talkaftercancel
loadfont
writetext UnknownText_0x1a1f86
@@ -17,9 +17,9 @@ Bird_keeperTobyScript:
end
TrainerSailorHarry:
- trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, SailorHarryScript
+ trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, .script
-SailorHarryScript:
+.script:
talkaftercancel
loadfont
writetext UnknownText_0x1a220c
@@ -28,38 +28,38 @@ SailorHarryScript:
end
TrainerLassDana1:
- trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, LassDana1Script
+ trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, .script
-LassDana1Script:
+.script:
writecode VAR_CALLERID, PHONE_LASS_DANA
talkaftercancel
loadfont
checkflag ENGINE_DANA
- iftrue UnknownScript_0x1a1d82
+ iftrue .DanaRematch
checkflag ENGINE_DANA_HAS_THUNDERSTONE
- iftrue UnknownScript_0x1a1df6
+ iftrue .TryGiveThunderstone
checkcellnum PHONE_LASS_DANA
- iftrue UnknownScript_0x1a1e17
+ iftrue .NumberAccepted
checkevent EVENT_DANA_ASKED_FOR_PHONE_NUMBER
- iftrue UnknownScript_0x1a1d6b
+ iftrue .SecondTimeAsking
writetext UnknownText_0x1a20ec
keeptextopen
setevent EVENT_DANA_ASKED_FOR_PHONE_NUMBER
- scall UnknownScript_0x1a1e0b
- jump UnknownScript_0x1a1d6e
+ scall .AskNumber1F
+ jump .AskForPhoneNumber
-UnknownScript_0x1a1d6b:
- scall UnknownScript_0x1a1e0f
-UnknownScript_0x1a1d6e:
+.SecondTimeAsking:
+ scall .AskNumber2F
+.AskForPhoneNumber:
askforphonenumber PHONE_LASS_DANA
- if_equal $1, UnknownScript_0x1a1e1f
- if_equal $2, UnknownScript_0x1a1e1b
+ if_equal $1, .PhoneFull
+ if_equal $2, .DeclinedPhoneNumber
trainertotext LASS, DANA1, $0
- scall UnknownScript_0x1a1e13
- jump UnknownScript_0x1a1e17
+ scall .RegisteredPhoneNumber
+ jump .NumberAccepted
-UnknownScript_0x1a1d82:
- scall UnknownScript_0x1a1e23
+.DanaRematch:
+ scall .Rematch
winlosstext LassDana1BeatenText, 0
copybytetovar wDanaFightCount
if_equal 4, .Fight4
@@ -118,84 +118,84 @@ UnknownScript_0x1a1d82:
clearflag ENGINE_DANA
end
-UnknownScript_0x1a1df6:
- scall UnknownScript_0x1a1e27
- verbosegiveitem THUNDERSTONE, 1
- iffalse UnknownScript_0x1a1e08
+.TryGiveThunderstone:
+ scall .Gift
+ verbosegiveitem THUNDERSTONE
+ iffalse .NoRoomForThunderstone
clearflag ENGINE_DANA_HAS_THUNDERSTONE
setevent EVENT_DANA_GAVE_THUNDERSTONE
- jump UnknownScript_0x1a1e17
+ jump .NumberAccepted
-UnknownScript_0x1a1e08:
- jump UnknownScript_0x1a1e2b
+.NoRoomForThunderstone:
+ jump .PackFull
-UnknownScript_0x1a1e0b:
+.AskNumber1F:
jumpstd asknumber1f
end
-UnknownScript_0x1a1e0f:
+.AskNumber2F:
jumpstd asknumber2f
end
-UnknownScript_0x1a1e13:
+.RegisteredPhoneNumber:
jumpstd registerednumberf
end
-UnknownScript_0x1a1e17:
+.NumberAccepted:
jumpstd numberacceptedf
end
-UnknownScript_0x1a1e1b:
+.DeclinedPhoneNumber:
jumpstd numberdeclinedf
end
-UnknownScript_0x1a1e1f:
+.PhoneFull:
jumpstd phonefullf
end
-UnknownScript_0x1a1e23:
+.Rematch:
jumpstd rematchf
end
-UnknownScript_0x1a1e27:
+.Gift:
jumpstd giftf
end
-UnknownScript_0x1a1e2b:
+.PackFull:
jumpstd packfullf
end
TrainerSchoolboyChad1:
- trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, SchoolboyChad1Script
+ trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, .script
-SchoolboyChad1Script:
+.script:
writecode VAR_CALLERID, PHONE_SCHOOLBOY_CHAD
talkaftercancel
loadfont
checkflag ENGINE_CHAD
- iftrue UnknownScript_0x1a1e75
+ iftrue .ChadRematch
checkcellnum PHONE_SCHOOLBOY_CHAD
- iftrue UnknownScript_0x1a1ef5
+ iftrue .HaveChadsNumber
checkevent EVENT_CHAD_ASKED_FOR_PHONE_NUMBER
- iftrue UnknownScript_0x1a1e5e
+ iftrue .SecondTimeAsking
writetext UnknownText_0x1a200e
keeptextopen
setevent EVENT_CHAD_ASKED_FOR_PHONE_NUMBER
- scall UnknownScript_0x1a1ee9
- jump UnknownScript_0x1a1e61
+ scall .AskPhoneNumber1
+ jump .AskToRegisterNumber
-UnknownScript_0x1a1e5e:
- scall UnknownScript_0x1a1eed
-UnknownScript_0x1a1e61:
+.SecondTimeAsking:
+ scall .AskPhoneNumber2
+.AskToRegisterNumber:
askforphonenumber PHONE_SCHOOLBOY_CHAD
- if_equal $1, UnknownScript_0x1a1efd
- if_equal $2, UnknownScript_0x1a1ef9
+ if_equal $1, .PhoneFull
+ if_equal $2, .SaidNo
trainertotext SCHOOLBOY, CHAD1, $0
- scall UnknownScript_0x1a1ef1
- jump UnknownScript_0x1a1ef5
+ scall .RegisteredChad
+ jump .HaveChadsNumber
-UnknownScript_0x1a1e75:
- scall UnknownScript_0x1a1f01
+.ChadRematch:
+ scall .Rematch
winlosstext SchoolboyChad1BeatenText, 0
copybytetovar wChadFightCount
if_equal 4, .Fight4
@@ -254,38 +254,38 @@ UnknownScript_0x1a1e75:
clearflag ENGINE_CHAD
end
-UnknownScript_0x1a1ee9:
+.AskPhoneNumber1:
jumpstd asknumber1m
end
-UnknownScript_0x1a1eed:
+.AskPhoneNumber2:
jumpstd asknumber2m
end
-UnknownScript_0x1a1ef1:
+.RegisteredChad:
jumpstd registerednumberm
end
-UnknownScript_0x1a1ef5:
+.HaveChadsNumber:
jumpstd numberacceptedm
end
-UnknownScript_0x1a1ef9:
+.SaidNo:
jumpstd numberdeclinedm
end
-UnknownScript_0x1a1efd:
+.PhoneFull:
jumpstd phonefullm
end
-UnknownScript_0x1a1f01:
+.Rematch:
jumpstd rematchm
end
TrainerBeautyValerie:
- trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, BeautyValerieScript
+ trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, .script
-BeautyValerieScript:
+.script:
talkaftercancel
loadfont
writetext UnknownText_0x1a2185
@@ -294,9 +294,9 @@ BeautyValerieScript:
end
TrainerBeautyOlivia:
- trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, BeautyOliviaScript
+ trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, .script
-BeautyOliviaScript:
+.script:
talkaftercancel
loadfont
writetext UnknownText_0x1a229a
@@ -483,9 +483,9 @@ Route38_MapEventHeader:
.PersonEvents:
db 7
person_event SPRITE_STANDING_YOUNGSTER, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyChad1, -1
- person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassDana1, -1
- person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBird_keeperToby, -1
+ person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassDana1, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBird_keeperToby, -1
person_event SPRITE_BUENA, 9, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyValerie, -1
- person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSailorHarry, -1
- person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1f33, -1
- person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyOlivia, -1
+ person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSailorHarry, -1
+ person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1f33, -1
+ person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyOlivia, -1
diff --git a/maps/Route39.asm b/maps/Route39.asm
index 174830ffa..e399385a8 100644
--- a/maps/Route39.asm
+++ b/maps/Route39.asm
@@ -46,7 +46,7 @@ UnknownScript_0x1a5b36:
UnknownScript_0x1a5b4a:
scall UnknownScript_0x1a5b7a
- verbosegiveitem NUGGET, 1
+ verbosegiveitem NUGGET
iffalse UnknownScript_0x1a5b59
clearflag ENGINE_DEREK_HAS_NUGGET
jump UnknownScript_0x1a5b6e
@@ -356,10 +356,10 @@ Route39_MapEventHeader:
person_event SPRITE_SAILOR, 29, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSailorEugene, -1
person_event SPRITE_POKEFAN_M, 22, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanmDerek1, -1
person_event SPRITE_POKEFAN_F, 19, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanfRuth, -1
- person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
- person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicNorman, -1
- person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a5bf4, -1
+ person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicNorman, -1
+ person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a5bf4, -1
person_event SPRITE_POKEFAN_F, 22, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x1a5bbe, -1
diff --git a/maps/Route39Barn.asm b/maps/Route39Barn.asm
index f0257a7db..f87519d65 100644
--- a/maps/Route39Barn.asm
+++ b/maps/Route39Barn.asm
@@ -63,7 +63,7 @@ TaurosScript_0x9ccaa:
iffalse .Refused
checkitem BERRY
iffalse .NoBerriesInBag
- takeitem BERRY, 1
+ takeitem BERRY
copybytetovar MooMooBerries
addvar 1
copyvartobyte MooMooBerries
@@ -202,4 +202,4 @@ Route39Barn_MapEventHeader:
db 3
person_event SPRITE_TWIN, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x9cc76, -1
person_event SPRITE_TWIN, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x9cc90, -1
- person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x9ccaa, -1
+ person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x9ccaa, -1
diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm
index 8509bff61..ce736a806 100644
--- a/maps/Route39Farmhouse.asm
+++ b/maps/Route39Farmhouse.asm
@@ -25,7 +25,7 @@ UnknownScript_0x9cec5:
iffalse UnknownScript_0x9cf02
checkmoney $0, 500
if_equal $2, UnknownScript_0x9cef6
- giveitem MOOMOO_MILK, $1
+ giveitem MOOMOO_MILK
iffalse UnknownScript_0x9cefc
takemoney $0, 500
special Function24ae8
@@ -76,7 +76,7 @@ PokefanFScript_0x9cf0e:
UnknownScript_0x9cf22:
writetext UnknownText_0x9d156
keeptextopen
- verbosegiveitem TM_SNORE, 1
+ verbosegiveitem TM_SNORE
iffalse UnknownScript_0x9cf33
setevent EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM
UnknownScript_0x9cf2f:
diff --git a/maps/Route4.asm b/maps/Route4.asm
index 623cc0124..47aa42dcf 100644
--- a/maps/Route4.asm
+++ b/maps/Route4.asm
@@ -136,4 +136,4 @@ Route4_MapEventHeader:
person_event SPRITE_YOUNGSTER, 9, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperHank, -1
person_event SPRITE_LASS, 8, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerHope, -1
person_event SPRITE_LASS, 6, 21, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerSharon, -1
- person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP
+ person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP
diff --git a/maps/Route40.asm b/maps/Route40.asm
index b8cd1bc88..140eca1a1 100644
--- a/maps/Route40.asm
+++ b/maps/Route40.asm
@@ -96,7 +96,7 @@ MonicaScript:
.MetMonica
writetext MonicaGivesGiftText
keeptextopen
- verbosegiveitem SHARP_BEAK, 1
+ verbosegiveitem SHARP_BEAK
iffalse MonicaDoneScript
setevent EVENT_GOT_SHARP_BEAK_FROM_MONICA
writetext MonicaGaveGiftText
@@ -347,12 +347,12 @@ Route40_MapEventHeader:
person_event SPRITE_OLIVINE_RIVAL, 15, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSimon, -1
person_event SPRITE_OLIVINE_RIVAL, 30, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerSwimmermRandall, -1
person_event SPRITE_SWIMMER_GIRL, 19, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfElaine, -1
- person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfPaula, -1
- person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
- person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
- person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
+ person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfPaula, -1
+ person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
+ person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
+ person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1
person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a61c4, -1
- person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
+ person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY
person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1a61c7, -1
- person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a61d3, -1
- person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a61d3, -1
+ person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
diff --git a/maps/Route40BattleTowerGate.asm b/maps/Route40BattleTowerGate.asm
index 8c60ec96c..e8f5e6e41 100644
--- a/maps/Route40BattleTowerGate.asm
+++ b/maps/Route40BattleTowerGate.asm
@@ -88,5 +88,5 @@ Route40BattleTowerGate_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
+ person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR
person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TwinScript_0x9f66c, -1
diff --git a/maps/Route41.asm b/maps/Route41.asm
index 81b16e240..d30932a29 100644
--- a/maps/Route41.asm
+++ b/maps/Route41.asm
@@ -349,13 +349,13 @@ Route41_MapEventHeader:
.PersonEvents:
db 10
- person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCharlie, -1
- person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermGeorge, -1
- person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermBerke, -1
- person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermKirk, -1
- person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermMathew, -1
- person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfKaylee, -1
+ person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCharlie, -1
+ person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermGeorge, -1
+ person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermBerke, -1
+ person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermKirk, -1
+ person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermMathew, -1
+ person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfKaylee, -1
person_event SPRITE_SWIMMER_GIRL, 19, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfSusie, -1
person_event SPRITE_SWIMMER_GIRL, 34, 27, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfDenise, -1
person_event SPRITE_SWIMMER_GIRL, 28, 44, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfKara, -1
- person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerSwimmerfWendy, -1
+ person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerSwimmerfWendy, -1
diff --git a/maps/Route42.asm b/maps/Route42.asm
index 2a3582b24..00033853c 100644
--- a/maps/Route42.asm
+++ b/maps/Route42.asm
@@ -108,7 +108,7 @@ UnknownScript_0x1a927f:
UnknownScript_0x1a92dc:
scall UnknownScript_0x1a930d
- verbosegiveitem WATER_STONE, 1
+ verbosegiveitem WATER_STONE
iffalse UnknownScript_0x1a92ee
clearflag ENGINE_TULLY_HAS_WATER_STONE
setevent EVENT_TULLY_GAVE_WATER_STONE
@@ -337,11 +337,11 @@ Route42_MapEventHeader:
.PersonEvents:
db 9
person_event SPRITE_FISHER, 10, 40, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherTully1, -1
- person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerBenjamin, -1
+ person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerBenjamin, -1
person_event SPRITE_SUPER_NERD, 8, 47, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacShane, -1
- person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934d, -1
- person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934f, -1
- person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9351, -1
- person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION
- person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42
+ person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934d, -1
+ person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934f, -1
+ person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9351, -1
+ person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION
+ person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42
diff --git a/maps/Route43.asm b/maps/Route43.asm
index 7be3e3ebc..f348133dc 100644
--- a/maps/Route43.asm
+++ b/maps/Route43.asm
@@ -251,7 +251,7 @@ UnknownScript_0x19d1c1:
UnknownScript_0x19d21e:
scall UnknownScript_0x19d255
- verbosegiveitem PINK_BOW, 1
+ verbosegiveitem PINK_BOW
iffalse UnknownScript_0x19d230
clearflag ENGINE_TIFFANY_HAS_PINK_BOW
setevent EVENT_TIFFANY_GAVE_PINK_BOW
@@ -517,10 +517,10 @@ Route43_MapEventHeader:
.PersonEvents:
db 8
person_event SPRITE_SUPER_NERD, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacBen, -1
- person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacBrent1, -1
+ person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacBrent1, -1
person_event SPRITE_SUPER_NERD, 7, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacRon, -1
person_event SPRITE_FISHER, 16, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerFisherMarvin, -1
person_event SPRITE_LASS, 25, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerTiffany3, -1
- person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperSpencer, -1
- person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19d266, -1
- person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER
+ person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperSpencer, -1
+ person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19d266, -1
+ person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER
diff --git a/maps/Route43Gate.asm b/maps/Route43Gate.asm
index 741ddaaf2..c863bc937 100644
--- a/maps/Route43Gate.asm
+++ b/maps/Route43Gate.asm
@@ -113,7 +113,7 @@ OfficerScript_0x19ac85:
iftrue UnknownScript_0x19ac9c
writetext UnknownText_0x19ad9b
keeptextopen
- verbosegiveitem TM_SLUDGE_BOMB, 1
+ verbosegiveitem TM_SLUDGE_BOMB
iffalse UnknownScript_0x19aca0
setevent EVENT_GOT_TM36_SLUDGE_BOMB
loadmovesprites
diff --git a/maps/Route44.asm b/maps/Route44.asm
index 43082d590..ca1935065 100644
--- a/maps/Route44.asm
+++ b/maps/Route44.asm
@@ -73,7 +73,7 @@ UnknownScript_0x19d86a:
checkevent EVENT_GOT_CARBOS_FROM_VANCE
iftrue UnknownScript_0x19d8ca
scall UnknownScript_0x19d90a
- verbosegiveitem CARBOS, 1
+ verbosegiveitem CARBOS
iffalse UnknownScript_0x19d903
setevent EVENT_GOT_CARBOS_FROM_VANCE
jump UnknownScript_0x19d8eb
@@ -85,7 +85,7 @@ UnknownScript_0x19d8cb:
loadfont
writetext UnknownText_0x19dc67
closetext
- verbosegiveitem CARBOS, 1
+ verbosegiveitem CARBOS
iffalse UnknownScript_0x19d903
clearevent EVENT_VANCE_CARBOS
setevent EVENT_GOT_CARBOS_FROM_VANCE
@@ -223,17 +223,17 @@ UnknownScript_0x19d9b4:
checkevent EVENT_WILTON_HAS_POKE_BALL
iftrue UnknownScript_0x19d9db
UnknownScript_0x19d9c9:
- verbosegiveitem ULTRA_BALL, 1
+ verbosegiveitem ULTRA_BALL
iffalse UnknownScript_0x19d9e7
jump UnknownScript_0x19d9e1
UnknownScript_0x19d9d2:
- verbosegiveitem GREAT_BALL, 1
+ verbosegiveitem GREAT_BALL
iffalse UnknownScript_0x19d9e7
jump UnknownScript_0x19d9e1
UnknownScript_0x19d9db:
- verbosegiveitem POKE_BALL, 1
+ verbosegiveitem POKE_BALL
iffalse UnknownScript_0x19d9e7
UnknownScript_0x19d9e1:
clearflag ENGINE_WILTON_HAS_ITEM
@@ -515,12 +515,12 @@ Route44_MapEventHeader:
db 11
person_event SPRITE_FISHER, 3, 35, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherWilton1, -1
person_event SPRITE_FISHER, 13, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherEdgar, -1
- person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicPhil, -1
- person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPokemaniacZach, -1
+ person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicPhil, -1
+ person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPokemaniacZach, -1
person_event SPRITE_YOUNGSTER, 5, 51, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBird_keeperVance1, -1
person_event SPRITE_COOLTRAINER_M, 15, 41, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainermAllen, -1
person_event SPRITE_COOLTRAINER_F, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfCybil, -1
- person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19da40, -1
- person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL
+ person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19da40, -1
+ person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL
diff --git a/maps/Route45.asm b/maps/Route45.asm
index 35c1c054e..e818c36ae 100644
--- a/maps/Route45.asm
+++ b/maps/Route45.asm
@@ -43,7 +43,7 @@ UnknownScript_0x19e0e4:
checkevent EVENT_KENJI_ON_BREAK
iffalse UnknownScript_0x19e127
scall UnknownScript_0x19e137
- verbosegiveitem PP_UP, 1
+ verbosegiveitem PP_UP
iffalse UnknownScript_0x19e118
clearevent EVENT_KENJI_ON_BREAK
special Special_SampleKenjiBreakCountdown
@@ -199,7 +199,7 @@ UnknownScript_0x19e1b8:
checkevent EVENT_GOT_IRON_FROM_PARRY
iftrue UnknownScript_0x19e218
scall UnknownScript_0x19e146
- verbosegiveitem IRON, 1
+ verbosegiveitem IRON
iffalse UnknownScript_0x19e13f
setevent EVENT_GOT_IRON_FROM_PARRY
jump UnknownScript_0x19e127
@@ -211,7 +211,7 @@ UnknownScript_0x19e219:
loadfont
writetext UnknownText_0x19e52c
closetext
- verbosegiveitem IRON, 1
+ verbosegiveitem IRON
iffalse UnknownScript_0x19e13f
clearevent EVENT_PARRY_IRON
setevent EVENT_GOT_IRON_FROM_PARRY
@@ -539,12 +539,12 @@ Route45_MapEventHeader:
person_event SPRITE_POKEFAN_M, 65, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerMichael, -1
person_event SPRITE_POKEFAN_M, 28, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerParry, -1
person_event SPRITE_POKEFAN_M, 65, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerTimothy, -1
- person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltKenji, -1
+ person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltKenji, -1
person_event SPRITE_COOLTRAINER_M, 18, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermRyan, -1
- person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfKelly, -1
- person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19e294, -1
- person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET
- person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE
- person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER
- person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION
- person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19e269, -1
+ person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfKelly, -1
+ person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19e294, -1
+ person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET
+ person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE
+ person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER
+ person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION
+ person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19e269, -1
diff --git a/maps/Route46.asm b/maps/Route46.asm
index 968ddfb22..e7c19942f 100644
--- a/maps/Route46.asm
+++ b/maps/Route46.asm
@@ -84,7 +84,7 @@ UnknownScript_0x1a96da:
checkevent EVENT_GOT_CALCIUM_FROM_ERIN
iftrue UnknownScript_0x1a973a
scall UnknownScript_0x1a9772
- verbosegiveitem CALCIUM, 1
+ verbosegiveitem CALCIUM
iffalse UnknownScript_0x1a976b
setevent EVENT_GOT_CALCIUM_FROM_ERIN
jump UnknownScript_0x1a975b
@@ -96,7 +96,7 @@ UnknownScript_0x1a973b:
loadfont
writetext UnknownText_0x1a9927
closetext
- verbosegiveitem CALCIUM, 1
+ verbosegiveitem CALCIUM
iffalse UnknownScript_0x1a976b
clearevent EVENT_ERIN_CALCIUM
setevent EVENT_GOT_CALCIUM_FROM_ERIN
@@ -264,6 +264,6 @@ Route46_MapEventHeader:
person_event SPRITE_POKEFAN_M, 19, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerBailey, -1
person_event SPRITE_YOUNGSTER, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperTed, -1
person_event SPRITE_LASS, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerErin1, -1
- person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a978f, -1
- person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9791, -1
- person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED
+ person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a978f, -1
+ person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9791, -1
+ person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED
diff --git a/maps/Route5CleanseTagSpeechHouse.asm b/maps/Route5CleanseTagSpeechHouse.asm
index 9002ee420..fd60b1757 100644
--- a/maps/Route5CleanseTagSpeechHouse.asm
+++ b/maps/Route5CleanseTagSpeechHouse.asm
@@ -12,7 +12,7 @@ GrannyScript_0x18b634:
iftrue UnknownScript_0x18b649
writetext UnknownText_0x18b655
keeptextopen
- verbosegiveitem CLEANSE_TAG, 1
+ verbosegiveitem CLEANSE_TAG
iffalse UnknownScript_0x18b64d
setevent EVENT_GOT_CLEANSE_TAG
UnknownScript_0x18b649:
@@ -75,5 +75,5 @@ Route5CleanseTagSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x18b634, -1
+ person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x18b634, -1
person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x18b64f, -1
diff --git a/maps/Route5UndergroundEntrance.asm b/maps/Route5UndergroundEntrance.asm
index 5cea76d7e..2e2e286e1 100644
--- a/maps/Route5UndergroundEntrance.asm
+++ b/maps/Route5UndergroundEntrance.asm
@@ -34,4 +34,4 @@ Route5UndergroundEntrance_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18b555, -1
+ person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18b555, -1
diff --git a/maps/Route8.asm b/maps/Route8.asm
index 734c04003..da454b477 100644
--- a/maps/Route8.asm
+++ b/maps/Route8.asm
@@ -187,5 +187,5 @@ Route8_MapEventHeader:
person_event SPRITE_BIKER, 9, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerBikerHarris, -1
person_event SPRITE_BIKER, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerBikerZeke, -1
person_event SPRITE_SUPER_NERD, 2, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdSam, -1
- person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerSupernerdTom, -1
- person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x6c06c, -1
+ person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerSupernerdTom, -1
+ person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x6c06c, -1
diff --git a/maps/Route9.asm b/maps/Route9.asm
index e939f7612..8afe0f978 100644
--- a/maps/Route9.asm
+++ b/maps/Route9.asm
@@ -217,8 +217,8 @@ Route9_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_YOUNGSTER, 11, 23, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperDean, -1
- person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerHeidi, -1
- person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperSid, -1
+ person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerHeidi, -1
+ person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperSid, -1
person_event SPRITE_LASS, 15, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerEdna, -1
person_event SPRITE_POKEFAN_M, 3, 28, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerTim, -1
person_event SPRITE_POKEFAN_M, 15, 36, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerHikerSidney, -1
diff --git a/maps/RuinsofAlphAerodactylItemRoom.asm b/maps/RuinsofAlphAerodactylItemRoom.asm
index 947e5d6ed..316fadea8 100644
--- a/maps/RuinsofAlphAerodactylItemRoom.asm
+++ b/maps/RuinsofAlphAerodactylItemRoom.asm
@@ -47,7 +47,7 @@ RuinsofAlphAerodactylItemRoom_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM
diff --git a/maps/RuinsofAlphHoOhItemRoom.asm b/maps/RuinsofAlphHoOhItemRoom.asm
index b6ea51eb0..e1b93cb1c 100644
--- a/maps/RuinsofAlphHoOhItemRoom.asm
+++ b/maps/RuinsofAlphHoOhItemRoom.asm
@@ -47,7 +47,7 @@ RuinsofAlphHoOhItemRoom_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM
diff --git a/maps/RuinsofAlphInnerChamber.asm b/maps/RuinsofAlphInnerChamber.asm
index b8a350dc2..ae5b818da 100644
--- a/maps/RuinsofAlphInnerChamber.asm
+++ b/maps/RuinsofAlphInnerChamber.asm
@@ -125,6 +125,6 @@ RuinsofAlphInnerChamber_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
- person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+ person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
+ person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
person_event SPRITE_GRAMPS, 19, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS
diff --git a/maps/RuinsofAlphKabutoItemRoom.asm b/maps/RuinsofAlphKabutoItemRoom.asm
index 509e25136..a64a9ab34 100644
--- a/maps/RuinsofAlphKabutoItemRoom.asm
+++ b/maps/RuinsofAlphKabutoItemRoom.asm
@@ -47,7 +47,7 @@ RuinsofAlphKabutoItemRoom_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM
diff --git a/maps/RuinsofAlphOmanyteItemRoom.asm b/maps/RuinsofAlphOmanyteItemRoom.asm
index 68627e386..48b980505 100644
--- a/maps/RuinsofAlphOmanyteItemRoom.asm
+++ b/maps/RuinsofAlphOmanyteItemRoom.asm
@@ -47,7 +47,7 @@ RuinsofAlphOmanyteItemRoom_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
- person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM
+ person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM
diff --git a/maps/RuinsofAlphOutside.asm b/maps/RuinsofAlphOutside.asm
index 6e6fb96d3..019ab920e 100644
--- a/maps/RuinsofAlphOutside.asm
+++ b/maps/RuinsofAlphOutside.asm
@@ -313,6 +313,6 @@ RuinsofAlphOutside_MapEventHeader:
db 5
person_event SPRITE_YOUNGSTER, 20, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerPsychicNathan, -1
person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST
- person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
- person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
+ person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER
+ person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS
diff --git a/maps/RuinsofAlphResearchCenter.asm b/maps/RuinsofAlphResearchCenter.asm
index ddf5e8e71..5433134b0 100644
--- a/maps/RuinsofAlphResearchCenter.asm
+++ b/maps/RuinsofAlphResearchCenter.asm
@@ -413,5 +413,5 @@ RuinsofAlphResearchCenter_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_SCIENTIST, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591e5, -1
- person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_02, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x59214, -1
+ person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x59214, -1
person_event SPRITE_SCIENTIST, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST
diff --git a/maps/SaffronCity.asm b/maps/SaffronCity.asm
index 83b8b8ff4..0955b339f 100644
--- a/maps/SaffronCity.asm
+++ b/maps/SaffronCity.asm
@@ -301,5 +301,5 @@ SaffronCity_MapEventHeader:
person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x199355, -1
person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x199358, -1
person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x19936c, -1
- person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19936f, -1
- person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x199372, -1
+ person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19936f, -1
+ person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x199372, -1
diff --git a/maps/SaffronGym.asm b/maps/SaffronGym.asm
index 8149aea1c..f7e3ae784 100644
--- a/maps/SaffronGym.asm
+++ b/maps/SaffronGym.asm
@@ -331,8 +331,8 @@ SaffronGym_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_SABRINA, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SabrinaScript_0x189c2e, -1
- person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerMediumRebecca, -1
- person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFranklin, -1
- person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerMediumDoris, -1
- person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicJared, -1
+ person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerMediumRebecca, -1
+ person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFranklin, -1
+ person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerMediumDoris, -1
+ person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicJared, -1
person_event SPRITE_GYM_GUY, 14, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SaffronGymGuyScript, -1
diff --git a/maps/SaffronMart.asm b/maps/SaffronMart.asm
index 0f86b355c..ea1f211cb 100644
--- a/maps/SaffronMart.asm
+++ b/maps/SaffronMart.asm
@@ -50,5 +50,5 @@ SaffronMart_MapEventHeader:
.PersonEvents:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18a3bf, -1
- person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CooltrainerMScript_0x18a3c6, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CooltrainerMScript_0x18a3c6, -1
person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18a3c9, -1
diff --git a/maps/SaffronPokeCenter1F.asm b/maps/SaffronPokeCenter1F.asm
index 490f99ef1..15d998dce 100644
--- a/maps/SaffronPokeCenter1F.asm
+++ b/maps/SaffronPokeCenter1F.asm
@@ -124,6 +124,6 @@ SaffronPokeCenter1F_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18a47d, -1
- person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18a480, -1
+ person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18a480, -1
person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18a48c, -1
- person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x18a4a0, -1
+ person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x18a4a0, -1
diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm
index 70b7834b4..72bc19056 100644
--- a/maps/SaffronTrainStation.asm
+++ b/maps/SaffronTrainStation.asm
@@ -35,7 +35,7 @@ OfficerScript_0x18a81e:
writebyte $1
special Special_MagnetTrain
warpcheck
- newloadmap $f9
+ newloadmap MAPSETUP_TRAIN
applymovement PLAYER, .MovementBoardTheTrain
wait $14
end
@@ -232,6 +232,6 @@ SaffronTrainStation_MapEventHeader:
.PersonEvents:
db 4
person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x18a81e, -1
- person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GymGuyScript_0x18a875, -1
+ person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GymGuyScript_0x18a875, -1
person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION
person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION
diff --git a/maps/SilphCo1F.asm b/maps/SilphCo1F.asm
index 91b1423c4..de52fd6f6 100644
--- a/maps/SilphCo1F.asm
+++ b/maps/SilphCo1F.asm
@@ -15,7 +15,7 @@ OfficerScript_0x18abe8:
iftrue UnknownScript_0x18abfd
writetext UnknownText_0x18ac36
keeptextopen
- verbosegiveitem UP_GRADE, 1
+ verbosegiveitem UP_GRADE
iffalse UnknownScript_0x18ac01
setevent EVENT_GOT_UP_GRADE
UnknownScript_0x18abfd:
diff --git a/maps/SilverCaveItemRooms.asm b/maps/SilverCaveItemRooms.asm
index cf0774811..e2f998dba 100644
--- a/maps/SilverCaveItemRooms.asm
+++ b/maps/SilverCaveItemRooms.asm
@@ -28,5 +28,5 @@ SilverCaveItemRooms_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE
diff --git a/maps/SilverCaveRoom1.asm b/maps/SilverCaveRoom1.asm
index d8884288a..019dd016f 100644
--- a/maps/SilverCaveRoom1.asm
+++ b/maps/SilverCaveRoom1.asm
@@ -44,7 +44,7 @@ SilverCaveRoom1_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER
- person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN
- person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE
- person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN
+ person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE
+ person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL
diff --git a/maps/SilverCaveRoom2.asm b/maps/SilverCaveRoom2.asm
index 8056e1f62..f1095cb4e 100644
--- a/maps/SilverCaveRoom2.asm
+++ b/maps/SilverCaveRoom2.asm
@@ -38,6 +38,6 @@ SilverCaveRoom2_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM
- person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP
+ person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM
+ person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP
diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm
index 6c9b1c8d8..95ec72694 100644
--- a/maps/SlowpokeWellB1F.asm
+++ b/maps/SlowpokeWellB1F.asm
@@ -56,7 +56,7 @@ GruntM1Script:
clearevent EVENT_AZALEA_TOWN_SLOWPOKES
clearevent EVENT_KURTS_HOUSE_SLOWPOKE
clearevent EVENT_KURTS_HOUSE_KURT_1
- special FadeBlackBGMap
+ special FadeOutPalettes
special HealParty
pause 15
warp KURTS_HOUSE, $3, $3
@@ -121,15 +121,15 @@ KurtSlowpokeWellVictoryMovementData:
step_left
step_left
step_up
- accelerate_last
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
+ step_sleep_8
step_left
step_up
step_up
- accelerate_last
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
+ step_sleep_8
turn_head_left
step_end
@@ -330,8 +330,8 @@ SlowpokeWellB1F_MapEventHeader:
person_event SPRITE_ROCKET, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS
person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS
person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS
- person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
- person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES
+ person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES
person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT
- person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, SlowpokeWellB1FBoulder, -1
- person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
+ person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, SlowpokeWellB1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION
diff --git a/maps/SlowpokeWellB2F.asm b/maps/SlowpokeWellB2F.asm
index 56255a4c9..a532cd648 100644
--- a/maps/SlowpokeWellB2F.asm
+++ b/maps/SlowpokeWellB2F.asm
@@ -12,7 +12,7 @@ GymGuyScript_0x5ad0b:
iftrue UnknownScript_0x5ad22
writetext UnknownText_0x5ad2a
keeptextopen
- verbosegiveitem KINGS_ROCK, 1
+ verbosegiveitem KINGS_ROCK
iffalse UnknownScript_0x5ad20
setevent EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL
UnknownScript_0x5ad20:
@@ -73,5 +73,5 @@ SlowpokeWellB2F_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 1, GymGuyScript_0x5ad0b, -1
- person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
+ person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 1, GymGuyScript_0x5ad0b, -1
+ person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE
diff --git a/maps/SproutTower1F.asm b/maps/SproutTower1F.asm
index c7252d33b..a10f41ed8 100644
--- a/maps/SproutTower1F.asm
+++ b/maps/SproutTower1F.asm
@@ -117,8 +117,8 @@ SproutTower1F_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x1844fe, -1
- person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x184501, -1
+ person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x184501, -1
person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x184504, -1
person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x184507, -1
person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageChow, -1
- person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
+ person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL
diff --git a/maps/SproutTower2F.asm b/maps/SproutTower2F.asm
index bf0ccca8a..0e0b4b799 100644
--- a/maps/SproutTower2F.asm
+++ b/maps/SproutTower2F.asm
@@ -99,6 +99,6 @@ SproutTower2F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageNico, -1
+ person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageNico, -1
person_event SPRITE_SAGE, 14, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSageEdmond, -1
- person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY
+ person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY
diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm
index daeae5805..da36b255a 100644
--- a/maps/SproutTower3F.asm
+++ b/maps/SproutTower3F.asm
@@ -71,7 +71,7 @@ SageLiScript:
loadfont
writetext UnknownText_0x184cc2
keeptextopen
- verbosegiveitem HM_FLASH, 1
+ verbosegiveitem HM_FLASH
setevent EVENT_GOT_HM05_FLASH
setevent EVENT_BEAT_SAGE_LI
writetext UnknownText_0x184d13
@@ -349,6 +349,6 @@ SproutTower3F_MapEventHeader:
person_event SPRITE_SAGE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSageTroy, -1
person_event SPRITE_SAGE, 2, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageLiScript, -1
person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSageNeal, -1
- person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION
- person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE
+ person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION
+ person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE
person_event SPRITE_SILVER, 4, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER
diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm
index ea250ae37..29ca078b8 100644
--- a/maps/TeamRocketBaseB1F.asm
+++ b/maps/TeamRocketBaseB1F.asm
@@ -445,9 +445,9 @@ ExplodingTrap22:
end
VoltorbExplodingTrap:
- special FadeBlackBGMap
+ special FadeOutPalettes
cry VOLTORB
- special FadeInBGMap
+ special FadeInPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata VOLTORB, 23
@@ -455,9 +455,9 @@ VoltorbExplodingTrap:
end
GeodudeExplodingTrap:
- special FadeBlackBGMap
+ special FadeOutPalettes
cry GEODUDE
- special FadeInBGMap
+ special FadeInPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata GEODUDE, 21
@@ -465,9 +465,9 @@ GeodudeExplodingTrap:
end
KoffingExplodingTrap:
- special FadeBlackBGMap
+ special FadeOutPalettes
cry KOFFING
- special FadeInBGMap
+ special FadeInPalettes
setlasttalked $ff
writecode VAR_BATTLETYPE, BATTLETYPE_TRAP
loadpokedata KOFFING, 21
@@ -789,6 +789,6 @@ TeamRocketBaseB1F_MapEventHeader:
person_event SPRITE_ROCKET, 0, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS
person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SCIENTIST, 12, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION
- person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET
- person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC
+ person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION
+ person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET
+ person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC
diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm
index 7b6892d61..7774ef97f 100644
--- a/maps/TeamRocketBaseB2F.asm
+++ b/maps/TeamRocketBaseB2F.asm
@@ -155,11 +155,11 @@ UnknownScript_0x6d091:
writetext UnknownText_0x6da97
closetext
loadmovesprites
- special FadeBlackBGMap
+ special FadeOutPalettes
special Mobile_HealParty
playsound SFX_FULL_HEAL
special HealParty
- special FadeInBGMap
+ special FadeInPalettes
loadfont
writetext UnknownText_0x6daf7
closetext
@@ -276,7 +276,7 @@ UnknownScript_0x6d184:
loadfont
writetext UnknownText_0x6d809
keeptextopen
- verbosegiveitem HM_WHIRLPOOL, 1
+ verbosegiveitem HM_WHIRLPOOL
setevent EVENT_GOT_HM06_WHIRLPOOL
writetext UnknownText_0x6d8f8
closetext
@@ -449,17 +449,17 @@ MovementData_0x6d254:
step_end
MovementData_0x6d258:
- accelerate_last
+ step_sleep_8
step_left
step_left
turn_head_up
- accelerate_last
+ step_sleep_8
step_right
step_right
step_right
step_right
turn_head_up
- accelerate_last
+ step_sleep_8
step_left
step_left
turn_head_down
@@ -956,13 +956,13 @@ TeamRocketBaseB2F_MapEventHeader:
person_event SPRITE_ROCKET_GIRL, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE
person_event SPRITE_LANCE, 13, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE
person_event SPRITE_DRAGON, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE
- person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
- person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
- person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
- person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
- person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
- person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
+ person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+ person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
+ person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
+ person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1
+ person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2
+ person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3
person_event SPRITE_ROCKET, 13, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_ROCKET, 14, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF
+ person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF
diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm
index 671ff9dd7..2672e2410 100644
--- a/maps/TeamRocketBaseB3F.asm
+++ b/maps/TeamRocketBaseB3F.asm
@@ -254,8 +254,8 @@ MovementData_0x6e147:
fix_facing
fast_jump_step_left
remove_fixed_facing
- accelerate_last
- accelerate_last
+ step_sleep_8
+ step_sleep_8
slow_step_right
big_step_down
big_step_down
@@ -589,15 +589,15 @@ TeamRocketBaseB3F_MapEventHeader:
db 14
person_event SPRITE_LANCE, 14, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS
person_event SPRITE_ROCKET, 3, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE
- person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_ROCKET_GIRL, 7, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION
- person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION
+ person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION
person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE
- person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
- person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
- person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
- person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
- person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN
+ person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL
+ person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL
+ person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL
diff --git a/maps/TimeCapsule.asm b/maps/TimeCapsule.asm
index 32d52bb77..9795265b6 100644
--- a/maps/TimeCapsule.asm
+++ b/maps/TimeCapsule.asm
@@ -39,7 +39,7 @@ TimeCapsule_Initialize:
MapTimeCapsuleSignpost1Script:
special Special_TimeCapsule
- newloadmap $f8
+ newloadmap MAPSETUP_LINKRETURN
end
ChrisScript_0x19351a:
diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm
index 33e8674b8..66c34d708 100644
--- a/maps/TinTower1F.asm
+++ b/maps/TinTower1F.asm
@@ -189,7 +189,7 @@ SageScript_0x185188:
iftrue UnknownScript_0x1851b0
writetext UnknownText_0x185629
keeptextopen
- verbosegiveitem RAINBOW_WING, 1
+ verbosegiveitem RAINBOW_WING
loadmovesprites
refreshscreen $0
earthquake 72
@@ -534,13 +534,13 @@ TinTower1F_MapEventHeader:
.PersonEvents:
db 10
- person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE
- person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
- person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
- person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE
- person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
- person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE
+ person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU
+ person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI
+ person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE
+ person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1
+ person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 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, 0, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2
person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 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, 0, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2
diff --git a/maps/TinTower3F.asm b/maps/TinTower3F.asm
index 4a0e103bf..41873c9aa 100644
--- a/maps/TinTower3F.asm
+++ b/maps/TinTower3F.asm
@@ -25,4 +25,4 @@ TinTower3F_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL
diff --git a/maps/TinTower4F.asm b/maps/TinTower4F.asm
index 1068a5a91..60b085abd 100644
--- a/maps/TinTower4F.asm
+++ b/maps/TinTower4F.asm
@@ -38,6 +38,6 @@ TinTower4F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL
- person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP
- person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE
+ person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP
+ person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE
diff --git a/maps/TinTower5F.asm b/maps/TinTower5F.asm
index 6fd38614f..848942bf0 100644
--- a/maps/TinTower5F.asm
+++ b/maps/TinTower5F.asm
@@ -37,4 +37,4 @@ TinTower5F_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY
+ person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY
diff --git a/maps/TinTower6F.asm b/maps/TinTower6F.asm
index decbede6f..7a58b6153 100644
--- a/maps/TinTower6F.asm
+++ b/maps/TinTower6F.asm
@@ -25,4 +25,4 @@ TinTower6F_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION
+ person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION
diff --git a/maps/TinTower7F.asm b/maps/TinTower7F.asm
index 64d484393..bc6b79700 100644
--- a/maps/TinTower7F.asm
+++ b/maps/TinTower7F.asm
@@ -28,4 +28,4 @@ TinTower7F_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE
diff --git a/maps/TinTower8F.asm b/maps/TinTower8F.asm
index 16df54c63..12c7acf5e 100644
--- a/maps/TinTower8F.asm
+++ b/maps/TinTower8F.asm
@@ -35,6 +35,6 @@ TinTower8F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET
- person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER
- person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET
+ person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE
diff --git a/maps/TinTower9F.asm b/maps/TinTower9F.asm
index 0f1c1d116..78e052a31 100644
--- a/maps/TinTower9F.asm
+++ b/maps/TinTower9F.asm
@@ -38,4 +38,4 @@ TinTower9F_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP
+ person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP
diff --git a/maps/TinTowerRoof.asm b/maps/TinTowerRoof.asm
index de2594edb..6efa6e21f 100644
--- a/maps/TinTowerRoof.asm
+++ b/maps/TinTowerRoof.asm
@@ -60,4 +60,4 @@ TinTowerRoof_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH
+ person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH
diff --git a/maps/TohjoFalls.asm b/maps/TohjoFalls.asm
index 90790ad01..2bda0033b 100644
--- a/maps/TohjoFalls.asm
+++ b/maps/TohjoFalls.asm
@@ -25,4 +25,4 @@ TohjoFalls_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE
+ person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE
diff --git a/maps/TradeCenter.asm b/maps/TradeCenter.asm
index 3fad7fb24..982650b4e 100644
--- a/maps/TradeCenter.asm
+++ b/maps/TradeCenter.asm
@@ -39,7 +39,7 @@ TradeCenter_Initialize:
MapTradeCenterSignpost1Script:
special Special_TradeCenter
- newloadmap $f8
+ newloadmap MAPSETUP_LINKRETURN
end
ChrisScript_0x19340b:
diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm
index e3e23144a..34f77d333 100644
--- a/maps/UndergroundPathSwitchRoomEntrances.asm
+++ b/maps/UndergroundPathSwitchRoomEntrances.asm
@@ -931,6 +931,6 @@ UndergroundPathSwitchRoomEntrances_MapEventHeader:
person_event SPRITE_ROCKET_GIRL, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_TEACHER, 27, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7ca7d, -1
person_event SPRITE_SUPER_NERD, 27, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7ca7a, -1
- person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
- person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL
+ person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL
person_event SPRITE_SILVER, 3, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH
diff --git a/maps/UndergroundWarehouse.asm b/maps/UndergroundWarehouse.asm
index 60f4a5656..3e272fb52 100644
--- a/maps/UndergroundWarehouse.asm
+++ b/maps/UndergroundWarehouse.asm
@@ -69,7 +69,7 @@ GentlemanScript_0x7d9bf:
iftrue UnknownScript_0x7d9de
writetext UnknownText_0x7dbc6
keeptextopen
- verbosegiveitem CARD_KEY, 1
+ verbosegiveitem CARD_KEY
setevent EVENT_RECEIVED_CARD_KEY
setevent EVENT_WAREHOUSE_LAYOUT_1
clearevent EVENT_WAREHOUSE_LAYOUT_2
@@ -225,7 +225,7 @@ UndergroundWarehouse_MapEventHeader:
person_event SPRITE_ROCKET, 8, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
person_event SPRITE_ROCKET, 3, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
- person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER
- person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK
- person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL
+ person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER
+ person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER
+ person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK
+ person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL
diff --git a/maps/UnionCave1F.asm b/maps/UnionCave1F.asm
index f6544808d..e35c88e78 100644
--- a/maps/UnionCave1F.asm
+++ b/maps/UnionCave1F.asm
@@ -208,11 +208,11 @@ UnionCave1F_MapEventHeader:
.PersonEvents:
db 9
person_event SPRITE_POKEFAN_M, 6, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerDaniel, -1
- person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacLarry, -1
- person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerRussell, -1
+ person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacLarry, -1
+ person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerRussell, -1
person_event SPRITE_FISHER, 27, 15, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherRay, -1
person_event SPRITE_FISHER, 19, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherBill, -1
- person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL
- person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK
- person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION
- person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING
+ person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL
+ person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK
+ person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION
+ person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING
diff --git a/maps/UnionCaveB1F.asm b/maps/UnionCaveB1F.asm
index 5b6d0415a..54d6914ad 100644
--- a/maps/UnionCaveB1F.asm
+++ b/maps/UnionCaveB1F.asm
@@ -163,10 +163,10 @@ UnionCaveB1F_MapEventHeader:
.PersonEvents:
db 7
- person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerPhillip, -1
+ person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerPhillip, -1
person_event SPRITE_POKEFAN_M, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerLeonard, -1
person_event SPRITE_SUPER_NERD, 32, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacAndrew, -1
person_event SPRITE_SUPER_NERD, 30, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacCalvin, -1
- person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT
- person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, UnionCaveB1FBoulder, -1
- person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND
+ person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT
+ person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, UnionCaveB1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND
diff --git a/maps/UnionCaveB2F.asm b/maps/UnionCaveB2F.asm
index 7d9bbf462..afeba994e 100644
--- a/maps/UnionCaveB2F.asm
+++ b/maps/UnionCaveB2F.asm
@@ -153,8 +153,8 @@ UnionCaveB2F_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_ROCKER, 19, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermNick, -1
- person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfGwen, -1
+ person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfGwen, -1
person_event SPRITE_COOLTRAINER_F, 30, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfEmma, -1
- person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER
- person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION
- person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_24, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS
+ person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER
+ person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION
+ person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_LAPRAS, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS
diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm
index f3df277be..5a2939d63 100644
--- a/maps/VermilionCity.asm
+++ b/maps/VermilionCity.asm
@@ -85,7 +85,7 @@ VermilionGymBadgeGuy:
.AllBadges
writetext UnknownText_0x1aacf3
keeptextopen
- verbosegiveitem HP_UP, 1
+ verbosegiveitem HP_UP
iffalse .Done
setevent EVENT_GOT_HP_UP_FROM_VERMILION_GUY
.AlreadyGotItem
@@ -294,9 +294,9 @@ VermilionCity_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x1aa983, -1
+ person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x1aa983, -1
person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1aa986, -1
- person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, VermilionMachop, -1
- person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1aa99b, -1
- person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_15, 0, 0, -1, -1, 0, 0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
+ person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, VermilionMachop, -1
+ person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1aa99b, -1
+ person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, 0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX
person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, VermilionGymBadgeGuy, -1
diff --git a/maps/VermilionMagnetTrainSpeechHouse.asm b/maps/VermilionMagnetTrainSpeechHouse.asm
index 6d2516cce..99d930647 100644
--- a/maps/VermilionMagnetTrainSpeechHouse.asm
+++ b/maps/VermilionMagnetTrainSpeechHouse.asm
@@ -49,4 +49,4 @@ VermilionMagnetTrainSpeechHouse_MapEventHeader:
.PersonEvents:
db 2
person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x191eb7, -1
- person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x191eba, -1
+ person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x191eba, -1
diff --git a/maps/VermilionPokeCenter1F.asm b/maps/VermilionPokeCenter1F.asm
index 2ca8e4d28..0ac63a69e 100644
--- a/maps/VermilionPokeCenter1F.asm
+++ b/maps/VermilionPokeCenter1F.asm
@@ -91,4 +91,4 @@ VermilionPokeCenter1F_MapEventHeader:
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x191603, -1
person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x191606, -1
person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x19161a, -1
- person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x19161d, -1
+ person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x19161d, -1
diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm
index de184c02a..de943b3e4 100644
--- a/maps/VermilionPort.asm
+++ b/maps/VermilionPort.asm
@@ -51,7 +51,7 @@ SailorScript_0x74dc4:
waitbutton
applymovement PLAYER, MovementData_0x74ef1
playsound SFX_EXIT_BUILDING
- special FadeBlackBGMap
+ special FadeOutPalettes
waitbutton
setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND
clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND
diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm
index 2c7d332f5..e15f0c40c 100644
--- a/maps/VictoryRoad.asm
+++ b/maps/VictoryRoad.asm
@@ -264,8 +264,8 @@ VictoryRoad_MapEventHeader:
.PersonEvents:
db 6
person_event SPRITE_SILVER, 13, 18, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD
- person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE
- person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL
- person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP
+ person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE
+ person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL
+ person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP
diff --git a/maps/VioletCity.asm b/maps/VioletCity.asm
index 3b8555f36..6203ce87a 100644
--- a/maps/VioletCity.asm
+++ b/maps/VioletCity.asm
@@ -301,11 +301,11 @@ VioletCity_MapEventHeader:
.PersonEvents:
db 8
- person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL
- person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a8403, -1
- person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_02, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a8406, -1
+ person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL
+ person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a8403, -1
+ person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a8406, -1
person_event SPRITE_GRAMPS, 20, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a8409, -1
- person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a840c, -1
- person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8425, -1
- person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP
- person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY
+ person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a840c, -1
+ person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8425, -1
+ person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP
+ person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY
diff --git a/maps/VioletGym.asm b/maps/VioletGym.asm
index 3ba553ae2..041ba6f4e 100644
--- a/maps/VioletGym.asm
+++ b/maps/VioletGym.asm
@@ -34,7 +34,7 @@ FalknerScript_0x683c2:
specialphonecall SPECIALCALL_ASSISTANT
writetext UnknownText_0x685c8
keeptextopen
- verbosegiveitem TM_MUD_SLAP, 1
+ verbosegiveitem TM_MUD_SLAP
iffalse .NoRoomForMudSlap
setevent EVENT_GOT_TM31_MUD_SLAP
writetext UnknownText_0x68648
diff --git a/maps/VioletMart.asm b/maps/VioletMart.asm
index 42b215d20..441c94855 100644
--- a/maps/VioletMart.asm
+++ b/maps/VioletMart.asm
@@ -62,4 +62,4 @@ VioletMart_MapEventHeader:
db 3
person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x68295, -1
person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrannyScript_0x6829c, -1
- person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x6829f, -1
+ person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x6829f, -1
diff --git a/maps/VioletOnixTradeHouse.asm b/maps/VioletOnixTradeHouse.asm
index 8269c5ab6..f5872dcea 100644
--- a/maps/VioletOnixTradeHouse.asm
+++ b/maps/VioletOnixTradeHouse.asm
@@ -45,5 +45,5 @@ VioletOnixTradeHouse_MapEventHeader:
.PersonEvents:
db 2
- person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x6998d, -1
+ person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x6998d, -1
person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69990, -1
diff --git a/maps/VioletPokeCenter1F.asm b/maps/VioletPokeCenter1F.asm
index e1357dd2b..fb11bd4a6 100644
--- a/maps/VioletPokeCenter1F.asm
+++ b/maps/VioletPokeCenter1F.asm
@@ -228,6 +228,6 @@ VioletPokeCenter1F_MapEventHeader:
db 5
person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x694c9, -1
person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GameboyKidScript_0x69540, -1
- person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x69543, -1
+ person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x69543, -1
person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69546, -1
person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER
diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm
index 32282c1ad..7313b89eb 100644
--- a/maps/ViridianCity.asm
+++ b/maps/ViridianCity.asm
@@ -52,7 +52,7 @@ FisherScript_0x1a9a75:
iftrue UnknownScript_0x1a9a8a
writetext UnknownText_0x1a9cc4
keeptextopen
- verbosegiveitem TM_DREAM_EATER, 1
+ verbosegiveitem TM_DREAM_EATER
iffalse UnknownScript_0x1a9a8e
setevent EVENT_GOT_TM42_DREAM_EATER
UnknownScript_0x1a9a8a:
@@ -237,7 +237,7 @@ ViridianCity_MapEventHeader:
.PersonEvents:
db 4
- person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, GrampsScript_0x1a9a4c, -1
+ person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GrampsScript_0x1a9a4c, -1
person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x1a9a61, -1
person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x1a9a75, -1
- person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_02, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9a90, -1
+ person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9a90, -1
diff --git a/maps/ViridianNicknameSpeechHouse.asm b/maps/ViridianNicknameSpeechHouse.asm
index f5a7597ad..45e489a60 100644
--- a/maps/ViridianNicknameSpeechHouse.asm
+++ b/maps/ViridianNicknameSpeechHouse.asm
@@ -74,5 +74,5 @@ ViridianNicknameSpeechHouse_MapEventHeader:
db 4
person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x9ae3a, -1
person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9ae3d, -1
- person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_16, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MoltresScript_0x9ae40, -1
- person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_16, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x9ae4a, -1
+ person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MoltresScript_0x9ae40, -1
+ person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x9ae4a, -1
diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm
index e95bd02ef..7199599d7 100644
--- a/maps/WarehouseEntrance.asm
+++ b/maps/WarehouseEntrance.asm
@@ -226,10 +226,10 @@ OlderHaircutBrotherScript:
writetext UnknownText_0x7c6b8
closetext
loadmovesprites
- special FadeBlackBGMap
+ special FadeOutPalettes
playmusic MUSIC_HEAL
pause 60
- special FadeInBGMap
+ special FadeInPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x7c6d8
@@ -309,10 +309,10 @@ YoungerHaircutBrotherScript:
writetext UnknownText_0x7c80e
closetext
loadmovesprites
- special FadeBlackBGMap
+ special FadeOutPalettes
playmusic MUSIC_HEAL
pause 60
- special FadeInBGMap
+ special FadeInPalettes
special RestartMapMusic
loadfont
writetext UnknownText_0x7c82a
@@ -671,9 +671,9 @@ WarehouseEntrance_MapEventHeader:
db 9
person_event SPRITE_SUPER_NERD, 31, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdEric, -1
person_event SPRITE_SUPER_NERD, 9, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdTeru, -1
- person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacIssac, -1
+ person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacIssac, -1
person_event SPRITE_SUPER_NERD, 6, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacDonald, -1
- person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE
+ person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE
person_event SPRITE_GRAMPS, 11, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS
person_event SPRITE_SUPER_NERD, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER
person_event SPRITE_SUPER_NERD, 15, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER
diff --git a/maps/WhirlIslandB1F.asm b/maps/WhirlIslandB1F.asm
index c429dde8e..5dc118841 100644
--- a/maps/WhirlIslandB1F.asm
+++ b/maps/WhirlIslandB1F.asm
@@ -62,9 +62,9 @@ WhirlIslandB1F_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS
- person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM
- person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET
- person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE
- person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, WhirlIslandB1FBoulder, -1
+ person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS
+ person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM
+ person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET
+ person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE
+ person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, WhirlIslandB1FBoulder, -1
diff --git a/maps/WhirlIslandB2F.asm b/maps/WhirlIslandB2F.asm
index c657b90d2..0a5a4ed39 100644
--- a/maps/WhirlIslandB2F.asm
+++ b/maps/WhirlIslandB2F.asm
@@ -33,6 +33,6 @@ WhirlIslandB2F_MapEventHeader:
.PersonEvents:
db 3
- person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE
- person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE
- person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER
+ person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE
+ person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE
+ person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER
diff --git a/maps/WhirlIslandLugiaChamber.asm b/maps/WhirlIslandLugiaChamber.asm
index 4650dd053..e3c192a09 100644
--- a/maps/WhirlIslandLugiaChamber.asm
+++ b/maps/WhirlIslandLugiaChamber.asm
@@ -59,4 +59,4 @@ WhirlIslandLugiaChamber_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
+ person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA
diff --git a/maps/WhirlIslandNE.asm b/maps/WhirlIslandNE.asm
index e9d6c515a..25566611c 100644
--- a/maps/WhirlIslandNE.asm
+++ b/maps/WhirlIslandNE.asm
@@ -26,4 +26,4 @@ WhirlIslandNE_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL
diff --git a/maps/WhirlIslandSW.asm b/maps/WhirlIslandSW.asm
index 533c084fc..01b09e319 100644
--- a/maps/WhirlIslandSW.asm
+++ b/maps/WhirlIslandSW.asm
@@ -28,4 +28,4 @@ WhirlIslandSW_MapEventHeader:
.PersonEvents:
db 1
- person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
+ person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL
diff --git a/maps/WiseTriosRoom.asm b/maps/WiseTriosRoom.asm
index 9a0a68010..d51462ca2 100644
--- a/maps/WiseTriosRoom.asm
+++ b/maps/WiseTriosRoom.asm
@@ -360,7 +360,7 @@ WiseTriosRoom_MapEventHeader:
.PersonEvents:
db 6
- person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
+ person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 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, 0, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1
person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2
diff --git a/maps/map_headers.asm b/maps/map_headers.asm
index bb65ec8be..3b49db763 100644
--- a/maps/map_headers.asm
+++ b/maps/map_headers.asm
@@ -30,466 +30,466 @@ MapGroupPointers::
MapGroup1:
- map_header OlivinePokeCenter1F, $7, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header OlivineGym, $12, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header OlivineVoltorbHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header OlivineHouseBeta, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header OlivinePunishmentSpeechHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header OlivineGoodRodHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header OlivineCafe, $e, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header OlivineMart, $c, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header Route38EcruteakGate, $8, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, 1
- map_header Route39Barn, $10, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header Route39Farmhouse, $5, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header Route38, $1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
- map_header Route39, $1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
- map_header OlivineCity, $1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1
+ map_header OlivinePokeCenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header OlivineGym, TILESET_OLIVINE_GYM, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header OlivineVoltorbHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header OlivineHouseBeta, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header OlivinePunishmentSpeechHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header OlivineGoodRodHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header OlivineCafe, TILESET_GAME_CORNER, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header OlivineMart, TILESET_MART, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header Route38EcruteakGate, TILESET_GATE, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, 1
+ map_header Route39Barn, TILESET_KURT_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header Route39Farmhouse, TILESET_HOUSE_1, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header Route38, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
+ map_header Route39, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1
+ map_header OlivineCity, TILESET_JOHTO_OUTSIDE_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1
MapGroup2:
- map_header MahoganyRedGyaradosSpeechHouse, $5, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
- map_header MahoganyGym, $f, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header MahoganyPokeCenter1F, $7, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header Route42EcruteakGate, $8, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
- map_header Route42, $1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3
- map_header Route44, $1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
- map_header MahoganyTown, $1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
+ map_header MahoganyRedGyaradosSpeechHouse, TILESET_HOUSE_1, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
+ map_header MahoganyGym, TILESET_GYM_1, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header MahoganyPokeCenter1F, TILESET_POKECENTER, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header Route42EcruteakGate, TILESET_GATE, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
+ map_header Route42, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3
+ map_header Route44, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
+ map_header MahoganyTown, TILESET_JOHTO_OUTSIDE_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
MapGroup3:
- map_header SproutTower1F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
- map_header SproutTower2F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
- map_header SproutTower3F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower1F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower2F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower3F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower4F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower5F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower6F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower7F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower8F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header TinTower9F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
- map_header BurnedTower1F, $17, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1
- map_header BurnedTowerB1F, $18, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1
- map_header NationalPark, $19, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, PALETTE_AUTO, 1
- map_header NationalParkBugContest, $19, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, PALETTE_AUTO, 1
- map_header RadioTower1F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
- map_header RadioTower2F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
- map_header RadioTower3F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
- map_header RadioTower4F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
- map_header RadioTower5F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
- map_header RuinsofAlphOutside, $1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4
- map_header RuinsofAlphHoOhChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphKabutoChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphOmanyteChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphAerodactylChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphInnerChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 1, PALETTE_DAY, 1
- map_header RuinsofAlphResearchCenter, $b, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_DAY, 1
- map_header RuinsofAlphHoOhItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphKabutoItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphOmanyteItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphAerodactylItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphHoOhWordRoom, $21, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphKabutoWordRoom, $22, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphOmanyteWordRoom, $23, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header RuinsofAlphAerodactylWordRoom, $24, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header UnionCave1F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
- map_header UnionCaveB1F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
- map_header UnionCaveB2F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 1
- map_header SlowpokeWellB1F, $18, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3
- map_header SlowpokeWellB2F, $18, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3
- map_header OlivineLighthouse1F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
- map_header OlivineLighthouse2F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
- map_header OlivineLighthouse3F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
- map_header OlivineLighthouse4F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
- map_header OlivineLighthouse5F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
- map_header OlivineLighthouse6F, $13, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header MahoganyMart1F, $10, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 1, PALETTE_DAY, 1
- map_header TeamRocketBaseB1F, $1c, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
- map_header TeamRocketBaseB2F, $b, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
- map_header TeamRocketBaseB3F, $b, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
- map_header IlexForest, $1f, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, 0, PALETTE_NITE, 4
- map_header WarehouseEntrance, $8, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header UndergroundPathSwitchRoomEntrances, $f, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header GoldenrodDeptStoreB1F, $1c, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
- map_header UndergroundWarehouse, $1c, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
- map_header MountMortar1FOutside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
- map_header MountMortar1FInside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
- map_header MountMortar2FInside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
- map_header MountMortarB1F, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
- map_header IcePath1F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
- map_header IcePathB1F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
- map_header IcePathB2FMahoganySide, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
- map_header IcePathB2FBlackthornSide, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
- map_header IcePathB3F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
- map_header WhirlIslandNW, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header WhirlIslandNE, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header WhirlIslandSW, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header WhirlIslandCave, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header WhirlIslandSE, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header WhirlIslandB1F, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header WhirlIslandB2F, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header WhirlIslandLugiaChamber, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
- map_header SilverCaveRoom1, $1e, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DARK, 3
- map_header SilverCaveRoom2, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3
- map_header SilverCaveRoom3, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DAY, 3
- map_header SilverCaveItemRooms, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3
- map_header DarkCaveVioletEntrance, $1e, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
- map_header DarkCaveBlackthornEntrance, $1e, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
- map_header DragonsDen1F, $18, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
- map_header DragonsDenB1F, $1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
- map_header DragonShrine, $a, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 1
- map_header TohjoFalls, $18, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
- map_header DiglettsCave, $18, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, 1
- map_header MountMoon, $18, CAVE, MT_MOON, MUSIC_MT_MOON, 1, PALETTE_NITE, 1
- map_header Underground, $1c, GATE, UNDERGROUND, MUSIC_MT_MOON, 0, PALETTE_NITE, 1
- map_header RockTunnel1F, $1e, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1
- map_header RockTunnelB1F, $1e, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1
- map_header SafariZoneFuchsiaGateBeta, $8, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header SafariZoneBeta, $19, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, PALETTE_AUTO, 1
- map_header VictoryRoad, $18, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 1, PALETTE_NITE, 1
+ map_header SproutTower1F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
+ map_header SproutTower2F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
+ map_header SproutTower3F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower1F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower2F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower3F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower4F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower5F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower6F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower7F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower8F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header TinTower9F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1
+ map_header BurnedTower1F, TILESET_SPROUT_TOWER, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1
+ map_header BurnedTowerB1F, TILESET_CAVE, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1
+ map_header NationalPark, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, PALETTE_AUTO, 1
+ map_header NationalParkBugContest, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, PALETTE_AUTO, 1
+ map_header RadioTower1F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
+ map_header RadioTower2F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
+ map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
+ map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
+ map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphOutside, TILESET_JOHTO_OUTSIDE_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4
+ map_header RuinsofAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphAerodactylChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphInnerChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphResearchCenter, TILESET_POWER_PLANT, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_DAY, 1
+ map_header RuinsofAlphHoOhItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphKabutoItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphOmanyteItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphAerodactylItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphHoOhWordRoom, TILESET_HO_OH_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphKabutoWordRoom, TILESET_KABUTO_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphOmanyteWordRoom, TILESET_OMANYTE_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header RuinsofAlphAerodactylWordRoom, TILESET_AERODACTYL_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header UnionCave1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
+ map_header UnionCaveB1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
+ map_header UnionCaveB2F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 1
+ map_header SlowpokeWellB1F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3
+ map_header SlowpokeWellB2F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3
+ map_header OlivineLighthouse1F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
+ map_header OlivineLighthouse2F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
+ map_header OlivineLighthouse3F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
+ map_header OlivineLighthouse4F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
+ map_header OlivineLighthouse5F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1
+ map_header OlivineLighthouse6F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header MahoganyMart1F, TILESET_KURT_HOUSE, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 1, PALETTE_DAY, 1
+ map_header TeamRocketBaseB1F, TILESET_UNDERGROUND, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
+ map_header TeamRocketBaseB2F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
+ map_header TeamRocketBaseB3F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1
+ map_header IlexForest, TILESET_ILEX_FOREST, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, 0, PALETTE_NITE, 4
+ map_header WarehouseEntrance, TILESET_GATE, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header UndergroundPathSwitchRoomEntrances, TILESET_GYM_1, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header GoldenrodDeptStoreB1F, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1
+ map_header UndergroundWarehouse, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1
+ map_header MountMortar1FOutside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
+ map_header MountMortar1FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
+ map_header MountMortar2FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
+ map_header MountMortarB1F, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
+ map_header IcePath1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
+ map_header IcePathB1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
+ map_header IcePathB2FMahoganySide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
+ map_header IcePathB2FBlackthornSide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
+ map_header IcePathB3F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5
+ map_header WhirlIslandNW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header WhirlIslandNE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header WhirlIslandSW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header WhirlIslandCave, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header WhirlIslandSE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header WhirlIslandB1F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header WhirlIslandB2F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header WhirlIslandLugiaChamber, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10
+ map_header SilverCaveRoom1, TILESET_WHIRL_ISLANDS, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DARK, 3
+ map_header SilverCaveRoom2, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3
+ map_header SilverCaveRoom3, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DAY, 3
+ map_header SilverCaveItemRooms, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3
+ map_header DarkCaveVioletEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
+ map_header DarkCaveBlackthornEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3
+ map_header DragonsDen1F, TILESET_CAVE, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
+ map_header DragonsDenB1F, TILESET_JOHTO_OUTSIDE_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5
+ map_header DragonShrine, TILESET_LAB, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 1
+ map_header TohjoFalls, TILESET_CAVE, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3
+ map_header DiglettsCave, TILESET_CAVE, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, 1
+ map_header MountMoon, TILESET_CAVE, CAVE, MT_MOON, MUSIC_MT_MOON, 1, PALETTE_NITE, 1
+ map_header Underground, TILESET_UNDERGROUND, GATE, UNDERGROUND, MUSIC_MT_MOON, 0, PALETTE_NITE, 1
+ map_header RockTunnel1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1
+ map_header RockTunnelB1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1
+ map_header SafariZoneFuchsiaGateBeta, TILESET_GATE, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header SafariZoneBeta, TILESET_PARK, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, PALETTE_AUTO, 1
+ map_header VictoryRoad, TILESET_CAVE, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 1, PALETTE_NITE, 1
MapGroup4:
- map_header EcruteakHouse, $17, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header WiseTriosRoom, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, PALETTE_DAY, 1
- map_header EcruteakPokeCenter1F, $7, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header EcruteakLugiaSpeechHouse, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header DanceTheatre, $10, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 0, PALETTE_DAY, 1
- map_header EcruteakMart, $c, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header EcruteakGym, $17, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header EcruteakItemfinderHouse, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header EcruteakCity, $1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4
+ map_header EcruteakHouse, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header WiseTriosRoom, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, PALETTE_DAY, 1
+ map_header EcruteakPokeCenter1F, TILESET_POKECENTER, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header EcruteakLugiaSpeechHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header DanceTheatre, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 0, PALETTE_DAY, 1
+ map_header EcruteakMart, TILESET_MART, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header EcruteakGym, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header EcruteakItemfinderHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header EcruteakCity, TILESET_JOHTO_OUTSIDE_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4
MapGroup5:
- map_header BlackthornGym1F, $f, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header BlackthornGym2F, $f, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header BlackthornDragonSpeechHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header BlackthornDodrioTradeHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header BlackthornMart, $c, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header BlackthornPokeCenter1F, $7, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header MoveDeletersHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header Route45, $1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9
- map_header Route46, $1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header BlackthornCity, $1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4
+ map_header BlackthornGym1F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header BlackthornGym2F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header BlackthornDragonSpeechHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header BlackthornDodrioTradeHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header BlackthornMart, TILESET_MART, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header BlackthornPokeCenter1F, TILESET_POKECENTER, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header MoveDeletersHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header Route45, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9
+ map_header Route46, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header BlackthornCity, TILESET_JOHTO_OUTSIDE_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4
MapGroup6:
- map_header CinnabarPokeCenter1F, $7, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header CinnabarPokeCenter2FBeta, $7, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header Route19FuchsiaGate, $8, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
- map_header SeafoamGym, $18, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header Route19, $3, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route20, $3, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
- map_header Route21, $3, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
- map_header CinnabarIsland, $3, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2
+ map_header CinnabarPokeCenter1F, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header CinnabarPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header Route19FuchsiaGate, TILESET_GATE, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header SeafoamGym, TILESET_CAVE, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header Route19, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route20, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
+ map_header Route21, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2
+ map_header CinnabarIsland, TILESET_KANTO_OUTSIDE, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2
MapGroup7:
- map_header CeruleanGymBadgeSpeechHouse, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header CeruleanPoliceStation, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header CeruleanTradeSpeechHouse, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header CeruleanPokeCenter1F, $7, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header CeruleanPokeCenter2FBeta, $7, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header CeruleanGym, $9, INDOOR, CERULEAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 0
- map_header CeruleanMart, $c, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header Route10PokeCenter1F, $7, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header Route10PokeCenter2FBeta, $7, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header PowerPlant, $b, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header BillsHouse, $5, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header Route4, $3, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
- map_header Route9, $3, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header Route10North, $3, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header Route24, $3, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header Route25, $3, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header CeruleanCity, $3, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0
+ map_header CeruleanGymBadgeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header CeruleanPoliceStation, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header CeruleanTradeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header CeruleanPokeCenter1F, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header CeruleanPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header CeruleanGym, TILESET_PORT, INDOOR, CERULEAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 0
+ map_header CeruleanMart, TILESET_MART, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route10PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header Route10PokeCenter2FBeta, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header PowerPlant, TILESET_POWER_PLANT, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header BillsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route4, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
+ map_header Route9, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header Route10North, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header Route24, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header Route25, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header CeruleanCity, TILESET_KANTO_OUTSIDE, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0
MapGroup8:
- map_header AzaleaPokeCenter1F, $7, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header CharcoalKiln, $5, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header AzaleaMart, $c, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header KurtsHouse, $10, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header AzaleaGym, $f, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header Route33, $2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1
- map_header AzaleaTown, $2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1
+ map_header AzaleaPokeCenter1F, TILESET_POKECENTER, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header CharcoalKiln, TILESET_HOUSE_1, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header AzaleaMart, TILESET_MART, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header KurtsHouse, TILESET_KURT_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header AzaleaGym, TILESET_GYM_1, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header Route33, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1
+ map_header AzaleaTown, TILESET_JOHTO_OUTSIDE_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1
MapGroup9:
- map_header LakeofRageHiddenPowerHouse, $5, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
- map_header LakeofRageMagikarpHouse, $5, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
- map_header Route43MahoganyGate, $8, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
- map_header Route43Gate, $8, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
- map_header Route43, $1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
- map_header LakeofRage, $1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8
+ map_header LakeofRageHiddenPowerHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
+ map_header LakeofRageMagikarpHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
+ map_header Route43MahoganyGate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
+ map_header Route43Gate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1
+ map_header Route43, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4
+ map_header LakeofRage, TILESET_JOHTO_OUTSIDE_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8
MapGroup10:
- map_header Route32, $1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11
- map_header Route35, $1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4
- map_header Route36, $1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header Route37, $1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header VioletCity, $1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4
- map_header VioletMart, $c, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header VioletGym, $f, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header EarlsPokemonAcademy, $a, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header VioletNicknameSpeechHouse, $10, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header VioletPokeCenter1F, $7, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header VioletOnixTradeHouse, $10, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header Route32RuinsofAlphGate, $8, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1
- map_header Route32PokeCenter1F, $7, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header Route35Goldenrodgate, $8, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
- map_header Route35NationalParkgate, $8, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header Route36RuinsofAlphgate, $8, GATE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
- map_header Route36NationalParkgate, $8, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header Route32, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11
+ map_header Route35, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4
+ map_header Route36, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header Route37, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header VioletCity, TILESET_JOHTO_OUTSIDE_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4
+ map_header VioletMart, TILESET_MART, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header VioletGym, TILESET_GYM_1, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header VioletNicknameSpeechHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header VioletPokeCenter1F, TILESET_POKECENTER, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header VioletOnixTradeHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header Route32RuinsofAlphGate, TILESET_GATE, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1
+ map_header Route32PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header Route35Goldenrodgate, TILESET_GATE, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
+ map_header Route35NationalParkgate, TILESET_GATE, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header Route36RuinsofAlphgate, TILESET_GATE, GATE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
+ map_header Route36NationalParkgate, TILESET_GATE, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
MapGroup11:
- map_header Route34, $2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header GoldenrodCity, $2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1
- map_header GoldenrodGym, $f, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header GoldenrodBikeShop, $12, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodHappinessRater, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodBillsHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodMagnetTrainStation, $11, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodFlowerShop, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodPPSpeechHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodNameRatersHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStore1F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStore2F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStore3F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStore4F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStore5F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStore6F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStoreElevator, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodDeptStoreRoof, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
- map_header GoldenrodGameCorner, $e, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1
- map_header GoldenrodPokeCenter1F, $7, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header GoldenrodPokeComCenter2FMobile, $15, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header IlexForestAzaleaGate, $8, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
- map_header Route34IlexForestGate, $8, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
- map_header DayCare, $5, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header Route34, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header GoldenrodCity, TILESET_JOHTO_OUTSIDE_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1
+ map_header GoldenrodGym, TILESET_GYM_1, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header GoldenrodBikeShop, TILESET_OLIVINE_GYM, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodHappinessRater, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodBillsHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodFlowerShop, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodPPSpeechHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodNameRatersHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStore1F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStore2F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStore3F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStore4F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStore5F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStore6F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStoreElevator, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodDeptStoreRoof, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1
+ map_header GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1
+ map_header GoldenrodPokeCenter1F, TILESET_POKECENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header GoldenrodPokeComCenter2FMobile, TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header IlexForestAzaleaGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
+ map_header Route34IlexForestGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
+ map_header DayCare, TILESET_HOUSE_1, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
MapGroup12:
- map_header Route6, $3, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
- map_header Route11, $3, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
- map_header VermilionCity, $3, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
- map_header VermilionHouseFishingSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header VermilionPokeCenter1F, $7, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header VermilionPokeCenter2FBeta, $7, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header PokemonFanClub, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header VermilionMagnetTrainSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header VermilionMart, $c, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header VermilionHouseDiglettsCaveSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header VermilionGym, $e, INDOOR, VERMILION_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header Route6SaffronGate, $8, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
- map_header Route6UndergroundEntrance, $8, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header Route6, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
+ map_header Route11, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
+ map_header VermilionCity, TILESET_KANTO_OUTSIDE, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
+ map_header VermilionHouseFishingSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
+ map_header VermilionPokeCenter1F, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header VermilionPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
+ map_header PokemonFanClub, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
+ map_header VermilionMagnetTrainSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
+ map_header VermilionMart, TILESET_MART, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
+ map_header VermilionHouseDiglettsCaveSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
+ map_header VermilionGym, TILESET_GAME_CORNER, INDOOR, VERMILION_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header Route6SaffronGate, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header Route6UndergroundEntrance, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
MapGroup13:
- map_header Route1, $3, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1
- map_header PalletTown, $3, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2
- map_header RedsHouse1F, $6, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
- map_header RedsHouse2F, $6, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
- map_header BluesHouse, $5, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
- map_header OaksLab, $a, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, 0, PALETTE_DAY, 1
+ map_header Route1, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1
+ map_header PalletTown, TILESET_KANTO_OUTSIDE, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2
+ map_header RedsHouse1F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
+ map_header RedsHouse2F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
+ map_header BluesHouse, TILESET_HOUSE_1, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1
+ map_header OaksLab, TILESET_LAB, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, 0, PALETTE_DAY, 1
MapGroup14:
- map_header Route3, $3, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header PewterCity, $3, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
- map_header PewterNidoranSpeechHouse, $5, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header PewterGym, $17, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header PewterMart, $c, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header PewterPokeCenter1F, $7, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header PewterPokeCEnter2FBeta, $7, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header PewterSnoozeSpeechHouse, $5, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route3, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header PewterCity, TILESET_KANTO_OUTSIDE, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
+ map_header PewterNidoranSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header PewterGym, TILESET_SPROUT_TOWER, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header PewterMart, TILESET_MART, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header PewterPokeCenter1F, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header PewterPokeCEnter2FBeta, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header PewterSnoozeSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
MapGroup15:
- map_header OlivinePort, $9, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 2
- map_header VermilionPort, $9, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
- map_header FastShip1F, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
- map_header FastShipCabins_NNW_NNE_NE, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
- map_header FastShipCabins_SW_SSW_NW, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
- map_header FastShipCabins_SE_SSE_CaptainsCabin, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
- map_header FastShipB1F, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
- map_header OlivinePortPassage, $1c, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
- map_header VermilionPortPassage, $1c, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
- map_header MountMoonSquare, $3, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1
- map_header MountMoonGiftShop, $10, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header TinTowerRoof, $17, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, 1
+ map_header OlivinePort, TILESET_PORT, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 2
+ map_header VermilionPort, TILESET_PORT, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2
+ map_header FastShip1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
+ map_header FastShipCabins_NNW_NNE_NE, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
+ map_header FastShipCabins_SW_SSW_NW, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
+ map_header FastShipCabins_SE_SSE_CaptainsCabin, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
+ map_header FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1
+ map_header OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1
+ map_header VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1
+ map_header MountMoonSquare, TILESET_KANTO_OUTSIDE, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1
+ map_header MountMoonGiftShop, TILESET_KURT_HOUSE, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header TinTowerRoof, TILESET_SPROUT_TOWER, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, 1
MapGroup16:
- map_header Route23, $3, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1
- map_header IndigoPlateauPokeCenter1F, $7, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1
- map_header WillsRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
- map_header KogasRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
- map_header BrunosRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
- map_header KarensRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
- map_header LancesRoom, $12, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
- map_header HallOfFame, $1d, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 1, PALETTE_DAY, 1
+ map_header Route23, TILESET_KANTO_OUTSIDE, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1
+ map_header IndigoPlateauPokeCenter1F, TILESET_POKECENTER, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1
+ map_header WillsRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
+ map_header KogasRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
+ map_header BrunosRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
+ map_header KarensRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
+ map_header LancesRoom, TILESET_OLIVINE_GYM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1
+ map_header HallOfFame, TILESET_ICE_PATH, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 1, PALETTE_DAY, 1
MapGroup17:
- map_header Route13, $3, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
- map_header Route14, $3, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
- map_header Route15, $3, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
- map_header Route18, $3, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header FuchsiaCity, $3, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8
- map_header FuchsiaMart, $c, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header SafariZoneMainOffice, $e, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header FuchsiaGym, $a, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header FuchsiaBillSpeechHouse, $5, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header FuchsiaPokeCenter1F, $7, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header FuchsiaPokeCenter2FBeta, $7, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header SafariZoneWardensHome, $5, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header Route15FuchsiaGate, $8, GATE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_DAY, 1
+ map_header Route13, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
+ map_header Route14, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
+ map_header Route15, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1
+ map_header Route18, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header FuchsiaCity, TILESET_KANTO_OUTSIDE, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8
+ map_header FuchsiaMart, TILESET_MART, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header FuchsiaGym, TILESET_LAB, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header FuchsiaBillSpeechHouse, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header FuchsiaPokeCenter1F, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header FuchsiaPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header SafariZoneWardensHome, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header Route15FuchsiaGate, TILESET_GATE, GATE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_DAY, 1
MapGroup18:
- map_header Route8, $3, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route12, $3, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
- map_header Route10South, $3, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
- map_header LavenderTown, $3, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1
- map_header LavenderPokeCenter1F, $7, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header LavenderPokeCenter2FBeta, $7, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header MrFujisHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
- map_header LavenderTownSpeechHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
- map_header LavenderNameRater, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
- map_header LavenderMart, $c, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
- map_header SoulHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
- map_header LavRadioTower1F, $1b, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
- map_header Route8SaffronGate, $8, GATE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
- map_header Route12SuperRodHouse, $5, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route8, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route12, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13
+ map_header Route10South, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3
+ map_header LavenderTown, TILESET_KANTO_OUTSIDE, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1
+ map_header LavenderPokeCenter1F, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header LavenderPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header MrFujisHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
+ map_header LavenderTownSpeechHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
+ map_header LavenderNameRater, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
+ map_header LavenderMart, TILESET_MART, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
+ map_header SoulHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
+ map_header LavRadioTower1F, TILESET_RADIO_TOWER, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1
+ map_header Route8SaffronGate, TILESET_GATE, GATE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header Route12SuperRodHouse, TILESET_HOUSE_1, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
MapGroup19:
- map_header Route28, $3, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
- map_header SilverCaveOutside, $3, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
- map_header SilverCavePokeCenter1F, $7, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header Route28FamousSpeechHouse, $5, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header Route28, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
+ map_header SilverCaveOutside, TILESET_KANTO_OUTSIDE, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4
+ map_header SilverCavePokeCenter1F, TILESET_POKECENTER, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header Route28FamousSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
MapGroup20:
- map_header PokeCenter2F, $7, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 1, PALETTE_DAY, 1
- map_header TradeCenter, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
- map_header Colosseum, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
- map_header TimeCapsule, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
- map_header MobileTradeRoomMobile, $d, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
- map_header MobileBattleRoom, $d, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
+ map_header PokeCenter2F, TILESET_POKECENTER, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 1, PALETTE_DAY, 1
+ map_header TradeCenter, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
+ map_header Colosseum, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
+ map_header TimeCapsule, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
+ map_header MobileTradeRoomMobile, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
+ map_header MobileBattleRoom, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1
MapGroup21:
- map_header Route7, $3, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route16, $3, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header Route17, $3, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
- map_header CeladonCity, $3, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0
- map_header CeladonDeptStore1F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonDeptStore2F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonDeptStore3F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonDeptStore4F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonDeptStore5F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonDeptStore6F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonDeptStoreElevator, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonMansion1F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonMansion2F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonMansion3F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonMansionRoof, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonMansionRoofHouse, $5, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonPokeCenter1F, $7, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header CeladonPokeCenter2FBeta, $7, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonGameCorner, $e, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1
- map_header CeladonGameCornerPrizeRoom, $e, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header CeladonGym, $11, INDOOR, CELADON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header CeladonCafe, $e, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header Route16FuchsiaSpeechHouse, $5, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
- map_header Route16Gate, $8, GATE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
- map_header Route7SaffronGate, $8, GATE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
- map_header Route1718Gate, $8, GATE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header Route7, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route16, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header Route17, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0
+ map_header CeladonCity, TILESET_KANTO_OUTSIDE, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0
+ map_header CeladonDeptStore1F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonDeptStore2F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonDeptStore3F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonDeptStore4F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonDeptStore5F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonDeptStore6F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonDeptStoreElevator, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonMansion1F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonMansion2F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonMansion3F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonMansionRoof, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonMansionRoofHouse, TILESET_HOUSE_1, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonPokeCenter1F, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header CeladonPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonGameCorner, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1
+ map_header CeladonGameCornerPrizeRoom, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header CeladonGym, TILESET_TRAIN_STATION, INDOOR, CELADON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header CeladonCafe, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header Route16FuchsiaSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1
+ map_header Route16Gate, TILESET_GATE, GATE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header Route7SaffronGate, TILESET_GATE, GATE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header Route1718Gate, TILESET_GATE, GATE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
MapGroup22:
- map_header Route40, $1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
- map_header Route41, $1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2
- map_header CianwoodCity, $1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1
- map_header ManiasHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header CianwoodGym, $17, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header CianwoodPokeCenter1F, $7, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header CianwoodPharmacy, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header CianwoodCityPhotoStudio, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header CianwoodLugiaSpeechHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header PokeSeersHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
- map_header BattleTower1F, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 1, PALETTE_DAY, 1
- map_header BattleTowerBattleRoom, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1
- map_header BattleTowerElevator, $16, INDOOR, BATTLE_TOWER, MUSIC_NONE, 1, PALETTE_DAY, 1
- map_header BattleTowerHallway, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1
- map_header Route40BattleTowerGate, $8, GATE, BATTLE_TOWER, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
- map_header BattleTowerOutside, $4, ROUTE, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, PALETTE_AUTO, 1
+ map_header Route40, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1
+ map_header Route41, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2
+ map_header CianwoodCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1
+ map_header ManiasHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header CianwoodGym, TILESET_SPROUT_TOWER, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header CianwoodPokeCenter1F, TILESET_POKECENTER, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header CianwoodPharmacy, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header CianwoodCityPhotoStudio, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header CianwoodLugiaSpeechHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header PokeSeersHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1
+ map_header BattleTower1F, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 1, PALETTE_DAY, 1
+ map_header BattleTowerBattleRoom, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1
+ map_header BattleTowerElevator, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_NONE, 1, PALETTE_DAY, 1
+ map_header BattleTowerHallway, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1
+ map_header Route40BattleTowerGate, TILESET_GATE, GATE, BATTLE_TOWER, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1
+ map_header BattleTowerOutside, TILESET_BATTLE_TOWER_OUTSIDE, ROUTE, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, PALETTE_AUTO, 1
MapGroup23:
- map_header Route2, $3, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1
- map_header Route22, $3, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
- map_header ViridianCity, $3, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4
- map_header ViridianGym, $11, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header ViridianNicknameSpeechHouse, $5, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header TrainerHouse1F, $5, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header TrainerHouseB1F, $b, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header ViridianMart, $c, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header ViridianPokeCenter1F, $7, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header ViridianPokeCenter2FBeta, $7, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header Route2NuggetSpeechHouse, $5, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header Route2Gate, $8, GATE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_DAY, 1
- map_header VictoryRoadGate, $8, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1
+ map_header Route2, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1
+ map_header Route22, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4
+ map_header ViridianCity, TILESET_KANTO_OUTSIDE, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4
+ map_header ViridianGym, TILESET_TRAIN_STATION, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header ViridianNicknameSpeechHouse, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header TrainerHouse1F, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header TrainerHouseB1F, TILESET_POWER_PLANT, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header ViridianMart, TILESET_MART, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header ViridianPokeCenter1F, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header ViridianPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route2NuggetSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route2Gate, TILESET_GATE, GATE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_DAY, 1
+ map_header VictoryRoadGate, TILESET_GATE, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1
MapGroup24:
- map_header Route26, $1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
- map_header Route27, $1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
- map_header Route29, $1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1
- map_header NewBarkTown, $1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2
- map_header ElmsLab, $a, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, 1
- map_header KrissHouse1F, $6, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
- map_header KrissHouse2F, $14, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
- map_header KrissNeighborsHouse, $5, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
- map_header ElmsHouse, $6, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
- map_header Route26HealSpeechHouse, $5, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header Route26DayofWeekSiblingsHouse, $5, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header Route27SandstormHouse, $5, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
- map_header Route2946Gate, $8, GATE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_DAY, 1
+ map_header Route26, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
+ map_header Route27, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2
+ map_header Route29, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1
+ map_header NewBarkTown, TILESET_JOHTO_OUTSIDE_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2
+ map_header ElmsLab, TILESET_LAB, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, 1
+ map_header KrissHouse1F, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
+ map_header KrissHouse2F, TILESET_KRISS_HOUSE_2F, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
+ map_header KrissNeighborsHouse, TILESET_HOUSE_1, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
+ map_header ElmsHouse, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1
+ map_header Route26HealSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header Route26DayofWeekSiblingsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header Route27SandstormHouse, TILESET_HOUSE_1, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1
+ map_header Route2946Gate, TILESET_GATE, GATE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_DAY, 1
MapGroup25:
- map_header Route5, $3, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
- map_header SaffronCity, $3, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
- map_header FightingDojo, $11, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header SaffronGym, $1c, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
- map_header SaffronMart, $c, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header SaffronPokeCenter1F, $7, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header SaffronPokeCenter2FBeta, $7, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header MrPsychicsHouse, $5, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header SaffronTrainStation, $11, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header SilphCo1F, $b, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header CopycatsHouse1F, $6, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header CopycatsHouse2F, $6, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header Route5UndergroundEntrance, $8, GATE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
- map_header Route5SaffronCityGate, $8, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
- map_header Route5CleanseTagSpeechHouse, $5, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route5, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1
+ map_header SaffronCity, TILESET_KANTO_OUTSIDE, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1
+ map_header FightingDojo, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header SaffronGym, TILESET_UNDERGROUND, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1
+ map_header SaffronMart, TILESET_MART, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header SaffronPokeCenter1F, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header SaffronPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header MrPsychicsHouse, TILESET_HOUSE_1, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header SaffronTrainStation, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header SilphCo1F, TILESET_POWER_PLANT, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header CopycatsHouse1F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header CopycatsHouse2F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route5UndergroundEntrance, TILESET_GATE, GATE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1
+ map_header Route5SaffronCityGate, TILESET_GATE, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
+ map_header Route5CleanseTagSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1
MapGroup26:
- map_header Route30, $1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
- map_header Route31, $1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
- map_header CherrygroveCity, $1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
- map_header CherrygroveMart, $c, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
- map_header CherrygrovePokeCenter1F, $7, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
- map_header CherrygroveGymSpeechHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
- map_header GuideGentsHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
- map_header CherrygroveEvolutionSpeechHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
- map_header Route30BerrySpeechHouse, $5, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
- map_header MrPokemonsHouse, $b, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
- map_header Route31VioletGate, $8, GATE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1
+ map_header Route30, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
+ map_header Route31, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4
+ map_header CherrygroveCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1
+ map_header CherrygroveMart, TILESET_MART, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
+ map_header CherrygrovePokeCenter1F, TILESET_POKECENTER, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1
+ map_header CherrygroveGymSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
+ map_header GuideGentsHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
+ map_header CherrygroveEvolutionSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
+ map_header Route30BerrySpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
+ map_header MrPokemonsHouse, TILESET_POWER_PLANT, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1
+ map_header Route31VioletGate, TILESET_GATE, GATE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1
diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm
new file mode 100755
index 000000000..68abcf1b9
--- /dev/null
+++ b/misc/battle_tower_47.asm
@@ -0,0 +1,4871 @@
+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
+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
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld h, a
+ ld l, c
+ pop af
+ ld c, a
+ ld b, 0
+rept 2
+ add hl, bc
+endr
+ ld a, [hli]
+ ld c, a
+ ld a, [hl]
+ ld l, c
+ ld h, a
+ bccoord 1, 14
+ pop af
+ ld [rSVBK], a
+ call PlaceWholeStringInBoxAtOnce
+ ret
+; 11c05d
+
+Function11c05d: ; 11c05d
+ ld a, e
+ or d
+ jr z, .asm_11c071
+ ld a, e
+ and d
+ cp $ff
+ jr z, .asm_11c071
+ push hl
+ call Function11c156
+ pop hl
+ call PlaceString
+ and a
+ ret
+
+.asm_11c071
+ ld c, l
+ ld b, h
+ scf
+ ret
+; 11c075
+
+Function11c075: ; 11c075
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call Function11c08f
+ ret
+; 11c082
+
+Function11c082: ; 11c082
+ push de
+ ld a, c
+ call Function11c254
+ pop de
+ ld bc, wcd36
+ call Function11c0c6
+ ret
+; 11c08f
+
+Function11c08f: ; 11c08f
+ ld l, e
+ ld h, d
+ push hl
+ ld a, $3
+.asm_11c094
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .asm_11c0a2
+ inc bc
+
+.asm_11c0a2
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c094
+ pop hl
+ ld de, $0028
+ add hl, de
+ ld a, $3
+.asm_11c0b0
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ push bc
+ call Function11c05d
+ jr c, .asm_11c0be
+ inc bc
+
+.asm_11c0be
+ ld l, c
+ ld h, b
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c0b0
+ ret
+; 11c0c6
+
+
+Function11c0c6: ; 11c0c6
+ ld a, [wJumptableIndex]
+ ld l, a
+ ld a, [wcf64]
+ ld h, a
+ push hl
+ ld hl, $c608 + 16
+ ld a, $0
+ ld [hli], a
+ push de
+ xor a
+ ld [wJumptableIndex], a
+ ld a, $12
+ ld [wcf64], a
+ ld a, $6
+.asm_11c0e1
+ push af
+ ld a, [bc]
+ ld e, a
+ inc bc
+ ld a, [bc]
+ ld d, a
+ inc bc
+ or e
+ jr z, .asm_11c133
+ push hl
+ push bc
+ call Function11c156
+ call Function11c14a
+ ld e, c
+ pop bc
+ pop hl
+ ld a, e
+ or a
+ jr z, .asm_11c133
+.asm_11c0fa
+ ld a, [wcf64]
+ cp $12
+ jr z, .asm_11c102
+ inc e
+
+.asm_11c102
+ cp e
+ jr nc, .asm_11c11c
+ ld a, [wJumptableIndex]
+ inc a
+ ld [wJumptableIndex], a
+ ld [hl], $4e
+ rra
+ jr c, .asm_11c113
+ ld [hl], $55
+
+.asm_11c113
+ inc hl
+ ld a, $12
+ ld [wcf64], a
+ dec e
+ jr .asm_11c0fa
+
+.asm_11c11c
+ cp $12
+ jr z, .asm_11c123
+ ld [hl], $7f
+ inc hl
+
+.asm_11c123
+ sub e
+ ld [wcf64], a
+ ld de, $c608
+.asm_11c12a
+ ld a, [de]
+ cp $50
+ jr z, .asm_11c133
+ inc de
+ ld [hli], a
+ jr .asm_11c12a
+
+.asm_11c133
+ pop af
+ dec a
+ jr nz, .asm_11c0e1
+ ld [hl], $57
+ pop bc
+ ld hl, $c608 + 16
+ call PlaceWholeStringInBoxAtOnce
+ pop hl
+ ld a, l
+ ld [wJumptableIndex], a
+ ld a, h
+ ld [wcf64], a
+ ret
+; 11c14a
+
+Function11c14a: ; 11c14a
+ ld c, $0
+ ld hl, $c608
+.asm_11c14f
+ ld a, [hli]
+ cp $50
+ ret z
+ inc c
+ jr .asm_11c14f
+; 11c156
+
+Function11c156: ; 11c156
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ ld a, $50
+ ld hl, $c608
+ ld bc, $000b
+ call ByteFill
+ ld a, d
+ and a
+ jr z, .asm_11c19c
+ ld hl, Unknown_11daac
+ 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, $0005
+.asm_11c18f
+ ld de, $c608
+ call CopyBytes
+ ld de, $c608
+ pop af
+ ld [rSVBK], a
+ ret
+
+.asm_11c19c
+ ld a, e
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+ ld bc, $000a
+ jr .asm_11c18f
+; 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 Function11c1ca
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ call Function11c283
+ pop af
+ ld [rSVBK], a
+ ret
+; 11c1ca
+
+Function11c1ca: ; 11c1ca
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ld [wcd23], a
+ ld [BGMapBuffer], a
+ ld [wcd21], a
+ ld [CreditsTimer], a
+ ld [wcd35], a
+ ld [wcd2b], a
+ ld a, $ff
+ ld [wcd24], a
+ ld a, [MenuSelection2]
+ 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 Function104061
+ callba Function8cf53
+ callba LoadPokemonData
+ callba Function40c30
+ 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 Function11d4aa
+ call Function11d3ba
+ ret
+; 11c254
+
+Function11c254: ; 11c254
+ push af
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a007
+ pop af
+ sla a
+ sla a
+ ld c, a
+ sla a
+ add c
+ ld c, a
+ ld b, $0
+ add hl, bc
+ ld de, wcd36
+ ld bc, $000c
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 11c277
+
+
+Function11c277: ; 11c277 (47:4277)
+ ld a, $7f
+ hlcoord 0, 6
+ ld bc, $f0
+ call ByteFill
+ ret
+
+Function11c283: ; 11c283
+.asm_11c283
+ call JoyTextDelay
+ ld a, [hJoyPressed]
+ ld [hJoypadPressed], a
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_11c2a2
+ call Function11c2ac
+ callba Function8cf69
+ callba Function104061
+ jr .asm_11c283
+
+.asm_11c2a2
+ callba Function8cf53
+ call ClearSprites
+ ret
+; 11c2ac
+
+Function11c2ac: ; 11c2ac
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11c2bb
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11c2bb
+
+
+Jumptable_11c2bb: ; 11c2bb (47:42bb)
+ dw Function11c2e9
+ dw Function11c346
+ dw Function11c35f
+ dw Function11c373
+ dw Function11c3c2
+ dw Function11c3ed
+ dw Function11c52c
+ dw Function11c53d
+ dw Function11c658
+ dw Function11c675
+ dw Function11c9bd
+ dw Function11c9c3
+ dw Function11caad
+ dw Function11cab3
+ dw Function11cb52
+ dw Function11cb66
+ dw Function11cbf5
+ dw Function11ccef
+ dw Function11cd04
+ dw Function11cd20
+ dw Function11cd54
+ dw Function11ce0b
+ dw Function11ce2b
+
+
+Function11c2e9: ; 11c2e9 (47:42e9)
+ lb de, $1a, $0d
+ ld a, $1d
+ call Function3b2a
+ lb de, $42, $0d
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ add hl, bc
+ ld a, $1
+ ld [hl], a
+ lb de, $4a, $10
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ add hl, bc
+ ld a, $3
+ ld [hl], a
+ lb de, $50, $80
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ add hl, bc
+ ld a, $4
+ ld [hl], a
+ lb de, $50, $20
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ add hl, bc
+ ld a, $5
+ ld [hl], a
+ lb de, $50, $10
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ add hl, bc
+ ld a, $2
+ ld [hl], a
+ ld hl, wcd23
+ set 1, [hl]
+ set 2, [hl]
+ jp Function11cfb5
+
+Function11c346: ; 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
+rept 2
+ inc [hl]
+endr
+rept 2
+ dec hl
+endr
+ dec [hl]
+ push af
+ ld de, wcd2d
+ call Function11cfce
+ pop af
+ ret nz
+ jp Function11cfb5
+
+Function11c373: ; 11c373 (47:4373)
+ ld hl, wcd30
+rept 2
+ inc [hl]
+endr
+rept 2
+ dec hl
+endr
+ 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 Function11c277
+ 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, BGMapBuffer ; wcd20 (aliases: CreditsPos)
+ 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 [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+ ret
+.asm_11c42c
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ 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 [CreditsTimer], 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 Function104061
+ ret
+; 11c4db (47:44db)
+
+String_11c4db: ; 11c4db
+ db "6つのことば", $1f, "くみあわせます"
+ next "かえたいところ", $1f, "えらぶと でてくる"
+ next "ことばのグループから いれかえたい"
+ next "たんご", $1f, "えらんでください"
+ db "@"
+; 11c51b
+
+String_11c51b: ; 11c51b
+ db "ぜんぶけす やめる けってい@"
+; 11c52c
+
+Function11c52c: ; 11c52c (47:452c)
+ call Function11c277
+ call Function11c5f0
+ 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 $f
+ jr c, .asm_11c59d
+ sub $f
+ jr z, .asm_11c5ab
+ dec a
+ jr z, .asm_11c599
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+
+.b
+ ld a, $4
+ jr .asm_11c59f
+
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $15
+ jr .asm_11c59f
+
+.asm_11c599
+ ld a, $13
+ jr .asm_11c59f
+
+.asm_11c59d
+ ld a, $8
+
+.asm_11c59f
+ ld hl, wcd24
+ set 1, [hl]
+ ld [wJumptableIndex], a
+ call PlayClickSFX
+ ret
+
+.asm_11c5ab
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.up
+ ld a, [hl]
+ cp $3
+ ret c
+ sub $3
+ jr .asm_11c5ee
+
+.down
+ ld a, [hl]
+ cp $f
+ ret nc
+ add $3
+ jr .asm_11c5ee
+
+.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 .asm_11c5ee
+
+.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
+
+.asm_11c5ee
+ ld [hl], a
+ ret
+; 11c5f0
+
+Function11c5f0: ; 11c5f0 (47:45f0)
+ ld de, Strings_11da52
+ ld bc, Unknown_11c63a
+ ld a, $f
+.asm_11c5f8
+ push af
+ ld a, [bc]
+ inc bc
+ ld l, a
+ ld a, [bc]
+ inc bc
+ ld h, a
+ push bc
+ call PlaceString
+.asm_11c603
+ inc de
+ ld a, [de]
+ cp $50
+ jr z, .asm_11c603
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_11c5f8
+ hlcoord 1, 17
+ ld de, String_11c62a
+ call PlaceString
+ ret
+
+Function11c618: ; 11c618 (47:4618)
+ ld a, $2
+ hlcoord 0, 6, AttrMap
+ ld bc, $c8
+ call ByteFill
+ callba Function104061
+ ret
+; 11c62a (47:462a)
+
+String_11c62a: ; 11c62a
+ db "けす モード やめる@"
+; 11c63a
+
+Unknown_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 Function11c277
+ 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, wcd25
+ 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, wcd25
+ 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 [wcd25], 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 [wcd25], a
+ ld [wcd26], a
+ ld [wcd27], a
+ ld a, [wcd2b]
+ and a
+ jr nz, .asm_11c7ab
+ ld a, [wcd21]
+ and a
+ jr z, .asm_11c799
+ dec a
+ sla a
+ ld hl, Unknown_11f220
+ ld c, a
+ ld b, 0
+ add hl, bc
+ ld a, [hli]
+ ld [wcd28], a
+ ld a, [hl]
+.asm_11c795
+ ld [wcd29], a
+ ret
+.asm_11c799
+ ld a, [wc7d2]
+ ld [wcd28], a
+.asm_11c79f
+ ld c, $c
+ call SimpleDivide
+ and a
+ jr nz, .asm_11c7a8
+ dec b
+.asm_11c7a8
+ ld a, b
+ jr .asm_11c795
+.asm_11c7ab
+ ld hl, $c68a + 30
+ ld a, [CreditsTimer]
+ ld c, a
+ ld b, 0
+rept 2
+ add hl, bc
+endr
+ ld a, [hl]
+ ld [wcd28], a
+ jr .asm_11c79f
+
+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, wd100
+ 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
+rept 2
+ add hl, de
+endr
+ 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
+rept 2
+ add hl, de
+endr
+ 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, String_11c8f0
+ 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, String_11c8f3
+ 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)
+
+Function11c8c7: ; 11c8c7
+ inc a
+ push af
+ and $f
+ ld [hDividend], a
+ pop af
+ and $f0
+ swap a
+ ld [hQuotient], a
+ xor a
+ ld [$ffb5], a
+ push hl
+ callba Function11a80c
+ pop hl
+ ld a, [wcd63]
+ add $f6
+ ld [hli], a
+ ld a, [wcd62]
+ add $f6
+ ld [hli], a
+ ret
+; 11c8ec
+
+String_11c8ec: ; 11c8ec
+ db "ぺージ@"
+; 11c8f0
+
+String_11c8f0: ; 11c8f0
+ db "まえ@"
+; 11c8f3
+
+String_11c8f3: ; 11c8f3
+ db "つぎ@"
+; 11c8f6
+
+Function11c8f6: ; 11c8f6 (47:48f6)
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ 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, [wcd25]
+ add [hl]
+.asm_11c911
+ ld e, a
+.asm_11c912
+ pop hl
+ push de
+ call Function11c05d
+ pop de
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ ld c, a
+ ld b, $0
+ ld hl, wcd36
+rept 2
+ add hl, bc
+endr
+ ld [hl], e
+ inc hl
+ ld [hl], d
+ ret
+.asm_11c927
+ ld hl, wcd26
+ ld a, [wcd25]
+ add [hl]
+ ld c, a
+ ld b, $0
+ ld hl, wd100
+ add hl, bc
+ ld a, [hl]
+ jr .asm_11c911
+.asm_11c938
+ ld hl, $c648
+ ld a, [wcd22]
+ ld e, a
+ ld d, $0
+rept 2
+ add hl, de
+endr
+ 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
+rept 2
+ add hl, de
+endr
+ ld a, [wcd25]
+ ld e, a
+rept 2
+ add hl, de
+endr
+ 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 Function104061
+ 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 [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+.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 Function104061
+ ret
+; 11ca38 (47:4a38)
+
+String_11ca38: ; 11ca38
+ db "とうろくちゅう", $25, "あいさつ", $1f, "ぜんぶ"
+ next "けしても よろしいですか?@"
+; 11ca57
+
+String_11ca57: ; 11ca57
+ db "はい"
+ next "いいえ@"
+; 11ca5e
+
+Function11ca5e: ; 11ca5e (47:4a5e)
+ xor a
+.asm_11ca5f
+ push af
+ call Function11ca6a
+ pop af
+ inc a
+ cp $6
+ jr nz, .asm_11ca5f
+ ret
+
+Function11ca6a: ; 11ca6a (47:4a6a)
+ ld hl, wcd36
+ ld c, a
+ ld b, $0
+rept 2
+ add hl, bc
+endr
+ 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, "とうろく", $1f, "ちゅうし"
+ next "しますか?@"
+; 11cb31
+
+String_11cb31: ; 11cb31
+ db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
+ next "されません", $4a, "よろしい ですか?@"
+; 11cb52
+
+Function11cb52: ; 11cb52 (47:4b52)
+ ld hl, Unknown_11cc01
+ ld a, [MenuSelection2]
+.asm_11cb58
+ dec a
+ jr z, .asm_11cb5f
+rept 2
+ inc hl
+endr
+ 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, [MenuSelection2]
+ 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, [MenuSelection2]
+.asm_11cbba
+ dec a
+ jr z, .asm_11cbc1
+rept 2
+ inc hl
+endr
+ 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 "あいさつ", $1f, "とうろくした!@"
+
+String_11cc9d: ; 11cc9d
+ db "たいせん ", $4a, "はじまるとき の"
+ next "あいさつ", $1f, "とうろくした!@"
+
+String_11ccb9: ; 11ccb9
+ db "たいせん ", $1d, "かったとき の"
+ next "あいさつ", $1f, "とうろくした!@"
+
+String_11ccd4: ; 11ccd4
+ db "たいせん ", $1d, "まけたとき の"
+ next "あいさつ", $1f, "とうろくした!@"
+; 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 "なにか ことば", $1f, "いれてください@"
+; 11cd20
+
+Function11cd20: ; 11cd20 (47:4d20)
+ call Function11c277
+ 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, $78
+ call ByteFill
+ ld a, $7
+ hlcoord 0, 12, AttrMap
+ ld bc, $50
+ call ByteFill
+ callba Function104061
+ ret
+; 11cdc7 (47:4dc7)
+
+String_11cdc7: ; 11cdc7
+ db "ことば", $1f, "しゅるいべつに"
+ next "えらべます@"
+; 11cdd9
+
+String_11cdd9: ; 11cdd9
+ db "ことば", $1f, "アイウエォ の"
+ next "じゅんばんで ひょうじ します@"
+; 11cdf5
+
+String_11cdf5: ; 11cdf5
+ db "しゅるいべつ モード"
+ next "アイウエォ モード@"
+; 11ce0b
+
+Function11ce0b: ; 11ce0b (47:4e0b)
+ call Function11c277
+ hlcoord 1, 7
+ ld de, String_11cf79
+ call PlaceString
+ hlcoord 1, 17
+ ld de, String_11c62a
+ call PlaceString
+ call Function11c618
+ ld hl, wcd24
+ res 2, [hl]
+ call Function11cfb5
+
+Function11ce2b: ; 11ce2b (47:4e2b)
+ ld a, [CreditsTimer]
+ 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, [CreditsTimer]
+ cp $2d
+ jr c, .asm_11ce92
+ sub $2d
+ jr z, .asm_11cea4
+ dec a
+ jr z, .asm_11ce96
+ jr .b
+
+.start
+ ld hl, wcd24
+ set 0, [hl]
+ ld a, $8
+ ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
+.b
+ ld a, $4
+ jr .asm_11ce98
+.select
+ ld a, [wcd2b]
+ xor $1
+ ld [wcd2b], a
+ ld a, $6
+ jr .asm_11ce98
+
+.asm_11ce92
+ ld a, $8
+ jr .asm_11ce98
+
+.asm_11ce96
+ ld a, $13
+.asm_11ce98
+ ld [wJumptableIndex], a
+ ld hl, wcd24
+ set 2, [hl]
+ call PlayClickSFX
+ ret
+.asm_11cea4
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ call Function11ca6a
+ call PlayClickSFX
+ ret
+
+.left
+ inc hl
+.down
+ inc hl
+.right
+ inc hl
+.up
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld [CreditsTimer], a
+ ret
+; 11ceb9 (47:4eb9)
+
+Unknown_11ceb9: ; 11ceb9
+ ; up left down right
+ db $ff, $01, $05, $ff
+ db $ff, $02, $06, $00
+ db $ff, $03, $07, $01
+ db $ff, $04, $08, $02
+ db $ff, $14, $09, $03
+ db $00, $06, $0a, $ff
+ db $01, $07, $0b, $05
+ db $02, $08, $0c, $06
+ db $03, $09, $0d, $07
+ db $04, $19, $0e, $08
+ db $05, $0b, $0f, $ff
+ db $06, $0c, $10, $0a
+ db $07, $0d, $11, $0b
+ db $08, $0e, $12, $0c
+ db $09, $1e, $13, $0d
+ db $0a, $10, $2d, $ff
+ db $0b, $11, $2d, $0f
+ db $0c, $12, $2d, $10
+ db $0d, $13, $2d, $11
+ db $0e, $26, $2d, $12
+ db $ff, $15, $19, $04
+ db $ff, $16, $1a, $14
+ db $ff, $17, $1b, $15
+ db $ff, $18, $1c, $16
+ db $ff, $23, $1d, $17
+ db $14, $1a, $1e, $09
+ db $15, $1b, $1f, $19
+ db $16, $1c, $20, $1a
+ db $17, $1d, $21, $1b
+ db $18, $2b, $22, $1c
+ db $19, $1f, $26, $0e
+ db $1a, $20, $27, $1e
+ db $1b, $21, $28, $1f
+ db $1c, $22, $29, $20
+ db $1d, $2c, $2a, $21
+ db $ff, $24, $2b, $18
+ db $ff, $25, $2b, $23
+ db $ff, $ff, $2b, $24
+ db $1e, $27, $2e, $13
+ db $1f, $28, $2e, $26
+ db $20, $29, $2e, $27
+ db $21, $2a, $2e, $28
+ db $22, $ff, $2e, $29
+ db $23, $ff, $2c, $1d
+ db $2b, $ff, $2f, $22
+ db $0f, $2e, $ff, $ff
+ db $26, $2f, $ff, $2d
+ db $2c, $ff, $ff, $2e
+; 11cf79
+
+String_11cf79: ; 11cf79
+ 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, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.asm_11cfda
+ jr z, .asm_11cfe0
+ add hl, bc
+ dec a
+ jr .asm_11cfda
+.asm_11cfe0
+ pop af
+ ld c, a
+ ld b, 0
+ add hl, bc
+ push hl
+ ld a, $79
+ ld [hli], a
+ ld a, [de]
+ inc de
+rept 2
+ dec a
+endr
+ jr z, .asm_11cff6
+ ld c, a
+ ld a, $7a
+.asm_11cff2
+ ld [hli], a
+ dec c
+ jr nz, .asm_11cff2
+.asm_11cff6
+ ld a, $7b
+ ld [hl], a
+ pop hl
+ ld bc, $14
+ add hl, bc
+ ld a, [de]
+ dec de
+rept 2
+ dec a
+endr
+ jr z, .asm_11d022
+ ld b, a
+.asm_11d005
+ push hl
+ ld a, $7c
+ ld [hli], a
+ ld a, [de]
+rept 2
+ dec a
+endr
+ jr z, .asm_11d015
+ ld c, a
+ ld a, $7f
+.asm_11d011
+ ld [hli], a
+ dec c
+ jr nz, .asm_11d011
+.asm_11d015
+ ld a, $7c
+ ld [hl], a
+ pop hl
+ push bc
+ ld bc, $14
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_11d005
+.asm_11d022
+ ld a, $7d
+ ld [hli], a
+ ld a, [de]
+rept 2
+ dec a
+endr
+ jr z, .asm_11d031
+ ld c, a
+ ld a, $7a
+.asm_11d02d
+ ld [hli], a
+ dec c
+ jr nz, .asm_11d02d
+.asm_11d031
+ ld a, $7e
+ ld [hl], a
+ ret
+
+Function11d035: ; 11d035 (47:5035)
+ hlcoord 0, 0
+ ld bc, $14
+ ld a, [de]
+ inc de
+ push af
+ ld a, [de]
+ inc de
+ and a
+.asm_11d041
+ jr z, .asm_11d047
+ add hl, bc
+ dec a
+ jr .asm_11d041
+.asm_11d047
+ 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 Function11d0ac
+ ld a, $7e
+ ld [hl], a
+ pop hl
+ push hl
+ call Function11d0ac
+ ld a, $7d
+ ld [hl], a
+ pop hl
+ push hl
+ inc hl
+ push hl
+ call Function11d0ac
+ pop bc
+ dec de
+ ld a, [de]
+ cp $2
+ jr z, .asm_11d082
+rept 2
+ dec a
+endr
+.asm_11d078
+ push af
+ ld a, $7a
+ ld [hli], a
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_11d078
+.asm_11d082
+ 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
+rept 2
+ dec a
+endr
+ ld c, a
+ ld b, a
+ ld de, $14
+.asm_11d09c
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_11d09c
+ pop hl
+.asm_11d0a4
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec b
+ jr nz, .asm_11d0a4
+ ret
+
+Function11d0ac: ; 11d0ac (47:50ac)
+ ld a, [de]
+ dec a
+ ld bc, $14
+.asm_11d0b1
+ add hl, bc
+ dec a
+ jr nz, .asm_11d0b1
+ ret
+
+Function11d0b6: ; 11d0b6 (47:50b6)
+ ld hl, $c
+ add hl, bc
+ ld a, [hl]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11d0c7
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+
+Jumptable_11d0c7: ; 11d0c7 (47:50c7)
+ dw Function11d0dd
+ dw Function11d0e9
+ dw Function11d0f5
+ dw Function11d10f
+ dw Function11d134
+ dw Function11d145
+ dw Function11d156
+ dw Function11d175
+ dw Function11d1d7
+ dw Function11d1d1
+ dw Function11d1fc
+
+
+Function11d0dd: ; 11d0dd (47:50dd)
+ ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
+ sla a
+ ld hl, Unknown_11d208
+ ld e, $1
+ jr asm_11d11e
+
+Function11d0e9: ; 11d0e9 (47:50e9)
+ ld a, [wcd21]
+ sla a
+ ld hl, Unknown_11d21a
+ ld e, $2
+ jr asm_11d11e
+
+Function11d0f5: ; 11d0f5 (47:50f5)
+ ld hl, Unknown_11d2be
+ ld a, [CreditsTimer]
+ ld e, a
+ ld d, $0
+ add hl, de
+ ld a, [hl]
+ call Function3b3c
+ ld a, [CreditsTimer]
+ sla a
+ ld hl, Unknown_11d23e
+ ld e, $4
+ jr asm_11d11e
+
+Function11d10f: ; 11d10f (47:510f)
+ ld a, $27
+ call Function3b3c
+ ld a, [wcd25]
+ sla a
+ ld hl, Unknown_11d29e
+ ld e, $8
+
+asm_11d11e: ; 11d11e (47:511e)
+ push de
+ ld e, a
+ ld d, $0
+ add hl, de
+ push hl
+ pop de
+ ld hl, $4
+ add hl, bc
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+ pop de
+ ld a, e
+ call Function11d2ee
+ ret
+
+Function11d134: ; 11d134 (47:5134)
+ ld a, $27
+ call Function3b3c
+ ld a, [wcd2a]
+ sla a
+ ld hl, Unknown_11d2b6
+ ld e, $10
+ jr asm_11d11e
+
+Function11d145: ; 11d145 (47:5145)
+ ld a, $27
+ call Function3b3c
+ ld a, [wcd2c]
+ sla a
+ ld hl, Unknown_11d2ba
+ ld e, $20
+ jr asm_11d11e
+
+Function11d156: ; 11d156 (47:5156)
+ ld a, $2a
+ call Function3b3c
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ add $18
+ ld hl, $4
+ add hl, bc
+ ld [hli], a
+ ld a, $30
+ ld [hl], a
+ ld a, $1
+ ld e, a
+ call Function11d2ee
+ ret
+
+Function11d175: ; 11d175 (47:5175)
+ ld a, [wcd4d]
+ cp $4
+ jr z, .asm_11d180
+ ld a, $28
+ jr .asm_11d182
+.asm_11d180
+ ld a, $26
+.asm_11d182
+ call Function3b3c
+ ld a, [wcd4d]
+ cp $4
+ jr z, .asm_11d1b1
+ ld a, [wcd4c]
+ sla a
+ sla a
+ sla a
+ add $20
+ ld hl, $4
+ add hl, bc
+ ld [hli], a
+ ld a, [wcd4d]
+ sla a
+ sla a
+ sla a
+ sla a
+ add $48
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call Function11d2ee
+ ret
+.asm_11d1b1
+ ld a, [wcd4c]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ sla a
+ add e
+ add $18
+ ld hl, $4
+ add hl, bc
+ ld [hli], a
+ ld a, $8a
+ ld [hl], a
+ ld a, $2
+ ld e, a
+ call Function11d2ee
+ ret
+
+Function11d1d1: ; 11d1d1 (47:51d1)
+ ld d, $98
+ ld a, $2c
+ jr asm_11d1db
+
+Function11d1d7: ; 11d1d7 (47:51d7)
+ ld d, $10
+ ld a, $2b
+
+asm_11d1db: ; 11d1db (47:51db)
+ push de
+ call Function3b3c
+ ld a, [wcd4a]
+ sla a
+ sla a
+ sla a
+ ld e, a
+ sla a
+ add e
+ add $40
+ ld hl, $5
+ add hl, bc
+ ld [hld], a
+ pop af
+ ld [hl], a
+ ld a, $4
+ ld e, a
+ call Function11d2ee
+ ret
+
+Function11d1fc: ; 11d1fc (47:51fc)
+ ld a, $26
+ call Function3b3c
+ ld a, $8
+ ld e, a
+ call Function11d2ee
+ ret
+; 11d208 (47:5208)
+
+Unknown_11d208: ; 11d208
+ db $0d, $1a
+ db $3d, $1a
+ db $6d, $1a
+ db $0d, $2a
+ db $3d, $2a
+ db $6d, $2a
+ db $0d, $8a
+ db $3d, $8a
+ db $6d, $8a
+
+Unknown_11d21a: ; 11d21a
+ db $0d, $42
+ db $3d, $42
+ db $6d, $42
+ db $0d, $52
+ db $3d, $52
+ db $6d, $52
+ db $0d, $62
+ db $3d, $62
+ db $6d, $62
+ db $0d, $72
+ db $3d, $72
+ db $6d, $72
+ db $0d, $82
+ db $3d, $82
+ db $6d, $82
+ db $0d, $92
+ db $3d, $92
+ db $6d, $92
+
+Unknown_11d23e: ; 11d23e
+ db $10, $48
+ db $18, $48
+ db $20, $48
+ db $28, $48
+ db $30, $48
+ db $10, $58
+ db $18, $58
+ db $20, $58
+ db $28, $58
+ db $30, $58
+ db $10, $68
+ db $18, $68
+ db $20, $68
+ db $28, $68
+ db $30, $68
+ db $10, $78
+ db $18, $78
+ db $20, $78
+ db $28, $78
+ db $30, $78
+ db $40, $48
+ db $48, $48
+ db $50, $48
+ db $58, $48
+ db $60, $48
+ db $40, $58
+ db $48, $58
+ db $50, $58
+ db $58, $58
+ db $60, $58
+ db $40, $68
+ db $48, $68
+ db $50, $68
+ db $58, $68
+ db $60, $68
+ db $70, $48
+ db $80, $48
+ db $90, $48
+ db $40, $78
+ db $48, $78
+ db $50, $78
+ db $58, $78
+ db $60, $78
+ db $70, $58
+ db $70, $68
+ db $0d, $92
+ db $3d, $92
+ db $6d, $92
+
+Unknown_11d29e: ; 11d29e
+ db $10, $50
+ db $40, $50
+ db $70, $50
+ db $10, $60
+ db $40, $60
+ db $70, $60
+ db $10, $70
+ db $40, $70
+ db $70, $70
+ db $10, $80
+ db $40, $80
+ db $70, $80
+
+Unknown_11d2b6: ; 11d2b6
+ db $80, $50
+ db $80, $60
+
+Unknown_11d2ba: ; 11d2ba
+ db $20, $50
+ db $20, $60
+
+Unknown_11d2be: ; 11d2be
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $28, $28
+ db $29, $26
+ db $26, $26
+
+Function11d2ee: ; 11d2ee (47:52ee)
+ ld hl, wcd24
+ and [hl]
+ jr nz, .asm_11d316
+ ld a, e
+ ld hl, wcd23
+ and [hl]
+ jr z, .asm_11d30f
+ ld hl, $e
+ add hl, bc
+ ld a, [hl]
+ and a
+ jr z, .asm_11d305
+ dec [hl]
+ ret
+.asm_11d305
+ ld a, $0
+ ld [hld], a
+ ld a, $1
+ xor [hl]
+ ld [hl], a
+ and a
+ jr nz, .asm_11d316
+.asm_11d30f
+ ld hl, $7
+ add hl, bc
+ xor a
+ ld [hl], a
+ ret
+.asm_11d316
+ ld hl, $5
+ add hl, bc
+ ld a, $b0
+ sub [hl]
+ ld hl, $7
+ 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, wMapPals
+ ld bc, 16 * 8
+ 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
+
+Function11d3ba: ; 11d3ba
+ ld a, [rSVBK]
+ push af
+ ld hl, BattleMonSpclDef
+ ld a, $0
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, $d8
+ ld [wcd2e], a
+ ld [hl], a
+ ld a, $fe
+ ld [wcd2f], a
+ ld a, $54
+ ld [wcd30], a
+ ld a, $a8
+ ld [wcd31], a
+ ld a, $c6
+ ld [wcd32], a
+ ld a, $4a
+ ld [wcd33], a
+ ld a, $c6
+ ld [wcd34], a
+ ld hl, Unknown_11f23c
+ ld a, $2d
+
+Function11d3ef: ; 11d3ef
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ push hl
+ ld hl, wMapPals
+ add hl, de
+ ld a, [wcd2d]
+ ld e, a
+ ld a, [wcd2e]
+ ld d, a
+ push bc
+.asm_11d406
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [hli]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ pop af
+ ld [de], a
+ inc de
+ dec bc
+ ld a, c
+ or b
+ jr nz, .asm_11d406
+ ld a, [wcd2f]
+ ld l, a
+ ld a, [wcd30]
+ ld h, a
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+ ld a, l
+ ld [wcd2f], a
+ ld a, h
+ ld [wcd30], a
+ push bc
+ pop hl
+ ld c, $0
+.asm_11d43d
+ ld a, [hl]
+ cp $ff
+ jr z, .asm_11d453
+ call Function11d493
+ jr nz, .asm_11d44a
+ inc hl
+ jr .asm_11d43d
+
+.asm_11d44a
+ ld a, [hli]
+ ld [de], a
+ inc de
+ xor a
+ ld [de], a
+ inc de
+ inc c
+ jr .asm_11d43d
+
+.asm_11d453
+ pop hl
+ ld b, $0
+ add hl, bc
+ push hl
+ pop bc
+ ld a, [wcd31]
+ ld l, a
+ ld a, [wcd32]
+ ld h, a
+ ld a, c
+ ld [hli], a
+ ld a, b
+ ld [hli], a
+ ld a, l
+ ld [wcd31], a
+ ld a, h
+ ld [wcd32], a
+ ld a, [wcd33]
+ ld l, a
+ ld a, [wcd34]
+ ld h, a
+ ld a, e
+ ld [wcd2d], a
+ ld [hli], a
+ ld a, d
+ ld [wcd2e], a
+ ld [hli], a
+ ld a, l
+ ld [wcd33], a
+ ld a, h
+ ld [wcd34], a
+ pop hl
+ pop af
+ dec a
+ jr z, .asm_11d48f
+ jp Function11d3ef
+
+.asm_11d48f
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d493
+
+Function11d493: ; 11d493
+ push hl
+ push bc
+ push de
+ dec a
+ ld hl, rSVBK
+ ld e, $1
+ ld [hl], e
+ call CheckSeenMon
+ ld hl, rSVBK
+ ld e, $5
+ ld [hl], e
+ pop de
+ pop bc
+ pop hl
+ ret
+; 11d4aa
+
+Function11d4aa: ; 11d4aa
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, Unknown_11daac
+ ld bc, Unknown_11f220
+ xor a
+ ld [wcd2d], a
+ inc a
+ ld [wcd2e], a
+ ld a, $e
+.asm_11d4c1
+ push af
+ ld a, [hli]
+ ld e, a
+ ld a, [hli]
+ ld d, a
+ push hl
+ ld hl, $0005
+ add hl, de
+ ld a, [bc]
+rept 2
+ inc bc
+endr
+ push bc
+.asm_11d4cf
+ push af
+ push hl
+ ld a, [hli]
+ ld e, a
+ ld a, [hl]
+ ld d, a
+ ld hl, wd000
+ add hl, de
+ ld a, [wcd2d]
+ ld [hli], a
+ inc a
+ ld [wcd2d], a
+ ld a, [wcd2e]
+ ld [hl], a
+ pop hl
+ ld de, $0008
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_11d4cf
+ ld hl, wcd2d
+ xor a
+ ld [hli], a
+ inc [hl]
+ pop bc
+ pop hl
+ pop af
+ dec a
+ jr nz, .asm_11d4c1
+ pop af
+ ld [rSVBK], a
+ ret
+; 11d4fe
+
+
+Unknown_11d4fe:
+; Pokemon sorted by kana.
+; Notably, Rhydon is missing.
+
+ dw Unknown_11d558
+ dw Unknown_11d55f
+ dw Unknown_11d565
+ dw Unknown_11d56c
+ dw Unknown_11d574
+ dw Unknown_11d57f
+ dw Unknown_11d58e
+ dw Unknown_11d598
+ dw Unknown_11d59f
+ dw Unknown_11d5a3
+ dw Unknown_11d5b2
+ dw Unknown_11d5bb
+ dw Unknown_11d5c0
+ dw Unknown_11d5c8
+ dw Unknown_11d5cb
+ dw Unknown_11d5cd
+ dw Unknown_11d5d1
+ dw Unknown_11d5d4
+ dw Unknown_11d5d6
+ dw Unknown_11d5dc
+ dw Unknown_11d5e7
+ dw Unknown_11d5ea
+ dw Unknown_11d5f7
+ dw Unknown_11d5f9
+ dw Unknown_11d5fc
+ dw Unknown_11d5fe
+ dw Unknown_11d60e
+ dw Unknown_11d61d
+ dw Unknown_11d62e
+ dw Unknown_11d636
+ dw Unknown_11d63e
+ dw Unknown_11d649
+ dw Unknown_11d64e
+ dw Unknown_11d651
+ dw Unknown_11d656
+ dw Unknown_11d65a
+ dw Unknown_11d660
+ dw Unknown_11d662
+ dw Unknown_11d665
+ dw Unknown_11d66d
+ dw Unknown_11d671
+ dw Unknown_11d674
+ dw Unknown_11d678
+ dw Unknown_11d67a
+ dw Unknown_11d67d
+
+Unknown_11d558: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, $ff
+Unknown_11d55f: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, $ff
+Unknown_11d565: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, $ff
+Unknown_11d56c: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, $ff
+Unknown_11d574: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, $ff
+Unknown_11d57f: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, $ff
+Unknown_11d58e: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, $ff
+Unknown_11d598: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, $ff
+Unknown_11d59f: db ABRA, GENGAR, TAUROS, $ff
+Unknown_11d5a3: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, $ff
+Unknown_11d5b2: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, $ff
+Unknown_11d5bb: db SEADRA, SHELLDER, VAPOREON, DEWGONG, $ff
+Unknown_11d5c0: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, $ff
+Unknown_11d5c8: db SQUIRTLE, CELEBI, $ff
+Unknown_11d5cb: db WOBBUFFET, $ff
+Unknown_11d5cd: db DUGTRIO, HORSEA, EXEGGCUTE, $ff
+Unknown_11d5d1: db CHIKORITA, CHINCHOU, $ff
+Unknown_11d5d4: db SHUCKLE, $ff
+Unknown_11d5d6: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, $ff
+Unknown_11d5dc: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, $ff
+Unknown_11d5e7: db ODDISH, EXEGGUTOR, $ff
+Unknown_11d5ea: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, $ff
+Unknown_11d5f7: db QUAGSIRE, $ff
+Unknown_11d5f9: db NATU, XATU, $ff
+Unknown_11d5fc: db DUNSPARCE, $ff
+Unknown_11d5fe: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, $ff
+Unknown_11d60e: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, $ff
+Unknown_11d61d: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, $ff
+Unknown_11d62e: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, $ff
+Unknown_11d636: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, $ff
+Unknown_11d63e: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, $ff
+Unknown_11d649: db DRATINI, MEW, MEWTWO, MILTANK, $ff
+Unknown_11d64e: db MISDREAVUS, SMOOCHUM, $ff
+Unknown_11d651: db MEGANIUM, DITTO, TENTACOOL, MAREEP, $ff
+Unknown_11d656: db FLAAFFY, VENOMOTH, TANGELA, $ff
+Unknown_11d65a: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, $ff
+Unknown_11d660: db KADABRA, $ff
+Unknown_11d662: db LARVITAR, NOCTOWL, $ff
+Unknown_11d665: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, $ff
+Unknown_11d66d: db CHARMELEON, CHARIZARD, URSARING, $ff
+Unknown_11d671: db JYNX, LUGIA, $ff
+Unknown_11d674: db MAGNETON, LEDIAN, LEDYBA, $ff
+Unknown_11d678: db VULPIX, $ff
+Unknown_11d67a: db JUMPLUFF, TOTODILE, MACHOP
+Unknown_11d67d: db $ff
+; 11d67e
+
+GFX_11d67e:
+INCBIN "gfx/pokedex/select_start.2bpp"
+; 11d6de
+
+LZ_11d6de:
+INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
+; 11da52
+
+Strings_11da52: ; 11da52
+ db "ポケモン@@"
+ db "タイプ@@@"
+ db "あいさつ@@"
+ db "ひと@@@@"
+ db "バトル@@@"
+ db "こえ@@@@"
+ db "かいわ@@@"
+ db "きもち@@@"
+ db "じょうたい@"
+ db "せいかつ@@"
+ db "しゅみ@@@"
+ db "こうどう@@"
+ db "じかん@@@"
+ db "むすび@@@"
+ db "あれこれ@@"
+; 11daac
+
+Unknown_11daac: ; 11daac
+ dw Unknown_11dac8
+ dw Unknown_11db58
+ dw Unknown_11dc78
+ dw Unknown_11dea0
+ dw Unknown_11e0c8
+ dw Unknown_11e2d8
+ dw Unknown_11e4e8
+ dw Unknown_11e710
+ dw Unknown_11e920
+ dw Unknown_11ea58
+ dw Unknown_11eb90
+ dw Unknown_11edb8
+ dw Unknown_11eef0
+ dw Unknown_11f100
+
+Unknown_11dac8: ; 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
+
+Unknown_11db58: ; 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
+
+Unknown_11dc78: ; 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
+
+Unknown_11dea0: ; 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
+
+Unknown_11e0c8: ; 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
+
+Unknown_11e2d8: ; 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
+
+Unknown_11e4e8: ; 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
+
+Unknown_11e710: ; 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
+
+Unknown_11e920: ; 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
+
+Unknown_11ea58: ; 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
+
+Unknown_11eb90: ; 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
+
+Unknown_11edb8: ; 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
+
+Unknown_11eef0: ; 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
+
+Unknown_11f100: ; 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
+
+Unknown_11f220:
+ db $12, $01, $24, $02
+ db $45, $05, $45, $05
+ db $42, $05, $42, $05
+ db $45, $05, $42, $05
+ db $27, $03, $27, $03
+ db $45, $05, $27, $03
+ db $42, $05, $24, $02
+
+Unknown_11f23c:
+ db $12, $00, $2f, $00
+ db $70, $00, $1e, $00
+ db $ac, $00, $11, $00
+ db $ce, $00, $09, $00
+ db $e0, $00, $2e, $00
+ db $3c, $01, $24, $00
+ db $84, $01, $1b, $00
+ db $ba, $01, $09, $00
+ db $cc, $01, $07, $00
+ db $da, $01, $1c, $00
+ db $12, $02, $12, $00
+ db $36, $02, $2b, $00
+ db $8c, $02, $10, $00
+ db $ac, $02, $08, $00
+ db $bc, $02, $0c, $00
+ db $d4, $02, $2c, $00
+ db $2c, $03, $09, $00
+ db $3e, $03, $12, $00
+ db $62, $03, $1b, $00
+ db $98, $03, $1a, $00
+ db $cc, $03, $1c, $00
+ db $04, $04, $05, $00
+ db $0e, $04, $02, $00
+ db $12, $04, $05, $00
+ db $1c, $04, $07, $00
+ db $2a, $04, $16, $00
+ db $56, $04, $0e, $00
+ db $72, $04, $0c, $00
+ db $8a, $04, $05, $00
+ db $94, $04, $16, $00
+ db $c0, $04, $19, $00
+ db $f2, $04, $0e, $00
+ db $0e, $05, $08, $00
+ db $1e, $05, $07, $00
+ db $2c, $05, $09, $00
+ db $3e, $05, $0d, $00
+ db $58, $05, $04, $00
+ db $60, $05, $14, $00
+ db $88, $05, $0b, $00
+ db $9e, $05, $01, $00
+ db $a0, $05, $02, $00
+ db $a4, $05, $02, $00
+ db $a8, $05, $02, $00
+ db $ac, $05, $15, $00
+ db $00, $00, $09, $00
+
+BTTrainerClassGenders:
+ 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
new file mode 100755
index 000000000..bfbffc828
--- /dev/null
+++ b/misc/battle_tower_5c.asm
@@ -0,0 +1,421 @@
+BattleTowerBattle: ; 170215
+ xor a
+ ld [wcf63], a
+ call _BattleTowerBattle
+ ret
+; 17021d
+
+EmptySpecial_17021d: ; 17021d
+ ret
+; 17021e
+
+Function17021e: ; 17021e
+ xor a
+ ld [wcf63], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ ret
+; 17022c
+
+_BattleTowerBattle: ; 17022c
+.loop
+ call .do_jumptable
+ call DelayFrame
+ ld a, [wcf63]
+ cp $1
+ jr nz, .loop
+ ret
+; 17023a
+
+.do_jumptable: ; 17023a
+ ld a, [wcf63]
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 170249
+
+.jumptable: ; 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 Mobile_HealParty
+ 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 ; wcf64
+ call CloseSRAM
+ ld hl, StringBuffer3
+ ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64
+ 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 [wcf63], 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
+rept 2
+ ld [hli], a
+endr
+ 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_EXP + 2
+ add hl, bc
+ ld b, $1
+ predef CalcPkmnStats
+ pop de
+ pop hl
+rept 2
+ dec de
+endr
+ 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, BT_TrainerTextIndex + $be
+ ld a, 7
+.loop
+ push af
+ push hl
+ ld c, 18
+.loop2
+ ld a, [hli]
+ ld b, a
+ ld a, [hli]
+ and a
+ jr z, .skip
+ cp $f
+ jr nc, .exit_inner_loop
+ push hl
+ ld hl, Unknown_170470
+ dec a
+ ld e, a
+ ld d, 0
+ add hl, de
+ ld a, [hl]
+ pop hl
+ cp b
+ jr c, .exit_inner_loop
+ jr z, .exit_inner_loop
+ jr .asm_170456
+
+.skip
+ ld a, b
+ cp $fc
+ jr nc, .exit_inner_loop
+
+.asm_170456
+ dec c
+ jr nz, .loop2
+ jr .dont_copy
+
+.exit_inner_loop
+ pop de
+ push de
+ ld hl, Unknown_17047e
+ ld bc, BATTLETOWER_TRAINERDATALENGTH
+ call CopyBytes
+
+.dont_copy
+ pop hl
+ ld de, $00e0
+ add hl, de
+ pop af
+ dec a
+ jr nz, .loop
+ ret
+; 170470
+
+Unknown_170470:
+ db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24
+
+Unknown_17047e:
+ db $03, $04, $05, $08
+ db $03, $05, $0e, $06
+ db $03, $02, $00, $00
+ db $39, $07, $07, $04
+ db $00, $05, $04, $07
+ db $01, $05, $00, $00
+ db $0f, $05, $14, $07
+ db $05, $05, $11, $0c
+ db $0c, $06, $06, $04
+
+
+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 ; $c608
+ ld bc, BATTLE_TOWER_STRUCT_LENGTH
+ call CopyBytes
+
+ pop af
+ ld [rSVBK], a
+
+ ld a, BANK(s1_be45)
+ call GetSRAMBank
+ ld a, $2
+ ld [s1_be45], a
+ ld hl, sNrOfBeatenBattleTowerTrainers
+ inc [hl]
+ call CloseSRAM
+SkipBattleTowerTrainer: ; 1704c9
+ ret
+; 1704ca
diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm
index cb152cefd..489ec77ee 100644
--- a/misc/crystal_misc.asm
+++ b/misc/crystal_misc.asm
@@ -144,14 +144,14 @@ Function17a751: ; 17a751 (5e:6751)
ret
Function17a770: ; 17a770 (5e:6770)
- ld a, [hOAMUpdate] ; $ff00+$d8
+ ld a, [hOAMUpdate]
push af
ld a, $1
- ld [hOAMUpdate], a ; $ff00+$d8
+ ld [hOAMUpdate], a
call HideSprites
call Function17a9cb
pop af
- ld [hOAMUpdate], a ; $ff00+$d8
+ ld [hOAMUpdate], a
ret
Function17a781: ; 17a781 (5e:6781)
@@ -251,7 +251,7 @@ Function17a7ff: ; 17a7ff (5e:67ff)
Function17a81a: ; 17a81a (5e:681a)
call IsSFXPlaying
ret nc
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and $3
ret z
call ExitMenu
@@ -269,7 +269,7 @@ Function17a83c: ; 17a83c (5e:683c)
ld a, [hJoyLast]
and $f0
ld c, a
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
and $b
or c
ld c, a
@@ -430,7 +430,7 @@ Function17a91e: ; 17a91e (5e:691e)
ret
.asm_17a92c
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function17a99e
ld hl, $d088
set 7, [hl]
@@ -741,10 +741,10 @@ Unknown_17aaf7: ; 17aaf7
; 17aba0
Function17aba0: ; 17aba0 (5e:6ba0)
- ld a, [rVBK] ; $ff00+$4f
+ ld a, [rVBK]
push af
ld a, $1
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, VTiles5 tile $00
ld de, GFX_17afa5
@@ -752,7 +752,7 @@ Function17aba0: ; 17aba0 (5e:6ba0)
call Get2bpp
pop af
- ld [rVBK], a ; $ff00+$4f
+ ld [rVBK], a
ld hl, VTiles0 tile $00
ld de, GFX_17afa5 + $4c0
@@ -766,13 +766,13 @@ Function17aba0: ; 17aba0 (5e:6ba0)
ret
Function17abcf: ; 17abcf (5e:6bcf)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
- ld a, BANK(Unkn1Pals)
- ld [rSVBK], a ; $ff00+$70
+ ld a, BANK(wMapPals)
+ ld [rSVBK], a
ld hl, Palette_17ac55
- ld de, Unkn1Pals ; $d000
+ ld de, wMapPals ; $d000
ld bc, $30
call CopyBytes
@@ -793,7 +793,7 @@ Function17abcf: ; 17abcf (5e:6bcf)
call FarCopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
Function17ac0c: ; 17ac0c (5e:6c0c)
diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm
index 716ad50a3..291006118 100644
--- a/misc/mobile_22.asm
+++ b/misc/mobile_22.asm
@@ -38,7 +38,7 @@ Function89174: ; 89174 (22:5174)
ret
Function8917a: ; 8917a (22:517a)
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld bc, $32
xor a
call ByteFill
@@ -259,7 +259,7 @@ Function89261: ; 89261
call Function8920f
pop af
jr c, .done
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $2
jr z, .done
and a
@@ -484,7 +484,7 @@ Function8939a: ; 8939a
push bc
ld hl, 0
add hl, bc
- ld de, DefaultFlypoint
+ ld de, wd002
ld c, 6
call Function89193
pop bc
@@ -499,8 +499,8 @@ Function8939a: ; 8939a
Function893b3: ; 893b3 (22:53b3)
call DisableLCD
call ClearSprites
- call Functione51
- call Functione5f
+ call LoadStandardFont
+ call LoadFontsExtra
call Function893ef
call Function8942b
call Function89455
@@ -510,8 +510,8 @@ Function893b3: ; 893b3 (22:53b3)
Function893cc: ; 893cc
call DisableLCD
call ClearSprites
- call Functione51
- call Functione5f
+ call LoadStandardFont
+ call LoadFontsExtra
call Function893ef
call Function89464
call EnableLCD
@@ -623,7 +623,7 @@ Function8949c: ; 8949c
ld a, 5
ld [rSVBK], a
ld hl, Palette_894b3
- ld de, Unkn1Pals + 8 * 7
+ ld de, wMapPals + 8 * 7
ld bc, 8
call CopyBytes
pop af
@@ -674,7 +674,7 @@ endr
ld a, [hli]
ld h, [hl]
ld l, a
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, 24
call CopyBytes
ld hl, Palette_89557
@@ -816,16 +816,16 @@ endr
Function895c7: ; 895c7 (22:55c7)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, 5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_895de
ld de, wd030
ld bc, 8
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
; 895de (22:55de)
@@ -1253,7 +1253,7 @@ Function897d5: ; 897d5
.asm_897f3
ld a, $37
- ld [$ffad], a
+ ld [hFillBox], a
hlcoord 12, 3
lb bc, 7, 7
predef FillBox
@@ -1365,8 +1365,8 @@ Function898aa: ; 898aa
Function898be: ; 898be
push bc
- ld de, DefaultFlypoint
- ld hl, DefaultFlypoint
+ ld de, wd002
+ ld hl, wd002
call Function89331
jr nc, .asm_898cd
ld de, String_89116
@@ -1801,7 +1801,7 @@ Function89b07: ; 89b07
; 89b14
Function89b14: ; 89b14
- call WhiteBGMap
+ call ClearBGPalettes
call Function89b07
call Function89b00
ret
@@ -1814,7 +1814,7 @@ Function89b1e: ; 89b1e (22:5b1e)
Function89b28: ; 89b28 (22:5b28)
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893e2
call Call_ExitMenu
call Function891ab
@@ -2147,12 +2147,12 @@ Function89cdf: ; 89cdf (22:5cdf)
Function89d0d: ; 89d0d (22:5d0d)
call Function8923c
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld c, $8
- ld de, Unkn1Pals
+ ld de, wMapPals
.asm_89d1c
push bc
ld hl, Palette_89d4e
@@ -2166,7 +2166,7 @@ Function89d0d: ; 89d0d (22:5d0d)
ld bc, $8
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
call SetPalettes
callba Function845db
call Function89240
@@ -2222,7 +2222,7 @@ asm_89d90: ; 89d90 (22:5d90)
push hl
call _hl_
call Function89dab
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
push af
call Function891ab
pop af
@@ -2253,7 +2253,7 @@ Function89dab: ; 89dab (22:5dab)
call PlayClickSFX
ld a, [wcfa3]
ld c, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp c
jr z, .asm_89dd9
call Function1bee
@@ -2273,7 +2273,7 @@ Function89de0: ; 89de0 (22:5de0)
.asm_89dea
call Function8a31c
jr z, .asm_89dfd
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld c, a
push bc
ld hl, Jumptable_89e04
@@ -2377,16 +2377,16 @@ Function89e6f: ; 89e6f (22:5e6f)
jp Function89e36
Function89e9a: ; 89e9a (22:5e9a)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_89eb1
ld de, wd028
ld bc, $8
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
; 89eb1 (22:5eb1)
@@ -2414,7 +2414,7 @@ Function89eb9: ; 89eb9 (22:5eb9)
jp Function89e36
Function89ee1: ; 89ee1 (22:5ee1)
- call WhiteBGMap
+ call ClearBGPalettes
call Function893e2
call Function8923c
callba Function4a3a7
@@ -2602,7 +2602,7 @@ Function89fed: ; 89fed (22:5fed)
Function89ff6: ; 89ff6 (22:5ff6)
call Function891fe
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@@ -2782,7 +2782,7 @@ Function8a116: ; 8a116 (22:6116)
call Function8923c
call Function8a17b
jr c, .asm_8a16b
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd030], a
dec d
jr z, .asm_8a140
@@ -2865,7 +2865,7 @@ Function8a1b0: ; 8a1b0
ld c, $12
call TextBox
hlcoord 1, 14
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld de, Strings_8a1cc
dec a
ld c, a
@@ -2927,7 +2927,7 @@ UnknownText_0x8a23c: ; 0x8a23c
; 0x8a241
Function8a241: ; 8a241 (22:6241)
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function891fe
call Function8a262
jr nc, .asm_8a254
@@ -2937,14 +2937,14 @@ Function8a241: ; 8a241 (22:6241)
ret
.asm_8a254
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Call_ExitMenu
call Function891de
and a
ret
Function8a262: ; 8a262 (22:6262)
- call WhiteBGMap
+ call ClearBGPalettes
call Function893e2
call Function8923c
callba Function4a3a7
@@ -3104,9 +3104,9 @@ Function8a383: ; 8a383 (22:6383)
ret
Function8a3a2: ; 8a3a2 (22:63a2)
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld e, a
ld d, $0
add hl, de
@@ -3141,7 +3141,7 @@ Function8a3df: ; 8a3df (22:63df)
ld hl, $a603
call Function89b45
call CloseSRAM
- ld hl, DefaultFlypoint
+ ld hl, wd002
jr c, .asm_8a3f8
ld de, Unknown_8a408
call Function8a400
@@ -3383,10 +3383,10 @@ Function8a5a3: ; 8a5a3 (22:65a3)
ret
Function8a5b6: ; 8a5b6 (22:65b6)
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ld hl, Palette_8a5e5
ld de, wd020
ld bc, $18
@@ -3400,7 +3400,7 @@ Function8a5b6: ; 8a5b6 (22:65b6)
ld bc, $8
call CopyBytes
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
; 8a5e5 (22:65e5)
@@ -3455,7 +3455,7 @@ Palette_8a624: ; 8a624
; 8a62c
Function8a62c: ; 8a62c (22:662c)
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
call Function891fe
xor a
call Function8b94a
@@ -3501,7 +3501,7 @@ Jumptable_8a671: ; 8a671 (22:6671)
Function8a679: ; 8a679 (22:6679)
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@@ -3546,7 +3546,7 @@ Function8a6c5: ; 8a6c5 (22:66c5)
Function8a6cd: ; 8a6cd (22:66cd)
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@@ -3594,7 +3594,7 @@ Function8a6cd: ; 8a6cd (22:66cd)
.asm_8a73f
call CloseSRAM
.asm_8a742
- call WhiteBGMap
+ call ClearBGPalettes
call Function89448
call Function891d3
call Function8b677
@@ -3620,7 +3620,7 @@ Function8a765: ; 8a765 (22:6765)
push bc
ld hl, $0
add hl, bc
- ld de, DefaultFlypoint
+ ld de, wd002
ld c, $6
call Function89185
pop bc
@@ -3641,9 +3641,9 @@ Function8a765: ; 8a765 (22:6765)
Function8a78c: ; 8a78c (22:678c)
call Function891fe
- ld de, DefaultFlypoint
+ ld de, wd002
ld b, $5
- callba Function116c1
+ callba NamingScreen
call OpenSRAMBank4
call Function8931b
push bc
@@ -3651,13 +3651,13 @@ Function8a78c: ; 8a78c (22:678c)
add hl, bc
ld d, h
ld e, l
- ld hl, DefaultFlypoint
+ ld hl, wd002
call InitName
call CloseSRAM
call DelayFrame
call JoyTextDelay
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
pop bc
@@ -3687,7 +3687,7 @@ Function8a7cb: ; 8a7cb (22:67cb)
pop af
ld [MenuSelection], a
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@@ -3701,7 +3701,7 @@ Function8a7cb: ; 8a7cb (22:67cb)
Function8a818: ; 8a818 (22:6818)
call Function89a23
- ld hl, DefaultFlypoint
+ ld hl, wd002
call Function89331
jr c, .asm_8a875
ld hl, wd008
@@ -3716,7 +3716,7 @@ Function8a818: ; 8a818 (22:6818)
add hl, bc
ld d, h
ld e, l
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld c, $6
call Function89193
pop bc
@@ -3781,7 +3781,7 @@ Function8a8a1: ; 8a8a1 (22:68a1)
Function8a8c3: ; 8a8c3 (22:68c3)
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@@ -3851,7 +3851,7 @@ Function8a930: ; 8a930 (22:6930)
push bc
ld h, b
ld l, c
- ld de, DefaultFlypoint
+ ld de, wd002
ld bc, $25
call CopyBytes
pop de
@@ -3865,7 +3865,7 @@ Function8a930: ; 8a930 (22:6930)
ld bc, $25
call CopyBytes
pop de
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld bc, $25
call CopyBytes
ld de, SFX_SWITCH_POKEMON
@@ -3885,7 +3885,7 @@ Function8a999: ; 8a999 (22:6999)
jr c, .asm_8a9bb
push bc
push de
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
pop de
dec e
ld a, e
@@ -3969,7 +3969,7 @@ Function8aa0a: ; 8aa0a (22:6a0a)
call Function89381
call CloseSRAM
call Function891fe
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@@ -4027,7 +4027,7 @@ Function8aa73: ; 8aa73 (22:6a73)
call Function89193
.asm_8aa9d
call Function891fe
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@@ -4101,7 +4101,7 @@ Function8ab11: ; 8ab11 (22:6b11)
Function8ab3b: ; 8ab3b (22:6b3b)
call Function891fe
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call Function89807
call Function89492
@@ -4140,8 +4140,8 @@ Function8ab77: ; 8ab77 (22:6b77)
ret
Function8ab93: ; 8ab93 (22:6b93)
- call WhiteBGMap
- call LoadMenuDataHeader_0x1d75
+ call ClearBGPalettes
+ call LoadStandardMenuDataHeader
callba Function105688
call ClearSprites
call Function891fe
@@ -4183,7 +4183,7 @@ Function8aba9: ; 8aba9
call PlayClickSFX
.asm_8abe5
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
@@ -4228,7 +4228,7 @@ Function8ac4e: ; 8ac4e
ld [MenuSelection], a
push de
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
pop bc
call Function89844
@@ -4307,7 +4307,7 @@ Function8ac7c: ; 8ac7c
.asm_8ace4
call CloseSRAM
- call Functione51
+ call LoadStandardFont
ld a, [wd02f]
ld c, a
and a
@@ -4319,7 +4319,7 @@ Function8ac7c: ; 8ac7c
ld a, $2
call Function89259
jp c, Function8ac7c
- call Functione51
+ call LoadStandardFont
pop de
ld c, $0
scf
@@ -4337,7 +4337,7 @@ Function8ad0b: ; 8ad0b
ld a, [MenuSelection]
ld [wd02f], a
call Function891de
- call WhiteBGMap
+ call ClearBGPalettes
call Function893cc
call OpenSRAMBank4
call Function8931b
diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm
index af4e834a3..7a206e3e0 100644
--- a/misc/mobile_22_2.asm
+++ b/misc/mobile_22_2.asm
@@ -252,7 +252,7 @@ Function8b45c: ; 8b45c (22:745c)
call Function8b4fd
call Function89c44
ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
+ ld [hBGMapMode], a
pop bc
call Function8b3dd
jr nc, .asm_8b46e
@@ -574,7 +574,7 @@ Function8b664: ; 8b664 (22:7664)
ret
Function8b677: ; 8b677
- call WhiteBGMap
+ call ClearBGPalettes
call DisableLCD
call Function8b690
call Function8b6bb
@@ -610,7 +610,7 @@ Function8b6bb: ; 8b6bb
ld a, $5
ld [rSVBK], a
ld hl, Palette_8b6d5
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0018
call CopyBytes
pop af
@@ -809,9 +809,9 @@ Function8b7bd: ; 8b7bd
ld a, [wd032]
and a
jr z, .asm_8b7e0
- ld a, [wcf81]
+ ld a, [wMenuFlags]
set 3, a
- ld [wcf81], a
+ ld [wMenuFlags], a
.asm_8b7e0
ld a, [wd0e3]
@@ -828,7 +828,7 @@ Function8b7bd: ; 8b7bd
call Function8b75d
call UpdateSprites
call Function89209
- call Function350c
+ call HandleScrollingMenu
call Function8920f
ld a, [wcf73]
cp $2
@@ -854,7 +854,7 @@ Function8b7bd: ; 8b7bd
.asm_8b824
ld c, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wd030], a
ld a, [wd0e4]
ld [wd031], a
@@ -863,7 +863,7 @@ Function8b7bd: ; 8b7bd
Function8b832: ; 8b832
ld a, [wd0e4]
- ld hl, wcf92
+ ld hl, wMenuData2Items
sub [hl]
jr nc, Function8b84b
xor a
@@ -872,7 +872,7 @@ Function8b832: ; 8b832
Function8b83e: ; 8b83e
ld a, [wd0e4]
- ld hl, wcf92
+ ld hl, wMenuData2Items
add [hl]
cp $24
jr c, Function8b84b
@@ -880,14 +880,14 @@ Function8b83e: ; 8b83e
Function8b84b: ; 8b84b
ld [wd0e4], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wMenuCursorBuffer], a
ret
; 8b855
Function8b855: ; 8b855
ld a, $28
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld [hli], a
ld c, $28
xor a
@@ -916,9 +916,9 @@ MenuData2_0x8b870: ; 0x8b870
db 5 ; items
db 3, 1
dbw 0, wd002
- dbw BANK(Function8b880), Function8b880
- dbw BANK(Function8b88c), Function8b88c
- dbw BANK(Function8b8c8), Function8b8c8
+ dba Function8b880
+ dba Function8b88c
+ dba Function8b8c8
; 8b880
Function8b880: ; 8b880
@@ -1061,7 +1061,7 @@ Function8b960: ; 8b960 (22:7960)
ret
Function8b99f: ; 8b99f (22:799f)
- ld hl, DefaultFlypoint
+ ld hl, wd002
dec a
ld c, a
ld b, $0
@@ -1135,7 +1135,7 @@ Function8b9e9: ; 8b9e9 (22:79e9)
scf
.asm_8ba0c
push af
- ld hl, DefaultFlypoint
+ ld hl, wd002
.asm_8ba10
ld a, [de]
inc de
diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm
index 821a8eaf8..4743f2c27 100644
--- a/misc/mobile_40.asm
+++ b/misc/mobile_40.asm
@@ -6,15 +6,18 @@ Function100000: ; 100000
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
@@ -45,7 +48,7 @@ Function100022: ; 100022
Function100057: ; 100057
call Function1000a4
- call Function222a
+ call ReturnToMapFromSubmenu
ld hl, VramState
res 1, [hl]
ret
@@ -63,7 +66,7 @@ Function100063: ; 100063
ld a, [rIE]
ld [BGMapBuffer], a
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld [hLCDStatCustom], a
ret
; 100082
@@ -71,7 +74,7 @@ Function100063: ; 100063
Function100082: ; 100082
xor a
ld hl, OverworldMap
- ld bc, 1300
+ ld bc, OverworldMapEnd - OverworldMap
call ByteFill
di
call DoubleSpeed
@@ -80,10 +83,10 @@ Function100082: ; 100082
ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL
ld [rIE], a
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld [hLCDStatCustom], a
ld a, $1
- ld [$ffc9], a
+ ld [hFFC9], a
ld [hMobile], a
ei
ret
@@ -92,7 +95,7 @@ Function100082: ; 100082
Function1000a4: ; 1000a4
di
xor a
- ld [$ffc9], a
+ ld [hFFC9], a
ld [hMobile], a
xor a
ld [hVBlank], a
@@ -165,7 +168,7 @@ Function1000fa: ; 1000fa
and $13
ld [rIE], a
xor a
- ld [$ffc9], a
+ ld [hFFC9], a
ld [hMobile], a
ei
ld a, [wLinkMode]
@@ -173,7 +176,7 @@ Function1000fa: ; 1000fa
xor a
ld [wLinkMode], a
ld a, $4
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
callba Function11619d
ld hl, wcd29
set 6, [hl]
@@ -242,7 +245,7 @@ Function10016f: ; 10016f
jr z, .asm_1001af
cp $f8
ret z
- ret
+ ret ; ????????????????????????????
.asm_1001af
ld a, $d7
@@ -309,15 +312,18 @@ Function10016f: ; 10016f
Function10020b: ; 10020b
xor a
ld [wc303], a
- callba FadeBlackBGMap
+ callba FadeOutPalettes
callba Function106464
call HideSprites
call DelayFrame
+
ld a, [rSVBK]
push af
ld a, $1
ld [rSVBK], a
+
callba Function17f555
+
pop af
ld [rSVBK], a
ret
@@ -400,18 +406,18 @@ Function1002c9: ; 1002c9
ld hl, wcd2a
bit 0, [hl]
ret z
- callba Function3f6d0
+ callba CleanUpBattleRAM
callba LoadPokemonData
ret
; 1002dc
Function1002dc: ; 1002dc
- ld a, $f8
+ ld a, MAPSETUP_LINKRETURN
ld [hMapEntryMethod], a
callba RunMapSetupScript
xor a
ld [hMapEntryMethod], a
- call Functione51
+ call LoadStandardFont
ret
; 1002ed
@@ -537,7 +543,7 @@ Function100393: ; 100393
Function10039c: ; 10039c
ld hl, wcc60
- ld de, wd000
+ ld de, w3_d000
ld bc, $0054
ld a, $3
call FarCopyWRAM
@@ -545,7 +551,7 @@ Function10039c: ; 10039c
; 1003ab
Function1003ab: ; 1003ab
- ld hl, wd000
+ ld hl, w3_d000
ld de, wcc60
ld bc, $0054
ld a, $3
@@ -555,7 +561,7 @@ Function1003ab: ; 1003ab
Function1003ba: ; 1003ba
ld hl, wccb4
- ld de, $d080
+ ld de, w3_d080
ld bc, $0054
ld a, $3
call FarCopyWRAM
@@ -563,7 +569,7 @@ Function1003ba: ; 1003ba
; 1003c9
Function1003c9: ; 1003c9
- ld hl, $d080
+ ld hl, w3_d080
ld de, wccb4
ld bc, $0054
ld a, $3
@@ -901,7 +907,7 @@ Function100597: ; 100597
ret z
jr nc, .asm_1005a6
xor a
- ld [wcfa9], a
+ ld [MenuSelection2], a
.asm_1005a6
call ExitMenu
@@ -953,7 +959,7 @@ Function1005e1: ; 1005e1
ret z
jr nc, .asm_1005f0
xor a
- ld [wcfa9], a
+ ld [MenuSelection2], a
.asm_1005f0
call ExitMenu
ld a, [wcd26]
@@ -1501,7 +1507,7 @@ Function100902: ; 100902
ld de, SFX_4_NOTE_DITTY
call PlaySFX
callba Function104061
- ld c, $78
+ ld c, 120
call DelayFrames
ret
; 10095a
@@ -1515,10 +1521,10 @@ Function100902: ; 100902
Function100970: ; 100970
hlcoord 0, 0
- ld de, wdc00
+ ld de, w3_dc00
call Function1009a5
hlcoord 0, 0, AttrMap
- ld de, $dd68
+ ld de, w3_dd68
call Function1009a5
call Function1009d2
call Function1009ae
@@ -1526,12 +1532,12 @@ Function100970: ; 100970
; 100989
Function100989: ; 100989
- ld hl, wdc00
+ ld hl, w3_dc00
decoord 0, 0
call Function1009a5
call Function1009ae
callba Function104061
- ld hl, $dd68
+ ld hl, w3_dd68
decoord 0, 0, AttrMap
call Function1009a5
ret
@@ -1549,23 +1555,25 @@ Function1009ae: ; 1009ae
push af
ld a, $3
ld [rSVBK], a
- ld hl, $d800
+
+ ld hl, w3_d800
decoord 0, 0, AttrMap
- ld c, $14
- ld b, $12
-.asm_1009bf
+ ld c, SCREEN_WIDTH
+ ld b, SCREEN_HEIGHT
+.loop_row
push bc
-.asm_1009c0
+.loop_col
ld a, [hli]
ld [de], a
inc de
dec c
- jr nz, .asm_1009c0
- ld bc, $000c
+ jr nz, .loop_col
+ ld bc, 12
add hl, bc
pop bc
dec b
- jr nz, .asm_1009bf
+ jr nz, .loop_row
+
pop af
ld [rSVBK], a
ret
@@ -1576,16 +1584,20 @@ Function1009d2: ; 1009d2
push af
ld a, $3
ld [rSVBK], a
+
ld a, [rVBK]
push af
ld a, $1
ld [rVBK], a
- ld hl, $d800
+
+ ld hl, w3_d800
ld de, VBGMap0
lb bc, $3, $24
call Get2bpp
+
pop af
ld [rVBK], a
+
pop af
ld [rSVBK], a
ret
@@ -1613,12 +1625,12 @@ Function100a09: ; 100a09
ld [wd431], a
callba Function4000
ld a, [wLinkMode]
- cp $4
+ cp LINK_MOBILE
jr nz, .asm_100a2a
call Function100a87
call Function100da5
- callba Function3ee27
+ callba FinishBattleAnim
jr .asm_100a2d
.asm_100a2a
@@ -1825,7 +1837,7 @@ Function100b45: ; 100b45
; 100b7a
Function100b7a: ; 100b7a
- ld hl, Function1c66
+ ld hl, CopyMenuData2
ld a, [wcf94]
rst FarCall
callba Function24085
@@ -1882,16 +1894,16 @@ Function100bc2: ; 100bc2
jr .asm_100bd1
.asm_100bff
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
and a
jp nz, .asm_100bcb
ld a, [wd0eb]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
jp .asm_100bcb
.asm_100c10
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld b, a
ld a, [wd0eb]
rept 2
@@ -1900,11 +1912,11 @@ endr
cp b
jp nz, .asm_100bcb
ld a, $1
- ld [wcfa9], a
+ ld [MenuSelection2], a
jp .asm_100bcb
.asm_100c25
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [CurMoveNum], a
ld a, $1
@@ -1912,10 +1924,10 @@ endr
ret
.asm_100c30
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [CurMoveNum], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld c, a
ld b, 0
@@ -1930,7 +1942,7 @@ endr
dec a
cp c
jr z, .asm_100c63
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld c, a
ld b, 0
@@ -1978,7 +1990,7 @@ Function100c98: ; 100c98
ld [wcfa3], a
ld a, [CurMoveNum]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
ret
; 100cad
@@ -2007,7 +2019,7 @@ Function100cb5: ; 100cb5
ld a, [PartyCount]
inc a
ld b, a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp b
jr z, .asm_100d17
ld [wd0d8], a
@@ -2015,7 +2027,7 @@ Function100cb5: ; 100cb5
ld b, a
bit 1, b
jr nz, .asm_100d17
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [CurPartyMon], a
ld c, a
@@ -2084,11 +2096,11 @@ Function100d67: ; 100d67
call CopyMenuDataHeader
xor a
ld [hBGMapMode], a
- call Function1cbb
+ call MenuBox
call UpdateSprites
call Function1c89
call WaitBGMap
- call Function1c66
+ call CopyMenuData2
call Function1c10
ld hl, wcfa5
set 6, [hl]
@@ -2357,38 +2369,45 @@ Function100efb: ; 100efb
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
-.asm_100f15
+.loop
ld a, [hl]
cp $ff
- jr z, .asm_100f34
- ld [StringBuffer2 + 3], a
+ 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, $0007
add hl, de
- jr .asm_100f15
+ jr .loop
-.asm_100f34
+.done
+ ; recover the values into bc
ld a, [StringBuffer2 + 4]
ld c, a
ld a, [StringBuffer2 + 5]
@@ -2397,16 +2416,20 @@ asm_100f02:
; 100f3d
Function100f3d: ; 100f3d
+ ; parameter
ld a, [StringBuffer2]
cp $2
- jr z, .asm_100f61
+ jr z, .two
cp $1
- jr z, .asm_100f77
+ jr z, .one
cp $3
- jr z, .asm_100f4d
+ jr z, .three
ret
-.asm_100f4d
+.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]
@@ -2418,7 +2441,9 @@ Function100f3d: ; 100f3d
ld [StringBuffer2 + 2], a
ret
-.asm_100f61
+.two
+ ; hl gets backed up to de, then
+ ; do the same as in .three
ld d, h
ld e, l
ld a, [StringBuffer2 + 1]
@@ -2432,7 +2457,11 @@ Function100f3d: ; 100f3d
ld [StringBuffer2 + 2], a
ret
-.asm_100f77
+.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]
@@ -2462,18 +2491,18 @@ Function100f8d: ; 100f8d
ld a, [StringBuffer2 + 3]
bit 7, a
res 7, a
- jr z, .asm_100fb6
+ jr z, .sram
and a
- jr nz, .asm_100fb0
+ jr nz, .wram
call CopyBytes
ret
-.asm_100fb0
+.wram
and $7f
call FarCopyWRAM
ret
-.asm_100fb6
+.sram
call GetSRAMBank
call CopyBytes
call CloseSRAM
@@ -2481,16 +2510,20 @@ Function100f8d: ; 100f8d
; 100fc0
Unknown_100fc0: ; 100fc0
- dbwww $80, PlayerName, NAME_LENGTH, wd26b
+ ; 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, wd276
- dbwww $80, PartyMons, $30 * PARTY_LENGTH, OTPartyMons
+ 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, $a600, $2f * PARTY_LENGTH, NULL
+ dbwww $00, sPartyScratch1, SCRATCHMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
db -1
Unknown_100ff3: ; 100ff3
@@ -2501,15 +2534,15 @@ Unknown_100ff3: ; 100ff3
dbwww $80, wSecretID, 2, NULL
dbwww $80, PlayerGender, 1, NULL
dbwww $04, $a603, 8, NULL
- dbwww $04, $a007, $30, NULL
+ dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL
db -1
Unknown_10102c: ; 10102c
- dbwww $80, wd26b, 11, NULL
- dbwww $80, wd276, 2, NULL
+ dbwww $80, OTPlayerName, 11, 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, $30 * PARTY_LENGTH, NULL
+ dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL
db -1
; 10104f
@@ -2517,7 +2550,7 @@ Function101050: ; 101050
call Function10107d
ld a, [OTPartyCount]
rept 2
- ld hl, $c608
+ ld hl, wc608
endr
ld bc, $01b3
call Function1010de
@@ -2527,7 +2560,7 @@ endr
ld [hl], d
ld a, $7
call GetSRAMBank
- ld hl, $c608
+ ld hl, wc608
ld de, $a001
ld bc, $01b5
call CopyBytes
@@ -2537,28 +2570,28 @@ endr
Function10107d: ; 10107d
xor a
- ld hl, $c608
+ ld hl, wc608
ld bc, $01b5
call ByteFill
ld hl, wd26b
- ld de, $c608
+ ld de, wc608
ld bc, $000b
call CopyBytes
ld hl, wd271
ld a, [hli]
- ld [$c608 + 11], a
+ ld [wc608 + 11], a
ld a, [hl]
- ld [$c608 + 12], a
+ ld [wc608 + 12], a
ld hl, OTPartyMonNicknames
- ld de, $c608 + 13
+ ld de, wc608 + 13
ld bc, $000b
call Function1010cd
ld hl, OTPartyMonOT
- ld de, $c656 + 1
+ ld de, wc656 + 1
ld bc, $000b
call Function1010cd
ld hl, OTPartyMon1Species
- ld de, $c68a + 15
+ ld de, wc68a + 15
ld bc, $0030
call Function1010cd
ld a, $50
@@ -2686,9 +2719,9 @@ Function101181: ; 101181
ld bc, $000b
asm_101184:
- ld a, $c608 % $100
+ ld a, wc608 % $100
ld [StringBuffer2], a
- ld a, $c608 / $100
+ ld a, wc608 / $100
ld [StringBuffer2 + 1], a
ld a, c
ld [StringBuffer2 + 2], a
@@ -2730,7 +2763,7 @@ asm_101184:
call Function1011df
ld d, h
ld e, l
- ld hl, $c608
+ ld hl, wc608
call CopyBytes
ret
; 1011df
@@ -3015,7 +3048,7 @@ Function10138b: ; 10138b
; 1013aa
Function1013aa: ; 1013aa
- call WhiteBGMap
+ call ClearBGPalettes
call Call_ExitMenu
call Function2bae
callba Function106464
@@ -3347,11 +3380,11 @@ Function10158a: ; 10158a
; 10159d
Function10159d: ; 10159d
- ld de, $c608
+ ld de, wc608
callba Function100edf
- ld de, $c608
+ ld de, wc608
ld a, $5
- ld hl, $d800
+ ld hl, w5_d800
call Function10174c
ld a, $0
ld [wcd26], a
@@ -3362,11 +3395,11 @@ Function10159d: ; 10159d
; 1015be
Function1015be: ; 1015be
- ld de, $c608
+ ld de, wc608
callba Function100eed
- ld de, $c608
+ ld de, wc608
ld a, $5
- ld hl, $d800
+ ld hl, w5_d800
call Function10174c
ld a, $0
ld [wcd26], a
@@ -3377,11 +3410,11 @@ Function1015be: ; 1015be
; 1015df
Function1015df: ; 1015df
- ld de, $c608
+ ld de, wc608
callba Function100ef4
- ld de, $c608
+ ld de, wc608
ld a, $5
- ld hl, $d800
+ ld hl, w5_d800
call Function10174c
ld a, $0
ld [wcd26], a
@@ -3392,12 +3425,12 @@ Function1015df: ; 1015df
; 101600
Function101600: ; 101600
- ld hl, $d800
- ld de, $c608
+ ld hl, w5_d800
+ ld de, wc608
ld bc, $01e0
ld a, $5
call FarCopyWRAM
- ld de, $c608
+ ld de, wc608
callba Function100ee6
ld a, [wcd25]
inc a
@@ -3422,14 +3455,14 @@ Function10162a: ; 10162a
; 101635
Function101635: ; 101635
- ld de, $c608
+ ld de, wc608
ld bc, $01e0
call FarCopyWRAM
ret
; 10163f
Function10163f: ; 10163f
- ld hl, $c608
+ ld hl, wc608
ld bc, $01e0
call FarCopyWRAM
ret
@@ -3437,34 +3470,34 @@ Function10163f: ; 10163f
Function101649: ; 101649
ld a, $5
- ld hl, $d800
+ ld hl, w5_d800
call Function101635
ld a, $5
- ld de, wda00
+ ld de, w5_da00
call Function10163f
ret
; 10165a
Function10165a: ; 10165a
ld a, $5
- ld hl, wda00
+ ld hl, w5_da00
call Function101635
ret
; 101663
Function101663: ; 101663
ld a, $5
- ld hl, $d800
+ ld hl, w5_d800
call Function101635
ld a, $5
- ld de, wdc00
+ ld de, w5_dc00
call Function10163f
ret
; 101674
Function101674: ; 101674 ; unreferenced
ld a, $5
- ld hl, wdc00
+ ld hl, w5_dc00
call Function101635
ret
; 10167d
@@ -3987,16 +4020,19 @@ Function1019ee: ; 1019ee
push af
ld a, $5
ld [rSVBK], a
- ld bc, wdc0d
- ld de, wdc11
+
+ ld bc, w5_dc0d
+ ld de, w5_dc11
callba Function4e929
+
pop af
ld [rSVBK], a
+
ld a, c
ld [OtherTrainerClass], a
ld hl, wd26b
- ld de, $c656
- ld bc, $000b
+ ld de, wc656
+ ld bc, NAME_LENGTH
call CopyBytes
ld a, [wcd2f]
and a
@@ -4005,7 +4041,7 @@ Function1019ee: ; 1019ee
ld a, $1
.asm_101a1e
- ld [$ffcb], a
+ ld [hLinkPlayerNumber], a
ret
; 101a21
@@ -4018,13 +4054,13 @@ Function101a21: ; 101a21
ld [hl], a
ld a, $1
ld [wc2d7], a
- callba Function3f4dd
- callba Function3c000
- callba Function3f759
+ callba BattleIntro
+ callba SendOutFirstMons
+ callba ShowLinkBattleParticipantsAfterEnd
xor a
ld [wc2d7], a
ld a, $ff
- ld [$ffcb], a
+ ld [hLinkPlayerNumber], a
pop af
ld [Options], a
ret
@@ -4036,7 +4072,7 @@ Function101a4f: ; 101a4f
callba Function3f77c
xor a
ld [wc2d7], a
- callba Function3f6d0
+ callba CleanUpBattleRAM
callba LoadPokemonData
call Function1013c0
ld a, [wcd25]
@@ -4141,7 +4177,7 @@ Function101b2b: ; 101b2b
call Function1013dd
ld a, $0
ld [wcd26], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr z, .asm_101b51
ld a, $2
@@ -4194,7 +4230,7 @@ Function101b8f: ; 101b8f
call Function1013dd
ld a, $0
ld [wcd26], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr z, .asm_101bbc
ld a, $1
@@ -4238,7 +4274,7 @@ Function101be5: ; 101be5
call Function1013dd
ld a, $0
ld [wcd26], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr nz, .asm_101c0b
ld a, $2a
@@ -4357,7 +4393,7 @@ Function101cc2: ; 101cc2 ; unreferenced
Function101cc8: ; 101cc8
ld a, $1
- ld [wPartyMonMenuIconAnims], a
+ ld [wc314], a
ld a, $1
ld [wc30d], a
ld hl, wcd29
@@ -4370,7 +4406,7 @@ Function101cc8: ; 101cc8
Function101cdf: ; 101cdf
ld a, $6
- ld [wPartyMonMenuIconAnims], a
+ ld [wc314], a
ld a, $1
ld [wc30d], a
ld hl, wcd29
@@ -4383,7 +4419,7 @@ Function101cdf: ; 101cdf
Function101cf6: ; 101cf6
ld a, $b
- ld [wPartyMonMenuIconAnims + 1], a
+ ld [wc314 + 1], a
ld a, [wcd25]
inc a
ld [wcd25], a
@@ -4392,7 +4428,7 @@ Function101cf6: ; 101cf6
Function101d03: ; 101d03
ld a, $e
- ld [wPartyMonMenuIconAnims + 1], a
+ ld [wc314 + 1], a
ld a, [wcd25]
inc a
ld [wcd25], a
@@ -4483,7 +4519,7 @@ Unknown_101d8d: ; 101d8d
Function101d95: ; 101d95
call Function101ee2
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
ld e, $e
call Function101ee4
ld hl, wcd29
@@ -4919,10 +4955,10 @@ Function1020ea: ; 1020ea
bit 2, [hl]
jr nz, .asm_102110
call Function10218d
- ld hl, $c608
+ ld hl, wc608
bit 4, [hl]
jr z, .asm_102110
- ld hl, $c608
+ ld hl, wc608
bit 2, [hl]
jr nz, .asm_102110
call Function102112
@@ -4942,7 +4978,7 @@ Function102112: ; 102112
ld c, $28
.asm_10211c
push hl
- ld de, $c60f
+ ld de, wc60f
ld b, $1f
.asm_102122
ld a, [de]
@@ -5001,7 +5037,7 @@ Function102142: ; 102142
; 102180
Function102180: ; 102180
- ld hl, $c608 + 1
+ ld hl, wc608 + 1
ld de, StringBuffer2
ld bc, $000b
call CopyBytes
@@ -5010,18 +5046,18 @@ Function102180: ; 102180
Function10218d: ; 10218d
ld hl, wdc00
- ld de, $c608
+ ld de, wc608
ld bc, $0026
ld a, $5
call FarCopyWRAM
- ld de, $c608 + 1
+ ld de, wc608 + 1
ret
; 10219f
Function10219f: ; 10219f
call FadeToMenu
call Function10218d
- ld de, $c608 + 1
+ ld de, wc608 + 1
callba Function8ac4e
call JoyWaitAorB
call PlayClickSFX
@@ -5032,7 +5068,7 @@ Function10219f: ; 10219f
Function1021b8: ; 1021b8
call FadeToMenu
call Function10218d
- ld de, $c60f
+ ld de, wc60f
callba Function8ac70
ld a, c
ld [StringBuffer1], a
@@ -5330,7 +5366,7 @@ Function102387: ; 102387
call Function102d9a
call Function102dd3
ld a, $1
- ld [wcfa9], a
+ ld [MenuSelection2], a
Function1023a1: ; 1023a1
call Function102283
@@ -5403,7 +5439,7 @@ Function102423: ; 102423
ret nc
callba Function14a58
callba MobileFn_1060af
- callba Function106187
+ callba BackupMobileEventIndex
ld hl, wcd4b
set 1, [hl]
ld a, $0
@@ -5552,7 +5588,7 @@ Function10250c: ; 10250c
ld [wd003], a
ld a, [wcd4c]
dec a
- ld [DefaultFlypoint], a
+ ld [wd002], a
call Function102b9c
call Function102bdc
jr c, .asm_10256d
@@ -5696,20 +5732,20 @@ Function1025ff: ; 1025ff
ret
.asm_10262e
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld b, a
ld a, [OTPartyCount]
cp b
ret nz
call Function1bf7
ld a, [PartyCount]
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1d
ld [wcd49], a
ret
.asm_102646
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
ret nz
ld a, $23
@@ -5758,7 +5794,7 @@ Function10266b: ; 10266b
ret
.asm_10269a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ret nz
call Function1bf7
@@ -5767,7 +5803,7 @@ Function10266b: ; 10266b
ret
.asm_1026a8
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld b, a
ld a, [PartyCount]
cp b
@@ -5827,7 +5863,7 @@ Function1026f3: ; 1026f3
hlcoord 9, 17
ld [hl], $7f
ld a, $1
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1d
ld [wcd49], a
ret
@@ -5836,7 +5872,7 @@ Function1026f3: ; 1026f3
hlcoord 9, 17
ld [hl], $7f
ld a, [OTPartyCount]
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, $1f
ld [wcd49], a
ret
@@ -5947,7 +5983,7 @@ asm_1027c6:
asm_1027d1:
ld hl, wcd4b
set 3, [hl]
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wcd4c], a
ld a, $7
ld [wcd49], a
@@ -5978,11 +6014,11 @@ String_102804: ; 102804
; 102814
Function102814: ; 102814
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [wcd52], a
ld a, [wcd4c]
dec a
- ld [DefaultFlypoint], a
+ ld [wd002], a
ld a, [wcd4d]
dec a
ld [wd003], a
@@ -6030,7 +6066,7 @@ Function10286f: ; 10286f
call Function1028fc
ret nc
ld a, [wcd52]
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, [wcd51]
cp $8
jr nz, .asm_102886
@@ -6062,7 +6098,7 @@ Function1028a5: ; 1028a5
Function1028ab: ; 1028ab
ld a, [wcd52]
- ld [wcfa9], a
+ ld [MenuSelection2], a
call Function102f15
ld hl, wcd4b
set 1, [hl]
@@ -6256,7 +6292,7 @@ Jumptable_1029cb: ; 1029cb
; 1029cf
Function1029cf: ; 1029cf
- call LoadMenuDataHeader_0x1d75
+ call LoadStandardMenuDataHeader
hlcoord 10, 7
ld b, $3
ld c, $8
@@ -6288,7 +6324,7 @@ Function1029fe: ; 1029fe
push af
call ExitMenu
pop af
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr nz, .asm_102a21
ld a, $1
@@ -6315,7 +6351,7 @@ Function102a3b: ; 102a3b
ld a, [wcd30]
ld [wc74e], a
ld hl, PlayerName
- ld de, $c6e7
+ ld de, wc6e7
ld bc, $000b
call CopyBytes
ld a, [wcd4c]
@@ -6325,12 +6361,12 @@ Function102a3b: ; 102a3b
ld hl, PartySpecies
add hl, bc
ld a, [hl]
- ld [$c6d0], a
+ ld [wc6d0], a
ld a, [wcd4c]
dec a
ld hl, PartyMonOT
call SkipNames
- ld de, $c6f2
+ ld de, wc6f2
ld bc, $000b
call CopyBytes
ld a, [wcd4c]
@@ -6338,7 +6374,7 @@ Function102a3b: ; 102a3b
ld hl, PartyMon1ID
call GetPartyLocation
ld a, [hli]
- ld [$c6ff], a
+ ld [wc6ff], a
ld a, [hl]
ld [wc700], a
ld a, [wcd4c]
@@ -6346,9 +6382,9 @@ Function102a3b: ; 102a3b
ld hl, PartyMon1DVs
call GetPartyLocation
ld a, [hli]
- ld [$c6fd], a
+ ld [wc6fd], a
ld a, [hl]
- ld [$c6fe], a
+ ld [wc6fe], a
ld a, [wcd4c]
dec a
ld hl, PartyMon1Species
@@ -6382,17 +6418,17 @@ Function102a3b: ; 102a3b
ld hl, OTPartyMon1ID
call GetPartyLocation
ld a, [hli]
- ld [wc731], a
+ ld [wEnemyWrapCount], a
ld a, [hl]
- ld [wc732], a
+ ld [wPlayerCharging], a
ld a, [wcd4d]
dec a
ld hl, OTPartyMon1DVs
call GetPartyLocation
ld a, [hli]
- ld [wc72f], a
+ ld [wEnemyTrappingMove], a
ld a, [hl]
- ld [wc730], a
+ ld [wPlayerWrapCount], a
ld a, [wcd4d]
dec a
ld hl, OTPartyMon1Species
@@ -6401,7 +6437,7 @@ Function102a3b: ; 102a3b
ld c, l
callba GetCaughtGender
ld a, c
- ld [wc733], a
+ ld [wEnemyCharging], a
ret
; 102b12
@@ -6439,12 +6475,12 @@ Function102b32: ; 102b32
Function102b4e: ; 102b4e
ld a, $1
ld [MonType], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
push af
ld de, Unknown_102b73
call Function1bb1
pop af
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, [OTPartyCount]
ld [wcfa3], a
ret
@@ -6464,12 +6500,12 @@ Unknown_102b73:
Function102b7b: ; 102b7b
xor a
ld [MonType], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
push af
ld de, Unknown_102b94
call Function1bb1
pop af
- ld [wcfa9], a
+ ld [MenuSelection2], a
ld a, [PartyCount]
ld [wcfa3], a
ret
@@ -6489,7 +6525,7 @@ Function102b9c: ; 102b9c
; 102bac
Function102bac: ; 102bac
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
dec a
ld [CurPartyMon], a
call LowVolume
@@ -6497,7 +6533,7 @@ Function102bac: ; 102bac
callba Function4dc8f
ld a, [CurPartyMon]
inc a
- ld [wcfa9], a
+ ld [MenuSelection2], a
call Function102d9a
call ClearPalettes
call DelayFrame
@@ -6527,7 +6563,7 @@ Function102bdc: ; 102bdc
jr nz, .asm_102c05
.asm_102bfa
- ld bc, OTPartyMon1Level - OTPartyMon1
+ ld bc, MON_LEVEL
add hl, bc
ld a, [hl]
cp MAX_LEVEL + 1
@@ -6585,11 +6621,11 @@ Function102c48: ; 102c48
ld a, $0
call GetSRAMBank
ld hl, $a600
- ld de, $c608
+ ld de, wc608
ld bc, $002f
call Function102c71
call CloseSRAM
- ld hl, $c608
+ ld hl, wc608
ld de, wda00
ld bc, $01e0
ld a, $5
@@ -6623,12 +6659,12 @@ Function102c87: ; 102c87
ld [wcf64], a
ld a, $0
ld hl, $a600
- ld de, $c608
+ ld de, wc608
ld bc, $011a
call Function102d3e
call Function102cee
ld a, $0
- ld hl, $c608
+ ld hl, wc608
ld de, $a600
ld bc, $011a
call Function102d3e
@@ -6638,12 +6674,12 @@ Function102c87: ; 102c87
ld [wcf64], a
ld a, $5
ld hl, wda00
- ld de, $c608
+ ld de, wc608
ld bc, $011a
call FarCopyWRAM
call Function102cee
ld a, $5
- ld hl, $c608
+ ld hl, wc608
ld de, wda00
ld bc, $011a
call FarCopyWRAM
@@ -6658,7 +6694,7 @@ Function102cee: ; 102cee
ld a, [wJumptableIndex]
dec a
call Function102d34
- ld de, DefaultFlypoint
+ ld de, wd002
ld bc, $002f
call CopyBytes
ld a, [wJumptableIndex]
@@ -6684,14 +6720,14 @@ Function102cee: ; 102cee
call Function102d34
ld d, h
ld e, l
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld bc, $002f
call CopyBytes
ret
; 102d34
Function102d34: ; 102d34
- ld hl, $c608
+ ld hl, wc608
ld bc, $002f
call AddNTimes
ret
@@ -6718,7 +6754,7 @@ Function102d48: ; 102d48
call SetSeenAndCaughtMon
ld a, [wcd4c]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1Happiness
call AddNTimes
ld [hl], BASE_HAPPINESS
@@ -6729,7 +6765,7 @@ Function102d48: ; 102d48
jr nz, .asm_102d98
ld a, [wcd4c]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld hl, PartyMon1DVs
call AddNTimes
predef GetUnownLetter
@@ -7695,7 +7731,7 @@ Function103612: ; 103612
call InterpretMenu2
call WriteBackup
jr c, .asm_10363b
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
ld [ScriptVar], a
ld c, a
ld a, [wdc40]
@@ -7783,7 +7819,7 @@ Mobile_SelectThreeMons: ; 10366e
call InterpretMenu2
call ExitMenu
jr c, .asm_1036f4
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr z, .asm_1036d9
cp $2
@@ -8047,7 +8083,7 @@ endr
callba Script_reloadmappart
callba Function4a94e
jr c, .asm_103870
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld de, wdc5c
ld bc, $0003
call CopyBytes
diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm
new file mode 100755
index 000000000..9b2664e6b
--- /dev/null
+++ b/misc/mobile_41.asm
@@ -0,0 +1,1094 @@
+SECTION "bank41_2", ROMX, BANK[$41]
+
+Mobile_HallOfFame2:: mobile ; 0x105ef6
+ ld a, $5
+ call GetSRAMBank
+ ld hl, GameTimeHours
+ ld de, $a001
+ ld bc, 4
+ call CopyBytes
+ ld hl, $a010
+ ld de, $a005
+ ld bc, 4
+ call CopyBytes
+ ld hl, $a039
+ ld de, $a009
+ ld bc, 4
+ call CopyBytes
+ ld hl, $a01b
+ ld de, $a00d
+ ld bc, 3
+ call CopyBytes
+ call Function106162
+ call CloseSRAM
+ ret
+; 105f33
+
+MagikarpLength_Mobile: mobile ; 105f33
+ ld a, $5
+ call GetSRAMBank
+ ld de, Buffer1
+ ld hl, $a07b
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_105f47
+ jr nc, .asm_105f4f
+ jr .asm_105f55
+
+.asm_105f47
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ dec hl
+ dec de
+ jr c, .asm_105f55
+
+.asm_105f4f
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ dec de
+ ld [hl], a
+
+.asm_105f55
+ ld hl, $a07d
+ ld a, [hli]
+ or [hl]
+ dec hl
+ jr z, .asm_105f6d
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_105f65
+ jr c, .asm_105f6d
+ jr .asm_105f72
+
+.asm_105f65
+ inc hl
+ inc de
+ ld a, [de]
+ cp [hl]
+ jr nc, .asm_105f72
+ dec hl
+ dec de
+
+.asm_105f6d
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, [de]
+ ld [hl], a
+
+.asm_105f72
+ call Function106162
+ call CloseSRAM
+ ret
+; 105f79
+
+MobileFn_105f79: mobile ; 105f79
+ ld a, $5
+ call GetSRAMBank
+ ld a, [hProduct]
+ ld hl, $a07f
+ cp [hl]
+ jr z, .asm_105f8b
+ jr nc, .asm_105f92
+ jr .asm_105f98
+
+.asm_105f8b
+ inc hl
+ ld a, [hMultiplicand]
+ cp [hl]
+ jr c, .asm_105f98
+ dec hl
+
+.asm_105f92
+ ld a, [hProduct]
+ ld [hli], a
+ ld a, [hMultiplicand]
+ ld [hl], a
+
+.asm_105f98
+ call Function106162
+ call CloseSRAM
+ ret
+; 105f9f
+
+MobileFn_105f9f: mobile ; 105f9f
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a070
+ inc [hl]
+ jr nz, .asm_105fae
+ dec hl
+ inc [hl]
+ inc hl
+
+.asm_105fae
+ dec hl
+ ld a, [$a071]
+ cp [hl]
+ jr z, .asm_105fb9
+ jr c, .asm_105fc1
+ jr .asm_105fc9
+
+.asm_105fb9
+ inc hl
+ ld a, [$a072]
+ cp [hl]
+ jr nc, .asm_105fc9
+ dec hl
+
+.asm_105fc1
+ ld a, [hli]
+ ld [$a071], a
+ ld a, [hl]
+ ld [$a072], a
+
+.asm_105fc9
+ call Function106162
+ call CloseSRAM
+ ret
+; 105fd0
+
+MobileFn_105fd0: mobile ; 105fd0
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a06f
+ xor a
+ ld [hli], a
+ ld [hl], a
+ call Function106162
+ call CloseSRAM
+ ret
+; 105fe3
+
+MobileFn_105fe3: mobile ; 105fe3
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a076
+ ld a, e
+ add [hl]
+ ld [hld], a
+ ld a, d
+ adc [hl]
+ ld [hld], a
+ jr nc, .asm_106001
+ inc [hl]
+ jr nz, .asm_106001
+ dec hl
+ inc [hl]
+ jr nz, .asm_106001
+ ld a, $ff
+rept 3
+ ld [hli], a
+endr
+ ld [hl], a
+
+.asm_106001
+ call Function106162
+ call CloseSRAM
+ ret
+; 106008
+
+MobileFn_106008: mobile ; 106008
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a07a
+ 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, .asm_106027
+ inc [hl]
+ jr nz, .asm_106027
+ ld a, $ff
+rept 3
+ ld [hli], a
+endr
+ ld [hl], a
+
+.asm_106027
+ call Function106162
+ call CloseSRAM
+ ret
+; 10602e
+
+MobileFn_10602e: mobile ; 10602e (41:602e)
+ ld hl, $a010
+ jp MobileFn_106117
+
+MobileFn_106035: mobile ; 106035
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8d]
+ and a
+ call CloseSRAM
+ ret nz
+ ld hl, $a014
+ jp Function106123
+
+MobileFn_106049: mobile ; 106049
+ ld hl, $a018
+ jp Function10611d
+
+MobileFn_106050: mobile ; 106050
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ ret z
+ ld hl, $a01b
+ jp Function10611d
+
+MobileFn_10605d: mobile ; 10605d
+ ld a, [BattleType]
+ cp BATTLETYPE_TUTORIAL
+ ret z
+ ld hl, $a01e
+ jp Function10611d
+
+MobileFn_10606a: mobile ; 10606a
+ ld hl, $a021
+ jp Function10611d
+
+MobileFn_106071: mobile ; 106071
+ ld hl, $a024
+ jp Function10611d
+
+Mobile_HallOfFame:: mobile ; 0x106078
+ ld hl, $a027
+ jp Function10611d
+
+MobileFn_10607f: mobile ; 10607f (41:607f)
+ ld hl, $a02a
+ jp Function10611d
+
+MobileFn_106086: mobile ; 106086
+ ld hl, $a02d
+ jp Function10611d
+
+MobileFn_10608d: mobile ; 10608d (41:608d)
+ ld hl, $a030
+ jp Function10611d
+
+MobileFn_106094: mobile ; 106094
+ ld hl, $a033
+ jp Function10611d
+
+MobileFn_10609b: mobile ; 10609b
+ ld hl, $a036
+ jp Function10611d
+
+Mobile_HealParty: mobile ; 1060a2
+ ld hl, $a039
+ jp Function10611d
+
+MobileFn_1060a9: mobile ; 1060a9 (41:60a9)
+ ld hl, $a03c
+ jr Function10611d
+
+MobileFn_1060af: mobile ; 1060af
+ ld hl, $a03f
+ jr Function10611d
+
+MobileFn_1060b5: mobile ; 1060b5
+ ld hl, $a042
+ jr Function10611d
+
+MobileFn_1060bb: mobile ; 1060bb
+ ld hl, $a045
+ jr Function10611d
+
+MobileFn_1060c1: mobile ; 1060c1
+ ld hl, $a048
+ jr Function10611d
+
+MobileFn_1060c7: mobile ; 1060c7
+ ld hl, $a04b
+ jr Function10611d
+
+MobileFn_1060cd: mobile ; 1060cd
+ ld hl, $a04e
+ jr Function106123
+
+MobileFn_1060d3: mobile ; 1060d3
+ ld hl, $a051
+ jr Function10611d
+
+MobileFn_1060d9: mobile ; 1060df
+ ld hl, $a054
+ jr Function10611d
+
+MobileFn_1060df: mobile ; 1060df
+ ld hl, $a057
+ jr Function10611d
+
+MobileFn_1060e5: mobile ; 1060e5
+ ld a, [hBattleTurn]
+ and a
+ ret nz
+ ld hl, $a05a
+ jr Function10611d
+
+MobileFn_1060ef: mobile ; 1060ef
+ ld hl, $a05d
+ jr Function10611d
+
+MobileFn_1060f5: mobile ; 1060f5
+ ld hl, $a060
+ jr Function10611d
+
+MobileFn_SaveBattleResult_Win: mobile ; win
+ ld hl, $a063
+ jr Function10611d
+
+MobileFn_SaveBattleResult_Lose: mobile ; lose
+ ld hl, $a066
+ jr Function10611d
+; 106107
+
+MobileFn_SaveBattleResult_Draw: mobile ; draw
+ ld hl, $a069
+ jr Function10611d
+; 10610d
+
+MobileFn_10610d: mobile ; 10610d
+ ld a, [hBattleTurn]
+ and a
+ ret nz
+ ld hl, $a06c
+ jr Function10611d
+; 106117
+
+MobileFn_106117: ; 106117
+ push bc
+ ld bc, 3
+ jr Function10612d
+; 10611d
+
+Function10611d: ; 10611d
+ push bc
+ ld bc, 2
+ jr Function10612d
+; 106123
+
+Function106123: ; 106123
+ push bc
+ ld bc, 1
+ jr Function10612d
+; 106129
+
+Function106129: ; 106129
+ push bc
+ ld bc, 0
+
+Function10612d: ; 10612d
+ ld a, $5
+ 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 Function106162
+ call CloseSRAM
+ pop bc
+ ret
+; 106155
+
+MobileFn_106155: mobile ; 106155
+ ld a, $5
+ call GetSRAMBank
+ call Function106162
+ call CloseSRAM
+ ret
+; 106162
+
+Function106162: ; 106162
+ push de
+ call Function10616e
+ ld hl, $a081 ; s5_a081
+ ld [hl], d
+ inc hl
+ ld [hl], e
+ pop de
+ ret
+; 10616e
+
+Function10616e: ; 10616e
+ push bc
+ ld hl, $a001 ; s5_a001
+ ld bc, $80
+ 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)
+
+Function1061b3: ; 1061b3
+ call Function10616e
+ ld hl, $a081 ; s5_a081
+ 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)
+
+Function1061cd: ; unreferenced
+ ld hl, $a001
+ ld bc, $82
+ xor a
+ call ByteFill
+ ld hl, $a07d
+ ld a, $3
+ ld [hli], a
+ ld [hl], $e8
+ call Function106162
+ ld hl, $a001
+ ld de, $a084
+ ld bc, $82
+ 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
+rept 3
+ inc de
+endr
+rept 2
+ dec a
+endr
+
+.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]
+rept 3
+ inc de
+endr
+ 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
+
+Function10630f: ; 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
+
+Function10632f: ; 10632f
+ or a
+ mobile
+
+ 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, .asm_106359
+ and a
+ jr z, .asm_106359
+ and $8f
+ cp c
+ jr nz, .asm_106359
+ ld c, a
+ scf
+ ret
+
+.asm_106359
+ xor a
+ ld c, a
+ ret
+; 10635c
+
+Function10635c: ; 10635c
+ ld a, [wcd25]
+ bit 7, a
+ ret nz
+ ld a, [wcd25]
+ ld hl, Jumptable_10636a
+ rst JumpTable
+ ret
+; 10636a
+
+Jumptable_10636a: ; 10636a
+ dw Function10637c
+ dw Function106392
+ dw Function1063cc
+ dw Function1063d8
+ dw Function1063e5
+ dw Function1063f3
+ dw Function106403
+ dw Function106442
+ dw Function106453
+; 10637c
+
+Function10637c: ; 10637c
+ ld de, wcd30
+ ld hl, $41
+ ld bc, $41
+ ld a, $40
+ call Function3e32
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], 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 Function10632f
+ ld a, c
+ and a
+ jr nz, .asm_1063b4
+ ld a, $b
+ ld [wcf64], a
+ ld a, $7
+ ld [wcd25], a
+ ret
+
+.asm_1063b4
+ ld a, $7
+ ld [wcf64], a
+ ld a, $7
+ ld [wcd25], a
+ ret
+
+.asm_1063bf
+ ld a, $1
+ ld [wcf64], a
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], a
+ ret
+; 1063cc
+
+Function1063cc: ; 1063cc
+ ld a, $78
+ ld [wcd42], a
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], a
+
+Function1063d8: ; 1063d8
+ ld hl, wcd42
+ dec [hl]
+ ret nz
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], a
+ ret
+; 1063e5
+
+Function1063e5: ; 1063e5
+ ld a, [wcf64]
+ cp $3
+ ret nz
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], a
+ ret
+; 1063f3
+
+Function1063f3: ; 1063f3
+ ld de, wcd31
+ ld a, $32
+ call Function3e32
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], 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, [wcd25]
+ inc a
+ ld [wcd25], a
+ ret
+
+.asm_106426
+ call Function10632f
+ ld a, c
+ and a
+ jr z, .asm_106435
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], a
+ ret
+
+.asm_106435
+ ld c, $0
+ call MobileFn_106314
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], a
+ ret
+; 106442
+
+Function106442: ; 106442
+ ld a, $36
+ call Function3e32
+ xor a
+ ld [hMobile], a
+ ld [hFFC9], a
+ ld a, [wcd25]
+ inc a
+ ld [wcd25], a
+
+Function106453: ; 106453
+ ld a, [wcd25]
+ set 7, a
+ ld [wcd25], a
+ nop
+ ld a, $4
+ ld [wcf64], a
+ ret
+; 106462
+
+Function106462: ; 106462
+ ret
+; 106463
+
+Function106463: ; 106463
+ ret
+; 106464
+
+Function106464:: ; 106464
+ ld de, MobilePhoneTilesGFX
+ ld hl, VTiles2 tile $60
+ lb bc, BANK(MobilePhoneTilesGFX), 1
+ call Get2bpp
+ ld de, GFX_f9424
+ ld hl, VTiles2 tile $61
+ lb bc, BANK(GFX_f9424), 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, $30
+ 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, w6_d000
+ 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"
+
+
+Function106594:: ; 106594
+ ld de, GFX_1065ad
+ ld hl, VTiles1
+ lb bc, BANK(GFX_1065ad), $80
+ call Get2bpp
+ ld de, GFX_1065ad + $800
+ ld hl, VTiles2 tile $7f
+ lb bc, BANK(GFX_1065ad), 1
+ call Get2bpp
+ ret
+; 1065ad
+
+GFX_1065ad:
+INCBIN "gfx/unknown/1065ad.2bpp"
diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm
index e09899f48..39d27e941 100644
--- a/misc/mobile_42.asm
+++ b/misc/mobile_42.asm
@@ -67,10 +67,10 @@ Function10805b: ; 10805b
ld [hl], e
inc hl
ld [hl], d
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld hl, VramState
ld a, [hl]
push af
@@ -88,7 +88,7 @@ Function10805b: ; 10805b
pop af
ld [VramState], a
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; 108089
@@ -97,10 +97,10 @@ Function108089: ; 108089
ld [hl], e
inc hl
ld [hl], d
- ld a, [$ffde]
+ ld a, [hMapAnims]
push af
xor a
- ld [$ffde], a
+ ld [hMapAnims], a
ld hl, VramState
ld a, [hl]
push af
@@ -118,20 +118,20 @@ Function108089: ; 108089
pop af
ld [VramState], a
pop af
- ld [$ffde], a
+ ld [hMapAnims], a
ret
; 1080b7
Function1080b7: ; 1080b7
xor a
ld [wJumptableIndex], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
call Function1081ad
call Function1081ca
- call Functione51
+ call LoadStandardFont
call LoadFontsBattleExtra
ld a, $1
ld [rVBK], a
@@ -170,7 +170,7 @@ Function1080b7: ; 1080b7
ld de, VTiles0 tile $30
call Function1081e9
ld a, [wc702]
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
ld de, VTiles2 tile $31
call Function1081e9
ld a, [$c6d0]
@@ -188,13 +188,13 @@ Function1080b7: ; 1080b7
Function108157: ; 108157
xor a
ld [wJumptableIndex], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
call Function1081ad
call Function1081ca
- call Functione51
+ call LoadStandardFont
call LoadFontsBattleExtra
call EnableLCD
xor a
@@ -284,8 +284,8 @@ Function108219: ; 108219
ld [CurPartySpecies], a
hlcoord 7, 2
ld d, $0
- ld e, $3
- predef Functiond008e
+ ld e, ANIM_MON_TRADE
+ predef AnimateFrontpic
ret
; 108229
@@ -293,8 +293,8 @@ Function108229: ; 108229
ld [CurPartySpecies], a
hlcoord 7, 2
ld d, $0
- ld e, $3
- predef Functiond00a3
+ ld e, ANIM_MON_TRADE
+ predef LoadMonAnimation
ret
; 108239
@@ -304,7 +304,7 @@ Function108239: ; 108239
call GetPokemonName
ld hl, StringBuffer1
pop de
- ld bc, $000b
+ ld bc, PKMN_NAME_LENGTH
call CopyBytes
ret
; 10824b
@@ -326,7 +326,7 @@ Function10824b: ; 10824b
ld [hWX], a
ld a, $90
ld [hWY], a
- call Functione51
+ call LoadStandardFont
call LoadFontsBattleExtra
callba Function106462
callba Function106464
@@ -508,14 +508,14 @@ Function10830e: ; 10830e
; 10839b
Function10839b: ; 10839b
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
call Function1081ca
ld a, [wc702]
ld [CurPartySpecies], a
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
ld de, VTiles2
call Function108201
call EnableLCD
@@ -548,9 +548,9 @@ Function10839b: ; 10839b
ld [hWY], a
ld a, [wc702]
ld [CurPartySpecies], a
- ld a, [wc72f]
+ ld a, [wEnemyTrappingMove]
ld [TempMonDVs], a
- ld a, [wc730]
+ ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
ld b, $1a
call GetSGBLayout
@@ -643,14 +643,14 @@ Function10842c: ; 10842c
; 1084d7
Function1084d7: ; 1084d7
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
call Function1081ca
ld a, [wc702]
ld [CurPartySpecies], a
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
ld de, VTiles2
call Function108201
call EnableLCD
@@ -692,16 +692,16 @@ Function1084d7: ; 1084d7
ld [hWY], a
ld a, [wc702]
ld [CurPartySpecies], a
- ld a, [wc72f]
+ ld a, [wEnemyTrappingMove]
ld [TempMonDVs], a
- ld a, [wc730]
+ ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
ld b, $1a
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
ld a, [wc702]
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
call Function10898a
ld a, [wc702]
call Function108229
@@ -712,14 +712,14 @@ Function1084d7: ; 1084d7
; 108589
Function108589: ; 108589
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
call Function1081ca
ld a, [wc702]
ld [CurPartySpecies], a
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
ld de, VTiles2
call Function108201
call EnableLCD
@@ -761,16 +761,16 @@ Function108589: ; 108589
ld [hWY], a
ld a, [wc702]
ld [CurPartySpecies], a
- ld a, [wc72f]
+ ld a, [wEnemyTrappingMove]
ld [TempMonDVs], a
- ld a, [wc730]
+ ld a, [wPlayerWrapCount]
ld [TempMonDVs + 1], a
ld b, $1a
call GetSGBLayout
ld a, $e4
call DmgToCgbBGPals
ld a, [wc702]
- ld hl, wc72f
+ ld hl, wEnemyTrappingMove
call Function10898a
ld a, [wc702]
call Function108229
@@ -781,7 +781,7 @@ Function108589: ; 108589
Function108638: ; 108638
callba Function8d03d
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@@ -804,7 +804,7 @@ Function108638: ; 108638
ld a, $5
ld [rSVBK], a
ld hl, Palette_109107
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0040
call CopyBytes
pop af
@@ -817,7 +817,7 @@ Function108638: ; 108638
Function108689: ; 108689
callba Function8d03d
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@@ -850,7 +850,7 @@ Function108689: ; 108689
ld a, $5
ld [rSVBK], a
ld hl, Palette_109107
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0040
call CopyBytes
pop af
@@ -862,7 +862,7 @@ Function108689: ; 108689
; 1086f4
Function1086f4: ; 1086f4
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
xor a
@@ -894,7 +894,7 @@ Function1086f4: ; 1086f4
ld a, $5
ld [rSVBK], a
ld hl, Palette_109107
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0040
call CopyBytes
pop af
@@ -1162,7 +1162,7 @@ Function108919: ; 108919
ld c, $28
call Function1082cc
callba Function8d03d
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearTileMap
call DisableLCD
@@ -1210,7 +1210,7 @@ asm_108966
call Function108ac8
hlcoord 7, 2
xor a
- ld [$ffad], a
+ ld [hFillBox], a
ld bc, $0707
predef FillBox
call WaitBGMap
@@ -1224,7 +1224,7 @@ Function10898a: ; 10898a
call Function108ac8
hlcoord 7, 2
xor a
- ld [$ffad], a
+ ld [hFillBox], a
ld bc, $0707
predef FillBox
call WaitBGMap
@@ -1259,10 +1259,10 @@ Function1089d2:
call Function108a92
ld de, wc703
call Function108a9c
- ld a, [wc733]
+ ld a, [wEnemyCharging]
ld de, wc724
call Function108aa3
- ld de, wc731
+ ld de, wEnemyWrapCount
call Function108abe
call Function108a87
ret
@@ -1407,7 +1407,7 @@ Function108ad4: ; 108ad4
ld [rVBK], a
ld hl, VTiles2 tile $4a
lb bc, $42, $10
- call Functiondc9
+ call Get2bpp_2
call DelayFrame
ld a, $0
ld [rVBK], a
@@ -1459,7 +1459,7 @@ Function108b45: ; 108b45
ld a, $5
ld [rSVBK], a
ld de, $7fff
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld a, e
ld [hli], a
ld d, a
@@ -1537,7 +1537,7 @@ Function108b98: ; 108b98
ld hl, Palette_108b98
.asm_108bb0
- ld de, Unkn1Pals + 8 * 7
+ ld de, wMapPals + 8 * 7
ld bc, $0040
call CopyBytes
pop af
@@ -1737,7 +1737,7 @@ Function108c9b: ; 108c9b
dec c
jr nz, .asm_108ccc
- ld de, wc731
+ ld de, wEnemyWrapCount
ld c, $2
.asm_108cd7
ld a, [hli]
diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm
index 1a891ce6c..6852745b5 100644
--- a/misc/mobile_45.asm
+++ b/misc/mobile_45.asm
@@ -5588,14 +5588,14 @@ INCBIN "gfx/unknown/11601a.2bpp"
Function11615a: ; 11615a
xor a
ld [wc30d], a
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
ld [wc310], a
ld [wc311], a
ld [wc312], a
ld [wc313], a
- ld [wPartyMonMenuIconAnims], a
- ld [wPartyMonMenuIconAnims + 1], a
- ld [wPartyMonMenuIconAnims + 4], a
+ ld [wc314], a
+ ld [wc314 + 1], a
+ ld [wc314 + 4], a
ld [wc3f6], a
ld [wc3f8], a
ld [wc3f2], a
@@ -5617,7 +5617,7 @@ Function11619d: ; 11619d
ld a, [wc30d]
and a
ret z
- ld a, [wPartyMonMenuIconAnims + 5]
+ ld a, [wc314 + 5]
cp $2
jr c, .asm_1161b4
ld a, $a0
@@ -5631,7 +5631,7 @@ Function11619d: ; 11619d
; 1161b8
Function1161b8: ; 1161b8
- ld a, [wPartyMonMenuIconAnims + 5]
+ ld a, [wc314 + 5]
ld e, a
ld d, 0
ld hl, Jumptable_1161c7
@@ -5758,9 +5758,9 @@ Function1161d5: ; 1161d5
ld [wc2a9], a
ld a, d
ld [wc2aa], a
- ld a, [wPartyMonMenuIconAnims + 5]
+ ld a, [wc314 + 5]
inc a
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
ret
; 11628c
@@ -5774,19 +5774,19 @@ MenuDataHeader_11628c: ; 11628c
Function116294: ; 116294
callba Function170d02
- ld a, [wPartyMonMenuIconAnims + 5]
+ ld a, [wc314 + 5]
inc a
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
ld a, [rSVBK]
push af
ld a, $5
ld [rSVBK], a
ld hl, wd030
- ld de, wPartyMonMenuIconAnims + 12
+ ld de, wc314 + 12
ld bc, $0010
call CopyBytes
ld hl, Palette_11734e
- ld de, Unkn1Pals + 8 * 7
+ ld de, wMapPals + 8 * 7
ld bc, $0008
call CopyBytes
call SetPalettes
@@ -5799,9 +5799,9 @@ Function116294: ; 116294
Function1162cb: ; 1162cb
callba Function170cc6
- ld a, [wPartyMonMenuIconAnims + 5]
+ ld a, [wc314 + 5]
inc a
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
ld a, [rSVBK]
push af
ld a, $5
@@ -5838,7 +5838,7 @@ Function1162f2: ; 1162f2
ld c, a
ld a, [wc30f]
ld b, a
- ld a, [wPartyMonMenuIconAnims + 4]
+ ld a, [wc314 + 4]
ld e, a
ld a, [hli]
sub e
@@ -5912,7 +5912,7 @@ Function11636e: ; 11636e
ld a, $5
ld [rSVBK], a
ld hl, BGPals
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0040
call CopyBytes
pop af
@@ -5939,7 +5939,7 @@ Function11636e: ; 11636e
xor a
ld [wc2aa], a
xor a
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
ld [wc30d], a
ret
; 1163c0
@@ -5961,7 +5961,7 @@ Function1163c0: ; 1163c0
push af
ld a, $5
ld [rSVBK], a
- ld hl, wPartyMonMenuIconAnims + 12
+ ld hl, wc314 + 12
ld de, wd030
ld bc, $0010
call CopyBytes
@@ -5997,7 +5997,7 @@ Function1163c0: ; 1163c0
.asm_116439
xor a
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
ld [wc30d], a
ret
; 116441
@@ -6014,14 +6014,14 @@ Function116441: ; 116441
xor a
ld [wc2aa], a
xor a
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
ld [wc30d], a
ret
; 116468
Function116468: ; 116468
call Function116567
- ld a, [wPartyMonMenuIconAnims]
+ ld a, [wc314]
cp $d
jr nz, .asm_1164a8
ld hl, wc30e
@@ -6213,7 +6213,7 @@ Function116567: ; 116567
; 11659d
Function11659d: ; 11659d
- ld a, [wPartyMonMenuIconAnims]
+ ld a, [wc314]
cp $12
ret nc
ld e, a
@@ -6289,7 +6289,7 @@ Function116600:
call Function116780
ret c
ld a, $2
- ld [wPartyMonMenuIconAnims], a
+ ld [wc314], a
ret
; 116615
@@ -6332,24 +6332,24 @@ Function116640:
call Function116780
ret c
ld a, $7
- ld [wPartyMonMenuIconAnims], a
+ ld [wc314], a
ret
; 116655
Function116655: ; 116655
xor a
- ld [wPartyMonMenuIconAnims + 3], a
+ ld [wc314 + 3], a
call Function11678e
Function11665c:
- ld hl, wPartyMonMenuIconAnims + 3
+ ld hl, wc314 + 3
ld a, $1
xor [hl]
ld [hl], a
add $4
ld c, a
call Function11679c
- ld a, [wPartyMonMenuIconAnims + 3]
+ ld a, [wc314 + 3]
and a
jr nz, .asm_116673
ld a, $48
@@ -6378,7 +6378,7 @@ Function11668d:
call Function116780
ret c
ld a, $c
- ld [wPartyMonMenuIconAnims], a
+ ld [wc314], a
ret
; 11669f
@@ -6393,9 +6393,9 @@ Function1166a2:
ld [wc30f], a
ld [wc3f3], a
ld a, $ff
- ld [wPartyMonMenuIconAnims + 2], a
+ ld [wc314 + 2], a
xor a
- ld [wPartyMonMenuIconAnims + 3], a
+ ld [wc314 + 3], a
ld a, $0
ld c, a
call Function11679c
@@ -6417,25 +6417,25 @@ Function1166d6:
cp $48
jr nz, .asm_1166e4
xor a
- ld [wPartyMonMenuIconAnims + 2], a
+ ld [wc314 + 2], a
.asm_1166e4
ld a, [wc311]
cp $ff
ret nz
ld a, $4
- ld [wPartyMonMenuIconAnims + 5], a
+ ld [wc314 + 5], a
xor a
- ld [wPartyMonMenuIconAnims], a
+ ld [wc314], a
ret
; 1166f4
Function1166f4: ; 1166f4
ld [wc30e], a
ld a, b
- ld [wPartyMonMenuIconAnims + 2], a
+ ld [wc314 + 2], a
xor a
- ld [wPartyMonMenuIconAnims + 3], a
+ ld [wc314 + 3], a
ld hl, wc30f
.asm_116702
call Random
@@ -6460,9 +6460,9 @@ Function1166f4: ; 1166f4
Function11671f: ; 11671f
ld [wc30f], a
ld a, b
- ld [wPartyMonMenuIconAnims + 3], a
+ ld [wc314 + 3], a
xor a
- ld [wPartyMonMenuIconAnims + 2], a
+ ld [wc314 + 2], a
ld hl, wc30e
.asm_11672d
call Random
@@ -6482,11 +6482,11 @@ Function11671f: ; 11671f
Function116747: ; 116747
ld hl, wc30e
- ld a, [wPartyMonMenuIconAnims + 2]
+ ld a, [wc314 + 2]
add [hl]
ld [hl], a
ld hl, wc30f
- ld a, [wPartyMonMenuIconAnims + 3]
+ ld a, [wc314 + 3]
add [hl]
ld [hl], a
ret
@@ -6518,7 +6518,7 @@ Function116758: ; 116758
ld a, $4
.asm_11677a
- ld [wPartyMonMenuIconAnims + 4], a
+ ld [wc314 + 4], a
ret
; 11677e
@@ -6526,11 +6526,11 @@ Function11677e: ; 11677e
ld a, $0
Function116780:
- ld hl, wPartyMonMenuIconAnims + 1
+ ld hl, wc314 + 1
cp [hl]
jr z, .asm_11678c
ld a, [hl]
- ld [wPartyMonMenuIconAnims], a
+ ld [wc314], a
scf
ret
@@ -6540,15 +6540,15 @@ Function116780:
; 11678e
Function11678e: ; 11678e
- ld hl, wPartyMonMenuIconAnims
+ ld hl, wc314
ld a, [hl]
- ld [wPartyMonMenuIconAnims + 1], a
+ ld [wc314 + 1], a
inc [hl]
ret
; 116797
Function116797: ; 116797
- ld hl, wPartyMonMenuIconAnims
+ ld hl, wc314
inc [hl]
ret
; 11679c
@@ -7667,10 +7667,10 @@ Function11765d: ; 11765d (45:765d)
Function11766b: ; 11766b (45:766b)
call Function117699
- ld a, [rSVBK] ; $ff00+$70
+ ld a, [rSVBK]
push af
ld a, $5
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
call Function1176ee
ld a, $5
call GetSRAMBank
@@ -7683,7 +7683,7 @@ Function11766b: ; 11766b (45:766b)
call CopyBytes
call CloseSRAM
pop af
- ld [rSVBK], a ; $ff00+$70
+ ld [rSVBK], a
ret
Function117699: ; 117699 (45:7699)
@@ -7708,7 +7708,7 @@ Function117699: ; 117699 (45:7699)
ld hl, wc708
ld bc, $11
call ByteFill
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
callba Function171c87
callba Function104061
@@ -7726,7 +7726,7 @@ Function1176ee: ; 1176ee (45:76ee)
jr Function1176ee
.asm_117709
callba Function8cf53
- call WhiteBGMap
+ call ClearBGPalettes
call ClearScreen
call ClearSprites
ret
@@ -7972,12 +7972,12 @@ Function11784c: ; 11784c (45:784c)
Function1178aa: ; 1178aa (45:78aa)
ld hl, MenuDataHeader_1179b5
call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
+ call MenuBox
+ call MenuBoxCoord2Tile
ld hl, MenuDataHeader_1179bd
call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
+ call MenuBox
+ call MenuBoxCoord2Tile
callba Function104061
hlcoord 16, 8
ld de, String_1179c5
@@ -7993,7 +7993,7 @@ Function1178aa: ; 1178aa (45:78aa)
jp Function117a0a
Function1178e8: ; 1178e8 (45:78e8)
- ld a, [hJoyPressed] ; $ff00+$a7
+ ld a, [hJoyPressed]
cp $2
jr z, .asm_117939
cp $1
@@ -8075,8 +8075,8 @@ asm_11797e: ; 11797e (45:797e)
Function117984: ; 117984 (45:7984)
ld hl, MenuDataHeader_1179b5
call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
+ call MenuBox
+ call MenuBoxCoord2Tile
callba Function104061
hlcoord 1, 14
ld de, String_1179e1
@@ -8172,7 +8172,7 @@ Function117a94: ; 0x117a94
ld [wcf64], a
ld [wcf65], a
ld [wcf66], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
callba Function172e78
callba Function104000
@@ -8180,7 +8180,7 @@ Function117a94: ; 0x117a94
; 0x117ab4
Function117ab4: ; 0x117ab4
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
callba Function172e78
callba Function172eb9
@@ -8197,7 +8197,7 @@ Function117acd: ; 0x117acd
callba Function104000
jr Function117acd
.asm_117ae2
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
ret
@@ -8235,8 +8235,8 @@ Function117b14:
ret nz
ld hl, Data117cbc
call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
+ call MenuBox
+ call MenuBoxCoord2Tile
jp Function117cdd
Function117b28:
@@ -8247,8 +8247,8 @@ Function117b28:
Function117b31:
ld hl, Data117cc4
call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
+ call MenuBox
+ call MenuBoxCoord2Tile
hlcoord 16, 8
ld de, YesNo117ccc
call PlaceString
@@ -8373,7 +8373,7 @@ Function117bb6:
ld [rSVBK], a
ld a, $7
call GetSRAMBank
- ld hl, DefaultFlypoint
+ ld hl, wd002
ld de, $b000
ld bc, $1000
call CopyBytes
@@ -8385,8 +8385,8 @@ Function117bb6:
Function117c4a:
ld hl, Data117cbc
call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
+ call MenuBox
+ call MenuBoxCoord2Tile
callba Function104061
ld hl, MobileStadiumSuccessText
call PrintText
@@ -8469,16654 +8469,3 @@ Function117cdd: ; 0x117cdd
ret
-SECTION "bank46", ROMX, BANK[$46]
-
-Function118000: ; 118000
- ld a, $1
- ld [wcd38], a
- jr asm_11800b
-
-Function118007: ; 118007
- xor a
- ld [wcd38], a
-
-asm_11800b
- call Function1183cb
- 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_118024
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $1b
- jr c, .asm_118037
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118037
- call Function1184a5
- call Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_118024
- pop af
- ld [rSVBK], a
- call Function118452
- call Function222a
-Function11805e: ; 11805e (46:405e)
- ret
-; 11805f
-
-Function11805f: ; 11805f
- ld a, $1
- ld [wcd38], a
- call Function1183cb
- 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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11807d
- pop af
- ld [rSVBK], a
- call Function118452
- call Function222a
- ret
-; 1180b8
-
-Function1180b8: ; 1180b8
- call Function1183cb
- 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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1180d1
- pop af
- ld [rSVBK], a
- call Function118452
- call Function222a
- ret
-; 11811a
-
-Function11811a: ; 11811a
- ld a, 1
- ld [wcd38], a
- jr Function118125
-
-Function118121: ; 118121
- xor a
- ld [wcd38], a
-
-Function118125: ; 118125
- call Function1183cb
- 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
-.asm_11813e
- call JoyTextDelay
- call Function118473
- ld a, [wcf66]
- cp $f
- jr c, .asm_118151
- ld a, [wcd34]
- ld [wcf66], a
-
-.asm_118151
- call Function11854d
- call Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11813e
- xor a
- ld [Unkn1Pals], a
- pop af
- ld [rSVBK], a
- call Function118452
- call Function118180
- call Function222a
- ret
-; 118180
-
-Function118180: ; 118180
- ld a, [ScriptVar]
- and a
- ret nz
- ld a, [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, $d202
- ld c, $96
- callba Function17d0b3
- jr c, .asm_1181d0
- ld de, $d202
- ld bc, $0196
- callba Function17d1e1
- jr c, .asm_1181d0
- ld hl, $d202
- ld de, $a8b2
- ld bc, $0096
- call CopyBytes
-.asm_1181c9
- pop af
- ld [rSVBK], a
- call CloseSRAM
- ret
-
-.asm_1181d0
- ld a, $d3
- ld [wc300], a
- ld [ScriptVar], a
- jr .asm_1181c9
-; 1181da
-
-Function1181da: ; 1181da
- call Function1183cb
- 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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1181f8
- pop af
- ld [rSVBK], a
- call Function118452
- call Function222a
- ret
-; 118233
-
-Function118233: ; 118233
- call Function1183cb
- 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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11824c
- pop af
- ld [rSVBK], a
- call Function118452
- ret
-; 118284
-
-Function118284: ; 118284
- call Function1183cb
- ld a, $19
- ld [wcd33], a
- ld a, $1e
- ld [wcd34], a
- ld a, $5
- ld [wc3f0], a
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $3
- ld [rSVBK], a ; $ff00+$70
-.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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_11829d
- pop af
- ld [rSVBK], a ; $ff00+$70
- call Function118452
- ret
-; 1182d5 (46:42d5)
-
-
-Function1182d5: ; 1182d5
- call Function1183cb
- 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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_1182ee
- pop af
- ld [rSVBK], a
- call Function118452
- call Function222a
- ret
-; 118329
-
-Function118329: ; 118329
- call Function1183cb
- 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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_118342
- pop af
- ld [rSVBK], a
- call Function118452
- ret
-; 11837a
-
-Function11837a: ; 11837a
- call Function1183cb
- 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 Function11a8fa
- callba Function115dd3
- callba Function11619d
- call DelayFrame
- ld a, [wcf66]
- ld hl, wcd33
- cp [hl]
- jr nz, .asm_118393
- pop af
- ld [rSVBK], a
- call Function118452
- ret
-; 1183cb
-
-Function1183cb: ; 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 [wPartyMonMenuIconAnims + 6], 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 [$ffc9], a
- ld [hMobile], a
- ei
- callba Function106462
- 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
-
-Function118452: ; 118452
- di
- xor a
- ld [$ffc9], 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 $3c
- ret nz
- xor a
- ld [wcd66], a
- ld a, [wcd67]
- inc a
- ld [wcd67], a
- cp $3c
- ret nz
- ld a, [wcd68]
- inc a
- ld [wcd68], a
- cp $63
- jr z, .asm_1184a0
- xor a
- ld [wcd67], a
- ret
-
-.asm_1184a0
- xor a
- ld [wcd65], a
- ret
-; 1184a5
-
-Function1184a5: ; 1184a5
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_1184b4
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 1184b4
-
-Jumptable_1184b4: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- dw Function118e76
-; 1184ec
-
-Function1184ec: ; 1184ec
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_1184fb
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 1184fb
-
-Jumptable_1184fb: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- dw Function119b45
- dw Function11878d
- dw Function119ac9
- dw Function118e76
-; 11854d
-
-Function11854d: ; 11854d
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11855c
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11855c
-
-Jumptable_11855c: ; 11855c
- dw Function118922
- dw Function118936
- dw Function118982
- dw Function11805e
- dw Function119ca2
- dw Function119cab
- dw Function119cb8
- dw Function119cc3
- dw Function119cdf
- dw Function119cec
- dw Function119c97
- dw Function119cab
- dw Function119cb8
- dw Function118e76
- dw Function118e87
- dw Function118e76
-; 11857c
-
-Function11857c: ; 11857c
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11858b
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11858b
-
-Jumptable_11858b: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- dw Function118e76
-; 1185c3
-
-Function1185c3: ; 1185c3
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_1185d2
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 1185d2
-
-Jumptable_1185d2: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- dw Function119cc3
- dw Function119cdf
- dw Function119cec
- dw Function11914e
- dw Function118e76
-; 118624
-
-Function118624: ; 118624
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_118633
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 118633
-
-Jumptable_118633: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- dw Function118e76
-; 118671
-
-Function118671: ; 118671
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_118680
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 118680
-
-Jumptable_118680: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- dw Function118e76
-; 1186b2
-
-Function1186b2: ; 1186b2
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_1186c1
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 1186c1
-
-Jumptable_1186c1: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- dw Function118e76
-; 1186f5
-
-Function1186f5: ; 1186f5 (46:46f5)
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_118704
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 118704 (46:4704)
-
-Jumptable_118704: ; 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 Function11805e
- dw Function11967d
- dw Function119685
- dw Function119665
- dw Function11966d
- dw Function118e76
- dw Function118e87
- dw Function118e76
-; 118746 (46:4746)
-
-Function118746: ; 118746
- ld a, [wcf66]
- ld e, a
- ld d, 0
- ld hl, Jumptable_118755
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 118755
-
-Jumptable_118755: ; 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 Function11805e
- dw Function118e76
- dw Function118e87
- 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 ; $ff00+$70
-.asm_1187a7
- jp Function119e2e
-.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 [wPartyMonMenuIconAnims + 5], 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 ; $ff00+$70
- ld de, Unkn1Pals
- 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 [wPartyMonMenuIconAnims + 5], a
- ld a, [wcd34]
- ld [wcf66], a
- ret
-
-Function118821: ; 118821 (46:4821)
- ld a, [wPartyMonMenuIconAnims + 5]
- cp $3
- jr c, .asm_11884a
- cp $4
- jr z, .asm_11884a
- ld a, [hJoyDown] ; $ff00+$a8
- cp $5
- jr nz, .asm_11884a
- ld a, $a
- call Function3e32
- ld a, $a
- ld [wc300], a
- ld a, [wc3f0]
- ld [wPartyMonMenuIconAnims + 5], 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 Function119e2e
- ld a, [wcd33]
- ld [wcd45], a
-
-Function118880: ; 118880 (46:4880)
- call Function119ed8
- 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 Function119e2e
- jp Function119e2e
-; 1188b0
-
-Function1188b0: ; 1188b0 (46:48b0)
- ld de, wPartyMonMenuIconAnims + 48 + 2
- 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, wc708
-.asm_1188d3
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .asm_1188d3
- call Function119eb4
- call Function119ec2
- ld hl, wc708
- ld a, $6
- jp Function119e2b
-
-Function1188e7: ; 1188e7 (46:48e7)
- ld de, wPartyMonMenuIconAnims + 48 + 2
- 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 [wPartyMonMenuIconAnims + 5], a
- ld c, $1
- callba Function115e18
- ld a, $8
- ld [wcd3c], a
- call Function119ed8
- jp Function119e2e
-
-
-Function11891c: ; 11891c
- call Function118b42
- jp Function119e2e
-
-
-Function118922: ; 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 Function11a9c0
- call Function119e2e
-
-Function118936:
- ld a, [wPartyMonMenuIconAnims + 6]
- and a
- ret nz
- ld hl, MenuDataHeader_119cf7
- call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
- call Function321c
- hlcoord 16, 8, AttrMap
- ld a, $40
- or [hl]
- ld [hl], a
- call Function3200
- ld a, $1
- ld [wcd4f], a
- ld a, $1
- ld [rSVBK], a
- ld a, [StatusFlags]
- bit 6, a
- 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 Function119e2e
-
-Function118982:
- 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 $2
- jr nz, .asm_118a39
- ld a, [hl]
- and $1
- jr nz, .asm_118a01
- ld a, [hl]
- and $80
- jr nz, .asm_1189e6
- ld a, [hl]
- and $40
- jr nz, .asm_1189f2
-.asm_1189e5
- ret
-
-.asm_1189e6
- ld hl, wcd4f
- dec [hl]
- jr nz, .asm_1189e5
- ld a, [wcd4a]
- ld [hl], a
- jr .asm_1189e5
-
-.asm_1189f2
- ld a, [wcd4a]
- ld hl, wcd4f
- inc [hl]
- cp [hl]
- jr nc, .asm_1189e5
- ld a, $1
- ld [hl], a
- jr .asm_1189e5
-
-.asm_118a01
- 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 WriteBackup
- pop af
- ld [rSVBK], a
- ld a, [wcd38]
- and a
- jr nz, .asm_118a30
- call Function119d93
- ret c
- call Function119dd1
- ret c
-
-.asm_118a30
- ld a, [wcd4f]
- ld [wd000 + $800], a
- jp Function119e2e
-
-.asm_118a39
- call PlayClickSFX
-
-.asm_118a3c
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- call WriteBackup
- pop af
- ld [rSVBK], a
- ld a, $7
- ld [wcf66], a
- ld a, $0
- ld [wcd46], 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, Unkn1Pals
- ld bc, $1000
- jp Function118b10
-; 118a7a
-
-Function118a7a: ; 118a7a
- ld hl, BattleDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, Unkn1Pals
- ld bc, $1000
- jp Function118b10
-; 118a8f
-
-Function118a8f: ; 118a8f
- ld hl, ExchangeDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, Unkn1Pals
- 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, LYOverrides
- ld bc, $e00
- jr Function118b10
-; 118abc
-
-Function118abc: ; 118abc (46:4abc)
- ld hl, MenuDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, Unkn1Pals
- ld bc, $1000
- jr Function118b10
-; 118ad0 (46:4ad0)
-
-Function118ad0:
- ld hl, IndexDownloadURL
- ld de, wcc60
- ld bc, $80
- call CopyBytes
- ld de, Unkn1Pals
- ld bc, $1000
- jr Function118b10
-
-Function118ae4:
- push bc
- push de
- push hl
- ld a, $8
- ld [wcd3c], a
- call Function119ed8
- 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 Function119ed8
- call Function118b24
- pop bc
- pop de
- ld a, $2a
- jp Function119e2b
-
-Function118b24: ; 118b24 (46:4b24)
- ld hl, wPartyMonMenuIconAnims + 48 + 2
- 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, wPartyMonMenuIconAnims + 48 + 2
- ret
-; 118b42 (46:4b42)
-
-Function118b42: ; 118b42
- ld hl, DefaultFlypoint
- 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
-rept 2
- ld [hli], a
-endr
- 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
- ld hl, LYOverridesBackup
- 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 Function119e2e
-
-.asm_118d7b
- ld a, $d3
- jp Function118805
-; 118d80
-
-Function118d80: ; 118d80
- call Function118e06
- ld a, [wcd38]
- and a
- jr z, .asm_118d8e
- call Function119e2e
- jr asm_118d9f
-
-.asm_118d8e
- ld a, $9
- ld [wcd3c], a
- ld a, $12
- ld [wcd45], a
- call Function119e2e
-
-Function118d9b:
- call Function119ed8
- 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, $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, $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 Function119e2e
-; 118e06
-
-Function118e06: ; 118e06
- ld hl, DefaultFlypoint
- 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
-rept 2
- inc hl
-endr
- 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)
- ld a, $c
- ld [wcd3c], a
- jp Function119e2e
-
-Function118e7e: ; 118e7e (46:4e7e)
- call Function119ed8
- ret c
- ld a, $36
- jp Function119e2b
-
-Function118e87: ; 118e87 (46:4e87)
- call Function119ed8
- 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, $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 Function119e2e
-; 118ec6
-
-Function118ec6: ; 118ec6
- call Function118440
- call SpeechTextBox
- ld hl, $d80e
- ld de, wPartyMonMenuIconAnims + 12
- ld bc, $0026
- call CopyBytes
- xor a
- ld [wPartyMonMenuIconAnims + 11], a
- ld a, $20
- ld [wPartyMonMenuIconAnims + 7], a
- ld a, $c3
- ld [wPartyMonMenuIconAnims + 8], a
- hlcoord 1, 14
- ld a, l
- ld [wPartyMonMenuIconAnims + 9], a
- ld a, h
- ld [wPartyMonMenuIconAnims + 10], a
- ld a, $2
- ld [wPartyMonMenuIconAnims + 6], a
- ld a, $1d
- ld [wcd3c], a
- ld a, $24
- ld [wcd45], a
- ld a, $11
- ld [wcd46], a
- ld a, $1c
- ld [wcd47], a
- jp Function119e2e
-; 118f0d
-
-Function118f0d: ; 118f0d
- call Function119ed8
- 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, .asm_118f32
- ld hl, UnknownText_0x11aa13
- call Function11a9c0
-
-.asm_118f32
- 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 [wcd45], a
- ld a, $13
- ld [wcd46], a
- ld a, $1c
- ld [wcd47], a
- jp Function119e2e
-; 118f5e
-
-Function118f5e: ; 118f5e
- call Function119ed8
- 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, wPartyMonMenuIconAnims + 48 + 2
- 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, wc708 % $100
- ld [hli], a
- ld a, wc708 / $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, wPartyMonMenuIconAnims + 48 + 2
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-
-.asm_118fba
- call Function119e2e
- jp Function119e2e
-; 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, UnknownText_0x11aa2c
- jr .asm_118ff5
-
-.asm_118ff2
- ld hl, UnknownText_0x11aa4b
-
-.asm_118ff5
- call Function11a9c0
- jr Function119009
-
-.asm_118ffa
- ld hl, UnknownText_0x11aa4b
- call Function11a9c0
- call Function119e2e
- call Function119e2e
- jp Function119e2e
-
-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, wPartyMonMenuIconAnims + 48 + 2
- 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, wPartyMonMenuIconAnims + 48 + 2
- ld de, Unkn1Pals
- ld bc, $1000
- ld a, $2c
- jp Function119e2b
-; 119054
-
-Function119054: ; 119054
- ld a, $6
- call GetSRAMBank
- ld hl, DefaultFlypoint
- ld a, [wcd4f]
- ld e, a
- ld a, [wcd50]
- ld d, a
- ld a, [Unkn1Pals]
- ld c, a
- ld a, [wd001]
- ld b, a
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_11908a
- ld a, $6
- ld [rSVBK], a
- ld hl, DefaultFlypoint
- ld a, [Unkn1Pals]
- ld c, a
- ld a, [wd001]
- 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 Function119e2e
-; 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, Unkn1Pals
- 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, [Unkn1Pals]
- ld c, a
- ld a, [wd001]
- ld b, a
- ld hl, DefaultFlypoint
- ld de, $a000
- call Function119192
- ret c
- ld a, [wcd89]
- and $1
- jr z, .asm_11913e
- ld a, $6
- ld [rSVBK], a
- ld a, [Unkn1Pals]
- ld c, a
- ld a, [wd001]
- ld b, a
- ld hl, DefaultFlypoint
- call Function119192
- ret c
-
-.asm_11913e
- ld a, $3
- ld [rSVBK], a
- call CloseSRAM
- ld hl, UnknownText_0x11aa5a
- call Function11a9c0
- jp Function119e2e
-; 11914e
-
-Function11914e: ; 11914e
- call Function119ed8
- 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 Function119e2e
- 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, wd102
- 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 Function119e2e
-; 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 [wcd45], a
- call Function119e2e
-
-Function1193a0:
- call Function119ed8
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call Function119ed8
- ld hl, wPartyMonMenuIconAnims + 48 + 2
- 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, wc708 % $100
- ld [hli], a
- ld a, wc708 / $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, wPartyMonMenuIconAnims + 48 + 2
- 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 [wcd45], a
- call Function119e2e
-
-Function1193fb:
- call Function119ed8
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call Function119ed8
- ld de, Unkn1Pals
- ld bc, $1000
- jp Function118b10
-; 119413
-
-Function119413: ; 119413
- ld a, $6
- call GetSRAMBank
- ld a, [Unkn1Pals]
- ld c, a
- ld a, [wd001]
- ld b, a
-rept 2
- dec bc
-endr
- 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, [wd001]
- ld b, a
- ld hl, wd002
- call Function119192
- ret c
-
-.asm_119447
- ld a, $3
- ld [rSVBK], a
- call CloseSRAM
- jp Function119e2e
-; 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, [DefaultFlypoint]
- 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
-rept 2
- inc hl
-endr
- 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 [wcd45], a
- ld a, $f
- ld [wcd46], a
- ld a, $14
- ld [wcd47], a
- call Function119e2e
- jp Function119e2e
-
-Function119612: ; 119612 (46:5612)
- ld a, $14
- ld [wcd3c], a
- ld a, $1c
- ld [wcd45], a
- ld a, $10
- ld [wcd46], a
- ld a, $14
- ld [wcd47], a
- jp Function119e2e
-
-Function119629: ; 119629 (46:5629)
- call Function119ed8
- 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 [wcd45], a
- ld a, $14
- ld [wcd47], a
- call Function119e2e
-
-Function119648: ; 119648 (46:5648)
- call Function119ed8
- ret c
- call DelayFrame
- ld a, $8
- ld [wcd3c], a
- call Function119ed8
- call Function118b24
- ld de, Unkn1Pals
- ld bc, $1000
- ld a, $2a
- jp Function119e2b
-
-Function119665: ; 119665 (46:5665)
- ld a, $1a
- ld [wcd3c], a
- call Function119e2e
-
-Function11966d: ; 11966d (46:566d)
- call Function119ed8
- 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 Function119e2e
-
-Function119685: ; 119685 (46:5685)
- call Function119ed8
- 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, wc708
- 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, BANK[$46]
-; A hack to use ascii above.
-
-Function1196cd: ; 1196cd (46:56cd)
- ld de, wc719
- call Function1196de
- ld [wcd4a], a
- inc de
- call Function1196de
- ld [wcd4b], a
- ret
-
-Function1196de: ; 1196de (46:56de)
- ld a, [de]
- inc de
- 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, DefaultFlypoint
-.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
-rept 2
- inc hl
-endr
- 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 Function119e2e
-; 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, DefaultFlypoint
- call Function118e39
- ld a, $9
- ld [wcd3c], a
- ld a, $12
- ld [wcd45], a
- call Function119e2e
-
-Function1197dc:
- call Function119ed8
- ret c
- call DelayFrame
- ld hl, DefaultFlypoint
- ld de, wcc60
- ld bc, $0080
- call CopyBytes
- dec de
- xor a
- ld [de], a
- call Function118b24
- ld de, Unkn1Pals
- ld bc, $1000
- ld a, $2a
- jp Function119e2b
-; 119800
-
-Function119800: ; 119800
- ld a, $fd
- ld [$c6d0], a
- ld [wc702], 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 Function119e2e
-; 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 Function108000
- 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 Function119e2e
-
-.asm_1198a0
- ld a, $a
- ld [wc300], a
- jp Function119e2e
-
-.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 Function108012
- 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 Function119e2e
-; 1198ee
-
-Function1198ee: ; 1198ee
- ld hl, UnknownText_0x11aab2
- call Function11a9c0
- call Function119e2e
-
-Function1198f7:
- ld a, [wPartyMonMenuIconAnims + 6]
- and a
- ret nz
- ld hl, $c608 + 2
- call Function119940
- ld hl, $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, wc708 % $100
- ld [hli], a
- ld a, wc708 / $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, $d800
- ld de, $de00
- ld bc, $0200
- ld a, $2c
- jp Function119e2b
-; 119937
-
-Function119937: ; 119937
- callba Function1707f4
- jp Function119e2e
-; 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 Function119ed8
- 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 [StringBuffer2 + 10], a
- ld de, Unkn1Pals
- ld a, $20
- jp Function119e2b
-; 119987
-
-Function119987: ; 119987
- ld hl, wd001
- ld a, [Unkn1Pals]
- 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, [StringBuffer2 + 10]
- 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 Function119e2e
- 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, LYOverrides
- ld bc, $0700
- ld a, $28
- jp Function119e2b
-; 1199e2
-
-Function1199e2: ; 1199e2
- ld c, $c
- ld de, Unknown_119e33
- call Function119e4f
- jp c, Function119ac9
- ld a, c
- cp $1
- jp nz, Function119ac9
- ld hl, $d880
- ld bc, Unknown_119af1
-.asm_1199f9
- ld a, [bc]
- and a
- jr z, .asm_119a05
- cp [hl]
- jp nz, Function119ac9
- inc bc
- inc hl
- jr .asm_1199f9
-
-.asm_119a05
- ld c, $17
- ld de, Unknown_119e40
- call Function119e4f
- jp c, .asm_119aa7
- ld a, c
- cp $1
- jp nz, .asm_119aa7
- ld a, [wd000 + $880]
- cp $31
- jp nz, .asm_119aa7
- ld a, [wd000 + $881]
- cp $20
- jp nz, .asm_119aa7
- ld a, [wd000 + $88a]
- cp $20
- jp nz, .asm_119aa7
- ld a, [wd000 + $894]
- cp $20
- jp nz, .asm_119aa7
- xor a
- ld [wd000 + $8a0], a
- ld [wd000 + $8a1], a
- ld [wd000 + $8a2], a
- ld [wd000 + $8a3], 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 [wd000 + $8a0], a
- ld [wd000 + $8a1], a
- ld [wd000 + $8a2], a
- ld [wd000 + $8a3], 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, [StringBuffer2 + 10]
- and a
- jr nz, .asm_119aa7
- ld a, [wd000 + $895]
- sub $30
- ld [StringBuffer2 + 10], a
- ld a, [wcf64]
- ld [StringBuffer2 + 11], a
- ld a, [wcf65]
- ld [StringBuffer2 + 12], a
-
-Function119ac9:
- ld a, [Unkn1Pals]
- ld l, a
- ld a, [wd001]
- ld h, a
- dec hl
- ld a, l
- ld [Unkn1Pals], a
- ld a, h
- ld [wd001], 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
-
-Unknown_119af1:
- INCBIN "data/mobile/x-game-code.txt"
- INCBIN "data/mobile/x-game-result.txt"
-; 119b0d
-
-Function119b0d: ; 119b0d
- ld a, $8
- ld [wcd3c], a
- call Function119ed8
- ld a, [StringBuffer2 + 10]
- cp $1
- jr z, .asm_119b23
- ld a, $19
- ld [wcf66], a
- jr Function119b3b
-
-.asm_119b23
- ld a, $10
- ld [wcd89], a
- ld a, [StringBuffer2 + 11]
- ld l, a
- ld a, [StringBuffer2 + 12]
- ld h, a
- ld de, LYOverrides
- ld bc, $0700
- ld a, $24
- jp Function119e2b
-
-Function119b3b:
- ld a, [StringBuffer2 + 11]
- ld l, a
- ld a, [StringBuffer2 + 12]
- 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, [StringBuffer2 + 10]
- 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, [StringBuffer2 + 10]
- cp $1
- jr z, .asm_119b75
- jp Function119e2e
-
-.asm_119b75
- ld a, [LYOverrides]
- ld b, a
- ld a, [wd101]
- or b
- jr z, .asm_119be3
- ld hl, $d800
- ld de, wd102
-.asm_119b85
- ld a, [de]
- inc de
- cp $d
- jr nz, .asm_119b85
- inc de
- ld a, [de]
- cp $d
- jr nz, .asm_119b85
-rept 2
- inc de
-endr
-.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
-rept 3
- inc hl
-endr
- 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 [StringBuffer2 + 10], a
- ret
-
-.asm_119bfa
- inc de
- ld a, [de]
- cp $d
- jr nz, .asm_119b93
- ld a, l
- cp (wd000 + $800 + $69) % $100
- jr nz, .asm_119be3
- ld a, h
- cp (wd000 + $800 + $69) / $100
- jr nz, .asm_119be3
- ld a, $5
- call GetSRAMBank
- ld a, [wcf64]
- ld [$b090], a
- ld a, [wcf65]
- ld [$b091], a
- ld hl, $d800
- ld de, $b023
- ld bc, $0069
- call CopyBytes
- ld a, $3
- ld [$a800], a
- call CloseSRAM
- ld hl, $d800
- ld de, $c608
- ld bc, $0069
- call CopyBytes
- jp Function119e2e
-; 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 [StringBuffer2 + 10], 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
-
-Function119c97: ; 119c97
- ld hl, UnknownText_0x11ab0f
- call Function11a9c0
- call Function119e2e
- jr Function119cab
-
-Function119ca2:
- ld hl, UnknownText_0x11aaf0
- call Function11a9c0
- call Function119e2e
-
-Function119cab:
- ld a, [wPartyMonMenuIconAnims + 6]
- and a
- ret nz
- ld a, $80
- ld [wcd50], a
- call Function119e2e
-
-Function119cb8:
- ld hl, wcd50
- dec [hl]
- ret nz
- ld a, $0
- ld [wcf66], a
- ret
-; 119cc3
-
-Function119cc3: ; 119cc3
- ld a, [wcd38]
- and a
- jr z, .asm_119cd1
- dec a
- jr z, .asm_119cd6
- ld hl, UnknownText_0x11aa6a
- jr .asm_119cd9
-
-.asm_119cd1
- ld hl, UnknownText_0x11ab4a
- jr .asm_119cd9
-
-.asm_119cd6
- ld hl, UnknownText_0x11ab6e
-
-.asm_119cd9
- call Function11a9c0
- call Function119e2e
-
-Function119cdf:
- ld a, [wPartyMonMenuIconAnims + 6]
- and a
- ret nz
- ld a, $f
- ld [wcd3c], a
- call Function119e2e
-
-Function119cec:
- call Function119ed8
- ret c
- ld a, [wcd46]
- 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
-
-Function119d93: ; 119d93 (46:5d93)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld a, [wcd4f]
- ld c, 10
- call SimpleMultiply
- ld hl, wcd50
- ld [hl], a
- ld bc, PartyMon2 - PartyMon1
- ld de, PartyMon1Level
- ld a, [PartyCount]
-.asm_119daf
- push af
- ld a, [de]
- push hl
- push de
- pop hl
- add hl, bc
- push hl
- pop de
- pop hl
- cp [hl]
- jr z, .asm_119dbd
- jr nc, .asm_119dc6
-.asm_119dbd
- pop af
- dec a
- jr nz, .asm_119daf
- pop af
- ld [rSVBK], a ; $ff00+$70
- and a
- ret
-.asm_119dc6
- pop af
- ld a, $4
- ld [wcf66], a
- pop af
- ld [rSVBK], a ; $ff00+$70
- scf
- ret
-
-Function119dd1: ; 119dd1 (46:5dd1)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, [wcd4f]
- cp 70 / 10
- jr nc, .asm_119e08
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- ld hl, PartyMon1Level
- ld bc, PartyMon2 - PartyMon1
- ld de, PartySpecies
- ld a, [PartyCount]
-.asm_119deb
- push af
- ld a, [de]
- cp MEWTWO
- jr z, .asm_119dfd
- cp MEW
- jr z, .asm_119dfd
- cp LUGIA
- jr c, .asm_119e02
- cp NUM_POKEMON + 1
- jr nc, .asm_119e02
-.asm_119dfd
- ld a, [hl]
- cp 70
- jr c, .asm_119e0d
-.asm_119e02
- add hl, bc
- inc de
- pop af
- dec a
- jr nz, .asm_119deb
-.asm_119e08
- pop af
- ld [rSVBK], a ; $ff00+$70
- and a
- ret
-.asm_119e0d
- 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 ; $ff00+$70
- scf
- ret
-; 119e2b (46:5e2b)
-
-Function119e2b: ; 119e2b (46:5e2b)
- call Function3e32
-
-Function119e2e: ; 119e2e (46:5e2e)
- ld hl, wcf66
- inc [hl]
- ret
-; 119e33 (46:5e33)
-
-Unknown_119e33: ; 119e33
- INCBIN "data/mobile/x-game-code-prefix.txt"
-Unknown_119e40:
- INCBIN "data/mobile/x-game-result-prefix.txt"
-; 119e4f
-
-Function119e4f: ; 119e4f
- push bc
- ld hl, LYOverrides
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
-.asm_119e57
- ld a, [de]
- cp [hl]
- jr z, .asm_119e64
-.asm_119e5b
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_119e57
-.asm_119e61
- pop bc
- scf
- ret
-
-.asm_119e64
- push de
-.asm_119e65
- ld a, [de]
- inc de
- cp "\n"
- jr z, .asm_119e7a
- cp [hl]
- jr nz, .asm_119e77
- inc hl
- dec bc
- ld a, b
- or c
- jr nz, .asm_119e65
- pop de
- jr .asm_119e61
-
-.asm_119e77
- pop de
- jr .asm_119e5b
-
-.asm_119e7a
- pop de
- pop bc
- inc hl
- ld de, $d880
-.asm_119e80
- ld a, [hli]
- ld [de], a
- inc de
- cp $d
- jr z, .asm_119e8c
- dec c
- jr nz, .asm_119e80
- scf
- ret
-
-.asm_119e8c
- and a
- ret
-; 119e8e
-
-Function119e8e: ; 119e8e
- cp $60
- jr c, .asm_119e95
- sub $57
- ret
-
-.asm_119e95
- sub $30
- ret
-; 119e98
-
-Function119e98: ; 119e98
- ld a, $2
-.asm_119e9a
- 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, .asm_119e9a
- ret
-; 119eb4
-
-Function119eb4: ; 119eb4 (46:5eb4)
- xor a
- ld [wc3cc], a
- ld de, wc3ac
-.asm_119ebb
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .asm_119ebb
- ret
-
-Function119ec2: ; 119ec2 (46:5ec2)
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$aa5c], a
- ld de, $aa4c
-.asm_119ece
- ld a, [de]
- inc de
- ld [hli], a
- and a
- jr nz, .asm_119ece
- call CloseSRAM
- ret
-
-Function119ed8: ; 119ed8 (46:5ed8)
- ld a, [rSVBK] ; $ff00+$70
- ld [wcd8c], a
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- call Function119eee
- ld a, [wcd8c]
- ld [rSVBK], a ; $ff00+$70
- ld a, $1
- ld [hBGMapMode], a ; $ff00+$d4
- ret
-
-Function119eee: ; 119eee (46:5eee)
- ld a, [wcd3c]
- ld e, a
- ld d, 0
- ld hl, Jumptable_119efd
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 119efd (46:5efd)
-
-Jumptable_119efd: ; 119efd
- 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 Function11a207
- dw Function11a235
- 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 Function11a5b0
-; 119f45
-
-Function119f45: ; 119f45
- hlcoord 4, 2
- ld de, String_11a661
- call PlaceString
- ld a, $80
- ld [wcd44], a
- jp Function11a5b0
-; 119f56
-
-Function119f56: ; 119f56
- ld a, [wcd44]
- and a
- jr z, .asm_119f62
- dec a
- ld [wcd44], a
- scf
- ret
-
-.asm_119f62
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6aa
- call PlaceString
- ld a, $80
- ld [wcd44], a
- jp Function11a5b0
-; 119f76
-
-Function119f76: ; 119f76
- ld a, [wcd44]
- and a
- jr z, .asm_119f82
- dec a
- ld [wcd44], a
- scf
- ret
-
-.asm_119f82
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a679
- call PlaceString
- call Function11a5f5
- xor a
- ld [wcd44], a
- jp Function11a5b0
-; 119f98
-
-Function119f98: ; 119f98
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wcd44]
- 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 Function104061
- 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 [wPartyMonMenuIconAnims], a
- callba Function104061
- and a
- ret
-
-.asm_119fef
- call ExitMenu
- call ExitMenu
- callba Function104061
- ld a, [wcd45]
- ld [wcf66], a
- callba Function115dc3
- ld a, $a
- ld [wc300], a
- scf
- ret
-; 11a00e
-
-Function11a00e: ; 11a00e
- ld a, $5
- call GetSRAMBank
- ld a, [$aa4b]
- and a
- jr z, .asm_11a02a
- ld a, [$aa4c]
- call CloseSRAM
- and a
- ret nz
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$aa4b], 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, $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, $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 BackUpTiles
- callba Function11765d
- callba Function117ab4
- callba Function106462
- callba Function106464
- call ExitMenu
- callba Function104061
- 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 BackUpTiles
- callba Function11765d
- callba Function17d3f6
- callba Function106462
- callba Function106464
- call ExitMenu
- callba Function104061
- 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 [wcd44], a
- jp Function11a5b0
-; 11a131
-
-Function11a131: ; 11a131
- ld hl, wcd44
- 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 [wcd44], a
- jp Function11a5b0
-; 11a16d
-
-Function11a16d: ; 11a16d
- ld a, [wcd44]
- and a
- jr z, .asm_11a179
- dec a
- ld [wcd44], a
- scf
- ret
-
-.asm_11a179
- call Function11a63c
- call Function11a1e6
- hlcoord 4, 2
- ld de, wPartyMonMenuIconAnims + 48 + 2
- call PlaceString
- call Function11a5f5
- xor a
- ld [wcd44], a
- jp Function11a5b0
-; 11a192
-
-Function11a192: ; 11a192
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wcd44]
- and a
- jr nz, .asm_11a1b6
- call ExitMenu
- callba Function104061
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a1b6
- call ExitMenu
- callba Function104061
- ld a, [wcd45]
- 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, wPartyMonMenuIconAnims + 48 + 2
- 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
-
-Function11a207: ; 11a207
- ld hl, MenuDataHeader_11a2de
- call LoadMenuDataHeader
- call Function1cbb
- call GetMemTileCoord
- call Function321c
- 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 [wcd44], a
- jp Function11a5b0
-; 11a235
-
-Function11a235: ; 11a235
- ld hl, hJoyPressed
- ld a, [hl]
- and A_BUTTON
- jr nz, .asm_11a28f
- ld a, [hl]
- and B_BUTTON
- jr nz, .asm_11a2c1
- ld a, [hl]
- and D_UP
- jr nz, .asm_11a251
- ld a, [hl]
- and D_DOWN
- jr nz, .asm_11a270
-.asm_11a24c
- call Function11a9f0
- scf
- ret
-
-.asm_11a251
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wcd44]
- and a
- jr z, .asm_11a24c
- xor a
- ld [wcd44], a
- hlcoord 15, 8
- ld a, $ed
- ld [hl], a
- hlcoord 15, 10
- ld a, $7f
- ld [hl], a
- jr .asm_11a24c
-
-.asm_11a270
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wcd44]
- and a
- jr nz, .asm_11a24c
- inc a
- ld [wcd44], a
- hlcoord 15, 8
- ld a, $7f
- ld [hl], a
- hlcoord 15, 10
- ld a, $ed
- ld [hl], a
- jr .asm_11a24c
-
-.asm_11a28f
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- call PlayClickSFX
- ld a, [wcd44]
- and a
- jr nz, .asm_11a2c4
- call ExitMenu
- callba Function104061
- ld a, [wcd46]
- cp $0
- jr z, .asm_11a2b4
- ld a, [wcd47]
- jr .asm_11a2b7
-
-.asm_11a2b4
- ld a, [wcd33]
-
-.asm_11a2b7
- ld [wcf66], a
- ld a, $a
- ld [wc300], a
- scf
- ret
-
-.asm_11a2c1
- call PlayClickSFX
-
-.asm_11a2c4
- call ExitMenu
- callba Function104061
- 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 [wcd44], a
- jp Function11a5b0
-; 11a302
-
-Function11a302: ; 11a302
- ld a, [wcd44]
- and a
- jr z, .asm_11a30e
- dec a
- ld [wcd44], 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 [wcd44], a
- jp Function11a5b0
-; 11a33a
-
-Function11a33a: ; 11a33a
- ld a, [wcd44]
- and a
- jr z, .asm_11a346
- dec a
- ld [wcd44], a
- scf
- ret
-
-.asm_11a346
- call ExitMenu
- callba Function104061
- callba Function115dc3
- and a
- ret
-; 11a357
-
-Function11a357: ; 11a357
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a743
- call PlaceString
- ld a, $80
- ld [wcd44], a
- jp Function11a5b0
-; 11a36b
-
-Function11a36b: ; 11a36b
- ld a, [wcd44]
- and a
- jr z, .asm_11a377
- dec a
- ld [wcd44], a
- scf
- ret
-
-.asm_11a377
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a755
- call PlaceString
- call Function11a5f5
- xor a
- ld [wcd44], a
- jp Function11a5b0
-; 11a38d
-
-Function11a38d: ; 11a38d
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wcd44]
- and a
- jr nz, .asm_11a3b1
- call ExitMenu
- callba Function104061
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a3b1
- call ExitMenu
- callba Function104061
- ld a, [wcd45]
- 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 [wcd44], a
- jp Function11a5b0
-; 11a3d9
-
-Function11a3d9: ; 11a3d9
- ld a, [wcd44]
- and a
- jr z, .asm_11a3e5
- dec a
- ld [wcd44], a
- scf
- ret
-
-.asm_11a3e5
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a779
- call PlaceString
- ld a, $80
- ld [wcd44], a
- jp Function11a5b0
-; 11a3f9
-
-Function11a3f9: ; 11a3f9
- ld a, [wcd44]
- and a
- jr z, .asm_11a405
- dec a
- ld [wcd44], a
- scf
- ret
-
-.asm_11a405
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a755
- call PlaceString
- call Function11a5f5
- xor a
- ld [wcd44], a
- jp Function11a5b0
-; 11a41b
-
-Function11a41b: ; 11a41b
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wcd44]
- and a
- jr nz, .asm_11a43f
- call ExitMenu
- callba Function104061
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a43f
- call ExitMenu
- callba Function104061
- 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 [wcd44], a
- jp Function11a5b0
-; 11a466
-
-Function11a466: ; 11a466
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a7c1
- call PlaceString
- ld a, $80
- ld [wcd44], a
- jp Function11a5b0
-; 11a47a
-
-Function11a47a: ; 11a47a
- ld a, [wcd44]
- and a
- jr z, .asm_11a486
- dec a
- ld [wcd44], 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 [wcd44], a
- jp Function11a5b0
-; 11a49e
-
-Function11a49e: ; 11a49e
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wcd44]
- and a
- jr nz, .asm_11a4c7
- call ExitMenu
- callba Function104061
- 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 Function104061
- ld a, [wcd46]
- 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 [wcd44], a
- jp Function11a5b0
-; 11a4fe
-
-Function11a4fe: ; 11a4fe
- call Function11a536
- ret c
- call PlayClickSFX
- ld a, [wcd44]
- and a
- jr nz, .asm_11a522
- call ExitMenu
- callba Function104061
- call Function11a63c
- hlcoord 4, 2
- ld de, String_11a6d2
- call PlaceString
- and a
- ret
-
-.asm_11a522
- call ExitMenu
- callba Function104061
- ld a, [wcd45]
- 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 Function104061
-
-.asm_11a562
- scf
- ret
-
-.asm_11a564
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- ld a, [wcd44]
- and a
- jr z, .asm_11a54d
- xor a
- ld [wcd44], 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, [wcd44]
- and a
- jr nz, .asm_11a54d
- inc a
- ld [wcd44], 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 [wcd44], a
-
-.asm_11a5a7
- xor a
- ld [wcd8a], a
- ld [wcd8b], a
- and a
- ret
-; 11a5b0
-
-Function11a5b0: ; 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 BackUpTiles
- hlcoord 0, 0, AttrMap
- ld b, $6
- ld c, $14
- hlcoord 0, 0
- ld b, $4
- ld c, $12
- call Function3eea
- callba Function104061
- 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 BackUpTiles
- 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 Function104061
- 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
- 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, $ffb5
- ld hl, Unknown_11a8da
- call Function11a88c
- xor a
- ld b, a
- ld a, [hDivisor]
- and $f
- ld e, a
- ld a, [$ffb9]
- and $f
- call Function11a884
- ld e, a
- ld a, [$ffbb]
- 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, [$ffb9]
- and $f0
- swap a
- call Function11a884
- ld e, a
- ld a, [$ffbb]
- 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, [$ffba]
- and $f
- call Function11a884
- ld e, a
- ld a, [$ffbc]
- 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
-
-Function11a8fa: ; 11a8fa
- ld a, [wPartyMonMenuIconAnims + 6]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11a909
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11a909
-
-Jumptable_11a909: ; 11a909
- dw Function11a970
- dw Function11a90f
- dw Function11a971
-; 11a90f
-
-Function11a90f: ; 11a90f
- ld a, $1
- ld [rSVBK], a
- call SpeechTextBox
- ld a, $50
- ld hl, wPartyMonMenuIconAnims + 12
- ld bc, $008c
- call ByteFill
- ld a, [wPartyMonMenuIconAnims + 7]
- ld l, a
- ld a, [wPartyMonMenuIconAnims + 8]
- ld h, a
- ld de, wPartyMonMenuIconAnims + 12
-.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 [wPartyMonMenuIconAnims + 11], a
- ld a, $20
- ld [wPartyMonMenuIconAnims + 7], a
- ld a, $c3
- ld [wPartyMonMenuIconAnims + 8], a
- hlcoord 1, 14
- ld a, l
- ld [wPartyMonMenuIconAnims + 9], a
- ld a, h
- ld [wPartyMonMenuIconAnims + 10], a
- ld hl, wPartyMonMenuIconAnims + 6
- inc [hl]
- ld a, $3
- ld [rSVBK], a
-
-Function11a970:
- ret
-; 11a971
-
-Function11a971: ; 11a971
- ld hl, wPartyMonMenuIconAnims + 11
- 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, [wPartyMonMenuIconAnims + 7]
- ld e, a
- ld a, [wPartyMonMenuIconAnims + 8]
- ld d, a
- ld a, [de]
- inc de
- ld [hli], a
- ld a, e
- ld [wPartyMonMenuIconAnims + 7], a
- ld a, d
- ld [wPartyMonMenuIconAnims + 8], a
- ld a, $50
- ld [hl], a
- ld a, [wPartyMonMenuIconAnims + 9]
- ld l, a
- ld a, [wPartyMonMenuIconAnims + 10]
- ld h, a
- ld de, wcd8d
- call PlaceString
- ld a, c
- ld [wPartyMonMenuIconAnims + 9], a
- ld a, b
- ld [wPartyMonMenuIconAnims + 10], a
- ld a, [wcd8d]
- cp $50
- jr nz, .asm_11a9bf
- xor a
- ld [wPartyMonMenuIconAnims + 6], a
-
-.asm_11a9bf
- ret
-; 11a9c0
-
-Function11a9c0: ; 11a9c0
- ld a, l
- ld [wPartyMonMenuIconAnims + 7], a
- ld a, h
- ld [wPartyMonMenuIconAnims + 8], a
- ld a, $1
- ld [wPartyMonMenuIconAnims + 6], a
- ret
-; 11a9ce
-
-Function11a9ce: ; 11a9ce
- call WhiteBGMap
- call Function2bae
- call Call_ExitMenu
- callba Function106462
- callba Function106464
- call Functiond90
- callba Function2b5c
- 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
-
-UnknownText_0x11aa13: ; 0x11aa13
- text "SAVE FILE will be"
- line "sent."
- done
-; 0x11aa2c
-
-UnknownText_0x11aa2c: ; 0x11aa2c
- text "Sent SAVE FILE."
- line "Reading NEWS…"
- done
-; 0x11aa4b
-
-UnknownText_0x11aa4b: ; 0x11aa4b
- text "Reading NEWS…"
- done
-; 0x11aa5a
-
-UnknownText_0x11aa5a: ; 0x11aa5a
- text "Received NEWS!"
- done
-; 0x11aa6a
-
-UnknownText_0x11aa6a: ; 0x11aa6a
- text "Quit reading NEWS?"
- done
-; 0x11aa7e
-
-UnknownText_0x11aa7e: ; 0x11aa7e
- text "Canceled sending"
- line "SAVE FILE."
- done
-; 0x11aa9b
-
-UnknownText_0x11aa9b: ; 0x11aa9b
- text "ODD EGG"
- line "was received!"
- done
-; 0x11aab2
-
-UnknownText_0x11aab2: ; 0x11aab2
- text "Registering your"
- line "record…"
- done
-; 0x11aacc
-
-UnknownText_0x11aacc: ; 0x11aacc
- text "One visit per day"
- line "per BATTLE ROOM!"
- done
-; 0x11aaf0
-
-UnknownText_0x11aaf0: ; 0x11aaf0
- text "A party #MON"
- line "tops this level."
- done
-; 0x11ab0f
-
-UnknownText_0x11ab0f: ; 0x11ab0f
- text_from_ram wcd49
- text " may go"
- line "only to BATTLE"
-
- para "ROOMS that are"
- line "Lv.70 or higher."
- done
-; 0x11ab4a
-
-UnknownText_0x11ab4a: ; 0x11ab4a
- text "Cancel your BATTLE"
- line "ROOM challenge?"
- done
-; 0x11ab6e
-
-UnknownText_0x11ab6e: ; 0x11ab6e
- text "Exit GYM LEADER"
- line "HONOR ROLL?"
- done
-; 0x11ab8b
-
-UnknownText_0x11ab8b: ; 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
-
-UnknownText_0x11abf1: ; 0x11abf1
- text "Enter which"
- line "BATTLE ROOM?"
- done
-; 0x11ac0b
-
-UnknownText_0x11ac0b: ; 0x11ac0b
- text "Which BATTLE ROOM?"
- done
-; 0x11ac1f
-
-UnknownText_0x11ac1f: ; 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 InefficientlyClear121BytesAtwc300
- call Function11ac51
- call Function2b3c
- ret
-; 11ac51
-
-Function11ac51: ; 11ac51
- xor a
- ld [hBGMapMode], a
- ld hl, Options
- ld a, [hl]
- push af
- set 4, [hl]
- ld a, [VramState]
- push af
- xor a
- ld [VramState], a
- ld a, [hInMenu]
- push af
- ld a, $1
- ld [hInMenu], a
- xor a
- ld [$ffde], a
- ld [wcd49], a
- ld [wcd4a], a
- ld [wcd4c], a
- ld [wcd4d], a
- ld [wcd4e], a
- call Function11ad1b
- call DelayFrame
-.asm_11ac82
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_11aca8
- call Function11b314
- call Function11acb7
- call Function11ad6e
- ld a, $78
- ld [wc3b5], a
- callba Function8cf7a
- callba Function104061
- jr .asm_11ac82
-
-.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, Unknown_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, $0007
- call CopyBytes
- ld a, [wcd49]
- inc a
- ld [wcd49], a
- ld a, [hl]
- cp $ff
- jr nz, .asm_11aceb
- xor a
- ld [wcd49], a
-
-.asm_11aceb
- ld hl, Unknown_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, $0007
- 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 WhiteBGMap
- call ClearSprites
- call ClearTileMap
- callba Function17c000
- ld a, [wcfa9]
- ld [wcd82], a
- dec a
- ld [hObjectStructIndexBuffer], a
- ld a, $10
- ld [wc3b7], a
- ld hl, Function8e83f
- ld a, BANK(Function8e83f)
- ld e, $4
- rst FarCall
- ld hl, Function8e83f
- ld a, BANK(Function8e83f)
- 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 Function40bdc
- 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 Function1cbb
- hlcoord 12, 12
- ld de, String_11ae40
- call PlaceString
- hlcoord 10, 10, AttrMap
- ld bc, $0808
- call Function11afd6
- callba Function104061
- call Function11ad8a
- ld a, $1
- ld [wcfa9], 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, [wcfa9]
- dec a
- ret z
- jr .asm_11adf4
-
-.asm_11aded
- ld a, [wcfa9]
- inc a
- cp $4
- ret z
-
-.asm_11adf4
- push af
- ld hl, Unknown_11afcc
- call Function11afbb
- pop af
- ld [wcfa9], a
- ld hl, Unknown_11afcc
- call Function11afb7
- ret
-
-.asm_11ae06
- call PlayClickSFX
- ld a, [wcfa9]
- dec a
- ld hl, wcd30
- ld [hl], a
- and a
- jr z, .asm_11ae28
- hlcoord 2, 14
- ld a, [wcfa9]
- 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 Function104061
- 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 Function1cbb
- hlcoord 10, 14
- ld de, String_11aff0
- call PlaceString
- ld hl, MenuDataHeader_11b013
- call LoadMenuDataHeader
- call Function1cbb
- 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 Function104061
- call Function11ad8a
- ld a, $1
- ld [wcfa9], 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, [wcfa9]
- dec a
- ret z
- jr .asm_11aecf
-
-.asm_11aec8
- ld a, [wcfa9]
- inc a
- cp $3
- ret z
-
-.asm_11aecf
- push af
- ld hl, Unknown_11afd2
- call Function11afbb
- pop af
- ld [wcfa9], a
- ld hl, Unknown_11afd2
- call Function11afb7
- ret
-
-.asm_11aee1
- call PlayClickSFX
- ld a, [wcfa9]
- cp $2
- jr z, .asm_11aeb4
- ld a, [wcd4b]
- ld [ScriptVar], a
- call Function11b022
- call Function11ad8a
-
-.asm_11aef7
- call ExitMenu
- call ExitMenu
- callba Function104061
- ret
-; 11af04
-
-Function11af04: ; 11af04
- ld hl, MenuDataHeader_11afe8
- call LoadMenuDataHeader
- call Function1cbb
- hlcoord 10, 14
- ld de, String_11b003
- call PlaceString
- ld hl, MenuDataHeader_11b013
- call LoadMenuDataHeader
- call Function1cbb
- 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 Function104061
- call Function11ad8a
- ld a, $2
- ld [wcfa9], 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, [wcfa9]
- dec a
- ret z
- jr .asm_11af85
-
-.asm_11af7e
- ld a, [wcfa9]
- inc a
- cp $3
- ret z
-
-.asm_11af85
- push af
- ld hl, Unknown_11afd2
- call Function11afbb
- pop af
- ld [wcfa9], a
- ld hl, Unknown_11afd2
- call Function11afb7
- ret
-
-.asm_11af97
- call PlayClickSFX
- ld a, [wcfa9]
- cp $2
- jr z, .asm_11af6a
- ld a, $6
- ld [wJumptableIndex], a
- xor a
- ld [ScriptVar], a
-
-.asm_11afaa
- call ExitMenu
- call ExitMenu
- callba Function104061
- ret
-; 11afb7
-
-Function11afb7: ; 11afb7
- ld e, $ed
- jr asm_11afbd
-
-Function11afbb:
- ld e, $7f
-
-asm_11afbd:
- ld a, [wcfa9]
- dec a
- ld c, a
- ld b, 0
-rept 2
- add hl, bc
-endr
- 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, $0014
- ld a, $3
-.asm_11afdb
- push bc
- push hl
-.asm_11afdd
- ld [hli], a
- dec c
- jr nz, .asm_11afdd
- pop hl
- add hl, de
- pop bc
- dec b
- jr nz, .asm_11afdb
- 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
-.asm_11b041
- ld a, [hli]
- cp $ef
- jr z, .asm_11b051
- cp $f5
- jr z, .asm_11b051
- cp $50
- jr z, .asm_11b055
- inc c
- jr .asm_11b041
-
-.asm_11b051
- dec hl
- ld a, $50
- ld [hli], a
-
-.asm_11b055
- dec hl
- push hl
- ld e, $4
- ld d, $0
- add hl, de
- ld e, l
- ld d, h
- pop hl
-.asm_11b05f
- ld a, [hld]
- ld [de], a
- dec de
- dec c
- jr nz, .asm_11b05f
- pop af
- pop de
- cp $1
- jr nz, .asm_11b070
- ld hl, String_11b07a
- jr .asm_11b073
-
-.asm_11b070
- ld hl, String_11b07e
-
-.asm_11b073
- ld bc, 4
- call CopyBytes
- ret
-; 11b07a
-
-String_11b07a: db "ォスの "
-String_11b07e: 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, $c6d0
- add hl, de
- ld e, l
- ld d, h
- hlcoord 11, 2
- ld a, [wc7d3]
-.asm_11b0b9
- push af
- ld a, [de]
- ld [wd265], a
- push de
- push hl
- call Function11b0cf
- pop hl
- ld de, $0028
- add hl, de
- pop de
- inc de
- pop af
- dec a
- jr nz, .asm_11b0b9
- ret
-; 11b0cf
-
-Function11b0cf: ; 11b0cf
- and a
- ret z
- call Function11b0ec
- ret c
- call Function11b0e1
- push hl
- call GetPokemonName
- pop hl
- call PlaceString
- ret
-; 11b0e1
-
-Function11b0e1: ; 11b0e1
- call Function11b21e
- jr nz, .asm_11b0e8
- inc hl
- ret
-
-.asm_11b0e8
- ld a, $1
- ld [hli], a
- ret
-; 11b0ec
-
-Function11b0ec: ; 11b0ec
- call Function11b22a
- ret nz
- inc hl
- ld de, String_11b0f9
- call PlaceString
- scf
- ret
-; 11b0f9
-
-String_11b0f9: ; 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 Function11b22a
- 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
-
-Function11b21e: ; 11b21e
- push de
- push hl
- ld a, [wd265]
- dec a
- call CheckCaughtMon
- pop hl
- pop de
- ret
-; 11b22a
-
-Function11b22a: ; 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
-rept 2
- add hl, de
-endr
- 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 Function11b22a
- 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 Function11b22a
- 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 Function8e9bc
- 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, Unknown_11b350
- ld a, [wJumptableIndex]
- cp $2
- jr c, .asm_11b349
- ld a, [wc7d1]
- cp $4
- jr nc, .asm_11b344
- cp $3
- jr c, .asm_11b349
- ld a, [wJumptableIndex]
- cp $2
- jr z, .asm_11b349
- cp $3
- jr z, .asm_11b349
- cp $6
- jr z, .asm_11b349
-
- ld bc, Unknown_11b37b
- jr .asm_11b34c
-
-.asm_11b344
- ld bc, Unknown_11b389
- jr .asm_11b34c
-
-.asm_11b349
- ld bc, Unknown_11b36d
-
-.asm_11b34c
- call Function11b397
- ret
-; 11b350
-
-Unknown_11b350:
- db $1a, $5e, $1a, $66, $1a, $6e, $1a, $76, $1a, $7e, $1a, $86, $1a, $8e
- db $22, $5e, $22, $66, $22, $6e, $22, $76, $22, $7e, $22, $86, $22, $8e
- db $ff
-
-Unknown_11b36d:
- db $30, $31, $31, $31, $31, $31, $32, $40, $41, $41, $41, $41, $41, $42
-Unknown_11b37b:
- db $30, $31, $31, $39, $39, $39, $39, $40, $41, $41, $39, $39, $39, $39
-Unknown_11b389:
- db $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39
-
-Function11b397: ; 11b397
- ld de, Sprites
-.asm_11b39a
- ld a, [hl]
- cp $ff
- ret z
- ld a, [wc7d1]
- and $7
- swap a
- add [hl]
- inc hl
- ld [de], a
- inc de
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [bc]
- inc bc
- ld [de], a
- inc de
- ld a, $5
- ld [de], a
- inc de
- jr .asm_11b39a
-; 11b3b6
-
-Function11b3b6: ; 11b3b6
-.asm_11b3b6
- ld a, [hl]
- cp $ff
- 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 .asm_11b3b6
-; 11b3d9
-
-Function11b3d9: ; 11b3d9
- ld de, Sprites + $70
- push de
- ld a, [wc7d2]
- dec a
- ld e, a
- ld a, [wc7d1]
- ld hl, wc7d0
- add [hl]
- cp e
- jr z, .asm_11b40d
- ld hl, 0
- ld bc, $0070
- call AddNTimes
- ld e, l
- ld d, h
- ld b, $0
- ld a, d
- or e
- jr z, .asm_11b40f
- ld a, [wc7d2]
- ld c, a
-.asm_11b401
- ld a, e
- sub c
- ld e, a
- ld a, d
- sbc $0
- ld d, a
- jr c, .asm_11b40f
- inc b
- jr .asm_11b401
-
-.asm_11b40d
- ld b, $70
-
-.asm_11b40f
- ld a, $15
- add b
- pop hl
- ld [hli], a
- cp $41
- jr c, .asm_11b42b
- ld a, [wJumptableIndex]
- cp $4
- jr z, .asm_11b43b
- cp $5
- jr z, .asm_11b43b
- cp $7
- jr z, .asm_11b43b
- cp $8
- jr z, .asm_11b43b
-
-.asm_11b42b
- ld a, $9b
- ld [hli], a
- ld a, [wcd4c]
- add $3c
- ld [hli], a
- ld a, [wcd4c]
- add $1
- ld [hl], a
- ret
-
-.asm_11b43b
- ld a, $9b
- ld [hli], a
- ld a, $39
- ld [hli], a
- xor a
- ld [hl], a
- ret
-; 11b444
-
-Function11b444: ; 11b444
- call Function11b44b
- call Function11b45c
- ret
-; 11b44b
-
-Function11b44b: ; 11b44b
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- call UpdateTime
- ret
-; 11b45c
-
-Function11b45c: ; 11b45c
-.asm_11b45c
- call Function11b46a
- call DelayFrame
- ld a, [wJumptableIndex]
- cp $4
- jr nz, .asm_11b45c
- ret
-; 11b46a
-
-Function11b46a: ; 11b46a
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11b479
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11b479
-
-Jumptable_11b479: ; 11b479
- dw Function11b483
- dw Function11b570
- dw Function11b5c0
- dw Function11b5e0
- dw Function11b5e7
-; 11b483
-
-Function11b483: ; 11b483
- call Function11b538
- ld hl, PlayerName
- ld a, $5
-.asm_11b48b
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .asm_11b48b
- ld de, $0030
- ld hl, PartyMon1Species
- ld a, [wcd82]
- dec a
- push af
-.asm_11b49f
- and a
- jr z, .asm_11b4a6
- add hl, de
- dec a
- jr .asm_11b49f
-
-.asm_11b4a6
- push bc
- ld a, $30
-.asm_11b4a9
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .asm_11b4a9
- pop de
- push bc
- ld a, [de]
- ld [CurSpecies], a
- call GetBaseData
- ld hl, $001f
- add hl, de
- ld a, [hl]
- ld [CurPartyLevel], a
- ld hl, $0024
- add hl, de
- push hl
- ld hl, $000a
- add hl, de
- pop de
- push de
- ld b, $1
- predef CalcPkmnStats
- pop de
- ld h, d
- ld l, e
-rept 2
- dec hl
-endr
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- pop bc
- ld de, $000b
- ld hl, PartyMonOT
- pop af
- push af
-.asm_11b4e8
- and a
- jr z, .asm_11b4ef
- add hl, de
- dec a
- jr .asm_11b4e8
-
-.asm_11b4ef
- ld a, $a
-.asm_11b4f1
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .asm_11b4f1
- ld de, $000b
- ld hl, PartyMonNicknames
- pop af
- push af
-.asm_11b502
- and a
- jr z, .asm_11b509
- add hl, de
- dec a
- jr .asm_11b502
-
-.asm_11b509
- ld a, $a
-.asm_11b50b
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .asm_11b50b
- ld de, $002f
- ld hl, $a600
- pop af
-.asm_11b51b
- and a
- jr z, .asm_11b522
- add hl, de
- dec a
- jr .asm_11b51b
-
-.asm_11b522
- ld a, $0
- call GetSRAMBank
- ld a, $2f
-.asm_11b529
- push af
- ld a, [hli]
- ld [bc], a
- inc bc
- pop af
- dec a
- and a
- jr nz, .asm_11b529
- call CloseSRAM
- jp Function11ad8a
-; 11b538
-
-Function11b538: ; 11b538
- ld bc, BattleMonNick + 5
- 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, .asm_11b57f
- call Function11b585
- jp Function11ad8a
-
-.asm_11b57f
- ld a, $4
- ld [wJumptableIndex], a
- ret
-; 11b585
-
-Function11b585: ; 11b585
- ld a, $3
- ld [rSVBK], a
- ld hl, $d800
- ld de, $c608
- ld bc, $008f
- 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, $008f
- 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 [wd10b], a
- callba Functione039
- callba Function170807
- callba Function14a58
- 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, $0004
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $c608
- ld de, $b08c
- ld bc, $0004
- 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 Function11b44b
- call Function11b64c
- ret
-; 11b64c
-
-Function11b64c: ; 11b64c
-.asm_11b64c
- call Function11b65a
- call DelayFrame
- ld a, [wJumptableIndex]
- cp $1
- jr nz, .asm_11b64c
- ret
-; 11b65a
-
-Function11b65a: ; 11b65a
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11b669
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11b669
-
-Jumptable_11b669: ; 11b669
- 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, [StringBuffer2 + 10]
- 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 [StringBuffer2 + 10], 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 [wc708], a
- ld a, [wcd31]
- ld [wc709], a
- ld a, $8
- ld [BGMapBuffer], a
- ld a, $c7
- ld [wcd21], a
- ld a, $d
- ld [CreditsTimer], a
- ld a, $c6
- ld [wcd23], a
- ld a, $3d
- ld [wcd24], a
- ld a, $c6
- ld [wcd25], a
- ld a, $42
- ld [wcd26], a
- ld a, $c6
- ld [wcd27], a
- ld a, $47
- ld [wcd28], a
- ld a, $c6
- ld [wcd29], a
- ld a, $46
- ld [$c628], a
- ld de, $c63d
- ld c, $5
- callba Function17d073
- jr nc, .asm_11b70f
- callba Function17d187
-
-.asm_11b70f
- ld de, $c63d
- ld bc, $0105
- callba Function17d1e1
- jr nc, .asm_11b723
- callba Function17d187
-
-.asm_11b723
- ld de, $c642
- ld c, $5
- callba Function17d073
- jr nc, .asm_11b736
- callba Function17d199
-
-.asm_11b736
- ld de, $c642
- ld bc, $0105
- callba Function17d1e1
- jr nc, .asm_11b74a
- callba Function17d199
-
-.asm_11b74a
- ld de, $c647
- ld c, $21
- callba Function17d073
- jr nc, .asm_11b75d
- callba Function17d1ab
-
-.asm_11b75d
- ld de, $c647
- ld bc, $0221
- callba Function17d1e1
- jr c, .asm_11b770
- ld a, b
- cp $2
- jr nz, .asm_11b776
-
-.asm_11b770
- callba Function17d1ab
-
-.asm_11b776
- ld de, $c668
- ld c, $5
- callba Function17d073
- jr nc, .asm_11b789
- callba Function17d1c9
-
-.asm_11b789
- ld de, $c668
- ld bc, $0105
- callba Function17d1e1
- jr nc, .asm_11b79d
- callba Function17d1c9
-
-.asm_11b79d
- ld a, [$c608 + 6]
- cp $ff
- jr nz, .asm_11b7a8
- xor a
- ld [$c608 + 6], a
-
-.asm_11b7a8
- ld a, [wcd31]
- ld [$c608 + 5], a
- ld [CurSpecies], a
- call GetBaseData
-
- ld hl, $c62c
- ld a, [hl]
- cp MIN_LEVEL
- ld a, MIN_LEVEL
- jr c, .asm_11b7c5
- ld a, [hl]
- cp MAX_LEVEL
- jr c, .asm_11b7c6
- ld a, MAX_LEVEL
-.asm_11b7c5
- ld [hl], a
-.asm_11b7c6
- ld [CurPartyLevel], a
-
- ld hl, $c616 + 1
- ld de, $c62c + 5
- ld b, $1
- predef CalcPkmnStats
- ld de, $c62c + 5
- ld hl, $c62c + 3
- ld a, [de]
- ld [hli], a
- inc de
- ld a, [de]
- ld [hl], a
- call Function11b98f
- ret
-; 11b7e5
-
-Function11b7e5: ; 11b7e5
- ld a, [$c608 + 5]
- ld [wc702], a
- ld [CurPartySpecies], a
- ld a, [wcd81]
- ld [wc74e], a
- ld hl, $c63d
- ld de, wc724
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld a, [$c608 + 11]
- ld [wc731], a
- ld a, [$c608 + 12]
- ld [wc732], a
- ld hl, $c608 + 26
- ld a, [hli]
- ld [wc72f], a
- ld a, [hl]
- ld [wc730], a
- ld bc, $c608 + 5
- callba GetCaughtGender
- ld a, c
- ld [wc733], a
- call SpeechTextBox
- call FadeToMenu
- callba Function108016
- callba Function17d1f1
- ld a, $1
- ld [wd1e9], a
- ld a, $2
- ld [wLinkMode], a
- callba Function421d8
- xor a
- ld [wLinkMode], a
- callba Function14a58
- ld a, $5
- call GetSRAMBank
- ld a, $5
- ld [$a800], a
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_11b872
- ld a, $1
- ld [de], a
-
-.asm_11b872
- call Function2b3c
- call RestartMapMusic
- ret
-; 11b879
-
-Function11b879: ; 11b879
- callba Function17089a
- ld a, [ScriptVar]
- and a
- ret z
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- ld [ScriptVar], a
- ld a, [$a890]
- ld [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 Function11b44b
- ld a, $5
- call GetSRAMBank
- ld hl, $a81f
- ld de, BattleMonNick + 5
- ld bc, $0008
- call CopyBytes
- call CloseSRAM
- call Function118000
- ret
-; 11b93b
-
-Function11b93b: ; 11b93b
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- ld hl, $a823
- ld de, wEnemyMoveStruct
- ld bc, $008f
- call CopyBytes
- call CloseSRAM
- ld a, wEnemyMoveStruct % $100
- ld [wcd20], a
- ld a, wEnemyMoveStruct / $100
- ld [wcd21], a
- ld a, $c611 % $100
- ld [wcd22], a
- ld a, $c611 / $100
- ld [wcd23], a
- ld a, $c641 % $100
- ld [wcd24], a
- ld a, $c641 / $100
- ld [wcd25], a
- ld a, $c646 % $100
- ld [wcd26], a
- ld a, $c646 / $100
- ld [wcd27], a
- ld a, $c64b % $100
- ld [wcd28], a
- ld a, $c64b / $100
- ld [wcd29], a
- call Function11b98f
- callba Function14a58
- ret
-; 11b98f
-
-Function11b98f: ; 11b98f
- ld hl, PartyCount
- ld a, [hl]
- ld e, a
- inc [hl]
- ld a, [wcd20]
- ld l, a
- ld a, [wcd21]
- 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, $ff
- ld [bc], a
- ld hl, PartyMon1Species
- ld bc, PartyMon2 - PartyMon1
- ld a, e
- ld [wcd2a], a
-.loop2
- add hl, bc
- dec a
- and a
- jr nz, .loop2
- ld e, l
- ld d, h
- ld a, [CreditsTimer]
- ld l, a
- ld a, [wcd23]
- ld h, a
- ld bc, PartyMon2 - PartyMon1
- call CopyBytes
- ld hl, PartyMonOT
- ld bc, NAME_LENGTH
- ld a, [wcd2a]
-.loop3
- add hl, bc
- dec a
- and a
- jr nz, .loop3
- ld e, l
- ld d, h
- ld a, [wcd24]
- ld l, a
- ld a, [wcd25]
- 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, [wcd2a]
-.loop4
- add hl, bc
- dec a
- and a
- jr nz, .loop4
- ld e, l
- ld d, h
- ld a, [wcd26]
- ld l, a
- ld a, [wcd27]
- ld h, a
- ld bc, PKMN_NAME_LENGTH - 1
- call CopyBytes
- ld a, "@"
- ld [de], a
- ld hl, s0_a600
- ld bc, party_struct_length - 1
- ld a, [wcd2a]
-.loop5
- add hl, bc
- dec a
- and a
- jr nz, .loop5
- ld a, $0
- call GetSRAMBank
- ld e, l
- ld d, h
- ld a, [wcd28]
- ld l, a
- ld a, [wcd29]
- ld h, a
- ld bc, party_struct_length - 1
- call CopyBytes
- call CloseSRAM
- ret
-; 11ba38
-
-Function11ba38: ; 11ba38
- callba CheckCurPartyMonFainted
- ret c
- xor a
- ld [ScriptVar], a
- ret
-; 11ba44
-
-Unknown_11ba44:
- db $47, $30, $0a, $0a, $0a, $0a, $0a, $56
- db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55
- db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54
- db $44, $30, $0a, $0a, $0a, $0a, $0a, $53
- db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51
- db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50
- db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e
- db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42
- db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58
- db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58
- db $4a, $30, $0a, $0a, $0a, $0a, $69, $58
- db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58
- db $4a, $3d, $0a, $0a, $0a, $66, $67, $58
- db $4a, $30, $0a, $0a, $0a, $65, $0a, $58
- db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58
- db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58
- db $4a, $30, $0a, $0a, $61, $62, $0a, $58
- db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58
- db $4a, $3d, $0a, $61, $62, $0a, $0a, $58
- db $4a, $30, $0a, $63, $0a, $0a, $0a, $58
- db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58
- db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58
- db $4a, $30, $80, $0a, $0a, $0a, $0a, $58
- db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58
- db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58
- db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58
- db $4a, $2f, $68, $87, $88, $89, $0a, $58
- db $4a, $3d, $6e, $6f, $70, $75, $76, $58
- db $4a, $30, $75, $76, $5c, $5d, $5e, $58
- db $4a, $2f, $71, $72, $73, $74, $6d, $58
- db $4a, $3d, $75, $76, $77, $8a, $8b, $58
- db $4a, $30, $66, $67, $65, $0a, $6a, $58
- db $4a, $2f, $83, $84, $0a, $83, $84, $58
- db $4a, $3d, $0a, $85, $82, $84, $0a, $58
- db $4a, $30, $41, $80, $40, $0a, $0a, $58
- db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58
- db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58
- db $ff
-
-Unknown_11bb7d:
- db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00
- db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00
- db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00
- db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00
- db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00
- db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00
- db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00
- db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00
- db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00
- db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00
- db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00
- db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00
- db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00
- db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00
- db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00
- db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00
- db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00
- db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00
- db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00
- db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00
- db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00
- db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00
- db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00
- db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00
- db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00
- db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00
- db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00
- db $2e, $0a, $0a, $61, $62, $0a, $8e, $00
- db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00
- db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00
- db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00
- db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00
- db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00
- db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00
- db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00
- db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00
- db $ff
-
-
-SECTION "bank47", ROMX, BANK[$47]
-
-StoreText:: ; 11c000
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
-IF DEF(CRYSTAL11)
- ld hl, wd10a
-ELSE
- ld hl, wd105
-ENDC
- ld a, [hl]
- dec a
- ld e, a
- ld d, 0
- ld hl, Unknown_11f2f0
- add hl, de
- ld a, [hl]
- and a
- jr nz, .asm_11c026
- ld a, [hRandomAdd]
- and $1f
- cp $19
- jr c, .asm_11c021
- sub $19
-
-.asm_11c021
- ld hl, BTTrainerTexts
- jr .asm_11c033
-
-.asm_11c026
- ld a, [hRandomAdd]
- and $f
- cp $f
- jr c, .asm_11c030
- sub $f
-
-.asm_11c030
- ld hl, Unknown_11f3ce
-
-.asm_11c033
- ld b, 0
- dec c
- jr nz, .asm_11c03d
- ld [wd000 + $200], a
- jr .asm_11c040
-
-.asm_11c03d
- ld a, [wd000 + $200]
-
-.asm_11c040
- push af
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld h, a
- ld l, c
- pop af
- ld c, a
- ld b, 0
-rept 2
- add hl, bc
-endr
- ld a, [hli]
- ld c, a
- ld a, [hl]
- ld l, c
- ld h, a
- bccoord 1, 14
- pop af
- ld [rSVBK], a
- call PlaceWholeStringInBoxAtOnce
- ret
-; 11c05d
-
-Function11c05d: ; 11c05d
- ld a, e
- or d
- jr z, .asm_11c071
- ld a, e
- and d
- cp $ff
- jr z, .asm_11c071
- push hl
- call Function11c156
- pop hl
- call PlaceString
- and a
- ret
-
-.asm_11c071
- ld c, l
- ld b, h
- scf
- ret
-; 11c075
-
-Function11c075: ; 11c075
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call Function11c08f
- ret
-; 11c082
-
-Function11c082: ; 11c082
- push de
- ld a, c
- call Function11c254
- pop de
- ld bc, wcd36
- call Function11c0c6
- ret
-; 11c08f
-
-Function11c08f: ; 11c08f
- ld l, e
- ld h, d
- push hl
- ld a, $3
-.asm_11c094
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .asm_11c0a2
- inc bc
-
-.asm_11c0a2
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .asm_11c094
- pop hl
- ld de, $0028
- add hl, de
- ld a, $3
-.asm_11c0b0
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- push bc
- call Function11c05d
- jr c, .asm_11c0be
- inc bc
-
-.asm_11c0be
- ld l, c
- ld h, b
- pop bc
- pop af
- dec a
- jr nz, .asm_11c0b0
- ret
-; 11c0c6
-
-
-Function11c0c6: ; 11c0c6
- ld a, [wJumptableIndex]
- ld l, a
- ld a, [wcf64]
- ld h, a
- push hl
- ld hl, $c608 + 16
- ld a, $0
- ld [hli], a
- push de
- xor a
- ld [wJumptableIndex], a
- ld a, $12
- ld [wcf64], a
- ld a, $6
-.asm_11c0e1
- push af
- ld a, [bc]
- ld e, a
- inc bc
- ld a, [bc]
- ld d, a
- inc bc
- or e
- jr z, .asm_11c133
- push hl
- push bc
- call Function11c156
- call Function11c14a
- ld e, c
- pop bc
- pop hl
- ld a, e
- or a
- jr z, .asm_11c133
-.asm_11c0fa
- ld a, [wcf64]
- cp $12
- jr z, .asm_11c102
- inc e
-
-.asm_11c102
- cp e
- jr nc, .asm_11c11c
- ld a, [wJumptableIndex]
- inc a
- ld [wJumptableIndex], a
- ld [hl], $4e
- rra
- jr c, .asm_11c113
- ld [hl], $55
-
-.asm_11c113
- inc hl
- ld a, $12
- ld [wcf64], a
- dec e
- jr .asm_11c0fa
-
-.asm_11c11c
- cp $12
- jr z, .asm_11c123
- ld [hl], $7f
- inc hl
-
-.asm_11c123
- sub e
- ld [wcf64], a
- ld de, $c608
-.asm_11c12a
- ld a, [de]
- cp $50
- jr z, .asm_11c133
- inc de
- ld [hli], a
- jr .asm_11c12a
-
-.asm_11c133
- pop af
- dec a
- jr nz, .asm_11c0e1
- ld [hl], $57
- pop bc
- ld hl, $c608 + 16
- call PlaceWholeStringInBoxAtOnce
- pop hl
- ld a, l
- ld [wJumptableIndex], a
- ld a, h
- ld [wcf64], a
- ret
-; 11c14a
-
-Function11c14a: ; 11c14a
- ld c, $0
- ld hl, $c608
-.asm_11c14f
- ld a, [hli]
- cp $50
- ret z
- inc c
- jr .asm_11c14f
-; 11c156
-
-Function11c156: ; 11c156
- ld a, [rSVBK]
- push af
- ld a, $1
- ld [rSVBK], a
- ld a, $50
- ld hl, $c608
- ld bc, $000b
- call ByteFill
- ld a, d
- and a
- jr z, .asm_11c19c
- ld hl, Unknown_11daac
- 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, $0005
-.asm_11c18f
- ld de, $c608
- call CopyBytes
- ld de, $c608
- pop af
- ld [rSVBK], a
- ret
-
-.asm_11c19c
- ld a, e
- ld [wd265], a
- call GetPokemonName
- ld hl, StringBuffer1
- ld bc, $000a
- jr .asm_11c18f
-; 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 Function11c1ca
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- call Function11c283
- pop af
- ld [rSVBK], a
- ret
-; 11c1ca
-
-Function11c1ca: ; 11c1ca
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ld [wcd23], a
- ld [BGMapBuffer], a
- ld [wcd21], a
- ld [CreditsTimer], a
- ld [wcd35], a
- ld [wcd2b], a
- ld a, $ff
- ld [wcd24], a
- ld a, [wcfa9]
- dec a
- call Function11c254
- call WhiteBGMap
- 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 Function104061
- callba Function8cf53
- callba LoadPokemonData
- callba Function40c30
- 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 Function11d4aa
- call Function11d3ba
- ret
-; 11c254
-
-Function11c254: ; 11c254
- push af
- ld a, $4
- call GetSRAMBank
- ld hl, $a007
- pop af
- sla a
- sla a
- ld c, a
- sla a
- add c
- ld c, a
- ld b, $0
- add hl, bc
- ld de, wcd36
- ld bc, $000c
- call CopyBytes
- call CloseSRAM
- ret
-; 11c277
-
-
-Function11c277: ; 11c277 (47:4277)
- ld a, $7f
- hlcoord 0, 6
- ld bc, $f0
- call ByteFill
- ret
-
-Function11c283: ; 11c283
-.asm_11c283
- call JoyTextDelay
- ld a, [hJoyPressed]
- ld [hJoypadPressed], a
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_11c2a2
- call Function11c2ac
- callba Function8cf69
- callba Function104061
- jr .asm_11c283
-
-.asm_11c2a2
- callba Function8cf53
- call ClearSprites
- ret
-; 11c2ac
-
-Function11c2ac: ; 11c2ac
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11c2bb
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 11c2bb
-
-
-Jumptable_11c2bb: ; 11c2bb (47:42bb)
- dw Function11c2e9
- dw Function11c346
- dw Function11c35f
- dw Function11c373
- dw Function11c3c2
- dw Function11c3ed
- dw Function11c52c
- dw Function11c53d
- dw Function11c658
- dw Function11c675
- dw Function11c9bd
- dw Function11c9c3
- dw Function11caad
- dw Function11cab3
- dw Function11cb52
- dw Function11cb66
- dw Function11cbf5
- dw Function11ccef
- dw Function11cd04
- dw Function11cd20
- dw Function11cd54
- dw Function11ce0b
- dw Function11ce2b
-
-
-Function11c2e9: ; 11c2e9 (47:42e9)
- lb de, $1a, $0d
- ld a, $1d
- call Function3b2a
- lb de, $42, $0d
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $1
- ld [hl], a
- lb de, $4a, $10
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $3
- ld [hl], a
- lb de, $50, $80
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $4
- ld [hl], a
- lb de, $50, $20
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $5
- ld [hl], a
- lb de, $50, $10
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $2
- ld [hl], a
- ld hl, wcd23
- set 1, [hl]
- set 2, [hl]
- jp Function11cfb5
-
-Function11c346: ; 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
-rept 2
- inc [hl]
-endr
-rept 2
- dec hl
-endr
- dec [hl]
- push af
- ld de, wcd2d
- call Function11cfce
- pop af
- ret nz
- jp Function11cfb5
-
-Function11c373: ; 11c373 (47:4373)
- ld hl, wcd30
-rept 2
- inc [hl]
-endr
-rept 2
- dec hl
-endr
- 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 Function11c277
- 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, BGMapBuffer ; wcd20 (aliases: CreditsPos)
- 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 [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
- ret
-.asm_11c42c
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- 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 [CreditsTimer], 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 Function104061
- ret
-; 11c4db (47:44db)
-
-String_11c4db: ; 11c4db
- db "6つのことば", $1f, "くみあわせます"
- next "かえたいところ", $1f, "えらぶと でてくる"
- next "ことばのグループから いれかえたい"
- next "たんご", $1f, "えらんでください"
- db "@"
-; 11c51b
-
-String_11c51b: ; 11c51b
- db "ぜんぶけす やめる けってい@"
-; 11c52c
-
-Function11c52c: ; 11c52c (47:452c)
- call Function11c277
- call Function11c5f0
- 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 $f
- jr c, .asm_11c59d
- sub $f
- jr z, .asm_11c5ab
- dec a
- jr z, .asm_11c599
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
-
-.b
- ld a, $4
- jr .asm_11c59f
-
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $15
- jr .asm_11c59f
-
-.asm_11c599
- ld a, $13
- jr .asm_11c59f
-
-.asm_11c59d
- ld a, $8
-
-.asm_11c59f
- ld hl, wcd24
- set 1, [hl]
- ld [wJumptableIndex], a
- call PlayClickSFX
- ret
-
-.asm_11c5ab
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.up
- ld a, [hl]
- cp $3
- ret c
- sub $3
- jr .asm_11c5ee
-
-.down
- ld a, [hl]
- cp $f
- ret nc
- add $3
- jr .asm_11c5ee
-
-.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 .asm_11c5ee
-
-.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
-
-.asm_11c5ee
- ld [hl], a
- ret
-; 11c5f0
-
-Function11c5f0: ; 11c5f0 (47:45f0)
- ld de, Strings_11da52
- ld bc, Unknown_11c63a
- ld a, $f
-.asm_11c5f8
- push af
- ld a, [bc]
- inc bc
- ld l, a
- ld a, [bc]
- inc bc
- ld h, a
- push bc
- call PlaceString
-.asm_11c603
- inc de
- ld a, [de]
- cp $50
- jr z, .asm_11c603
- pop bc
- pop af
- dec a
- jr nz, .asm_11c5f8
- hlcoord 1, 17
- ld de, String_11c62a
- call PlaceString
- ret
-
-Function11c618: ; 11c618 (47:4618)
- ld a, $2
- hlcoord 0, 6, AttrMap
- ld bc, $c8
- call ByteFill
- callba Function104061
- ret
-; 11c62a (47:462a)
-
-String_11c62a: ; 11c62a
- db "けす モード やめる@"
-; 11c63a
-
-Unknown_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 Function11c277
- 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, wcd25
- 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, wcd25
- 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 [wcd25], 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 [wcd25], a
- ld [wcd26], a
- ld [wcd27], a
- ld a, [wcd2b]
- and a
- jr nz, .asm_11c7ab
- ld a, [wcd21]
- and a
- jr z, .asm_11c799
- dec a
- sla a
- ld hl, Unknown_11f220
- ld c, a
- ld b, 0
- add hl, bc
- ld a, [hli]
- ld [wcd28], a
- ld a, [hl]
-.asm_11c795
- ld [wcd29], a
- ret
-.asm_11c799
- ld a, [wc7d2]
- ld [wcd28], a
-.asm_11c79f
- ld c, $c
- call SimpleDivide
- and a
- jr nz, .asm_11c7a8
- dec b
-.asm_11c7a8
- ld a, b
- jr .asm_11c795
-.asm_11c7ab
- ld hl, $c68a + 30
- ld a, [CreditsTimer]
- ld c, a
- ld b, 0
-rept 2
- add hl, bc
-endr
- ld a, [hl]
- ld [wcd28], a
- jr .asm_11c79f
-
-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, wd100
- 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
-rept 2
- add hl, de
-endr
- 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
-rept 2
- add hl, de
-endr
- 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, String_11c8f0
- 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, String_11c8f3
- 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)
-
-Function11c8c7: ; 11c8c7
- inc a
- push af
- and $f
- ld [hDividend], a
- pop af
- and $f0
- swap a
- ld [hQuotient], a
- xor a
- ld [$ffb5], a
- push hl
- callba Function11a80c
- pop hl
- ld a, [wcd63]
- add $f6
- ld [hli], a
- ld a, [wcd62]
- add $f6
- ld [hli], a
- ret
-; 11c8ec
-
-String_11c8ec: ; 11c8ec
- db "ぺージ@"
-; 11c8f0
-
-String_11c8f0: ; 11c8f0
- db "まえ@"
-; 11c8f3
-
-String_11c8f3: ; 11c8f3
- db "つぎ@"
-; 11c8f6
-
-Function11c8f6: ; 11c8f6 (47:48f6)
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- 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, [wcd25]
- add [hl]
-.asm_11c911
- ld e, a
-.asm_11c912
- pop hl
- push de
- call Function11c05d
- pop de
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- ld c, a
- ld b, $0
- ld hl, wcd36
-rept 2
- add hl, bc
-endr
- ld [hl], e
- inc hl
- ld [hl], d
- ret
-.asm_11c927
- ld hl, wcd26
- ld a, [wcd25]
- add [hl]
- ld c, a
- ld b, $0
- ld hl, wd100
- add hl, bc
- ld a, [hl]
- jr .asm_11c911
-.asm_11c938
- ld hl, $c648
- ld a, [wcd22]
- ld e, a
- ld d, $0
-rept 2
- add hl, de
-endr
- 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
-rept 2
- add hl, de
-endr
- ld a, [wcd25]
- ld e, a
-rept 2
- add hl, de
-endr
- 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 Function104061
- 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 [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
-.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 Function104061
- ret
-; 11ca38 (47:4a38)
-
-String_11ca38: ; 11ca38
- db "とうろくちゅう", $25, "あいさつ", $1f, "ぜんぶ"
- next "けしても よろしいですか?@"
-; 11ca57
-
-String_11ca57: ; 11ca57
- db "はい"
- next "いいえ@"
-; 11ca5e
-
-Function11ca5e: ; 11ca5e (47:4a5e)
- xor a
-.asm_11ca5f
- push af
- call Function11ca6a
- pop af
- inc a
- cp $6
- jr nz, .asm_11ca5f
- ret
-
-Function11ca6a: ; 11ca6a (47:4a6a)
- ld hl, wcd36
- ld c, a
- ld b, $0
-rept 2
- add hl, bc
-endr
- 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, "とうろく", $1f, "ちゅうし"
- next "しますか?@"
-; 11cb31
-
-String_11cb31: ; 11cb31
- db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん"
- next "されません", $4a, "よろしい ですか?@"
-; 11cb52
-
-Function11cb52: ; 11cb52 (47:4b52)
- ld hl, Unknown_11cc01
- ld a, [wcfa9]
-.asm_11cb58
- dec a
- jr z, .asm_11cb5f
-rept 2
- inc hl
-endr
- 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, [wcfa9]
- 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, [wcfa9]
-.asm_11cbba
- dec a
- jr z, .asm_11cbc1
-rept 2
- inc hl
-endr
- 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 "あいさつ", $1f, "とうろくした!@"
-
-String_11cc9d: ; 11cc9d
- db "たいせん ", $4a, "はじまるとき の"
- next "あいさつ", $1f, "とうろくした!@"
-
-String_11ccb9: ; 11ccb9
- db "たいせん ", $1d, "かったとき の"
- next "あいさつ", $1f, "とうろくした!@"
-
-String_11ccd4: ; 11ccd4
- db "たいせん ", $1d, "まけたとき の"
- next "あいさつ", $1f, "とうろくした!@"
-; 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 "なにか ことば", $1f, "いれてください@"
-; 11cd20
-
-Function11cd20: ; 11cd20 (47:4d20)
- call Function11c277
- 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, $78
- call ByteFill
- ld a, $7
- hlcoord 0, 12, AttrMap
- ld bc, $50
- call ByteFill
- callba Function104061
- ret
-; 11cdc7 (47:4dc7)
-
-String_11cdc7: ; 11cdc7
- db "ことば", $1f, "しゅるいべつに"
- next "えらべます@"
-; 11cdd9
-
-String_11cdd9: ; 11cdd9
- db "ことば", $1f, "アイウエォ の"
- next "じゅんばんで ひょうじ します@"
-; 11cdf5
-
-String_11cdf5: ; 11cdf5
- db "しゅるいべつ モード"
- next "アイウエォ モード@"
-; 11ce0b
-
-Function11ce0b: ; 11ce0b (47:4e0b)
- call Function11c277
- hlcoord 1, 7
- ld de, String_11cf79
- call PlaceString
- hlcoord 1, 17
- ld de, String_11c62a
- call PlaceString
- call Function11c618
- ld hl, wcd24
- res 2, [hl]
- call Function11cfb5
-
-Function11ce2b: ; 11ce2b (47:4e2b)
- ld a, [CreditsTimer]
- 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, [CreditsTimer]
- cp $2d
- jr c, .asm_11ce92
- sub $2d
- jr z, .asm_11cea4
- dec a
- jr z, .asm_11ce96
- jr .b
-
-.start
- ld hl, wcd24
- set 0, [hl]
- ld a, $8
- ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos)
-.b
- ld a, $4
- jr .asm_11ce98
-.select
- ld a, [wcd2b]
- xor $1
- ld [wcd2b], a
- ld a, $6
- jr .asm_11ce98
-
-.asm_11ce92
- ld a, $8
- jr .asm_11ce98
-
-.asm_11ce96
- ld a, $13
-.asm_11ce98
- ld [wJumptableIndex], a
- ld hl, wcd24
- set 2, [hl]
- call PlayClickSFX
- ret
-.asm_11cea4
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- call Function11ca6a
- call PlayClickSFX
- ret
-
-.left
- inc hl
-.down
- inc hl
-.right
- inc hl
-.up
- ld a, [hl]
- cp $ff
- ret z
- ld [CreditsTimer], a
- ret
-; 11ceb9 (47:4eb9)
-
-Unknown_11ceb9: ; 11ceb9
- ; up left down right
- db $ff, $01, $05, $ff
- db $ff, $02, $06, $00
- db $ff, $03, $07, $01
- db $ff, $04, $08, $02
- db $ff, $14, $09, $03
- db $00, $06, $0a, $ff
- db $01, $07, $0b, $05
- db $02, $08, $0c, $06
- db $03, $09, $0d, $07
- db $04, $19, $0e, $08
- db $05, $0b, $0f, $ff
- db $06, $0c, $10, $0a
- db $07, $0d, $11, $0b
- db $08, $0e, $12, $0c
- db $09, $1e, $13, $0d
- db $0a, $10, $2d, $ff
- db $0b, $11, $2d, $0f
- db $0c, $12, $2d, $10
- db $0d, $13, $2d, $11
- db $0e, $26, $2d, $12
- db $ff, $15, $19, $04
- db $ff, $16, $1a, $14
- db $ff, $17, $1b, $15
- db $ff, $18, $1c, $16
- db $ff, $23, $1d, $17
- db $14, $1a, $1e, $09
- db $15, $1b, $1f, $19
- db $16, $1c, $20, $1a
- db $17, $1d, $21, $1b
- db $18, $2b, $22, $1c
- db $19, $1f, $26, $0e
- db $1a, $20, $27, $1e
- db $1b, $21, $28, $1f
- db $1c, $22, $29, $20
- db $1d, $2c, $2a, $21
- db $ff, $24, $2b, $18
- db $ff, $25, $2b, $23
- db $ff, $ff, $2b, $24
- db $1e, $27, $2e, $13
- db $1f, $28, $2e, $26
- db $20, $29, $2e, $27
- db $21, $2a, $2e, $28
- db $22, $ff, $2e, $29
- db $23, $ff, $2c, $1d
- db $2b, $ff, $2f, $22
- db $0f, $2e, $ff, $ff
- db $26, $2f, $ff, $2d
- db $2c, $ff, $ff, $2e
-; 11cf79
-
-String_11cf79: ; 11cf79
- 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, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.asm_11cfda
- jr z, .asm_11cfe0
- add hl, bc
- dec a
- jr .asm_11cfda
-.asm_11cfe0
- pop af
- ld c, a
- ld b, 0
- add hl, bc
- push hl
- ld a, $79
- ld [hli], a
- ld a, [de]
- inc de
-rept 2
- dec a
-endr
- jr z, .asm_11cff6
- ld c, a
- ld a, $7a
-.asm_11cff2
- ld [hli], a
- dec c
- jr nz, .asm_11cff2
-.asm_11cff6
- ld a, $7b
- ld [hl], a
- pop hl
- ld bc, $14
- add hl, bc
- ld a, [de]
- dec de
-rept 2
- dec a
-endr
- jr z, .asm_11d022
- ld b, a
-.asm_11d005
- push hl
- ld a, $7c
- ld [hli], a
- ld a, [de]
-rept 2
- dec a
-endr
- jr z, .asm_11d015
- ld c, a
- ld a, $7f
-.asm_11d011
- ld [hli], a
- dec c
- jr nz, .asm_11d011
-.asm_11d015
- ld a, $7c
- ld [hl], a
- pop hl
- push bc
- ld bc, $14
- add hl, bc
- pop bc
- dec b
- jr nz, .asm_11d005
-.asm_11d022
- ld a, $7d
- ld [hli], a
- ld a, [de]
-rept 2
- dec a
-endr
- jr z, .asm_11d031
- ld c, a
- ld a, $7a
-.asm_11d02d
- ld [hli], a
- dec c
- jr nz, .asm_11d02d
-.asm_11d031
- ld a, $7e
- ld [hl], a
- ret
-
-Function11d035: ; 11d035 (47:5035)
- hlcoord 0, 0
- ld bc, $14
- ld a, [de]
- inc de
- push af
- ld a, [de]
- inc de
- and a
-.asm_11d041
- jr z, .asm_11d047
- add hl, bc
- dec a
- jr .asm_11d041
-.asm_11d047
- 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 Function11d0ac
- ld a, $7e
- ld [hl], a
- pop hl
- push hl
- call Function11d0ac
- ld a, $7d
- ld [hl], a
- pop hl
- push hl
- inc hl
- push hl
- call Function11d0ac
- pop bc
- dec de
- ld a, [de]
- cp $2
- jr z, .asm_11d082
-rept 2
- dec a
-endr
-.asm_11d078
- push af
- ld a, $7a
- ld [hli], a
- ld [bc], a
- inc bc
- pop af
- dec a
- jr nz, .asm_11d078
-.asm_11d082
- 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
-rept 2
- dec a
-endr
- ld c, a
- ld b, a
- ld de, $14
-.asm_11d09c
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_11d09c
- pop hl
-.asm_11d0a4
- ld a, $7c
- ld [hl], a
- add hl, de
- dec b
- jr nz, .asm_11d0a4
- ret
-
-Function11d0ac: ; 11d0ac (47:50ac)
- ld a, [de]
- dec a
- ld bc, $14
-.asm_11d0b1
- add hl, bc
- dec a
- jr nz, .asm_11d0b1
- ret
-
-Function11d0b6: ; 11d0b6 (47:50b6)
- ld hl, $c
- add hl, bc
- ld a, [hl]
- ld e, a
- ld d, 0
- ld hl, Jumptable_11d0c7
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-
-Jumptable_11d0c7: ; 11d0c7 (47:50c7)
- dw Function11d0dd
- dw Function11d0e9
- dw Function11d0f5
- dw Function11d10f
- dw Function11d134
- dw Function11d145
- dw Function11d156
- dw Function11d175
- dw Function11d1d7
- dw Function11d1d1
- dw Function11d1fc
-
-
-Function11d0dd: ; 11d0dd (47:50dd)
- ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos)
- sla a
- ld hl, Unknown_11d208
- ld e, $1
- jr asm_11d11e
-
-Function11d0e9: ; 11d0e9 (47:50e9)
- ld a, [wcd21]
- sla a
- ld hl, Unknown_11d21a
- ld e, $2
- jr asm_11d11e
-
-Function11d0f5: ; 11d0f5 (47:50f5)
- ld hl, Unknown_11d2be
- ld a, [CreditsTimer]
- ld e, a
- ld d, $0
- add hl, de
- ld a, [hl]
- call Function3b3c
- ld a, [CreditsTimer]
- sla a
- ld hl, Unknown_11d23e
- ld e, $4
- jr asm_11d11e
-
-Function11d10f: ; 11d10f (47:510f)
- ld a, $27
- call Function3b3c
- ld a, [wcd25]
- sla a
- ld hl, Unknown_11d29e
- ld e, $8
-
-asm_11d11e: ; 11d11e (47:511e)
- push de
- ld e, a
- ld d, $0
- add hl, de
- push hl
- pop de
- ld hl, $4
- add hl, bc
- ld a, [de]
- inc de
- ld [hli], a
- ld a, [de]
- ld [hl], a
- pop de
- ld a, e
- call Function11d2ee
- ret
-
-Function11d134: ; 11d134 (47:5134)
- ld a, $27
- call Function3b3c
- ld a, [wcd2a]
- sla a
- ld hl, Unknown_11d2b6
- ld e, $10
- jr asm_11d11e
-
-Function11d145: ; 11d145 (47:5145)
- ld a, $27
- call Function3b3c
- ld a, [wcd2c]
- sla a
- ld hl, Unknown_11d2ba
- ld e, $20
- jr asm_11d11e
-
-Function11d156: ; 11d156 (47:5156)
- ld a, $2a
- call Function3b3c
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- add $18
- ld hl, $4
- add hl, bc
- ld [hli], a
- ld a, $30
- ld [hl], a
- ld a, $1
- ld e, a
- call Function11d2ee
- ret
-
-Function11d175: ; 11d175 (47:5175)
- ld a, [wcd4d]
- cp $4
- jr z, .asm_11d180
- ld a, $28
- jr .asm_11d182
-.asm_11d180
- ld a, $26
-.asm_11d182
- call Function3b3c
- ld a, [wcd4d]
- cp $4
- jr z, .asm_11d1b1
- ld a, [wcd4c]
- sla a
- sla a
- sla a
- add $20
- ld hl, $4
- add hl, bc
- ld [hli], a
- ld a, [wcd4d]
- sla a
- sla a
- sla a
- sla a
- add $48
- ld [hl], a
- ld a, $2
- ld e, a
- call Function11d2ee
- ret
-.asm_11d1b1
- ld a, [wcd4c]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- sla a
- add e
- add $18
- ld hl, $4
- add hl, bc
- ld [hli], a
- ld a, $8a
- ld [hl], a
- ld a, $2
- ld e, a
- call Function11d2ee
- ret
-
-Function11d1d1: ; 11d1d1 (47:51d1)
- ld d, $98
- ld a, $2c
- jr asm_11d1db
-
-Function11d1d7: ; 11d1d7 (47:51d7)
- ld d, $10
- ld a, $2b
-
-asm_11d1db: ; 11d1db (47:51db)
- push de
- call Function3b3c
- ld a, [wcd4a]
- sla a
- sla a
- sla a
- ld e, a
- sla a
- add e
- add $40
- ld hl, $5
- add hl, bc
- ld [hld], a
- pop af
- ld [hl], a
- ld a, $4
- ld e, a
- call Function11d2ee
- ret
-
-Function11d1fc: ; 11d1fc (47:51fc)
- ld a, $26
- call Function3b3c
- ld a, $8
- ld e, a
- call Function11d2ee
- ret
-; 11d208 (47:5208)
-
-Unknown_11d208: ; 11d208
- db $0d, $1a
- db $3d, $1a
- db $6d, $1a
- db $0d, $2a
- db $3d, $2a
- db $6d, $2a
- db $0d, $8a
- db $3d, $8a
- db $6d, $8a
-
-Unknown_11d21a: ; 11d21a
- db $0d, $42
- db $3d, $42
- db $6d, $42
- db $0d, $52
- db $3d, $52
- db $6d, $52
- db $0d, $62
- db $3d, $62
- db $6d, $62
- db $0d, $72
- db $3d, $72
- db $6d, $72
- db $0d, $82
- db $3d, $82
- db $6d, $82
- db $0d, $92
- db $3d, $92
- db $6d, $92
-
-Unknown_11d23e: ; 11d23e
- db $10, $48
- db $18, $48
- db $20, $48
- db $28, $48
- db $30, $48
- db $10, $58
- db $18, $58
- db $20, $58
- db $28, $58
- db $30, $58
- db $10, $68
- db $18, $68
- db $20, $68
- db $28, $68
- db $30, $68
- db $10, $78
- db $18, $78
- db $20, $78
- db $28, $78
- db $30, $78
- db $40, $48
- db $48, $48
- db $50, $48
- db $58, $48
- db $60, $48
- db $40, $58
- db $48, $58
- db $50, $58
- db $58, $58
- db $60, $58
- db $40, $68
- db $48, $68
- db $50, $68
- db $58, $68
- db $60, $68
- db $70, $48
- db $80, $48
- db $90, $48
- db $40, $78
- db $48, $78
- db $50, $78
- db $58, $78
- db $60, $78
- db $70, $58
- db $70, $68
- db $0d, $92
- db $3d, $92
- db $6d, $92
-
-Unknown_11d29e: ; 11d29e
- db $10, $50
- db $40, $50
- db $70, $50
- db $10, $60
- db $40, $60
- db $70, $60
- db $10, $70
- db $40, $70
- db $70, $70
- db $10, $80
- db $40, $80
- db $70, $80
-
-Unknown_11d2b6: ; 11d2b6
- db $80, $50
- db $80, $60
-
-Unknown_11d2ba: ; 11d2ba
- db $20, $50
- db $20, $60
-
-Unknown_11d2be: ; 11d2be
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $28, $28
- db $29, $26
- db $26, $26
-
-Function11d2ee: ; 11d2ee (47:52ee)
- ld hl, wcd24
- and [hl]
- jr nz, .asm_11d316
- ld a, e
- ld hl, wcd23
- and [hl]
- jr z, .asm_11d30f
- ld hl, $e
- add hl, bc
- ld a, [hl]
- and a
- jr z, .asm_11d305
- dec [hl]
- ret
-.asm_11d305
- ld a, $0
- ld [hld], a
- ld a, $1
- xor [hl]
- ld [hl], a
- and a
- jr nz, .asm_11d316
-.asm_11d30f
- ld hl, $7
- add hl, bc
- xor a
- ld [hl], a
- ret
-.asm_11d316
- ld hl, $5
- add hl, bc
- ld a, $b0
- sub [hl]
- ld hl, $7
- 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, Unkn1Pals
- ld bc, $0080
- 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
-
-Function11d3ba: ; 11d3ba
- ld a, [rSVBK]
- push af
- ld hl, BattleMonSpclDef
- ld a, $0
- ld [wcd2d], a
- ld [hli], a
- ld a, $d8
- ld [wcd2e], a
- ld [hl], a
- ld a, $fe
- ld [wcd2f], a
- ld a, $54
- ld [wcd30], a
- ld a, $a8
- ld [wcd31], a
- ld a, $c6
- ld [wcd32], a
- ld a, $4a
- ld [wcd33], a
- ld a, $c6
- ld [wcd34], a
- ld hl, Unknown_11f23c
- ld a, $2d
-
-Function11d3ef: ; 11d3ef
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- push hl
- ld hl, Unkn1Pals
- add hl, de
- ld a, [wcd2d]
- ld e, a
- ld a, [wcd2e]
- ld d, a
- push bc
-.asm_11d406
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
- ld a, $3
- ld [rSVBK], a
- ld a, [hli]
- push af
- ld a, $5
- ld [rSVBK], a
- pop af
- ld [de], a
- inc de
- dec bc
- ld a, c
- or b
- jr nz, .asm_11d406
- ld a, [wcd2f]
- ld l, a
- ld a, [wcd30]
- ld h, a
- ld a, [hli]
- ld c, a
- ld a, [hli]
- ld b, a
- ld a, l
- ld [wcd2f], a
- ld a, h
- ld [wcd30], a
- push bc
- pop hl
- ld c, $0
-.asm_11d43d
- ld a, [hl]
- cp $ff
- jr z, .asm_11d453
- call Function11d493
- jr nz, .asm_11d44a
- inc hl
- jr .asm_11d43d
-
-.asm_11d44a
- ld a, [hli]
- ld [de], a
- inc de
- xor a
- ld [de], a
- inc de
- inc c
- jr .asm_11d43d
-
-.asm_11d453
- pop hl
- ld b, $0
- add hl, bc
- push hl
- pop bc
- ld a, [wcd31]
- ld l, a
- ld a, [wcd32]
- ld h, a
- ld a, c
- ld [hli], a
- ld a, b
- ld [hli], a
- ld a, l
- ld [wcd31], a
- ld a, h
- ld [wcd32], a
- ld a, [wcd33]
- ld l, a
- ld a, [wcd34]
- ld h, a
- ld a, e
- ld [wcd2d], a
- ld [hli], a
- ld a, d
- ld [wcd2e], a
- ld [hli], a
- ld a, l
- ld [wcd33], a
- ld a, h
- ld [wcd34], a
- pop hl
- pop af
- dec a
- jr z, .asm_11d48f
- jp Function11d3ef
-
-.asm_11d48f
- pop af
- ld [rSVBK], a
- ret
-; 11d493
-
-Function11d493: ; 11d493
- push hl
- push bc
- push de
- dec a
- ld hl, rSVBK
- ld e, $1
- ld [hl], e
- call CheckSeenMon
- ld hl, rSVBK
- ld e, $5
- ld [hl], e
- pop de
- pop bc
- pop hl
- ret
-; 11d4aa
-
-Function11d4aa: ; 11d4aa
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld hl, Unknown_11daac
- ld bc, Unknown_11f220
- xor a
- ld [wcd2d], a
- inc a
- ld [wcd2e], a
- ld a, $e
-.asm_11d4c1
- push af
- ld a, [hli]
- ld e, a
- ld a, [hli]
- ld d, a
- push hl
- ld hl, $0005
- add hl, de
- ld a, [bc]
-rept 2
- inc bc
-endr
- push bc
-.asm_11d4cf
- push af
- push hl
- ld a, [hli]
- ld e, a
- ld a, [hl]
- ld d, a
- ld hl, wd000
- add hl, de
- ld a, [wcd2d]
- ld [hli], a
- inc a
- ld [wcd2d], a
- ld a, [wcd2e]
- ld [hl], a
- pop hl
- ld de, $0008
- add hl, de
- pop af
- dec a
- jr nz, .asm_11d4cf
- ld hl, wcd2d
- xor a
- ld [hli], a
- inc [hl]
- pop bc
- pop hl
- pop af
- dec a
- jr nz, .asm_11d4c1
- pop af
- ld [rSVBK], a
- ret
-; 11d4fe
-
-
-Unknown_11d4fe:
-; Pokemon sorted by kana.
-; Notably, Rhydon is missing.
-
- dw Unknown_11d558
- dw Unknown_11d55f
- dw Unknown_11d565
- dw Unknown_11d56c
- dw Unknown_11d574
- dw Unknown_11d57f
- dw Unknown_11d58e
- dw Unknown_11d598
- dw Unknown_11d59f
- dw Unknown_11d5a3
- dw Unknown_11d5b2
- dw Unknown_11d5bb
- dw Unknown_11d5c0
- dw Unknown_11d5c8
- dw Unknown_11d5cb
- dw Unknown_11d5cd
- dw Unknown_11d5d1
- dw Unknown_11d5d4
- dw Unknown_11d5d6
- dw Unknown_11d5dc
- dw Unknown_11d5e7
- dw Unknown_11d5ea
- dw Unknown_11d5f7
- dw Unknown_11d5f9
- dw Unknown_11d5fc
- dw Unknown_11d5fe
- dw Unknown_11d60e
- dw Unknown_11d61d
- dw Unknown_11d62e
- dw Unknown_11d636
- dw Unknown_11d63e
- dw Unknown_11d649
- dw Unknown_11d64e
- dw Unknown_11d651
- dw Unknown_11d656
- dw Unknown_11d65a
- dw Unknown_11d660
- dw Unknown_11d662
- dw Unknown_11d665
- dw Unknown_11d66d
- dw Unknown_11d671
- dw Unknown_11d674
- dw Unknown_11d678
- dw Unknown_11d67a
- dw Unknown_11d67d
-
-Unknown_11d558: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, $ff
-Unknown_11d55f: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, $ff
-Unknown_11d565: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, $ff
-Unknown_11d56c: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, $ff
-Unknown_11d574: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, $ff
-Unknown_11d57f: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, $ff
-Unknown_11d58e: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, $ff
-Unknown_11d598: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, $ff
-Unknown_11d59f: db ABRA, GENGAR, TAUROS, $ff
-Unknown_11d5a3: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, $ff
-Unknown_11d5b2: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, $ff
-Unknown_11d5bb: db SEADRA, SHELLDER, VAPOREON, DEWGONG, $ff
-Unknown_11d5c0: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, $ff
-Unknown_11d5c8: db SQUIRTLE, CELEBI, $ff
-Unknown_11d5cb: db WOBBUFFET, $ff
-Unknown_11d5cd: db DUGTRIO, HORSEA, EXEGGCUTE, $ff
-Unknown_11d5d1: db CHIKORITA, CHINCHOU, $ff
-Unknown_11d5d4: db SHUCKLE, $ff
-Unknown_11d5d6: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, $ff
-Unknown_11d5dc: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, $ff
-Unknown_11d5e7: db ODDISH, EXEGGUTOR, $ff
-Unknown_11d5ea: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, $ff
-Unknown_11d5f7: db QUAGSIRE, $ff
-Unknown_11d5f9: db NATU, XATU, $ff
-Unknown_11d5fc: db DUNSPARCE, $ff
-Unknown_11d5fe: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, $ff
-Unknown_11d60e: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, $ff
-Unknown_11d61d: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, $ff
-Unknown_11d62e: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, $ff
-Unknown_11d636: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, $ff
-Unknown_11d63e: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, $ff
-Unknown_11d649: db DRATINI, MEW, MEWTWO, MILTANK, $ff
-Unknown_11d64e: db MISDREAVUS, SMOOCHUM, $ff
-Unknown_11d651: db MEGANIUM, DITTO, TENTACOOL, MAREEP, $ff
-Unknown_11d656: db FLAAFFY, VENOMOTH, TANGELA, $ff
-Unknown_11d65a: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, $ff
-Unknown_11d660: db KADABRA, $ff
-Unknown_11d662: db LARVITAR, NOCTOWL, $ff
-Unknown_11d665: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, $ff
-Unknown_11d66d: db CHARMELEON, CHARIZARD, URSARING, $ff
-Unknown_11d671: db JYNX, LUGIA, $ff
-Unknown_11d674: db MAGNETON, LEDIAN, LEDYBA, $ff
-Unknown_11d678: db VULPIX, $ff
-Unknown_11d67a: db JUMPLUFF, TOTODILE, MACHOP
-Unknown_11d67d: db $ff
-; 11d67e
-
-GFX_11d67e:
-INCBIN "gfx/pokedex/select_start.2bpp"
-; 11d6de
-
-LZ_11d6de:
-INCBIN "gfx/pokedex/slowpoke.2bpp.lz"
-; 11da52
-
-Strings_11da52: ; 11da52
- db "ポケモン@@"
- db "タイプ@@@"
- db "あいさつ@@"
- db "ひと@@@@"
- db "バトル@@@"
- db "こえ@@@@"
- db "かいわ@@@"
- db "きもち@@@"
- db "じょうたい@"
- db "せいかつ@@"
- db "しゅみ@@@"
- db "こうどう@@"
- db "じかん@@@"
- db "むすび@@@"
- db "あれこれ@@"
-; 11daac
-
-Unknown_11daac: ; 11daac
- dw Unknown_11dac8
- dw Unknown_11db58
- dw Unknown_11dc78
- dw Unknown_11dea0
- dw Unknown_11e0c8
- dw Unknown_11e2d8
- dw Unknown_11e4e8
- dw Unknown_11e710
- dw Unknown_11e920
- dw Unknown_11ea58
- dw Unknown_11eb90
- dw Unknown_11edb8
- dw Unknown_11eef0
- dw Unknown_11f100
-
-Unknown_11dac8: ; 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
-
-Unknown_11db58: ; 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
-
-Unknown_11dc78: ; 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
-
-Unknown_11dea0: ; 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
-
-Unknown_11e0c8: ; 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
-
-Unknown_11e2d8: ; 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
-
-Unknown_11e4e8: ; 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
-
-Unknown_11e710: ; 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
-
-Unknown_11e920: ; 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
-
-Unknown_11ea58: ; 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
-
-Unknown_11eb90: ; 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
-
-Unknown_11edb8: ; 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
-
-Unknown_11eef0: ; 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
-
-Unknown_11f100: ; 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
-
-Unknown_11f220:
- db $12, $01, $24, $02
- db $45, $05, $45, $05
- db $42, $05, $42, $05
- db $45, $05, $42, $05
- db $27, $03, $27, $03
- db $45, $05, $27, $03
- db $42, $05, $24, $02
-
-Unknown_11f23c:
- db $12, $00, $2f, $00
- db $70, $00, $1e, $00
- db $ac, $00, $11, $00
- db $ce, $00, $09, $00
- db $e0, $00, $2e, $00
- db $3c, $01, $24, $00
- db $84, $01, $1b, $00
- db $ba, $01, $09, $00
- db $cc, $01, $07, $00
- db $da, $01, $1c, $00
- db $12, $02, $12, $00
- db $36, $02, $2b, $00
- db $8c, $02, $10, $00
- db $ac, $02, $08, $00
- db $bc, $02, $0c, $00
- db $d4, $02, $2c, $00
- db $2c, $03, $09, $00
- db $3e, $03, $12, $00
- db $62, $03, $1b, $00
- db $98, $03, $1a, $00
- db $cc, $03, $1c, $00
- db $04, $04, $05, $00
- db $0e, $04, $02, $00
- db $12, $04, $05, $00
- db $1c, $04, $07, $00
- db $2a, $04, $16, $00
- db $56, $04, $0e, $00
- db $72, $04, $0c, $00
- db $8a, $04, $05, $00
- db $94, $04, $16, $00
- db $c0, $04, $19, $00
- db $f2, $04, $0e, $00
- db $0e, $05, $08, $00
- db $1e, $05, $07, $00
- db $2c, $05, $09, $00
- db $3e, $05, $0d, $00
- db $58, $05, $04, $00
- db $60, $05, $14, $00
- db $88, $05, $0b, $00
- db $9e, $05, $01, $00
- db $a0, $05, $02, $00
- db $a4, $05, $02, $00
- db $a8, $05, $02, $00
- db $ac, $05, $15, $00
- db $00, $00, $09, $00
-
-Unknown_11f2f0:
- db $00, $01, $01, $00, $00, $01
- db $00, $01, $00, $00, $01, $00
- db $00, $01, $00, $00, $00, $01
- db $00, $00, $01, $00, $00, $00
- db $01, $01, $00, $01, $01, $00
- db $00, $00, $01, $01, $01, $00
- db $00, $00, $01, $00, $00, $00
- db $00, $00, $00, $00, $00, $00
- db $00, $00, $00, $00, $01, $00
- db $01, $00, $01, $00, $00, $01
- db $01, $01, $00, $00, $00, $01
-
-
-BTTrainerTexts: ; 11f332
- dw BTTrainerGreetings
- dw BTTrainerPlayerLostTexts
- dw BTTrainerPlayerWonTexts
-
-BTTrainerGreetings: ; 11f338
- dw BattleTowerTextJump_0x11f42e
- dw BattleTowerTextJump_0x11f43d
- dw UnknownText_0x11f44c
- dw UnknownText_0x11f45b
- dw UnknownText_0x11f46a
- dw UnknownText_0x11f479
- dw UnknownText_0x11f488
- dw UnknownText_0x11f497
- dw UnknownText_0x11f4a6
- dw UnknownText_0x11f4b5
- dw UnknownText_0x11f4c4
- dw UnknownText_0x11f4d3
- dw UnknownText_0x11f4e2
- dw UnknownText_0x11f4f1
- dw UnknownText_0x11f500
- dw UnknownText_0x11f50f
- dw UnknownText_0x11f51e
- dw UnknownText_0x11f52d
- dw UnknownText_0x11f53c
- dw UnknownText_0x11f54b
- dw UnknownText_0x11f55a
- dw UnknownText_0x11f569
- dw UnknownText_0x11f578
- dw UnknownText_0x11f587
- dw UnknownText_0x11f596
-
-BTTrainerPlayerLostTexts: ; 11f36a
- dw BattleTowerTextJump_0x11f433
- dw UnknownText_0x11f442
- dw UnknownText_0x11f451
- dw UnknownText_0x11f460
- dw UnknownText_0x11f46f
- dw UnknownText_0x11f47e
- dw UnknownText_0x11f48d
- dw UnknownText_0x11f49c
- dw UnknownText_0x11f4ab
- dw UnknownText_0x11f4ba
- dw UnknownText_0x11f4c9
- dw UnknownText_0x11f4d8
- dw UnknownText_0x11f4e7
- dw UnknownText_0x11f4f6
- dw UnknownText_0x11f505
- dw UnknownText_0x11f514
- dw UnknownText_0x11f523
- dw UnknownText_0x11f532
- dw UnknownText_0x11f541
- dw UnknownText_0x11f550
- dw UnknownText_0x11f55f
- dw UnknownText_0x11f56e
- dw UnknownText_0x11f57d
- dw UnknownText_0x11f58c
- dw UnknownText_0x11f59b
-
-BTTrainerPlayerWonTexts: ; 11f39c
- dw UnknownText_0x11f438
- dw UnknownText_0x11f447
- dw UnknownText_0x11f456
- dw UnknownText_0x11f465
- dw UnknownText_0x11f474
- dw UnknownText_0x11f483
- dw UnknownText_0x11f492
- dw UnknownText_0x11f4a1
- dw UnknownText_0x11f4b0
- dw UnknownText_0x11f4bf
- dw UnknownText_0x11f4ce
- dw UnknownText_0x11f4dd
- dw UnknownText_0x11f4ec
- dw UnknownText_0x11f4fb
- dw UnknownText_0x11f50a
- dw UnknownText_0x11f519
- dw UnknownText_0x11f528
- dw UnknownText_0x11f537
- dw UnknownText_0x11f546
- dw UnknownText_0x11f555
- dw UnknownText_0x11f564
- dw UnknownText_0x11f573
- dw UnknownText_0x11f582
- dw UnknownText_0x11f591
- dw UnknownText_0x11f5a0
-
-
-Unknown_11f3ce:
- dw Unknown_11f3d4
- dw Unknown_11f3f2
- dw Unknown_11f410
-
-Unknown_11f3d4: ; 11f3d4
- dw UnknownText_0x11f5a5
- dw UnknownText_0x11f5b4
- dw UnknownText_0x11f5c3
- dw UnknownText_0x11f5d2
- dw UnknownText_0x11f5e1
- dw UnknownText_0x11f5f0
- dw UnknownText_0x11f5ff
- dw UnknownText_0x11f60e
- dw UnknownText_0x11f61d
- dw UnknownText_0x11f62c
- dw UnknownText_0x11f63b
- dw UnknownText_0x11f64a
- dw UnknownText_0x11f659
- dw UnknownText_0x11f668
- dw UnknownText_0x11f677
-
-Unknown_11f3f2: ; 11f3f2
- dw UnknownText_0x11f5aa
- dw UnknownText_0x11f5b9
- dw UnknownText_0x11f5c8
- dw UnknownText_0x11f5d7
- dw UnknownText_0x11f5e6
- dw UnknownText_0x11f5f5
- dw UnknownText_0x11f604
- dw UnknownText_0x11f613
- dw UnknownText_0x11f622
- dw UnknownText_0x11f631
- dw UnknownText_0x11f640
- dw UnknownText_0x11f64f
- dw UnknownText_0x11f65e
- dw UnknownText_0x11f66d
- dw UnknownText_0x11f67c
-
-Unknown_11f410: ; 11f410
- dw UnknownText_0x11f5af
- dw UnknownText_0x11f5be
- dw UnknownText_0x11f5cd
- dw UnknownText_0x11f5dc
- dw UnknownText_0x11f5eb
- dw UnknownText_0x11f5fa
- dw UnknownText_0x11f609
- dw UnknownText_0x11f618
- dw UnknownText_0x11f627
- dw UnknownText_0x11f636
- dw UnknownText_0x11f645
- dw UnknownText_0x11f654
- dw UnknownText_0x11f663
- dw UnknownText_0x11f672
- dw UnknownText_0x11f681
-
-
-BattleTowerTextJump_0x11f42e: ; 0x11f42e
- text_jump BattleTowerText_0x1ec000
- db "@"
-
-BattleTowerTextJump_0x11f433: ; 0x11f433
- text_jump BattleTowerText_0x1ec03b
- db "@"
-
-UnknownText_0x11f438: ; 0x11f438
- text_jump UnknownText_0x1ec060
- db "@"
-
-BattleTowerTextJump_0x11f43d: ; 0x11f43d
- text_jump BattleTowerText_0x1ec080
- db "@"
-
-UnknownText_0x11f442: ; 0x11f442
- text_jump UnknownText_0x1ec0a3
- db "@"
-
-UnknownText_0x11f447: ; 0x11f447
- text_jump UnknownText_0x1ec0c4
- db "@"
-
-UnknownText_0x11f44c: ; 0x11f44c
- text_jump UnknownText_0x1ec0e1
- db "@"
-
-UnknownText_0x11f451: ; 0x11f451
- text_jump UnknownText_0x1ec108
- db "@"
-
-UnknownText_0x11f456: ; 0x11f456
- text_jump UnknownText_0x1ec12a
- db "@"
-
-UnknownText_0x11f45b: ; 0x11f45b
- text_jump UnknownText_0x1ec14d
- db "@"
-
-UnknownText_0x11f460: ; 0x11f460
- text_jump UnknownText_0x1ec16f
- db "@"
-
-UnknownText_0x11f465: ; 0x11f465
- text_jump UnknownText_0x1ec190
- db "@"
-
-UnknownText_0x11f46a: ; 0x11f46a
- text_jump UnknownText_0x1ec1ae
- db "@"
-
-UnknownText_0x11f46f: ; 0x11f46f
- text_jump UnknownText_0x1ec1d0
- db "@"
-
-UnknownText_0x11f474: ; 0x11f474
- text_jump UnknownText_0x1ec1f4
- db "@"
-
-UnknownText_0x11f479: ; 0x11f479
- text_jump UnknownText_0x1ec216
- db "@"
-
-UnknownText_0x11f47e: ; 0x11f47e
- text_jump UnknownText_0x1ec238
- db "@"
-
-UnknownText_0x11f483: ; 0x11f483
- text_jump UnknownText_0x1ec259
- db "@"
-
-UnknownText_0x11f488: ; 0x11f488
- text_jump UnknownText_0x1ec27b
- db "@"
-
-UnknownText_0x11f48d: ; 0x11f48d
- text_jump UnknownText_0x1ec2a0
- db "@"
-
-UnknownText_0x11f492: ; 0x11f492
- text_jump UnknownText_0x1ec2c0
- db "@"
-
-UnknownText_0x11f497: ; 0x11f497
- text_jump UnknownText_0x1ec2d9
- db "@"
-
-UnknownText_0x11f49c: ; 0x11f49c
- text_jump UnknownText_0x1ec2fe
- db "@"
-
-UnknownText_0x11f4a1: ; 0x11f4a1
- text_jump UnknownText_0x1ec320
- db "@"
-
-UnknownText_0x11f4a6: ; 0x11f4a6
- text_jump UnknownText_0x1ec33f
- db "@"
-
-UnknownText_0x11f4ab: ; 0x11f4ab
- text_jump UnknownText_0x1ec36c
- db "@"
-
-UnknownText_0x11f4b0: ; 0x11f4b0
- text_jump UnknownText_0x1ec389
- db "@"
-
-UnknownText_0x11f4b5: ; 0x11f4b5
- text_jump UnknownText_0x1ec3ad
- db "@"
-
-UnknownText_0x11f4ba: ; 0x11f4ba
- text_jump UnknownText_0x1ec3c5
- db "@"
-
-UnknownText_0x11f4bf: ; 0x11f4bf
- text_jump UnknownText_0x1ec3e5
- db "@"
-
-UnknownText_0x11f4c4: ; 0x11f4c4
- text_jump UnknownText_0x1ec402
- db "@"
-
-UnknownText_0x11f4c9: ; 0x11f4c9
- text_jump UnknownText_0x1ec411
- db "@"
-
-UnknownText_0x11f4ce: ; 0x11f4ce
- text_jump UnknownText_0x1ec41f
- db "@"
-
-UnknownText_0x11f4d3: ; 0x11f4d3
- text_jump UnknownText_0x1ec42e
- db "@"
-
-UnknownText_0x11f4d8: ; 0x11f4d8
- text_jump UnknownText_0x1ec461
- db "@"
-
-UnknownText_0x11f4dd: ; 0x11f4dd
- text_jump UnknownText_0x1ec4a0
- db "@"
-
-UnknownText_0x11f4e2: ; 0x11f4e2
- text_jump UnknownText_0x1ec4d6
- db "@"
-
-UnknownText_0x11f4e7: ; 0x11f4e7
- text_jump UnknownText_0x1ec4f5
- db "@"
-
-UnknownText_0x11f4ec: ; 0x11f4ec
- text_jump UnknownText_0x1ec512
- db "@"
-
-UnknownText_0x11f4f1: ; 0x11f4f1
- text_jump UnknownText_0x1ec532
- db "@"
-
-UnknownText_0x11f4f6: ; 0x11f4f6
- text_jump UnknownText_0x1ec54b
- db "@"
-
-UnknownText_0x11f4fb: ; 0x11f4fb
- text_jump UnknownText_0x1ec565
- db "@"
-
-UnknownText_0x11f500: ; 0x11f500
- text_jump UnknownText_0x1ec580
- db "@"
-
-UnknownText_0x11f505: ; 0x11f505
- text_jump UnknownText_0x1ec59d
- db "@"
-
-UnknownText_0x11f50a: ; 0x11f50a
- text_jump UnknownText_0x1ec5b5
- db "@"
-
-UnknownText_0x11f50f: ; 0x11f50f
- text_jump UnknownText_0x1ec5d3
- db "@"
-
-UnknownText_0x11f514: ; 0x11f514
- text_jump UnknownText_0x1ec5ee
- db "@"
-
-UnknownText_0x11f519: ; 0x11f519
- text_jump UnknownText_0x1ec60d
- db "@"
-
-UnknownText_0x11f51e: ; 0x11f51e
- text_jump UnknownText_0x1ec631
- db "@"
-
-UnknownText_0x11f523: ; 0x11f523
- text_jump UnknownText_0x1ec651
- db "@"
-
-UnknownText_0x11f528: ; 0x11f528
- text_jump UnknownText_0x1ec68f
- db "@"
-
-UnknownText_0x11f52d: ; 0x11f52d
- text_jump UnknownText_0x1ec6b1
- db "@"
-
-UnknownText_0x11f532: ; 0x11f532
- text_jump UnknownText_0x1ec6d0
- db "@"
-
-UnknownText_0x11f537: ; 0x11f537
- text_jump UnknownText_0x1ec708
- db "@"
-
-UnknownText_0x11f53c: ; 0x11f53c
- text_jump UnknownText_0x1ec720
- db "@"
-
-UnknownText_0x11f541: ; 0x11f541
- text_jump UnknownText_0x1ec73e
- db "@"
-
-UnknownText_0x11f546: ; 0x11f546
- text_jump UnknownText_0x1ec75b
- db "@"
-
-UnknownText_0x11f54b: ; 0x11f54b
- text_jump UnknownText_0x1ec77f
- db "@"
-
-UnknownText_0x11f550: ; 0x11f550
- text_jump UnknownText_0x1ec798
- db "@"
-
-UnknownText_0x11f555: ; 0x11f555
- text_jump UnknownText_0x1ec7bb
- db "@"
-
-UnknownText_0x11f55a: ; 0x11f55a
- text_jump UnknownText_0x1ec7d8
- db "@"
-
-UnknownText_0x11f55f: ; 0x11f55f
- text_jump UnknownText_0x1ec818
- db "@"
-
-UnknownText_0x11f564: ; 0x11f564
- text_jump UnknownText_0x1ec837
- db "@"
-
-UnknownText_0x11f569: ; 0x11f569
- text_jump UnknownText_0x1ec858
- db "@"
-
-UnknownText_0x11f56e: ; 0x11f56e
- text_jump UnknownText_0x1ec876
- db "@"
-
-UnknownText_0x11f573: ; 0x11f573
- text_jump UnknownText_0x1ec898
- db "@"
-
-UnknownText_0x11f578: ; 0x11f578
- text_jump UnknownText_0x1ec8b1
- db "@"
-
-UnknownText_0x11f57d: ; 0x11f57d
- text_jump UnknownText_0x1ec8d5
- db "@"
-
-UnknownText_0x11f582: ; 0x11f582
- text_jump UnknownText_0x1ec8f0
- db "@"
-
-UnknownText_0x11f587: ; 0x11f587
- text_jump UnknownText_0x1ec911
- db "@"
-
-UnknownText_0x11f58c: ; 0x11f58c
- text_jump UnknownText_0x1ec928
- db "@"
-
-UnknownText_0x11f591: ; 0x11f591
- text_jump UnknownText_0x1ec949
- db "@"
-
-UnknownText_0x11f596: ; 0x11f596
- text_jump UnknownText_0x1ec969
- db "@"
-
-UnknownText_0x11f59b: ; 0x11f59b
- text_jump UnknownText_0x1ec986
- db "@"
-
-UnknownText_0x11f5a0: ; 0x11f5a0
- text_jump UnknownText_0x1ec99b
- db "@"
-
-
-
-
-UnknownText_0x11f5a5: ; 0x11f5a5
- text_jump UnknownText_0x1ec9bd
- db "@"
-
-UnknownText_0x11f5aa: ; 0x11f5aa
- text_jump UnknownText_0x1ec9d9
- db "@"
-
-UnknownText_0x11f5af: ; 0x11f5af
- text_jump UnknownText_0x1ec9f7
- db "@"
-
-UnknownText_0x11f5b4: ; 0x11f5b4
- text_jump UnknownText_0x1eca0a
- db "@"
-
-UnknownText_0x11f5b9: ; 0x11f5b9
- text_jump UnknownText_0x1eca2a
- db "@"
-
-UnknownText_0x11f5be: ; 0x11f5be
- text_jump UnknownText_0x1eca47
- db "@"
-
-UnknownText_0x11f5c3: ; 0x11f5c3
- text_jump UnknownText_0x1eca64
- db "@"
-
-UnknownText_0x11f5c8: ; 0x11f5c8
- text_jump UnknownText_0x1eca82
- db "@"
-
-UnknownText_0x11f5cd: ; 0x11f5cd
- text_jump UnknownText_0x1eca9d
- db "@"
-
-UnknownText_0x11f5d2: ; 0x11f5d2
- text_jump UnknownText_0x1ecabf
- db "@"
-
-UnknownText_0x11f5d7: ; 0x11f5d7
- text_jump UnknownText_0x1ecade
- db "@"
-
-UnknownText_0x11f5dc: ; 0x11f5dc
- text_jump UnknownText_0x1ecafa
- db "@"
-
-UnknownText_0x11f5e1: ; 0x11f5e1
- text_jump UnknownText_0x1ecb19
- db "@"
-
-UnknownText_0x11f5e6: ; 0x11f5e6
- text_jump UnknownText_0x1ecb37
- db "@"
-
-UnknownText_0x11f5eb: ; 0x11f5eb
- text_jump UnknownText_0x1ecb55
- db "@"
-
-UnknownText_0x11f5f0: ; 0x11f5f0
- text_jump UnknownText_0x1ecb70
- db "@"
-
-UnknownText_0x11f5f5: ; 0x11f5f5
- text_jump UnknownText_0x1ecb92
- db "@"
-
-UnknownText_0x11f5fa: ; 0x11f5fa
- text_jump UnknownText_0x1ecbb6
- db "@"
-
-UnknownText_0x11f5ff: ; 0x11f5ff
- text_jump UnknownText_0x1ecbd9
- db "@"
-
-UnknownText_0x11f604: ; 0x11f604
- text_jump UnknownText_0x1ecbf3
- db "@"
-
-UnknownText_0x11f609: ; 0x11f609
- text_jump UnknownText_0x1ecc15
- db "@"
-
-UnknownText_0x11f60e: ; 0x11f60e
- text_jump UnknownText_0x1ecc39
- db "@"
-
-UnknownText_0x11f613: ; 0x11f613
- text_jump UnknownText_0x1ecc55
- db "@"
-
-UnknownText_0x11f618: ; 0x11f618
- text_jump UnknownText_0x1ecc75
- db "@"
-
-UnknownText_0x11f61d: ; 0x11f61d
- text_jump UnknownText_0x1ecc92
- db "@"
-
-UnknownText_0x11f622: ; 0x11f622
- text_jump UnknownText_0x1ecca7
- db "@"
-
-UnknownText_0x11f627: ; 0x11f627
- text_jump UnknownText_0x1eccc1
- db "@"
-
-UnknownText_0x11f62c: ; 0x11f62c
- text_jump UnknownText_0x1eccd7
- db "@"
-
-UnknownText_0x11f631: ; 0x11f631
- text_jump UnknownText_0x1eccef
- db "@"
-
-UnknownText_0x11f636: ; 0x11f636
- text_jump UnknownText_0x1ecd0e
- db "@"
-
-UnknownText_0x11f63b: ; 0x11f63b
- text_jump UnknownText_0x1ecd2b
- db "@"
-
-UnknownText_0x11f640: ; 0x11f640
- text_jump UnknownText_0x1ecd4d
- db "@"
-
-UnknownText_0x11f645: ; 0x11f645
- text_jump UnknownText_0x1ecd6b
- db "@"
-
-UnknownText_0x11f64a: ; 0x11f64a
- text_jump UnknownText_0x1ecd8d
- db "@"
-
-UnknownText_0x11f64f: ; 0x11f64f
- text_jump UnknownText_0x1ecdaf
- db "@"
-
-UnknownText_0x11f654: ; 0x11f654
- text_jump UnknownText_0x1ecdcf
- db "@"
-
-UnknownText_0x11f659: ; 0x11f659
- text_jump UnknownText_0x1ecded
- db "@"
-
-UnknownText_0x11f65e: ; 0x11f65e
- text_jump UnknownText_0x1ece0d
- db "@"
-
-UnknownText_0x11f663: ; 0x11f663
- text_jump UnknownText_0x1ece2a
- db "@"
-
-UnknownText_0x11f668: ; 0x11f668
- text_jump UnknownText_0x1ece4b
- db "@"
-
-UnknownText_0x11f66d: ; 0x11f66d
- text_jump UnknownText_0x1ece70
- db "@"
-
-UnknownText_0x11f672: ; 0x11f672
- text_jump UnknownText_0x1ece8a
- db "@"
-
-UnknownText_0x11f677: ; 0x11f677
- text_jump UnknownText_0x1ecea8
- db "@"
-
-UnknownText_0x11f67c: ; 0x11f67c
- text_jump UnknownText_0x1ecec9
- db "@"
-
-UnknownText_0x11f681: ; 0x11f681
- text_jump UnknownText_0x1ecee8
- db "@"
-
-
-SECTION "bank5B", ROMX, BANK[$5B]
-
-Function16c000: ; 16c000
- ld a, [hCGB]
- and a
- ret z
- ld a, [$ffea]
- and a
- ret z
- ld a, [wcfbe]
- push af
- set 7, a
- ld [wcfbe], a
- call Function16c108
- callba Function100063
- callba Function100082
- call Function16c031
- callba Function1000a4
- xor a
- ld [$ffea], a
- pop af
- ld [wcfbe], a
- ret
-; 16c031
-
-Function16c031: ; 16c031
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [DefaultFlypoint], a
- ld [wd003], a
-.asm_16c03e
- call DelayFrame
- callba Function10635c
- ld a, [DefaultFlypoint]
- ld hl, Jumptable_16c05c
- rst JumpTable
- call Function16cb2e
- call Function16cbae
- ld a, [DefaultFlypoint]
- cp $ff
- jr nz, .asm_16c03e
- ret
-; 16c05c
-
-Jumptable_16c05c: ; 16c05c
- dw Function16c074
- dw Function16c0ba
- dw Function16c089
- dw Function16c09e
- dw Function16c0a8
- dw Function16c0dc
- dw Function16c0ec
- dw Function16c0ba
- dw Function16c0ca
- dw Function16c0dc
- dw Function16c0ec
- dw Function16c081
-; 16c074
-
-Function16c074: ; 16c074
- ld a, [wcf64]
- and a
- ret z
- ld [DefaultFlypoint], a
- xor a
- ld [wd003], a
- ret
-; 16c081
-
-Function16c081: ; 16c081
- push af
- ld a, $ff
- ld [DefaultFlypoint], 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, [DefaultFlypoint]
- 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 WhiteBGMap
- call ClearScreen
- push af
- ld a, $ff
- ld [DefaultFlypoint], a
- pop af
- ret
-; 16c0fa
-
-Function16c0fa: ; 16c0fa
- push af
- ld a, [DefaultFlypoint]
- inc a
- ld [DefaultFlypoint], a
- xor a
- ld [wd003], a
- pop af
- ret
-; 16c108
-
-Function16c108: ; 16c108
- call DisableLCD
- ld hl, VTiles2
- ld de, GFX_16c173
- lb bc, BANK(GFX_16c173), $68
- call Get2bpp
- call Function16c130
- call Function16c145
- call Function16c15c
- ld hl, VBGMap0
- call Function16cc73
- call Function16cc02
- xor a
- ld [hBGMapMode], a
- call EnableLCD
- ret
-; 16c130
-
-Function16c130: ; 16c130
- ld de, Unkn1Pals
- ld hl, Unknown_16c903
- ld bc, 8
- ld a, $5
- call FarCopyWRAM
- callba Function96a4
- ret
-; 16c145
-
-Function16c145: ; 16c145
- hlcoord 0, 0
- ld bc, 20
- xor a
- call ByteFill
- ld hl, Tilemap_16c633
- decoord 0, 1
- ld bc, $0154
- call CopyBytes
- ret
-; 16c15c
-
-Function16c15c: ; 16c15c
- hlcoord 0, 0, AttrMap
- ld bc, $0014
- xor a
- call ByteFill
- ld hl, Tilemap_16c79b
- decoord 0, 1, AttrMap
- ld bc, $0154
- call CopyBytes
- ret
-; 16c173
-
-GFX_16c173:
-INCBIN "gfx/unknown/16c173.2bpp"
-
-Tilemap_16c633:
-INCBIN "gfx/unknown/16c633.tilemap"
-
-Tilemap_16c79b:
-INCBIN "gfx/unknown/16c79b.tilemap"
-
-Unknown_16c903:
- RGB 31, 31, 31
- RGB 04, 10, 20
- RGB 16, 19, 25
- RGB 25, 27, 29
- 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
-; 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, Unkn1Pals
- 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, Unknown_16c903
- call Function16cab6
- call Function16cabb
- ld d, a
- ld hl, Unkn1Pals
- 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, Unkn1Pals
- call Function16cab6
- call Function16cadc
-
-.asm_16c991
- ld hl, Unknown_16c903
- call Function16cab6
- call Function16cad8
- ld d, a
- ld hl, Unkn1Pals
- 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, Unkn1Pals
- call Function16cab6
- call Function16cb08
-
-.asm_16c9b9
- ld hl, Unknown_16c903
- call Function16cab6
- call Function16cac4
- ld d, a
- ld hl, Unkn1Pals
- 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, Unkn1Pals
- call Function16cab6
- call Function16cae8
-
-.asm_16c9e1
-rept 2
- inc e
-endr
- ld a, e
- cp $8
- jr nz, .asm_16c969
- callba Function96a4
- 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 Function96a4
-
-.asm_16ca1d
- ld a, [rSVBK]
- push af
- ld a, $5
- ld [rSVBK], a
- ld e, $0
- ld a, $0
-.asm_16ca28
- ld hl, Unkn1Pals
- 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, Unkn1Pals
- call Function16cab6
- call Function16cadc
-
-.asm_16ca48
- ld hl, Unkn1Pals
- 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, Unkn1Pals
- call Function16cab6
- call Function16cb08
-
-.asm_16ca68
- ld hl, Unkn1Pals
- 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, Unkn1Pals
- call Function16cab6
- call Function16cae8
-
-.asm_16ca88
-rept 2
- inc e
-endr
- ld a, e
- cp $8
- jr nz, .asm_16ca28
- callba Function96a4
- 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, $0002
- ld hl, Unknown_16cfa3
- call AddNTimes
- ld de, wd00c
- ld bc, $0002
- ld a, $5
- call FarCopyWRAM
- callba Function96a4
- 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, wd008
- call Function16cc41
- ld hl, Unknown_16cfb1
- ld de, Unkn2Pals
- call Function16cc41
- ld hl, Unknown_16cfb9
- ld de, wd048
- call Function16cc41
- ret
-; 16cc41
-
-Function16cc41: ; 16cc41
- ld bc, $0008
- 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
- ld hl, 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
-
-GFX_16cfc1:
-INCBIN "gfx/unknown/16cfc1.2bpp"
-
-Function16d421: ; 16d421
- ld de, GFX_16cfc1
- ld hl, VTiles2
- lb bc, BANK(GFX_16cfc1), $46
- call Get2bpp
- ret
-; 16d42e
-
-Function16d42e: ; 16d42e
- ld hl, Tilemap_16d465
- decoord 0, 0
- ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
- call CopyBytes
- ret
-; 16d43b
-
-Function16d43b: ; 16d43b
- call LoadMenuDataHeader_0x1d75
- call WhiteBGMap
- call ClearTileMap
- call ClearSprites
- callba Function16d421
- callba Function16d42e
- ld b, $8
- call GetSGBLayout
- call SetPalettes
- call WaitBGMap
- call JoyWaitAorB
- call Call_ExitMenu
- ret
-; 16d465
-
-Tilemap_16d465:
-INCBIN "gfx/unknown/16d465.tilemap"
-
-Tilemap_16d5cd:
-INCBIN "gfx/unknown/16d5cd.tilemap"
-
-Tilemap_16d5f5:
-INCBIN "gfx/unknown/16d5f5.tilemap"
-
-Function16d61d: ; 16d61d
- ld h, d
- ld l, e
- push bc
- push hl
- call Function16d640
- pop hl
- pop bc
- ld de, AttrMap - TileMap
- add hl, de
-rept 2
- inc b
-endr
-rept 2
- inc c
-endr
- ld a, $7
-.asm_16d630
- push bc
- push hl
-.asm_16d632
- ld [hli], a
- dec c
- jr nz, .asm_16d632
- pop hl
- ld de, $0014
- add hl, de
- pop bc
- dec b
- jr nz, .asm_16d630
- ret
-; 16d640
-
-Function16d640: ; 16d640
- push hl
- ld a, $30
- ld [hli], a
- inc a
- call Function16d66d
- inc a
- ld [hl], a
- pop hl
- ld de, $0014
- add hl, de
-.asm_16d64f
- push hl
- ld a, $33
- ld [hli], a
- ld a, $7f
- call Function16d66d
- ld [hl], $34
- pop hl
- ld de, $0014
- add hl, de
- dec b
- jr nz, .asm_16d64f
- ld a, $35
- ld [hli], a
- ld a, $36
- call Function16d66d
- ld [hl], $37
- ret
-; 16d66d
-
-Function16d66d: ; 16d66d
- ld d, c
-.asm_16d66e
- ld [hli], a
- dec d
- jr nz, .asm_16d66e
- ret
-; 16d673
-
-Function16d673: ; 16d673
- call Function16d696
- call Function16d6ae
- callba Function49856
- callba Functionfb60d
- hlcoord 10, 17
- ld de, String_16d68f
- call PlaceString
- ret
-; 16d68f
-
-String_16d68f: ; 16d68f
- db "CANCEL@"
-; 16d696
-
-Function16d696: ; 16d696
- call Function16d421
- ret
-; 16d69a
-
-
-Function16d69a: ; 16d69a
- ld de, GFX_16cfc1 + $300
- ld hl, VTiles2 tile $76
- lb bc, BANK(GFX_16cfc1), 8
- call Get2bpp
- ret
-; 16d6a7
-
-Function16d6a7: ; 16d6a7
- callba Function49811
- ret
-; 16d6ae
-
-Function16d6ae: ; 16d6ae
- call Function16d42e
- ld hl, Tilemap_16d5cd
- decoord 0, 0
- ld bc, $0028
- call CopyBytes
- ld hl, Tilemap_16d5f5
- decoord 0, 16
- ld bc, $0028
- call CopyBytes
- ret
-; 16d6ca
-
-Function16d6ca: ; 16d6ca
- call Function16d61d
- ret
-; 16d6ce
-
-Function16d6ce: ; 16d6ce
- call LoadMenuDataHeader_0x1d75
- call Function16d6e1
- callba Function87d
- call Call_ExitMenu
- call Function3200
- ret
-; 16d6e1
-
-Function16d6e1: ; 16d6e1
- hlcoord 4, 10
- ld b, $1
- ld c, $a
- predef Function28eef
- hlcoord 5, 11
- ld de, String_16d701
- call PlaceString
- call WaitBGMap
- call Function3200
- ld c, $32
- jp DelayFrames
-; 16d701
-
-String_16d701: ; 16d701
- db "WAITING..!@"
-; 16d70c
-
-Function16d70c: ; 16d70c
- call Function16d725
- call Function16d713
- ret
-; 16d713
-
-Function16d713: ; 16d713
- push bc
- push af
- ld a, [hJoyLast]
- and $f0
- ld b, a
- ld a, [hJoyPressed]
- and $f
- or b
- ld b, a
- pop af
- ld a, b
- pop bc
- ld d, a
- ret
-; 16d725
-
-Function16d725: ; 16d725
- ld hl, wcfa6
- res 7, [hl]
- ld a, [hBGMapMode]
- push af
- call Function16d734
- pop af
- ld [hBGMapMode], a
- ret
-; 16d734
-
-Function16d734: ; 16d734
-.asm_16d734
- call Function16d77a
- call Function16d759
- call Function16d76a
- jr nc, .asm_16d758
- callba Function24270
- jr c, .asm_16d758
- ld a, [wcfa5]
- bit 7, a
- jr nz, .asm_16d758
- call Function16d713
- ld b, a
- ld a, [wcfa8]
- and b
- jr z, .asm_16d734
-
-.asm_16d758
- ret
-; 16d759
-
-Function16d759: ; 16d759
- ld a, [hOAMUpdate]
- push af
- ld a, $1
- ld [hOAMUpdate], a
- call WaitBGMap
- pop af
- ld [hOAMUpdate], a
- xor a
- ld [hBGMapMode], a
- ret
-; 16d76a
-
-Function16d76a: ; 16d76a
-.asm_16d76a
- call RTC
- call Function16d7e7
- ret c
- ld a, [wcfa5]
- bit 7, a
- jr z, .asm_16d76a
- and a
- ret
-; 16d77a
-
-Function16d77a: ; 16d77a
- ld hl, wcfac
- ld a, [hli]
- ld h, [hl]
- ld l, a
- ld a, [hl]
- cp $1f
- jr nz, .asm_16d792
- ld a, [wcfab]
- ld [hl], a
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], a
- pop bc
- pop hl
-
-.asm_16d792
- ld a, [wcfa1]
- ld b, a
- ld a, [wcfa2]
- ld c, a
- call GetTileCoord
- ld a, [wcfa7]
- swap a
- and $f
- ld c, a
- ld a, [wcfa9]
- ld b, a
- xor a
- dec b
- jr z, .asm_16d7b1
-.asm_16d7ad
- add c
- dec b
- jr nz, .asm_16d7ad
-
-.asm_16d7b1
- ld c, $14
- call AddNTimes
- ld a, [wcfa7]
- and $f
- ld c, a
- ld a, [wcfaa]
- ld b, a
- xor a
- dec b
- jr z, .asm_16d7c8
-.asm_16d7c4
- add c
- dec b
- jr nz, .asm_16d7c4
-
-.asm_16d7c8
- ld c, a
- add hl, bc
- ld a, [hl]
- cp $1f
- jr z, .asm_16d7de
- ld [wcfab], a
- ld [hl], $1f
- push hl
- push bc
- ld bc, $000b
- add hl, bc
- ld [hl], $1f
- pop bc
- pop hl
-
-.asm_16d7de
- ld a, l
- ld [wcfac], a
- ld a, h
- ld [wcfad], a
- ret
-; 16d7e7
-
-Function16d7e7: ; 16d7e7
- ld a, [wcfa5]
- bit 6, a
- jr z, .asm_16d7f4
- callba Function8cf62
-
-.asm_16d7f4
- call JoyTextDelay
- call Function16d713
- and a
- ret z
- scf
- ret
-; 16d7fe
-
-
-SECTION "bank5C", ROMX, BANK[$5C]
-
-Function170000: ; 170000
- ld a, [$c62b]
- ld [$c6d0], a
- ld hl, $c62e
- ld de, $c6e7
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $c663
- ld de, $c6f2
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $c648
- ld a, [hli]
- ld [$c6fd], a
- ld a, [hl]
- ld [$c6fe], a
- ld hl, $c639
- ld a, [hli]
- ld [$c6ff], a
- ld a, [hl]
- ld [wc700], a
- ld bc, $c633
- callba GetCaughtGender
- ld a, c
- ld [wc701], 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 [wc702], a
- ld hl, $a827
- ld de, wc719
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $a85c
- ld de, wc724
- ld bc, $0005
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, $a841
- ld a, [hli]
- ld [wc72f], a
- ld a, [hl]
- ld [wc730], a
- ld hl, $a832
- ld a, [hli]
- ld [wc731], a
- ld a, [hl]
- ld [wc732], a
- ld bc, $a82c
- callba GetCaughtGender
- ld a, c
- ld [wc733], a
- ld a, [wcd81]
- ld [wc74e], a
- call CloseSRAM
- ret
-; 1700b0
-
-Function1700b0: ; 1700b0
- call Function17021e
- callba Function118121
- ret
-; 1700ba
-
-Function1700ba: ; 1700ba
- call Function17021e
- 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, $dffc
- ld de, $aa41
- ld bc, $0004
- call CopyBytes
- ld hl, $d202
- ld de, $aa8e
- ld bc, $0594
- call CopyBytes
- ld hl, $aa5d
- 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, $dffc
- ld bc, $0004
- call CopyBytes
- call CloseSRAM
- pop af
- ld [rSVBK], a
- ret
-; 170114
-
-Function170114: ; 170114
- call Function17021e
- call Function170121
- callba Function11805f
- ret
-; 170121
-
-Function170121: ; 170121
- ld a, $5
- call GetSRAMBank
- ld hl, $a948
- ld de, $c608
- ld bc, $00f6
- call CopyBytes
- call CloseSRAM
- call Function170c8b
- ret
-; 170139
-
-Function170139: ; 170139
- ld a, $5
- call GetSRAMBank
- ld de, $aa41
- ld h, $0
- ld l, h
- ld bc, $03e8
- call Function17020c
- ld bc, $0064
- call Function17020c
- ld bc, $000a
- call Function17020c
- ld a, [de]
- ld c, a
- ld b, $0
- add hl, bc
- call CloseSRAM
- ld a, h
- ld [$c608], a
- ld a, l
- ld [$c608 + 1], a
- ld hl, $c628
- 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, $0005
- call CopyBytes
- ld bc, PlayerID
- ld de, PlayerGender
- callba Function4e929
- ld de, $c62c + 5
- ld a, c
- ld [de], a
- inc de
- ld a, $df
- ld [wcd49], a
- ld a, $dc
- ld [wcd4a], a
- ld a, $41
- ld [wcd4b], a
- ld a, $de
- ld [wcd4c], a
- ld a, $3
-.asm_1701ac
- push af
- ld a, [wcd49]
- ld l, a
- ld a, [wcd4a]
- ld h, a
- ld bc, $0030
- 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, .asm_1701ac
- ld a, $4
- call GetSRAMBank
- ld hl, $a013
- ld bc, $0024
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $a894
- ld bc, $0006
- call CopyBytes
- ld hl, $c608
- ld de, $a948
- ld bc, $00f6
- call CopyBytes
- call CloseSRAM
- ret
-; 17020c
-
-Function17020c: ; 17020c
- ld a, [de]
- inc de
- and a
- ret z
-.asm_170210
- add hl, bc
- dec a
- jr nz, .asm_170210
- ret
-; 170215
-
-Function170215: ; 170215
- xor a
- ld [wJumptableIndex], a
- call Function17022c
- ret
-; 17021d
-
-Function17021d: ; 17021d
- ret
-; 17021e
-
-Function17021e: ; 17021e
- xor a
- ld [wJumptableIndex], a
- ld [wcf64], a
- ld [wcf65], a
- ld [wcf66], a
- ret
-; 17022c
-
-Function17022c: ; 17022c
-.asm_17022c
- call Jumpto_BattleTowerBattleFunction
- call DelayFrame
- ld a, [wJumptableIndex]
- cp $1
- jr nz, .asm_17022c
- ret
-; 17023a
-
-Jumpto_BattleTowerBattleFunction: ; 17023a
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_BattleTowerBattleFunctions
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 170249
-
-Jumptable_BattleTowerBattleFunctions: ; 170249
- dw RunBattleTowerBattle
- dw SkipBattleTowerBattle
-; 17024d
-
-RunBattleTowerBattle: ; 17024d
- ld a, [Options]
- push af
- ld hl, Options
- set 6, [hl]
- ld a, [InBattleTowerBattle]
- push af
- or $1
- ld [InBattleTowerBattle], a
- xor a
- ld [wLinkMode], a
- callba Mobile_HealParty
- callba HealParty
- call Function1702b7
- call Function170bf7
- predef StartBattle
- callba LoadPokemonData
- callba HealParty
- ld a, [wBattleResult]
- ld [ScriptVar], a
- and a
- jr nz, .asm_1702a9
- ld a, BANK(sNrOfBeatenBattleTowerTrainers)
- call GetSRAMBank
- ld a, [sNrOfBeatenBattleTowerTrainers]
- ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64
- call CloseSRAM
- ld hl, StringBuffer3
- ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64
- add $f7
- ld [hli], a
- ld a, $50
- ld [hl], a
-
-.asm_1702a9
- pop af
- ld [InBattleTowerBattle], a
- pop af
- ld [Options], a
- ld a, $1
- ld [wJumptableIndex], a
- ret
-
-
-Function1702b7: ; 1702b7
-; Initialise the BattleTower-Trainer and his Pkmn
- call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy
- ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643
- ld c, PKMN_NAME_LENGTH
- callba Function17d073
- jr nc, .asm_1702db
-
- ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1]
- ld [wd265], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.asm_1702db
- ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e
- ld c, PKMN_NAME_LENGTH
- callba Function17d073
- jr nc, .asm_1702fc
- ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e]
- ld [wd265], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.asm_1702fc
- ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9
- ld c, PKMN_NAME_LENGTH
- callba Function17d073
- jr nc, .asm_17031d
- ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689]
- ld [wd265], a
- call GetPokemonName
- ld l, e
- ld h, d
- ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9
- ld bc, PKMN_NAME_LENGTH
- call CopyBytes
-
-.asm_17031d
- ld a, $50
- ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d
- ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688
- ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3
- call Function170c98
- ld de, wBT_OTTempCopy
- ld c, $a
- callba Function17d073
- jr nc, .asm_17033d
- ld hl, String_170426
- jr .asm_170340
-
-.asm_17033d
- ld hl, wBT_OTTempCopy ; 0xc608
-
-.asm_170340
- ld de, wd26b
- ld bc, $000a
- call CopyBytes
- ld a, $50
- ld [de], a
- ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass
- ld a, [hli]
- ld [OtherTrainerClass], a
- ld a, $ea
- ld [BGMapBuffer], a
- ld a, $d3
- ld [wcd21], 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
-.asm_170367
- push af
- ld a, [hl]
- ld [bc], a
- inc bc
- push bc
- ld bc, BATTLETOWER_PKMNSTRUCTLENGTH
- call CopyBytes
- push de
- ld a, [BGMapBuffer]
- ld e, a
- ld a, [wcd21]
- ld d, a
- ld bc, $000b
- call CopyBytes
- ld a, e
- ld [BGMapBuffer], a
- ld a, d
- ld [wcd21], a
- pop de
- pop bc
- pop af
- dec a
- and a
- jr nz, .asm_170367
- ld a, $ff
- ld [bc], a
- ret
-; 170394
-
-Function170394: ; 170394
- ld hl, $c608 + 11
- ld d, $3
-.asm_170399
- push de
- push hl
- ld b, h
- ld c, l
- ld a, [hl]
- and a
- jr z, .asm_1703b1
- cp $ff
- jr z, .asm_1703b1
- cp $fe
- jr z, .asm_1703b1
- cp $fd
- jr z, .asm_1703b1
- cp $fc
- jr nz, .asm_1703b4
-
-.asm_1703b1
- ld a, $eb
- ld [hl], a
-
-.asm_1703b4
- ld [CurSpecies], a
- call GetBaseData
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld e, a
- ld hl, $001f
- add hl, bc
- ld a, [hl]
- cp $2
- ld a, $2
- jr c, .asm_1703d6
- ld a, [hl]
- cp e
- jr c, .asm_1703d7
- ld a, e
-
-.asm_1703d6
- ld [hl], a
-
-.asm_1703d7
- ld [CurPartyLevel], a
- ld hl, $0002
- add hl, bc
- ld d, $3
- ld a, [hli]
- and a
- jr z, .asm_1703ea
- cp $fc
- jr nc, .asm_1703ea
- jr .asm_1703f4
-
-.asm_1703ea
- dec hl
- ld a, $1
- ld [hli], a
- xor a
-rept 2
- ld [hli], a
-endr
- ld [hl], a
- jr .asm_1703ff
-
-.asm_1703f4
- ld a, [hl]
- cp $fc
- jr c, .asm_1703fb
- ld [hl], $0
-
-.asm_1703fb
- inc hl
- dec d
- jr nz, .asm_1703f4
-
-.asm_1703ff
- ld hl, $0024
- add hl, bc
- ld d, h
- ld e, l
- push hl
- push de
- ld hl, $000a
- add hl, bc
- ld b, $1
- predef CalcPkmnStats
- pop de
- pop hl
-rept 2
- dec de
-endr
- ld a, [hli]
- ld [de], a
- inc de
- ld a, [hl]
- ld [de], a
- pop hl
- ld bc, $003b
- add hl, bc
- pop de
- dec d
- jp nz, .asm_170399
- ret
-; 170426
-
-String_170426: ; 170426
- db "CHRIS@"
-; 17042c
-
-Function17042c: ; 17042c
- ld hl, OTPartyMon2ID
- ld a, $7
-.asm_170431
- push af
- push hl
- ld c, $12
-.asm_170435
- ld a, [hli]
- ld b, a
- ld a, [hli]
- and a
- jr z, .asm_170451
- cp $f
- jr nc, .asm_17045b
- push hl
- ld hl, Unknown_170470
- dec a
- ld e, a
- ld d, 0
- add hl, de
- ld a, [hl]
- pop hl
- cp b
- jr c, .asm_17045b
- jr z, .asm_17045b
- jr .asm_170456
-
-.asm_170451
- ld a, b
- cp $fc
- jr nc, .asm_17045b
-
-.asm_170456
- dec c
- jr nz, .asm_170435
- jr .asm_170466
-
-.asm_17045b
- pop de
- push de
- ld hl, Unknown_17047e
- ld bc, $0024
- call CopyBytes
-
-.asm_170466
- pop hl
- ld de, $00e0
- add hl, de
- pop af
- dec a
- jr nz, .asm_170431
- ret
-; 170470
-
-Unknown_170470:
- db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24
-
-Unknown_17047e:
- db $03, $04, $05, $08
- db $03, $05, $0e, $06
- db $03, $02, $00, $00
- db $39, $07, $07, $04
- db $00, $05, $04, $07
- db $01, $05, $00, $00
- db $0f, $05, $14, $07
- db $05, $05, $11, $0c
- db $0c, $06, $06, $04
-
-
-CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2
-; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy'
- ld a, [rSVBK]
- push af
- ld a, $3
- ld [rSVBK], a
- ld hl, BT_OTrainer ; $d100
- ld de, wBT_OTTempCopy ; $c608
- ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24
- ; = $a + $1 + BATTLETOWER_NROFPKMNS * (BATTLETOWER_PKMNSTRUCTLENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH
- call CopyBytes
- pop af
- ld [rSVBK], a
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, $2
- ld [s1_be45], a
- ld hl, sNrOfBeatenBattleTowerTrainers
- inc [hl]
- call CloseSRAM
-SkipBattleTowerBattle: ; 1704c9
- ret
-; 1704ca
-
-Function1704ca: ; 1704ca
- 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
- call SpeechTextBox
- call FadeToMenu
- call Function17021e
- call Function1704f1
- call Function2b3c
- ret
-; 1704f1
-
-Function1704f1: ; 1704f1
- call WhiteBGMap
- call ClearSprites
- call ClearScreen
-.asm_1704fa
- call JoyTextDelay
- ld a, [wJumptableIndex]
- bit 7, a
- jr nz, .asm_17050f
- call Function170510
- callba Function104061
- jr .asm_1704fa
-
-.asm_17050f
- ret
-; 170510
-
-Function170510: ; 170510
- ld a, [wJumptableIndex]
- ld e, a
- ld d, 0
- ld hl, Jumptable_17051f
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 17051f
-
-Jumptable_17051f: ; 17051f
- dw Function170525
- dw Function170571
- dw Function170577
-; 170525
-
-Function170525: ; 170525
- ld a, $5
- call GetSRAMBank
-
- ld hl, $a89c
- ld de, StringBuffer3
- ld bc, $0016
- call CopyBytes
-
- ld hl, $a8b2
- ld de, $c608
- ld bc, $0096
- call CopyBytes
-
- call CloseSRAM
- hlcoord 1, 1
- ld de, StringBuffer3
- call PlaceString
- hlcoord 1, 3
- ld de, String_170676
- call PlaceString
- hlcoord 4, 3
- ld de, StringBuffer4
- call PlaceString
- hlcoord 8, 3
- ld de, String_17067a
- call PlaceString
- call Function1705b7
- call Function1705f0
- jr Function1705b2
-
-
-Function170571:
- call SetPalettes
- call Function1705b2
-
-
-Function170577:
- ld hl, hJoyPressed
- ld a, [hl]
- and $1
- jr nz, .asm_1705ac
- ld a, [hl]
- and $2
- jr nz, .asm_1705ac
- ld a, [hl]
- and $40
- jr nz, .asm_17058f
- ld a, [hl]
- and $80
- jr nz, .asm_17059d
- ret
-
-.asm_17058f
- ld a, [wcf64]
- and a
- ret z
- sub $f
- ld [wcf64], a
- call Function1705f0
- ret
-
-.asm_17059d
- ld a, [wcf64]
- cp $3c
- ret z
- add $f
- ld [wcf64], a
- call Function1705f0
- ret
-
-.asm_1705ac
- ld hl, wJumptableIndex
- set 7, [hl]
- ret
-
-Function1705b2:
- ld hl, wJumptableIndex
- inc [hl]
- ret
-; 1705b7
-
-Function1705b7: ; 1705b7
- hlcoord 0, 4
- ld a, $79
- ld [hli], a
- ld c, $12
-.asm_1705bf
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .asm_1705bf
- ld a, $7b
- ld [hli], a
- ld de, $0014
- ld c, $c
-.asm_1705cd
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_1705cd
- ld a, $7d
- ld [hli], a
- ld c, $12
-.asm_1705d9
- ld a, $7a
- ld [hli], a
- dec c
- jr nz, .asm_1705d9
- ld a, $7e
- ld [hl], a
- ld de, $ffec
- add hl, de
- ld c, $c
-.asm_1705e8
- ld a, $7c
- ld [hl], a
- add hl, de
- dec c
- jr nz, .asm_1705e8
- ret
-; 1705f0
-
-Function1705f0: ; 1705f0
- call Function17064b
- call Function17065d
- ld a, $50
- ld [wcd4e], a
- ld hl, $c608
- ld a, [wcf64]
- ld c, a
- xor a
- ld b, a
- add hl, bc
- push hl
- pop bc
- hlcoord 1, 6
- ld a, $6
-.asm_17060c
- push af
- push hl
- ld a, $3
-.asm_170610
- push af
- ld de, wcd49
- ld a, [bc]
- and a
- jr z, .asm_170625
- ld a, $5
-.asm_17061a
- push af
- ld a, [bc]
- ld [de], a
- inc bc
- inc de
- pop af
- dec a
- jr nz, .asm_17061a
- jr .asm_170631
-
-.asm_170625
- ld a, $5
-.asm_170627
- push af
- ld a, $e3
- ld [de], a
- inc de
- inc bc
- pop af
- dec a
- jr nz, .asm_170627
-
-.asm_170631
- ld de, wcd49
- push bc
- call PlaceString
- ld de, $0006
- add hl, de
- pop bc
- pop af
- dec a
- jr nz, .asm_170610
- pop hl
- ld de, $0028
- add hl, de
- pop af
- dec a
- jr nz, .asm_17060c
- ret
-; 17064b
-
-Function17064b: ; 17064b
- hlcoord 1, 5
- xor a
- ld b, $c
-.asm_170651
- ld c, $12
-.asm_170653
- ld [hli], a
- dec c
- jr nz, .asm_170653
-rept 2
- inc hl
-endr
- dec b
- jr nz, .asm_170651
- ret
-; 17065d
-
-Function17065d: ; 17065d
- ld a, [wcf64]
- and a
- jr z, .asm_170669
- hlcoord 18, 5
- ld a, $61
- ld [hl], a
-
-.asm_170669
- ld a, [wcf64]
- cp $3c
- ret z
- hlcoord 18, 16
- ld a, $ee
- ld [hl], a
- ret
-; 170676
-
-String_170676: ; 170676
- db "ルーム@"
-; 17067a
-
-String_17067a: ; 17067a
- db "れきだいりーダーいちらん@"
-; 170687
-
-Function170687: ; 170687
- ld a, [ScriptVar]
- ld e, a
- ld d, 0
- ld hl, Jumptable_170696
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-; 170696
-
-
-Jumptable_170696: ; 170696 (5c:4696)
- dw Function17075f ; 0x00
- dw Function170788 ; 0x01
- dw Function170778 ; 0x02
- dw Function170799 ; 0x03
- dw Function17079d ; 0x04
- dw Function1707ac ; 0x05
- dw Function1707f4 ; 0x06
- dw Function170868 ; 0x07
- dw Function170881 ; 0x08
- dw Function17089a ; 0x09
- dw Function1708b1 ; 0x0a
- dw Function1708b9 ; 0x0b
- dw Function1708c8 ; 0x0c
- dw Function1708f0 ; 0x0d
- dw Function17093c ; 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 Function170ae8 ; 0x18
- dw Function170b16 ; 0x19
- dw ResetBattleTowerTrainersSRAM ; 0x1a
- dw Function1706ee ; 0x1b
- dw Function17071b ; 0x1c
- dw Function170729 ; 0x1d
- dw Function17073e ; 0x1e
- dw Function170737 ; 0x1f
-
-
-; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes)
-ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6)
- 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
-
-Function1706ee: ; 1706ee (5c:46ee)
- ld a, BANK(sbe50)
- call GetSRAMBank
-
- ld a, [sbe50]
- call CloseSRAM
- ld [ScriptVar], a
- ld hl, NumItems
- ld a, [hli]
- cp $14
- ret c
- ld b, $14
- ld a, [ScriptVar]
- ld c, a
-.asm_170709
- ld a, [hli]
- cp c
- jr nz, .asm_170711
- ld a, [hl]
- cp $5f
- ret c
-.asm_170711
- inc hl
- dec b
- jr nz, .asm_170709
- ld a, $12
- ld [ScriptVar], a
- ret
-
-Function17071b: ; 17071b (5c:471b)
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, $3
- ld [s1_be45], a
- call CloseSRAM
- ret
-
-Function170729: ; 170729 (5c:4729)
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, $4
- ld [s1_be45], a
- call CloseSRAM
- ret
-
-Function170737: ; 170737 (5c:4737)
- callba SaveOptions
- ret
-
-Function17073e: ; 17073e (5c:473e)
- call Random
- ld a, [hRandomAdd] ; $ff00+$e1
- and $7
- cp $6
- jr c, .asm_17074b
- sub $6
-.asm_17074b
- add $1a
- cp $1e
- jr z, Function17073e
- push af
- ld a, BANK(sbe50)
- call GetSRAMBank
- pop af
- ld [sbe50], a
- call CloseSRAM
- ret
-
-Function17075f: ; 17075f (5c:475f)
- call Function17089a
- ld a, [ScriptVar]
- and a
- ret z
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- and $2
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170778: ; 170778 (5c:4778)
- ld hl, s1_be45
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, [hl]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170788: ; 170788 (5c:4788)
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- or $2
- ld [sbe4f], a
- call CloseSRAM
- ret
-
-Function170799: ; 170799 (5c:4799)
- ld c, $1
- jr asm_17079f
-
-Function17079d: ; 17079d (5c:479d)
- ld c, $0
-asm_17079f: ; 17079f (5c:479f)
- ld a, BANK(s1_be45)
- call GetSRAMBank
- ld a, c
- ld [s1_be45], a
- call CloseSRAM
- ret
-
-Function1707ac: ; 1707ac (5c:47ac)
- 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)
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$be46], a
- ld [$aa8b], a
- ld [$aa8c], a
- call CloseSRAM
- ret
-
-Function170807: ; 170807 (5c:4807)
- 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)
- 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, $8c
- 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
-
-Function170868: ; 170868 (5c:4868)
- ld a, BANK(sbe47)
- call GetSRAMBank
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $3
- ld [rSVBK], a ; $ff00+$70
- ld a, [wd000 + $800]
- ld [sbe47], a
- pop af
- ld [rSVBK], a ; $ff00+$70
- call CloseSRAM
- ret
-
-Function170881: ; 170881 (5c:4881)
- ld a, BANK(sbe47)
- call GetSRAMBank
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $3
- ld [rSVBK], a ; $ff00+$70
- ld a, [sbe47]
- ld [wd000 + $800], a
- pop af
- ld [rSVBK], a ; $ff00+$70
- call CloseSRAM
- ret
-
-Function17089a: ; 17089a
- ld a, [wcfcd]
- and a
- jr z, .asm_1708ad
- callba Function14bcb
- jr z, .asm_1708ab
- xor a
- jr .asm_1708ad
-
-.asm_1708ab
- ld a, $1
-
-.asm_1708ad
- ld [ScriptVar], a
- ret
-; 1708b1
-
-
-Function1708b1: ; 1708b1 (5c:48b1)
- xor a
- ld [MusicFade], a
- call MaxVolume
- ret
-
-Function1708b9: ; 1708b9 (5c:48b9)
- ld a, BANK(s1_be3c)
- call GetSRAMBank
- ld a, [s1_be3c]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function1708c8: ; 1708c8 (5c:48c8)
- 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)
- 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
-
-
-Function17093c: ; 17093c (5c:493c)
- 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
-.asm_170955
- ld a, [hli]
- cp EGG
- jr nz, .asm_17099f
- push hl
- ld hl, PartyMonOT ; wddff (aliases: PartyMonOT)
- ld de, $6
- ld a, b
- and a
- jr z, .asm_170969
-.asm_170965
- add hl, de
- dec a
- jr nz, .asm_170965
-.asm_170969
- ld de, String_1709a4
- ld a, $6
-.asm_17096e
- push af
- ld a, [de]
- inc de
- cp [hl]
- inc hl
- jr nz, .asm_17099d
- pop af
- dec a
- jr nz, .asm_17096e
-rept 4
- dec hl
-endr
- ld a, $50
-rept 2
- ld [hli], a
-endr
- pop hl
- ld a, EGG_TICKET
- ld [CurItem], a
- ld a, $1
- ld [wItemQuantityChangeBuffer], a
- ld a, $ff
- ld [wd107], a
- ld hl, NumItems
- call TossItem
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_17099d
- pop af
- pop hl
-.asm_17099f
- inc b
- dec c
- jr nz, .asm_170955
- ret
-; 1709a4 (5c:49a4)
-
-String_1709a4: ; 1709a4
- db "なぞナゾ@@"
-
-Function1709aa: ; 1709aa (5c:49aa)
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $3
- ld [rSVBK], a ; $ff00+$70
- ld a, [StringBuffer2 + 10]
- ld [ScriptVar], a
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-Function1709bb: ; 1709bb (5c:49bb)
- xor a
- ld [ScriptVar], a
- ld a, $5
- call GetSRAMBank
- ld a, [$a800]
- call CloseSRAM
- cp 6
- jr nc, .asm_1709da
- ld e, a
- ld d, 0
- ld hl, Jumptable_1709e7
-rept 2
- add hl, de
-endr
- ld a, [hli]
- ld h, [hl]
- ld l, a
- jp [hl]
-.asm_1709da
- ld a, $5
- call GetSRAMBank
- xor a
- ld [$a800], a
- call CloseSRAM
- ret
-; 1709e7 (5c:49e7)
-
-Jumptable_1709e7: ; 1709e7
- dw Function170a00
- dw Function170a00
- dw Function1709f3
- dw Function1709f3
- dw Function170a01
- dw Function170a33
-; 1709f3
-
-Function1709f3: ; 1709f3
- ld a, $5
- call GetSRAMBank
- ld a, $1
- ld [$a800], a
- call CloseSRAM
-
-Function170a00: ; 170a00
- ret
-; 170a01
-
-Function170a01: ; 170a01
- ld a, $5
- call GetSRAMBank
- ld hl, $b023
- ld de, $c608
- 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
-
-Function170a33: ; 170a33
- ld a, $0
- call GetSRAMBank
- ld hl, wRTC
- ld de, $c608
- ld bc, $0004
- call CopyBytes
- call CloseSRAM
- ld a, $5
- call GetSRAMBank
- ld hl, $b08c
- ld de, $c608
- ld c, $4
-.asm_170a54
- ld a, [de]
- inc de
- cp [hl]
- jr nz, .asm_170a78
- inc hl
- dec c
- jr nz, .asm_170a54
- call CloseSRAM
- ld a, [MapGroup]
- ld b, a
- ld a, [MapNumber]
- ld c, a
- call GetMapTrigger
- ld a, d
- or e
- jr z, .asm_170a72
- ld a, [de]
- and a
- ret nz
-
-.asm_170a72
- ld a, $1
- ld [ScriptVar], a
- ret
-
-.asm_170a78
- 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, .asm_170a9b
- xor a
- ld [de], a
-
-.asm_170a9b
- ret
-; 170a9c
-
-Function170a9c: ; 170a9c (5c:4a9c)
- ld c, $0
- jr asm_170aa2
-
-Function170aa0: ; 170aa0 (5c:4aa0)
- 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)
- ld a, $5
- call GetSRAMBank
- ld a, [$aa8d]
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170abe: ; 170abe (5c:4abe)
- call Function17089a
- ld a, [ScriptVar]
- and a
- ret z
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- and $1
- ld [ScriptVar], a
- call CloseSRAM
- ret
-
-Function170ad7: ; 170ad7 (5c:4ad7)
- ld a, BANK(sbe4f)
- call GetSRAMBank
- ld a, [sbe4f]
- or $1
- ld [sbe4f], a
- call CloseSRAM
- ret
-
-Function170ae8: ; 170ae8 (5c:4ae8)
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld c, $a
- call SimpleDivide
- ld a, b
- ld [wcd4f], a
- xor a
- ld [ScriptVar], a
- callba Function119d93
- ret nc
- ld a, $5
- call GetSRAMBank
- ld a, [$b2fb]
- call CloseSRAM
- ld [ScriptVar], a
- ret
-
-Function170b16: ; 170b16 (5c:4b16)
- 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 Function119dd1
- 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, wd10a
- ld a, [hl]
- dec a
- ld c, a
- ld b, $0
- pop af
- ld [rSVBK], a
- ld hl, Unknown_170b90
- add hl, bc
- ld a, [hl]
- ld [wcd49], 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, [wcd49]
- ld [hl], a
- ld hl, UsedSprites
- add hl, de
- ld [hli], a
- ld [hUsedSpriteIndex], a
- ld a, [hl]
- ld [hUsedSpriteTile], a
- callba Function143c8
- ret
-; 170b90
-
-Unknown_170b90:
- db $12, $13, $14, $15, $18, $17
- db $16, $19, $04, $05, $11, $01
- db $1c, $1b, $21, $1e, $1a, $1d
- db $1f, $3c, $20, $27, $27, $27
- db $28, $0a, $23, $24, $2a, $2b
- db $35, $40, $2a, $29, $22, $25
- db $3a, $2b, $24, $49, $2b, $07
- db $2c, $2d, $4a, $0d, $4b, $3a
- db $2b, $41, $35, $27, $28, $27
- db $36, $3e, $30, $2c, $2d, $3d
- db $26, $2e, $06, $07, $43, $36
-
-Function170bd2: ; 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
-
-Function170be4: ; 170be4
- ld a, $5
- call GetSRAMBank
- xor a
- ld hl, $a894
- ld bc, $0008
- call ByteFill
- call CloseSRAM
- ret
-; 170bf7
-
-Function170bf7: ; 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
-rept 2
- inc hl
-endr
- 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]
-rept 2
- inc hl
-endr
- 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, LastPlayerCounterMove
- ld b, $5
-.asm_170c90
- ld a, [hl]
- xor $ff
- ld [hli], a
- dec b
- jr nz, .asm_170c90
- ret
-; 170c98
-
-Function170c98: ; 170c98
- ld c, $3
- ld hl, $c608 + 13
-.asm_170c9d
- push hl
- ld a, [hl]
- cp $fc
- jr c, .asm_170ca6
- ld a, $1
- ld [hl], a
-
-.asm_170ca6
- inc hl
- ld b, $3
-.asm_170ca9
- ld a, [hl]
- and a
- jr z, .asm_170cb1
- cp $fc
- jr c, .asm_170cb9
-
-.asm_170cb1
- xor a
- ld [hl], a
- inc hl
- dec b
- jr nz, .asm_170cb1
- jr .asm_170cbd
-
-.asm_170cb9
- inc hl
- dec b
- jr nz, .asm_170ca9
-
-.asm_170cbd
- pop hl
- ld de, $003b
- add hl, de
- dec c
- jr nz, .asm_170c9d
- ret
-; 170cc6
-
-Function170cc6: ; 170cc6
- ld a, [rSVBK]
- push af
- ld a, $6
- ld [rSVBK], a
- ld hl, LZ_170d16
- ld de, wd000
- 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, Unkn1Pals
- 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/170d16.2bpp.lz"
-
-LZ_1715a4:
-INCBIN "gfx/unknown/1715a4.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 Function1183cb
- call Function1719ed
- ld a, [rSVBK] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- call Function171a11
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-Function1719ed: ; 1719ed (5c:59ed)
- xor a
- ld [wcd49], a
- ld [wcd4a], a
- dec a
- ld [wcd4b], a
- call WhiteBGMap
- call ClearSprites
- callba Function171d2b
- callba Function104061
- callba Function8cf53
- ret
-
-Function171a11: ; 171a11 (5c:5a11)
- call JoyTextDelay
- ld a, [wcd49]
- bit 7, a
- jr nz, .asm_171a2c
- call Function171a36
- callba Function8cf69
- callba Function104061
- jr Function171a11
-.asm_171a2c
- callba Function8cf53
- call ClearSprites
- ret
-
-Function171a36: ; 171a36 (5c:5a36)
- ld a, [wcd49]
- ld e, a
- ld d, 0
- ld hl, Jumptable_171a45
-rept 2
- add hl, de
-endr
- 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] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- callba Function118452
- pop af
- ld [rSVBK], a ; $ff00+$70
- 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] ; $ff00+$70
- push af
- ld a, $1
- ld [rSVBK], a ; $ff00+$70
- callba Function118452
- pop af
- ld [rSVBK], a ; $ff00+$70
- 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
-rept 3
- add hl, bc
-endr
- 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)
- lb de, $40, $10
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $8
- ld [hl], a
- lb de, $40, $98
- ld a, $1d
- call Function3b2a
- ld hl, $c
- add hl, bc
- ld a, $9
- ld [hl], a
- lb de, $8a, $70
- ld a, $1d
- call Function3b2a
- ld hl, $c
- 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 Function1cbb
- call GetMemTileCoord
- callba Function104061
- 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 WhiteBGMap
- 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 WhiteBGMap
- callba Function106462
- callba Function106464
- ld a, $2
- ld [wc303], a
- callba Function17f555
-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] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, Palette_171d71
- ld de, Unkn1Pals
- ld bc, $40
- call CopyBytes
- ld hl, MovementAnimation
- ld a, $ff
- ld [hli], a
- ld a, $7f
- ld [hl], a
- call SetPalettes
- pop af
- ld [rSVBK], a ; $ff00+$70
- ret
-
-Function171cf0: ; 171cf0 (5c:5cf0)
- xor a
- hlcoord 4, 15
-rept 2
- ld [hli], a
-endr
- 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/171db1.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, GFX_172f1f
- 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] ; $ff00+$70
- push af
- ld a, $5
- ld [rSVBK], a ; $ff00+$70
- ld hl, Palette_172edf
- ld de, Unkn1Pals
- ld bc, $40
- call CopyBytes
- ld hl, Palette_172edf
- ld de, BGPals
- ld bc, $40
- call CopyBytes
- call SetPalettes
- pop af
- ld [rSVBK], a ; $ff00+$70
- 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
-
-GFX_172f1f:
-INCBIN "gfx/unknown/172f1f.2bpp"
-
-Tilemap_1733af:
-IF DEF(CORRUPT_TILES)
-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_46.asm b/misc/mobile_46.asm
new file mode 100755
index 000000000..54e5a81ba
--- /dev/null
+++ b/misc/mobile_46.asm
@@ -0,0 +1,8033 @@
+SECTION "bank46", ROMX, BANK[$46]
+
+Function118000: ; 118000
+ ld a, $1
+ ld [wcd38], a
+ jr asm_11800b
+
+Function118007: ; 118007
+ xor a
+ ld [wcd38], a
+
+asm_11800b
+ call Function1183cb
+ 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_118024
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $1b
+ jr c, .asm_118037
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118037
+ call Function1184a5
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_118024
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call ReturnToMapFromSubmenu
+Function11805e: ; 11805e (46:405e)
+ ret
+; 11805f
+
+Function11805f: ; 11805f
+ ld a, $1
+ ld [wcd38], a
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11807d
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call ReturnToMapFromSubmenu
+ ret
+; 1180b8
+
+Function1180b8: ; 1180b8
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1180d1
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call ReturnToMapFromSubmenu
+ ret
+; 11811a
+
+Function11811a: ; 11811a
+ ld a, 1
+ ld [wcd38], a
+ jr Function118125
+
+Function118121: ; 118121
+ xor a
+ ld [wcd38], a
+
+Function118125: ; 118125
+ call Function1183cb
+ 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
+.asm_11813e
+ call JoyTextDelay
+ call Function118473
+ ld a, [wcf66]
+ cp $f
+ jr c, .asm_118151
+ ld a, [wcd34]
+ ld [wcf66], a
+
+.asm_118151
+ call Function11854d
+ call Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11813e
+ xor a
+ ld [wMapPals], a
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ 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, $d202
+ ld c, $96
+ callba Function17d0b3
+ jr c, .asm_1181d0
+ ld de, $d202
+ ld bc, $0196
+ callba Function17d1e1
+ jr c, .asm_1181d0
+ ld hl, $d202
+ ld de, $a8b2
+ ld bc, $0096
+ call CopyBytes
+.asm_1181c9
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+.asm_1181d0
+ ld a, $d3
+ ld [wc300], a
+ ld [ScriptVar], a
+ jr .asm_1181c9
+; 1181da
+
+Function1181da: ; 1181da
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1181f8
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call ReturnToMapFromSubmenu
+ ret
+; 118233
+
+Function118233: ; 118233
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11824c
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ ret
+; 118284
+
+Function118284: ; 118284
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_11829d
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ ret
+; 1182d5 (46:42d5)
+
+
+Function1182d5: ; 1182d5
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_1182ee
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ call ReturnToMapFromSubmenu
+ ret
+; 118329
+
+Function118329: ; 118329
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_118342
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ ret
+; 11837a
+
+Function11837a: ; 11837a
+ call Function1183cb
+ 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 Function11a8fa
+ callba Function115dd3
+ callba Function11619d
+ call DelayFrame
+ ld a, [wcf66]
+ ld hl, wcd33
+ cp [hl]
+ jr nz, .asm_118393
+ pop af
+ ld [rSVBK], a
+ call Function118452
+ ret
+; 1183cb
+
+Function1183cb: ; 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 [wc314 + 6], 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 [hFFC9], a
+ ld [hMobile], a
+ ei
+ callba Function106462
+ 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
+
+Function118452: ; 118452
+ di
+ xor a
+ ld [hFFC9], 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 $3c
+ ret nz
+ xor a
+ ld [wcd66], a
+ ld a, [wcd67]
+ inc a
+ ld [wcd67], a
+ cp $3c
+ ret nz
+ ld a, [wcd68]
+ inc a
+ ld [wcd68], a
+ cp $63
+ jr z, .asm_1184a0
+ xor a
+ ld [wcd67], a
+ ret
+
+.asm_1184a0
+ xor a
+ ld [wcd65], a
+ ret
+; 1184a5
+
+Function1184a5: ; 1184a5
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1184b4
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1184b4
+
+Jumptable_1184b4: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ dw Function118e76
+; 1184ec
+
+Function1184ec: ; 1184ec
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1184fb
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1184fb
+
+Jumptable_1184fb: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ dw Function119b45
+ dw Function11878d
+ dw Function119ac9
+ dw Function118e76
+; 11854d
+
+Function11854d: ; 11854d
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11855c
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11855c
+
+Jumptable_11855c: ; 11855c
+ dw Function118922
+ dw Function118936
+ dw Function118982
+ dw Function11805e
+ dw Function119ca2
+ dw Function119cab
+ dw Function119cb8
+ dw Function119cc3
+ dw Function119cdf
+ dw Function119cec
+ dw Function119c97
+ dw Function119cab
+ dw Function119cb8
+ dw Function118e76
+ dw Function118e87
+ dw Function118e76
+; 11857c
+
+Function11857c: ; 11857c
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11858b
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11858b
+
+Jumptable_11858b: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ dw Function118e76
+; 1185c3
+
+Function1185c3: ; 1185c3
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1185d2
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1185d2
+
+Jumptable_1185d2: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ dw Function119cc3
+ dw Function119cdf
+ dw Function119cec
+ dw Function11914e
+ dw Function118e76
+; 118624
+
+Function118624: ; 118624
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_118633
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 118633
+
+Jumptable_118633: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ dw Function118e76
+; 118671
+
+Function118671: ; 118671
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_118680
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 118680
+
+Jumptable_118680: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ dw Function118e76
+; 1186b2
+
+Function1186b2: ; 1186b2
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_1186c1
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 1186c1
+
+Jumptable_1186c1: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ dw Function118e76
+; 1186f5
+
+Function1186f5: ; 1186f5 (46:46f5)
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_118704
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 118704 (46:4704)
+
+Jumptable_118704: ; 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 Function11805e
+ dw Function11967d
+ dw Function119685
+ dw Function119665
+ dw Function11966d
+ dw Function118e76
+ dw Function118e87
+ dw Function118e76
+; 118746 (46:4746)
+
+Function118746: ; 118746
+ ld a, [wcf66]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_118755
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 118755
+
+Jumptable_118755: ; 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 Function11805e
+ dw Function118e76
+ dw Function118e87
+ 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 Function119e2e
+.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 [wc314 + 5], 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, wMapPals
+ 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 [wc314 + 5], a
+ ld a, [wcd34]
+ ld [wcf66], a
+ ret
+
+Function118821: ; 118821 (46:4821)
+ ld a, [wc314 + 5]
+ 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 [wc314 + 5], 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 Function119e2e
+ ld a, [wcd33]
+ ld [wcd45], a
+
+Function118880: ; 118880 (46:4880)
+ call Function119ed8
+ 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 Function119e2e
+ jp Function119e2e
+; 1188b0
+
+Function1188b0: ; 1188b0 (46:48b0)
+ ld de, wc314 + 48 + 2
+ 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, wc708
+.asm_1188d3
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .asm_1188d3
+ call Function119eb4
+ call Function119ec2
+ ld hl, wc708
+ ld a, $6
+ jp Function119e2b
+
+Function1188e7: ; 1188e7 (46:48e7)
+ ld de, wc314 + 48 + 2
+ 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 [wc314 + 5], a
+ ld c, $1
+ callba Function115e18
+ ld a, $8
+ ld [wcd3c], a
+ call Function119ed8
+ jp Function119e2e
+
+
+Function11891c: ; 11891c
+ call Function118b42
+ jp Function119e2e
+
+
+Function118922: ; 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 Function11a9c0
+ call Function119e2e
+
+Function118936:
+ ld a, [wc314 + 6]
+ and a
+ ret nz
+ ld hl, MenuDataHeader_119cf7
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ call Function321c
+ hlcoord 16, 8, AttrMap
+ ld a, $40
+ or [hl]
+ ld [hl], a
+ call Function3200
+ ld a, $1
+ ld [wcd4f], a
+ ld a, $1
+ ld [rSVBK], a
+ ld a, [StatusFlags]
+ bit 6, a
+ 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 Function119e2e
+
+Function118982:
+ 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 $2
+ jr nz, .asm_118a39
+ ld a, [hl]
+ and $1
+ jr nz, .asm_118a01
+ ld a, [hl]
+ and $80
+ jr nz, .asm_1189e6
+ ld a, [hl]
+ and $40
+ jr nz, .asm_1189f2
+.asm_1189e5
+ ret
+
+.asm_1189e6
+ ld hl, wcd4f
+ dec [hl]
+ jr nz, .asm_1189e5
+ ld a, [wcd4a]
+ ld [hl], a
+ jr .asm_1189e5
+
+.asm_1189f2
+ ld a, [wcd4a]
+ ld hl, wcd4f
+ inc [hl]
+ cp [hl]
+ jr nc, .asm_1189e5
+ ld a, $1
+ ld [hl], a
+ jr .asm_1189e5
+
+.asm_118a01
+ 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 WriteBackup
+ pop af
+ ld [rSVBK], a
+ ld a, [wcd38]
+ and a
+ jr nz, .asm_118a30
+ call Function119d93
+ ret c
+ call Function119dd1
+ ret c
+
+.asm_118a30
+ ld a, [wcd4f]
+ ld [wd000 + $800], a
+ jp Function119e2e
+
+.asm_118a39
+ call PlayClickSFX
+
+.asm_118a3c
+ ld a, [rSVBK]
+ push af
+ ld a, $1
+ ld [rSVBK], a
+ call WriteBackup
+ pop af
+ ld [rSVBK], a
+ ld a, $7
+ ld [wcf66], a
+ ld a, $0
+ ld [wcd46], 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, wMapPals
+ ld bc, $1000
+ jp Function118b10
+; 118a7a
+
+Function118a7a: ; 118a7a
+ ld hl, BattleDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, wMapPals
+ ld bc, $1000
+ jp Function118b10
+; 118a8f
+
+Function118a8f: ; 118a8f
+ ld hl, ExchangeDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, wMapPals
+ 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, LYOverrides
+ ld bc, $e00
+ jr Function118b10
+; 118abc
+
+Function118abc: ; 118abc (46:4abc)
+ ld hl, MenuDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, wMapPals
+ ld bc, $1000
+ jr Function118b10
+; 118ad0 (46:4ad0)
+
+Function118ad0:
+ ld hl, IndexDownloadURL
+ ld de, wcc60
+ ld bc, $80
+ call CopyBytes
+ ld de, wMapPals
+ ld bc, $1000
+ jr Function118b10
+
+Function118ae4:
+ push bc
+ push de
+ push hl
+ ld a, $8
+ ld [wcd3c], a
+ call Function119ed8
+ 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 Function119ed8
+ call Function118b24
+ pop bc
+ pop de
+ ld a, $2a
+ jp Function119e2b
+
+Function118b24: ; 118b24 (46:4b24)
+ ld hl, wc314 + 48 + 2
+ 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, wc314 + 48 + 2
+ 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
+rept 2
+ ld [hli], a
+endr
+ 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
+ ld hl, LYOverridesBackup
+ 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 Function119e2e
+
+.asm_118d7b
+ ld a, $d3
+ jp Function118805
+; 118d80
+
+Function118d80: ; 118d80
+ call Function118e06
+ ld a, [wcd38]
+ and a
+ jr z, .asm_118d8e
+ call Function119e2e
+ jr asm_118d9f
+
+.asm_118d8e
+ ld a, $9
+ ld [wcd3c], a
+ ld a, $12
+ ld [wcd45], a
+ call Function119e2e
+
+Function118d9b:
+ call Function119ed8
+ 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, $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, $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 Function119e2e
+; 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
+rept 2
+ inc hl
+endr
+ 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)
+ ld a, $c
+ ld [wcd3c], a
+ jp Function119e2e
+
+Function118e7e: ; 118e7e (46:4e7e)
+ call Function119ed8
+ ret c
+ ld a, $36
+ jp Function119e2b
+
+Function118e87: ; 118e87 (46:4e87)
+ call Function119ed8
+ 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, $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 Function119e2e
+; 118ec6
+
+Function118ec6: ; 118ec6
+ call Function118440
+ call SpeechTextBox
+ ld hl, $d80e
+ ld de, wc314 + 12
+ ld bc, $0026
+ call CopyBytes
+ xor a
+ ld [wc314 + 11], a
+ ld a, $20
+ ld [wc314 + 7], a
+ ld a, $c3
+ ld [wc314 + 8], a
+ hlcoord 1, 14
+ ld a, l
+ ld [wc314 + 9], a
+ ld a, h
+ ld [wc314 + 10], a
+ ld a, $2
+ ld [wc314 + 6], a
+ ld a, $1d
+ ld [wcd3c], a
+ ld a, $24
+ ld [wcd45], a
+ ld a, $11
+ ld [wcd46], a
+ ld a, $1c
+ ld [wcd47], a
+ jp Function119e2e
+; 118f0d
+
+Function118f0d: ; 118f0d
+ call Function119ed8
+ 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, .asm_118f32
+ ld hl, UnknownText_0x11aa13
+ call Function11a9c0
+
+.asm_118f32
+ 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 [wcd45], a
+ ld a, $13
+ ld [wcd46], a
+ ld a, $1c
+ ld [wcd47], a
+ jp Function119e2e
+; 118f5e
+
+Function118f5e: ; 118f5e
+ call Function119ed8
+ 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, wc314 + 48 + 2
+ 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, wc708 % $100
+ ld [hli], a
+ ld a, wc708 / $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, wc314 + 48 + 2
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+
+.asm_118fba
+ call Function119e2e
+ jp Function119e2e
+; 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, UnknownText_0x11aa2c
+ jr .asm_118ff5
+
+.asm_118ff2
+ ld hl, UnknownText_0x11aa4b
+
+.asm_118ff5
+ call Function11a9c0
+ jr Function119009
+
+.asm_118ffa
+ ld hl, UnknownText_0x11aa4b
+ call Function11a9c0
+ call Function119e2e
+ call Function119e2e
+ jp Function119e2e
+
+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, wc314 + 48 + 2
+ 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, wc314 + 48 + 2
+ ld de, wMapPals
+ 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, [wMapPals]
+ ld c, a
+ ld a, [wd001]
+ 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, [wMapPals]
+ ld c, a
+ ld a, [wd001]
+ 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 Function119e2e
+; 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, wMapPals
+ 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, [wMapPals]
+ ld c, a
+ ld a, [wd001]
+ 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, [wMapPals]
+ ld c, a
+ ld a, [wd001]
+ ld b, a
+ ld hl, wd002
+ call Function119192
+ ret c
+
+.asm_11913e
+ ld a, $3
+ ld [rSVBK], a
+ call CloseSRAM
+ ld hl, UnknownText_0x11aa5a
+ call Function11a9c0
+ jp Function119e2e
+; 11914e
+
+Function11914e: ; 11914e
+ call Function119ed8
+ 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 Function119e2e
+ 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, wd102
+ 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 Function119e2e
+; 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 [wcd45], a
+ call Function119e2e
+
+Function1193a0:
+ call Function119ed8
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call Function119ed8
+ ld hl, wc314 + 48 + 2
+ 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, wc708 % $100
+ ld [hli], a
+ ld a, wc708 / $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, wc314 + 48 + 2
+ 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 [wcd45], a
+ call Function119e2e
+
+Function1193fb:
+ call Function119ed8
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call Function119ed8
+ ld de, wMapPals
+ ld bc, $1000
+ jp Function118b10
+; 119413
+
+Function119413: ; 119413
+ ld a, $6
+ call GetSRAMBank
+ ld a, [wMapPals]
+ ld c, a
+ ld a, [wd001]
+ ld b, a
+rept 2
+ dec bc
+endr
+ 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, [wd001]
+ ld b, a
+ ld hl, wd002
+ call Function119192
+ ret c
+
+.asm_119447
+ ld a, $3
+ ld [rSVBK], a
+ call CloseSRAM
+ jp Function119e2e
+; 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
+rept 2
+ inc hl
+endr
+ 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 [wcd45], a
+ ld a, $f
+ ld [wcd46], a
+ ld a, $14
+ ld [wcd47], a
+ call Function119e2e
+ jp Function119e2e
+
+Function119612: ; 119612 (46:5612)
+ ld a, $14
+ ld [wcd3c], a
+ ld a, $1c
+ ld [wcd45], a
+ ld a, $10
+ ld [wcd46], a
+ ld a, $14
+ ld [wcd47], a
+ jp Function119e2e
+
+Function119629: ; 119629 (46:5629)
+ call Function119ed8
+ 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 [wcd45], a
+ ld a, $14
+ ld [wcd47], a
+ call Function119e2e
+
+Function119648: ; 119648 (46:5648)
+ call Function119ed8
+ ret c
+ call DelayFrame
+ ld a, $8
+ ld [wcd3c], a
+ call Function119ed8
+ call Function118b24
+ ld de, wMapPals
+ ld bc, $1000
+ ld a, $2a
+ jp Function119e2b
+
+Function119665: ; 119665 (46:5665)
+ ld a, $1a
+ ld [wcd3c], a
+ call Function119e2e
+
+Function11966d: ; 11966d (46:566d)
+ call Function119ed8
+ 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 Function119e2e
+
+Function119685: ; 119685 (46:5685)
+ call Function119ed8
+ 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, wc708
+ 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, BANK[$46]
+; A hack to use ascii above.
+
+Function1196cd: ; 1196cd (46:56cd)
+ ld de, wc719
+ call Function1196de
+ ld [wcd4a], a
+ inc de
+ call Function1196de
+ ld [wcd4b], a
+ ret
+
+Function1196de: ; 1196de (46:56de)
+ ld a, [de]
+ inc de
+ 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
+rept 2
+ inc hl
+endr
+ 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 Function119e2e
+; 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 [wcd45], a
+ call Function119e2e
+
+Function1197dc:
+ call Function119ed8
+ 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, wMapPals
+ ld bc, $1000
+ ld a, $2a
+ jp Function119e2b
+; 119800
+
+Function119800: ; 119800
+ ld a, $fd
+ ld [$c6d0], a
+ ld [wc702], 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 Function119e2e
+; 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 Function108000
+ 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 Function119e2e
+
+.asm_1198a0
+ ld a, $a
+ ld [wc300], a
+ jp Function119e2e
+
+.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 Function108012
+ 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 Function119e2e
+; 1198ee
+
+Function1198ee: ; 1198ee
+ ld hl, UnknownText_0x11aab2
+ call Function11a9c0
+ call Function119e2e
+
+Function1198f7:
+ ld a, [wc314 + 6]
+ and a
+ ret nz
+ ld hl, $c608 + 2
+ call Function119940
+ ld hl, $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, wc708 % $100
+ ld [hli], a
+ ld a, wc708 / $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, $d800
+ ld de, $de00
+ ld bc, $0200
+ ld a, $2c
+ jp Function119e2b
+; 119937
+
+Function119937: ; 119937
+ callba Function1707f4
+ jp Function119e2e
+; 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 Function119ed8
+ 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 [StringBuffer2 + 10], a
+ ld de, wMapPals
+ ld a, $20
+ jp Function119e2b
+; 119987
+
+Function119987: ; 119987
+ ld hl, wd001
+ ld a, [wMapPals]
+ 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, [StringBuffer2 + 10]
+ 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 Function119e2e
+ 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, LYOverrides
+ ld bc, $0700
+ ld a, $28
+ jp Function119e2b
+; 1199e2
+
+Function1199e2: ; 1199e2
+ ld c, $c
+ ld de, Unknown_119e33
+ call Function119e4f
+ jp c, Function119ac9
+ ld a, c
+ cp $1
+ jp nz, Function119ac9
+ ld hl, $d880
+ ld bc, Unknown_119af1
+.asm_1199f9
+ ld a, [bc]
+ and a
+ jr z, .asm_119a05
+ cp [hl]
+ jp nz, Function119ac9
+ inc bc
+ inc hl
+ jr .asm_1199f9
+
+.asm_119a05
+ ld c, $17
+ ld de, Unknown_119e40
+ call Function119e4f
+ jp c, .asm_119aa7
+ ld a, c
+ cp $1
+ jp nz, .asm_119aa7
+ ld a, [wd000 + $880]
+ cp $31
+ jp nz, .asm_119aa7
+ ld a, [wd000 + $881]
+ cp $20
+ jp nz, .asm_119aa7
+ ld a, [wd000 + $88a]
+ cp $20
+ jp nz, .asm_119aa7
+ ld a, [wd000 + $894]
+ cp $20
+ jp nz, .asm_119aa7
+ xor a
+ ld [wd000 + $8a0], a
+ ld [wd000 + $8a1], a
+ ld [wd000 + $8a2], a
+ ld [wd000 + $8a3], 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 [wd000 + $8a0], a
+ ld [wd000 + $8a1], a
+ ld [wd000 + $8a2], a
+ ld [wd000 + $8a3], 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, [StringBuffer2 + 10]
+ and a
+ jr nz, .asm_119aa7
+ ld a, [wd000 + $895]
+ sub $30
+ ld [StringBuffer2 + 10], a
+ ld a, [wcf64]
+ ld [StringBuffer2 + 11], a
+ ld a, [wcf65]
+ ld [StringBuffer2 + 12], a
+
+Function119ac9:
+ ld a, [wMapPals]
+ ld l, a
+ ld a, [wd001]
+ ld h, a
+ dec hl
+ ld a, l
+ ld [wMapPals], a
+ ld a, h
+ ld [wd001], 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
+
+Unknown_119af1:
+ INCBIN "data/mobile/x-game-code.txt"
+ INCBIN "data/mobile/x-game-result.txt"
+; 119b0d
+
+Function119b0d: ; 119b0d
+ ld a, $8
+ ld [wcd3c], a
+ call Function119ed8
+ ld a, [StringBuffer2 + 10]
+ cp $1
+ jr z, .asm_119b23
+ ld a, $19
+ ld [wcf66], a
+ jr Function119b3b
+
+.asm_119b23
+ ld a, $10
+ ld [wcd89], a
+ ld a, [StringBuffer2 + 11]
+ ld l, a
+ ld a, [StringBuffer2 + 12]
+ ld h, a
+ ld de, LYOverrides
+ ld bc, $0700
+ ld a, $24
+ jp Function119e2b
+
+Function119b3b:
+ ld a, [StringBuffer2 + 11]
+ ld l, a
+ ld a, [StringBuffer2 + 12]
+ 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, [StringBuffer2 + 10]
+ 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, [StringBuffer2 + 10]
+ cp $1
+ jr z, .asm_119b75
+ jp Function119e2e
+
+.asm_119b75
+ ld a, [LYOverrides]
+ ld b, a
+ ld a, [wd101]
+ or b
+ jr z, .asm_119be3
+ ld hl, $d800
+ ld de, wd102
+.asm_119b85
+ ld a, [de]
+ inc de
+ cp $d
+ jr nz, .asm_119b85
+ inc de
+ ld a, [de]
+ cp $d
+ jr nz, .asm_119b85
+rept 2
+ inc de
+endr
+.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
+rept 3
+ inc hl
+endr
+ 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 [StringBuffer2 + 10], a
+ ret
+
+.asm_119bfa
+ inc de
+ ld a, [de]
+ cp $d
+ jr nz, .asm_119b93
+ ld a, l
+ cp (wd000 + $800 + $69) % $100
+ jr nz, .asm_119be3
+ ld a, h
+ cp (wd000 + $800 + $69) / $100
+ jr nz, .asm_119be3
+ ld a, $5
+ call GetSRAMBank
+ ld a, [wcf64]
+ ld [$b090], a
+ ld a, [wcf65]
+ ld [$b091], a
+ ld hl, $d800
+ ld de, $b023
+ ld bc, $0069
+ call CopyBytes
+ ld a, $3
+ ld [$a800], a
+ call CloseSRAM
+ ld hl, $d800
+ ld de, $c608
+ ld bc, $0069
+ call CopyBytes
+ jp Function119e2e
+; 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 [StringBuffer2 + 10], 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
+
+Function119c97: ; 119c97
+ ld hl, UnknownText_0x11ab0f
+ call Function11a9c0
+ call Function119e2e
+ jr Function119cab
+
+Function119ca2:
+ ld hl, UnknownText_0x11aaf0
+ call Function11a9c0
+ call Function119e2e
+
+Function119cab:
+ ld a, [wc314 + 6]
+ and a
+ ret nz
+ ld a, $80
+ ld [wcd50], a
+ call Function119e2e
+
+Function119cb8:
+ ld hl, wcd50
+ dec [hl]
+ ret nz
+ ld a, $0
+ ld [wcf66], a
+ ret
+; 119cc3
+
+Function119cc3: ; 119cc3
+ ld a, [wcd38]
+ and a
+ jr z, .asm_119cd1
+ dec a
+ jr z, .asm_119cd6
+ ld hl, UnknownText_0x11aa6a
+ jr .asm_119cd9
+
+.asm_119cd1
+ ld hl, UnknownText_0x11ab4a
+ jr .asm_119cd9
+
+.asm_119cd6
+ ld hl, UnknownText_0x11ab6e
+
+.asm_119cd9
+ call Function11a9c0
+ call Function119e2e
+
+Function119cdf:
+ ld a, [wc314 + 6]
+ and a
+ ret nz
+ ld a, $f
+ ld [wcd3c], a
+ call Function119e2e
+
+Function119cec:
+ call Function119ed8
+ ret c
+ ld a, [wcd46]
+ 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
+
+Function119d93: ; 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]
+.asm_119daf
+ push af
+ ld a, [de]
+ push hl
+ push de
+ pop hl
+ add hl, bc
+ push hl
+ pop de
+ pop hl
+ cp [hl]
+ jr z, .asm_119dbd
+ jr nc, .asm_119dc6
+.asm_119dbd
+ pop af
+ dec a
+ jr nz, .asm_119daf
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+.asm_119dc6
+ pop af
+ ld a, $4
+ ld [wcf66], a
+ pop af
+ ld [rSVBK], a
+ scf
+ ret
+
+Function119dd1: ; 119dd1 (46:5dd1)
+ ld a, [rSVBK]
+ push af
+ ld a, [wcd4f]
+ cp 70 / 10
+ jr nc, .asm_119e08
+ ld a, $1
+ ld [rSVBK], a
+ ld hl, PartyMon1Level
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld de, PartySpecies
+ ld a, [PartyCount]
+.asm_119deb
+ push af
+ ld a, [de]
+ cp MEWTWO
+ jr z, .asm_119dfd
+ cp MEW
+ jr z, .asm_119dfd
+ cp LUGIA
+ jr c, .asm_119e02
+ cp NUM_POKEMON + 1
+ jr nc, .asm_119e02
+.asm_119dfd
+ ld a, [hl]
+ cp 70
+ jr c, .asm_119e0d
+.asm_119e02
+ add hl, bc
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_119deb
+.asm_119e08
+ pop af
+ ld [rSVBK], a
+ and a
+ ret
+.asm_119e0d
+ 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
+
+Function119e2e: ; 119e2e (46:5e2e)
+ ld hl, wcf66
+ inc [hl]
+ ret
+; 119e33 (46:5e33)
+
+Unknown_119e33: ; 119e33
+ INCBIN "data/mobile/x-game-code-prefix.txt"
+Unknown_119e40:
+ INCBIN "data/mobile/x-game-result-prefix.txt"
+; 119e4f
+
+Function119e4f: ; 119e4f
+ push bc
+ ld hl, LYOverrides
+ ld a, [hli]
+ ld c, a
+ ld a, [hli]
+ ld b, a
+.asm_119e57
+ ld a, [de]
+ cp [hl]
+ jr z, .asm_119e64
+.asm_119e5b
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_119e57
+.asm_119e61
+ pop bc
+ scf
+ ret
+
+.asm_119e64
+ push de
+.asm_119e65
+ ld a, [de]
+ inc de
+ cp "\n"
+ jr z, .asm_119e7a
+ cp [hl]
+ jr nz, .asm_119e77
+ inc hl
+ dec bc
+ ld a, b
+ or c
+ jr nz, .asm_119e65
+ pop de
+ jr .asm_119e61
+
+.asm_119e77
+ pop de
+ jr .asm_119e5b
+
+.asm_119e7a
+ pop de
+ pop bc
+ inc hl
+ ld de, $d880
+.asm_119e80
+ ld a, [hli]
+ ld [de], a
+ inc de
+ cp $d
+ jr z, .asm_119e8c
+ dec c
+ jr nz, .asm_119e80
+ scf
+ ret
+
+.asm_119e8c
+ and a
+ ret
+; 119e8e
+
+Function119e8e: ; 119e8e
+ cp $60
+ jr c, .asm_119e95
+ sub $57
+ ret
+
+.asm_119e95
+ sub $30
+ ret
+; 119e98
+
+Function119e98: ; 119e98
+ ld a, $2
+.asm_119e9a
+ 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, .asm_119e9a
+ ret
+; 119eb4
+
+Function119eb4: ; 119eb4 (46:5eb4)
+ xor a
+ ld [wc3cc], a
+ ld de, wc3ac
+.asm_119ebb
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .asm_119ebb
+ ret
+
+Function119ec2: ; 119ec2 (46:5ec2)
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$aa5c], a
+ ld de, $aa4c
+.asm_119ece
+ ld a, [de]
+ inc de
+ ld [hli], a
+ and a
+ jr nz, .asm_119ece
+ call CloseSRAM
+ ret
+
+Function119ed8: ; 119ed8 (46:5ed8)
+ ld a, [rSVBK]
+ ld [wcd8c], a
+ ld a, $1
+ ld [rSVBK], a
+ call Function119eee
+ ld a, [wcd8c]
+ ld [rSVBK], a
+ ld a, $1
+ ld [hBGMapMode], a
+ ret
+
+Function119eee: ; 119eee (46:5eee)
+ ld a, [wcd3c]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_119efd
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 119efd (46:5efd)
+
+Jumptable_119efd: ; 119efd
+ 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 Function11a207
+ dw Function11a235
+ 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 Function11a5b0
+; 119f45
+
+Function119f45: ; 119f45
+ hlcoord 4, 2
+ ld de, String_11a661
+ call PlaceString
+ ld a, $80
+ ld [wcd44], a
+ jp Function11a5b0
+; 119f56
+
+Function119f56: ; 119f56
+ ld a, [wcd44]
+ and a
+ jr z, .asm_119f62
+ dec a
+ ld [wcd44], a
+ scf
+ ret
+
+.asm_119f62
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6aa
+ call PlaceString
+ ld a, $80
+ ld [wcd44], a
+ jp Function11a5b0
+; 119f76
+
+Function119f76: ; 119f76
+ ld a, [wcd44]
+ and a
+ jr z, .asm_119f82
+ dec a
+ ld [wcd44], a
+ scf
+ ret
+
+.asm_119f82
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a679
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wcd44], a
+ jp Function11a5b0
+; 119f98
+
+Function119f98: ; 119f98
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wcd44]
+ 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 Function104061
+ 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 Function104061
+ and a
+ ret
+
+.asm_119fef
+ call ExitMenu
+ call ExitMenu
+ callba Function104061
+ ld a, [wcd45]
+ ld [wcf66], a
+ callba Function115dc3
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+; 11a00e
+
+Function11a00e: ; 11a00e
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa4b]
+ and a
+ jr z, .asm_11a02a
+ ld a, [$aa4c]
+ call CloseSRAM
+ and a
+ ret nz
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$aa4b], 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, $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, $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 BackUpTiles
+ callba Function11765d
+ callba Function117ab4
+ callba Function106462
+ callba Function106464
+ call ExitMenu
+ callba Function104061
+ 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 BackUpTiles
+ callba Function11765d
+ callba Function17d3f6
+ callba Function106462
+ callba Function106464
+ call ExitMenu
+ callba Function104061
+ 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 [wcd44], a
+ jp Function11a5b0
+; 11a131
+
+Function11a131: ; 11a131
+ ld hl, wcd44
+ 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 [wcd44], a
+ jp Function11a5b0
+; 11a16d
+
+Function11a16d: ; 11a16d
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a179
+ dec a
+ ld [wcd44], a
+ scf
+ ret
+
+.asm_11a179
+ call Function11a63c
+ call Function11a1e6
+ hlcoord 4, 2
+ ld de, wc314 + 48 + 2
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wcd44], a
+ jp Function11a5b0
+; 11a192
+
+Function11a192: ; 11a192
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wcd44]
+ and a
+ jr nz, .asm_11a1b6
+ call ExitMenu
+ callba Function104061
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a1b6
+ call ExitMenu
+ callba Function104061
+ ld a, [wcd45]
+ 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, wc314 + 48 + 2
+ 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
+
+Function11a207: ; 11a207
+ ld hl, MenuDataHeader_11a2de
+ call LoadMenuDataHeader
+ call MenuBox
+ call MenuBoxCoord2Tile
+ call Function321c
+ 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 [wcd44], a
+ jp Function11a5b0
+; 11a235
+
+Function11a235: ; 11a235
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and A_BUTTON
+ jr nz, .asm_11a28f
+ ld a, [hl]
+ and B_BUTTON
+ jr nz, .asm_11a2c1
+ ld a, [hl]
+ and D_UP
+ jr nz, .asm_11a251
+ ld a, [hl]
+ and D_DOWN
+ jr nz, .asm_11a270
+.asm_11a24c
+ call Function11a9f0
+ scf
+ ret
+
+.asm_11a251
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a24c
+ xor a
+ ld [wcd44], a
+ hlcoord 15, 8
+ ld a, $ed
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, $7f
+ ld [hl], a
+ jr .asm_11a24c
+
+.asm_11a270
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wcd44]
+ and a
+ jr nz, .asm_11a24c
+ inc a
+ ld [wcd44], a
+ hlcoord 15, 8
+ ld a, $7f
+ ld [hl], a
+ hlcoord 15, 10
+ ld a, $ed
+ ld [hl], a
+ jr .asm_11a24c
+
+.asm_11a28f
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ call PlayClickSFX
+ ld a, [wcd44]
+ and a
+ jr nz, .asm_11a2c4
+ call ExitMenu
+ callba Function104061
+ ld a, [wcd46]
+ cp $0
+ jr z, .asm_11a2b4
+ ld a, [wcd47]
+ jr .asm_11a2b7
+
+.asm_11a2b4
+ ld a, [wcd33]
+
+.asm_11a2b7
+ ld [wcf66], a
+ ld a, $a
+ ld [wc300], a
+ scf
+ ret
+
+.asm_11a2c1
+ call PlayClickSFX
+
+.asm_11a2c4
+ call ExitMenu
+ callba Function104061
+ 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 [wcd44], a
+ jp Function11a5b0
+; 11a302
+
+Function11a302: ; 11a302
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a30e
+ dec a
+ ld [wcd44], 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 [wcd44], a
+ jp Function11a5b0
+; 11a33a
+
+Function11a33a: ; 11a33a
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a346
+ dec a
+ ld [wcd44], a
+ scf
+ ret
+
+.asm_11a346
+ call ExitMenu
+ callba Function104061
+ callba Function115dc3
+ and a
+ ret
+; 11a357
+
+Function11a357: ; 11a357
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a743
+ call PlaceString
+ ld a, $80
+ ld [wcd44], a
+ jp Function11a5b0
+; 11a36b
+
+Function11a36b: ; 11a36b
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a377
+ dec a
+ ld [wcd44], a
+ scf
+ ret
+
+.asm_11a377
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a755
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wcd44], a
+ jp Function11a5b0
+; 11a38d
+
+Function11a38d: ; 11a38d
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wcd44]
+ and a
+ jr nz, .asm_11a3b1
+ call ExitMenu
+ callba Function104061
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a3b1
+ call ExitMenu
+ callba Function104061
+ ld a, [wcd45]
+ 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 [wcd44], a
+ jp Function11a5b0
+; 11a3d9
+
+Function11a3d9: ; 11a3d9
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a3e5
+ dec a
+ ld [wcd44], a
+ scf
+ ret
+
+.asm_11a3e5
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a779
+ call PlaceString
+ ld a, $80
+ ld [wcd44], a
+ jp Function11a5b0
+; 11a3f9
+
+Function11a3f9: ; 11a3f9
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a405
+ dec a
+ ld [wcd44], a
+ scf
+ ret
+
+.asm_11a405
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a755
+ call PlaceString
+ call Function11a5f5
+ xor a
+ ld [wcd44], a
+ jp Function11a5b0
+; 11a41b
+
+Function11a41b: ; 11a41b
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wcd44]
+ and a
+ jr nz, .asm_11a43f
+ call ExitMenu
+ callba Function104061
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a43f
+ call ExitMenu
+ callba Function104061
+ 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 [wcd44], a
+ jp Function11a5b0
+; 11a466
+
+Function11a466: ; 11a466
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a7c1
+ call PlaceString
+ ld a, $80
+ ld [wcd44], a
+ jp Function11a5b0
+; 11a47a
+
+Function11a47a: ; 11a47a
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a486
+ dec a
+ ld [wcd44], 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 [wcd44], a
+ jp Function11a5b0
+; 11a49e
+
+Function11a49e: ; 11a49e
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wcd44]
+ and a
+ jr nz, .asm_11a4c7
+ call ExitMenu
+ callba Function104061
+ 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 Function104061
+ ld a, [wcd46]
+ 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 [wcd44], a
+ jp Function11a5b0
+; 11a4fe
+
+Function11a4fe: ; 11a4fe
+ call Function11a536
+ ret c
+ call PlayClickSFX
+ ld a, [wcd44]
+ and a
+ jr nz, .asm_11a522
+ call ExitMenu
+ callba Function104061
+ call Function11a63c
+ hlcoord 4, 2
+ ld de, String_11a6d2
+ call PlaceString
+ and a
+ ret
+
+.asm_11a522
+ call ExitMenu
+ callba Function104061
+ ld a, [wcd45]
+ 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 Function104061
+
+.asm_11a562
+ scf
+ ret
+
+.asm_11a564
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ ld a, [wcd44]
+ and a
+ jr z, .asm_11a54d
+ xor a
+ ld [wcd44], 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, [wcd44]
+ and a
+ jr nz, .asm_11a54d
+ inc a
+ ld [wcd44], 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 [wcd44], a
+
+.asm_11a5a7
+ xor a
+ ld [wcd8a], a
+ ld [wcd8b], a
+ and a
+ ret
+; 11a5b0
+
+Function11a5b0: ; 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 BackUpTiles
+ hlcoord 0, 0, AttrMap
+ ld b, $6
+ ld c, $14
+ hlcoord 0, 0
+ ld b, $4
+ ld c, $12
+ call Function3eea
+ callba Function104061
+ 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 BackUpTiles
+ 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 Function104061
+ 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
+ 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, $ffb5
+ ld hl, Unknown_11a8da
+ call Function11a88c
+ xor a
+ ld b, a
+ ld a, [hDivisor]
+ and $f
+ ld e, a
+ ld a, [$ffb9]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [$ffbb]
+ 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, [$ffb9]
+ and $f0
+ swap a
+ call Function11a884
+ ld e, a
+ ld a, [$ffbb]
+ 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, [$ffba]
+ and $f
+ call Function11a884
+ ld e, a
+ ld a, [$ffbc]
+ 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
+
+Function11a8fa: ; 11a8fa
+ ld a, [wc314 + 6]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11a909
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11a909
+
+Jumptable_11a909: ; 11a909
+ dw Function11a970
+ dw Function11a90f
+ dw Function11a971
+; 11a90f
+
+Function11a90f: ; 11a90f
+ ld a, $1
+ ld [rSVBK], a
+ call SpeechTextBox
+ ld a, $50
+ ld hl, wc314 + 12
+ ld bc, $008c
+ call ByteFill
+ ld a, [wc314 + 7]
+ ld l, a
+ ld a, [wc314 + 8]
+ ld h, a
+ ld de, wc314 + 12
+.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 [wc314 + 11], a
+ ld a, $20
+ ld [wc314 + 7], a
+ ld a, $c3
+ ld [wc314 + 8], a
+ hlcoord 1, 14
+ ld a, l
+ ld [wc314 + 9], a
+ ld a, h
+ ld [wc314 + 10], a
+ ld hl, wc314 + 6
+ inc [hl]
+ ld a, $3
+ ld [rSVBK], a
+
+Function11a970:
+ ret
+; 11a971
+
+Function11a971: ; 11a971
+ ld hl, wc314 + 11
+ 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, [wc314 + 7]
+ ld e, a
+ ld a, [wc314 + 8]
+ ld d, a
+ ld a, [de]
+ inc de
+ ld [hli], a
+ ld a, e
+ ld [wc314 + 7], a
+ ld a, d
+ ld [wc314 + 8], a
+ ld a, $50
+ ld [hl], a
+ ld a, [wc314 + 9]
+ ld l, a
+ ld a, [wc314 + 10]
+ ld h, a
+ ld de, wcd8d
+ call PlaceString
+ ld a, c
+ ld [wc314 + 9], a
+ ld a, b
+ ld [wc314 + 10], a
+ ld a, [wcd8d]
+ cp $50
+ jr nz, .asm_11a9bf
+ xor a
+ ld [wc314 + 6], a
+
+.asm_11a9bf
+ ret
+; 11a9c0
+
+Function11a9c0: ; 11a9c0
+ ld a, l
+ ld [wc314 + 7], a
+ ld a, h
+ ld [wc314 + 8], a
+ ld a, $1
+ ld [wc314 + 6], a
+ ret
+; 11a9ce
+
+Function11a9ce: ; 11a9ce
+ call ClearBGPalettes
+ call Function2bae
+ call Call_ExitMenu
+ callba Function106462
+ callba Function106464
+ call Functiond90
+ callba Function2b5c
+ 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
+
+UnknownText_0x11aa13: ; 0x11aa13
+ text "SAVE FILE will be"
+ line "sent."
+ done
+; 0x11aa2c
+
+UnknownText_0x11aa2c: ; 0x11aa2c
+ text "Sent SAVE FILE."
+ line "Reading NEWS…"
+ done
+; 0x11aa4b
+
+UnknownText_0x11aa4b: ; 0x11aa4b
+ text "Reading NEWS…"
+ done
+; 0x11aa5a
+
+UnknownText_0x11aa5a: ; 0x11aa5a
+ text "Received NEWS!"
+ done
+; 0x11aa6a
+
+UnknownText_0x11aa6a: ; 0x11aa6a
+ text "Quit reading NEWS?"
+ done
+; 0x11aa7e
+
+UnknownText_0x11aa7e: ; 0x11aa7e
+ text "Canceled sending"
+ line "SAVE FILE."
+ done
+; 0x11aa9b
+
+UnknownText_0x11aa9b: ; 0x11aa9b
+ text "ODD EGG"
+ line "was received!"
+ done
+; 0x11aab2
+
+UnknownText_0x11aab2: ; 0x11aab2
+ text "Registering your"
+ line "record…"
+ done
+; 0x11aacc
+
+UnknownText_0x11aacc: ; 0x11aacc
+ text "One visit per day"
+ line "per BATTLE ROOM!"
+ done
+; 0x11aaf0
+
+UnknownText_0x11aaf0: ; 0x11aaf0
+ text "A party #MON"
+ line "tops this level."
+ done
+; 0x11ab0f
+
+UnknownText_0x11ab0f: ; 0x11ab0f
+ text_from_ram wcd49
+ text " may go"
+ line "only to BATTLE"
+
+ para "ROOMS that are"
+ line "Lv.70 or higher."
+ done
+; 0x11ab4a
+
+UnknownText_0x11ab4a: ; 0x11ab4a
+ text "Cancel your BATTLE"
+ line "ROOM challenge?"
+ done
+; 0x11ab6e
+
+UnknownText_0x11ab6e: ; 0x11ab6e
+ text "Exit GYM LEADER"
+ line "HONOR ROLL?"
+ done
+; 0x11ab8b
+
+UnknownText_0x11ab8b: ; 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
+
+UnknownText_0x11abf1: ; 0x11abf1
+ text "Enter which"
+ line "BATTLE ROOM?"
+ done
+; 0x11ac0b
+
+UnknownText_0x11ac0b: ; 0x11ac0b
+ text "Which BATTLE ROOM?"
+ done
+; 0x11ac1f
+
+UnknownText_0x11ac1f: ; 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 InefficientlyClear121BytesAtwc300
+ call Function11ac51
+ call Function2b3c
+ ret
+; 11ac51
+
+Function11ac51: ; 11ac51
+ xor a
+ ld [hBGMapMode], a
+ ld hl, Options
+ ld a, [hl]
+ push af
+ set 4, [hl]
+ ld a, [VramState]
+ push af
+ xor a
+ ld [VramState], a
+ ld a, [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
+.asm_11ac82
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_11aca8
+ call Function11b314
+ call Function11acb7
+ call Function11ad6e
+ ld a, $78
+ ld [wc3b5], a
+ callba Function8cf7a
+ callba Function104061
+ jr .asm_11ac82
+
+.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, Unknown_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, $0007
+ call CopyBytes
+ ld a, [wcd49]
+ inc a
+ ld [wcd49], a
+ ld a, [hl]
+ cp $ff
+ jr nz, .asm_11aceb
+ xor a
+ ld [wcd49], a
+
+.asm_11aceb
+ ld hl, Unknown_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, $0007
+ 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, [MenuSelection2]
+ ld [wcd82], a
+ dec a
+ ld [hObjectStructIndexBuffer], a
+ ld a, $10
+ ld [wc3b7], a
+ ld hl, Function8e83f
+ ld a, BANK(Function8e83f)
+ ld e, $4
+ rst FarCall
+ ld hl, Function8e83f
+ ld a, BANK(Function8e83f)
+ 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 Function40bdc
+ 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
+ ld bc, $0808
+ call Function11afd6
+ callba Function104061
+ call Function11ad8a
+ ld a, $1
+ ld [MenuSelection2], 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, [MenuSelection2]
+ dec a
+ ret z
+ jr .asm_11adf4
+
+.asm_11aded
+ ld a, [MenuSelection2]
+ inc a
+ cp $4
+ ret z
+
+.asm_11adf4
+ push af
+ ld hl, Unknown_11afcc
+ call Function11afbb
+ pop af
+ ld [MenuSelection2], a
+ ld hl, Unknown_11afcc
+ call Function11afb7
+ ret
+
+.asm_11ae06
+ call PlayClickSFX
+ ld a, [MenuSelection2]
+ dec a
+ ld hl, wcd30
+ ld [hl], a
+ and a
+ jr z, .asm_11ae28
+ hlcoord 2, 14
+ ld a, [MenuSelection2]
+ 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 Function104061
+ 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 Function104061
+ call Function11ad8a
+ ld a, $1
+ ld [MenuSelection2], 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, [MenuSelection2]
+ dec a
+ ret z
+ jr .asm_11aecf
+
+.asm_11aec8
+ ld a, [MenuSelection2]
+ inc a
+ cp $3
+ ret z
+
+.asm_11aecf
+ push af
+ ld hl, Unknown_11afd2
+ call Function11afbb
+ pop af
+ ld [MenuSelection2], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+ ret
+
+.asm_11aee1
+ call PlayClickSFX
+ ld a, [MenuSelection2]
+ cp $2
+ jr z, .asm_11aeb4
+ ld a, [wcd4b]
+ ld [ScriptVar], a
+ call Function11b022
+ call Function11ad8a
+
+.asm_11aef7
+ call ExitMenu
+ call ExitMenu
+ callba Function104061
+ 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 Function104061
+ call Function11ad8a
+ ld a, $2
+ ld [MenuSelection2], 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, [MenuSelection2]
+ dec a
+ ret z
+ jr .asm_11af85
+
+.asm_11af7e
+ ld a, [MenuSelection2]
+ inc a
+ cp $3
+ ret z
+
+.asm_11af85
+ push af
+ ld hl, Unknown_11afd2
+ call Function11afbb
+ pop af
+ ld [MenuSelection2], a
+ ld hl, Unknown_11afd2
+ call Function11afb7
+ ret
+
+.asm_11af97
+ call PlayClickSFX
+ ld a, [MenuSelection2]
+ cp $2
+ jr z, .asm_11af6a
+ ld a, $6
+ ld [wJumptableIndex], a
+ xor a
+ ld [ScriptVar], a
+
+.asm_11afaa
+ call ExitMenu
+ call ExitMenu
+ callba Function104061
+ ret
+; 11afb7
+
+Function11afb7: ; 11afb7
+ ld e, $ed
+ jr asm_11afbd
+
+Function11afbb:
+ ld e, $7f
+
+asm_11afbd:
+ ld a, [MenuSelection2]
+ dec a
+ ld c, a
+ ld b, 0
+rept 2
+ add hl, bc
+endr
+ 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, $0014
+ ld a, $3
+.asm_11afdb
+ push bc
+ push hl
+.asm_11afdd
+ ld [hli], a
+ dec c
+ jr nz, .asm_11afdd
+ pop hl
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_11afdb
+ 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
+.asm_11b041
+ ld a, [hli]
+ cp $ef
+ jr z, .asm_11b051
+ cp $f5
+ jr z, .asm_11b051
+ cp $50
+ jr z, .asm_11b055
+ inc c
+ jr .asm_11b041
+
+.asm_11b051
+ dec hl
+ ld a, $50
+ ld [hli], a
+
+.asm_11b055
+ dec hl
+ push hl
+ ld e, $4
+ ld d, $0
+ add hl, de
+ ld e, l
+ ld d, h
+ pop hl
+.asm_11b05f
+ ld a, [hld]
+ ld [de], a
+ dec de
+ dec c
+ jr nz, .asm_11b05f
+ pop af
+ pop de
+ cp $1
+ jr nz, .asm_11b070
+ ld hl, String_11b07a
+ jr .asm_11b073
+
+.asm_11b070
+ ld hl, String_11b07e
+
+.asm_11b073
+ ld bc, 4
+ call CopyBytes
+ ret
+; 11b07a
+
+String_11b07a: db "ォスの "
+String_11b07e: 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, $c6d0
+ add hl, de
+ ld e, l
+ ld d, h
+ hlcoord 11, 2
+ ld a, [wc7d3]
+.asm_11b0b9
+ push af
+ ld a, [de]
+ ld [wd265], a
+ push de
+ push hl
+ call Function11b0cf
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop de
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_11b0b9
+ ret
+; 11b0cf
+
+Function11b0cf: ; 11b0cf
+ and a
+ ret z
+ call Function11b0ec
+ ret c
+ call Function11b0e1
+ push hl
+ call GetPokemonName
+ pop hl
+ call PlaceString
+ ret
+; 11b0e1
+
+Function11b0e1: ; 11b0e1
+ call Function11b21e
+ jr nz, .asm_11b0e8
+ inc hl
+ ret
+
+.asm_11b0e8
+ ld a, $1
+ ld [hli], a
+ ret
+; 11b0ec
+
+Function11b0ec: ; 11b0ec
+ call Function11b22a
+ ret nz
+ inc hl
+ ld de, String_11b0f9
+ call PlaceString
+ scf
+ ret
+; 11b0f9
+
+String_11b0f9: ; 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 Function11b22a
+ 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
+
+Function11b21e: ; 11b21e
+ push de
+ push hl
+ ld a, [wd265]
+ dec a
+ call CheckCaughtMon
+ pop hl
+ pop de
+ ret
+; 11b22a
+
+Function11b22a: ; 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
+rept 2
+ add hl, de
+endr
+ 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 Function11b22a
+ 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 Function11b22a
+ 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 Function8e9bc
+ 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, Unknown_11b350
+ ld a, [wJumptableIndex]
+ cp $2
+ jr c, .asm_11b349
+ ld a, [wc7d1]
+ cp $4
+ jr nc, .asm_11b344
+ cp $3
+ jr c, .asm_11b349
+ ld a, [wJumptableIndex]
+ cp $2
+ jr z, .asm_11b349
+ cp $3
+ jr z, .asm_11b349
+ cp $6
+ jr z, .asm_11b349
+
+ ld bc, Unknown_11b37b
+ jr .asm_11b34c
+
+.asm_11b344
+ ld bc, Unknown_11b389
+ jr .asm_11b34c
+
+.asm_11b349
+ ld bc, Unknown_11b36d
+
+.asm_11b34c
+ call Function11b397
+ ret
+; 11b350
+
+Unknown_11b350:
+ db $1a, $5e, $1a, $66, $1a, $6e, $1a, $76, $1a, $7e, $1a, $86, $1a, $8e
+ db $22, $5e, $22, $66, $22, $6e, $22, $76, $22, $7e, $22, $86, $22, $8e
+ db $ff
+
+Unknown_11b36d:
+ db $30, $31, $31, $31, $31, $31, $32, $40, $41, $41, $41, $41, $41, $42
+Unknown_11b37b:
+ db $30, $31, $31, $39, $39, $39, $39, $40, $41, $41, $39, $39, $39, $39
+Unknown_11b389:
+ db $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39
+
+Function11b397: ; 11b397
+ ld de, Sprites
+.asm_11b39a
+ ld a, [hl]
+ cp $ff
+ ret z
+ ld a, [wc7d1]
+ and $7
+ swap a
+ add [hl]
+ inc hl
+ ld [de], a
+ inc de
+ ld a, [hli]
+ ld [de], a
+ inc de
+ ld a, [bc]
+ inc bc
+ ld [de], a
+ inc de
+ ld a, $5
+ ld [de], a
+ inc de
+ jr .asm_11b39a
+; 11b3b6
+
+Function11b3b6: ; 11b3b6
+.asm_11b3b6
+ ld a, [hl]
+ cp $ff
+ 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 .asm_11b3b6
+; 11b3d9
+
+Function11b3d9: ; 11b3d9
+ ld de, Sprites + $70
+ push de
+ ld a, [wc7d2]
+ dec a
+ ld e, a
+ ld a, [wc7d1]
+ ld hl, wc7d0
+ add [hl]
+ cp e
+ jr z, .asm_11b40d
+ ld hl, 0
+ ld bc, $0070
+ call AddNTimes
+ ld e, l
+ ld d, h
+ ld b, $0
+ ld a, d
+ or e
+ jr z, .asm_11b40f
+ ld a, [wc7d2]
+ ld c, a
+.asm_11b401
+ ld a, e
+ sub c
+ ld e, a
+ ld a, d
+ sbc $0
+ ld d, a
+ jr c, .asm_11b40f
+ inc b
+ jr .asm_11b401
+
+.asm_11b40d
+ ld b, $70
+
+.asm_11b40f
+ ld a, $15
+ add b
+ pop hl
+ ld [hli], a
+ cp $41
+ jr c, .asm_11b42b
+ ld a, [wJumptableIndex]
+ cp $4
+ jr z, .asm_11b43b
+ cp $5
+ jr z, .asm_11b43b
+ cp $7
+ jr z, .asm_11b43b
+ cp $8
+ jr z, .asm_11b43b
+
+.asm_11b42b
+ ld a, $9b
+ ld [hli], a
+ ld a, [wcd4c]
+ add $3c
+ ld [hli], a
+ ld a, [wcd4c]
+ add $1
+ ld [hl], a
+ ret
+
+.asm_11b43b
+ ld a, $9b
+ ld [hli], a
+ ld a, $39
+ ld [hli], a
+ xor a
+ ld [hl], a
+ ret
+; 11b444
+
+Function11b444: ; 11b444
+ call Function11b44b
+ call Function11b45c
+ ret
+; 11b44b
+
+Function11b44b: ; 11b44b
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wcf65], a
+ ld [wcf66], a
+ call UpdateTime
+ ret
+; 11b45c
+
+Function11b45c: ; 11b45c
+.asm_11b45c
+ call Function11b46a
+ call DelayFrame
+ ld a, [wJumptableIndex]
+ cp $4
+ jr nz, .asm_11b45c
+ ret
+; 11b46a
+
+Function11b46a: ; 11b46a
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11b479
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11b479
+
+Jumptable_11b479: ; 11b479
+ dw Function11b483
+ dw Function11b570
+ dw Function11b5c0
+ dw Function11b5e0
+ dw Function11b5e7
+; 11b483
+
+Function11b483: ; 11b483
+ call Function11b538
+ ld hl, PlayerName
+ ld a, $5
+.asm_11b48b
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .asm_11b48b
+ ld de, $0030
+ ld hl, PartyMon1Species
+ ld a, [wcd82]
+ dec a
+ push af
+.asm_11b49f
+ and a
+ jr z, .asm_11b4a6
+ add hl, de
+ dec a
+ jr .asm_11b49f
+
+.asm_11b4a6
+ push bc
+ ld a, $30
+.asm_11b4a9
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .asm_11b4a9
+ pop de
+ push bc
+ ld a, [de]
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, $001f
+ add hl, de
+ ld a, [hl]
+ ld [CurPartyLevel], a
+ ld hl, $0024
+ add hl, de
+ push hl
+ ld hl, $000a
+ add hl, de
+ pop de
+ push de
+ ld b, $1
+ predef CalcPkmnStats
+ pop de
+ ld h, d
+ ld l, e
+rept 2
+ dec hl
+endr
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ pop bc
+ ld de, $000b
+ ld hl, PartyMonOT
+ pop af
+ push af
+.asm_11b4e8
+ and a
+ jr z, .asm_11b4ef
+ add hl, de
+ dec a
+ jr .asm_11b4e8
+
+.asm_11b4ef
+ ld a, $a
+.asm_11b4f1
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .asm_11b4f1
+ ld de, $000b
+ ld hl, PartyMonNicknames
+ pop af
+ push af
+.asm_11b502
+ and a
+ jr z, .asm_11b509
+ add hl, de
+ dec a
+ jr .asm_11b502
+
+.asm_11b509
+ ld a, $a
+.asm_11b50b
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .asm_11b50b
+ ld de, $002f
+ ld hl, $a600
+ pop af
+.asm_11b51b
+ and a
+ jr z, .asm_11b522
+ add hl, de
+ dec a
+ jr .asm_11b51b
+
+.asm_11b522
+ ld a, $0
+ call GetSRAMBank
+ ld a, $2f
+.asm_11b529
+ push af
+ ld a, [hli]
+ ld [bc], a
+ inc bc
+ pop af
+ dec a
+ and a
+ jr nz, .asm_11b529
+ call CloseSRAM
+ jp Function11ad8a
+; 11b538
+
+Function11b538: ; 11b538
+ ld bc, BattleMonNick + 5
+ 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, .asm_11b57f
+ call Function11b585
+ jp Function11ad8a
+
+.asm_11b57f
+ ld a, $4
+ ld [wJumptableIndex], a
+ ret
+; 11b585
+
+Function11b585: ; 11b585
+ ld a, $3
+ ld [rSVBK], a
+ ld hl, $d800
+ ld de, $c608
+ ld bc, $008f
+ 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, $008f
+ 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 [wd10b], a
+ callba Functione039
+ callba Function170807
+ callba Function14a58
+ 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, $0004
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $c608
+ ld de, $b08c
+ ld bc, $0004
+ 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 Function11b44b
+ call Function11b64c
+ ret
+; 11b64c
+
+Function11b64c: ; 11b64c
+.asm_11b64c
+ call Function11b65a
+ call DelayFrame
+ ld a, [wJumptableIndex]
+ cp $1
+ jr nz, .asm_11b64c
+ ret
+; 11b65a
+
+Function11b65a: ; 11b65a
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_11b669
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 11b669
+
+Jumptable_11b669: ; 11b669
+ 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, [StringBuffer2 + 10]
+ 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 [StringBuffer2 + 10], 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 [wc708], a
+ ld a, [wcd31]
+ ld [wc709], a
+ ld a, $8
+ ld [BGMapBuffer], a
+ ld a, $c7
+ ld [wcd21], a
+ ld a, $d
+ ld [CreditsTimer], a
+ ld a, $c6
+ ld [wcd23], a
+ ld a, $3d
+ ld [wcd24], a
+ ld a, $c6
+ ld [wcd25], a
+ ld a, $42
+ ld [wcd26], a
+ ld a, $c6
+ ld [wcd27], a
+ ld a, $47
+ ld [wcd28], a
+ ld a, $c6
+ ld [wcd29], a
+ ld a, $46
+ ld [$c628], a
+ ld de, $c63d
+ ld c, $5
+ callba CheckStringForErrors
+ jr nc, .asm_11b70f
+ callba Function17d187
+
+.asm_11b70f
+ ld de, $c63d
+ ld bc, $0105
+ callba Function17d1e1
+ jr nc, .asm_11b723
+ callba Function17d187
+
+.asm_11b723
+ ld de, $c642
+ ld c, $5
+ callba CheckStringForErrors
+ jr nc, .asm_11b736
+ callba Function17d199
+
+.asm_11b736
+ ld de, $c642
+ ld bc, $0105
+ callba Function17d1e1
+ jr nc, .asm_11b74a
+ callba Function17d199
+
+.asm_11b74a
+ ld de, $c647
+ ld c, $21
+ callba CheckStringForErrors
+ jr nc, .asm_11b75d
+ callba Function17d1ab
+
+.asm_11b75d
+ ld de, $c647
+ ld bc, $0221
+ callba Function17d1e1
+ jr c, .asm_11b770
+ ld a, b
+ cp $2
+ jr nz, .asm_11b776
+
+.asm_11b770
+ callba Function17d1ab
+
+.asm_11b776
+ ld de, $c668
+ ld c, $5
+ callba CheckStringForErrors
+ jr nc, .asm_11b789
+ callba Function17d1c9
+
+.asm_11b789
+ ld de, $c668
+ ld bc, $0105
+ callba Function17d1e1
+ jr nc, .asm_11b79d
+ callba Function17d1c9
+
+.asm_11b79d
+ ld a, [$c608 + 6]
+ cp $ff
+ jr nz, .asm_11b7a8
+ xor a
+ ld [$c608 + 6], a
+
+.asm_11b7a8
+ ld a, [wcd31]
+ ld [$c608 + 5], a
+ ld [CurSpecies], a
+ call GetBaseData
+
+ ld hl, $c62c
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .asm_11b7c5
+ ld a, [hl]
+ cp MAX_LEVEL
+ jr c, .asm_11b7c6
+ ld a, MAX_LEVEL
+.asm_11b7c5
+ ld [hl], a
+.asm_11b7c6
+ ld [CurPartyLevel], a
+
+ ld hl, $c616 + 1
+ ld de, $c62c + 5
+ ld b, $1
+ predef CalcPkmnStats
+ ld de, $c62c + 5
+ ld hl, $c62c + 3
+ ld a, [de]
+ ld [hli], a
+ inc de
+ ld a, [de]
+ ld [hl], a
+ call Function11b98f
+ ret
+; 11b7e5
+
+Function11b7e5: ; 11b7e5
+ ld a, [$c608 + 5]
+ ld [wc702], a
+ ld [CurPartySpecies], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ ld hl, $c63d
+ ld de, wc724
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld a, [$c608 + 11]
+ ld [wEnemyWrapCount], a
+ ld a, [$c608 + 12]
+ ld [wPlayerCharging], a
+ ld hl, $c608 + 26
+ ld a, [hli]
+ ld [wEnemyTrappingMove], a
+ ld a, [hl]
+ ld [wPlayerWrapCount], a
+ ld bc, $c608 + 5
+ callba GetCaughtGender
+ ld a, c
+ ld [wEnemyCharging], a
+ call SpeechTextBox
+ call FadeToMenu
+ callba Function108016
+ callba Function17d1f1
+ ld a, $1
+ ld [wd1e9], a
+ ld a, $2
+ ld [wLinkMode], a
+ callba Function421d8
+ xor a
+ ld [wLinkMode], a
+ callba Function14a58
+ ld a, $5
+ call GetSRAMBank
+ ld a, $5
+ ld [$a800], a
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_11b872
+ ld a, $1
+ ld [de], a
+
+.asm_11b872
+ call Function2b3c
+ call RestartMapMusic
+ ret
+; 11b879
+
+Function11b879: ; 11b879
+ callba Function17089a
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$a800]
+ ld [ScriptVar], a
+ ld a, [$a890]
+ ld [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 Function11b44b
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a81f
+ ld de, BattleMonNick + 5
+ ld bc, $0008
+ call CopyBytes
+ call CloseSRAM
+ call Function118000
+ ret
+; 11b93b
+
+Function11b93b: ; 11b93b
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$a800], a
+ ld hl, $a823
+ ld de, wEnemyMoveStruct
+ ld bc, $008f
+ call CopyBytes
+ call CloseSRAM
+ ld a, wEnemyMoveStruct % $100
+ ld [wcd20], a
+ ld a, wEnemyMoveStruct / $100
+ ld [wcd21], a
+ ld a, $c611 % $100
+ ld [wcd22], a
+ ld a, $c611 / $100
+ ld [wcd23], a
+ ld a, $c641 % $100
+ ld [wcd24], a
+ ld a, $c641 / $100
+ ld [wcd25], a
+ ld a, $c646 % $100
+ ld [wcd26], a
+ ld a, $c646 / $100
+ ld [wcd27], a
+ ld a, $c64b % $100
+ ld [wcd28], a
+ ld a, $c64b / $100
+ ld [wcd29], a
+ call Function11b98f
+ callba Function14a58
+ ret
+; 11b98f
+
+Function11b98f: ; 11b98f
+ ld hl, PartyCount
+ ld a, [hl]
+ ld e, a
+ inc [hl]
+ ld a, [wcd20]
+ ld l, a
+ ld a, [wcd21]
+ 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, $ff
+ ld [bc], a
+ ld hl, PartyMon1Species
+ ld bc, PARTYMON_STRUCT_LENGTH
+ ld a, e
+ ld [wcd2a], a
+.loop2
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop2
+ ld e, l
+ ld d, h
+ ld a, [CreditsTimer]
+ ld l, a
+ ld a, [wcd23]
+ ld h, a
+ ld bc, PARTYMON_STRUCT_LENGTH
+ call CopyBytes
+ ld hl, PartyMonOT
+ ld bc, NAME_LENGTH
+ ld a, [wcd2a]
+.loop3
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop3
+ ld e, l
+ ld d, h
+ ld a, [wcd24]
+ ld l, a
+ ld a, [wcd25]
+ 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, [wcd2a]
+.loop4
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop4
+ ld e, l
+ ld d, h
+ ld a, [wcd26]
+ ld l, a
+ ld a, [wcd27]
+ ld h, a
+ ld bc, PKMN_NAME_LENGTH - 1
+ call CopyBytes
+ ld a, "@"
+ ld [de], a
+ ld hl, sPartyScratch1
+ ld bc, PARTYMON_STRUCT_LENGTH - 1
+ ld a, [wcd2a]
+.loop5
+ add hl, bc
+ dec a
+ and a
+ jr nz, .loop5
+ ld a, $0
+ call GetSRAMBank
+ ld e, l
+ ld d, h
+ ld a, [wcd28]
+ ld l, a
+ ld a, [wcd29]
+ ld h, a
+ ld bc, PARTYMON_STRUCT_LENGTH - 1
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 11ba38
+
+Function11ba38: ; 11ba38
+ callba CheckCurPartyMonFainted
+ ret c
+ xor a
+ ld [ScriptVar], a
+ ret
+; 11ba44
+
+Unknown_11ba44:
+ db $47, $30, $0a, $0a, $0a, $0a, $0a, $56
+ db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55
+ db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54
+ db $44, $30, $0a, $0a, $0a, $0a, $0a, $53
+ db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51
+ db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50
+ db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e
+ db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42
+ db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58
+ db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58
+ db $4a, $30, $0a, $0a, $0a, $0a, $69, $58
+ db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58
+ db $4a, $3d, $0a, $0a, $0a, $66, $67, $58
+ db $4a, $30, $0a, $0a, $0a, $65, $0a, $58
+ db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58
+ db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58
+ db $4a, $30, $0a, $0a, $61, $62, $0a, $58
+ db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58
+ db $4a, $3d, $0a, $61, $62, $0a, $0a, $58
+ db $4a, $30, $0a, $63, $0a, $0a, $0a, $58
+ db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58
+ db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58
+ db $4a, $30, $80, $0a, $0a, $0a, $0a, $58
+ db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58
+ db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58
+ db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58
+ db $4a, $2f, $68, $87, $88, $89, $0a, $58
+ db $4a, $3d, $6e, $6f, $70, $75, $76, $58
+ db $4a, $30, $75, $76, $5c, $5d, $5e, $58
+ db $4a, $2f, $71, $72, $73, $74, $6d, $58
+ db $4a, $3d, $75, $76, $77, $8a, $8b, $58
+ db $4a, $30, $66, $67, $65, $0a, $6a, $58
+ db $4a, $2f, $83, $84, $0a, $83, $84, $58
+ db $4a, $3d, $0a, $85, $82, $84, $0a, $58
+ db $4a, $30, $41, $80, $40, $0a, $0a, $58
+ db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58
+ db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58
+ db $ff
+
+Unknown_11bb7d:
+ db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00
+ db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00
+ db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00
+ db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00
+ db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00
+ db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00
+ db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00
+ db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00
+ db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00
+ db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00
+ db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00
+ db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00
+ db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00
+ db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00
+ db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00
+ db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00
+ db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00
+ db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00
+ db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00
+ db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00
+ db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00
+ db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00
+ db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00
+ db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00
+ db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00
+ db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00
+ db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00
+ db $2e, $0a, $0a, $61, $62, $0a, $8e, $00
+ db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00
+ db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00
+ db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00
+ db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00
+ db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00
+ db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00
+ db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00
+ db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00
+ db $ff
+
+
diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm
new file mode 100755
index 000000000..3e26aa9ea
--- /dev/null
+++ b/misc/mobile_5b.asm
@@ -0,0 +1,1236 @@
+Function16c000: ; 16c000
+ ld a, [hCGB]
+ and a
+ ret z
+ ld a, [$ffea]
+ and a
+ ret z
+ ld a, [wcfbe]
+ push af
+ set 7, a
+ ld [wcfbe], a
+ call Function16c108
+ callba Function100063
+ callba Function100082
+ call Function16c031
+ callba Function1000a4
+ xor a
+ ld [$ffea], a
+ pop af
+ ld [wcfbe], a
+ ret
+; 16c031
+
+Function16c031: ; 16c031
+ xor a
+ ld [wJumptableIndex], a
+ ld [wcf64], a
+ ld [wd002], a
+ ld [wd003], a
+.asm_16c03e
+ call DelayFrame
+ callba Function10635c
+ ld a, [wd002]
+ ld hl, Jumptable_16c05c
+ rst JumpTable
+ call Function16cb2e
+ call Function16cbae
+ ld a, [wd002]
+ cp $ff
+ jr nz, .asm_16c03e
+ ret
+; 16c05c
+
+Jumptable_16c05c: ; 16c05c
+ dw Function16c074
+ dw Function16c0ba
+ dw Function16c089
+ dw Function16c09e
+ dw Function16c0a8
+ dw Function16c0dc
+ dw Function16c0ec
+ dw Function16c0ba
+ dw Function16c0ca
+ dw Function16c0dc
+ dw Function16c0ec
+ dw Function16c081
+; 16c074
+
+Function16c074: ; 16c074
+ ld a, [wcf64]
+ and a
+ ret z
+ ld [wd002], a
+ xor a
+ ld [wd003], a
+ ret
+; 16c081
+
+Function16c081: ; 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
+
+Function16c108: ; 16c108
+ call DisableLCD
+ ld hl, VTiles2
+ ld de, GFX_16c173
+ lb bc, BANK(GFX_16c173), $68
+ call Get2bpp
+ call Function16c130
+ call Function16c145
+ call Function16c15c
+ ld hl, VBGMap0
+ call Function16cc73
+ call Function16cc02
+ xor a
+ ld [hBGMapMode], a
+ call EnableLCD
+ ret
+; 16c130
+
+Function16c130: ; 16c130
+ ld de, wMapPals
+ ld hl, Unknown_16c903
+ ld bc, 8
+ ld a, $5
+ call FarCopyWRAM
+ callba Function96a4
+ ret
+; 16c145
+
+Function16c145: ; 16c145
+ hlcoord 0, 0
+ ld bc, 20
+ xor a
+ call ByteFill
+ ld hl, Tilemap_16c633
+ decoord 0, 1
+ ld bc, $0154
+ call CopyBytes
+ ret
+; 16c15c
+
+Function16c15c: ; 16c15c
+ hlcoord 0, 0, AttrMap
+ ld bc, SCREEN_WIDTH
+ xor a
+ call ByteFill
+ ld hl, Tilemap_16c79b
+ decoord 0, 1, AttrMap
+ ld bc, 17 * SCREEN_WIDTH
+ call CopyBytes
+ ret
+; 16c173
+
+GFX_16c173:
+INCBIN "gfx/unknown/16c173.2bpp"
+
+Tilemap_16c633:
+INCBIN "gfx/unknown/16c633.tilemap"
+
+Tilemap_16c79b:
+INCBIN "gfx/unknown/16c79b.tilemap"
+
+Unknown_16c903:
+ RGB 31, 31, 31
+ RGB 04, 10, 20
+ RGB 16, 19, 25
+ RGB 25, 27, 29
+
+ 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
+
+; 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, wMapPals
+ 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, Unknown_16c903
+ call Function16cab6
+ call Function16cabb
+ ld d, a
+ ld hl, wMapPals
+ 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, wMapPals
+ call Function16cab6
+ call Function16cadc
+
+.asm_16c991
+ ld hl, Unknown_16c903
+ call Function16cab6
+ call Function16cad8
+ ld d, a
+ ld hl, wMapPals
+ 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, wMapPals
+ call Function16cab6
+ call Function16cb08
+
+.asm_16c9b9
+ ld hl, Unknown_16c903
+ call Function16cab6
+ call Function16cac4
+ ld d, a
+ ld hl, wMapPals
+ 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, wMapPals
+ call Function16cab6
+ call Function16cae8
+
+.asm_16c9e1
+rept 2
+ inc e
+endr
+ ld a, e
+ cp $8
+ jr nz, .asm_16c969
+ callba Function96a4
+ 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 Function96a4
+
+.asm_16ca1d
+ ld a, [rSVBK]
+ push af
+ ld a, $5
+ ld [rSVBK], a
+ ld e, $0
+ ld a, $0
+.asm_16ca28
+ ld hl, wMapPals
+ 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, wMapPals
+ call Function16cab6
+ call Function16cadc
+
+.asm_16ca48
+ ld hl, wMapPals
+ 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, wMapPals
+ call Function16cab6
+ call Function16cb08
+
+.asm_16ca68
+ ld hl, wMapPals
+ 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, wMapPals
+ call Function16cab6
+ call Function16cae8
+
+.asm_16ca88
+rept 2
+ inc e
+endr
+ ld a, e
+ cp $8
+ jr nz, .asm_16ca28
+ callba Function96a4
+ 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, $0002
+ ld hl, Unknown_16cfa3
+ call AddNTimes
+ ld de, wd00c
+ ld bc, $0002
+ ld a, $5
+ call FarCopyWRAM
+ callba Function96a4
+ 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, wd008
+ call Function16cc41
+ ld hl, Unknown_16cfb1
+ ld de, Unkn2Pals
+ call Function16cc41
+ ld hl, Unknown_16cfb9
+ ld de, wd048
+ call Function16cc41
+ ret
+; 16cc41
+
+Function16cc41: ; 16cc41
+ ld bc, $0008
+ 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
+ ld hl, 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
+
+GFX_16cfc1:
+INCBIN "gfx/unknown/16cfc1.2bpp"
+
+Function16d421: ; 16d421
+ ld de, GFX_16cfc1
+ ld hl, VTiles2
+ lb bc, BANK(GFX_16cfc1), $46
+ call Get2bpp
+ ret
+; 16d42e
+
+Function16d42e: ; 16d42e
+ ld hl, Tilemap_16d465
+ decoord 0, 0
+ ld bc, SCREEN_WIDTH * SCREEN_HEIGHT
+ call CopyBytes
+ ret
+; 16d43b
+
+Function16d43b: ; 16d43b
+ call LoadStandardMenuDataHeader
+ call ClearBGPalettes
+ call ClearTileMap
+ call ClearSprites
+ callba Function16d421
+ callba Function16d42e
+ ld b, $8
+ call GetSGBLayout
+ call SetPalettes
+ call WaitBGMap
+ call JoyWaitAorB
+ call Call_ExitMenu
+ ret
+; 16d465
+
+Tilemap_16d465:
+INCBIN "gfx/unknown/16d465.tilemap"
+
+Tilemap_16d5cd:
+INCBIN "gfx/unknown/16d5cd.tilemap"
+
+Tilemap_16d5f5:
+INCBIN "gfx/unknown/16d5f5.tilemap"
+
+Function16d61d: ; 16d61d
+ ld h, d
+ ld l, e
+ push bc
+ push hl
+ call Function16d640
+ pop hl
+ pop bc
+ ld de, AttrMap - TileMap
+ add hl, de
+rept 2
+ inc b
+endr
+rept 2
+ inc c
+endr
+ ld a, $7
+.asm_16d630
+ push bc
+ push hl
+.asm_16d632
+ ld [hli], a
+ dec c
+ jr nz, .asm_16d632
+ pop hl
+ ld de, $0014
+ add hl, de
+ pop bc
+ dec b
+ jr nz, .asm_16d630
+ ret
+; 16d640
+
+Function16d640: ; 16d640
+ push hl
+ ld a, $30
+ ld [hli], a
+ inc a
+ call Function16d66d
+ inc a
+ ld [hl], a
+ pop hl
+ ld de, $0014
+ add hl, de
+.asm_16d64f
+ push hl
+ ld a, $33
+ ld [hli], a
+ ld a, $7f
+ call Function16d66d
+ ld [hl], $34
+ pop hl
+ ld de, $0014
+ add hl, de
+ dec b
+ jr nz, .asm_16d64f
+ ld a, $35
+ ld [hli], a
+ ld a, $36
+ call Function16d66d
+ ld [hl], $37
+ ret
+; 16d66d
+
+Function16d66d: ; 16d66d
+ ld d, c
+.asm_16d66e
+ ld [hli], a
+ dec d
+ jr nz, .asm_16d66e
+ ret
+; 16d673
+
+Function16d673: ; 16d673
+ call Function16d696
+ call Function16d6ae
+ callba Function49856
+ callba Functionfb60d
+ hlcoord 10, 17
+ ld de, String_16d68f
+ call PlaceString
+ ret
+; 16d68f
+
+String_16d68f: ; 16d68f
+ db "CANCEL@"
+; 16d696
+
+Function16d696: ; 16d696
+ call Function16d421
+ ret
+; 16d69a
+
+
+Function16d69a: ; 16d69a
+ ld de, GFX_16cfc1 + $300
+ ld hl, VTiles2 tile $76
+ lb bc, BANK(GFX_16cfc1), 8
+ call Get2bpp
+ ret
+; 16d6a7
+
+Function16d6a7: ; 16d6a7
+ callba Function49811
+ ret
+; 16d6ae
+
+Function16d6ae: ; 16d6ae
+ call Function16d42e
+ ld hl, Tilemap_16d5cd
+ decoord 0, 0
+ ld bc, $0028
+ call CopyBytes
+ ld hl, Tilemap_16d5f5
+ decoord 0, 16
+ ld bc, $0028
+ call CopyBytes
+ ret
+; 16d6ca
+
+Function16d6ca: ; 16d6ca
+ call Function16d61d
+ ret
+; 16d6ce
+
+Function16d6ce: ; 16d6ce
+ call LoadStandardMenuDataHeader
+ call Function16d6e1
+ callba Function87d
+ call Call_ExitMenu
+ call Function3200
+ ret
+; 16d6e1
+
+Function16d6e1: ; 16d6e1
+ hlcoord 4, 10
+ ld b, $1
+ ld c, $a
+ predef Function28eef
+ hlcoord 5, 11
+ ld de, String_16d701
+ call PlaceString
+ call WaitBGMap
+ call Function3200
+ ld c, $32
+ jp DelayFrames
+; 16d701
+
+String_16d701: ; 16d701
+ db "WAITING..!@"
+; 16d70c
+
+Function16d70c: ; 16d70c
+ call Function16d725
+ call Function16d713
+ ret
+; 16d713
+
+Function16d713: ; 16d713
+ push bc
+ push af
+ ld a, [hJoyLast]
+ and $f0
+ ld b, a
+ ld a, [hJoyPressed]
+ and $f
+ or b
+ ld b, a
+ pop af
+ ld a, b
+ pop bc
+ ld d, a
+ ret
+; 16d725
+
+Function16d725: ; 16d725
+ ld hl, wcfa6
+ res 7, [hl]
+ ld a, [hBGMapMode]
+ push af
+ call Function16d734
+ pop af
+ ld [hBGMapMode], a
+ ret
+; 16d734
+
+Function16d734: ; 16d734
+.asm_16d734
+ call Function16d77a
+ call Function16d759
+ call Function16d76a
+ jr nc, .asm_16d758
+ callba Function24270
+ jr c, .asm_16d758
+ ld a, [wcfa5]
+ bit 7, a
+ jr nz, .asm_16d758
+ call Function16d713
+ ld b, a
+ ld a, [wcfa8]
+ and b
+ jr z, .asm_16d734
+
+.asm_16d758
+ ret
+; 16d759
+
+Function16d759: ; 16d759
+ ld a, [hOAMUpdate]
+ push af
+ ld a, $1
+ ld [hOAMUpdate], a
+ call WaitBGMap
+ pop af
+ ld [hOAMUpdate], a
+ xor a
+ ld [hBGMapMode], a
+ ret
+; 16d76a
+
+Function16d76a: ; 16d76a
+.asm_16d76a
+ call RTC
+ call Function16d7e7
+ ret c
+ ld a, [wcfa5]
+ bit 7, a
+ jr z, .asm_16d76a
+ and a
+ ret
+; 16d77a
+
+Function16d77a: ; 16d77a
+ ld hl, wcfac
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ ld a, [hl]
+ cp $1f
+ jr nz, .asm_16d792
+ ld a, [wcfab]
+ ld [hl], a
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], a
+ pop bc
+ pop hl
+
+.asm_16d792
+ ld a, [wcfa1]
+ ld b, a
+ ld a, [wcfa2]
+ ld c, a
+ call Coord2Tile
+ ld a, [wcfa7]
+ swap a
+ and $f
+ ld c, a
+ ld a, [MenuSelection2]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_16d7b1
+.asm_16d7ad
+ add c
+ dec b
+ jr nz, .asm_16d7ad
+
+.asm_16d7b1
+ ld c, $14
+ call AddNTimes
+ ld a, [wcfa7]
+ and $f
+ ld c, a
+ ld a, [wcfaa]
+ ld b, a
+ xor a
+ dec b
+ jr z, .asm_16d7c8
+.asm_16d7c4
+ add c
+ dec b
+ jr nz, .asm_16d7c4
+
+.asm_16d7c8
+ ld c, a
+ add hl, bc
+ ld a, [hl]
+ cp $1f
+ jr z, .asm_16d7de
+ ld [wcfab], a
+ ld [hl], $1f
+ push hl
+ push bc
+ ld bc, $000b
+ add hl, bc
+ ld [hl], $1f
+ pop bc
+ pop hl
+
+.asm_16d7de
+ ld a, l
+ ld [wcfac], a
+ ld a, h
+ ld [wcfad], a
+ ret
+; 16d7e7
+
+Function16d7e7: ; 16d7e7
+ ld a, [wcfa5]
+ bit 6, a
+ jr z, .asm_16d7f4
+ callba Function8cf62
+
+.asm_16d7f4
+ call JoyTextDelay
+ call Function16d713
+ and a
+ ret z
+ scf
+ ret
+; 16d7fe
+
+
diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm
new file mode 100755
index 000000000..5d9e207bb
--- /dev/null
+++ b/misc/mobile_5c.asm
@@ -0,0 +1,2181 @@
+Function170000: ; 170000
+ ld a, [$c62b]
+ ld [$c6d0], a
+ ld hl, $c62e
+ ld de, $c6e7
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $c663
+ ld de, $c6f2
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $c648
+ ld a, [hli]
+ ld [$c6fd], a
+ ld a, [hl]
+ ld [$c6fe], a
+ ld hl, $c639
+ ld a, [hli]
+ ld [$c6ff], a
+ ld a, [hl]
+ ld [wc700], a
+ ld bc, $c633
+ callba GetCaughtGender
+ ld a, c
+ ld [wc701], 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 [wc702], a
+ ld hl, $a827
+ ld de, wc719
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $a85c
+ ld de, wc724
+ ld bc, $0005
+ call CopyBytes
+ ld a, $50
+ ld [de], a
+ ld hl, $a841
+ ld a, [hli]
+ ld [wEnemyTrappingMove], a
+ ld a, [hl]
+ ld [wPlayerWrapCount], a
+ ld hl, $a832
+ ld a, [hli]
+ ld [wEnemyWrapCount], a
+ ld a, [hl]
+ ld [wPlayerCharging], a
+ ld bc, $a82c
+ callba GetCaughtGender
+ ld a, c
+ ld [wEnemyCharging], a
+ ld a, [wcd81]
+ ld [wc74e], a
+ call CloseSRAM
+ ret
+; 1700b0
+
+Function1700b0: ; 1700b0
+ call Function17021e
+ callba Function118121
+ ret
+; 1700ba
+
+Function1700ba: ; 1700ba
+ call Function17021e
+ 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, $dffc
+ ld de, $aa41
+ ld bc, $0004
+ call CopyBytes
+ ld hl, $d202
+ ld de, $aa8e
+ ld bc, $0594
+ call CopyBytes
+ ld hl, $aa5d
+ 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, $dffc
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ pop af
+ ld [rSVBK], a
+ ret
+; 170114
+
+Function170114: ; 170114
+ call Function17021e
+ call Function170121
+ callba Function11805f
+ ret
+; 170121
+
+Function170121: ; 170121
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a948
+ ld de, $c608
+ ld bc, $00f6
+ call CopyBytes
+ call CloseSRAM
+ call Function170c8b
+ ret
+; 170139
+
+Function170139: ; 170139
+ ld a, $5
+ call GetSRAMBank
+ ld de, $aa41
+ ld h, $0
+ ld l, h
+ ld bc, $03e8
+ call Function17020c
+ ld bc, $0064
+ call Function17020c
+ ld bc, $000a
+ call Function17020c
+ ld a, [de]
+ ld c, a
+ ld b, $0
+ add hl, bc
+ call CloseSRAM
+ ld a, h
+ ld [$c608], a
+ ld a, l
+ ld [$c608 + 1], a
+ ld hl, $c628
+ 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, $0005 ; Japanese name length
+ call CopyBytes
+ ld bc, PlayerID
+ ld de, PlayerGender
+ callba Function4e929
+ ld de, $c62c + 5
+ ld a, c
+ ld [de], a
+ inc de
+ ld a, $df
+ ld [wcd49], a
+ ld a, $dc
+ ld [wcd4a], a
+ ld a, $41
+ ld [wcd4b], a
+ ld a, $de
+ ld [wcd4c], a
+ ld a, $3
+.asm_1701ac
+ push af
+ ld a, [wcd49]
+ ld l, a
+ ld a, [wcd4a]
+ ld h, a
+ ld bc, $0030
+ 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, .asm_1701ac
+ ld a, $4
+ call GetSRAMBank
+ ld hl, $a013
+ ld bc, $0024
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $a894
+ ld bc, $0006
+ call CopyBytes
+ ld hl, $c608
+ ld de, $a948
+ ld bc, $00f6
+ call CopyBytes
+ call CloseSRAM
+ ret
+; 17020c
+
+Function17020c: ; 17020c
+ ld a, [de]
+ inc de
+ and a
+ ret z
+.asm_170210
+ add hl, bc
+ dec a
+ jr nz, .asm_170210
+ ret
+; 170215
+
+INCLUDE "misc/battle_tower_5c.asm"
+
+Function1704ca: ; 1704ca
+ 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
+ call SpeechTextBox
+ call FadeToMenu
+ call Function17021e
+ call Function1704f1
+ call Function2b3c
+ ret
+; 1704f1
+
+Function1704f1: ; 1704f1
+ call ClearBGPalettes
+ call ClearSprites
+ call ClearScreen
+.asm_1704fa
+ call JoyTextDelay
+ ld a, [wJumptableIndex]
+ bit 7, a
+ jr nz, .asm_17050f
+ call Function170510
+ callba Function104061
+ jr .asm_1704fa
+
+.asm_17050f
+ ret
+; 170510
+
+Function170510: ; 170510
+ ld a, [wJumptableIndex]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_17051f
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 17051f
+
+Jumptable_17051f: ; 17051f
+ dw Function170525
+ dw Function170571
+ dw Function170577
+; 170525
+
+Function170525: ; 170525
+ ld a, $5
+ call GetSRAMBank
+
+ ld hl, $a89c
+ ld de, StringBuffer3
+ ld bc, $0016
+ call CopyBytes
+
+ ld hl, $a8b2
+ ld de, $c608
+ ld bc, $0096
+ call CopyBytes
+
+ call CloseSRAM
+ hlcoord 1, 1
+ ld de, StringBuffer3
+ call PlaceString
+ hlcoord 1, 3
+ ld de, String_170676
+ call PlaceString
+ hlcoord 4, 3
+ ld de, StringBuffer4
+ call PlaceString
+ hlcoord 8, 3
+ ld de, String_17067a
+ call PlaceString
+ call Function1705b7
+ call Function1705f0
+ jr Function1705b2
+
+
+Function170571:
+ call SetPalettes
+ call Function1705b2
+
+
+Function170577:
+ ld hl, hJoyPressed
+ ld a, [hl]
+ and $1
+ jr nz, .asm_1705ac
+ ld a, [hl]
+ and $2
+ jr nz, .asm_1705ac
+ ld a, [hl]
+ and $40
+ jr nz, .asm_17058f
+ ld a, [hl]
+ and $80
+ jr nz, .asm_17059d
+ ret
+
+.asm_17058f
+ ld a, [wcf64]
+ and a
+ ret z
+ sub $f
+ ld [wcf64], a
+ call Function1705f0
+ ret
+
+.asm_17059d
+ ld a, [wcf64]
+ cp $3c
+ ret z
+ add $f
+ ld [wcf64], a
+ call Function1705f0
+ ret
+
+.asm_1705ac
+ ld hl, wJumptableIndex
+ set 7, [hl]
+ ret
+
+Function1705b2:
+ ld hl, wJumptableIndex
+ inc [hl]
+ ret
+; 1705b7
+
+Function1705b7: ; 1705b7
+ hlcoord 0, 4
+ ld a, $79
+ ld [hli], a
+ ld c, $12
+.asm_1705bf
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .asm_1705bf
+ ld a, $7b
+ ld [hli], a
+ ld de, $0014
+ ld c, $c
+.asm_1705cd
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_1705cd
+ ld a, $7d
+ ld [hli], a
+ ld c, $12
+.asm_1705d9
+ ld a, $7a
+ ld [hli], a
+ dec c
+ jr nz, .asm_1705d9
+ ld a, $7e
+ ld [hl], a
+ ld de, $ffec
+ add hl, de
+ ld c, $c
+.asm_1705e8
+ ld a, $7c
+ ld [hl], a
+ add hl, de
+ dec c
+ jr nz, .asm_1705e8
+ ret
+; 1705f0
+
+Function1705f0: ; 1705f0
+ call Function17064b
+ call Function17065d
+ ld a, $50
+ ld [wcd4e], a
+ ld hl, $c608
+ ld a, [wcf64]
+ ld c, a
+ xor a
+ ld b, a
+ add hl, bc
+ push hl
+ pop bc
+ hlcoord 1, 6
+ ld a, $6
+.asm_17060c
+ push af
+ push hl
+ ld a, $3
+.asm_170610
+ push af
+ ld de, wcd49
+ ld a, [bc]
+ and a
+ jr z, .asm_170625
+ ld a, $5
+.asm_17061a
+ push af
+ ld a, [bc]
+ ld [de], a
+ inc bc
+ inc de
+ pop af
+ dec a
+ jr nz, .asm_17061a
+ jr .asm_170631
+
+.asm_170625
+ ld a, $5
+.asm_170627
+ push af
+ ld a, $e3
+ ld [de], a
+ inc de
+ inc bc
+ pop af
+ dec a
+ jr nz, .asm_170627
+
+.asm_170631
+ ld de, wcd49
+ push bc
+ call PlaceString
+ ld de, $0006
+ add hl, de
+ pop bc
+ pop af
+ dec a
+ jr nz, .asm_170610
+ pop hl
+ ld de, $0028
+ add hl, de
+ pop af
+ dec a
+ jr nz, .asm_17060c
+ ret
+; 17064b
+
+Function17064b: ; 17064b
+ hlcoord 1, 5
+ xor a
+ ld b, $c
+.asm_170651
+ ld c, $12
+.asm_170653
+ ld [hli], a
+ dec c
+ jr nz, .asm_170653
+rept 2
+ inc hl
+endr
+ dec b
+ jr nz, .asm_170651
+ ret
+; 17065d
+
+Function17065d: ; 17065d
+ ld a, [wcf64]
+ and a
+ jr z, .asm_170669
+ hlcoord 18, 5
+ ld a, $61
+ ld [hl], a
+
+.asm_170669
+ ld a, [wcf64]
+ cp $3c
+ ret z
+ hlcoord 18, 16
+ ld a, $ee
+ ld [hl], a
+ ret
+; 170676
+
+String_170676: ; 170676
+ db "ルーム@"
+; 17067a
+
+String_17067a: ; 17067a
+ db "れきだいりーダーいちらん@"
+; 170687
+
+BattleTowerAction: ; 170687
+ ld a, [ScriptVar]
+ ld e, a
+ ld d, 0
+ ld hl, .jumptable
+rept 2
+ add hl, de
+endr
+ ld a, [hli]
+ ld h, [hl]
+ ld l, a
+ jp [hl]
+; 170696
+
+
+.jumptable: ; 170696 (5c:4696)
+ dw Function17075f ; 0x00
+ dw Function170788 ; 0x01
+ dw Function170778 ; 0x02
+ dw Function170799 ; 0x03
+ dw Function17079d ; 0x04
+ dw Function1707ac ; 0x05
+ dw Function1707f4 ; 0x06
+ dw Function170868 ; 0x07
+ dw Function170881 ; 0x08
+ dw Function17089a ; 0x09
+ dw Function1708b1 ; 0x0a
+ dw CheckMobileEventIndex ; 0x0b
+ dw Function1708c8 ; 0x0c
+ dw Function1708f0 ; 0x0d
+ dw Function17093c ; 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 Function170ae8 ; 0x18
+ dw Function170b16 ; 0x19
+ dw ResetBattleTowerTrainersSRAM ; 0x1a
+ dw Function1706ee ; 0x1b
+ dw Function17071b ; 0x1c
+ dw Function170729 ; 0x1d
+ dw Function17073e ; 0x1e
+ dw Function170737 ; 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
+
+Function1706ee: ; 1706ee (5c:46ee)
+ ld a, BANK(sbe50)
+ call GetSRAMBank
+
+ ld a, [sbe50]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ld hl, NumItems
+ ld a, [hli]
+ cp $14
+ ret c
+ ld b, $14
+ ld a, [ScriptVar]
+ ld c, a
+.asm_170709
+ ld a, [hli]
+ cp c
+ jr nz, .asm_170711
+ ld a, [hl]
+ cp $5f
+ ret c
+.asm_170711
+ inc hl
+ dec b
+ jr nz, .asm_170709
+ ld a, $12
+ ld [ScriptVar], a
+ ret
+
+Function17071b: ; 17071b (5c:471b)
+ ld a, BANK(s1_be45)
+ call GetSRAMBank
+ ld a, $3
+ ld [s1_be45], a
+ call CloseSRAM
+ ret
+
+Function170729: ; 170729 (5c:4729)
+ ld a, BANK(s1_be45)
+ call GetSRAMBank
+ ld a, $4
+ ld [s1_be45], a
+ call CloseSRAM
+ ret
+
+Function170737: ; 170737 (5c:4737)
+ callba SaveOptions
+ ret
+
+Function17073e: ; 17073e (5c:473e)
+ call Random
+ ld a, [hRandomAdd]
+ and $7
+ cp $6
+ jr c, .asm_17074b
+ sub $6
+.asm_17074b
+ add $1a
+ cp $1e
+ jr z, Function17073e
+ push af
+ ld a, BANK(sbe50)
+ call GetSRAMBank
+ pop af
+ ld [sbe50], a
+ call CloseSRAM
+ ret
+
+Function17075f: ; 17075f (5c:475f)
+ call Function17089a
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ and $2
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170778: ; 170778 (5c:4778)
+ ld hl, s1_be45
+ ld a, BANK(s1_be45)
+ call GetSRAMBank
+ ld a, [hl]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170788: ; 170788 (5c:4788)
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ or $2
+ ld [sbe4f], a
+ call CloseSRAM
+ ret
+
+Function170799: ; 170799 (5c:4799)
+ ld c, $1
+ jr asm_17079f
+
+Function17079d: ; 17079d (5c:479d)
+ ld c, $0
+asm_17079f: ; 17079f (5c:479f)
+ ld a, BANK(s1_be45)
+ call GetSRAMBank
+ ld a, c
+ ld [s1_be45], a
+ call CloseSRAM
+ ret
+
+Function1707ac: ; 1707ac (5c:47ac)
+ 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)
+ ld a, $5
+ call GetSRAMBank
+ xor a
+ ld [$be46], a
+ ld [$aa8b], a
+ ld [$aa8c], a
+ call CloseSRAM
+ ret
+
+Function170807: ; 170807 (5c:4807)
+ 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)
+ 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, $8c
+ 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
+
+Function170868: ; 170868 (5c:4868)
+ ld a, BANK(sbe47)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [wd000 + $800]
+ ld [sbe47], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+Function170881: ; 170881 (5c:4881)
+ ld a, BANK(sbe47)
+ call GetSRAMBank
+ ld a, [rSVBK]
+ push af
+ ld a, $3
+ ld [rSVBK], a
+ ld a, [sbe47]
+ ld [wd000 + $800], a
+ pop af
+ ld [rSVBK], a
+ call CloseSRAM
+ ret
+
+Function17089a: ; 17089a
+ ld a, [wcfcd]
+ and a
+ jr z, .asm_1708ad
+ callba Function14bcb
+ jr z, .asm_1708ab
+ xor a
+ jr .asm_1708ad
+
+.asm_1708ab
+ ld a, $1
+
+.asm_1708ad
+ ld [ScriptVar], a
+ ret
+; 1708b1
+
+
+Function1708b1: ; 1708b1 (5c:48b1)
+ xor a
+ ld [MusicFade], a
+ call MaxVolume
+ ret
+
+CheckMobileEventIndex: ; 1708b9 (5c:48b9) 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)
+ 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)
+ 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
+
+
+Function17093c: ; 17093c (5c:493c)
+ 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 ; wddff (aliases: PartyMonOT)
+ ld de, $6
+ 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
+.asm_17096e
+ push af
+ ld a, [de]
+ inc de
+ cp [hl]
+ inc hl
+ jr nz, .asm_17099d
+ pop af
+ dec a
+ jr nz, .asm_17096e
+rept 4
+ dec hl
+endr
+ ld a, $50
+rept 2
+ ld [hli], a
+endr
+ pop hl
+ ld a, EGG_TICKET
+ ld [CurItem], a
+ ld a, $1
+ ld [wItemQuantityChangeBuffer], a
+ ld a, $ff
+ ld [wd107], a
+ ld hl, NumItems
+ call TossItem
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_17099d
+ 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)
+ 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)
+ 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
+rept 2
+ add hl, de
+endr
+ 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 Function170a00
+ dw Function170a00
+ dw Function1709f3
+ dw Function1709f3
+ dw Function170a01
+ dw Function170a33
+; 1709f3
+
+Function1709f3: ; 1709f3
+ ld a, $5
+ call GetSRAMBank
+ ld a, $1
+ ld [$a800], a
+ call CloseSRAM
+
+Function170a00: ; 170a00
+ ret
+; 170a01
+
+Function170a01: ; 170a01
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b023
+ ld de, $c608
+ 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
+
+Function170a33: ; 170a33
+ ld a, $0
+ call GetSRAMBank
+ ld hl, wRTC
+ ld de, $c608
+ ld bc, $0004
+ call CopyBytes
+ call CloseSRAM
+ ld a, $5
+ call GetSRAMBank
+ ld hl, $b08c
+ ld de, $c608
+ ld c, $4
+.asm_170a54
+ ld a, [de]
+ inc de
+ cp [hl]
+ jr nz, .asm_170a78
+ inc hl
+ dec c
+ jr nz, .asm_170a54
+ call CloseSRAM
+ ld a, [MapGroup]
+ ld b, a
+ ld a, [MapNumber]
+ ld c, a
+ call GetMapTrigger
+ ld a, d
+ or e
+ jr z, .asm_170a72
+ ld a, [de]
+ and a
+ ret nz
+
+.asm_170a72
+ ld a, $1
+ ld [ScriptVar], a
+ ret
+
+.asm_170a78
+ 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, .asm_170a9b
+ xor a
+ ld [de], a
+
+.asm_170a9b
+ ret
+; 170a9c
+
+Function170a9c: ; 170a9c (5c:4a9c)
+ ld c, $0
+ jr asm_170aa2
+
+Function170aa0: ; 170aa0 (5c:4aa0)
+ 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)
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$aa8d]
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170abe: ; 170abe (5c:4abe)
+ call Function17089a
+ ld a, [ScriptVar]
+ and a
+ ret z
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ and $1
+ ld [ScriptVar], a
+ call CloseSRAM
+ ret
+
+Function170ad7: ; 170ad7 (5c:4ad7)
+ ld a, BANK(sbe4f)
+ call GetSRAMBank
+ ld a, [sbe4f]
+ or $1
+ ld [sbe4f], a
+ call CloseSRAM
+ ret
+
+Function170ae8: ; 170ae8 (5c:4ae8)
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld c, $a
+ call SimpleDivide
+ ld a, b
+ ld [wcd4f], a
+ xor a
+ ld [ScriptVar], a
+ callba Function119d93
+ ret nc
+ ld a, $5
+ call GetSRAMBank
+ ld a, [$b2fb]
+ call CloseSRAM
+ ld [ScriptVar], a
+ ret
+
+Function170b16: ; 170b16 (5c:4b16)
+ 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 Function119dd1
+ 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, wd10a
+ ld a, [hl]
+ dec a
+ ld c, a
+ ld b, $0
+ pop af
+ ld [rSVBK], a
+ ld hl, Unknown_170b90
+ add hl, bc
+ ld a, [hl]
+ ld [wcd49], 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, [wcd49]
+ ld [hl], a
+ ld hl, UsedSprites
+ add hl, de
+ ld [hli], a
+ ld [hUsedSpriteIndex], a
+ ld a, [hl]
+ ld [hUsedSpriteTile], a
+ callba Function143c8
+ ret
+; 170b90
+
+Unknown_170b90:
+ db $12, $13, $14, $15, $18, $17
+ db $16, $19, $04, $05, $11, $01
+ db $1c, $1b, $21, $1e, $1a, $1d
+ db $1f, $3c, $20, $27, $27, $27
+ db $28, $0a, $23, $24, $2a, $2b
+ db $35, $40, $2a, $29, $22, $25
+ db $3a, $2b, $24, $49, $2b, $07
+ db $2c, $2d, $4a, $0d, $4b, $3a
+ db $2b, $41, $35, $27, $28, $27
+ db $36, $3e, $30, $2c, $2d, $3d
+ db $26, $2e, $06, $07, $43, $36
+
+Function170bd2: ; 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
+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
+rept 2
+ inc hl
+endr
+ 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]
+rept 2
+ inc hl
+endr
+ 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, LastPlayerCounterMove
+ 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, wd000
+ 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, wMapPals
+ 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/170d16.2bpp.lz"
+
+LZ_1715a4:
+INCBIN "gfx/unknown/1715a4.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 Function1183cb
+ 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 Function104061
+ callba Function8cf53
+ ret
+
+Function171a11: ; 171a11 (5c:5a11)
+ call JoyTextDelay
+ ld a, [wcd49]
+ bit 7, a
+ jr nz, .asm_171a2c
+ call Function171a36
+ callba Function8cf69
+ callba Function104061
+ jr Function171a11
+.asm_171a2c
+ callba Function8cf53
+ call ClearSprites
+ ret
+
+Function171a36: ; 171a36 (5c:5a36)
+ ld a, [wcd49]
+ ld e, a
+ ld d, 0
+ ld hl, Jumptable_171a45
+rept 2
+ add hl, de
+endr
+ 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 Function118452
+ 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 Function118452
+ 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
+rept 3
+ add hl, bc
+endr
+ 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)
+ lb de, $40, $10
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ add hl, bc
+ ld a, $8
+ ld [hl], a
+ lb de, $40, $98
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ add hl, bc
+ ld a, $9
+ ld [hl], a
+ lb de, $8a, $70
+ ld a, $1d
+ call Function3b2a
+ ld hl, $c
+ 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 Function104061
+ 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 Function106462
+ callba Function106464
+ ld a, $2
+ ld [wc303], a
+ callba Function17f555
+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, wMapPals
+ ld bc, $40
+ call CopyBytes
+ ld hl, MovementAnimation
+ 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
+rept 2
+ ld [hli], a
+endr
+ 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/171db1.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, GFX_172f1f
+ 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, wMapPals
+ 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
+
+GFX_172f1f:
+INCBIN "gfx/unknown/172f1f.2bpp"
+
+Tilemap_1733af:
+IF DEF(CORRUPT_TILES)
+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
index 66d696729..01a4db77f 100644
--- a/misc/mobile_5f.asm
+++ b/misc/mobile_5f.asm
@@ -10,8 +10,8 @@ Function17c000: ; 17c000
xor a
call ByteFill
- call Functione51
- call Functione5f
+ call LoadStandardFont
+ call LoadFontsExtra
ld hl, HaveWantMap
decoord 0, 0
@@ -48,11 +48,11 @@ Function17c000: ; 17c000
ld a, [rSVBK]
push af
- ld a, 5 ; BANK(Unkn1Pals)
+ ld a, 5 ; BANK(wMapPals)
ld [rSVBK], a
ld hl, HaveWantPals
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $80
call CopyBytes
@@ -178,48 +178,50 @@ HaveWantPals: ; 17cff3
RGB 0, 0, 0
-Function17d073: ; 17d073
-.asm_17d073
+CheckStringForErrors: ; 17d073
+; Valid character ranges:
+; $00, $05 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff
+.loop
ld a, [de]
inc de
and a
- jr z, .asm_17d0ae
+ jr z, .NextChar
cp $60
- jr nc, .asm_17d0ae
+ jr nc, .NextChar
cp $4e
- jr z, .asm_17d0ae
- cp $50
- jr z, .asm_17d0b1
+ jr z, .NextChar
+ cp "@"
+ jr z, .Done
cp $5
- jr c, .asm_17d0ac
- cp $14
- jr c, .asm_17d0ae
+ jr c, .Fail
+ cp "<PLAY_G>"
+ jr c, .NextChar
cp $19
- jr c, .asm_17d0ac
+ jr c, .Fail
cp $1d
- jr c, .asm_17d0ae
+ jr c, .NextChar
cp $26
- jr c, .asm_17d0ac
+ jr c, .Fail
cp $35
- jr c, .asm_17d0ae
+ jr c, .NextChar
cp $3a
- jr c, .asm_17d0ac
+ jr c, .Fail
cp $3f
- jr c, .asm_17d0ae
+ jr c, .NextChar
cp $40
- jr c, .asm_17d0ac
+ jr c, .Fail
cp $49
- jr c, .asm_17d0ae
+ jr c, .NextChar
-.asm_17d0ac
+.Fail
scf
ret
-.asm_17d0ae
+.NextChar
dec c
- jr nz, .asm_17d073
+ jr nz, .loop
-.asm_17d0b1
+.Done
and a
ret
; 17d0b3
@@ -281,18 +283,18 @@ Function17d0f3: ; 17d0f3
ld a, $50
ld [de], a
ld a, [$c608 + 11]
- ld [wc731], a
+ ld [wEnemyWrapCount], a
ld a, [$c608 + 12]
- ld [wc732], a
+ ld [wPlayerCharging], a
ld hl, $c608 + 26
ld a, [hli]
- ld [wc72f], a
+ ld [wEnemyTrappingMove], a
ld a, [hl]
- ld [wc730], a
+ ld [wPlayerWrapCount], a
ld bc, $c608 + 5
callba GetCaughtGender
ld a, c
- ld [wc733], a
+ ld [wEnemyCharging], a
call SpeechTextBox
call FadeToMenu
callba Function10804d
@@ -410,7 +412,7 @@ Function17d1f1: ; 17d1f1
ld hl, PartyMon1DVs
ld a, [PartyCount]
dec a
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
call AddNTimes
predef GetUnownLetter
callab Functionfba18
@@ -462,7 +464,7 @@ Function17d246: ; 17d246
ld a, [ScriptVar]
cp $5
jr nz, .asm_17d25d
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $3
ret z
jr c, .asm_17d25d
@@ -470,7 +472,7 @@ Function17d246: ; 17d246
jr .asm_17d260
.asm_17d25d
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
.asm_17d260
ld [ScriptVar], a
@@ -559,7 +561,7 @@ Function17d2ce: ; 17d2ce
ld a, d
ld [MusicFadeIDHi], a
call PlayMusic
- call Function222a
+ call ReturnToMapFromSubmenu
call Function2b3c
ret
; 17d314
@@ -624,7 +626,7 @@ Function17d370: ; 17d370
ld [wcd79], a
dec a
ld [wcd6c], a
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearScreen
callba Function104061
@@ -662,7 +664,7 @@ Function17d370: ; 17d370
ld a, $6
call GetSRAMBank
ld hl, $a006
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $1000
call CopyBytes
call CloseSRAM
@@ -670,7 +672,7 @@ Function17d370: ; 17d370
; 17d3f6
Function17d3f6: ; 17d3f6
- call WhiteBGMap
+ call ClearBGPalettes
call ClearSprites
call ClearScreen
callba Function104061
@@ -703,7 +705,7 @@ Function17d405:
ld a, $5
ld [rSVBK], a
ld hl, Palette_17eff6
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0040
call CopyBytes
call SetPalettes
@@ -983,7 +985,7 @@ Function17d5f6: ; 17d5f6
ld a, $5
ld [rSVBK], a
ld hl, $c608
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0040
call CopyBytes
ld a, $4
@@ -1237,13 +1239,13 @@ Function17d78d: ; 17d78d
call GetSRAMBank
ld hl, $a006
add hl, bc
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $1000
call CopyBytes
call CloseSRAM
xor a
ld [wcd77], a
- call WhiteBGMap
+ call ClearBGPalettes
ret
; 17d7b4
@@ -1361,7 +1363,7 @@ Function17d85d: ; 17d85d
ld a, [hli]
ld d, a
push hl
- ld hl, Unkn1Pals
+ ld hl, wMapPals
add hl, de
ld de, wcc60
.asm_17d86c
@@ -1430,7 +1432,7 @@ Function17d85d: ; 17d85d
ld a, $3
ld [rSVBK], a
ld hl, $c608
- ld de, Unkn1Pals
+ ld de, wMapPals
ld b, $0
call CopyBytes
ld a, $4
@@ -1465,7 +1467,7 @@ Function17d902: ; 17d902
call Function17e41e
call Function17e32b
pop de
- ld hl, Unkn1Pals
+ ld hl, wMapPals
add hl, de
ld de, wcc60
.asm_17d918
@@ -1926,19 +1928,19 @@ Function17dc1f: ; 17dc1f
ld a, $5c
ld [wc70e], a
ld a, $1
- ld [wc70f], a
+ ld [wEnemyGoesFirst], a
ld hl, wc708
call LoadMenuDataHeader
call InterpretMenu2
jr nc, .asm_17dc6e
ld a, $2
- ld [wcfa9], a
+ ld [MenuSelection2], a
.asm_17dc6e
call WriteBackup
pop af
ld [rSVBK], a
- ld a, [wcfa9]
+ ld a, [MenuSelection2]
cp $1
jr nz, .asm_17dc85
ld a, [$c68a]
@@ -1982,7 +1984,7 @@ Function17dca9: ; 17dca9
Function17dcaf:
ld a, $5
ld [rSVBK], a
- ld hl, Unkn1Pals
+ ld hl, wMapPals
ld de, $0008
ld c, $8
.asm_17dcbb
@@ -2153,7 +2155,7 @@ Function17dd49: ; 17dd49
jr .asm_17ddc9
.asm_17ddb7
- ld a, [wc70f]
+ ld a, [wEnemyGoesFirst]
ld l, a
ld a, [wc710]
ld h, a
@@ -2217,7 +2219,7 @@ Function17ddcd: ; 17ddcd
jr nz, .asm_17de26
ld a, [wc70e]
ld l, a
- ld a, [wc70f]
+ ld a, [wEnemyGoesFirst]
ld h, a
jr .asm_17de2e
@@ -2275,7 +2277,7 @@ Function17de32: ; 17de32
.asm_17de78
ld a, [wc70e]
ld l, a
- ld a, [wc70f]
+ ld a, [wEnemyGoesFirst]
ld h, a
jr .asm_17de8a
@@ -2398,7 +2400,7 @@ Function17ded9: ; 17ded9
ld a, [hli]
ld b, a
push hl
- callba SetPkmnCaughtData
+ callba SetPartymonCaughtData
pop hl
pop bc
jr .asm_17df5e
@@ -2585,7 +2587,7 @@ Function17e026: ; 17e026
ld b, a
push hl
call CloseSRAM
- callba Function4db92
+ callba SetBoxMonCaughtData
ld a, $1
call GetSRAMBank
pop hl
@@ -2877,7 +2879,7 @@ Function17e1a1: ; 17e1a1
jr .asm_17e250
.asm_17e23e
- ld a, [wc70f]
+ ld a, [wEnemyGoesFirst]
ld l, a
ld a, [wc710]
ld h, a
@@ -3123,7 +3125,7 @@ Function17e3c3: ; 17e3c3
ld a, $1
ld [rSVBK], a
callba MobileFn_106155
- callba Function106187
+ callba BackupMobileEventIndex
pop af
ld [rSVBK], a
ret
@@ -3163,7 +3165,7 @@ Function17e409: ; 17e409
; 17e40f
Function17e40f: ; 17e40f
- ld de, Unkn1Pals
+ ld de, wMapPals
add hl, de
jr Function17e41e
@@ -3855,7 +3857,7 @@ endr
ld b, a
ld a, [wcd57]
ld c, a
- call Function31a4
+ call MobilePrintNum
ld a, l
ld [wcd52], a
ld a, h
@@ -4246,7 +4248,7 @@ Function17f2cb: ; 17f2cb
ld b, $1
ld a, [wcd54]
ld c, a
- call Function31a4
+ call MobilePrintNum
ld a, l
ld [wcd52], a
ld a, h
@@ -4417,7 +4419,7 @@ endr
ld e, a
ld a, [hli]
ld d, a
- ld hl, Unkn1Pals
+ ld hl, wMapPals
add hl, de
ld e, l
ld d, h
@@ -4562,7 +4564,7 @@ endr
ld b, a
ld a, [wcd58]
ld c, a
- call Function31a4
+ call MobilePrintNum
ld a, l
ld [wcd52], a
ld a, h
diff --git a/misc/unused_title.asm b/misc/unused_title.asm
index e151deb14..143994d9a 100644
--- a/misc/unused_title.asm
+++ b/misc/unused_title.asm
@@ -3,7 +3,7 @@ SECTION "bank43", ROMX, BANK[$43]
UnusedTitleScreen: ; 10c000
- call WhiteBGMap
+ call ClearBGPalettes
call ClearTileMap
call DisableLCD
xor a
@@ -67,7 +67,7 @@ endr
ld [rSVBK], a
ld hl, UnusedTitleBG_Palettes
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $40
call CopyBytes
diff --git a/predef/cgb.asm b/predef/cgb.asm
index b5c7aedf7..e6b0d291e 100644
--- a/predef/cgb.asm
+++ b/predef/cgb.asm
@@ -69,11 +69,11 @@ Predef_LoadSGBLayoutCGB: ; 8d59
Function8db8: ; 8db8
ld hl, PalPacket_9c66 + 1
- ld de, Unkn1Pals
+ ld de, wMapPals
ld c, $4
call CopyPalettes
ld hl, PalPacket_9c66 + 1
- ld de, Unkn1Pals + $20
+ ld de, wMapPals + $20
ld c, $4
call CopyPalettes
ld hl, PalPacket_9c66 + 1
@@ -83,7 +83,7 @@ Function8db8: ; 8db8
jr Function8e23
Function8ddb: ; 8ddb
- ld de, Unkn1Pals
+ ld de, wMapPals
call Function9729
push hl
call Function9643
@@ -168,7 +168,7 @@ Function8e8b: ; 8e8b
ld hl, Palette_b309
.asm_8e93
- ld de, Unkn1Pals + 8 * 7
+ ld de, wMapPals + 8 * 7
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -182,7 +182,7 @@ Function8e9f: ; 8e9f
ld hl, Palette_b309
.asm_8ead
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0008
ld a, $5
call FarCopyWRAM
@@ -200,7 +200,7 @@ Function8eb9: ; 8eb9
ld hl, Palettes_b729
.asm_8ec8
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0030
ld a, $5
call FarCopyWRAM
@@ -211,7 +211,7 @@ Function8eb9: ; 8eb9
; 8edb
Function8edb: ; 8edb
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, [wcda1]
ld l, a
ld h, $0
@@ -228,7 +228,7 @@ endr
ld hl, Palettes_a8ca
call Function9643
ld hl, Palette8f52
- ld de, Unkn1Pals + 8 * 3
+ ld de, wMapPals + 8 * 3
ld bc, $0018
ld a, $5
call FarCopyWRAM
@@ -286,7 +286,7 @@ Unknown_8f6a: ; 8f6a
; 8f70
Function8f70: ; 8f70
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -334,7 +334,7 @@ Palette8fc2: ; 8fc2
; 8fca
Function8fca: ; 8fca
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -395,7 +395,7 @@ Palette9036: ; 9036
; 903e
Function903e: ; 903e
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -417,7 +417,7 @@ Function903e: ; 903e
Function906e: ; 906e
ld hl, Palettes_b7a9
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0080
ld a, $5
call FarCopyWRAM
@@ -508,7 +508,7 @@ Jumptable_912d: ; 912d
Function9133: ; 9133
ld hl, Palette_914e
- ld de, Unkn1Pals
+ ld de, wMapPals
call LoadHLPaletteIntoDE
ld hl, Palette_9156
ld de, Unkn2Pals
@@ -538,7 +538,7 @@ Palette_9156: ; 9156
; 9166
Function9166: ; 9166
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, $38
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -563,7 +563,7 @@ Function9180: ; 9180
Function9195: ; 9195
ld hl, Palettes_b789
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0028
ld a, $5
call FarCopyWRAM
@@ -575,7 +575,7 @@ Function9195: ; 9195
Function91ad: ; 91ad
ld hl, Palettes_b641
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0080
ld a, $5
call FarCopyWRAM
@@ -604,7 +604,7 @@ Function91d1: ; 91d1
; 91e4
Function91e4: ; 91e4
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, c
and a
jr z, .asm_91f5
@@ -615,7 +615,7 @@ Function91e4: ; 91e4
.asm_91f5
ld hl, PartyMon1DVs
- ld bc, PartyMon2 - PartyMon1
+ ld bc, PARTYMON_STRUCT_LENGTH
ld a, [CurPartyMon]
call AddNTimes
ld c, l
@@ -640,7 +640,7 @@ Function91e4: ; 91e4
Function9228: ; 9228
ld hl, Palettes_b6f1
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0028
ld a, $5
call FarCopyWRAM
@@ -689,7 +689,7 @@ Function925e: ; 925e
; 9289
Function9289: ; 9289
- ld de, Unkn1Pals
+ ld de, wMapPals
xor a
call Function976b
call Function9643
@@ -794,7 +794,7 @@ Function9289: ; 9289
; 9373
Function9373: ; 9373
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, $10
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -831,7 +831,7 @@ Function93a6: ; 93a6
; 93ba
Function93ba: ; 93ba
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, $1d
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -859,7 +859,7 @@ Function93d3: ; 93d3
ld hl, Palettes_9439
.asm_93e9
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0040
ld a, $5
call FarCopyWRAM
@@ -1000,7 +1000,7 @@ Function94d0: ; 94d0
; 94fa
Function94fa: ; 94fa
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, $4e
call GetAthPalletFromPalettes9df6
call LoadHLPaletteIntoDE
@@ -1024,7 +1024,7 @@ Palette_9521: ; 9521
; 9529
Function9529: ; 9529
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, [CurPartySpecies]
ld bc, TempMonDVs
call Function974b
@@ -1036,7 +1036,7 @@ Function9529: ; 9529
; 9542
Function9542: ; 9542
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, [CurPartySpecies]
call Function9775
call Function9643
@@ -1062,7 +1062,7 @@ Function9555: ; 9555
; 9578
Function9578: ; 9578
- ld de, Unkn1Pals
+ ld de, wMapPals
ld a, [CurPartySpecies]
ld bc, TempMonDVs
call Function9764
@@ -1075,7 +1075,7 @@ Function9578: ; 9578
Function9591: ; 9591
ld hl, Palette95e0
- ld de, Unkn1Pals
+ ld de, wMapPals
ld bc, $0010
ld a, $5
call FarCopyWRAM
diff --git a/sram.asm b/sram.asm
index b5fc9571d..ae8f6e062 100644
--- a/sram.asm
+++ b/sram.asm
@@ -1,16 +1,20 @@
+SRAM_Begin EQU $a000
+SRAM_End EQU $c000
+GLOBAL SRAM_Begin, SRAM_End
+
+
SECTION "Scratch", SRAM, BANK [0]
-SRAM_Begin::
sScratch::
SECTION "SRAM Bank 0", SRAM [$a600], BANK [0]
-s0_a600:: ds 6 * (party_struct_length + PartyMon1 - PartyMon1Item)
-s0_a71a:: ds 6 * (party_struct_length + PartyMon1 - PartyMon1Item)
+sPartyScratch1:: ds 6 * SCRATCHMON_STRUCT_LENGTH
+sPartyScratch2:: ds 6 * SCRATCHMON_STRUCT_LENGTH
s0_a834:: ds 1
-s0_a835:: ds 10 * (party_struct_length + PartyMon1 - PartyMon1Item)
+s0_a835:: ds 10 * SCRATCHMON_STRUCT_LENGTH
s0_aa0b:: ds 1
-s0_aa0c:: ds 10 * (party_struct_length + PartyMon1 - PartyMon1Item)
+s0_aa0c:: ds 10 * SCRATCHMON_STRUCT_LENGTH
sMysteryGiftItem:: ds 1
s0_abe3:: ds 1
@@ -52,8 +56,6 @@ sBackupGameDataEnd::
sBackupChecksum:: ds 2
s0_bf0f:: ds 1
sStackTop:: ds 2
- ds $ee
-SRAM_End::
SECTION "SRAM Bank 1", SRAM, BANK [1]
@@ -79,24 +81,28 @@ s1_ad0f:: ds 1
box sBox
; b160
- ds $100
+ ds $f4
+s1_b254:: ds $c
sLinkBattleStats:: ; b260
sLinkBattleWins:: ds 2
-sLinkBattleLosses:: ds 2
-sLinkBattleDraws:: ds 2
- ds $5a
+sLinkBattleLosses:: ds 2 ; b262
+sLinkBattleDraws:: ds 2 ; b264
+s1_b266::
+ ds 17
+s1_b277::
+ ds 73
sLinkBattleStatsEnd::
sHallOfFame:: ; b2c0
ds HOF_LENGTH * NUM_HOF_TEAMS
sHallOfFameEnd::
-s1_be3c:: ds 1
+sMobileEventIndex:: ds 1
sCrystalData::
ds wCrystalDataEnd - wCrystalData
-s1_be44:: ds 1
+sMobileEventIndexBackup:: ds 1
s1_be45:: ds 1
; data of the BattleTower must be in SRAM because you can save and leave between battles
diff --git a/tilesets/animations.asm b/tilesets/animations.asm
index c84db6785..d0e44a063 100644
--- a/tilesets/animations.asm
+++ b/tilesets/animations.asm
@@ -958,7 +958,7 @@ TileAnimationPalette: ; fc6d7
jr z, .color2
.color1
- ld hl, Unkn1Pals + $1a ; pal 3 color 1
+ ld hl, wMapPals + $1a ; pal 3 color 1
ld a, [hli]
ld [rBGPD], a
ld a, [hli]
@@ -966,7 +966,7 @@ TileAnimationPalette: ; fc6d7
jr .end
.color0
- ld hl, Unkn1Pals + $18 ; pal 3 color 0
+ ld hl, wMapPals + $18 ; pal 3 color 0
ld a, [hli]
ld [rBGPD], a
ld a, [hli]
@@ -974,7 +974,7 @@ TileAnimationPalette: ; fc6d7
jr .end
.color2
- ld hl, Unkn1Pals + $1c ; pal 3 color 2
+ ld hl, wMapPals + $1c ; pal 3 color 2
ld a, [hli]
ld [rBGPD], a
ld a, [hli]
@@ -1008,14 +1008,14 @@ FlickeringCaveEntrancePalette: ; fc71e
; Ready for BGPD input...
ld a, %10100000 ; auto-increment, index $20 (pal 4 color 0)
ld [rBGPI], a
- ld a, [$ff9b]
+ ld a, [hVBlankCounter]
and %00000010
jr nz, .bit1set
- ld hl, Unkn1Pals + $20 ; pal 4 color 0
+ ld hl, wMapPals + $20 ; pal 4 color 0
jr .okay
.bit1set
- ld hl, Unkn1Pals + $22 ; pal 4 color 2
+ ld hl, wMapPals + $22 ; pal 4 color 2
.okay
ld a, [hli]
diff --git a/tilesets/tileset_headers.asm b/tilesets/tileset_headers.asm
index 65f01dea3..752ff1cc0 100644
--- a/tilesets/tileset_headers.asm
+++ b/tilesets/tileset_headers.asm
@@ -1,7 +1,5 @@
tileset: macro
- dbw BANK(\1GFX), \1GFX
- dbw BANK(\1Meta), \1Meta
- dbw BANK(\1Coll), \1Coll
+ dba \1GFX, \1Meta, \1Coll
dw \1Anim
dw NULL
dw \1PalMap
diff --git a/unknown/013a47.asm b/unknown/013a47.asm
new file mode 100755
index 000000000..a528a1d74
--- /dev/null
+++ b/unknown/013a47.asm
@@ -0,0 +1,230 @@
+Function13a47: ; unreferenced
+ ld hl, PartyCount
+ ld a, [hl]
+ and a
+ ret z
+
+ cp PARTY_LENGTH + 1
+ jr c, .asm_13a54
+ ld a, PARTY_LENGTH
+ ld [hl], a
+.asm_13a54
+ inc hl
+
+ ld b, a
+ ld c, 0
+.asm_13a58
+ ld a, [hl]
+ and a
+ jr z, .asm_13a64
+ cp $fc
+ jr z, .asm_13a64
+ cp $fe
+ jr c, .asm_13a73
+
+.asm_13a64
+ ld [hl], SMEARGLE
+ push hl
+ push bc
+ ld a, c
+ ld hl, PartyMon1Species
+ call GetPartyLocation
+ ld [hl], SMEARGLE
+ pop bc
+ pop hl
+
+.asm_13a73
+ inc hl
+ inc c
+ dec b
+ jr nz, .asm_13a58
+ ld [hl], $ff
+
+ ld hl, PartyMon1
+ ld a, [PartyCount]
+ ld d, a
+ ld e, 0
+.asm_13a83
+ push de
+ push hl
+ ld b, h
+ ld c, l
+ ld a, [hl]
+ and a
+ jr z, .asm_13a8f
+ cp NUM_POKEMON + 1
+ jr c, .asm_13a9c
+
+.asm_13a8f
+ ld [hl], SMEARGLE
+ push de
+ ld d, 0
+ ld hl, PartySpecies
+ add hl, de
+ pop de
+ ld a, SMEARGLE
+ ld [hl], a
+
+.asm_13a9c
+ ld [CurSpecies], a
+ call GetBaseData
+ ld hl, MON_LEVEL
+ add hl, bc
+ ld a, [hl]
+ cp MIN_LEVEL
+ ld a, MIN_LEVEL
+ jr c, .asm_13ab4
+ ld a, [hl]
+ cp MAX_LEVEL
+ jr c, .asm_13ab5
+ ld a, MAX_LEVEL
+.asm_13ab4
+ ld [hl], a
+.asm_13ab5
+ ld [CurPartyLevel], a
+
+ ld hl, MON_MAXHP
+ add hl, bc
+ ld d, h
+ ld e, l
+ ld hl, MON_EXP + 2
+ 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, .asm_13a83
+
+ ld de, PartyMonNicknames
+ ld a, [PartyCount]
+ ld b, a
+ ld c, 0
+.asm_13adc
+ push bc
+ call Function13b71
+ push de
+ callba CheckStringForErrors
+ pop hl
+ pop bc
+ jr nc, .asm_13b0e
+
+ 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, .asm_13b06
+ ld [wd265], a
+ call GetPokemonName
+ ld hl, StringBuffer1
+.asm_13b06
+ pop de
+ ld bc, PKMN_NAME_LENGTH
+ call CopyBytes
+ pop bc
+
+.asm_13b0e
+ inc c
+ dec b
+ jr nz, .asm_13adc
+
+ ld de, PartyMonOT
+ ld a, [PartyCount]
+ ld b, a
+ ld c, 0
+.asm_13b1b
+ push bc
+ call Function13b71
+ push de
+ callba CheckStringForErrors
+ pop hl
+ jr nc, .asm_13b34
+ ld d, h
+ ld e, l
+ ld hl, PlayerName
+ ld bc, NAME_LENGTH
+ call CopyBytes
+.asm_13b34
+ pop bc
+ inc c
+ dec b
+ jr nz, .asm_13b1b
+
+ ld hl, PartyMon1Moves
+ ld a, [PartyCount]
+ ld b, a
+.asm_13b40
+ push hl
+ ld c, NUM_MOVES
+ ld a, [hl]
+ and a
+ jr z, .asm_13b4b
+ cp NUM_ATTACKS + 1
+ jr c, .asm_13b4d
+.asm_13b4b
+ ld [hl], POUND
+
+.asm_13b4d
+ ld a, [hl]
+ and a
+ jr z, .asm_13b55
+ cp NUM_ATTACKS + 1
+ jr c, .asm_13b5c
+
+.asm_13b55
+ xor a
+ ld [hli], a
+ dec c
+ jr nz, .asm_13b55
+ jr .asm_13b60
+
+.asm_13b5c
+ inc hl
+ dec c
+ jr nz, .asm_13b4d
+
+.asm_13b60
+ pop hl
+ push bc
+ ld bc, PARTYMON_STRUCT_LENGTH
+ add hl, bc
+ pop bc
+ dec b
+ jr nz, .asm_13b40
+ ret
+; 13b6b
+
+.TAMAGO: ; 13b6b
+ db "タマゴ@@@"
+; 13b71
+
+Function13b71: ; 13b71
+ push de
+ ld c, 1
+ ld b, 6
+.loop
+ ld a, [de]
+ cp "@"
+ jr z, .done
+ inc de
+ inc c
+ dec b
+ jr nz, .loop
+ dec c
+ dec de
+ ld a, "@"
+ ld [de], a
+
+.done
+ pop de
+ ret
+; 13b87
diff --git a/wram.asm b/wram.asm
index 0cb0e5ce2..d4b4fe8c2 100644
--- a/wram.asm
+++ b/wram.asm
@@ -4,7 +4,6 @@ flag_array: MACRO
ds ((\1) + 7) / 8
ENDM
-box_struct_length EQU 24 + NUM_MOVES * 2 ; 32
box_struct: MACRO
\1Species:: db
\1Item:: db
@@ -30,7 +29,6 @@ box_struct: MACRO
\1End::
ENDM
-party_struct_length EQU box_struct_length + 16
party_struct: MACRO
box_struct \1
\1Status:: db
@@ -68,6 +66,7 @@ battle_struct: MACRO
\1Type::
\1Type1:: db
\1Type2:: db
+\1StructEnd::
ENDM
box: MACRO
@@ -76,7 +75,7 @@ box: MACRO
\1Species:: ds MONS_PER_BOX + 1
\1Mons::
\1Mon1:: box_struct \1Mon1
-\1Mon2:: ds box_struct_length * (MONS_PER_BOX +- 1)
+\1Mon2:: ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX +- 1)
\1MonOT:: ds NAME_LENGTH * MONS_PER_BOX
\1MonNicknames:: ds PKMN_NAME_LENGTH * MONS_PER_BOX
\1MonNicknamesEnd::
@@ -129,7 +128,22 @@ channel_struct: MACRO
ds 1 ; c131
ds 1 ; c132
ENDM
-GLOBAL box_struct_length, party_struct_length
+
+battle_tower_struct: MACRO
+\1Name:: ds NAME_LENGTH +- 1
+\1TrainerClass:: ds 1
+\1Pkmn1:: party_struct \1Pkmn1
+\1Pkmn1Name:: ds PKMN_NAME_LENGTH
+\1Pkmn1NameEnd::
+\1Pkmn2:: party_struct \1Pkmn2
+\1Pkmn2Name:: ds PKMN_NAME_LENGTH
+\1Pkmn2NameEnd::
+\1Pkmn3:: party_struct \1Pkmn3
+\1Pkmn3Name:: ds PKMN_NAME_LENGTH
+\1Pkmn3NameEnd::
+\1TrainerData:: ds BATTLETOWER_TRAINERDATALENGTH
+\1TrainerEnd::
+endm
INCLUDE "vram.asm"
@@ -292,9 +306,9 @@ wc2d4:: ds 1
wc2d5:: ds 1
wc2d6:: ds 1
wc2d7:: ds 1
-wc2d8:: ds 1
-wc2d9:: ds 1
-wc2da:: ds 2
+wPreviousLandmark:: ds 1
+wCurrentLandmark:: ds 1
+wLandmarkSignTimer:: ds 2
wLinkMode:: ; c2dc
; 0 not in link battle
; 1 link battle
@@ -307,10 +321,10 @@ ScriptVar:: ; c2dd
wc2de:: ds 1
wc2df:: ds 3
wMovementPerson:: ds 1
-wMovementDataPointer:: ds 3
+wMovementDataPointer:: ds 3 ; dba
wc2e6:: ds 4
wc2ea:: ds 1
-wMovementPointer:: ds 2
+wMovementPointer:: ds 2 ; c2eb
ds 3
wc2f0:: ds 1
wc2f1:: ds 1
@@ -320,7 +334,8 @@ wc2f4:: ds 1
wc2f5:: ds 1
wc2f6:: ds 1
wc2f7:: ds 1
-wc2f8:: ds 2
+wc2f8:: ds 1
+ ds 1
TileDown:: ; c2fa
ds 1
@@ -341,6 +356,11 @@ TilePermissions:: ; c2fe
ds 1
ds 1
+
+SECTION "PARTY ICONS", WRAM0 [$c300]
+; wc300 - wc313 is a 10x2 dictionary.
+wDict_c300:: ds 10 * 2
+ ds wDict_c300 - @
wc300:: ds 1
wc301:: ds 1
wc302:: ds 1
@@ -360,11 +380,22 @@ wc310:: ds 1
wc311:: ds 1
wc312:: ds 1
wc313:: ds 1
-wPartyMonMenuIconAnims:: ds 96 ; c314
-wc374:: ds 48 ; c374
-wc3a4:: ds 8 ; c3b4
-wc3ac:: ds 8 ; c3bc
-wc3b4:: ds 1 ; c3b4
+; wPartyMonMenuIconAnims::
+; Field 0: Index
+; Fields 1-3: Loaded from Unknown_8d1c4
+wc314:: ds 16 ; c314
+wc324:: ds 16 ; c324
+wc334:: ds 16 ; c334
+wc344:: ds 16 ; c344
+wc354:: ds 16 ; c354
+wc364:: ds 16 ; c364
+wc374:: ds 16 ; c374
+wc384:: ds 16 ; c384
+wc394:: ds 16 ; c394
+wc3a4:: ds 8 ; c3a4
+wc3ac:: ds 8 ; c3ac
+; wPartyMonMenuIconAnimsEnd::
+wc3b4:: ds 1 ; something to do with wc314
wc3b5:: ds 1
CurIcon:: ; c3b6
@@ -372,8 +403,7 @@ CurIcon:: ; c3b6
wc3b7:: ds 1
-wc3b8:: ds 1
-wc3b9:: ds 1
+wc3b8:: dw
wc3ba:: ds 1
wc3bb:: ds 1
wc3bc:: ds 1
@@ -437,10 +467,12 @@ wOddEggName:: ds PKMN_NAME_LENGTH
wOddEggOTName:: ds PKMN_NAME_LENGTH
ds -70
+wBT_OTTemp:: battle_tower_struct wBT_OTTemp
+ ds wBT_OTTemp - @
+
wMisc::
wBattle::
wc608::
-wBT_OTTempCopy:: ; used to copy the data of the BattleTower-Trainer and the 3 Pkmn
wEnemyMoveStruct:: ds MOVE_LENGTH ; c608
wc60f::
@@ -457,9 +489,11 @@ wc64c::
ds 1
wc64d:: ds 1
-wc64e:: ds 2
-wc650:: ds 1
-wc651:: ds 1
+wWildMon::
+wc64e:: ds 1
+ ds 1
+wEnemyTrainerItem1:: ds 1
+wEnemyTrainerItem2:: ds 1
wc652:: ds 4
wc656::
OTName:: ds NAME_LENGTH ; c656
@@ -470,7 +504,14 @@ wc663::
CurOTMon:: ; c663
ds 1
-wc664:: ds 1
+wBattleParticipantsNotFainted::
+; Bit array. Bits 0 - 5 correspond to party members 1 - 6.
+; Bit set if the mon appears in battle.
+; Bit cleared if the mon faints.
+; Backed up if the enemy switches.
+; All bits cleared if the enemy faints.
+ ds 1
+
TypeModifier:: ; c665
; >10: super-effective
; 10: normal
@@ -536,8 +577,8 @@ PlayerSubStatus5:: ; c66c
; 7 cant run
; 6 destiny bond
; 5 lock-on
-; 4
-; 3
+; 4 encore
+; 3 transformed
; 2
; 1
; 0 toxic
@@ -601,7 +642,8 @@ EnemyDamageTaken:: ; c684
wc686:: ds 2
wc688:: ds 1
-wc689:: ds 1
+wKickCounter::
+wPresentPower:: ds 1
wc68a::
BattleScriptBuffer:: ; c68a
ds 40
@@ -609,7 +651,8 @@ BattleScriptBuffer:: ; c68a
BattleScriptBufferLoc:: ; c6b2
ds 2
-wc6b4:: ds 2
+wTurnEnded:: ds 1
+ ds 1
PlayerStats:: ; c6b6
ds 10
@@ -697,13 +740,15 @@ wc6e9::
CurEnemyMoveNum:: ; c6e9
ds 1
+wEnemyHPAtTimeOfPlayerSwitch::
wc6ea:: ds 1
wc6eb:: ds 1
wPayDayMoney:: ds 3 ; c6ec
- ds 1
-
+wSafariMonAngerCount:: ds 1
+wSafariMonEating::
wc6f0:: ds 2
+wEnemyBackupDVs:: ; used when enemy is transformed
wc6f2:: ds 2
AlreadyDisobeyed:: ; c6f4
ds 1
@@ -721,14 +766,15 @@ wc6f9::
LastPlayerCounterMove:: ; c6f9
ds 1
-wc6fa:: ds 1
+wEnemyMinimized:: ds 1 ; c6fa
AlreadyFailed:: ; c6fb
ds 1
wc6fc:: ds 1
wc6fd:: ds 1
-wc6fe:: ds 1
+wc6fe::
+wPlayerMinimized:: ds 1 ; c6fe
wc6ff::
PlayerScreens:: ; c6ff
; bit
@@ -791,7 +837,7 @@ wc70e::
FailedMessage:: ; c70e
ds 1
-wc70f:: ds 1
+wEnemyGoesFirst:: ds 1
wc710::
wPlayerIsSwitching:: ds 1 ; c710
wc711::
@@ -804,8 +850,9 @@ PlayerUsedMoves:: ; c712
ds NUM_MOVES
wc716:: ds 1
+wEnemySwitchMonParam::
wc717:: ds 1
-wc718:: ds 1
+wEnemySwitchMonIndex:: ds 1
wc719:: ds 1
LastPlayerMon:: ; c71a
wc71a:: ds 1
@@ -814,33 +861,35 @@ LastPlayerMove:: ; c71b
LastEnemyMove:: ; c71c
ds 1
-wc71d:: ds 1
-wc71e:: ds 1
+wPlayerFutureSightCount:: ds 1
+wEnemyFutureSightCount:: ds 1
wc71f:: ds 1
wc720:: ds 4 ; copy from/to EnemyMonBaseStats, length=7
wc724:: ds 3
wc727:: ds 2
wc729:: ds 2
-wc72b:: ds 1
-wc72c:: ds 1
+wPlayerRageCounter:: ds 1
+wEnemyRageCounter:: ds 1
wc72d:: ds 1 ; if 0 then PrintButItFailed
-wc72e:: ds 1
-wc72f:: ds 1
-wc730:: ds 1
-wc731:: ds 1
-wc732:: ds 1
-wc733:: ds 1
+wPlayerTrappingMove:: ds 1
+wEnemyTrappingMove:: ds 1
+wPlayerWrapCount:: ds 1
+wEnemyWrapCount:: ds 1
+wPlayerCharging:: ds 1
+wEnemyCharging:: ds 1
wc734::
BattleEnded:: ; c734
ds 1
+wWildMonMoves::
wc735:: ds 1
wc736:: ds 3
+wWildMonPP::
wc739:: ds 4
wc73d:: ds 1
wc73e:: ds 1
-wc73f:: ds 1
-wc740:: ds 1
+wPlayerJustGotFrozen:: ds 1
+wEnemyJustGotFrozen:: ds 1
wc741::
wBattleEnd::
; c741
@@ -883,25 +932,6 @@ wMiscEnd::
wc7e8:: ds 24
-
-RSSET 0 ; Offsets for wBT_OTTempCopy:: @ $c608
-wBT_OTTempCopy_0 RB 10 ; $c608
-wBT_OTTempCopy_TrainerClass RB 1 ; $c608 + $a = $c612
-wBT_OTTempCopy_Pkmn1 RB party_struct_length ; $c608 + $b = $c613
-wBT_OTTempCopy_Pkmn1Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $45 = $c64d
-wBT_OTTempCopy_45 RB 1
-wBT_OTTempCopy_Pkmn2 RB party_struct_length ; $c608 + $46 = $c64e
-wBT_OTTempCopy_Pkmn2Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $76 = $c67e
-wBT_OTTempCopy_80 RB 1
-wBT_OTTempCopy_Pkmn3 RB party_struct_length ; $c608 + $81 = $c689
-wBT_OTTempCopy_Pkmn3Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $b1 = $c6b9
-wBT_OTTempCopy_BB RB 1
-
-GLOBAL wBT_OTTempCopy_TrainerClass, wBT_OTTempCopy_Pkmn1, wBT_OTTempCopy_Pkmn1Name, wBT_OTTempCopy_Pkmn2, wBT_OTTempCopy_Pkmn2Name, wBT_OTTempCopy_Pkmn3, wBT_OTTempCopy_Pkmn3Name
-GLOBAL wBT_OTTempCopy_45, wBT_OTTempCopy_80, wBT_OTTempCopy_BB
-
-
-
SECTION "Overworld Map", WRAM0 [$c800]
wc800::
@@ -975,14 +1005,23 @@ wca84:: ds 1
wca85:: ds 1
wca86:: ds 1
wca87:: ds 1
+
+; Gameboy Printer
wca88:: ds 1
-wca89:: ds 1
+wca89::
+; bit 7: set if error 1
+; bit 6: set if error 4
+; bit 5: set if error 3
+ ds 1
+
wca8a:: ds 1
wca8b:: ds 1
wca8c:: ds 1
wca8d:: ds 1
wca8e:: ds 1
wca8f:: ds 1
+
+; tilemap backup?
wca90:: ds 16
wcaa0:: ds 3
wcaa3:: ds 2
@@ -1017,6 +1056,7 @@ wcb84:: ds 100
wcbe8:: ds 1
wcbe9:: ds 1
wcbea:: ds 14
+
wcbf8:: ds 2
wcbfa:: ds 1
wcbfb:: ds 79
@@ -1186,11 +1226,13 @@ MonType:: ; cf5f
ds 1
CurSpecies:: ; cf60
+CurMove::
ds 1
wNamedObjectTypeBuffer:: ds 1
ds 1
-wJumptableIndex:: ds 1
+wJumptableIndex::
+wcf63:: ds 1
wNrOfBeatenBattleTowerTrainers::
wMomBankDigitCursorPosition::
wIntroSceneFrameCounter::
@@ -1217,6 +1259,7 @@ Requested1bppSource:: ; cf6d
Requested1bppDest:: ; cf6f
ds 2
+; something to do with menu
wcf71:: ds 1
wcf72:: ds 1
wcf73:: ds 1
@@ -1228,22 +1271,32 @@ wcf76:: ds 1
wcf77:: ds 1
wcf78:: ds 9
-; menu data header buffer (ds 16)
-wcf81:: ds 1
-
-; dw related to tilemap
+; menu data header
+wMenuDataHeader:: ; cf81
+wMenuFlags:: ds 1
wMenuBorderTopCoord:: ds 1
wMenuBorderLeftCoord:: ds 1
wMenuBorderBottomCoord:: ds 1
wMenuBorderRightCoord:: ds 1
-
-wcf86:: ds 1
-wcf87:: ds 1
+wMenuData2Pointer:: ds 2
wMenuCursorBuffer:: ds 2
-wcf8a:: ds 7 ; menu data 2 bank?
-wcf91:: ds 1
-
-wcf92:: ds 1
+; end menu data header
+wMenuDataBank:: ds 1 ; menu data bank?
+ ds 6
+wMenuDataHeaderEnd::
+
+wMenuData2::
+wMenuData2Flags:: ds 1 ; cf91
+; bit 7: When set, start printing text one tile to the right of the border
+; bit 6: When set, start printing text one tile below the border
+; bit 5: ????
+; bit 4: ????
+; bit 3: ????
+; bit 2: ????
+; bit 1: ????
+; bit 0: ????
+
+wMenuData2Items:: ds 1
wcf93:: ds 1
wcf94:: ds 1
wcf95:: ds 1 ; bank
@@ -1252,15 +1305,17 @@ wcf97:: ds 1 ; addr hi
wcf98:: ds 3
wcf9b:: ds 3
wcf9e:: ds 3
+wMenuData2End::
wcfa1:: ds 1
+
wcfa2:: ds 1
wcfa3:: ds 1
wcfa4:: ds 1
-wcfa5:: ds 1
-wcfa6:: ds 1
+wcfa5:: ds 1 ; dynamic menu flags?
+wcfa6:: ds 1 ; dynamic menu flags?
wcfa7:: ds 1
wcfa8:: ds 1
-wcfa9:: ds 1
+MenuSelection2:: ds 1
wcfaa:: ds 1
wcfab:: ds 1
wcfac:: ds 1
@@ -1279,7 +1334,7 @@ PredefTemp:: ; cfb5
ds 2
PredefAddress:: ; cfb7
ds 2
-
+wFarCallBCBuffer:: ; cfb9
ds 2
wcfbb:: ds 1
@@ -1362,60 +1417,79 @@ wDaysSince:: ds 1
SECTION "WRAM 1", WRAMX, BANK [1]
-MiscBuffer0::
wd000:: ds 1
-MiscBuffer1::
+DefaultSpawnpoint::
wd001:: ds 1
wd002::
-MiscBuffer2::
PhoneScriptBank::
-DefaultFlypoint:: ; d002
LuckyNumberDigit1Buffer::
+wCurrentRadioLine::
+wMovementBufferCount::
+wMartItem1BCD::
ds 1
wd003::
-MiscBuffer3::
LuckyNumberDigit2Buffer::
PhoneCallerLo::
+wNextRadioLine::
+wMovementBufferPerson::
ds 1
wd004::
-MiscBuffer4::
LuckyNumberDigit3Buffer::
PhoneCallerHi::
+wRadioTextDelay::
ds 1
wd005::
-MiscBuffer5::
LuckyNumberDigit4Buffer::
StartFlypoint:: ; d005
+wNumRadioLinesPrinted::
+wMartItem2BCD::
ds 1
wd006::
-MiscBuffer6::
LuckyNumberDigit5Buffer::
EndFlypoint:: ; d006
+wOaksPkmnTalkSegmentCounter::
ds 1
wd007::
-MiscBuffer7::
MovementBuffer:: ; d007
ds 1
+wMartItem3BCD::
wd008:: ds 2
wd00a:: ds 1
+wMartItem4BCD::
wd00b:: ds 1
+
+wRadioText:: ds 2 * SCREEN_WIDTH
+wRadioTextEnd::
+ ds wRadioText - @
+
wd00c:: ds 1
wd00d:: ds 1
+wMartItem5BCD::
wd00e:: ds 1
wd00f:: ds 1
wd010:: ds 1
+wMartItem6BCD::
wd011:: ds 1
wd012:: ds 1
wd013:: ds 1
+wMartItem7BCD::
wd014:: ds 2
wd016:: ds 1
+wMartItem8BCD::
wd017:: ds 1
+
+wd018_Mon:: party_struct wd018_Mon
+ ds wd018_Mon - @
+
wd018:: ds 1
wd019:: ds 1
-wd01a:: ds 5
+wMartItem9BCD::
+wd01a:: ds 3
+wMartItem10BCD:: ds 2
wd01f:: ds 1
+wMartItemBCDEnd::
wd020:: ds 3
wd023:: ds 5
wd028:: ds 2
@@ -1437,7 +1511,9 @@ CurFruitTree::
CurInput::
EngineBuffer1:: ; d03e
ds 1
+
wd03f::
+wJumpStdScriptBuffer::
CurFruit:: ; d03f
MartPointerBank::
EngineBuffer2::
@@ -1450,31 +1526,42 @@ EngineBuffer3::
wd041::
EngineBuffer4::
+wTempTrainerEventFlagLo::
ds 1
+
+wTempTrainerEventFlagHi::
MovementAnimation:: ; d042
ds 1
+wTempTrainerClass::
WalkingDirection:: ; d043
+wBargainShopFlags::
ds 1
+wTempTrainerID::
FacingDirection:: ; d044
ds 1
-WalkingX:: ; d045
+wSeenTextPointer::
+WalkingX::
+wd045:: ; d045
ds 1
WalkingY:: ; d046
ds 1
+
WalkingTile:: ; d047
wWinTextPointer::
ds 1
wd048:: ds 1
wLossTextPointer:: ds 2
+wScriptAfterPointer::
wd04b:: ds 2
wd04d:: ds 1
MenuItemsListEnd::
wd04e:: ds 2
-wd050:: ds 10
+wOaksPkmnTalkPkmnNameBuffer::
+wd050:: ds PKMN_NAME_LENGTH +- 1
wd05a:: ds 12
wd066:: ds 10
wd070:: ds 3
@@ -1513,6 +1600,7 @@ wd0df:: ds 1
wd0e0:: ds 1
wd0e1:: ds 1
wd0e2:: ds 1
+wMoveSwapBuffer::
wd0e3:: ds 1
wd0e4:: ds 4
wQueuedScriptBank:: ds 1
@@ -1535,7 +1623,7 @@ CurMart:: ; d0f0
ds 1
wd0f1:: ds 1
wd0f2:: ds 14
-
+CurMartEnd::
wd100:: ds 1
wd101:: ds 1
@@ -1548,6 +1636,7 @@ CurItem:: ; d106
ds 1
ItemCountBuffer:: ; d107
+wMartItemID::
wd107:: ds 1
CurPartySpecies:: ; d108
@@ -1560,6 +1649,11 @@ CurPartyMon:: ; d109
ds 1
wd10a:: ds 1
+wPokemonWithdrawDepositParameter::
+; 0: Take from PC
+; 1: Put into PC
+; 2: Take from Daycare
+; 3: Put into Daycare
wd10b:: ds 1
wItemQuantityChangeBuffer:: ds 1
wItemQuantityBuffer:: ds 1
@@ -1568,7 +1662,7 @@ wd10e::
TempMon::
party_struct TempMon
-wd13e:: ds 1
+wSpriteFlags:: ds 1
wd13f:: ds 2
@@ -1583,14 +1677,23 @@ CurPartyLevel:: ; d143
ds 1
wd144:: ds 2
+
+; used when following a map warp
+wNextWarp::
wd146:: ds 1
+wNextMapGroup::
wd147:: ds 1
+wNextMapNumber::
wd148:: ds 1
+wPrevWarp::
wd149:: ds 1
+wPrevMapGroup::
wd14a:: ds 1
+wPrevMapNumber::
wd14b:: ds 1
-wd14c:: ds 1
-wd14d:: ds 1
+
+wd14c:: ds 1 ; used in FollowNotExact
+wd14d:: ds 1 ; used in FollowNotExact
wd14e:: ds 1
wd14f:: ds 1
wd150:: ds 1
@@ -1598,7 +1701,11 @@ wd151:: ds 1
wd152:: ds 1
wd153:: ds 1
-UsedSprites:: ; d154
+UsedSprites:: ds 64
+UsedSpritesEnd::
+ ds UsedSprites - @
+
+wd154:: ; d154
ds 31 ; 64
wd173:: ds 1
@@ -1610,14 +1717,13 @@ wd182:: ds 1
wd191:: ds 1
wd192:: ds 1
wd193:: ds 1
-UsedSpritesEnd::
-wd194:: ds 1
-wd195:: ds 1
+wd194:: dw
wd196:: ds 1
-wd197:: ds 2
-wd199:: ds 1
+wd197:: ds 1
+wSecondMapHeaderBank:: ds 1
+wTileset:: ds 1
wPermission:: ds 1
- ds 2
+wSecondMapHeaderAddr:: dw
; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles)
MapHeader:: ; d19d
@@ -1760,6 +1866,7 @@ Buffer4::
wd1ed:: ds 1
Buffer5::
wd1ee:: ds 1
+Buffer6::
wd1ef:: ds 1
wd1f0:: ds 1
wd1f1:: ds 1
@@ -1815,7 +1922,7 @@ OtherTrainerID:: ; d231
; (Joey, Mikey, Albert, etc.)
ds 1
-wd232:: ds 1
+wForcedSwitch:: ds 1
TrainerClass:: ; d233
ds 1
@@ -1885,6 +1992,7 @@ wd264:: ds 1
wFoundMatchingIDInParty::
wNamedObjectIndexBuffer::
wCurTMHM::
+wTypeMatchup::
wd265:: ds 1
wd266:: ds 1
wd267:: ds 1
@@ -1895,11 +2003,16 @@ TimeOfDay:: ; d269
ds 1
SECTION "Enemy Party", WRAMX, BANK [1]
-OTPlayerName::
+OTPlayerName:: ds NAME_LENGTH
+ ds OTPlayerName - @
+wPokedexShowPointerAddr::
wd26b:: ds 1
wd26c:: ds 1
-wd26d:: ds 4
+wPokedexShowPointerBank::
+wd26d:: ds 1
+ ds 3
wd271:: ds 5
+OTPlayerID::
wd276:: ds 10
OTPartyCount:: ds 1 ; d280
@@ -2056,7 +2169,7 @@ object_struct: MACRO
\1Palette:: ds 1
\1Walking:: ds 1
\1Direction:: ds 1
- ds 1
+\1Object09:: ds 1
\1StepDuration:: ds 1
\1Action:: ds 1
\1Object12:: ds 1
@@ -2091,18 +2204,50 @@ ENDM
object_struct Object12
wd6de::
- ds 64
+ ds $40
+
+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
+ ds 2
+endm
MapObjects:: ; d71e
- ds OBJECT_LENGTH * NUM_OBJECTS
+ map_object Player
+ map_object Map1
+ map_object Map2
+ map_object Map3
+ map_object Map4
+ map_object Map5
+ map_object Map6
+ map_object Map7
+ map_object Map8
+ map_object Map9
+ map_object Map10
+ map_object Map11
+ map_object Map12
+ map_object Map13
+ map_object Map14
+ map_object Map15
wObjectMasks:: ds NUM_OBJECTS ; d81e
VariableSprites:: ; d82e
ds $10
-wd83e:: ds 3
-
+wEnteredMapFromContinue:: ds 1 ; d83e
+ ds 2
TimeOfDayPal:: ; d841
ds 1
ds 4
@@ -2324,7 +2469,7 @@ wCurBox:: ; db72
ds 2
; 8 chars + $50
-wBoxNames:: ds 9 * NUM_BOXES ; db75
+wBoxNames:: ds BOX_NAME_LENGTH * NUM_BOXES ; db75
wCelebiEvent:: ds 1
ds 1
@@ -2346,9 +2491,12 @@ wCurrentMapXYTriggerCount:: ds 1
wCurrentMapXYTriggerHeaderPointer:: ds 1
wdc00:: ds 1
wCurrentMapSignpostCount:: ds 1
+wCurrentMapSignpostHeaderPointer::
wdc02:: ds 1
wdc03:: ds 1
+wCurrentMapPersonEventCount::
wdc04:: ds 1
+wCurrentMapPersonEventHeaderPointer::
wdc05:: ds 1
wdc06:: ds 1
wCurrMapTriggerCount:: ds 1
@@ -2431,8 +2579,10 @@ PoisonStepCount:: ; dc74
ds 2
wdc77:: ds 2
-wdc79:: ds 1
-wdc7a:: ds 2
+wdc79::
+wParkBallsRemaining::
+wSafariBallsRemaining:: ds 1
+wSafariTimeRemaining:: ds 2
wPhoneList:: ds CONTACT_LIST_SIZE
ds 23
wLuckyNumberShowFlag:: ds 2 ; dc9d
@@ -2452,10 +2602,10 @@ VisitedSpawns:: ; dca5
wdca9:: ds 1
wdcaa:: ds 1
wdcab:: ds 1
-wdcac:: ds 1
-
; used on maps like second floor pokécenter, which are reused, so we know which
; map to return to
+BackupWarpNumber:: ; dcac
+ ds 1
BackupMapGroup:: ; dcad
ds 1
BackupMapNumber:: ; dcae
@@ -2463,7 +2613,9 @@ BackupMapNumber:: ; dcae
ds 3
+wLastSpawnMapGroup::
wdcb2:: ds 1
+wLastSpawnMapNumber::
wdcb3:: ds 1
WarpNumber:: ; dcb4
@@ -2561,7 +2713,8 @@ wEggNick:: ds PKMN_NAME_LENGTH ; df65
wEggOT:: ds NAME_LENGTH ; df70
wEggMon:: box_struct wEggMon ; df7b
-wdf9b:: ds 1
+wdf9b::
+wBugContestSecondPartySpecies:: ds 1
wdf9c::
@@ -2598,20 +2751,19 @@ wGameDataEnd::
SECTION "Pic Animations", WRAMX, BANK [2]
-w2_d000::
+TempTileMap::
; 20x18 grid of 8x8 tiles
ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360
-
-w2_d168:: ds 1
-w2_d169:: ds 1
-w2_d16a:: ds 1
-w2_d16b:: ds 1
-w2_d16c:: ds 1
-w2_d16d:: ds 1
+; PokeAnim Header
+wPokeAnimSceneIndex:: ds 1
+wPokeAnimPointer:: ds 2
+wPokeAnimSpecies:: ds 1
+wPokeAnimUnownLetter:: ds 1
+wPokeAnimSpeciesOrUnown:: ds 1
w2_d16e:: ds 1
-w2_d16f:: ds 1
-w2_d170:: ds 1
-w2_d171:: ds 1
+wPokeAnimCoord:: ds 2
+wPokeAnimFrontpicHeight:: ds 1
+; PokeAnim Data
w2_d172:: ds 1
w2_d173:: ds 1
w2_d174:: ds 1
@@ -2627,7 +2779,7 @@ w2_d17d:: ds 1
w2_d17e:: ds 1
w2_d17f:: ds 1
w2_d180:: ds 1
-w2_d181:: ds 1
+wPokeAnimWaitCounter:: ds 1
w2_d182:: ds 1
w2_d183:: ds 1
w2_d184:: ds 1
@@ -2635,54 +2787,43 @@ w2_d185:: ds 1
w2_d186:: ds 1
w2_d187:: ds 1
w2_d188:: ds 1
+ ds 8
+wPokeAnimStructEnd::
SECTION "WRAM 3", WRAMX, BANK [3]
w3_d000:: ; d000
- ds $100
+ ds $80
+w3_d080::
+ ds $10
+w3_d090::
+ ds $70
-BT_OTrainer::
w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24)
-BT_OTrainer_Name::
- ds $A
-BT_OTrainer_TrainerClass::
- ds $1
-BT_OTPkmn1:: ; w3_d10b
- ds $1
-BT_OTPkmn1Item::
- ds $3b-1
-BT_OTPkmn2:: ; w3_d146
- ds $1
-BT_OTPkmn2Item::
- ds $3b-1
-BT_OTPkmn3:: ; w3_d181
- ds $1
-BT_OTPkmn3Item::
- ds $3b-1
-
- ds $24
-BT_OTrainerEnd:: ; we_d1e0
-
+BT_OTTrainer:: battle_tower_struct BT_OT
+; d1e0
ds $20
-
+BT_TrainerTextIndex::
ds $600
wBTChoiceOfLvlGroup::
-w3_d800:: ds 1
+w3_d800:: ds $400
+w3_dc00:: ds $168
+w3_dd68::
SECTION "GBC Video", WRAMX, BANK [5]
; 8 4-color palettes
-Unkn1Pals:: ds 8 * 8 ; d000
+wMapPals:: ds 8 * 8 ; d000
Unkn2Pals:: ds 8 * 8 ; d040
BGPals:: ds 8 * 8 ; d080
OBPals:: ds 8 * 8 ; d0c0
LYOverrides:: ; d100
ds SCREEN_HEIGHT_PX
-LYOverridesEnd::
+LYOverridesEnd:: ; d190
ds 1
w5_d191:: ds 1
@@ -2732,8 +2873,21 @@ w5_d418:: ds 1
BattleAnimTemps:: ; d419
ds 8
ds 1
-w5_d422:: ds $40
-
+w5_d422:: ds $32
+wBattleAnimEnd::
+ ds $e
+; d462
+
+SECTION "WRAM 5 MOBILE", WRAMX [$d800], BANK [5]
+w5_d800:: ds $200
+w5_da00:: ds $200
+w5_dc00:: ds $d
+w5_dc0d:: ds 4
+w5_dc11:: ds 9
+w5_dc1a:: ds $c
+w5_dc26:: ds $c
+w5_dc32:: ds $c
+w5_dc3e:: ds $c
SECTION "WRAM 6", WRAMX, BANK [6]